Scikit-image Ransac 알고리즘 문제 분석

김대현·2021년 12월 19일
0
post-thumbnail

위 사진과 같이에서 _dynamic_max_trails라는 동일한 이름을 가진 함수가 있습니다. 이 함수는 모두 주어진 outlier 대비 inlier의 비율에 대해 하나 이상의 outlier가 없는 부분 집합이 표본으로 추출되도록 시행 횟수를 결정하는 함수입니다. 즉 쉽게 말해서 Ransac 알고리즘이 이미 구해진 outlier ,inlier를 활용해서 사용자가 이미 하이퍼파라미터로 입력한 고정된 ransac 알고리즘의 최대 시행 횟수와 달리 ransac 알고리즘의 수행 결과에 따라서 수행 횟수를 달리 하는 함수입니다.

[scikit-image 사진]

[sklearn사진]

여기서 두드러지는 차이점은 아래 그림과 같이 probability의 값을 처리하는 방식입니다

위 그림에서 sklearn은 처리 코드가 없으나 scikit-image에서는 probability값이 1인 경우 무한대를 리턴하고 있습니다.

이떄 이 1이라는 값은 scikit-image에서는 default 값입니다. Sklearn에서는 통상적으로 default값으로 많이 사용하는 0.99를 사용했습니다.

만약 사용자가 scikit-image에서 stop_probability값을 입력하지 않으면 _dynamic_max_trails 함수는 무한대를 리턴하여 사실상 _dynamic_max_trails를 이용 하지 못하게 되는 문제점이 있습니다. 이에 반해 sklearn에서는 0.99로 설정하여 사용자가 딱히 입력하지 않아도 _dynamic_max_trails를 잘 사용할 수 있습니다.

profile
Computer Vision & NLP의 세계를 탐험하는 Astro

0개의 댓글