자율주행 31

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

Windows 10 Anaconda Jupyter OpenCV 기초사용법 I

참조: OpenCV Tutorial : Guide to Learn OpenCV (Linux Version) https://pyimagesearch.com/2018/07/19/opencv-tutorial-a-guide-to-learn-opencv/ 이번 장에서는 카메라 웹캠 대신 쥬라식 파크 이미지 파일을 사용해 OpenCV의 기초적인 명령들을 실습해 보도록 한다. 이하의 내용은 Raspbian 또는 Linux 또는 Ubuntu OS를 대상으로 씌여진 블로그 저자 Adrian의 OpenCV tutorial 내용을 윈도우즈 10에서 처리할수 있도록 전면 수정하였다. 윈도우즈 10 아나콘다에 OpenCV를 설치했으면 이미지 파일을 사용한 간단한 처리법을 알아보자. OpenCV 설치과정에서 numpy와 함께 이..

자율주행 2022.08.27

아나콘다 설치와 가상환경 설정

1-2 Python, Front End, Back End, Virtual Environment “인공지능 기반 자율주행”은 초보자에게는 대단히 복잡하다고 느낄 수밖에 없는 주제로서 초보자로서는 미처 준비하지 못한 다양한 이론 및 경험이 필요할지도 모르겠다. 하지만 처음부터 충분한 배경을 갖추고 시작하기는 어렵더라도 자율주행 내용 이해를 돕기 위해서 필수적이라 할 수 있는 기초적인 도구를 먼저 배워 학습 효율을 배가할 필요가 있을 것이다. 내연기관이라든지 전기차든지 자율주행 차량의 기계적 구조는 너무나 잘 알려져 있어 특별한 연구 대상은 아니다. 하지만 자율주행 차량에서는 부착된 센서들의 입력을 가지고 인공지능에 의한 인지 작용을 통해 자율주행을 해야 하므로 자율주행 소프트웨어 시스템이 주목을 받게 되는 ..

자율주행 2022.08.27

미래의 가장 파괴적인 기술로서 자율주행

참조: 28 Reasons why driverless tech will be the most disruptive technology in all history https://futuristspeaker.com/future-of-transportation/28-reasons-why-driverless-tech-will-be-the-most-disruptive-technology-in-all-history/ 자율주행 자동차의 영향은 우리 삶의 거의 모든 측면에 영향을 미치며 혼란의 수준은 엄청날 것입니다. 그것은 우리가 A 지점에서 B 지점으로 이동하는 방식을 바꿀 뿐만 아니라 쇼핑, 엔터테인먼트, 외식, 건물, 주택, 병원, 교회 및 쇼핑 센터의 디자인에 대해 생각하는 방식을 바꿀 것입니다. 우리가 사업을..

자율주행 2022.08.19

자율주행 및 관련기술 소개

1-1 자율주행 소개 자율주행 차량 연구는 미국 DARPA 에 의해 시작되었으며 스탠포드,카네기멜론 대학팀들이 주도했다. 2004년 캘리포니아 바스토우 외곽의 사막지대에서의 첫 번째 챌린지는 모조리 쳐박거나 고장나거나 불이 나버리는 처참한 결과였으나 2005년에는 5개팀이 212 km를 성공적으로 주행하는 기록을 세웠다. 그 후 스탠포드 팀에 속한 교수가 구글로 이적하여 2009년부터 자율주행 차량 연구가 시작되어 2017년에 공식적으로 Waymo 사업으로 스핀오프가 이루어졌다. 하지만 자율주행은 자동차 자율주행에만 한정되는 것이 아니라 서빙로봇, 청소로봇, 우주 탐사로봇, 드론, 무인 항공기, 선박에 이르기까지 인공지능 탑재 자율주행 적용을 위한 연구가 폭넓게 이루어지고 있으므로 그 내용을 간단히 살펴..

자율주행 2022.08.18

Optical Flow in OpenCV

참조: Optical Flow in OpenCV https://learnopencv.com/optical-flow-in-opencv/ 비디오 또는 프레임 시퀀스에서 광학 흐름(optical flow)을 계산하기 위한 다양한 알고리즘에 대해 알아보자. 광학 흐름은 하나의 비디오에서 두 개의 연속 프레임 사이의 픽셀당 모션 추정 작업이다. 기본적으로 optical flow 작업은 픽셀에 대한 이동 벡터를 두 개의 인접한 이미지 간의 물체 변위 차이로 계산하는 것을 의미한다. optical flow의 중요 아이디어는 모션 또는 카메라 움직임으로 인한 객체의 변위 벡터를 추정하는 것이다. 픽셀 강도 행렬인 회색조의 이미지를 가정해 보자. 픽셀의 강도 함수 I(x,y,t)을 정의한다. 여기서 x,y 는 픽셀 좌표..

자율주행 2022.08.05