개요
이전 시간에 특징점 쌍들의 위치를 변화시켰을때 오차의 총합이 가장 적은 변환행렬을 구했다. 하지만 여기서 특징점 쌍들중 잘못 매칭되어 정상 변환과 크게 벗어나는 쌍들이 있을 수 있다. 이런 쌍들은 최종 변환 행렬의 정확도를 떨어트린다.
정상적으로 매칭되어 정상 범주의 변환을 기대하는 특징점 쌍들을 inliers 아닌 쌍들을 outliers라고 한다.
RANSAC은 특징점 쌍들중 outliers를 쳐내고 inliers만 남기는 알고리즘 중 하나이다.
RANSAC
RANSAC은 다음 단계로 처리된다.
1. 샘플 쌍 개수를 정한다. 보통 사용할 변환 행렬을 정의할 수 있는 최소 쌍 개수로 정한다. (이동행렬이면 1개, 아핀이면 3개, homograph면 4개)
2. 전체 특징점 쌍중 샘플 쌍 개수만큼 랜덤으로 고른다.
3. 해당 쌍들로 변환행렬을 만든다.
4. 각 특징점 쌍들중 한 특징점을 변환행렬로 변환하고 비교하여 오차를 계산한다.
5. 오차가 일정 이하면 inliers, 이상이면 outliers로 임시 분류한다.
6. 2~5처리를 여러번 반복한다.
7. 그중 inliers가 가장 많이 나온 샘플의 inliers를 최종 inliers로 사용한다.
8. 그렇게 구한 inliers만 이용하여 변환행렬을 구한다.
'인공지능 > 컴퓨터비전' 카테고리의 다른 글
[컴퓨터비전개론][9장]Camera (0) | 2023.04.22 |
---|---|
[컴퓨터비전개론][7장]Image alignment (1) | 2023.04.22 |
[컴퓨터비전개론][6장]Transformations (0) | 2023.04.06 |
[컴퓨터비전개론][5장]feature descriptor (0) | 2023.04.03 |
[컴퓨터비전개론][4장]feature detection (0) | 2023.03.29 |