자율주행 31

OpenCV Hough Transform에 의해 추출된 직선의 속성 확인 : 개인별 과제

OpenCV에서 휴변환에 따라 line 요소가 구체적으로 어떤 형태로 얻어지는지 인위적인 그림 파일을 만들어 적용해 보자. 그림판을 사용하여 픽셀 해상도가 640 x 480 이 되도록 크기를 정한 후 화면 중앙에 수평선을 그은 후 파일명을 rect_line, 확장자를 jpg 로 저장하자. 아래의 이미지 파일을 다운받아 활용하자.single_line_detection.py 한편 그림판에서 수평선을 긴 직사각형으로 확대한 후 커서를 사용하여 위와 아래 코너의 좌표를 찍어 보면 (0, 238) 과 (0, 242) 좌표 값을 얻을 수 있다. 오른쪽 끝의 좌표는 (639,238) 과 (639, 242) 를 얻을 수 있다. cv2.imread 명령을 사용하여 “rect_line.jpg”를 읽어 img 로 두고 복제..

자율주행 2023.05.19

OAKD Lite Stereo Vision Camera 아나콘다 base에 설치 및 에러 처리

Luxinis 사에서 판매하는 스테레오 비젼 카메라 제품 OAKD Lite 를 설치하자. OAKD 와 Lite 제품의 차이는 화면 해상도에 있으며 Lite 버전은 640X480 해상도를 제공한다. 참조: DepthAI’s Documentation https://docs.luxonis.com/en/latest/ OAKD Lite 용 설치 파일인 depthai 는 아래 url 주소의 Github로 부터 다운받을 수 있다. https://github.com/luxonis/depthai 다운받은 후 압축을 해제하도록 한다. 폴더명은 depthai-main 이다. 폴더명이 너무 길므로 depthai 로 변경하자. depthai 폴더를 윈도우즈 PC 개인사용자 폴더에 집어 넣는다. 아래는 폴더에 담겨 있는 내용물이..

자율주행 2023.02.18

Curved Lane Detection with YOLOv3

https://youtu.be/e4opzbUJyV4 파이선 오픈소스인 YOLOv3 에 커브진 차선을 검출할 수 있도록 OpenCV 비젼 코드를 넣어 자율주행에 필수적인 차선을 감지할 수 있도록 수정해 보자. 커브진 차선 탐색 코드는 아래의 원문을 참조하였다. Jupyter에서 다운받아 실행하면 손쉽게 커브진 차선 탐지를 실행시켜 볼 수 있다. 이 코드에서 커브차선 탐지 알고리듬을 뽑아내어 YOLOv3 앞 부분을 수정 편집하여 커브차선 탐섹과 주행 차량을 식별할 수 있도록 아래의 과정을 따라 편집해 보자. 참조 https://www.hackster.io/kemfic/curved-lane-detection-34f771 참조 https://github.com/kemfic/Curved-Lane-Lines 다음은..

자율주행 2022.10.25

11 알고리듬 특허

11-1 알고리듬 특허 개론 참조: Can you patent an algorithm? https://www.goldsteinpatentlaw.com/can-you-patent-algorithm/ 새로운 소프트웨어 코드를 개발했고 알고리듬에 특허를 낼 수 있는가? 개발자들이 종종 자신이 창안한 알고리듬이 지적 재산권법에 따라 보호될 수 있는지 알고 싶어 하는 일반적인 질문일 것이다. 산업혁명 이후로 실물적으로 볼 수 있거나 느낄 수 있는 장치에 관한 특허가 대세이었지만 현대에 들어서는 추상적으로 보일 수도 있는 컴퓨터 코드 알고리듬도 매우 중요한 특허 대상으로 여겨진다. 알고리듬에 특허를 낼 수 있는지 알게 되면 놀랄지도 모른다. 그 답은 질문 자체가 생각만큼 간단한 것이 아니기 때문이다. 그 답을 알아..

자율주행 2022.10.21

9장 자율주행을 위한 이미지 머신러닝 III

9-7 YOLOv3 OpenCV 차선 감지 자율주행을 연구하고자 하는 초보자라 할지라도 YoLov3를 설치하여 pretrained 된 학습 웨이트 값을 사용하여 비데오 영상을 대상으로 반드시 객체 탐지를 실습해 볼 필요가 있으며 더 나아가 단편적으로 실습했던 OpenCV 비젼 코드에 의한 차선감지 코드를 작성하여 YoLov3 에 삽입하여 나름대로의 간단한 ADAS(Advanced Driving Assistance System) 수준의 코드를 작성해 보면 향 후 자율주행을 위한 인공지능 코드 개발에 자신감이 크게 들 것이라 본다. YoLov3 라이브러리에 numpy를 추가한다. 휴 변환에서 π 값을 np.pi 로 참조하기 위함이다. 이어지는 아래의 # 처리된 내용들은 사용자 PC에 GPU가 없으므로 배제하..

자율주행 2022.10.21

9장 자율주행을 위한 이미지 머신러닝 II

9-6 YOLO(You Once Look Only) Lane Detection http://ejleep1.tistory.com/1395 한편 컴퓨팅 속도 차원에서 타 알고리듬과는 비교할 수 없을 정도로 빠른 YOLO 알고리듬에 대해서 살펴 보기로 한다. 처음부터 속도를 중시했기 때문에 어쩌면 상업적인 자율주행을 목표로 개발이 이루어져 왔을 수도 있다. YOLOv3 를 사용하여 여러 종류의 짐승들을 포함하고 있는 이미지를 object detection 해보자. 탐지(Detection) 결과를 요약해 보면 말 3마리, 개 5마리는 정확하게 Bounding Box로 검출이 되었고 작은 크기의 고양이들은 놓친 결과를 보여준다. 물론 YOLOv3 가 나름 괜찮은 object detector 이긴 하지만 objec..

자율주행 2022.10.21

Image Classification & Object Detection

1. 컨볼루션 네트워크(CNN, Convolutional Neural Network) 위 그림은 1981년 노벨 의학상을 수상하게 되었던 하버드 의대의 후벨(Hubel) 박사의 1959년도에 실시된 고양이 시각피질(visual cortex) 반응 실험 연구내용이다. 즉 고양이의 시각피질에 전극을 꽂은 상태에서 흰색 배경의 흑백 TV에서 기울어진 검정색 막대 모양을 병진 또는 회전시키면서 자극을 주게되면 일어나는 전기적 반응을 오디오로 들으면서 기록하였다. 이와같이 동물이나 인간의 시지각 현상을 신경망화 한 모델이 바로 CNN 이며 1990년대 말에 이르러서여 LeCun 교수의 LeNet을 통해 MNIST 수기문자 판독을 위한 알고리듬으로 사용되어 그 뛰어난 특성이 알려졌다. CNN 은 레이어 별로 점차 ..

자율주행 2022.10.21

7장 Mathworks 자율주행 MATLAB 코딩 (IV)고속도로 차선변경

참조: Highway Trajectory Planning Using Frenet Reference Path https://kr.mathworks.com/help/nav/ug/highway-trajectory-planning-using-frenet.html?searchHighlight=Frenet&s_tid=srchtitle_Frenet_1 고속도로 주행 시 자율주행 차량의 차선 변경에 대해서 살펴보자. 실제 주행도 어렵지만 몇 가지의 표준적인 주행 환경 시나리오를 설정해 놓은 상태에서 자율주행 차량이 차선 변경을 위한 최적의 조건을 찾아 보도록 한다. 시나리오에 따른 차선 환경은 게임 작성 소프트웨어로 잘 알려진 Unity 를 사용하여 구성되며 그중에 ego vehicle(자율주행 차량) 과 주변 차량들..

자율주행 2022.10.21

7-4 HD 라이브 맵 레이어 구성

참조: Use HERE HD Live Map Data to Verify Lane Configurations https://kr.mathworks.com/help/driving/ug/use-here-hd-live-map-data-to-verify-lane-configurations.html HD 맵을 구성하는 레이들을 불러내어 Route를 지도에 표현하는 방법을 살펴보았으므로 이번 절에서부터는 자율주행 차량을 대상으로 체계적으로 적용하는 법을 살펴보자. ① HERE HDLM 서비스를 사용하여 기록된 GPS 시퀀스 데이터에 대한 도로 및 차선 정보를 읽어 들이자. ⓶ 기록된 GPS 데이터에 대해서 찾아내는 것이 가능한(heuristic) 경로 일치 접근 방식을 적용하자. GPS 데이터는 대부분 부정확하므로 ..

자율주행 2022.10.13