
도로를 따라 주행하는 인간의 능력을 모방한 시제품 자율주행차가 탄생했다. 내비게이션은 카메라 센서가 장착된 비주얼 서보잉 개념을 활용해 영상을 처리하고 파이썬 프로그래밍을 이용해 도로선을 향해 차량 위치를 모션 컨트롤한다(이 이야기의 마지막 비디오 실험 참조).

프로토타입 자율주행차는 직선도로 표시와 일방통행 차선 사이에서만 전진한다. 트럭은 길이 11m, 폭 60cm, 총 회전각 90도로 검은 도로 표시가 3개 있다. 교차로는 없고 차량 앞 장애물만 감지할 수 있다. 충분한 조명조건을 갖춘 실내에서 테스트합니다. 프로젝트 방법론은 아래에 나와 있습니다.

본 논문에서는 로봇에 직접 장착된 라즈베리 카메라 센서가 감지한 노면표시에 따라 초음파 센서를 이용하여 차량 앞 장애물을 피할 수 있는 프로토타입 자율주행차가 탄생하였다. RasberryPi 카메라는 도로 차선 표시를 감지하는데 사용되며 그레이 스케일, 컬러 임계치, 관심 영역, 호프라인 변환, 투시 변환 및 도로 라인 센터링과 같은 OpenCV 라이브러리를 사용하여 컴퓨터 비전 방식으로 처리된 시각적 정보를 제공합니다. 로봇은 라즈베리 파이3 모델 B+에서 파이썬 프로그래밍을 사용하여 실시간으로 테스트 및 적용됩니다.

ImageProcessing 결과 도로표시x축 픽셀 중심값(TitikTengahjalan)과 카메라 로봇(TitikTengahrobot) 중간값/중앙값x축 픽셀(TitikTengahrobot)이 도로를 따라 이동합니다. 제어 시스템의 목적은 스티어링 제어를 위해 모터 서보 각도를 조정해 로봇의 헤딩을 유지하는 것입니다. 실험에 따르면 로봇은 도장된 도로 표시와 도장되지 않은 도로 표시를 모두 따라 자동으로 주행할 수 있어 장애물을 피할 수 있다.

본 논문에서 캡처한 이미지의 원래 사이즈는 448×208픽셀 RGB 컬러 이미지입니다. 영상처리 방식은 의사결정 모듈 입력으로 차량 전면 연속 영상으로 영상정보 데이터를 획득해 차량의 움직임을 제어하는 데 필요한 데이터를 얻는 것이 목적이다. 도로 표지판의 감지 절차는 다음과 같이 설명되어 있습니다.

앞으로 자동차가 실시간으로 자동으로 이동하는 동안 단계별 이미지 처리 구성에 대해 공유합니다. 이하에 설명되어 있습니다.

우선 시스템이 카메라 센서를 호출해 448×208픽셀 크기의 카메라 라즈베리 파이로 원본 이미지를 RGB 3컬러층으로 캡처하는 방식이다. Python Programming과 OpenCV를 사용하고 RGB 값은 개체의 색상과 전체 밝기의 함수입니다. 코드는 이하에 설명되어 있습니다.

두 번째 프로세스인 저는 처리 시간을 최소화하기 위해 RGB 원본 이미지를 그레이스케일 이미지로 변환해야 합니다. 그레이조 이미지 과정은 RGB 컬러 이미지에 비해 최소화되며, 이 기능은 “cv2.cv Color”의 OpenCV 기능에 따라 24비트, 3채널 컬러 이미지를 8비트 단일채널/1컬러 레이어로 변환합니다.

임계값 강도에 차이가 있거나 고대비 영상 픽셀 포인트 간의 비교가 도로선에서 감지됩니다.실험에서의 하한 임계치는 127이고 상한 임계치는 255(흰색)입니다.

Houghlines 변환 이미지 처리 방법은 이전에 흰색으로 표시된 Color Thresholding(색 문턱값) 기능의 경로/선에 따라 Blue Lines(파란색 선)를 도로 표시로 표시하는 프로세스에 사용됩니다. 이 방법에는 OpenCV 기능 “cv2″가 필요합니다.Hough Lines P(). 이 방법의 결과는 아래에 나와 있습니다.


이 기능의 적용은 OpenCV 기능 “cv2.getPerspective Transform()” 및 “cv2.warPerspective()”를 사용하여 직사각형 픽셀 포인트 값을 새로운 특정 영역으로 선택하여 감지된 상단 “조감도” 차선의 2차원 뷰를 얻는 것이다. 아래 그림과 같이 영상(앞)투시 변환 입력이 적용됩니다.

시각적 정보를 표시하기 위해 관심 영역의 경계에 선택한 사다리꼴 픽셀 점(적색 점)에 의한 특정 영역입니다. 도로 표시의 한쪽/측면만을 감지하기 때문에 자동차의 피드백 제어에 따른 매개변 수치를 얻는 과정이 용이해진다. 이 기능은 300×300픽셀 RGB로 포커스 영역에 도로 표시만 표시합니다. 아래 그림과 같이 Persons form(투시 변환 후) 영상 출력이 적용됩니다.


Persons Process form(투시 변환) 프로세스에서 특정 영역을 얻은 후 시스템은 감지된 도로 표시 x축 픽셀 이미지의 중간/중앙값 중심점을 계산하기 위해 “cv2.moments()” 기능이 필요합니다.

이 기능의 목적은 x축 픽셀 도로표시의 중심값과 로봇 x축 픽셀의 중간/중앙값과의 차이(오류)를 계산하는 것입니다. 차이값 계산(오차값) 결과는 스티어링 제어를 위한 모터 서보 각도를 조정하는 데 사용됩니다.


직선 트랙, 좌회전 트랙 및 우회전 트랙은 OpenCV 기능에서 이미지 처리의 색상 임계치, 투시 변환 및 Hough Lines Transform을 사용하여 노면 표시에 성공적으로 감지합니다. 이 시스템은 시각 정보(x축) 오류 픽셀 값을 생성하여 차량 제어 시스템을 조정합니다. 300×300 픽셀의 Pi 카메라 8MP와 라즈베리 파이를 사용하여 도로 표시를 캡처하여 테스트합니다. 차량 앞에 장애물이 없으며 0.6m/s 정도의 이동속도가 있습니다.로봇 Heading Angle에서 (x축) Pixel 위치의 Error Value를 생성하고 스티어링 제어를 위한 모터 서보 각도를 조정합니다.BlackCircle : 카메라 각도에서 중심픽셀 백색원 : 도로표시 중심픽셀 중심 = x축픽셀 중심치 청색선 : 투시변환영역에서 감지된 도로표지 오류값 / 니라이 오류 : 중심카메라 – 중심도로표시

위에서 알 수 있듯이 ErrorValue(오류 값) 결과가 130에서 26 사이라면 이미지 프로세스에서 도로선이 좌회전하는 것을 감지합니다.

ErrorValue(에러값) 결과가 -130에서 -25 사이일 경우 이미지 프로세스에서 도로선이 우회전하고 있음을 감지합니다.

ErrorValue(에러값) 결과가 -25와 25 사이라면 이미지 프로세스에서 도로선이 직선임을 감지합니다.이것은 저의 링크드인 프로필 하이퍼링크 입니다. 여러분은 제 자율주행차에 대한 제 실험 결과 영상을 보실 수 있습니다.https://www.linkedin.com/posts/titovaliantmuhammad_autonomouscar-pythonprogramming-selfdrivingcar-activity-6592061994877186048-duwl 저작권 @ 2021 티토 발리안텀 해머드 Prototype Self Driving Carusing Visual Services, The Prototype Self Driving Carhasbeencreated with automatic… www.linkedin.com