분류 전체보기 1075

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

Anaconda Jupyter OpenCV 웹캠 튜토리얼 III

OpenCV에서 PC에 설치된 웹캠을 사용하여 동영상을 촬영하자. 웹캠은 보안을 위한 CCTV 라든지 또는 자율주행 차량에서 차선을 검출한다든지 수많은 응용이 있는 분야이다. 헤딩 영역에 라이브러리 OpenCV 즉 cv2 와 numpy를 불러들인다. cv2.VideoCaptrue(0)에서 “0” 은 PC의 어느 USB 포트든 처음에 연결된 웹캠을 나타낸다. 추가로 두번째 웹캠을 연결할 경우 “1”이 되며 PC에서 자동적으로 인식된다. 동영상의 디폴(default) 해상도를 확인하여 출력해 보자. 웹캠 최대 해상도가 높더라도 디폴은 대개 640X480 이다. 비디오 기록을 생성하기 위해서 codec을 준비한다, OpenCV 동영상은 while(True): 에 의해 무한 루프를 돌며 윈도우즈 바탕화면에 영상..

자율주행 2022.08.29

Windows10 Anaconda Jupyter OpenCV 기초사용법 II(findContours)

테트리스 6조각으로 이루어진 tetris.png를 다운받아 Tetris.ipynb와 같은 폴더에 넣어 실행시켜보자. tetris.png 이미지 파일을 블로그 끝에 첨부된 Tetris.ipynb 파일을 다운받아 사용자 폴더에 위치 시킨 후 Anaconda Navigator basic에서 Jupyter를 실행시키자. 첫 번째 셀에서 OpenCV, imutils, matplotlib 라이브러리를 import 하자. matplotlib 는 그래프 작성이 아니라 이미지 처리 결과를 inline 출력하는데 사용된다. inline 출력은 셀 실행 후 아랫 부분의 출력 난에 출력함을 뜻하며 documentation에 편리하다. 이미지를 BGR 상태에서 GRAY 상태로 변환하여 inline 출력해 보자. 분명히 흑백 이..

자율주행 2022.08.29