KR20230047040A - 비전 기반 자율 주행 장치 및 그의 동작 방법 - Google Patents

비전 기반 자율 주행 장치 및 그의 동작 방법 Download PDF

Info

Publication number
KR20230047040A
KR20230047040A KR1020220125517A KR20220125517A KR20230047040A KR 20230047040 A KR20230047040 A KR 20230047040A KR 1020220125517 A KR1020220125517 A KR 1020220125517A KR 20220125517 A KR20220125517 A KR 20220125517A KR 20230047040 A KR20230047040 A KR 20230047040A
Authority
KR
South Korea
Prior art keywords
autonomous driving
grid map
occupancy grid
bird
road
Prior art date
Application number
KR1020220125517A
Other languages
English (en)
Inventor
안준우
이양우
박재흥
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Publication of KR20230047040A publication Critical patent/KR20230047040A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/02Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
    • B60W40/06Road conditions
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/18Propelling the vehicle
    • B60W30/18009Propelling the vehicle related to particular drive situations
    • B60W30/18159Traversing an intersection
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • B60W2050/0016State machine analysis
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • B60W2420/42
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2552/00Input parameters relating to infrastructure
    • B60W2552/05Type of road, e.g. motorways, local streets, paved or unpaved roads
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2300/00Purposes or special features of road vehicle drive control systems
    • B60Y2300/18Propelling the vehicle
    • B60Y2300/18008Propelling the vehicle related to particular drive situations
    • B60Y2300/18158Approaching intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)

Abstract

본 개시는 비전 정보만을 이용하여 자율 주행하는 장치에 관한 것으로, 카메라 센서로 획득한 주행 방향에서 동시에 촬영한 두 개의 영상을 조감도 영상으로 변환하고, 멀티 태스크 인식 심층 신경망을 이용하여 조감도 영상에서 주행 가능한 영역을 표시한 점유 그리드 맵을 획득하고, 점유 그리드 맵을 주행 정책 네트워크에 적용하여 교차로를 포함하는 모든 도로에서 자율 주행할 수 있다.

Description

비전 기반 자율 주행 장치 및 그의 동작 방법{VISION BASED AUTONOMOUS DRIVING DEVICE AND METHOD OF OPERATION THEREOF}
본 개시는 비전 기반 자율 주행 장치에 관한 것으로, 보다 구체적으로는 비전 정보에 기반하여 비-구조화된 환경에서 교차로를 인식하고 자율 주행하는 장치 및 그의 동작 방법에 연관된다.
기존 자율 주행 차량은 교차로를 포함한 교통 환경에 대해 전역 경로를 생성하고, 전역 경로와 비교하여 자율 주행 차량의 위치 및 방향 정보를 로컬 데이터(localization data)로 생성하여 자율 주행의 경로를 결정한다. 그러나, 비-구조화된 도로 환경(unstructured road environment)에서는 GPS (Global Positioning System)나 SLAM (Simultaneous Localization and Mapping)을 이용하여 정확한 차량의 위치 및 방향을 구하기 어려운 문제점이 있다.
이를 해결하기 위해, 차량 내부 센서 정보만을 이용하여 교차로를 인식하여 자율 주행하는 방법이 있다. 그러나 이 방법 역시 장애물 정보나 도로의 경계가 정확하게 인식되지 않으면, 갈래 도로(branch road)를 정확히 구분하기 어렵다.
또 다른 방법으로 딥러닝을 이용하여 교차로를 이용하는 방법이 있다. 카메라 정보 자체를 뉴럴 네트워크의 학습 데이터로 활용하여, 교차로를 주행하는지, 좌회전, 우회전, 직진인지 인식할 수 있다. 그러나 정확히 갈래 도로의 위치 및 방향은 인식하지 못하기 때문에 실제 주행하는데 유용한 정보가 되지 못한다. 이를 해결하기 위해서 다양한 교차로(좌회전, 우회전, 직진)에서 생성된 학습 데이터로 각각의 뉴럴 네트워크를 훈련할 수 있으나, 이는 입력 데이터의 양이 방대해지며 컴퓨팅 연산 및 메모리 사용량이 늘어나는 또 다른 문제가 있다.
실시 예들에 따르면, 비전 정보만을 이용하여 교차로를 감지하고 교차로로 자율 주행하는 장치가 제공될 수 있다.
실시 예들에 따르면, 멀티 태스크를 처리하는 인식 심층 신경망을 이용하여 조감도 영상으로부터 주행 가능한 영역을 표시한 점유 그리드 맵을 생성하는 자율 주행 장치가 제공될 수 있다.
실시 예들에 따르면, 주행 가능한 영역을 표시한 점유 그리드 맵을 입력으로 주행 정책 네트워크에 기반하여 주행 방향에 하나 이상의 도로 중 하나로 주행하도록 하는 자율 주행 장치가 제공될 수 있다.
실시 예의 일 측면에 따른 자율 주행 장치는, 카메라 센서 및 상기 카메라 센서와 작동적으로 연결되는 적어도 하나의 프로세서를 포함하고, 상기 카메라 센서를 이용하여 주행 방향에서 동시에 촬영된 두 개의 영상을 획득하고, 상기 적어도 하나의 프로세서가 상기 두 개의 영상을 조감도 영상(bird's eye view)으로 변환하고, 인식 심층 신경망(perception deep neural network)에 기반하여 상기 조감도 영상에서 주행 가능한 영역을 그리드로 표시한 점유 그리드 맵을 생성하고, 및 상기 점유 그리드 맵에 기반하여 주행 방향에 적어도 하나의 도로를 감지할 수 있다.
일 실시 예에서, 상기 카메라 센서는 적어도 두 개의 렌즈를 포함하고, 상기 두 개의 렌즈가 주행 방향을 향하여 양 옆을 바라보도록 미리 정해진 각도에 따라 이격하여 배치될 수 있다.
일 실시 예에서, 상기 인식 심층 신경망은 하나의 인코더와 두 개의 디코더를 포함하고, 상기 하나의 인코더는 상기 조감도 영상에서 추출한 특징들을 상기 두 개의 디코더에 출력할 수 있다.
일 실시 예에서, 상기 두 개의 디코더는, 상기 조감도 영상에 대한 주행 가능 영역을 구분하는 제1 디코더 및 도로에 대응하는 회전 경계 상자를 감지하는 제2 디코더를 포함할 수 있다.
일 실시 예에서, 상기 제1 디코더 및 상기 제2 디코더는 상기 인코더로부터 입력 데이터를 수신하여, 동시에 각각의 태스크를 병렬 처리할 수 있다.
일 실시 예에서, 상기 점유 그리드 맵은 상기 조감도 영상 전체에서 주행 가능 영역을 구분하여 표시한 제1 점유 그리드 맵과 회전 경계 상자들 중에서 선택된 갈래 도로에 대해서만 주행 가능하다고 구분된 제2 점유 그리드 맵을 병합하여 획득할 수 있다.
일 실시 예에서, 상기 제2 디코더는 차량 방향에 따라 감지된 하나 이상의 경계 상자를 도로 방향으로 회전시켜 상기 회전 경계 상자를 획득할 수 있다.
일 실시 예에서, 상기 적어도 하나의 프로세서는 주행 정책 네트워크(driving policy network)에 기반하여 주행 방향(look ahead point)를 출력하고, 상기 주행 정책 네트워크의 입력은 상기 병합된 점유 그리드 맵이 될 수 있다.
일 실시 예에서, 상기 적어도 하나의 프로세서는 네비게이션 정보에 따라 상기 감지된 적어도 하나의 도로 중 하나로 주행하도록 결정할 수 있다.
일 실시 예에서, 상기 적어도 하나의 프로세서는 둘 이상의 도로가 감지되는 경우 교차로 사이 거리 및 상기 자율 주행 장치의 누적 거리에 기반하여 상기 둘 이상의 도로가 교차로인지 판단할 수 있다.
실시 예의 다른 일 측면에 따른 자율 주행 방법은, 카메라 센서를 이용하여 차량의 주행 방향에서 동시에 촬영된 두 개의 영상을 획득하고, 상기 차량에 포함된 적어도 하나의 프로세서가, 상기 두 개의 영상을 조감도 영상으로 변환하고, 상기 적어도 하나의 프로세서가 인식 심층 신경망에 기반하여 상기 조감도 영상에서 주행 가능한 영역을 그리드로 표시한 점유 그리드 맵을 생성하고, 및 상기 적어도 하나의 프로세서가 상기 점유 그리드 맵에 기반하여 주행 방향에 적어도 하나의 도로를 감지할 수 있다.
실시 예의 또 다른 일 측면에 따른 컴퓨터 판독 가능한 비 일시적 기록 매체는, 자율 주행 방법을 프로세서에 의해 실행하도록 구성된 적어도 하나의 명령어를 포함하는 컴퓨터 프로그램을 저장할 수 있다.
실시 예들에 따른 비전 정보만을 이용한 자율 주행 장치는 교차로에 존재하는 갈래 도로의 폭과 곡률의 변화가 다양한 환경에서도 높은 성능으로 교차로를 인식하고, 충돌없이 안전하게 자율 주행할 수 있다.
실시 예들에 따르면, 멀티태스크 심층 신경망을 구성함으로써 메모리 사용량을 줄이고, 각 태스크 연산 시간을 줄일 수 있을 뿐만 아니라, 하나의 인코더가 각 태스크에서 공통으로 사용되는 정보(예, 주행 가능 영역에 대한 특징 정보)를 처리하여 네트워크가 과적합될 가능성을 현저히 줄일 수 있다.
실시 예들에 따르면, 주행 정책을 훈련하기 위한 입력 데이터는 비-교차로에서 주행한 데이터만으로 충분하다. 교차로에서 좌회전, 우회전, 또는 직진하는 주행 데이터를 따로 생성할 필요가 없으므로, 주행 데이터 생성에 필요한 노력을 줄일 수 있다.
도 1은 일 실시 예에 따른 비전 기반 자율 주행 장치(100)의 구성요소를 나타내는 블록도를 도시한다.
도 2는 일 실시 예에 따른 비전 기반 자율 주행 장치(100)의 시스템 구조를 예시한다.
도 3은 일 실시 예에 따른 전면 카메라 이미지를 조감도 이미지로 변환하는 방법의 순서도이다.
도 4는 일 실시 예에 따른 멀티 태스크 인식 심층 신경망(Multi-task perception deep neural network)을 도시한다.
도 5는 일 실시 예에 따른 멀티 태스크 인식 심층 신경망의 분할 디코더(제1 디코더)의 동작에 따른 데이터 변화의 일 예시이다.
도 6은 일 실시 예에 따른 멀티 태스크 인식 심층 신경망의 회전 경계 상자 검출 디코더(제2 디코더)의 동작에 따른 데이터 변화의 일 예시이다.
도 7은 일 실시 예에 따른 회전 경계 상자의 예시이다.
도 8은 일 실시 예에 따른 비전 기반 자율 주행 장치(100)가 인식한 도로를 노란 상자로 표시한 예시들이다.
도 9는 일 실시 예에서 거짓 양성 사례의 예시(a)와 교차로 사이 거리와 차량의 누적 거리를 표시(b)한 도면이다.
도 10은 일 실시 예에 따른 병합 점유 그리드 맵의 예시들이다.
도 11은 일 실시 예에 따른 병합 점유 그리드 맵을 입력으로 하는 주행 정책 네트워크를 도시한다.
도 12는 일 실시 예에 따른 차량이 비전 정보를 기반으로 자율 주행하는 방법의 순서도이다.
이하에서, 실시 예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시 예들에 의해 권리범위가 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시 예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
도 1은 일 실시 예에 따른 비전 기반 자율 주행 장치(100)의 구성요소를 나타내는 블록도를 도시한다.
일 실시 예에 따른 비전 기반 자율 주행 장치(100)는 프로세서(110), 메모리(120), 카메라 센서(130) 및 버스(140)를 포함할 수 있다.
일 실시 예에 따른 비전 기반 자율 주행 장치(100)는 GPS나 SLAM을 이용할 수 없는 비 구조화된 도로 환경에서 비전 기반 자율 주행 장치(100)에 부착된 카메라 센서(130)를 통해 획득한 정보에 기초하여 자율 주행을 수행할 수 있다. 비전 기반 자율 주행 장치(100)는 딥러닝을 이용하여 비전 정보만으로 주행 영역 및 교차로에 존재하는 하나 이상의 도로(예, 갈래 도로)를 인식할 수 있다. 비전 기반 자율 주행 장치(100)는 복수의 갈래 도로를 인식하고, 비전 기반 자율 주행 장치(100)의 속도에 따른 누적거리(이동거리)가 교차로 사이 도로 길이와 유사해질 때, 비전 기반 자율 주행 장치(100)가 교차로를 주행한다고 판단할 수 있다. 비전 기반 자율 주행 장치(100)가 기 정의된 좌회전, 우회전 또는 직진과 같은 네비게이션 정보에 따라 복수의 갈래 도로 중 어느 하나를 선택할 수 있고, 주행 가능 영역을 향해 주행하도록 하는 모방 학습 기반 모션 플래닝(motion planning) 방법을 적용할 수 있다.
프로세서(110)는 일종의 중앙처리장치로서, 메모리(120)에 저장된 하나 이상의 명령어를 실행하여 자율 주행 장치(100)의 동작을 제어할 수 있다. 프로세서(110)는 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 프로세서(110)는 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로서, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 이에 한정되는 것은 아니다. 프로세서(110)는 하나 이상의 프로세서를 포함할 수 있다. 프로세서(110)는 적어도 하나의 코어를 포함할 수 있다.
프로세서(110)는 멀티 태스크를 처리하는 인식 심층 신경망(perception deep neural network)(111) 및 주행 정책 네트워크(driving policy network)(112)를 포함할 수 있다. 인식 심층 신경망(111)은 하나의 인코더(1111) 및 두 개의 디코더(1112, 1113)을 포함할 수 있다. 인식 심층 신경망(111)은 조감도 영상으로부터 추출된 특징들을 이용하여 제1 디코더(1112)가 주행 가능한 영역을 표시한 점유 그리드 맵을 생성하고, 제2 디코더(1113)가 도로를 나타내는 회전 경계 상자를 하나 이상 감지할 수 있다. 주행 정책 네트워크(112)는 교차로가 없는 도로에 대한 점유 그리드 맵을 입력 데이터로 훈련될 수 있다. 주행 정책 네트워크(112)는 병합 점유 그리드 맵을 입력받아, 교차로가 있는 도로에서도 모션 플래닝 방법에 따라 자율 주행이 가능하다.
메모리(120)는 내장 메모리 및/또는 외장 메모리를 포함할 수 있으며, DRAM, SRAM, 또는 SDRAM 등과 같은 휘발성 메모리, OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND 플래시 메모리, 또는 NOR 플래시 메모리 등과 같은 비휘발성 메모리, SSD, CF(compact flash) 카드, SD 카드, Micro-SD 카드, Mini-SD 카드, Xd 카드, 또는 메모리 스틱(memory stick) 등과 같은 플래시 드라이브, 또는 HDD와 같은 저장 장치를 포함할 수 있다. 메모리(120)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 이에 한정되는 것은 아니다.
카메라 센서(130)는 이미지 또는 동영상을 촬영하는 하나 이상의 센서를 포함할 수 있다. 카메라 센서(130)는 자율 주행 차량에 설치되고, 주행 방향에 대한 영상을 획득할 수 있다.
버스(140)는 프로세서(110), 메모리(120) 및 카메라 센서(130)를 연결하는 논리적/물리적 경로이다. 예를 들어, 프로세서(110)는 버스(130)를 통해 메모리(120)에 대한 읽기/쓰기(read/write)를 수행할 수 있다.
도 2는 일 실시 예에 따른 비전 기반 자율 주행 장치(100)의 시스템 구조를 예시한다.
일 실시 예에서, 비전 기반 자율 주행 장치(100)는 딥 러닝을 이용하여 비정형 환경에서 교차로에 존재하는 갈래 도로를 탐지할 수 있다. 비전 기반 자율 주행 장치(100)는 감지된 분기 도로, 전역 계획 및 주행 가능 영역 분할의 데이터를 결합하여 교차로에서 모션 계획 알고리즘을 적용하여 자율 주행 장치(100)의 주행을 결정할 수 있다. 비전 기반 자율 주행 장치(100)는 비전 정보, 이전 교차로와 다음 교차로의 중심 간 도로 거리, 차량 속도, 및 네비게이션 정보를 이용할 수 있다. 비전 기반 자율 주행 장치(100)는 전역 경로 정보 및 로컬 데이터를 이용하지 않는다. 네비게이션 정보는 비전 기반 자율 주행 장치(100)가 교차로를 통과할 때, 직진, 좌회전 또는 우회전 하도록 참조할 수 있다. 예를 들어, 네비게이션 정보는 주행을 시작하기 전에 교차로와 도로로 구성된 토폴로지 맵을 사용하여 결정될 수 있다.
비전 기반 자율 주행 장치(100)는 주행 가능 영역을 분할하는 태스크와 갈래 도로를 회전 경계 상자(rotated bounding boxes)로 감지하는 태스크를 동시에 하나의 신경망 네트워크를 통해 수행할 수 있다. 비전 기반 자율 주행 장치(100)는 주행 가능 영역 분할 영상으로부터 점유 그리드 맵(occupancy grid map, OGM)을 획득할 수 있다. 비전 기반 자율 주행 장치(100)는 감지된 경계 상자를 통해 교차로에서 차량이 주행 중인지 판단할 수 있고, 네비게이션 정보를 이용하여 하나의 갈래 도로를 선택할 수 있다. 비전 기반 자율 주행 장치(100)는 선택된 갈래 도로의 내부를 주행 가능 영역으로 간주하여, 도로 점유 그리드 맵(road occupancy grid map, OGMroad) 을 생성할 수 있다. 일 실시 예에서, 비전 기반 자율 주행 장치(100)는 전방 카메라 이미지(front view camera image)를 조감도 이미지(bird's eye view)로 변환할 수 있다(S 2.1). 비전 기반 자율 주행 장치(100)는 신경망 네트워크를 이용하여 변환된 조감도 이미지로부터 두 개의 점유 그리드 맵(OGM, OGMroad)을 생성할 수 있다(S 2.2, S 2.3). 비전 기반 자율 주행 장치(100)는 두 개의 점유 그리드 맵(OGM, OGMroad)을 병합한 병합 점유 그리드 맵(merged occupancy grid map, OGMmer)을 획득할 수 있다(S 2.4). 비전 기반 자율 주행 장치(100)는 병합 점유 그리드 맵을 입력으로 모션 계획 알고리즘(motion planning algorithms)에 따라 차량이 장애물을 피하면서 교차로에서 선택한 갈래 도로를 향해 주행하도록 할 수 있다.
도 3은 일 실시 예에 따른 전면 카메라 이미지를 조감도 이미지로 변환하는 방법의 순서도이다.
S301 단계에서, 비전 기반 자율 주행 장치(100)는 카메라 센서(130)를 통해 동시에 촬영된 두 개의 영상(310, 320)을 획득할 수 있다. 카메라 영상은 하나 이상의 연속된 이미지(또는 프레임)일 수 있고, 변환된 영상 역시 하나 이상의 연속된 이미지일 수 있다. 본 개시의 다양한 실시 예에서, 설명의 편의를 위해 카메라 센서(130)로부터 획득된 데이터를 하나의 이미지, 연속된 복수 개의 이미지, 영상, 또는 동영상으로 기재할 수 있다.
카메라 센서(130)는 비전 기반 자율 주행 장치(100)의 주행 방향 또는 주행 반대 방향에 대한 영상을 획득할 수 있다. 예를 들어, 카메라 센서(130)는 자율 주행 장치(100)의 전면 부분(주행 진행 방향)에 설치될 수 있고, 서로 상이한 두 개의 방향(제1 방향/제2 방향)에 대한 이미지를 획득하기 위해 두 개의 렌즈를 이격하여 배치할 수 있다. 예를 들어, 카메라 센서(130)는 두 개의 렌즈를 정해진 간격(예, 120도)을 두고 옆을 바라보도록 배치하고, 두 개의 렌즈를 통해 동시 촬영된 두 개의 영상을 획득할 수 있다. 또는, 각 하나의 렌즈를 포함하는 두 개의 카메라 센서(130)를 이격하여 배치할 수도 있다. 도면의 예시에서, 입력 영상의 크기는 각각 600 x 400 픽셀이다.
S302 단계에서, 비전 기반 자율 주행 장치(100)는 동시에 촬영된 두 개의 영상을 결합할 수 있다. 비전 기반 자율 주행 장치(100)는 두 개의 방향에서 획득한 이미지를 위에서 내려다 본 형태의 조감도 영상(bird's eye view)으로 변환하기 위해 두 개의 영상을 이용해 넓은 시야에 대응하는 프레임(330)을 생성할 수 있다. 비전 기반 자율 주행 장치(100)는 전면 방향에 대한 하나의 프레임(330)에 두 개의 영상을 포함시키도록 예를 들어, 옆으로 이어 붙일 수 있다. 상기 하나의 프레임(330)은 교차로에 존재하는 전방/좌측/우측 갈래 도로를 모두 포함할 수 있다. 도면의 예시에서, 프레임(330)의 크기는 1200 x 400 픽셀이다.
S303 단계에서, 비전 기반 자율 주행 장치(100)는 결합된 프레임에서 사다리꼴 영역의 관심 영역(region of interest, ROI)를 선택할 수 있다. 서로 상이한 방향에서 동시에 촬영된 두 영상은 전면 방향의 도로를 모두 포함하도록 ROI의 형태를 선택할 수 있고, 예를 들어 도면과 같이 사다리꼴 형태로 ROI를 결정할 수 있다.
S304 단계에서, 비전 기반 자율 주행 장치(100)는 ROI를 조감도 영상(340)으로 변환할 수 있다. 비전 기반 자율 주행 장치(100)는 사다리꼴 형태의 ROI 꼭지점들(a, b, c, d)을 조감도 영상의 형태의 꼭지점(A, B, C, D)들에 매칭되도록 프레임을 변환할 수 있다. 다양한 실시 예에서, 비전 기반 자율 주행 장치(100)는 변환 함수(예를 들어, OpenCV 함수 중 getPerspective Transform 함수 및 warpPerspective 함수)를 이용하여 프레임을 변환 할 수 있다. 도면의 예시에서는, 변환된 조감도 영상(340)의 크기는 200 x 200 픽셀이고, 이에 대응하는 실제 도로 환경의 크기는 11 x 11 m 이다.
도 4는 일 실시 예에 따른 멀티 태스크 인식 심층 신경망(Multi-task perception deep neural network)을 도시한다.
일 실시 예에 따른 비전 기반 자율 주행 장치(100)의 프로세서(110)는 멀티 태스크 인식 심층 신경망(111)을 포함할 수 있고, 이를 이용하여 교차로를 포함하는 갈래 도로를 인식할 수 있다. 멀티 태스크 인식 심층 신경망(111)은 조감도 영상을 입력 데이터로, 갈래 도로를 인식하고, 이를 표현한 점유 그리드 맵을 출력할 수 있다.
멀티 태스크 인식 심층 신경망(111)은 하나의 인코더(1111) 및 두 개의 디코더(1112, 1113)으로 구성될 수 있다. 제1 디코더(1112) 및 제2 디코더(1113)은 하나의 인코더(1111)를 공유하는 구조로, 인코더(1111)는 조감도 영상을 입력받아 추출한 추상화된 특징들(abstracted features)을 두 개의 디코더(1112, 1113)로 출력할 수 있다. 다양한 실시 예에서, 멀티 태스크 인식 심층 신경망(111)은 YOLOP(Yolop: You only look once for panoptic driving perception), DLT Net(Dlt-net: Joint detection of drivable areas, lane lines, and traffic objects), 또는 Multinet(Multinet: Real-time joint semantic reasoning for autonomous driving)에서 개시된 것을 적용할 수 있다. 일 실시 예에서, 인코더(1111)는 2D 데이터 훈련에 널리 사용되는 VGG16 네트워크(Very deep convolutional networks for large-scale image recognition)를 기반으로 구현될 수 있으며, 이때 구조가 단순해 실시간 연산을 보장하면서도 정확도가 높은 장점이 있다. 상기 실시 예에서, VGG 16 인코더의 네트워크 마지막 레이어(layer)는 안전 연결 소프트맥스(fully-connected softmax) 레이어로 구성될 수 있다.
일 실시 예에 따른 멀티 태스크 인식 심층 신경망(111)은 두 개의 태스크를 동시에 처리할 수 있다. 제1 디코더(Segmentation 디코더)는 주행 가능 영역을 분할할 수 있고, 제2 디코더(Road Rotated Bounding Boxes Detection 디코더)는 회전 경계 상자(bounding box)를 인식할 수 있다. 두 개의 디코더(1112, 1113)가 하나의 인코더(1111)를 공유함으로써 네트워크 크기, 계산 시간 및 GPU 사용량을 줄일 수 있다. 여러 작업을 동시에 수행하도록 일반화된 공유 표현을 학습하여, 과적합 가능성도 줄일 수 있다. 각 디코더(1112, 1113)의 동작은 도 5 및 도 6에서 상세히 설명하겠다.
인코더(1111) 층의 크기는 입력 데이터의 크기(예, 200 x 200 픽셀)에 따라 설정될 수 있다. 도면의 예시에서는 5개의 컨볼루셔널(convolutional)과 맥스 풀링 레이어(max-pooling layer)로 구성될 수 있고, 각 컨볼루셔널(convolutional)의 크기는 100 x 100 x 64, 50 x 50 x 128, 25 x 25x 256, 13 x 13 x 512, 7 x 7 x 512 픽셀이다. 마지막 완전 연결 레이터(fully connected layer)의 크기는 1 x 1 x 4096 픽셀이다. 인코더의 가중치는 ImageNet(Imagenet: A large-scale hierarchical image database)에서 사전 훈련된 가중치를 사용하여 초기화할 수 있다.
도 5는 일 실시 예에 따른 멀티 태스크 인식 심층 신경망의 분할 디코더(제1 디코더)의 동작에 따른 데이터 변화의 일 예시이다.
일 실시 예에 따른 멀티 태스크 인식 심층 신경망(111)은 조감도 영상(510)을 입력받아 인코더(1111)에서 특징을 추출하고, 제1 디코더(1112)를 통해 주행 가능 영역을 나타내는 점유 그리드 맵을 출력할 수 있다.
인코더(1111)에 의해 추상화된 특징들은 1 × 1 컨볼루션 레이어에서 7 × 7의 낮은 해상도를 가진다. 이 특징들은 7 x 7 x 2, 25 x 25 x 256, 50 x 50 x 2 크기를 가지는 각 컨볼루션 레이어들을 통과함으로써, 상향 샘플링(up-sampling)된다. 컨볼루션 레이어는 주행 가능/불가능 두 가지 클래스를 분할하기 위해 이중 선형 업샘플링을 수행하는 Multinet의 방식을 사용하여 초기화될 수 있다.
도면과 같이, 인코더(1111)의 각 컨볼루션 레이어들은 분할 디코더(1112)와 직접 연결될 수 있고, 이를 스킵 연결(Skip connections)이라 한다. 인코더(1111)의 각 컨볼루션 레이어는 스킵 연결을 갖는 디코더(1112) 레이어와 결합되어 하위 레이어에서 고해상도 피처를 추출할 수 있다. 상기 실시 예에서, 인코더(1111)와 분할 디코더(1112) 간의 스킵 연결을 통해 높은 해상도의 특징들을 가질 수 있고, 최종적으로 200 x 200 픽셀 이미지가 출력된다.
분할 디코더(1112)는 각 픽셀에 대한 주행 가능 확률을 표시한 점유 그리드 맵을 출력할 수 있다. 제1 단계(520)에서 검은색에 가까울수록 주행 가능성이 높은 것을 나타낸다. 분할 디코더(1112)에서 Otsu 알고리즘을 이용하여 주행 가능성에 대한 임계값을 계산하면, 제2 단계(530)의 이미지 맵을 획득할 수 있다. Otsu 알고리즘은 경계값을 임의로 설정하여 픽셀을 두 클래스로 나누고, 두 클래스의 강도 분포를 반복적으로 구한다. 그런 다음 두 클래스 값의 분포를 가장 균일하게 만드는 경계 값을 선택한다. 즉, 이진 분류된 픽셀 간의 비율 차이가 가장 작을 수 있는 최적의 임계값이 얻어진다. 이 과정으로 출력된 최종 영상의 크기는 200 × 200 픽셀이며, 점유 그리드 맵(Occupation Grid Map, OGM)이 된다. 점유 그리드 맵은 한 격자(grid)가 8 픽셀로 구성된 25 x 25 격자를 가지는 2D 지도로 표현될 수 있다. 그리드는 그리드 셀에서 단 하나의 구동 불가능한 픽셀로도 점유된 것으로 간주된다. 즉, 비어 있는 그리드에는 구동 가능한 픽셀만 존재한다고 해석할 수 있다.
심층 신경망(111)에서 주행 가능 영역 분할 이미지를 훈련하기 위해 조감도 영상 데이터를 라벨링(labeling)할 수 있다. 다양항 실시 예에서, 도로, 도로선, 정지선 및 횡단보도는 주행 가능 영역으로 라벨링할 수 있고, 주행 가능 영역을 제외한 다른 영역은 모두 주행 불가 영역으로 지정할 수 있다. 예를 들어, 인도, 주차 공간(주차선 포함), 도로 경계선, 보행자 통로 및 차량은 운전할 수 없는 구역으로 간주된다.
도 6은 일 실시 예에 따른 멀티 태스크 인식 심층 신경망의 회전 경계 상자 검출 디코더(제2 디코더)의 동작에 따른 데이터 변화의 일 예시이고, 도 7은 일 실시 예에 따른 회전 경계 상자의 예시이다.
일 실시 예에 따른 멀티 태스크 인식 심층 신경망(111)은 제2 디코더(1113)를 이용해 회전 경계 상자를 사용하여 갈래 도로를 검출(detection)할 수 있다. 종래 인식 신경망에 따르면, 입력 영상으로부터 회전되지 않은 형태로 경계 상자가 인식된다. 그러나 차량이 교차로에서 주행할 때 도로의 방향이 차량의 방향과 다를 수 있기 때문에, 다양한 실시 예에 따른 멀티 태스크 인식 심층 신경망(111)에서는 도로 방향으로 경계 상자를 회전시켜 사용할 수 있다. 회전하지 않은 경계 상자를 사용하는 경우 상자 내부의 장애물을 포함하지 않고서는 모든 주행 가능 영역을 덮을 수 없다. 또한, 실제 지선도로가 아닌 지역은 지선도로로 오인될 수 있다. 다양한 실시 예에 따른 회전 경계 상자는 하나의 지선로를 하나의 상자로 감지하여 주행 가능 영역을 최대한 커버할 수 있으며, 멀티 태스크 인식 심층 신경망(111)은 갈래 도로의 특징이 있는 상자를 정확하게 찾을 수 있다.
회전 경계 상자 검출 디코더(1113)는 인코더(1111)에서 출력한 추상화된 특징들을 입력받아, 50개의 필터를 가진 1 x 1 컨볼루션 레이어를 통과한다. 그 다음 7 x 7 그리드 g로 나뉘고, 7 x 7 x 50 모양의 텐서(tensor)를 얻고, 그 다음 7 x 7 x 5 모양의 텐서를 통과하여 상자 b의 세부 정보를 획득할 수 있다. 여기서 7 × 7 × 5는 회전 경계 상자의 채널 수를 의미하며, 첫 번째부터 네 번째 채널은 도로 경계 상자 좌표를 나타낸다. 좌표는 상자 중앙의 x 및 y 좌표, 상자의 너비와 이미지의 높이 비율이다. 다섯 번째 채널은 회전된 상자의 회전 각도 값이다.
각 그리드 g에는 경계 상자 b가 할당된다. 그리드 및 상자 좌표의 원점은 오른쪽 상단 모서리이며 상자 레이블은 그리드 위치를 기준으로 매개 변수화된다. 수학식 1은 상자 좌표를 표시한 예이다.
Figure pat00001
여기서 xg, yg, xb, yb는 g와 b의 중심 좌표이다. w와 w는 폭과 높이를 나타낸다. wg 및 hg는 격자 크기이다. 단위는 픽셀이다.
각 그리드의 손실 값은 수학식 2와 같이 계산할 수 있다.
Figure pat00002
여기서 gp는 그리드에 상자가 있는지 여부를 나타내며, 상자가 있으면 1이고 그렇지 않으면 0이다. 즉, 유효한 손실은 박스가 그리드에 존재할 때만 반영된다. g는 그리드의 접지면이고
Figure pat00003
는 예측값이다. ga는 라디안 단위로 회전된 상자의 각도이다. 이미지당 손실은 모든 그리드의 손실에 대한 평균이다.
제2 디코더(1113)는 7 × 7 × 50 형상 텐서를 통해 50개의 상자를 예측하고, 예측된 50개의 상자들 중 신뢰 값이 임계 값을 초과하는 상자들을 선택한다. 여기서 신뢰 값은 폭 및 높이 채널의 최대 신뢰 값으로 계산될 수 있다. NMS(non maximum suppression) 알고리즘을 통해 ROI가 겹치는 상자 중에서 최대한 높은 확률을 가지는 박스를 선택할 수 있다. 예를 들어, 상자 간 중첩 면적이 50%를 초과하는 상자 세트 중 신뢰도가 가장 높은 상자가 선택될 수 있다. 도 7은 일 실시 예에 따른 회전 경계 상자를 예시한다. 파란색 상자는 필터를 거치지 않은 7 x 7 x 50의 출력 결과를 표시한 것이고, 노란색 상자는 NMS 알고리즘을 거친 결과를 표시한 것이다.
제2 디코더(1113)는 회전 도로 경계 상자를 입력 데이터로 신경망을 훈련하기 위해 라벨링할 수 있다. 일 실시 예에서, 라벨링 기준은 다음과 같이 설정할 수 있다.
1) 이미지에서 상자를 라벨링할 수 있다. 예를 들어, 차량의 보닛 전면으로부터 이미지의 끝까지 주행 가능 영역인 직사각형 상자로 라벨링한다. 이 경우 직사각형의 너비는 차량 너비를 초과할 수 없다.
2) 이미지는 복수의 상자를 포함할 수 있다. 예를 들어, 이미지 측면에 라벨이 부착되지 않은 주행 가능 영역이 있는 경우, 상자를 추가하고 라벨링한다.
3) 한 이미지에 포함되는 상자의 개수를 라벨로 제한할 수 있다. 예를 들어, 최대 상자의 수는 3개이다.
4) 차량 너비를 기준으로 상자 크기를 제한할 수 있다. 예를 들어, 상자의 크기는 7m2 을 초과할 수 없다.
5) 상자는 서로 중첩이 가능하다. 예를 들어, 서로 다른 두 상자 사이의 중첩은 가능하지만 5m2 을 초과하는 중첩 면적을 방지하기 위해 라벨을 부착해야 한다
6) 상자의 일부는 이미지를 벗어날 수 있다. 예를 들어, 회전 경계 상자에 라벨을 붙일 때 상자의 하나 또는 두 모서리가 이미지 외부에 있어 가능한 한 크게 라벨을 붙일 수 있다.
도 8은 일 실시 예에 따른 비전 기반 자율 주행 장치(100)가 인식한 도로를 노란 상자로 표시한 예시들이고, 도 9는 일 실시 예에서 거짓 양성 사례의 예시(a)와 교차로 사이 거리와 차량의 누적 거리를 표시(b)한 도면이다.
일 실시 예에 따른 비전 기반 자율 주행 장치(100)는 점유 그리드 맵을 기반으로 교차로를 결정할 수 있다. 비전 기반 자율 주행 장치(100)는 둘 이상의 상자가 인식되면 차량이 교차로에서 주행 중인 것으로 간주할 수 있다. 그러나 교차하지 않는 도로에서도 둘 이상의 상자가 검출될 수 있고, 이를 교차로로 간주하는 것은 거짓 양성 사례(false positive case)에 해당한다. 도 9의 (a)는 거짓 양성 사례의 예시이다.
이를 해결하기 위해, 비전 기반 자율 주행 장치(100)는 교차로 중심
Figure pat00004
과 누적 거리
Figure pat00005
사이를 도로 거리로 정의할 수 있다. 교차로 중심
Figure pat00006
은 토폴로지 맵의 두 개의 노드(교차로) 사이의 가장자리 거리(도로)로 정의되며, 이는 i'th와 i+1'th 교차로 사이에 있다. 여기서, i는 교차로의 순서에 따른 지수이고, i = 0인 경우는 시작점(교차로가 아님)을 나타낸다.
토폴로지 맵에서 교차로를 방문하는 순서는 내비게이션 정보에 따라 결정될 수 있다.
Figure pat00007
는 i'번째 교차로에서 차량이 이동한 누적 거리이며, 차량의 속도를 사용하여 계산될 수 있다.
비전 기반 자율 주행 장치(100)는 두 개 이상의 상자가 인식되고
Figure pat00008
Figure pat00009
차이가
Figure pat00010
보다 낮으면 차량이 교차로에서 주행 중인 것으로 판단할 수 있다. 거짓 양성 사례를 피하기 위해 수학식 3과 같이 교차로 플래그를 정의할 수 있다.
Figure pat00011
비전 기반 자율 주행 장치(100)는 차량이 도 9(b)의 검은 화살표(not intersection zone)와 같이 교차로 i'th와 i+1'th 사이의
Figure pat00012
거리에 위치하는 경우, 두 개 이상의 상자가 인식되더라도 교차로를 통과하지 않는 것으로 간주한다. 수학식 3에서 교차점 플래그가 참에서 거짓으로 바뀌고,
Figure pat00013
Figure pat00014
보다 클 때 i가 증가한다.
비전 기반 자율 주행 장치(100)는 차량이 교차로를 지나가고 있다고 판단되면 네비게이션 정보(직진, 좌회전, 우회전 등)에 따라 하나의 상자를 선택할 수 있다. 네이게이션 정보는 토폴로지 맵의 모든 도로를 방문하기 위한 글로벌 계획으로부터 얻을 수 있다. 비전 기반 자율 주행 장치(100)가 하나의 상자를 선택하기 위한 조건은 다음과 같이 설정할 수 있다.
1) 직진: 이미지 중심에서 가장 가까운 상자
2) 좌회전: 이미지에서 가장 왼쪽에 있는 상자
3) 우회전: 이미지에서 가장 오른쪽에 있는 상자
비전 기반 자율 주행 장치(100)는 선택된 상자를 통해 도로 점유 그리드 맵(OGMroad)을 획득할 수 있다. 선택한 상자의 내부 영역은 주행 가능한 영역으로 간주되고 외부 영역은 주행 불가능한 영역으로 간주된다. 선택한 상자에 따라 분할된 이미지가 점유 그리드 맵(OGM)으로 변환된다. 만약 한 개의 상자만 인식되는 경운, 차량이 교차로를 주행하지 않는 것으로 판단하고, 도로 점유 그리드 맵의 전 구간이 주행 가능 구역으로 간주된다.
도 10은 일 실시 예에 따른 병합 점유 그리드 맵의 예시들이다.
비전 기반 자율 주행 장치(100)는 교차로를 주행하기 위해, 기존 모션-플래닝 알고리즘을 이용할 수 있다. 이때, 모션 플래닝 알고리즘의 입력은 병합된 점유 그리드 맵(OGMmer)이 된다. 교차로에서 OGM의 주행 가능 영역에 여러 가지 분기 도로가 존재할 때, 모션 플래닝 알고리즘은 어느 갈래 도로로 향해 주행할지 계산할 수 없다. 이 문제를 해결하기 위해, OGMroad의 주행 가능 영역은 OGMmer의 주행 가능 영역으로 구성된다. OGMroad 내부에 존재하는 장애물을 고려하기 위해, 수학식 4와 같이 Mroad와 OGM 모두에서 공통으로 주행가능한 영역만 OGMmer의 주행 가능 영역으로 정의할 수 있다.
Figure pat00015
각 그리드 맵에서 주행 가능한 영역은 '참' 값(도 10의 검은색 그리드 영역), 주행 불가능한 영역은 '거짓' 값(도 10의 흰색 그리드 영역)으로 정의할 수 있다. OGMmer의 각 그리드는 OGM과 OGMroad 사이의 & 연산자에 의해 계산되며, 두 맵의 그리드가 모두 '참' 값일 때만 참 값이 된다. 교차로에서 OGMmer에 따르면 여러 가지 지선 도로 중 하나의 갈래 도로만이 주행 가능한 영역으로 표시된다. OGMroad의 모든 그리드는 주행 가능 구역으로 간주되기 때문에, 교차로가 아닌 도로에서는 OGM과 OGMmer이 동일하다. OGMmer를 입력 데이터로 하면, 기존 모션 플래닝 알고리즘을 그대로 이용하여 장애물을 피하면서 하나의 갈래 도로의 주행 가능 지역으로 향하는 차량의 동작을 계산할 수 있다.
도 11은 일 실시 예에 따른 병합 점유 그리드 맵을 입력으로 하는 주행 정책 네트워크를 도시한다.
일 실시 예에 따른 비전 기반 자율 주행 장치(100)는, 교차로가 없는 상황의 입력 데이터로 훈련한 주행 정책 네트워크(driving policy network)(112)에 병합 점유 그리드 맵을 입력하여, 주행 방향(look - ahead point)을 출력할 수 있다.
비전 기반 자율 주행 장치(100)는 모방 학습을 기반한 주행 정책 네트워크(112)를 점유 그리드 맵에서 주행 가능 영역을 향할 수 있도록 훈련할 수 있다. 다양한 실시 예에서, 점유 그리드 맵으로 주행 정책 네트워크(112)를 훈련하는 경우 다음과 같은 장점을 가진다. 학습 모델에 존재하는 파라미터를 수기로 조정할 필요가 없다. 전역 정보 없이도 장애물을 피하고 주행 가능 영역에서 가장 넓은 곳을 향하는 주행 패턴을 찾을 수 있다. 센서 정보가 노이지하거나 인식 결과가 정확하지 않더라도, 부드럽고 충돌 없이 주행할 수 있다.
주행 정책 훈련에 필요한 데이터는 교차로가 없는 환경에서 주행된 데이터가 사용된다. 만약 교차로가 존재하는 환경을 지날 때는 교차로에 장애물을 두어 점유 그리드 맵이 교차로가 없는 환경과 같아지도록 할 수 있다. 훈련된 주행 정책을 실행할 때는 병합 점유 그리드 맵을 주행 정책 네트워크(112)의 입력으로 사용한다.
도 12는 일 실시 예에 따른 차량이 비전 정보를 기반으로 자율 주행하는 방법의 순서도이다.
S1210 단계에서, 비전 기반 자율 주행 장치(100)는 카메라 센서(130)를 이용해 차량(비전 기반 자율 주행 장치(100))의 전면 영상을 획득할 수 있다. 상기 단계는 도 3의 S301 단계가 적용될 수 있다. 카메라 센서(130)는 적어도 두 개의 렌즈를 포함하고, 두 개의 렌즈가 주행 방향을 향하여 양 옆을 바라보도록 미리 정해진 각도에 따라 이격하여 배치될 수 있다.
S1220 단계에서, 비전 기반 자율 주행 장치(100)는 주행 방향의 전면 영상을 조감도 영상으로 변환할 수 있다. 상기 단계는 도 3의 S302 내지 S302 단계가 적용될 수 있다.
S1230 단계에서, 비전 기반 자율 주행 장치(100)는 멀티 태스크 인식 심층 신경망(112)을 이용하여 조감도 영상으로부터 두 개의 점유 그리드 맵을 생성할 수 있다. 두 개의 점유 그리드 맵은, 조감도 영상 전체에서 주행 가능한 영역을 그리드로 표시한 제1 점유 그리드 맵(OGM)과 도로에 회전 경계 박스를 이용하여 선택된 도로를 표시한 제2 점유 그리드 맵(OGMroad)일 수 있다.
S1240 단계에서, 비전 기반 자율 주행 장치(100)는 두 개의 점유 그리드 맵을 병합하여, 병합 점유 그리드 맵(OGMmer)을 생성할 수 있다. 병합 점유 그리드 맵은 도 10과 같다.
S1250 단계에서, 비전 기반 자율 주행 장치(100)는 병합 점유 그리드 맵을 주행 정책 네트워크(112)에 적용할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 비전 기반 자율 주행 장치
110: 프로세서
120: 메모리
130: 통신 인터페이스
140: 카메라 센서
150: 버스
111: 인식 심층 신경망
1111: 인코더
1112, 1113: 디코더

Claims (20)

  1. 자율 주행 장치에 있어서,
    카메라 센서 및
    상기 카메라 센서와 작동적으로 연결되는 적어도 하나의 프로세서를 포함하고,
    상기 카메라 센서를 이용하여 주행 방향에서 동시에 촬영된 두 개의 영상을 획득하고,
    상기 적어도 하나의 프로세서가 상기 두 개의 영상을 조감도 영상(bird's eye view)으로 변환하고, 인식 심층 신경망(perception deep neural network)에 기반하여 상기 조감도 영상에서 주행 가능한 영역을 그리드로 표시한 점유 그리드 맵을 생성하고, 및
    상기 점유 그리드 맵에 기반하여 주행 방향에 적어도 하나의 도로를 감지하는 자율 주행 장치.
  2. 제1항에 있어서,
    상기 카메라 센서는 적어도 두 개의 렌즈를 포함하고,
    상기 두 개의 렌즈가 주행 방향을 향하여 양 옆을 바라보도록 미리 정해진 각도에 따라 이격하여 배치되는 자율 주행 장치.
  3. 제1항에 있어서,
    상기 인식 심층 신경망은 하나의 인코더와 두 개의 디코더를 포함하고,
    상기 하나의 인코더는 상기 조감도 영상에서 추출한 특징들을 상기 두 개의 디코더에 출력하도록 하는 자율 주행 장치.
  4. 제3항에 있어서,
    상기 두 개의 디코더는, 상기 조감도 영상에 대한 주행 가능 영역을 구분하는 제1 디코더 및 도로에 대응하는 회전 경계 상자를 감지하는 제2 디코더를 포함하는 자율 주행 장치.
  5. 제4항에 있어서,
    상기 제1 디코더 및 상기 제2 디코더는 상기 인코더로부터 입력 데이터를 수신하여, 동시에 각각의 태스크를 병렬 처리하는 자율 주행 장치.
  6. 제4항에 있어서,
    상기 점유 그리드 맵은 상기 조감도 영상 전체에서 주행 가능 영역을 구분하여 표시한 제1 점유 그리드 맵과 회전 경계 상자들 중에서 선택된 갈래 도로에 대해서만 주행 가능하다고 구분된 제2 점유 그리드 맵을 병합하여 획득되는 자율 주행 장치.
  7. 제4항에 있어서,
    상기 제2 디코더는 차량 방향에 따라 감지된 하나 이상의 경계 상자를 도로 방향으로 회전시켜 상기 회전 경계 상자를 획득하는 자율 주행 장치.
  8. 제6항에 있어서,
    상기 적어도 하나의 프로세서는 주행 정책 네트워크(driving policy network)에 기반하여 주행 방향(look ahead point)를 출력하고,
    상기 주행 정책 네트워크의 입력은 상기 병합된 점유 그리드 맵인 자율 주행 장치.
  9. 제1항에 있어서,
    상기 적어도 하나의 프로세서는 네비게이션 정보에 따라 상기 감지된 적어도 하나의 도로 중 하나로 주행하도록 결정하는 자율 주행 장치.
  10. 제1항에 있어서,
    상기 적어도 하나의 프로세서는 둘 이상의 도로가 감지되는 경우 교차로 사이 거리 및 상기 자율 주행 장치의 누적 거리에 기반하여 상기 둘 이상의 도로가 교차로인지 판단하는 자율 주행 장치.
  11. 자율 주행 방법에 있어서,
    카메라 센서를 이용하여 차량의 주행 방향에서 동시에 촬영된 두 개의 영상을 획득하고,
    상기 차량에 포함된 적어도 하나의 프로세서가, 상기 두 개의 영상을 조감도 영상으로 변환하고,
    상기 적어도 하나의 프로세서가 인식 심층 신경망에 기반하여 상기 조감도 영상에서 주행 가능한 영역을 그리드로 표시한 점유 그리드 맵을 생성하고, 및
    상기 적어도 하나의 프로세서가 상기 점유 그리드 맵에 기반하여 주행 방향에 적어도 하나의 도로를 감지하는 자율 주행 방법.
  12. 제11항에 있어서,
    상기 카메라 센서는 적어도 두 개의 렌즈를 포함하고,
    상기 두 개의 렌즈가 주행 방향을 향하여 양 옆을 바라보도록 미리 정해진 각도에 따라 이격하여 배치되는 자율 주행 방법.
  13. 제11항에 있어서,
    상기 인식 심층 신경망은 하나의 인코더와 두 개의 디코더를 포함하고,
    상기 하나의 인코더는 상기 조감도 영상에서 추출한 특징들을 상기 두 개의 디코더에 각각 출력하도록 하는 자율 주행 방법.
  14. 제13항에 있어서,
    상기 두 개의 디코더는, 상기 조감도 영상에 대한 주행 가능 영역을 구분하는 제1 디코더 및 도로에 대응하는 회전 경계 상자를 감지하는 제2 디코더를 포함하는 자율 주행 방법.
  15. 제14항에 있어서,
    상기 제1 디코더 및 상기 제2 디코더는 상기 인코더로부터 입력 데이터를 수신하여, 동시에 각각의 태스크를 병렬 처리하는 자율 주행 방법.
  16. 제14항에 있어서,
    상기 점유 그리드 맵은, 상기 조감도 영상 전체에서 주행 가능 영역을 구분하여 표시한 제1 점유 그리드 맵과 회전 경계 상자들 중에서 선택된 갈래 도로에 대해서만 주행 가능하다고 구분된 제2 점유 그리드 맵을 병합하여 획득되는 자율 주행 방법.
  17. 제14항에 있어서,
    상기 제2 디코더는 차량 방향에 따라 감지된 하나 이상의 경계 상자를 도로 방향으로 회전시켜 상기 회전 경계 상자를 획득하는 자율 주행 방법.
  18. 제16항에 있어서,
    상기 적어도 하나의 프로세서는 주행 정책 네트워크(driving policy network)에 기반하여 주행 방향(look ahead point)를 출력하고,
    상기 주행 정책 네트워크의 입력은 상기 병합된 점유 그리드 맵인 자율 주행 방법.
  19. 제11항에 있어서,
    상기 적어도 하나의 프로세서는 네비게이션 정보에 따라 상기 감지된 적어도 하나의 도로 중 하나로 주행하도록 결정하는 자율 주행 방법.
  20. 제11항 내지 제19항 중 어느 한 항에 따른 자율 주행 방법을 프로세서에 의해 실행하도록 구성된 적어도 하나의 명령어를 포함하는 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능한 비 일시적 기록 매체.
KR1020220125517A 2021-09-30 2022-09-30 비전 기반 자율 주행 장치 및 그의 동작 방법 KR20230047040A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210129991 2021-09-30
KR1020210129991 2021-09-30

Publications (1)

Publication Number Publication Date
KR20230047040A true KR20230047040A (ko) 2023-04-06

Family

ID=85917983

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220125517A KR20230047040A (ko) 2021-09-30 2022-09-30 비전 기반 자율 주행 장치 및 그의 동작 방법

Country Status (1)

Country Link
KR (1) KR20230047040A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116452654A (zh) * 2023-04-11 2023-07-18 北京辉羲智能科技有限公司 一种基于bev感知的相对位姿估计方法、神经网络及其训练方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116452654A (zh) * 2023-04-11 2023-07-18 北京辉羲智能科技有限公司 一种基于bev感知的相对位姿估计方法、神经网络及其训练方法

Similar Documents

Publication Publication Date Title
KR102541559B1 (ko) 관심 객체를 검출하는 방법 및 장치
CN110494863B (zh) 确定自主车辆的可驾驶自由空间
CN111095291B (zh) 由自动驾驶车辆实时检测车道和边界
JP7140922B2 (ja) マルチセンサデータ融合方法、及び装置
CN112752950B (zh) 修改与地图数据相关联的地图元素
KR102421855B1 (ko) 주행 차로를 식별하는 방법 및 장치
US11294392B2 (en) Method and apparatus for determining road line
Huval et al. An empirical evaluation of deep learning on highway driving
US11670087B2 (en) Training data generating method for image processing, image processing method, and devices thereof
CN114902295A (zh) 用于自主驾驶应用的三维路口结构预测
CN111874006B (zh) 路线规划处理方法和装置
EP3931742A1 (en) Determining occupancy of occluded regions
US11486727B2 (en) Map generation device, map generation method, and map generation computer program
CN113811886A (zh) 自主机器应用中的路口检测和分类
US20220274625A1 (en) Graph neural networks with vectorized object representations in autonomous vehicle systems
JP2022538535A (ja) 画像からの奥行の精緻化
CN111091037A (zh) 用于确定驾驶信息的方法和设备
Kumar et al. Vision-based outdoor navigation of self-driving car using lane detection
KR20230047040A (ko) 비전 기반 자율 주행 장치 및 그의 동작 방법
KR102342414B1 (ko) 악천후 자율주행을 위한 교통 흐름 정보 인지 기반 가상 차선 생성 장치 및 방법
CN116476816A (zh) 泊车规划方法、装置、电子设备及存储介质
CN116311114A (zh) 一种可行驶区域生成方法、装置、电子设备及存储介质
US12008743B2 (en) Hazard detection ensemble architecture system and method
US20240119740A1 (en) Method and apparatus with lane line determination
US20240144701A1 (en) Determining lanes from drivable area