2012-07-23 2 views
9

두 개의 이미지가 있다고 가정합니다. 하나에는 작은 아이콘 (예 : 300X300 픽셀 미만)이 있습니다. 두 번째 아이콘은 매우 큰 아이콘으로, 아이콘의 크기가 작은 (예 : 다른 크기, 회전) 아이콘이 하나 또는 여러 개 있습니다.특징 감지 - 큰 그림의 작은 항목

큰 이미지에서 아이콘의 인스턴스를 찾는 것입니다. 너희들이 어떻게이 접근하고 있니?

OpenCV 라이브러리를 사용하여 피처 기반 개체 검색을 사용하려고했지만 많은 수의 기능 이미지가 포함 된 붐비는 큰 이미지의 경우 일치가 결정적이지 않습니다. 나는 BRUTE/FLAN 매칭 알고리즘으로 SURF/OBJ 피쳐 추출기를 시도했다.

내 경험에 따르면 두 이미지의 특징점 사이의 기하학적 관계에 대해 아무런 메모가없는 것처럼 보입니다. 시각화 도움으로 두 개의 예제 이미지의 특징 지점 인스턴스를 첨부했습니다. enter image description here

그리고 더 어려운 사례가 있습니다. 큰 이미지의 아이콘을 강조 표시했습니다. enter image description here

+1

거기에는 상당히 다른 색상이있는 것 같습니다. 해당 색상에 대한 얼룩 탐지로 먼저 검색 한 다음 해당 영역으로 제한된 기능 탐지로 포즈를 찾아 오탐 (false positive)을 제거하는 2 단계 프로세스를 시도 할 수 있습니다. 이미지의 너무 많은 부분이 밝은 빨간색이면 완전히 실패 할 것입니다 ... – Hammer

답변

4

제한된 경험에 비추어 볼 때이 유형의 문제에 부딪히는 다른 모든 사람들에게 3 가지 권장 사항이 있습니다. FindObject by Mathieu Labbé

1) 실험이 나를 특징 검출/설명 설정의 좋은 조합을 찾기 위해 신속하게 실험을 도왔다 아주 좋은 도구입니다. 아이콘을 객체로로드하고 샘플 큰 이미지를 장면으로로드하십시오. 그런 다음 응용 프로그램에 대한 신뢰할 수있는 결과가 나올 때까지 미세 조정하십시오. 보너스로 그는 최근 BRISK 및 FREAK 특허가없는 기능 감지/설명 방법을 추가했습니다.

2) 실제 해상도

해상도 당신의 아이콘 객체와 당신이 찾고있는 큰 장면에서 실제 아이콘 그래서 다른를 가져옵니다. 내 이해에서, 이러한 방법의 규모 불변성은 실제로 매우 제한적입니다. 우수한 comparisons done by Ievgen Khvedchenia을 확인하십시오. 이미지를 원하는 범위의 중간에 크기를 조정하면 더 나은 결과를 얻을 수 있습니다.

3)) 아이콘 샘플 이미지보다, 예를 들어 (사실 흐리게 확인

# 2 관련, 나는 좀 더 사실적인 장면에서 검색 매우 날카로운 샘플 이미지를 가진 것은하지 않는 것으로 나타났습니다 잘 작동합니다. 나는 예리한 샘플에 가우스를 적용하여 내가 기대하는 것과 비슷하게 만든다. 아래 예가 있습니다. 이상한 수식은 커널 차원이 필요에 따라 홀수가되도록합니다.

def proportional_gaussian(image): 
    kernel_proportion = 0.005 
    kernel_w = int(2.0 * round((image.shape[1]*kernel_proportion +1)/2.0)-1) 
    kernel_h = int(2.0 * round((image.shape[0]kernel_proportion +1)/2.0)-1) 
    return cv2.GaussianBlur(image, (kernel_w, kernel_h), 0) 

누군가를 돕는 희망.

2

기능 일치 방식이 좋습니다. 색상을 사용할 수있는 경우 전처리를 사용하여 histogram backprojection과 같은 관심 영역을 찾은 다음 얼룩 추출과 일부 모양 분석을 수행합니다.

큰 이미지의 모든 기능을 작은 이미지와 일치시켜야합니다. 그 결과 많은 inliers와 많은 일치가 발생합니다.

아이콘이 평면이므로 일치에 대한 기하학적 구속으로 호모 그래피를 사용할 수 있습니다. 한 줄의 코드를 작성하지 않고 OpenCV 소스의 samples 디렉토리에서 찾을 수있는 "descriptor_extractor_matcher"샘플 OpenCV를 사용해보십시오.

./descriptor_extractor_matcher SURF SURF BruteForce NoneFilter icon.jpg image.jpg 3 

자세한 내용은 descriptor_extractor_matcher의 도움말을 참조하십시오.

이미지의 순서를 바꿀 수도 있지만 어떤 이미지가 트레이닝 이미지이고 어떤 이미지가 쿼리 이미지인지 기억하지 못할 수도 있습니다.

물체 감지 이런 종류의 논문은 데이비드 로우에 의해"스케일 불가 키포인트에서 독특한 이미지 기능"이다. 이 논문의 7.3 절에서 당신의 경우 인 것처럼 보이는 매우 낮은 inlier/outlier 비율을 다루는 그의 접근법을 설명합니다.

행운을 빌어 요!

관련 문제