2009-09-01 3 views
4

나는 관심 지점 탐지 알고리즘을 고안하려고 노력해 왔으며 이것은 내가 생각해 냈다.관심 지점 탐지 알고리즘에 대해 어떻게 생각합니까?

X와 Y 축을 동시에 3n x 3n 픽셀 씩 3n x 3n 제곱으로 만든다.

3n x 3n 정사각형의 중앙에있는 nxn 정사각형 (정사각형이라고 가정합시다)의 경우 R, G 및 B 값은 평균화되어 사전 설정된 값으로 반올림되어 색상 수를 제한합니다. 사각형이 취급 될 색상입니다.

8 개의 nxn 정사각형에 대해 동일한 작업이 수행됩니다.

그 후, x가= 3 또는 x => 5 인 8 개의 주변 정사각형 중 x가 일치하면 관심 지점 인 정사각형 Z의 색상이 주변 정사각형과 비교됩니다).

등 모든 이미지가 덮일 때까지.

n이 클수록 이미지 스캔 속도가 빨라지고 정확도가 떨어지며 그 반대의 경우도 마찬가지입니다.

이것은 아마도 "문자 코너"즉 이미지에서 실제로 볼 수있는 코너를 감지합니다.

이 알고리즘에 대해 어떻게 생각하십니까? 그것은 효율적입니까? 핸드 헬드 장치에서 라이브 비디오 스트림 (카메라에서 말하는 것)에서 사용할 수 있습니까?

답변

10

매우 유감 스럽다고 생각되어서 죄송합니다. 귀하의 알고리즘은 Moravec's algorithm의 단순한 버전처럼 보입니다. 이것은 가장 단순한 코너 감지 알고리즘 중 하나입니다. 합계 제곱 차이와 같은 접근 방식과 달리 효과적으로 테스트 한 하드 코드 된 한계는 단계별 함수를 단계별로 테스트합니다. 이것은 거의 확실하게 당신이 감지 기능에서 불연속성을 가질 것입니다.

또한 Moravec과 동일한 문제가 있습니다. 즉, 가장자리가 고려되는 이웃 방향에 대해 기울어 져 있으면 감지되지 않습니다.

개발 알고리즘이 재미 있고 업무상 중요한 프로젝트가 아니라면 꼭 손질하고 실험 해보십시오 (내 의견에 따라 연기하지 마십시오). 그러나 실제로는 거의 모든 실용적인 문제에 대해 해결하려는 작업에 대한 더 나은 알고리즘이 거의 확실하게 존재합니다. 진정한 도전 과제는 전문가가 설계 한 기존의 잘 이해 된 접근 방식을 사용하여 문제를 해결할 수있는 방법으로 문제를 가장 잘 모델링 할 수있는 방법을 식별하는 것입니다.

특히 경계 사례와 최악의 경우 런타임에 대한 강력한 식별 및 분석은 까다로운 비즈니스입니다. 당신이 전문가적인 알고리즘가가 아니라면, 당신은 어려워 질 것입니다. 그러나 나는 당신이 노력함으로써 스스로 이것을 발견하도록 분명히 권합니다. nlucaroni에는 분석을위한 출발점으로 사용할 몇 가지 훌륭한 질문이 나와 있습니다.

+0

고맙습니다. 마커리스 증강 현실 시스템입니다. 사용할 수있는 라이브러리를 많이 보았지만 모든 좋은 라이브러리는 무료가 아닙니다. 나는 SIFT와 SURF를 시도했지만 둘 다 천천히 그래서 나는 내 자신을 만들기로 결심했다. 나는 (나는 발견 할 것 중 하나 인) sign 기호의 그림을 열었고, 나는 "재미있는 점"에 점을 넣었고, 그들은 모퉁이가되었다. 나는 그것들을 탐지하는 알고리즘을 생각해 내고 이것이 내가 가진 것이다. 이 목적에 적합한 알고리즘을 알고 있다면 알려주십시오. Thanks again :) :) –

+0

재미 있습니다. 나는 위키 피 디아 페이지를 답안과 좋은 시작점 인 http : //en.wikipedia.org/wiki/Edge_detection으로 링크시켜 보라고 권하고 싶다. 귀하의 코드는 이미지 위에 약간의 3x3 커널을 실행합니다. 기본적인 프레임 워크와 같은 접근 방식으로 꽤 많은 이미지 프로세싱 트릭을 수행 할 수 있습니다. 행운을 빕니다! –

+0

그냥 레코드를 위해서 C#으로 해봤지만 만족 스럽다고 말할 수는 없지만 관심 지점 탐지 알고리즘을 쓸 수 있다는 것이 기이하다. 400x600 사진의 모든 점을 감지하는 데 거의 1 초가 걸립니다. 그럼에도 불구하고 좋은 학습 경험이었습니다. ire_and_curses에 감사드립니다. 그 페이지를 살펴 보겠습니다. 신의 축복이 가득합니다 :) –

2

왜 시도해보고 예상대로 작동하는지 확인하지 않으시겠습니까? 꼭 그래야 할 것 같은데. 성능은 다른 방법과 어떻게 비교됩니까? 알고리즘의 복잡성은 무엇입니까? 그것은 다른 사람들과 비교하여 효율적입니까? 어디에서 개선 될 수 있습니까? 어떤 종류의 가양 성 및 위음성이 예상됩니까? 이 데이터를 사용하려는 이유로 데이터가 합리적입니까? 주위의 사각형을 비교하기 위해 임계 값을 사용해야합니까? ....

이것은 당신이해야하는 일이며 우리는해야 할 일이 아닙니다.

1

SIFT 알고리즘을 살펴 보시기 바랍니다. 이미지의 관심 지점에 대한 표준입니다. 불행히도, 그것도 특허가 있기 때문에 그것도 좋습니다.

SIFT의 실시간 버전에 관심이 있으시면 GPU에서 실행할 수 있지만 지금은 매우 실험적입니다. 상용 응용 프로그램을 개발하는 경우 SIFT를 사용하기위한 라이센스를 먼저 구매하거나 David Lowe의 승인을 받아야합니다.

+0

OP가 이미 SIFT를 시도했습니다. 내 대답에 대한 의견을 참조하십시오. –

+0

네, 포인터 주셔서 감사합니다. SIFT에 대한 그의 주요 불만은 너무 느리다는 것입니다. 실제로 GPU 나 FPGA에서 실행하기에 충분한 피와 땀으로 더 빨라질 수 있습니다. – ldog

+0

해답을 가져 주셔서 감사하지만 GPU에서 실행하는 것은 옵션이라고 생각하지 않습니다.이 문제에 대해서는 언급하지 않았으므로 궁극적 인 목표는 Android에서 실행하는 것입니다. –

관련 문제