🖐 들어가면서.
openCV의 기본적인 내용들을 학습하고, 본격적으로 자율주행을 구현하기 위해 필요한 것들을 찾기 시작했습니다. openCV 패키지를 이용해 봄으로써, 자율주행에 사용되는 각 기능들의 기초적인 원리를 이해할 수 있었고, openCV 패키지를 시작으로 자율주행을 구현하기 위해 어떤 기능들이 필요하고 사용 되는지 학습하고자 합니다.
🔗 openCV의 기본적인 내용 학습
📺 참고한 유투브 : www.youtube.com/user/Mhproductionhouse
📋 내가 정리한 글 :
- [ openCV | C++ ] 머신비전 이해를 위한 openCV 기초 리뷰
- [ openCV | C++ ] 기본기. 이미지에 도형 추가 / 라벨링 하는 방법
- [ openCV | C++ ] 기본기. 얼굴 인식(검출) 방법과 벡터 변수의 활용
🚀 자율주행 구현을 위해 필요한 기능
개념적으로 가장 이해하기 쉬웠던 그림이었던것 같습니다.
(출처 : www.youtube.com/watch?v=aXqoPiMPhDw&t=166s 166초에 딱 나오는 그림입니다.)
중앙 제어장치(서버 역할의 Main)가 있구요. 메인으로 각 기능을 가지는 모듈을 연결해 두는 구조입니다. 몇 가지만 설명을 하면, 카메라는 연속된 이미지 데이터(=영상)를 입력 데이터로 전달해줍니다. 그럼 메인에서는 Lane 검출 모듈로 이미지를 인풋으로 보내게 되고, 레인 위치 데이터를 프로세싱한 후 다시 메인으로 전달합니다. 또한, 이미지를 Tracking 모듈로도 보낼 수 있겠죠. 트랙킹 모듈에서는 자동차 또는 표지판을 검출하여, 검출된 위치 데이터 또는 판단한 정보를 메인에 전달합니다. 최종적으로는 수집한 데이터를 기반으로, 자동차 조향(Ps4 컨트롤러) 또는 속도 제어 시스템(Motor 모듈)으로 지시를 내릴 수 있을 것이고, 그 정확도와 개입 정도에 따라 자율주행 모델을 정의 할 수 있을 것 같습니다. Ps4 모듈은 자율주행 딥러닝 모델을 훈련을 시키기 위해 사전에 사용되는 컨트롤러입니다. 이 컨트롤러를 이용해 이미지 데이터와 조향 및 가속 신호 입력 데이터를 훈련 데이터로 사용하고 있습니다.
정말 큰 범주의 대략적인 개념은 잡힌 것 같습니다. 그럼 더 구체적으로 하나씩 뜯어보도록 하겠습니다.
🤔 뜯어 봐야 할 모듈. 🔫 (계속해서 업데이트 예정.)
1. 차선 검출 기능
1.1 엣지검출 기초(Canny Edge detector, 그 외)
1.2 Hough Line Transform ⬇️
[ openCV | C++ ] Hough Line Transform 이론편.
[ openCV | C++ ] HoughLines 함수 사용 방법.
[ openCV | C++ ] HoughLinesP 함수 사용 방법. (+HoughLines함수와 비교)
2. 사물 검출 기능
2.1 앞차와의 거리측정 기능
2.2 표지판 검출 기능
3. 차종 판단(소형, 대형, 버스) 기능(딥러닝?)
4. 메인(중앙 제어 장치)으로 들어온 데이터를 통합/보정
4.1 차량 제어 모델 만들기 ?
4.2 딥러닝 모델 만들기 ?
🔗 개념 잡기 위해 참고할 글.
1. Exclusive: The Tesla AutoPilot – An In-Depth Look At The Technology Behind the Engineering Marvel
'[ C++ ]' 카테고리의 다른 글
[ openCV | C++ ] Hough Line Transform 이론편.개념정리. (2) | 2021.03.23 |
---|---|
[ openCV | C++ ] approxPolyDP 함수 사용 방법. (0) | 2021.03.17 |
[ openCV | C++ ] drawContours 함수 사용 방법. (0) | 2021.03.07 |
[ openCV | C++ ] 비주얼 스튜디오 코드(Visual Studio Code)에서 openCV 환경 설정 하는 방법(맥 버전) (11) | 2021.03.05 |
[ openCV | C++ ] findContours 함수 사용법, 입력 출력(포인트) 값의 이해 (0) | 2021.02.23 |