와이드 애드


Canny Edge와 Hough Transform을 이용한 차선 검출(6) by Eyes33

지난 글에서는 Road_3.jpg 이미지에서 아래까지 차선 검출에 성공했습니다.

오른쪽 가드레일 안쪽에 있는 선을 검출해내는 것이 오늘의 목표입니다.
만약 Threshold를 더 낮추어서 안쪽의 차선을 검출하려고 시도했는데 도로의 얼룩 등에 의해서 차선이 아닌 엉뚱한 선을 검출해낸 경우, 이런 예외는 어떻게 걸러낼 수 있을까요?
제가 생각하는 해결책은 최초에 구해진 소실점을 이용하는 방법입니다.

우리가 처음 작업했던 Road_1.jpg의 결과 화면을 다시 봅시다.

위에서 검출된 파란색 차선은 최종적으로 선택된 차선입니다.
실제로는 저 차선을 검출하기 전에 다른 차선이 먼저 검출되었지만, 그 차선은 조건을 만족하지 못했기 때문에 다시 한 번 연산한 결과가 위와 같이 나온 것이죠.
사실 최초에 검출된 차선은 아래와 같은 모양이었습니다.

이 차선은 두 차선이 이루는 각도가 크기 때문에 1개의 차로가 아니라고 판단해서 제외되긴 했지만 아주 중요한 정보를 가지고 있습니다.
바로 두 차선이 만나는 점 소실점입니다.
이 소실점을 기준으로 해서 이후에(Threshold가 낮을 때) 검출된 직선은 소실점을 지나는 경우에만 차선으로 인정하고, 소실점을 지나지 않는다면 차선이 아니라고 무시해야 합니다.
예를 들어 아래와 같이 중앙선과 전봇대에서 직선이 검출된 경우 이 전봇대의 직선은 소실점을 지나지 않기 때문에 차선이 아니라고 판단할 수 있습니다.

직선이 소실점을 지나는지의 여부는 점과 직선의 거리를 구하는 아래 공식을 이용하도록 하겠습니다.


자, 이렇게해서 소실점을 이용해 검출된 직선이 차선인지 아닌지를 판단할 수 있게 되었습니다.
물론 이렇게 소실점을 이용하는 방법 외에도 차선의 여부를 판단하는 방법은 여러가지가 있습니다. 

오늘은 여기까지 하고 다음 시간에는 차선이 가지는 이미지로서의 특성을 파악해보고 우리 알고리즘을 조금 더 다듬어 보도록 하겠습니다.

덧글

댓글 입력 영역