KR20200058272A - 도로 주행 영상의 전처리를 통한 도로 주행 상황 제공 방법 및 시스템 - Google Patents
도로 주행 영상의 전처리를 통한 도로 주행 상황 제공 방법 및 시스템 Download PDFInfo
- Publication number
- KR20200058272A KR20200058272A KR1020190091855A KR20190091855A KR20200058272A KR 20200058272 A KR20200058272 A KR 20200058272A KR 1020190091855 A KR1020190091855 A KR 1020190091855A KR 20190091855 A KR20190091855 A KR 20190091855A KR 20200058272 A KR20200058272 A KR 20200058272A
- Authority
- KR
- South Korea
- Prior art keywords
- road
- lanes
- road driving
- driving situation
- objects
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G06K9/00791—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30248—Vehicle exterior or interior
- G06T2207/30252—Vehicle exterior; Vicinity of vehicle
- G06T2207/30256—Lane; Road marking
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Traffic Control Systems (AREA)
- Image Analysis (AREA)
Abstract
도로 주행 영상의 전처리를 통한 도로 주행 상황 제공 방법 및 시스템이 개시된다. 일 실시예에 따른 도로 주행 상황 제공 방법은, 도로에서 도로 주행 이미지를 획득하는 단계와, 상기 도로 주행 이미지에서 복수의 차선(road line)들 및 하나 이상의 객체(object)를 검출(detection)하는 단계와, 상기 복수의 차선들 중에서 사용자 차량이 주행하는 차로(road lane)가 정의되는 두 개의 차선을 기준으로 결정되는 상기 도로에서의 상기 하나 이상의 객체의 위치에 기초하여 상기 사용자 차량과 상기 하나 이상의 객체 간의 주행 상황 인지를 위한 주행 상황 데이터를 생성하는 단계를 포함한다.
Description
아래 실시예들은 도로 주행 영상의 전처리를 통한 도로 주행 상황 제공 방법 및 시스템에 관한 것이다.
최근 딥러닝 기술은 텍스트, 이미지, 비디오, 오디오 등의 다양한 데이터를 대상으로 하는 여러 응용 분야에서 이용되고 있다. 딥러닝 기술은 기존의 규칙 기반, 머신 러닝으로는 불가능하였던 복잡한 문제를 해결하기 위한 핵심 기술로써 주목받고 있다.
이에, 딥러닝 기술은 수많은 변수가 존재하는 자율 주행 자동차 분야의 가능성을 열어주었다. 현재 자율 주행 기술 단계는 미국자동차기술자협회(Society of Automotive Engineers, SAE)가 제시한 자율 주행 기술 단계를 기준으로, 대부분 2∼3단계 수준이다. 현재 자율 주행 기술은 보다 높은 수준의 자율 주행을 만족하기 위해서 보다 정확한 도로 주행 상황 인지 기술이 필요한 실정이다.
실시예들은 도로 주행 이미지에서 도로의 차선을 기준으로 사용자 차량과 객체 간의 주행 상황을 인지함으로써, 사용자 차량의 주행 상황에 영향을 미치지 않는 객체를 제거할 수 있고, 도로 주행 상황 인지에 대한 정확도를 높일 수 있는 기술을 제공할 수 있다.
일 실시예에 따른 도로 주행 상황 제공 방법은, 도로에서 도로 주행 이미지를 획득하는 단계와, 상기 도로 주행 이미지에서 복수의 차선(road line)들 및 하나 이상의 객체(object)를 검출(detection)하는 단계와, 상기 복수의 차선들 중에서 사용자 차량이 주행하는 차로(road lane)가 정의되는 두 개의 차선을 기준으로 결정되는 상기 도로에서의 상기 하나 이상의 객체의 위치에 기초하여 상기 사용자 차량과 상기 하나 이상의 객체 간의 주행 상황 인지를 위한 주행 상황 데이터를 생성하는 단계를 포함한다.
상기 생성하는 단계는, 상기 복수의 차선들 중에서 상기 사용자 차량이 주행하는 차로를 정의하는 두 개의 차선을 관심 영역으로 설정하는 단계와, 상기 두 개의 차선을 기준으로 결정되는 상기 도로에서의 상기 하나 이상의 객체의 위치를 결정하는 단계와, 상기 관심 영역 및 상기 하나 이상의 객체의 위치에 기초하여 상기 주행 상황 데이터를 생성하는 단계를 포함할 수 있다.
상기 결정하는 단계는, 상기 하나 이상의 객체 중에서 상기 두 개의 차선으로부터 일정 영역에 포함되는 객체를 선택하는 단계와, 상기 두 개의 차선에 대한 상기 선택된 객체의 상대적인 거리에 따라 상기 도로에서의 상기 선택된 객체의 위치를 결정하는 단계를 포함할 수 있다.
상기 객체를 선택하는 단계는, 상기 두 개의 차선의 내부 영역인 제1 영역 및 상기 두 개의 차선의 외부로부터의 일정 범위의 영역인 제2 영역을 설정하는 단계와, 상기 하나 이상의 객체 중에서 상기 제1 영역 및 상기 제2 영역에 포함되는 객체를 선택하는 단계를 포함할 수 있다.
상기 선택된 객체의 위치를 결정하는 단계는, 상기 두 개의 차선을 상기 도로를 수직으로 내려다보는 관점에 따라 변경하여 나타낸 버드 아이 뷰(bird's eye view) 이미지를 생성하는 단계와, 상기 변경된 두 개의 차선에 대한 상기 선택된 객체의 상대적인 거리에 따라 상기 버드 아이 뷰 이미지에서의 상기 선택된 객체의 위치를 결정하는 단계를 포함할 수 있다.
상기 두 개의 차선 및 상기 하나 이상의 객체의 위치에 기초하여 상기 주행 상황 데이터를 생성하는 단계는, 상기 변경된 두 개의 차선 및 상기 버드 아이 뷰 이미지에서 결정된 객체의 위치에 기초하여 상기 주행 상황 데이터를 생성하는 단계를 포함할 수 있다.
상기 방법은, 상기 주행 상황 데이터를 LSTM(Long Short-Term Memory)을 이용하여 처리하는 단계와, 상기 처리된 주행 상황 데이터를 전송하는 단계를 더 포함할 수 있다.
일 실시예에 따른 도로 주행 상황 제공 장치는, 도로 주행 상황 제공을 위한 인스트럭션들을 저장하는 메모리와, 상기 인스트럭션들을 실행하기 위한 프로세서를 포함하고, 상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는, 도로에서 도로 주행 이미지를 획득하고, 상기 도로 주행 이미지에서 복수의 차선(road line)들 및 하나 이상의 객체(object)를 검출(detection)하고, 상기 복수의 차선들 중에서 사용자 차량이 주행하는 차로(road lane)가 정의되는 두 개의 차선을 기준으로 결정되는 상기 도로에서의 상기 하나 이상의 객체의 위치에 기초하여 상기 사용자 차량과 상기 하나 이상의 객체 간의 주행 상황 인지를 위한 주행 상황 데이터를 생성한다.
상기 프로세서는, 상기 복수의 차선들 중에서 상기 사용자 차량이 주행하는 차로를 정의하는 두 개의 차선을 관심 영역으로 설정하고, 상기 두 개의 차선을 기준으로 결정되는 상기 도로에서의 상기 하나 이상의 객체의 위치를 결정하고, 상기 관심 영역 및 상기 하나 이상의 객체의 위치에 기초하여 상기 주행 상황 데이터를 생성할 수 있다.
상기 프로세서는, 상기 하나 이상의 객체 중에서 상기 두 개의 차선으로부터 일정 영역에 포함되는 객체를 선택하고, 상기 두 개의 차선에 대한 상기 선택된 객체의 상대적인 거리에 따라 상기 도로에서의 상기 선택된 객체의 위치를 결정할 수 있다.
상기 프로세서는, 상기 두 개의 차선의 내부 영역인 제1 영역 및 상기 두 개의 차선의 외부로부터의 일정 범위의 영역인 제2 영역을 설정하고, 상기 하나 이상의 객체 중에서 상기 제1 영역 및 상기 제2 영역에 포함되는 객체를 선택할 수 있다.
상기 프로세서는, 상기 두 개의 차선을 상기 도로를 수직으로 내려다보는 관점에 따라 변경하여 나타낸 버드 아이 뷰(bird's eye view) 이미지를 생성하고, 상기 변경된 두 개의 차선에 대한 상기 선택된 객체의 상대적인 거리에 따라 상기 버드 아이 뷰 이미지에서의 상기 선택된 객체의 위치를 결정할 수 있다.
상기 프로세서는, 상기 변경된 두 개의 차선 및 상기 버드 아이 뷰 이미지에서 결정된 객체의 위치에 기초하여 상기 주행 상황 데이터를 생성할 수 있다.
상기 프로세서는, 상기 주행 상황 데이터를 LSTM(Long Short-Term Memory)을 이용하여 처리하고, 상기 처리된 주행 상황 데이터를 전송할 수 있다.
도 1은 자율 주행 단계를 설명하기 위한 도면이다.
도 2 내지 도 4는 기존의 도로 주행 상황 인지를 위한 차선 검출 및 객체 검출에 대한 도면이다.
도 5는 일 실시예에 따른 도로 주행 상황 제공 시스템을 나타낸다.
도 6은 도 5에 도시된 도로 주행 상황 제공 장치를 개략적으로 나타낸 도면이다.
도 7은 도로 주행 상황 제공 장치의 동작을 설명하기 위한 순서도이다.
도 8은 도로 주행 상황 제공 장치가 객체를 검출하는 동작의 일 예를 설명하기 위한 도면이다.
도 9 및 도 10은 도로 주행 상황 제공 장치가 차선을 검출하는 동작의 일 예를 설명하기 위한 도면이다.
도 11 및 도 12는 도로 주행 상황 제공 장치가 사용자 차량의 주행에 영향을 미치는 객체를 선택하는 동작의 일 예를 설명하기 위한 도면이다.
도 13 및 도 14는 도로 주행 상황 제공 장치가 버드 아이 뷰 이미지에 기초하여 주행 상황 데이터를 생성하는 동작의 일 예를 설명하기 위한 도면이다.
도 15 및 도 16은 도로 주행 상황 제공 장치가 버드 아이 뷰 이미지에 기초하여 주행 상황 데이터를 생성하는 동작의 다른 예를 설명하기 위한 도면이다.
도 20은 도로 주행 상황 제공 장치가 LSTM을 이용하여 도로 주행 상황 인지를 수행하는 동작의 일 예를 설명하기 위한 도면이다.
도 2 내지 도 4는 기존의 도로 주행 상황 인지를 위한 차선 검출 및 객체 검출에 대한 도면이다.
도 5는 일 실시예에 따른 도로 주행 상황 제공 시스템을 나타낸다.
도 6은 도 5에 도시된 도로 주행 상황 제공 장치를 개략적으로 나타낸 도면이다.
도 7은 도로 주행 상황 제공 장치의 동작을 설명하기 위한 순서도이다.
도 8은 도로 주행 상황 제공 장치가 객체를 검출하는 동작의 일 예를 설명하기 위한 도면이다.
도 9 및 도 10은 도로 주행 상황 제공 장치가 차선을 검출하는 동작의 일 예를 설명하기 위한 도면이다.
도 11 및 도 12는 도로 주행 상황 제공 장치가 사용자 차량의 주행에 영향을 미치는 객체를 선택하는 동작의 일 예를 설명하기 위한 도면이다.
도 13 및 도 14는 도로 주행 상황 제공 장치가 버드 아이 뷰 이미지에 기초하여 주행 상황 데이터를 생성하는 동작의 일 예를 설명하기 위한 도면이다.
도 15 및 도 16은 도로 주행 상황 제공 장치가 버드 아이 뷰 이미지에 기초하여 주행 상황 데이터를 생성하는 동작의 다른 예를 설명하기 위한 도면이다.
도 20은 도로 주행 상황 제공 장치가 LSTM을 이용하여 도로 주행 상황 인지를 수행하는 동작의 일 예를 설명하기 위한 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
도 1은 자율 주행 단계를 설명하기 위한 도면이고, 도 2 내지 도 4는 기존의 도로 주행 상황 인지를 위한 차선 검출 및 객체 검출에 대한 도면이다.
최근 딥러닝 기술은 텍스트, 이미지, 비디오, 오디오 등의 다양한 데이터를 대상으로 하는 여러 응용 분야에서 이용되고 있다. 딥러닝 기술은 기존의 규칙 기반, 머신 러닝으로는 불가능하였던 복잡한 문제를 해결하기 위한 핵심 기술로써 주목받고 있다.
이에, 딥러닝 기술은 수많은 변수가 존재하는 자율 주행 자동차 분야의 가능성을 열어주었다. 현재 자율 주행 기술 단계는 미국자동차기술자협회(Society of Automotive Engineers, SAE)가 제시한 자율 주행 기술 단계를 기준으로, 대부분 2∼3단계 수준이다. 현재 자율 주행 기술은 보다 높은 수준의 자율 주행을 만족하기 위해서 보다 정확한 도로 주행 상황 인지 기술이 필요한 실정이다.
도로 주행 상황 인지란, 현재 주행 중인 사용자 차량과 사용자 차량의 주행 상황에 영향을 미칠 수 있는 주변 객체(object; 예를 들어, 사용자 차량과는 다른 차량 등) 간의 상대적인 위치 및 거리에 따른 이동 패턴의 분류로 정의할 수 있다. 예를 들어, 도로 주행 상황 인지는 주행 중인 사용자 차량의 주행 상황에 영향을 미칠 수 있는 위치 및 거리에 있는 다른 차량의 이동 방향을 분류하는 것 등이 될 수 있다. 도로 주행 상황 인지를 위한 가장 기본적인 데이터는 카메라로부터 획득되는 도로 주행 영상이며, 도 2 및 도 3은 이러한 도로 주행 영상과 도로 주행 상황 인지를 위한 기본적인 데이터 표현의 일 예를 보여준다.
하지만, 도 2 및 도 3과 같이 도로 주행 영상에 대한 어떠한 전처리도 없이 기본적인 데이터 표현으로 도로 주행 상황 인지를 수행할 경우의 문제점은 다음과 같다.
도 2를 참조하면, 기본적인 데이터 표현으로 도로 주행 상황 인지를 수행할 경우 2차원으로 표현되는 이미지 특성상 거리를 반영하지 못한다. 따라서, 실제로는 현재 도로 주행 상황에 영향을 미치지 않는 멀리 있는 객체까지도 도로 주행 상황 인지에 사용된다. 이 경우, 도로 주행 상황에 영향을 미치지 않아 고려하지 않아도 되는 객체라도 주행 상황 인지에 사용되는데, 이러한 객체들은 도로 주행 상황 인지에 대한 노이즈로 작용할 가능성이 높다.
도 3을 참조하면, 잠재적으로 도로 주행 상황에 영향을 미칠 수 있는 객체는 (3-a)의 2차선에 있는 차량(310)이며, (3-b)의 3차선에 있는 차량(330)은 도로 주행 상황에 영향을 미치지 않아 판단의 고려 대상이 아니다. 도로 주행 상황 판단에 있어서, 2차선에 있는 차량(310)이 운전자가 주행 중인 1차선으로 이동하는 것과 3차선에 있는 차량(330)이 2차선으로 이동하는 것은 큰 의미 차이가 있지만, 기본적인 데이터 표현으로는 이러한 구분을 할 수 없다(3-c, 3-d).
상술한 문제점들은 도로 주행 상황을 판단하는데 있어서 기준점이 존재하지 않기 때문에 야기된다. 인간은 도로 주행 상황을 판단할 때, 현재 자신이 주행 중인 차선을 기준으로 차선 주변 객체들의 이동 패턴에 의존한다. 따라서 딥 러닝을 기반으로 도로 주행 상황을 인지하는 경우에도 인간의 사고와 비슷한 매커니즘을 반영할 필요가 있다.
또한, 도로 주행 영상에 대한 어떠한 전처리도 없이 기본적인 데이터 표현으로 도로 주행 상황 인지를 수행할 경우의 다른 문제점은, 카메라의 장착 위치와 카메라 스펙에 따라 도로 주행 영상 내 객체의 위치가 달라 질 수 있다는 점이다. 뿐만 아니라, 동일한 카메라 장착 위치와 카메라 스펙이더라도, 객체의 위치는 도로의 모양에 따라서 약간씩 다르게 나타날 수 있다.
도 4를 참조하면, 도로 주행 영상 화면(4-a, 4-b)과 이로부터 차선을 검출한 결과(4-c, 4-d)를 나타낸다. 두 도로 주행 영상 화면(4-a, 4-b)은 서로 다른 카메라 장착 위치와 카메라 스펙을 가진다.
각 도로 주행 영상(4-a, 4-b) 내에서 사용자 차량의 주행 차선 왼쪽에 객체가 존재한다고 가정했을 경우, 객체의 위치(obj 1, obj 2)가 다르게 나타날 수 있음을 알 수 있다. 예를 들어, 도로 주행 영상(4-a)에서 왼쪽 차선 바깥에 있는 객체(obj 1)의 위치와, 도로 주행 영상(4-b)에서 왼쪽 차선을 넘어 차선 중앙에 가까운 객체(obj 2)의 위치가 동일하게 표현될 것이다. 이 경우, 실제 도로 주행 상황에 있어서 큰 의미 차이가 있다. 결국, 도로 주행 영상에 대한 어떠한 전처리도 없이 기본적인 데이터 표현으로 도로 주행 상황 인지를 수행할 경우, 도로 주행 상황 인지 결과는 상황적 의미가 다름에도 불구하고 객체의 위치에 대한 잘못된 결과를 출력할 것이다.
일 실시예에 따른 도로 주행 상황 제공 시스템은 딥 러닝 기반 도로 주행 상황 인지의 정확도 향상을 위해 현재 사용자 차량이 주행 중인 차선을 기준으로 도로 주행 이미지를 전처리(preprocessing)함으로써, 현재 도로 주행 상황을 정확히 판단할 수 있다. 또한, 도로 주행 상황 제공 시스템은 카메라 장착 위치 및/또는 카메라 스펙이 상이하더라도 동일한 도로 주행 상황 인지를 수행할 수 있다.
이하에서는, 도 5 내지 도 20을 참조하여 실시예들을 설명하도록 한다.
도 5는 일 실시예에 따른 도로 주행 상황 제공 시스템을 나타낸다.
도로 주행 상황 제공 시스템(10)은 카메라(100) 및 도로 주행 상황 제공 장치(200)를 포함한다.
도로 주행 상황 제공 시스템(10) 도로(lane) 주행 이미지에서 도로의 차선(road line)을 기준으로 사용자 차량과 객체 간의 주행 상황을 인지함으로써, 도로 주행 상황 인지에 대한 정확도를 높일 수 있다. 차선은 도로에서 차량이 일직선으로 주행하는 영역을 정의하는 선을 의미할 수 있다. 차도는 차선으로 정의되며 차량이 일직선으로 주행하는 영역을 의미할 수 있다.
카메라(100)는 도로에서 도로 주행 이미지를 촬영할 수 있다. 예를 들어, 도로 주행 이미지는 사용자 차량의 전방, 측면, 및/또는 후방에서 획득한 이미지일 수 있다. 도로 주행 이미지는 사용자 차량의 모든 방향(360도)이 촬영된 이미지일 수 있다. 카메라(100)는 도로 주행 이미지를 도로 주행 상황 제공 장치(200)로 전송할 수 있다.
도로 주행 상황 제공 장치(200)는 카메라(100)로부터 획득한 도로 주행 이미지를 전처리(preprocessing)하여 사용자 차량과 도로를 주행하는 객체 간의 주행 상황을 더욱 정확히 인지할 수 있다.
도로 주행 상황 제공 장치(200)는 도로 주행 이미지에서 복수의 차선들 및 하나 이상의 객체를 검출할 수 있다. 예를 들어, 도로 주행 상황 제공 장치(200)는 YOLO(You Only Look Once)를 통해 하나 이상의 객체를 검출할 수 있다. YOLO는 하나의 CNN 모델을 이용하여 하나 이상의 객체의 위치 검출과 하나 이상의 객체의 분류를 동시에 수행할 수 있다. 다른 예를 들어, 도로 주행 상황 제공 장치(200)는 YOLO v3를 통해 하나 이상의 객체를 검출할 수 있다.
도로 주행 상황 제공 장치(200)는 복수의 차선들 및 하나 이상의 객체에 기초하여 사용자 차량과 하나 이상의 객체 간의 주행 상황 인지를 위한 주행 상황 데이터를 생성할 수 있다. 예를 들어, 도로 주행 상황 제공 장치(200)는 연속적인 주행 상황 데이터와 같은 순차적인 데이터를 처리할 수 있는 LSTM(Long Short-Term Memory)을 이용하여 도로 주행 상황 인지를 수행할 수 있다. 도로 주행 상황 제공 장치(200)는 도로 주행 상황 인지를 수행하는 LSTM 모듈(미도시)을 포함할 수 있다.
도로 주행 상황 제공 장치(200)는 주행 상황 데이터를 전송할 수 있다. 예를 들어, 도로 주행 상황 제공 장치(200)는 주행 상황 데이터를 자율 주행 장치(미도시) 및/또는 디스플레이(미도시)에 전송할 수 있다. 자율 주행 장치(미도시)는 차량의 자율 주행을 위한 장치일 수 있으며, 주행 상황 데이터를 이용하여 도로에서 사용자 차량에 영향을 미치는 객체의 움직임에 따라 차량을 제어할 수 있다. 사용자 차량에 영향을 미치는 객체는 사용자 차량과 충돌 가능성이 있는 객체 및 사용자 차량과 일정 거리 이하로 근접한 객체, 현재 사용자 차량이 주행 중인 차로(lane) 내에 있는 객체, 현재 사용자 차량이 주행중인 차로 주변 객체 등을 의미할 수 있다. 디스플레이(미도시)는 주행 상황 데이터를 출력할 수 있다.
도 6은 도 5에 도시된 도로 주행 상황 제공 장치를 개략적으로 나타낸 도면이다.
도로 주행 상황 제공 장치(200)는 프로세서(210) 및 메모리(250)를 포함할 수 있다.
프로세서(210)는 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor) 중 하나 또는 그 이상을 포함할 수 있다.
프로세서(210)는 도로 주행 상황 제공 장치(200)의 적어도 하나의 다른 구성요소들의 제어에 관한 연산이나 데이터 처리를 실행할 수 있다. 예를 들어, 프로세서(210)는 메모리(250)에 저장된 어플리케이션 및/또는 소프트웨어 등을 실행할 수 있다.
프로세서(210)는 수신한 데이터를 처리할 수 있다. 프로세서(210)는 메모리(250)에 저장된 데이터를 처리할 수 있다. 프로세서(210)는 메모리(250)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(210)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.
프로세서(210)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(210)는 카메라(100)를 제어하여 도로에서 도로 주행 이미지를 획득할 수 있다.
프로세서(210)는 도로 주행 이미지에서 복수의 차선(road line)들 및 하나 이상의 객체(object)를 검출(detection)할 수 있다.
프로세서(210)는 복수의 차선들 중에서 사용자 차량이 주행하는 차로(road lane)가 정의되는 두 개의 차선을 기준으로 결정되는 도로에서의 하나 이상의 객체의 위치에 기초하여 사용자 차량과 하나 이상의 객체 간의 주행 상황 인지를 위한 주행 상황 데이터를 생성할 수 있다.
프로세서(210)는 복수의 차선들 중에서 사용자 차량이 주행하는 차로를 정의하는 두 개의 차선을 선택할 수 있다.
프로세서(210)는 두 개의 차선을 기준으로 결정되는 도로에서의 하나 이상의 객체의 위치를 결정할 수 있다.
프로세서(210)는 하나 이상의 객체 중에서 두 개의 차선으로부터 일정 영역에 포함되는 객체를 선택할 수 있다. 예를 들어, 프로세서(210)는 두 개의 차선의 내부 영역인 제1 영역 및 두 개의 차선의 외부로부터의 일정 범위의 영역인 제2 영역을 설정할 수 있다. 프로세서(210)는 하나 이상의 객체 중에서 제1 영역 및 제2 영역에 포함되는 객체를 선택할 수 있다.
프로세서(210)는 두 개의 차선에 대한 선택된 객체의 상대적인 거리에 따라 도로에서의 선택된 객체의 위치를 결정할 수 있다. 예를 들어, 프로세서(210)는 두 개의 차선을 도로를 수직으로 내려다보는 관점에 따라 변경하여 나타낸 버드 아이 뷰(bird's eye view) 이미지를 생성할 수 있다. 프로세서(210)는 변경된 두 개의 차선에 대한 선택된 객체의 상대적인 거리에 따라 버드 아이 뷰 이미지에서의 선택된 객체의 위치를 결정할 수 있다.
프로세서(210)는 두 개의 차선 및 하나 이상의 객체의 위치에 기초하여 주행 상황 데이터를 생성할 수 있다. 예를 들어, 프로세서(210)는 변경된 두 개의 차선 및 버드 아이 뷰 이미지에서 결정된 객체의 위치에 기초하여 주행 상황 데이터를 생성할 수 있다.
프로세서(210)는 주행 상황 데이터를 LSTM(Long Short-Term Memory)을 이용하여 처리할 수 있다. 프로세서(210)는 처리된 주행 상황 데이터를 전송할 수 있다.
메모리(250)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(250)는, 도로 주행 상황 제공 장치(200)의 적어도 하나의 다른 구성요소에 관계된 명령 및/또는 데이터를 저장할 수 있다.
메모리(250)는 소프트웨어(software) 및/또는 프로그램(program) 등을 저장할 수 있다. 예를 들어, 메모리(250)는 도로 주행 상황 제공을 위한 어플리케이션 및 소프트 웨어를 저장할 수 있다.
도 7은 도로 주행 상황 제공 장치의 동작을 설명하기 위한 순서도이다.
도로 주행 상황 제공 장치(200)는 도로 주행 이미지를 획득할 수 있다(710). 도로 주행 상황 제공 장치(200)는 도로 주행 이미지에서 복수의 차선들 및 하나 이상의 객체를 검출할 수 있다(720).
도로 주행 상황 제공 장치(200)는 복수의 차선들 중에서 사용자 차량이 주행하는 차로를 정의하는 두 개의 차선을 선택할 수 있다. 도로 주행 상황 제공 장치(200)는 하나 이상의 객체 중에서 두 개의 차선으로부터 일정 영역에 포함되는 객체를 선택할 수 있다(730).
도로 주행 상황 제공 장치(200)는 두 개의 차선을 도로를 수직으로 내려다보는 관점에 따라 변경하여 나타낸 버드 아이 뷰 이미지를 생성할 수 있다(740). 도로 주행 상황 제공 장치(200)는 버드 아이 뷰 이미지에 두 개의 차선으로부터 일정 영역에 포함되는 객체의 위치를 결정할 수 있다.
도로 주행 상황 제공 장치(200)는 버드 아이 뷰 이미지 및 결정된 객체의 위치에 기초하여 주행 상황 데이터를 생성할 수 있다(750).
도로 주행 상황 제공 장치(200)는 주행 상황 데이터를 LSTM을 이용하여 처리하고, 처리된 주행 상황 데이터를 전송할 수 있다(760).
도 8은 도로 주행 상황 제공 장치가 객체를 검출하는 동작의 일 예를 설명하기 위한 도면이고, 도 9 및 도 10은 도로 주행 상황 제공 장치가 차선을 검출하는 동작의 일 예를 설명하기 위한 도면이다.
도로 주행 상황 제공 장치(200)는 도로 주행 이미지에서 하나 이상의 객체를 검출할 수 있다. 예를 들어, 도로 주행 상황 제공 장치(200)는 도로 주행 이미지(810)에서 Darknet 프레임 워크의 YOLO v3 모델을 이용하여 하나 이상의 객체를 검출할 수 있다. 즉, 도로 주행 상황 제공 장치(200)는 도 8과 같이 YOLO v3을 이용하여 객체 이름, 신뢰도(정확도), 바운딩 박스의 중심 X좌표, 중심 Y좌표, 폭, 높이(Object Name, Confidence, (Box_Center_X, Box_Center_Y, Box_Width, Box_Height))와 같은 순서 및 의미를 가지는 객체 검출 결과(850)를 생성할 수 있다.
도로 주행 상황 제공 장치(200)는 도로 주행 이미지에서 복수의 차선들을 검출할 수 있다. 예를 들어, 도로 주행 상황 제공 장치(200)는 도 9 및 도 10에 나타난 과정(910 내지 970)을 수행할 수 있다. 도로 주행 상황 제공 장치(200)는 과정(910 내지 970)을 OpenCV을 이용하여 구현할 수 있다.
도로 주행 상황 제공 장치(200)는 도로 주행 이미지를 획득할 수 있다(910). 일반적으로 차선은 흰색 또는 노란색으로 이루어져 있으므로, 도로 주행 상황 제공 장치(200)는 RGB 이미지인 도로 주행 이미지에 대해 흰색과 노란색 추출을 위한 마스크(mask)를 적용하여 강조할 수 있다(920).
도로 주행 상황 제공 장치(200)는 도로 주행 이미지를 그레이 스캐일(Grayscale) 이미지로 변환할 수 있다(930). 도로 주행 상황 제공 장치(200)는 노이즈 제거를 위해 도로 주행 이미지에 가우시안 필터(Gausian Smoothing)를 적용할 수 있다(940).
도로 주행 상황 제공 장치(200)는 도로 주행 이미지에서 Canny Edgy 검출을 통해 Edgy를 검출할 수 있다(950). 도로 주행 상황 제공 장치(200)는 도로 주행 이미지에서 사용자 차량이 주행하는 차로를 관심 영역(Region of Interest, ROI)을 설정할 수 있다(960). 예를 들어, 관심 영역은 도로 주행 이미지의 기준 또는 기준점일 수 있다. 도로 주행 상황 제공 장치(200)는 도로 주행 이미지에 Hough 변환을 적용하여 차선을 검출할 수 있다(970).
다른 예를 들어, 도로 주행 상황 제공 장치(200)는 차선 이탈 경고 시스템(LDW, Lane Departure Warning)이나 차로 이탈방지 보조 시스템(LKA, Lane Keeping Assist) 등의 기술을 이용하여 차선을 검출할 수 있다.
도 11 및 도 12는 도로 주행 상황 제공 장치가 사용자 차량의 주행에 영향을 미치는 객체를 선택하는 동작의 일 예를 설명하기 위한 도면이다.
도로 주행 상황 제공 장치(200)는 검출한 하나 이상의 객체와 복수의 차선들에 기초하여 사용자 차량의 도로 주행 상황에 영향을 미칠 가능성이 높은 후보 객체들을 검출할 수 있다. 사용자 차량의 도로 주행 상황에 영향을 미칠 가능성이 높은 후보 객체들이란, 현재 사용자 차량이 주행 중인 차로 내에 있는 객체와, 현재 사용자 차량이 주행 중인 차로의 주변 객체들을 의미할 수 있다. 따라서, 후보 객체들의 개수는 차선의 길이에 따라 영향을 받을 수 있다.
도로 주행 상황 제공 장치(200)는 차선 검출 결과를 왼쪽과 오른쪽 차선 각각의 좌표(Bottom_X, Bottom_Y), 좌표(Top_X, Top_Y)와 같은 좌표로 생성할 수 있다. 도로 주행 상황 제공 장치(200)는 차선의 길이를 직선의 방정식과 차선의 좌표를 통해 늘리거나 줄여 생성할 수 있다. 즉, 도로 주행 상황 제공 장치(200)는 수학식 1과 같은 직선의 방정식과 차선의 좌표를 이용하여 차선의 길이를 늘리거나 줄일 수 있다.
도로 주행 상황 제공 장치(200)는 차선의 길이를 계산한 후, 도로 주행 상황에 영향을 미칠 가능성이 높은 후보 객체들, 즉 차선과 교차(intersect)하는 객체 검출을 위한 과정을 수행할 수 있다. 예를 들어, 도로 주행 상황 제공 장치(200)는 Python의 Shapely 패키지를 이용하여 Polygon 생성 및 Polygon 간의 교차 여부를 판단할 수 있다.
도로 주행 상황 제공 장치(200)는 사용자 차량이 현재 주행 중인 차로 내에 있는 객체와의 교차 여부를 계산할 수 있다. 도로 주행 상황 제공 장치(200)는 과정(1110)에서 획득한 사용자 차량이 현재 주행 중인 차로를 정의하는 왼쪽과 오른쪽 두 개의 차선의 좌표(Bottom_X, Bottom_Y), 좌표(Top_X, Top_Y)를 이용하여 Polygon을 생성할 수 있다(1120).
도로 주행 상황 제공 장치(200)는 두 개의 차선 주변 객체들과의 교차 여부를 계산할 수 있다. 도로 주행 상황 제공 장치(200)는 사용자 차량이 현재 주행 중인 차로를 정의하는 왼쪽과 오른쪽 두 개의 차선의 X축 좌표에 대해 일정 영역을 확장하기 위한 마진(margin) 값을 더하고 이전 Polygon을 갱신할 수 있다(1130).
도로 주행 상황 제공 장치(200)는 마진 값을 더해 생성한 차선 Polygon을 도로 주행 상황 인지를 위한 관심 영역(Region of Interest, ROI)으로 결정할 수 있다. 도로 주행 상황 제공 장치(200)는 관심 영역과 교차하는 객체(1115)를 사용자 차량의 도로 주행 상황에 잠재적으로 영향을 미칠 가능성이 높은 객체들로 판단할 수 있다(1140).
예를 들어, 도로 주행 상황 제공 장치(200)는 관심 영역과 하나 이상의 바운딩 박스(bounding box; 1111, 1115)와의 교차 여부를 Shapely 패키지의 intersects 함수로 계산할 수 있다. 바운딩 박스(1111, 1115)는 객체가 도로 주행 이미지에서 차지하는 일정 영역을 의미할 수 있다.
도로 주행 상황 제공 장치(200)는 바운딩 박스(1111, 1115)교차 여부에 따라 True 또는 False를 반환할 수 있다. 또한, 도로 주행 상황 제공 장치(200)는 intersection 함수를 통해 교차하는 영역의 좌표를 생성할 수 있다. 즉, 도로 주행 상황 제공 장치(200)는 과정(1140)에서 True가 반환된 교차 객체(1115)를 선택할 수 있다. 도로 주행 상황 제공 장치(200)는 교차 객체(1150)와 관심 영역이 교차하는 영역의 좌표를 생성할 수 있다.
도 13 및 도 14는 도로 주행 상황 제공 장치가 버드 아이 뷰 이미지에 기초하여 주행 상황 데이터를 생성하는 동작의 일 예를 설명하기 위한 도면이다.
도로 주행 상황 제공 장치(200)는 카메라 위치, 카메라 스펙, 도로의 모양에 따라 불규칙하게 나타나는 객체의 위치를 일정한 규칙에 따라 표현될 수 있도록 정규화 할 수 있다. 정규화란, 두 개의 차선을 하늘에서 수직으로 내려다보는 관점인 버드 아이 뷰(bird's eye view)로 고정시키고, 객체의 위치를 두 개의 차선에 대한 상대적인 객체의 위치로 일정하게 변환하는 것을 의미할 수 있다.
도로 주행 상황 제공 장치(200)는 상술한 정규화의 결과로 버드 아이 뷰(Bird's Eye View) 이미지를 생성할 수 있다. 도 13과 도 14에 나타난 도면들은 정규화의 필요성을 설명하기 위한 버드 아이 뷰 이미지 생성 결과의 일 예를 나타낸다. 도 13과 도 14는 각각 다른 카메라 위치와 카메라 스펙을 가지는 서로 다른 도로 주행 영상이다.
데이터 표현(1330 및 1430)은 서로 다른 도로 주행 이미지(1310, 1410)를 각각 기본적인 데이터 표현으로 나타낸 것이다. 서로 다른 도로 주행 이미지(1310, 1410)는 사용자 차량이 주행하는 차로의 왼쪽이라는 상황적 의미는 같지만, 서로 다른 도로 주행 이미지(1310, 1410)를 기본적인 데이터 표현(1330, 1430)으로 나타내었을 경우 각 객체(1300, 1400)의 위치가 서로 다르게 나타나는 것을 알 수 있다. 이는, 서로 다른 도로 주행 이미지(1310, 1410)가 각각 다른 카메라 위치와 카메라 스펙을 가지는 결과 나타나는 것이다. 따라서, 도로 주행 영상만으로 도로 주행 상황 인지를 수행할 경우 잘못된 결과를 내놓을 가능성이 크다는 것을 알 수 있다.
하지만, 도로 주행 상황 제공 장치(200)가 서로 다른 도로 주행 이미지(1310, 1410)을 정규화를 거쳐 버드 아이 뷰 이미지에 객체를 매핑한 결과(1350, 1450)를 보면 실제 상황적 의미와 객체의 위치가 동일하게 표현되는 것을 알 수 있다.
도 15 및 도 16은 도로 주행 상황 제공 장치가 버드 아이 뷰 이미지에 기초하여 주행 상황 데이터를 생성하는 동작의 다른 예를 설명하기 위한 도면이다.
도 15 및 16을 참조하면, 도로 주행 이미지(1510)는 차선 왼쪽에 객체가 존재하고, 도로 주행 이미지(1610)는 차선 중앙에 객체가 존재하여 상황적 의미가 다르다는 것을 알 수 있다. 하지만, 도로 주행 이미지(1510, 1610)를 기본적인 데이터 표현으로 나타낸 경우(1530, 1630)에서의 각 객체(1500, 1600)의 위치는 기본적인 데이터 표현(1330)의 객체(1300) 및 기본적인 데이터 표현(1430)의 객체(1400)보다 오히려 더 비슷하게 나타나는 것을 알 수 있다.
즉, 도 13 및 14에서 설명한 바와 같이, 도로 주행 이미지에 대한 어떠한 전처리 없이 도로 주행 영상만으로 상황 인지를 수행할 경우 잘못된 도로 주행 상황 인지 결과를 내놓을 가능성이 높다. 하지만, 도로 주행 상황 제공 장치(200)가 정규화를 거쳐 버드 아이 뷰 이미지에 객체를 매핑한 결과(1550, 1650)를 보면 각각의 실제 상황적 의미에 맞게 각 객체(1500, 1600)의 위치가 표현됨을 알 수 있다.
도로 주행 상황 제공 장치(200)는 버드 아이 뷰 이미지에 기초한 매핑(mapping) 공간에서 두 개의 차선을 고정시키고, 두 개의 차선에 대한 상대적인 객체의 중심 좌표 및 객체의 폭과 길이를 계산함으로써 주행 상황 데이터를 생성할 수 있다.
아래에서는 설명의 편의 및 일 예로, 버드 아이 뷰 이미지에 기초한 매핑 공간을 세로 20, 가로 50인 20 × 50 사이즈의 매핑 공간으로 가정하여 설명하도록 한다. 도로 주행 상황 제공 장치(200)는 차선의 중심 X 좌표를 매핑 공간의 가로의 중심인 25, 차선의 중심 Y 좌표를 매핑 공간의 세로의 중심인 10으로 결정할 수 있다. 도로 주행 상황 제공 장치(200)는 두 개의 차선의 폭과 길이를 20으로 결정할 수 있다.
도로 주행 상황 제공 장치(200)는 버드 아이 뷰 이미지에 기초하여 객체를 매핑하기 위해, 두 개의 차선으로부터 일정 영역에 포함되는(교차되는) 객체에 대하여 다음 과정을 수행할 수 있다.
도로 주행 상황 제공 장치(200)는 바운딩 박스의 중심 X 좌표와 바운딩 박스의 폭을 수학식 2 및 3을 통해 계산할 수 있다.
도로 주행 상황 제공 장치(200)는 바운딩 박스의 하단 Y 좌표에 해당하는 각 차선의 X 좌표를 수학식 4 및 5를 통해 계산할 수 있다.
도로 주행 상황 제공 장치(200)는 차선의 중심 X 좌표와 차선의 폭을 수학식 6 및 7을 통해 계산할 수 있다.
도로 주행 상황 제공 장치(200)는 차선의 중심 X 좌표와 바운딩 박스의 중심 X 좌표 간 거리를 수학식 8을 통해 계산할 수 있다.
도로 주행 상황 제공 장치(200)는 차선의 중심 X 좌표와 바운딩 박스의 중심 X 좌표 간 거리를 차선의 폭으로 나누어 차선 폭에 대한 차선과 바운딩 박스의 중심 X 좌표간 거리의 비율을 수학식 9를 통해 계산할 수 있다.
도로 주행 상황 제공 장치(200)는 매핑 공간에서 차선은 고정되어 있으므로, 매핑 공간 내 차선의 중심 X좌표와 차선의 폭도 상수 값(예를 들어, 각각 25, 20)으로 결정할 수 있다. 도로 주행 상황 제공 장치(200)는 매핑 공간 내 바운딩 박스의 중심 X 좌표를 수학식 10을 통해 계산할 수 있다.
는 매핑 공간 내 바운딩 박스의 중심 X 좌표, 는 매핑 공간 내 차선의 중심 X 좌표(예를 들어, 상수 25), 은 매핑 공간 내 차선의 폭(예를 들어, 상수 20), 는 에 대한 의 비율을 의미할 수 있다.
도로 주행 상황 제공 장치(200)는 매핑 공간 내 바운딩 박스의 폭을 계산할 수 있다. 이를 위해, 도로 주행 상황 제공 장치(200)는 차선의 폭에 대한 바운딩 박스의 폭의 비율을 수학식 11을 통해 계산할 수 있다.
도로 주행 상황 제공 장치(200)는 차선 폭에 대한 바운딩 박스의 폭의 비율을 매핑 공간 내 차선의 폭에 곱하여 매핑 공간 내 객체 박스의 폭을 수학식 12를 통해 계산할 수 있다.
도로 주행 상황 제공 장치(200)는 매핑 공간 내 바운딩 박스의 중심 Y좌표와 매핑 공간 내 객체 박스의 길이를 계산할 수 있다. 하지만, 바운딩 박스의 높이가 객체의 길이를 의미하는 것은 아니며, 도로 주행 이미지에서 객체의 길이를 알 수 있는 방법 또한 없다. 또한, 현재 주행 중인 운전자 차량과 객체 간의 거리에 있어서 객체의 높이와 길이는 중요하지 않다. 따라서, 도로 주행 상황 제공 장치(200)는 매핑 공간 내 바운딩 박스의 길이를 임의의 고정된 상수(예를 들어, 5)로 결정할 수 있다.
객체와의 거리를 구하는데 있어서 그 기준은 바운딩 박스의 하단 Y좌표와의 거리일 수 있다. 따라서, 도로 주행 상황 제공 장치(200)는 차선의 중심 Y좌표와 바운딩 박스의 하단 Y좌표간 거리를 수학식 13을 통해 계산할 수 있다.
도로 주행 상황 제공 장치(200)는 차선의 중심 Y좌표와 바운딩 박스의 하단 Y 좌표간 거리를 차선의 길이로 나누어 차선 길이에 대한 차선 중심과 바운딩 박스의 하단 Y좌표간 거리의 비율을 수학식 14를 통해 계산할 수 있다.
매핑 공간에서 차선은 고정되어 있으므로, 도로 주행 상황 제공 장치(200)는 매핑 공간 내 차선의 중심 Y좌표와 매핑 공간 내 차선의 길이를 상수 값(예를 들어, 각각 10, 20)으로 결정할 수 있다.
도로 주행 상황 제공 장치(200)는 매핑 공간 내 바운딩 박스의 중심 Y좌표를 수학식 15 및 16을 통해 계산할 수 있다.
은 매핑 공간 내 바운딩 박스의 하단 Y 좌표, 는 매핑 공간 내 차선의 중심 Y 좌표(예를 들어, 상수 10), 은 매핑 공간 내 차선의 길이(예를 들어, 상수 20), 는 에 대한 의 비율을 의미할 수 있다.
도 17 내지 도 19는 도로 주행 상황 제공 장치가 객체 특징 맵을 생성하는 동작을 설명하기 위한 도면이다.
도로 주행 상황 제공 장치(200)는 수학식 2 내지 16 까지의 정규화 과정을 통해 버드 아이 뷰 이미지에 기초한 매핑 공간내 객체의 중심 좌표와 객체의 폭 및 길이를 계산할 수 있다.
도로 주행 상황 제공 장치(200)는 버드 아이 뷰 이미지를 RGB 3채널의 이미지 형식으로 생성할 수 있다. 도로 주행 상황 제공 장치(200)는 버드 아이 뷰 이미지를 연산 수 축소를 위해 1채널의 Grayscale 이미지 형식으로 생성할 수 있다.
도로 주행 상황 제공 장치(200)는 객체에 ID(예를 들어, 승용차 : 5, 사람 : 10, 트럭 : 15 등)를 부여할 수 있다. 도로 주행 상황 제공 장치(200)는 객체 영역을 해당 객체 ID로 할당한 후 나머지 영역에 1을 할당할 수 있다. 도로 주행 상황 제공 장치(200)는 버드 아이 뷰 이미지에 기초한 매핑 결과를 이용해 2차원 형태의 객체 특징 맵(object feature map; 1750, 1850, 1950)을 생성할 수 있다.
도 20은 도로 주행 상황 제공 장치가 LSTM을 이용하여 도로 주행 상황 인지를 수행하는 동작의 일 예를 설명하기 위한 도면이다.
도로 주행 상황 제공 장치(200)는 주행 상황 데이터를 LSTM을 이용하여 처리할 수 있다. 즉, 도로 주행 상황 제공 장치(200)는 주행 상황 데이터를 LSTM을 이용하여 도로 주행 상황 인지를 수행할 수 있다.
예를 들어, 도로 주행 상황 제공 장치(200)는 도로 주행 상황 인지를 수행하는 LSTM 모듈을 포함할 수 있다. LSTM 모듈은 길이 15의 Time Steps를 가지며, 각각의 LSTM Cell 입력으로는 연속된 도로 주행 이미지를 전처리한 20 × 50 사이즈의 주행 상황 데이터가 사용될 수 있다.
LSTM 모듈의 내부 Hidden Size는 300일 수 있다. LSTM 모듈은 마지막 LSTM Cell 출력에 Fully Connected Layer를 사용하여 도로 주행 상황을 인지할 수 있다. LSTM 모듈의 마지막 LSTM Cell의 출력은 크기 300이며, Fully Connected Layer의 출력은 도로 주행 상황 수(driving situation)일 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
Claims (14)
- 도로에서 도로 주행 이미지를 획득하는 단계;
상기 도로 주행 이미지에서 복수의 차선(road line)들 및 하나 이상의 객체(object)를 검출(detection)하는 단계; 및
상기 복수의 차선들 중에서 사용자 차량이 주행하는 차로(road lane)가 정의되는 두 개의 차선을 기준으로 결정되는 상기 도로에서의 상기 하나 이상의 객체의 위치에 기초하여 상기 사용자 차량과 상기 하나 이상의 객체 간의 주행 상황 인지를 위한 주행 상황 데이터를 생성하는 단계
를 포함하는 도로 주행 상황 제공 방법.
- 제1항에 있어서,
상기 생성하는 단계는,
상기 복수의 차선들 중에서 상기 사용자 차량이 주행하는 차로를 정의하는 두 개의 차선을 관심 영역으로 설정하는 단계;
상기 두 개의 차선을 기준으로 결정되는 상기 도로에서의 상기 하나 이상의 객체의 위치를 결정하는 단계; 및
상기 관심 영역 및 상기 하나 이상의 객체의 위치에 기초하여 상기 주행 상황 데이터를 생성하는 단계
를 포함하는 도로 주행 상황 제공 방법.
- 제2항에 있어서,
상기 결정하는 단계는,
상기 하나 이상의 객체 중에서 상기 두 개의 차선으로부터 일정 영역에 포함되는 객체를 선택하는 단계; 및
상기 두 개의 차선에 대한 상기 선택된 객체의 상대적인 거리에 따라 상기 도로에서의 상기 선택된 객체의 위치를 결정하는 단계;
를 포함하는 도로 주행 상황 제공 방법.
- 제3항에 있어서,
상기 객체를 선택하는 단계는,
상기 두 개의 차선의 내부 영역인 제1 영역 및 상기 두 개의 차선의 외부로부터의 일정 범위의 영역인 제2 영역을 설정하는 단계; 및
상기 하나 이상의 객체 중에서 상기 제1 영역 및 상기 제2 영역에 포함되는 객체를 선택하는 단계
를 포함하는 도로 주행 상황 제공 방법.
- 제4항에 있어서,
상기 선택된 객체의 위치를 결정하는 단계는,
상기 두 개의 차선을 상기 도로를 수직으로 내려다보는 관점에 따라 변경하여 나타낸 버드 아이 뷰(bird's eye view) 이미지를 생성하는 단계; 및
상기 변경된 두 개의 차선에 대한 상기 선택된 객체의 상대적인 거리에 따라 상기 버드 아이 뷰 이미지에서의 상기 선택된 객체의 위치를 결정하는 단계
를 포함하는 도로 주행 상황 제공 방법.
- 제5항에 있어서,
상기 관심 영역 및 상기 하나 이상의 객체의 위치에 기초하여 상기 주행 상황 데이터를 생성하는 단계는,
상기 변경된 두 개의 차선 및 상기 버드 아이 뷰 이미지에서 결정된 객체의 위치에 기초하여 상기 주행 상황 데이터를 생성하는 단계
를 포함하는 도로 주행 상황 제공 방법.
- 제1항 및 제6항 중 어느 하나에 있어서,
상기 주행 상황 데이터를 LSTM(Long Short-Term Memory)을 이용하여 처리하는 단계; 및
상기 처리된 주행 상황 데이터를 전송하는 단계
를 더 포함하는 도로 주행 상황 제공 방법.
- 도로 주행 상황 제공을 위한 인스트럭션들을 저장하는 메모리; 및
상기 인스트럭션들을 실행하기 위한 프로세서
를 포함하고,
상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는,
도로에서 도로 주행 이미지를 획득하고,
상기 도로 주행 이미지에서 복수의 차선(road line)들 및 하나 이상의 객체(object)를 검출(detection)하고,
상기 복수의 차선들 중에서 사용자 차량이 주행하는 차로(road lane)가 정의되는 두 개의 차선을 기준으로 결정되는 상기 도로에서의 상기 하나 이상의 객체의 위치에 기초하여 상기 사용자 차량과 상기 하나 이상의 객체 간의 주행 상황 인지를 위한 주행 상황 데이터를 생성하는
도로 주행 상황 제공 장치.
- 제8항에 있어서,
상기 프로세서는,
상기 복수의 차선들 중에서 상기 사용자 차량이 주행하는 차로를 정의하는 두 개의 차선을 관심 영역으로 설정하고,
상기 두 개의 차선을 기준으로 결정되는 상기 도로에서의 상기 하나 이상의 객체의 위치를 결정하고,
상기 관심 영역 및 상기 하나 이상의 객체의 위치에 기초하여 상기 주행 상황 데이터를 생성하는
도로 주행 상황 제공 장치.
- 제9항에 있어서,
상기 프로세서는,
상기 하나 이상의 객체 중에서 상기 두 개의 차선으로부터 일정 영역에 포함되는 객체를 선택하고,
상기 두 개의 차선에 대한 상기 선택된 객체의 상대적인 거리에 따라 상기 도로에서의 상기 선택된 객체의 위치를 결정하는
도로 주행 상황 제공 장치.
- 제10항에 있어서,
상기 프로세서는,
상기 두 개의 차선의 내부 영역인 제1 영역 및 상기 두 개의 차선의 외부로부터의 일정 범위의 영역인 제2 영역을 설정하고,
상기 하나 이상의 객체 중에서 상기 제1 영역 및 상기 제2 영역에 포함되는 객체를 선택하는
도로 주행 상황 제공 장치.
- 제11항에 있어서,
상기 프로세서는,
상기 두 개의 차선을 상기 도로를 수직으로 내려다보는 관점에 따라 변경하여 나타낸 버드 아이 뷰(bird's eye view) 이미지를 생성하고,
상기 변경된 두 개의 차선에 대한 상기 선택된 객체의 상대적인 거리에 따라 상기 버드 아이 뷰 이미지에서의 상기 선택된 객체의 위치를 결정하는
도로 주행 상황 제공 장치.
- 제12항에 있어서,
상기 프로세서는,
상기 변경된 두 개의 차선 및 상기 버드 아이 뷰 이미지에서 결정된 객체의 위치에 기초하여 상기 주행 상황 데이터를 생성하는
도로 주행 상황 제공 장치.
- 제8항 및 제13항 중 어느 하나에 있어서,
상기 프로세서는,
상기 주행 상황 데이터를 LSTM(Long Short-Term Memory)을 이용하여 처리하고,
상기 처리된 주행 상황 데이터를 전송하는
도로 주행 상황 제공 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180142276 | 2018-11-19 | ||
KR1020180142276 | 2018-11-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200058272A true KR20200058272A (ko) | 2020-05-27 |
Family
ID=70910995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190091855A KR20200058272A (ko) | 2018-11-19 | 2019-07-29 | 도로 주행 영상의 전처리를 통한 도로 주행 상황 제공 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20200058272A (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021241834A1 (ko) * | 2020-05-29 | 2021-12-02 | 서울대학교산학협력단 | 악천후 자율주행을 위한 교통 흐름 정보 인지 기반 가상 차선 생성 장치 및 방법 |
KR102388806B1 (ko) | 2021-04-30 | 2022-05-02 | (주)에이아이매틱스 | 주행 상황 판단 시스템 |
KR20220067874A (ko) * | 2020-11-18 | 2022-05-25 | 아주대학교산학협력단 | V2i 통신을 이용한 동적 자율주행 지원 시스템 |
KR20240050729A (ko) | 2022-10-12 | 2024-04-19 | (주) 캔랩 | 탑승자 행동 분석에 기반한 안전 관련 정보 전송 방법 |
-
2019
- 2019-07-29 KR KR1020190091855A patent/KR20200058272A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021241834A1 (ko) * | 2020-05-29 | 2021-12-02 | 서울대학교산학협력단 | 악천후 자율주행을 위한 교통 흐름 정보 인지 기반 가상 차선 생성 장치 및 방법 |
KR20220067874A (ko) * | 2020-11-18 | 2022-05-25 | 아주대학교산학협력단 | V2i 통신을 이용한 동적 자율주행 지원 시스템 |
KR102388806B1 (ko) | 2021-04-30 | 2022-05-02 | (주)에이아이매틱스 | 주행 상황 판단 시스템 |
KR20240050729A (ko) | 2022-10-12 | 2024-04-19 | (주) 캔랩 | 탑승자 행동 분석에 기반한 안전 관련 정보 전송 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102421855B1 (ko) | 주행 차로를 식별하는 방법 및 장치 | |
CN111874006B (zh) | 路线规划处理方法和装置 | |
KR20200058272A (ko) | 도로 주행 영상의 전처리를 통한 도로 주행 상황 제공 방법 및 시스템 | |
US11017244B2 (en) | Obstacle type recognizing method and apparatus, device and storage medium | |
US11250288B2 (en) | Information processing apparatus and information processing method using correlation between attributes | |
EP3627180A1 (en) | Sensor calibration method and device, computer device, medium, and vehicle | |
US9245188B2 (en) | Lane detection system and method | |
US20200082182A1 (en) | Training data generating method for image processing, image processing method, and devices thereof | |
CN110018496A (zh) | 障碍物识别方法及装置、电子设备、存储介质 | |
KR20190026116A (ko) | 객체 인식 방법 및 장치 | |
CN111091037B (zh) | 用于确定驾驶信息的方法和设备 | |
KR20210135389A (ko) | 장애물 인식 장치, 그를 포함하는 차량 시스템 및 그 방법 | |
CN102997900A (zh) | 外界识别方法、装置以及车辆系统 | |
US11755917B2 (en) | Generating depth from camera images and known depth data using neural networks | |
CN111178122A (zh) | 道路场景中三维车道的检测及平面表示 | |
CN103770704A (zh) | 用于识别车辆的停车位标志线的系统和方法 | |
US12005889B2 (en) | Arithmetic operation device for vehicle | |
CN114929543A (zh) | 预测周围因素的加塞概率 | |
KR20210050081A (ko) | 객체 인식 방법 및 이를 수행하는 객체 인식 장치 | |
KR20200039548A (ko) | 자동차의 블라인드 스팟 모니터링을 위한 학습 방법과 테스팅 방법, 및 이를 이용한 학습 장치와 테스팅 장치 | |
KR20210024854A (ko) | 영상을 증강하는 방법 및 장치 | |
CN115158309A (zh) | 使用上下文敏感融合的因素轨迹预测 | |
KR20200095357A (ko) | 비최대값 억제를 학습하는 병합 네트워크를 이용한 이종 센서 융합을 위한 학습 방법 및 학습 장치 | |
Cordts et al. | Object-level priors for stixel generation | |
KR102065693B1 (ko) | 자율주행 차량을 위한 기계학습 데이터 표준화 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E601 | Decision to refuse application |