Skip to Main Content
Cognex 지원 허브
Logo

이미지에서 라인의 대비도(contrast) 및 회전표류(rotational drift) 변화에 대한 FindLine 툴의 정확성(Accuracy) 및 강건성(Robustness)에 대한 평가

본 글은 실험적평가를 통해 FindLine 툴의 라인의 회전변화에 대한 정확성 및 강건성에 대한 성능결과를 제시한다.

2025. 05. 15.

Details

비전프로에서 FindLine와 LineMax 툴은 모두 2D 이미지에서 라인을 찾는 용도로 사용한다. 지금까지 알려진 내용으로는 성능면에서 FindLine은 보다 빠른 처리속도를 보여줬지만 기타 측면에서의 성능은 공식적으로 알려지지 않았다. 본 글은 라인의 회전표류 및 대비도 변화에 따른 FindLine 툴의 성능을 분석하고 결과를 보여주고자 한다.

FindLine툴의 회전표류에 대한 강건성을 평가하기 위해서 이미지에서 라인을 생성하는 합성방법을 구현했고 해당 방법으로 구성된 데이타셋으로 평가를 진행했다. 회전표류는 크게 두 요인으로 결정할 수 있는데 그중 하나는 라인의 회전각도이다. 이는 라인의 회전각도에 따라 앨리어싱 (aliasing) 효과때문에 표류편차가 달라질수 있는데 가장 쉬운 예로 완전 수직 혹은 수평인 라인의 경우 검출된 라인의 각도오차가 아주 적은데 비해 실제로 살짝 회전된 라인인 경우 검출된 라인의 회전오차가 커진다. 다른 하나는 라인의 대비도(contrast) 인데 대비도의 높낮이에 따라 라인 프로파일 (line profile)의 경사도가 달라지는데 이로 인해 라인의 검출오차가 영향을 받을 수 있다. 따라서 종합적인 평가를 위해서는 합성된 라인 데이타셋에서 라인의 회전 및 대비도에서 모두 충분한 다양성을 확보해야 한다. 

앞서 언급하듯이 보통 라인의 대비도를 라인 프로파일의 경사도(gradient) 라고도 표현하는데 경사도가 높을 수록 대비도도 높아 라인이 더욱 선명해진다. 합성된 라인이 다양한 대비도를 가지기 위해서는  라인 프로파일의 경사도를 모델링 할수 있어야 하는데 이에 따라 본 실험에서는 가우시안 함수 에 기반한 라인 대비도 조절 방법을 사용했다. 가우시안 함수는 정규분포를 가지는 확률밀도함수로서 두 개의 파라미터인 기대값 μ와 편차 σ²로 표현되는데 해당 수식은 다음과 같습니다:

Placeholder

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

Placeholder

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

Placeholder
σ =1.6, rot = 0, Contrast = 84.197
Placeholder
라인 프로파일 (profile of line)

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

Placeholder
 =0.25, rot = -3, Contrast = -127.449
Placeholder
 =1.0, rot = -2, Contrast = -117.909
Placeholder
 =2.0, rot = -1, Contrast = 72.1869
Placeholder
 =3.0, rot = 1, Contrast = 50.2021
Placeholder
 =5.0, rot = 2, Contrast = 31.1415
Placeholder
 =8.0, rot = 3, Contrast = -20.0909

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

Placeholder
Placeholder
Placeholder

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

Placeholder

위 3D 막대그래프를 통해 다음과 같은 관찰결과를 도출 할 수 있다:

  1. 각도편차는 대부분의 경우에서 라인의 대비도 및 각도 변화에 대해 비교적 낮은 값(0.04도 보다 낮다)을 유지하고 가장 높은 편차값도 0.1도를 넘지 않았다. 이는 FindLine의 파라미터를 적절히 잘 셋팅하는 경우 회전표류에 대해 충분히 높은 정확도를 획득할 수 있다는 것을 의미한다. 최적성능구간은 표준편차에서는 [3, 5] 구간 그리고 라인의 실제각도가 [-1, 1] 구간에서 측정이 되는데 실제로 이때의 평균편차는 0.0016보다 작다. 표준편차의 [3, 5]구간은 라인 프로파일에서 보자면 라인의 두께가 18-30 픽셀 사이로 나타난다. 여기서 알아야할 점은 해당 수치는 당 합성데이타셋에서의 측정결과이므로 실제 라인에서는 해당 구간이 라인의 특성 및 FindLine의 파라미터 셋팅에 따라 달라질 수 있다. 그럼에도 유사경향성으로 인해 실제 라인의 최적성능을 나타내는 라인두께구간은 너무 가늘거나 너무 두텁지 않을 것으로 추정된다. 
  2. 각도편차오류는 합성라인의 표준편차가 작을 때 라인의 회전각도에 따라 큰 변동폭을 보여준다. 이는 라인 이미지 생성 시 나타나는 엘리어싱 효과(aliasing effect)에 기인된 것이다. 또한 표준편차가 아주 작으면 그 현상도 더욱 두드러지는데 이는 생성된 라인 이미지 [σ =0.25, rot = -3, Contrast = -127.449]에서 보다 선명하게 확인이 가능하다. 해당 그림을 보면 수십개의 한두개 픽셀너비의 계단이 라인에 따라 나타난다는 걸 볼 수 있고 해당 계단의 개수는 라인의 각도에 따라 결정이 되는데 라인각도의 절대치가 클수록 계단개수도 많아진다. 이는 FindLine이 caliper의 출현빈도랑 관련이 있는데 (FindLine에서 각각의 caliper는 하나의 샘플링과정으로 볼 수 있고해서 여기서 출현빈도는 샘플링빈도를 의미한다.) 해당 출현빈도랑 라인의 계단빈도랑 매치가 잘 되면 각도편차가 작아지고 반대로 될 경우 각도편차가 커진다. 이것이 바로 라인의 회전각도변화에 따른 주기적인 변동을 가져오는 이유이다. 이런 주기적 편차변동을 감소시키려면 라인의 두께를 늘리면 된다.

제안된 라인합성방법은 합성과정에서 낮은 샘플링주기의 적용으로 인해 실제의 라인보다 앨리어싱효과가 더 두드려지게 보일 수 있다. 최근엔 대다수 카메라는 이미지품질향상기술의 적용으로 인해 이러한 앨리어싱효과를 큰폭으로 줄여 부드러운 라인 이미지를 보여준다. 그럼에도 같은 이유로 카메라에서 생성된 라인이 너무 얇을 경우 라인이 회전각도에 따라 각도편차의 주기적인 변동폭이 커질 수 있다. 

실험결론:

  1. FindLine는 일반적인 경우 회전표류에 대해 비교적 높은 각도 정확성을 보여준다. 각도정확성은 FindLine의 파라미터설정(특히 caliper 설정) 및 라인 프로파일의 특성에 의해 결정이 되는데 너무 얇거나 너무 두터운 라인은 각도정확성을 감소시킬 수 있다.
  2. FindLine의 회전표류에 대한 각도 정확도는 라인이 너무 얇을 경우 실제 라인의 회전각도에 민감하게 반응 할 수 있다. 각도 정확도의 변동을 줄이기 위해서는 아주 얇지 않는 라인을 사용하는 걸 추천한다.

추가설명2: 위에서 언급한 라인검출 툴의 이름과 진행된 실험은 VisionPro 9.23 버전에서 유효하다.

관련 자원