분류 전체보기 1110

캡스톤 코딩 디자인: YoLoV3에 Vision 코드를 추가하여 ADAS 를 코딩하자.

시작하기 전에 일단 결과 영상을 감상 후 코드 작업을 진행하자. https://youtu.be/YhB2_sbIWUc 2022년 9월 중순 어느새 자율주행차량 시법운행이 폭발적으로 늘어나고 있다. 이미 샌프란시스코에는 GM 차에 구글 waymo 시스템 자율차량을 비롯하여 로보택시 시범운영이 이루어지고 있다. 물론 중간에 퍼져버린다든지 사고도 많지만 아무튼 자율주행의 시대가 도래했음은 분명한 것 같다. 제네시스 G90 에 장착된 ADAS 시스템도 보다 발전하여 레벨 3 내지는 레벨 4를 넘보는 듯하다. 참조: 라이다 달린 신형 G90 나온다! https://www.youtube.com/watch?v=N5a3h1RJxsc&t=183s 2021년 5월에 김한용 MOCAR의 자동차 블로그에서도 인텔이 17조원에 ..

자율주행 2022.09.21

LiDAR(Light Detection And Ranging Sensor) 객체감지 및 위치 측정

라이다는 자율주행 차량 주위의 객체들까지의 거리를 측정하기 위해서 펄스 형태의 레이저를 이용한다. 가시광선이 대체로 900 nm 이하 파장 영역임에 비해 벨로다인 라이다 센서 사례에 의하면 900 ~ 1600 nm 의 주파수 범위를 가지는 적외선 영역에 근접한 레이저로서 905 nm 와 1550 nm 가 사용된다, 특히 1550 nm 파장은 905 nm 파장에 비해 우중이나 안개가 낀 경우나 눈이 올 때 그리고 지표면이 젖었거나 눈으로 덮였을 경우 반사 수신 신호에 심각한 품질 저하가 일어난다. 신호 상당한 품질 저하가 있음에 유의하자. 자율주행용 회전식 라이다에서 방출되어 객체들로부터 반사된 레이저 펄스들은 지표면 특성, 물체들의 형상과 인위적으로 설정 배치해둔 랜드마크들의 3차원 입체 정보를 아래와 ..

자율주행 2022.09.21

Colab 에서 YoLoV4 를 실행해 보자.

YOLO 는 기본적으로 1000 종의 class들에 대해 학습이 이루어진 상태에서 부가적인 목적 달성을 위해 Transfer Learning 이 이루어진다. 즉 예를 들자면 자율주행을 위해서 아래의 80 종의 class들로 이루어진 COCO 데이터세트들에 대해 Transfer Learning 을 실시한다. 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', 'elephant', 'bear', ..

자율주행 2022.09.18

OpenCV Hough Transform에 의한 차선 작도 VIII

내용을 읽은 후 첨부된 파일을 사용하여 실행해 본 후 GaussianBlur 기법 적용 효과와 파라메터 변경에 따른 휴변환 기법 적용 결과들에 대해 검토해 보자. 흑백 이미지를 Blur 필터링 처리 없이 직접 Canny 명령을 사용하여 edge들을 추출하여 Hough 변환을 적용해 보자. GaussianBlur 에 의한 필터링 처리 여부는 Canny 에 의한 edge 추출 작업에 영향을 크게 미치지만 본 예제에서는 직접 Canny 처리를 하는 대신 Threshold 파라메터를 슬라이더 바로 도입하여 이미지 화면의 노이즈 효과를 체크해 보기로 한다. 메인 코드에서 차선 이미지 img 를 읽고 그 사본을 떠 dst 로 두자. 아울러 이 메인 코드의 변수에 해당하는 img 와 dst를 함수 onTrackbar..

자율주행 2022.09.16

OpenCV Hough Transform에 의한 차선 작도 VII

이미지 흑백 변환 grayscale = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) RGB 3채널의 컬러 이미지를 grayscale 의 흑백 이미지로 변환할 경우 1채널로 용량이 축소되므로 컴퓨팅 용량의 절감이 가능하다. 특히 흑백으로 변환된 도로 이미지에서도 차선 탐지에 아무런 문제도 없음에 유의하자. 컬러이미지에서 변환된 흑백 이미지는 자연적인 노이즈를 많이 포함하고 있다. 노이즈가 포함된 이미지에서 노이즈를 필터링 하기 위한 이미지 처리 기법으로는 CNN 에 의한 특징 추출 후 다시 역순으로 이미지를 복원할 경우 노이즈 제거가 가능하다. 한편 OpenCV 에서는 GaussianBlur 명령을 사용하여 전체 이미지를 다소 흐릿하면서도 부드럽게 만들면 노이즈 제거 효과를 볼 ..

자율주행 2022.09.13

Script Editer Spyder에서 Haarcascades OpenCV 보행자 인식 VI

참조: Vehicle-And-Pedestrian-Detection-Using-Haar-Cascades https://github.com/AdityaPai2398/Vehicle-And-Pedestrian-Detection-Using-Haar-Cascades 셀(cell) 방식의 쥬파터 사용에서 통째로 코드 실행이 가능한 스크립트 편집기 Spyder를 사용하여 Haarcascades 지원 라이브러리인 ‘pedestrian’을 사용해 동영상 ‘pedestrian.avi’에서 보행자를 검출해 보자. Anaconda Navigator 화면에서 opencv-python 이 이미 설치되어 있는 basic(root) 상태에서 아래 그림에서처럼 Spyder 편집기를 ‘Launch’ 버튼을 클릭하자. 만약 버튼이 ‘Ins..

자율주행 2022.09.10

Haarcascades 라이브러리와 cars.xml 차량 인식 IV

Haarcascades 라이브러리 자율주행을 연구 시작을 위해서는 적어도 광법위하게 연구가 진행되어 온 Image Classification 영역을 섭렵할 필요도 있겠지만 상당한 노력이 필요하므로 그 대안으로서 쉽게 이해하고 응용해 볼 수 있는 Haarcascades 라이브러리 사용에 관심을 가져 볼 만하다. OpenCV에서 객체를 인식하는 잘 알려진 방법 중의 하나는 Haarcascades 오픈소스 라이브러리 모듈을 사용하는 방법이다. Haarcascades 라이브러리를 사용하여 인식할 수 있는 객체들은 사람의 정면 얼굴, 얼굴 안의 눈, 고양이 얼굴, 사람의 몸 각 부분들, 컬러 및 차량을 포함한다. 일종의 학습결과를 라이브러리로 모듈화시킨 Haarcascades 라이브러리의 원리는 예를 들어 CNN..

자율주행 2022.09.10

Jupyter OpenCV 차선 인식 V

이번 장에서는 웹캠에서 촬영하여 저장한 동영상 파일을 사용하여 차선을 인식(인지) 해보자. 블로그에 첨부된 lane_detection.ipynb 와 예제 동영상 challenge.avi 를 다운로드 받아 사용자 파일에 함께 저장 후 실행해 보자. 헤딩 영역에 라이브러리 OpenCV 즉 cv2 와 numpy를 불러들인다. challenge.avi 는 예제 동영상 파일로서 이들과 lane_detection.py 파일은 사용자 폴더에 함께 위치해야 한다. VideoCapture의 인수 video_src 는 challenge.avi 동영상 파일을 지정한다. while True: 문을 사용하여 무한 루프를 사용하여 .read 명령에 의해 VideoCapture()에 의해 지정된 동영상 파일을 읽어서 흑백 처리하자..

자율주행 2022.09.09

자율주행을 위한 GPS 데이터를 사용한 경로 맵 작성

참조1: GPS 데이터 가시화 및 OpenStreet Maps 사용법https://towardsdatascience.com/simple-gps-data-visualization-using-python-and-open-street-maps-50f992e9b676 GPS 경로를 작도해 보기 위한 관심 지역의 맵을 https://openstreetmap.org/export사이트를 방문하여 열자.그림 파일 형태의 지도가 나타나면 아래 그림에서처럼 위도(latitude)와 경도(longitude)를 입력하여 관심지역 맵을 띄우자.2. 내보내기 할 맵만 한정하여 화면 오른쪽 공유 버튼을 눌러 공유 메뉴에서 사용자지정 치수 설정을 클릭하여 맵과 가변 커서를 일치시킨 후 다운로드 버튼을 클릭한다.3. 이러한 방법으로 ..

자율주행 2022.09.09

Global Navigation Satellite System (GNSS) + IMU

참조: A list of GNSS frequencies and accuracy to include GPS, BeiDou, Compass, Galileo, and Navic. https://www.onesdr.com/list-of-gnss-frequency-and-accuracy/ 20세기의 가장 중요한 혁신 중 하나인 GNSS(Global Navigation Satellite System)는 많은 시스템과 기술분야에서 핵심 역할을 맡고 있다. GNSS는 여러 국가에서 설계 후 구현한 다양한 위치 확인 시스템들을 포함한다. 예를 들어 미국이 개발한 GPS는 1995년에 완전히 가동되었다. 한편 중국은 2000년부터 BeiDou 위성을 배치했으며 궤도에 3세대 시스템이 있다. 다음은 GPS, BeiDou 및..

자율주행 2022.08.29