팀 프로젝트/자율주행 개발(baqu4)

[Python] OpenCV로 자율주행 만들기(Threshold_#03)

MIRIP 2022. 10. 31. 15:09
반응형

이전 포스팅과의 차이점

 먼저 이전 포스팅을 보고 싶다면 아래 링크를 참조하기 바란다.

 

[Python] OpenCV로 자율주행 만들기(Threshold_02)

성과물 : 먼저 OpenCV를 활용하여 만든 지금까지의 자율주행 성과물을 보여주겠다. 실로 대단하였다.  위의 이 영상은 자율주행을 시연하기 전 콘을 인식하여 가상의 차선을 그어본 것이다. 이것

codezaram.tistory.com

 위의 포스팅과 다르게 콘의 규정이 바뀌었다.

 

원래는 색상에 관계없이 좌우 차선에 가까운 점들을 모아서 왼쪽 점 집합, 오른쪽 점 집합을 만들었다.

하지만 이제는 오른쪽 콘은 노란색, 왼쪽 콘은 파란색, 정지선은 빨간색 순으로 콘들을 색깔로 구분해야 한다. 내가 개발한 코드는 전처리를 거쳐 이미지를 가공한 후 이미지에서 콘을 추출하는 형식으로 되어있다. 따라서 전처리가 매우 중요한데, 콘의 색상과 크기, 종류가 전부 달라져서 이에 따라 코드도 대대적으로 수정해야 했다.

기존 콘
새로운 콘

# HSV 색상 공간을 사용한 이유

 원래는 가장 기본적인 RGB값으로 인식을 하려고 했다. 하지만 콘만 정확하게 분류하지 못했다. 그래서 색상(Hue), 채도(Saturation), 명도(Value)로 이루어지며 가장 사람이 보는 것과 비슷한 HSV색상 공간을 사용하였다. HSV를 사용한 가장 큰 이유는 색을 RGB와 다르게 채도, 명도도 고려할 수 있기 때문에, 배경보다 채도와 명도가 높은 콘을 효과적으로 분류할 수 있을 것이라 생각했기 때문이다. HSV 색 공간에 대해 더 자세히 알고 싶다면 아래 사이트를 참조하기 바란다.

 

HSV 색 공간 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. HSV 색 공간 또는 HSV 모델은 색을 표현하는 하나의 방법이자, 그 방법에 따라 색을 배치하는 방식이다. 색상(Hue), 채도(Saturation), 명도(Value)의 좌표를 써서 특정한

ko.wikipedia.org

나의 예상대로 HSV 색 공간을 사용하니 더 정확하게 색들을 분류할 수 있었다.

 

결과

 

 

hsv 색상 영역으로 분류한 콘

다음과 같이 파란색과 노란색, 빨간색 콘이 제대로 인식이 됨을 확인할 수 있었다. 그러나 차체에 파란색이 인식되는 노이즈가 발생하여 파란색 차선이 적절하게 생성되지 않았다.

 

더 나은 알고리즘을 만들기 위한 개선점

더 엄격하게 hsv 영역을 통제해야 한다.

그러기 위해 다양한 실험들이 필요하다. 실험을 통해 hsv 영역을 한정한다면 더 나은 결과를 얻을 것이라 확신한다.

또한 관심영역(ROI) 지정이 올바르게 되어있지 않아 멀리까지 인식할 수 없다는 한계가 있었다. 이러한 점을 해결하기 위해 관심영역을 지정하는 행렬(matrix)의 크기를 더 늘려야겠다고 생각하였다.

 

더 나은 알고리즘을 만들기 위해 노력하겠다.

728x90
반응형