사용자가 운전하는 자동차 프로토타입 – Tito Valiant Muhammad 비주얼 서보잉, 이미지 프로세싱 OpenCV 및 Python 프로그래밍을

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

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

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

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

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

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

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

두 번째 과정인 저는 처리시간을 최소화하기 위해 RGB 오리지널 이미지를 그레이스케일 화상으로 변환할 필요가 있습니다. 회색조의 이미지 과정은 RGB 컬러 이미지에 비해 최소화되었으며, 이 기능은 “cv2.cv Color”의 Open CV 기능에 의해 24비트, 3채널의 컬러 이미지를 8비트 단일채널/1컬러레이어로 변환합니다.

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

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

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

시각적 정보를 표시하기 위해 관심 영역 경계에서 선택한 대형 픽셀 점(빨간 점)에 따른 특정 영역입니다. 도로표시의 한쪽 부분/측면만을 감지하기 때문에 자동차의 피드백 제어에 의한 매개변수 값을 얻는 과정이 쉬워진다. 이 기능은, 300 x 300 픽셀 RGB로, 포커스 영역의 도로 표시만을 표시합니다. 아래 그림과 같이 Perspective Transform(투시 변환 후) 영상 출력이 적용됩니다.

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

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

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

위와 같이 Error Va lue의 결과가 130에서 26 사이이면 이미지 프로세스에서 도로선이 좌회전하는 것을 감지합니다.

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

Error Value(에러값) 결과가 -25와 25 사이이면 이미지 프로세스에서 도로선이 직선임을 감지합니다.이건 제 링크드인 프로필 하이퍼링크입니다. 여러분은 제 자율주행자동차에 대한 실험결과 영상을 보실 수 있습니다.https://www.linkedin.com/posts/titovaliantmuhammad_autonomouscar-pythonprogramming-selfdrivingcar-activity-6592061994877186048-duwl 著作権 @ 2021 ティト ヴァリアント ムハンマド Prototype Self Driving Carusing Visual Servoingand Python Programming Inmyproject , ThePrototype Self Driving Carhas beencreated with aomated … www.linkedin.com

error: Content is protected !!