이미지에서 라인의 대비도(contrast) 및 회전표류(rotational drift) 변화에 대한 FindLine 툴의 정확성(Accuracy) 및 강건성(Robustness)에 대한 평가
본 글은 실험적평가를 통해 FindLine 툴의 라인의 회전변화에 대한 정확성 및 강건성에 대한 성능결과를 제시한다.
본 글은 실험적평가를 통해 FindLine 툴의 라인의 회전변화에 대한 정확성 및 강건성에 대한 성능결과를 제시한다.
비전프로에서 FindLine와 LineMax 툴은 모두 2D 이미지에서 라인을 찾는 용도로 사용한다. 지금까지 알려진 내용으로는 성능면에서 FindLine은 보다 빠른 처리속도를 보여줬지만 기타 측면에서의 성능은 공식적으로 알려지지 않았다. 본 글은 라인의 회전표류 및 대비도 변화에 따른 FindLine 툴의 성능을 분석하고 결과를 보여주고자 한다.
FindLine툴의 회전표류에 대한 강건성을 평가하기 위해서 이미지에서 라인을 생성하는 합성방법을 구현했고 해당 방법으로 구성된 데이타셋으로 평가를 진행했다. 회전표류는 크게 두 요인으로 결정할 수 있는데 그중 하나는 라인의 회전각도이다. 이는 라인의 회전각도에 따라 앨리어싱 (aliasing) 효과때문에 표류편차가 달라질수 있는데 가장 쉬운 예로 완전 수직 혹은 수평인 라인의 경우 검출된 라인의 각도오차가 아주 적은데 비해 실제로 살짝 회전된 라인인 경우 검출된 라인의 회전오차가 커진다. 다른 하나는 라인의 대비도(contrast) 인데 대비도의 높낮이에 따라 라인 프로파일 (line profile)의 경사도가 달라지는데 이로 인해 라인의 검출오차가 영향을 받을 수 있다. 따라서 종합적인 평가를 위해서는 합성된 라인 데이타셋에서 라인의 회전 및 대비도에서 모두 충분한 다양성을 확보해야 한다.
앞서 언급하듯이 보통 라인의 대비도를 라인 프로파일의 경사도(gradient) 라고도 표현하는데 경사도가 높을 수록 대비도도 높아 라인이 더욱 선명해진다. 합성된 라인이 다양한 대비도를 가지기 위해서는 라인 프로파일의 경사도를 모델링 할수 있어야 하는데 이에 따라 본 실험에서는 가우시안 함수 에 기반한 라인 대비도 조절 방법을 사용했다. 가우시안 함수는 정규분포를 가지는 확률밀도함수로서 두 개의 파라미터인 기대값 μ와 편차 σ²로 표현되는데 해당 수식은 다음과 같습니다:

그리고 위 수식을 통해 모델링된 가우시안 함수 그래프는 다음 이미지처럼 다양한 경사도를 가진 모양으로 조절이 가능하다.

실제로 기대치값 μ의 변화는 x축상에서 그래프의 위치변동만 가져올 뿐 모양은 변하지 않는데 비해 편차인 σ² 값은 그래프의 모양을 크게 변화할 수 있는데 이는 그래프의 경사도를 변화시키는 것으로 볼 수 있다. 위 관찰을 통해 가우시안 함수 그래프는 다양한 대비도를 표현할 수 있는 라인의 프로파일을 생성하기 위한 좋은 모델이라는 것을 알 수 있다. 아래 이미지는 해당 방법으로 생성된 합성 라인 및 해당 라인의 프로파일 이다.


여기서 σ는 가우시안 함수의 표준편차를 의미하고 rot = 0 이라는 것은 생성된 라인의 회전각도가 0도 (수직방향과 일치)라는 것이다. 그리고 대비도(Contrast)값은 비전프로(VisionPro)의 캘리퍼 툴(Caliper Tool)을 통해 측정된 값이다. 그래서 위 그림에서 보여주는 라인 프로파일은 실제로 가우시안 함수에서 표준편차를 1.6으로 설정해서 생성된 그래프와 일치하다. 물론 최종 라인생성에 적용할 때 해당 그래프는 스케일링을 통해 그래프에서 가장 높은 y축의 값을 바닥보다 128 높게 설정했다. 아래 이미지들은 다양한 라인 회전각도랑 대비도를 넣어서 생성된 것인데 보시다시피 가우시안의 표준편차 σ값은 라인의 대비도를 결정하는데 중요한 역할을 하게 된다. 생성된 라인 이미지들을 자세히 비교해 보면 표준편차 σ값이 커짐에 따라 해당 라인의 대비도의 절대값 크기도 상응하게 작아진다.






아래는 본 실험에서 사용된 FindLine 툴의 각 파라미터 설정인데 모든 라인의 검출과정에서 동일한 파라미터를 사용했다.



본 성능평가를 위한 라인 데이타를 생성하기 위해 사용된 표준편차는 [0,2, 8.0]구간에서 54개의 샘플링을 진행했고 라인 회전각도는 [-3, 3] 구간에서 61개의 회전값을 사용해 총 3294개의 라인을 만들었다. 아래 그래프는 생성된 각 라인에 대한 회전표류오차를 측정 후 3D 막대 그래프(3D bar graph)로 표현한 것이다.

위 3D 막대그래프를 통해 다음과 같은 관찰결과를 도출 할 수 있다:
제안된 라인합성방법은 합성과정에서 낮은 샘플링주기의 적용으로 인해 실제의 라인보다 앨리어싱효과가 더 두드려지게 보일 수 있다. 최근엔 대다수 카메라는 이미지품질향상기술의 적용으로 인해 이러한 앨리어싱효과를 큰폭으로 줄여 부드러운 라인 이미지를 보여준다. 그럼에도 같은 이유로 카메라에서 생성된 라인이 너무 얇을 경우 라인이 회전각도에 따라 각도편차의 주기적인 변동폭이 커질 수 있다.
실험결론:
추가설명2: 위에서 언급한 라인검출 툴의 이름과 진행된 실험은 VisionPro 9.23 버전에서 유효하다.