Development Tip

탐지기, 추출기 및 매처 분류

yourdevel 2020. 12. 12. 12:35
반응형

탐지기, 추출기 및 매처 분류


저는 opencv를 처음 사용하고 두 이미지 간의 이미지 일치를 구현하려고합니다. 이를 위해 기능 설명자, 설명자 추출기 및 설명자 매처 간의 차이점을 이해하려고합니다. 나는 많은 용어를 발견하고 opencv 문서 웹 사이트에서 그것들에 대해 읽으려고 노력했지만 개념에 대해 머리를 감쌀 수는 없습니다. 여기서 기본적인 차이점을 이해했습니다. 특징 감지와 설명자 추출의 차이점

하지만 주제를 공부하면서 다음과 같은 용어를 접하게되었습니다.

FAST, GFTT, SIFT, SURF, MSER, STAR, ORB, BRISK, FREAK, BRIEF

나는 FAST, SIFT, SURF가 어떻게 작동하는지 이해하지만 위 중 어느 것이 탐지기이고 어떤 것이 추출기인지 알아낼 수 없습니다.

그런 다음 매 처가 있습니다.

FlannBased, BruteForce, knnMatch 및 기타 일부.

몇 번 읽은 후 특정 매처는 여기에 설명 된대로 특정 추출기에서만 사용할 수 있다고 생각했습니다. OpenCV ORB 기능 탐지기는 어떻게 작동합니까? 주어진 분류는 매우 명확하지만 소수의 추출기에만 해당되며 float와 uchar의 차이점을 이해하지 못합니다.

그래서 기본적으로 누군가 제발

  1. 언급했듯이 float 및 uchar 또는 다른 유형의 분류를 기반으로 탐지기, 추출기 및 매처 유형을 분류합니까?
  2. float와 uchar 분류의 차이점 또는 사용되는 분류를 설명하십시오.
  3. 다양한 유형의 탐지기, 추출기 및 매처를 초기화 (코딩)하는 방법을 언급하십니까?

많은 것을 요구하는 것을 알고 있지만 매우 감사 할 것입니다. 감사합니다.


나는 FAST, SIFT, SURF가 어떻게 작동하는지 이해하지만 위 중 어느 것이 탐지기이고 어떤 것이 추출기인지 알아낼 수 없습니다.

기본적으로 기능 감지기 / 추출기 목록 (기사 링크 : FAST , GFTT , SIFT , SURF , MSER , STAR , ORB , BRISK , FREAK , BRIEF )에서 일부는 기능 감지기 ( FAST, GFTT ) 뿐입니다. 기능 감지기 및 설명자 추출기 ( SIFT, SURF, ORB, FREAK )

내가 올바르게 기억한다면 BRIEF 는 설명자 추출기 일 뿐이므로 FAST 또는 ORB와 같은 다른 알고리즘에서 감지 된 기능이 필요합니다.

어느 것이 어느 것인지 확인하려면 알고리즘과 관련된 기사를 찾아 보거나 opencv 문서를 찾아서 어떤 것이 FeatureDetector클래스에 대해 구현되었는지 또는 어떤 것이 클래스에 대해 구현되었는지 확인 해야합니다 DescriptorExtractor.

Q1 : 언급 한대로 float 및 uchar 또는 다른 유형의 분류를 기반으로 감지기, 추출기 및 매처 유형을 분류합니까?

Q2 : float와 uchar 분류의 차이점 또는 어떤 분류가 사용되는지 설명하십시오.

질문 1과 2와 관련하여 float 및 uchar로 분류하기 위해 이미 게시링크 가 내가 아는 가장 좋은 참조이며 누군가가 그것을 완료 할 수있을 것입니다.

Q3 : 다양한 유형의 검출기, 추출기 및 매처를 초기화 (코딩)하는 방법을 언급합니까?

응답 질문 3를 중심으로 하나의 기능 검출기를 선택해야 - OpenCV의 꽤 같은 다양한 유형을 사용하는 코드를했다. 대부분의 차이점은 매처 유형을 선택하는 데 있으며 OpenCV에있는 3 가지 유형을 이미 언급했습니다. 여기에서 가장 좋은 방법은 문서, 코드 샘플 및 관련 스택 오버플로 질문 을 읽는 것 입니다. 또한 일부 블로그 게시물은 Ievgen Khvedchenia의 이러한 일련의 기능 탐지기 벤치 마크 와 같은 훌륭한 정보 소스입니다 (블로그는 더 이상 사용할 수 없으므로 Google 캐시에서 원시 텍스트 사본을 만들어야 함).

매처 는 설명자가 목록의 다른 설명자와 유사한 지 확인하는 데 사용됩니다. 쿼리 설명자를 목록의 다른 모든 설명자와 비교하거나 ( BruteForce ) 더 나은 휴리스틱 ( FlannBased, knnMatch ) 을 사용할 수 있습니다 . 문제는 휴리스틱이 모든 유형의 설명자에 대해 작동하지 않는다는 것입니다. 예를 들어, FlannBased 구현은 float설명자 에서만 작동 하지만 uchar's 에서는 작동 하지 않는 데 사용되었습니다 (그러나 2.4.0부터 LSH 인덱스가있는 FlannBased는 uchar 설명자에 적용 할 수 있습니다).

유형 에 대한 이 App-Solut 블로그 게시물 인용 DescriptorMatcher:

DescriptorMatcher는 "FlannBased", "BruteForceMatcher", "BruteForce-L1"및 "BruteForce-HammingLUT"종류로 제공됩니다. "FlannBased"매처는 후드 아래에있는 flann (근사 가까운 이웃에 대한 빠른 라이브러리) 라이브러리를 사용하여 더 빠르고 근사치 일치를 수행합니다. "BruteForce- *"버전은 사전을 철저히 검색하여 사전에있는 단어에 가장 가까운 이미지 특징을 찾습니다.

더 많이 사용되는 조합은 다음과 같습니다.

특징 검출기 / Decriptor 추출기 / Matchers 유형

  • (FAST, SURF) / SURF / Flann 기반

  • (FAST, SIFT) / SIFT / Flann 기반

  • (FAST, ORB) / ORB / Bruteforce

  • (FAST, ORB) / BRIEF / Bruteforce

  • (FAST, SURF) / FREAK / Bruteforce

기능 감지기에 대한 몇 가지 어댑터 (Dynamic, Pyramid, Grid)가 있음 을 알 수 있습니다. App-Solut 블로그 게시물 은 그 사용법을 정말 멋지게 요약합니다.

(...) 키포인트 감지기의 동작을 변경하는 데 사용할 수있는 두 개의 어댑터도 있습니다. 예를 들어, Dynamic이미지에서 충분한 키 포인트가 발견 될 때까지 감지기 유형별 감지 임계 값을 조정하는 Pyramid어댑터 또는 다중 스케일에서 포인트를 감지하기 위해 가우시안 피라미드를 구성하는 어댑터. Pyramid어댑터는 규모의 불변 수없는 기능을 설명하는 데 유용합니다.

추가 읽기 :

참고URL : https://stackoverflow.com/questions/14808429/classification-of-detectors-extractors-and-matchers

반응형