👨🏻‍💻Project

[졸업작품 프로젝트] OpenCV를 이용한 자율주행차 제작 준비

Cocoon_ 2020. 4. 4. 07:40
반응형

 

안녕하세요 cocoon입니다. 요즘 코로나19로 인해 분위기도 안 좋고 대학교도 한 학기 전부 사이버강의 진행해서 말이 많은 것 같습니다. 맨날 집에만 있다 보니 답답하기도 하고(집돌이라 그래도 심심하지는 않은 것 같아요.. ㅎㅎ) 자꾸 나태해지는 거 같아요 ㅜㅜ 원하는데 취직하려면 그래도 열심히 해야죠^^ ㅎㅎ....  

아무튼 올해 기계공학과 4학년이 되면서 졸업논문도 준비해야하는데 논문 주제를 최적 설계나, CDF, 유한요소 설계 등등 과에 관련된 거보다 아무래도 진로를 프로그래머 쪽으로 잡았기 때문에 평소에 관심 있었고 대학 생활하면서 꼭 제작해보고 싶었던 작품을 만들어 보는 게 낫겠다고 생각했습니다. 그래서 마침 2~3학년 때 스마트 디자인 캠프나 해커톤 하면서  개발 보드랑 센서를 많이 모와놔서 부품들을 활용해서 자율주행 자동차를 만들어 보려고 합니다.

물론 아두이노와 전방에 초음파 달고 모터를 달기만 한 작품은 너무 간단한것같아서 카메라 모듈을 이용해 영상 처리하여 차선 유지, 곡선주행을 구현해보려 합니다. 작년에 친구가 졸업작품 만든다고 라즈베리파이로 카메라 영상을 웹 스트리밍 하는 것을 도와줬었는데 많이 어려웠었습니다. OpenCV를 활용하는 것은 아무래도 처음 하는데 많이 어려울 것이라고 예상됩니다.

 

 

1주차, 2주 차는 주제 선정하고 PPT 만들어서 팀즈(화상회의 프로그램)로 발표를 했네요. 이번 주가 3주 차인데 4월 1일 수요일에 용산 전자랜드에 다녀와서 필요한 부품들(바퀴, 조향 부품, 모터, 모터 드라이버, 초음파 센서, 다이오드 등등)을 구매하였습니다. 검정 종이와 하드보드지는 시험 주행할 트랙을 만드려고 합니다.

 

 

제작 목표중에서 가장 중점적으로 둘 것은 차선 유지, 표지판, 신호등 인식일 것 같습니다. 전방을 촬영할 파이 카메라를 2개 사용하고 1번 카메라는 차선 영상, 2번 카메라는 표지판, 신호등 인식에 사용하여 데이터를 아두이노로 전달하면 모터 출력을 제어하는 방식으로 제작할 예정입니다. 그리고 초음파 센서는 6개를 사용하여 6방향으로 설치하고 장애물 감지 시 아두이노에서 인터럽트를 걸어 정지할 수 있도록 합니다. 그리고 초음파 센서 데이터만으로 자율주차를 구현하려 합니다.

그리고 트랙은 위에 그림과 같이 주차, 터널, 곡선, 신호등, 경사, 회전교차로, 차량추월과 같은 항목들을 테스트할 수 있게 하드보드지와 종이, 노란 테이프로 제작합니다.

 

 

 

 

제일 중요한 부분인데 영상처리 쪽으로는 처음 공부해봐서 많이 생소하고 어려울 것 같습니다. 대략적으로 조사한 내용으로는 원본 영상을 흑백 영상으로 만들고 그것을 가우시안 필터링을 통해 단순한 이미지로 변환하고 허프 변환을 사용해서 직선을 추출해내서 소실점을 찾는다고 합니다. 그 소실점 좌표를 통해서 조향을 컨트롤할 예정입니다. 그리고 표지판 같은 경우에는 템플릿 매칭이라는 방법이 있는데 비슷한 이미지를 찾아서 인식하는 기법입니다. 하지만 이미지의 크기가 달라지면 정확도가 많이 떨어진다는 단점이 있어서 경계선을 추출하거나 다른 방안을 조사해 봐야 할 것 같습니다.

 

 

 

<주행 알고리즘>

알고리즘 관해서는 https://cccding.tistory.com/110여기 자료를 참고하였고 저기서 추가적으로 조도센서나 LED 제어, 그리고 주차 알고리즘도 추가할 예정입니다. 

반응형