Open Robotics
RANSAC(RANdom SAmple Consensus)을 이용한 Line Fitting Example view 발행 | RANSAC
방랑야옹이~ 2010.12.30 09:23
좋은 설명 자료 감사합니다.
소스를 분석하면서 한가지 궁금한 점이 있어서 글을 남깁니다.
distance_threadhold 값은 어떤 기준으로 설정하신건지 궁금합니다.

혹시 시간이 되신다면 답변 부탁 드립니다.
모델이 되는 직선으로부터 한 점이 떨어진 거리의 threshold 값을 결정합니다. 이 threshold 값 안에 들어오면 점은 inlier가 되고 threshold 값을 벗어나면 outlier가 됩니다. inlier가 된 점들은 직선 모델을 새로 계산하는데 포함이 됩니다.
threshold 값이 크면 노이즈가 모델에 많이 포함될 수가 있습니다. 반대로 threshold 값이 작으면 올바른 데이터가 모델을 계산하는데서 제외됩니다. 그러니까 데이터의 표준편차 값과 threshold 값이 비례한다고 보면 될것같습니다.
답변 감사드립니다.

한가지 더 질문을 드려도 될까요?

데이터 값들이 어떤 특징점을 중심으로 모여 있을 때 outlier 값을 필터링 하려고 하는데요.
직선 모델을 이용해서 필터링을 하면 outlier 값이 inlier 그룹으로 부터 멀리 떨어져 있어도
inlier값에 계산된 직선과의 거리가 임계치 안에 있을때는 필터링이 안되는 현상이 발생하는데,

혹시 RANSAC 을 이용해서 데이터 그룹과 동떨어진 곳에 있는 outlier 값을 추출할 수 있는
다른 방법이 있는지 알고 싶습니다.

바쁘신데도 불구하고 친절하게 설명해 주셔서 감사합니다.
특징점을 중심으로 모여있다면, 직선 모델을 사용하는 대신 점 모델을 사용하면 될 것같습니다. RANSAC은 정형화된 수행 절차이기 때문에 다양한 모델을 사용할 수 있습니다. 점, 직선, 원, 포물선, 사인곡선 등등... 시간이 되면 점 모델을 사용한 랜섹을 올려보겠습니다. 감사합니다.
감사합니다. 최근 제작하고 있는 프로그램에 Linear Square Method보다 간단한 알고리즘이 없을까 생각하다 이 블로그를 찾게 되었네요.
감사합니다. 하시는 일에 도움이 되었으면 합니다. ^^
소스 분석중에 질문 드립니다.

직선을 그리기 위한 점들은 sline에 저장 되어 있는 건가요?..

sline의 점들을 이어주면 되는건지 모르겠습니다..
예, sline에 저장되어있습니다. 하지만 (mx, my)와 (sx, sy)가 선분의 두 끝점은 아닙니다. 다음 소스코드를 참고하시기 바랍니다.


    if (100. < cost) {
        pDC->MoveTo((int)(line.sx-500*line.mx), (int)(line.sy-500*line.my));
        pDC->LineTo((int)(line.sx+500*line.mx), (int)(line.sy+500*line.my));
    }

안녕하세요. 혹시 2차 곡선 RANSAC도 짜보셨나요?
좋은 자료 올려주셔서 감사합니다. 활용해 보고자 합니다.
담아갈게요~~
새해복 많이 받으세요
안녕하세요 pdc->moveto와 pdc->lineto에서 500이 의미하는것은 무엇인가요?
좋은자료 감사합니다~!
구현한 ransac의 라인이 떨려서 결과에 최소자승법을 적용 했는데 90도만 되면 기울기 오류로 미쳐버리더군요.
여기 PCA소스로 해결 했습니다.
등록
텍스티콘 텍스티콘
RANSAC.pdf (178 KB) 다운로드
RANSAC_LineFitting.zip (77 KB) 다운로드
RANSAC_LineFitting.zip (77 KB) 다운로드
top