KR102503594B1 - 주행 환경 인지 방법 및 장치 - Google Patents

주행 환경 인지 방법 및 장치 Download PDF

Info

Publication number
KR102503594B1
KR102503594B1 KR1020200156353A KR20200156353A KR102503594B1 KR 102503594 B1 KR102503594 B1 KR 102503594B1 KR 1020200156353 A KR1020200156353 A KR 1020200156353A KR 20200156353 A KR20200156353 A KR 20200156353A KR 102503594 B1 KR102503594 B1 KR 102503594B1
Authority
KR
South Korea
Prior art keywords
task
driving environment
learning
feature maps
common
Prior art date
Application number
KR1020200156353A
Other languages
English (en)
Other versions
KR20220069335A (ko
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 재단법인대구경북과학기술원
Priority to KR1020200156353A priority Critical patent/KR102503594B1/ko
Publication of KR20220069335A publication Critical patent/KR20220069335A/ko
Application granted granted Critical
Publication of KR102503594B1 publication Critical patent/KR102503594B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)

Abstract

통합 주행 환경 인지를 위한 멀티태스크 딥러닝 모델을 이용하여 객체, 차선 및 도로 검출을 동시에 수행하는 주행 환경 인지 방법 및 장치를 제공한다. 이로써, 고성능 고효율의 통합 주행 환경 인지가 가능하다.

Description

주행 환경 인지 방법 및 장치{METHOD AND APPARATUS FOR PERCEIVING DRIVING ENVIRONMENT}
본 발명은 주행 환경 인지 방법 및 장치에 관한 것으로, 보다 상세하게는 객체, 차선 및 도로 영역을 동시에 검출할 수 있는 통합 주행 환경 인지 방법 및 장치에 관한 것이다.
이하에서 기술되는 내용은 본 발명의 실시 예와 관련되는 배경 정보를 제공할 목적으로 기재된 것일 뿐이고, 기술되는 내용들이 당연하게 종래기술을 구성하는 것은 아니다.
카메라 기반 자율 주행을 위해서는 고성능의 객체, 차선, 주행 도로 통합 인지 기능이 매우 중요하다. 하지만, 기존에는 이러한 주행 환경 인식 기능들은 개별 모델로 구현 및 적용되어서, 이에 따른 많은 알고리즘 처리 연산량, 복잡한 하드웨어 구성, 전력소비량 및 시스템 안정성의 측면에서 효용성에 대한 한계가 있다.
또한, 주행 도로에 대한 학습 데이터들에 대해서 모든 태스크에 대한 Ground Truth(GT) 데이터를 준비해야 하므로, 데이터 가공과 정제를 위해 많은 비용과 노력이 소요된다.
따라서, 객체, 차선 및 도로 검출을 동시에 수행하는 통합 주행 환경 인지를 위한 고성능 및 고효율의 멀티태스크 딥러닝 모델이 필요하다.
본 발명의 일 과제는, 객체, 차선 및 도로 검출을 동시에 수행하는 통합 주행 환경 인지 모델을 이용한 주행 환경 인지 방법 및 장치를 제공하는 것이다.
본 발명의 일 과제는, 고성능 및 고효율의 주행 환경 인지를 위한 멀티태스크 딥러닝 모델을 제공하는 것이다.
본 발명의 목적은 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시 예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.
본 발명의 일 실시 예에 따른 주행 환경 인지 방법은, 일련의 인코딩 레이어를 포함하는 공통 인코더를 실행하여 입력 영상으로부터 복수의 제1 공통 특징 맵을 추출하는 단계, 다중 디코딩 레이어를 포함하는 공통 디코더를 실행하여 상기 복수의 제1 공통 특징 맵에 대한 멀티스케일(multi-scale) 피처 융합에 의해 복수의 제2 공통 특징 맵을 생성하는 단계, 태스크 헤더를 실행하여, 상기 복수의 제2 공통 특징 맵 중 적어도 일부를 상기 입력 영상에 포함된 주행 환경 요소의 검출을 수행하기 위한 태스크의 태스크 입력 특징 맵으로 변환하는 단계 및 태스크 디코더를 실행하여, 상기 태스크 입력 특징 맵에 기반하여 상기 주행 환경 요소를 검출하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따른 주행 환경 인지 장치는, 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는, 일련의 인코딩 레이어를 포함하는 공통 인코더를 실행하여 입력 영상으로부터 복수의 제1 공통 특징 맵을 추출하고, 다중 디코딩 레이어를 포함하는 공통 디코더를 실행하여 상기 복수의 제1 공통 특징 맵에 대한 멀티스케일(multi-scale) 피처 융합에 의해 복수의 제2 공통 특징 맵을 생성하고, 태스크 헤더를 실행하여, 상기 복수의 제2 공통 특징 맵 중 적어도 일부를 상기 입력 영상에 포함된 주행 환경 요소의 검출을 수행하기 위한 태스크의 태스크 입력 특징 맵으로 변환하고, 태스크 디코더를 실행하여, 상기 태스크 입력 특징 맵에 기반하여 상기 주행 환경 요소를 검출하도록 구성될 수 있다.
전술한 것 외의 다른 측면, 특징, 및 이점이 이하의 도면, 청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명의 실시예에 따르면, 객체, 차선 및 도로 검출을 동시에 수행하는 통합 주행 환경 인지를 위한 고성능 및 고효율의 멀티태스크 딥러닝 모델이 제공된다.
본 발명의 실시예에 따르면, 멀티스케일 피처 융합을 통해 다양한 객체의 크기 및 모양 변화에 강건한 주행 환경 인지가 가능하다.
본 발명의 실시예에 따르면, 태스크별 이기종 학습 데이터를 이용한 멀티태스크 딥러닝 모델 학습 방법이 제공된다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 실시예에 따른 주행 환경 인지 과정을 개략적으로 도시한 예시도이다.
도 2는 실시예에 따른 주행 환경 인지 장치의 블록도이다.
도 3은 실시예에 따른 주행 환경 인지 방법의 흐름도이다.
도 4는 실시예에 따른 주행 환경 인지 모델의 개략적인 예시도이다.
도 5는 실시예에 따른 주행 환경 인지 모델의 구성도이다.
도 6은 실시예에 따른 주행 환경 인지 모델의 공통 디코더의 구성도이다.
도 7은 실시예에 따른 주행 환경 인지 모델의 객체 검출 태스크의 태스크 헤더 및 태스크 디코더의 구성도이다.
도 8은 실시예에 따른 주행 환경 인지 모델의 차선 검출 태스크의 태스크 헤더 및 태스크 디코더의 구성도이다.
도 9는 실시예에 따른 주행 환경 인지 모델의 도로 검출 태스크의 태스크 헤더 및 태스크 디코더의 구성도이다.
도 10은 실시예에 따른 주행 환경 인지 모델의 학습 과정을 설명하기 위한 도면이다.
도 11은 실시예에 따른 주행 환경 인지 모델의 차선 검출 태스크의 예측 결과를 예시적으로 보여주는 도면이다.
도 12는 실시예에 따른 주행 환경 인지 모델의 객체 검출 결과를 예시적으로 보여주는 도면이다.
도 13은 실시예에 따른 주행 환경 인지 모델의 차선 검출 결과를 예시적으로 보여주는 도면이다.
도 14는 실시예에 따른 주행 환경 인지 모델의 도로 검출 결과를 예시적으로 보여주는 도면이다.
도 15는 실시예에 따른 주행 환경 인지 모델의 통합 인지 결과를 예시적으로 보여주는 도면이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시 예들에 한정되지 않는다. 이하 실시 예에서는 본 발명을 명확하게 설명하기 위해서 설명과 직접적인 관계가 없는 부분을 생략하지만, 본 발명의 사상이 적용된 장치 또는 시스템을 구현함에 있어서, 이와 같이 생략된 구성이 불필요함을 의미하는 것은 아니다. 아울러, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조번호를 사용한다.
이하의 설명에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 되며, 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 또한, 이하의 설명에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하의 설명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 실시예에 따른 주행 환경 인지 과정을 개략적으로 도시한 예시도이다.
주행 환경 인지 장치(100)는 입력 영상을 수신한다. 예를 들어 입력 영상은 차량에 탑재된 카메라를 이용하여 직접 획득하거나 외부 장치로부터 통신 네트워크를 통해 수신할 수 있다. 여기서 입력 영상은 정지 영상 및 동영상을 포함한다.
주행 환경 인지 장치(100)는 수신된 입력 영상을 주행 환경 인지 모델을 이용하여 분석한다. 주행 환경 인지 모델은 입력 영상으로부터 주행 환경 요소를 검출하기 위한 딥러닝 모델로서, 영상 기반 객체 검출 모델이다. 주행 환경 인지 모델에 대하여는 도 4 및 도 5를 참조하여 후술한다.
일 예에서 주행 환경 요소는 객체, 차선 및 도로를 포함할 수 있다.
객체는 주위 차량, 자전거, 오토바이 및 보행자와 같은 동적 객체 및 도로 표지판, 신호등 및 가로등과 같은 정적 객체를 포함할 수 있다.
차선은 차로의 주행 방향을 따라 일정한 간격으로 그어 놓은 선을 의미하고, 도로는 차량의 주행로의 영역을 의미한다.
주행 환경 인지 장치(100)는 주행 환경 인지 모델을 이용하여 통합적으로 주행 환경 요소를 검출하는 멀티태스크(Multi-Task)를 동시에 수행할 수 있다. 예를 들어 주행 환경 인지 장치(100)는 주행 환경 인지 모델을 실행하여 입력 영상으로부터 객체를 검출하는 태스크, 차선을 검출하는 태스크 및 도로를 검출하는 태스크를 동시에 수행할 수 있다.
일 예에서 주행 환경 인지 장치(100)는 차량에 탑재될 수 있다. 다른 예에서 주행 환경 인지 장치(100)는 차량과 통신가능한 다른 전자 장치를 포함할 수 있다. 예를 들어 주행 환경 인지 장치(100)는 차량과 네트워크를 통해 연결된 서버 또는 스마트폰과 같은 단말 장치를 포함할 수 있다.
도 2는 실시예에 따른 주행 환경 인지 장치의 블록도이다.
실시예에 따른 주행 환경 인지 장치(100)는 프로세서(110) 및 메모리(120)를 포함할 수 있다. 도 2에 도시된 구성 요소는 예시적인 것이고, 주행 환경 인지 장치(100)는 추가적인 구성 요소를 더 포함할 수 있다.
주행 환경 인지 장치(100)는 프로세서(150)를 포함할 수 있다.
프로세서(110)는 일종의 중앙처리장치로서, 메모리(120)에 저장된 하나 이상의 명령어를 실행하여 주행 환경 인지 장치(100)의 동작을 제어할 수 있다. 프로세서(110)는 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다.
프로세서(110)는 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로서, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 이에 한정되는 것은 아니다. 프로세서(110)는 하나 이상의 프로세서를 포함할 수 있다.
추가적으로 주행 환경 인지 장치(100)는 메모리(120)를 포함할 수 있다.
메모리(120)는 주행 환경 요소 검출을 위한 주행 환경 인지 모델을 저장할 수 있다. 메모리(120)는 주행 환경 인지 장치(100)가 주행 환경 모델을 실행하는 과정에 대한 명령 등을 저장할 수 있다.
프로세서(110)는 메모리(120)에 저장된 프로그램, 명령어들 및 주행 환경 인지 모델에 기반하여 실시예에 따른 주행 환경 인지 과정을 실행할 수 있다.
메모리(120)는 알고리즘에 의해 연산되어 주행 환경 인지를 위한 연산 과정에서 발생하는 중간 데이터 및 연산 결과 등을 더 저장할 수 있다.
메모리(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)를 포함할 수 있으나, 이에 한정되는 것은 아니다.
도 3은 실시예에 따른 주행 환경 인지 방법의 흐름도이다.
실시예에 따른 주행 환경 인지 방법은, 일련의 인코딩 레이어를 포함하는 공통 인코더를 실행하여 입력 영상으로부터 복수의 제1 공통 특징 맵을 추출하는 단계(S10), 다중 디코딩 레이어를 포함하는 공통 디코더를 실행하여 복수의 제1 공통 특징 맵에 대한 멀티스케일(multi-scale) 피처 융합에 의해 복수의 제2 공통 특징 맵을 생성하는 단계(S20), 태스크 헤더를 실행하여, 복수의 제2 공통 특징 맵 중 적어도 일부를 상기 입력 영상에 포함된 주행 환경 요소의 검출을 수행하기 위한 태스크의 태스크 입력 특징 맵으로 변환하는 단계(S30) 및 태스크 디코더를 실행하여, 태스크 입력 특징 맵에 기반하여 주행 환경 요소를 검출하는 단계(S40)을 포함할 수 있다.
실시예에 따른 주행 환경 인지 장치(100)는 주행 환경 인지 방법을 수행할 수 있다.
단계(S10)에서, 프로세서(110)는 일련의 인코딩 레이어를 포함하는 공통 인코더(1)를 실행하여 입력 영상으로부터 복수의 제1 공통 특징 맵을 추출할 수 있다.
일 예에서, 일련의 인코딩 레이어는 일련의 콘볼루션 레이어에 대응할 수 있다. 일 예에서, 단계(S10)에서 추출되는 복수의 제1 공통 특징 맵은, 공통 인코더(1)의 일련의 인코딩 레이어의 각 레이어에서 출력되는 특징 맵을 포함할 수 있다.
단계(S20)에서, 프로세서(110)는 다중 디코딩 레이어를 포함하는 공통 디코더(2)를 실행하여 단계(S10)에서 추출된 복수의 제1 공통 특징 맵에 대한 멀티스케일(multi-scale) 피처 융합에 의해 복수의 제2 공통 특징 맵을 생성할 수 있다.
다중 디코딩 레이어는, 복수의 제1 공통 특징 맵의 일부를 업샘플링(upsampling) 및 합산(add)하여 출력하는 톱-다운 레이어(Top-Down Layer), 복수의 제1 공통 특징 맵의 일부를 제외한 나머지 및 톱-다운 레이어의 출력에 대하여 콘볼루션 연산을 수행하는 중간 레이어 및 중간 레이어의 출력을 콘볼루션 및 합산하여 복수의 제2 공통 특징 맵을 출력하는 바텀-업 경로 병합 레이어(Bottom-Up Path Aggregation Layer)를 포함할 수 있다.
한편, 복수의 제2 공통 특징 맵은 바텀-업 경로 병합 레이어로부터 출력되는 일련의 멀티스케일(multi-scale) 특징 맵을 포함할 수 있다.
단계(S30)에서, 프로세서(110)는 태스크 헤더(3)를 실행하여, 단계(S20)에서 생성된 복수의 제2 공통 특징 맵 중 적어도 일부를 상기 입력 영상에 포함된 주행 환경 요소의 검출을 수행하기 위한 태스크의 태스크 입력 특징 맵으로 변환할 수 있다.
단계(S30)은 단계(S20)에서 생성된 복수의 제2 공통 특징 맵의 적어도 일부에 대하여 가중치를 서로 공유하는 콘볼루션 연산을 기설정된 횟수만큼 수행하여 태스크 입력 특징 맵을 생성하는 단계를 포함할 수 있다.
단계(S40)에서, 프로세서(110)는 태스크 디코더(4)를 실행하여, 단계(S30)에서 변환된 태스크 입력 특징 맵에 기반하여 주행 환경 요소를 검출할 수 있다.
일 예에서 주행 환경 요소는 객체, 차선 및 도로를 포함하고, 태스크 헤더(3) 및 태스크 디코더(4)는 주행 환경 요소의 유형 별로 각각 구현될 수 있다. 예를 들어 객체 검출을 위한 태스크 헤더(3) 및 태스크 디코더(4), 차선 검출을 위한 태스크 헤더(3) 및 태스크 디코더(4), 및 도로 검출을 위한 태스크 헤더(3) 및 태스크 디코더(4)가 각각 구현될 수 있다.
한편, 단계(S30) 및 단계(S40)은 주행 환경 요소의 유형 별로 수행가능하다. 예를 들어, 프로세서(110)는 객체 검출을 위한 태스크 헤더(3) 및 태스크 디코더(4)를 실행하는 객체 검출 태스크와 차선 검출을 위한 태스크 헤더(3) 및 태스크 디코더(4)를 실행하는 차선 검출 태스크와 도로 검출을 위한 태스크 헤더(3) 및 태스크 디코더(4)를 실행하는 도로 검출 태스크를 동시에 수행가능하다.
도 4는 실시예에 따른 주행 환경 인지 모델의 개략적인 예시도이다.
실시예에 따른 주행 환경 인지 모델은 공통 인코더(1), 공통 디코더(2), 하나 이상의 태스크 헤더(3) 및 하나 이상의 태스크 디코더(4)를 포함할 수 있다.
실시예에 따른 주행 환경 인지 모델은 통합 주행 환경 인지를 위한 Fully-Convolutional Neural Network 기반 멀티태스크 딥러닝 모델이다.
여기서 태스크는 입력 영상으로부터 주행 환경 요소를 검출하는 작업으로서, 검출하고자 하는 주행 환경 요소의 유형(예를 들어 객체, 차선 및 도로)별로 정의된다. 즉, 실시예에 따른 주행 환경 인지 방법은 주행 환경 인지 모델을 실행하여 입력 영상에 포함된 객체를 검출하는 객체 검출 태스크, 차선을 검출하는 차선 검출 태스크 및 도로 영역을 검출하는 도로 검출 태스크를 동시에 수행할 수 있다.
주행 환경 인지 모델의 공통 인코더(1) 및 공통 디코더(2)는 멀티태스크의 각 태스크 간에 공유된다. 즉, 실시예에 따른 주행 환경 인지 모델의 각 태스크는 공통 인코더(1) 및 공통 디코더(2)를 공유하여 입력 영상의 특징을 인코딩 및 디코딩 하기 위한 연산 중복도를 제거 할 수 있다.
주행 환경 인지 모델에서 태스크 헤더(3) 및 태스크 디코더(4)는 각 태스크 마다 구현된다. 즉, 태스크 헤더(3) 및 태스크 디코더(4)는 각 태스크가 검출하려는 주행 환경 요소에 적합한 레이어 및 연산으로 구현된다.
태스크 헤더(3)는 공통 인코더(1) 및 공통 디코더(2)를 통해 출력된 특징 맵의 전부 또는 일부를 각 태스크 디코더(4)에 적합한 특징 맵으로 변환한다. 태스크 디코더(4)는 태스크 헤더(3)에서 변환된 특징 맵을 입력 받아서 각 태스크에서 검출하고자 하는 주행 환경 요소에 대한 검출 결과를 출력한다.
실시예에 따른 주행 환경 인지 모델은 태스크 헤더(3) 및 태스크 디코더(4)를 추가함으로써 전술한 객체 검출, 차선 검출 및 도로 검출 태스크 이외에도 거리 추정, 주행 도로 분류 및 교통 신호등 검출 등의 다른 태스크를 쉽게 플러그-인/아웃(Plug-in/Out)가능한 구조로 설계되어 있다.
이하에서 도 5를 참조하여 주행 환경 인지 모델의 구조를 보다 상세히 살펴본다.
도 5는 실시예에 따른 주행 환경 인지 모델의 구성도이다.
공통 인코더(1)는 일련의 인코딩 레이어(Conv1, Conv2, Conv3, Conv4, Conv5, Conv6 및 Conv7)를 포함할 수 있다. 공통 인코더(1)는 일련의 인코딩 레이어를 통해 입력 영상의 특징을 인코딩한 복수의 제1 공통 특징 맵을 출력한다. 복수의 제1 공통 특징 맵은 일련의 인코딩 레이어의 각 레이어에서 출력되는 특징 맵에 대응한다.
공통 인코더(1)는 Conv1 내지 Conv5 인코딩 레이어를 포함할 수 있다. Conv1 내지 Conv5 인코딩 레이어는 VGGNet, ResNet, XceptionNet, ResnetXT, SuffleNet 또는 MobileNet 등의 구조를 적용할 수 있다.
공통 인코더(1)는 추가적으로 Conv6 및 Conv7 인코딩 레이어를 포함할 수 있다. 이는 입력 영상에 대한 큰 객체/영역 특징을 잘 표현 할 수 있고, 공통 디코더(2)에서 멀티스케일 피처(Multi-Scale Feature) 융합을 위해 필요한 구조이다.
공통 디코더(2)는 다중 디코딩 레이어를 포함할 수 있다. 다중 디코딩 레이어는 객체 검출을 위한 디코더 구조인 피처 피라미드 네트워크(Feature Pyramid Network; FPN) 구조 및 바텀-업 경로 병합 레이어(Bottom-up Path Aggregation Layer; BPA)를 포함할 수 있다.
공통 디코더(2)는 다중 디코딩 레이어를 통해 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)을 출력한다. 복수의 제2 공통 특징 맵은 BPA 레이어의 각 레이어에서 출력되는 특징 맵에 대응한다.
공통 디코더(2)에서 출력되는 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)은 다양한 객체의 크기 및 모양 변화에 강건한 특징 추출을 할 수 있는 특성을 가지고 있다. 이는 공통 디코더(2)가 멀티스케일 피처 융합 방식으로 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)을 생성하며, 이와 같은 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)에 기반하여 후술할 태스크 헤더(3) 및 태스크 디코더(4)가 작동하기 때문에 가능하다. 태스크 헤더(3)는 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)의 적어도 일부에 기반하여 태스크 입력 특징 맵을 구성하여 태스크 디코더(4)에 제공한다.
공통 디코더(2)에서 출력된 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)은 주행 환경 요소의 유형 별로 구현된 태스크 헤더(3) 및 태스크 디코더(4)로 입력된다.
예를 들어, 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)의 전부 또는 일부는, 객체 검출 태스크의 태스크 헤더(3)인 객체 검출 헤더(Detection Header), 차선 검출 태스크의 태스크 헤더(3)인 차선 검출 헤더(Lane Detection Header) 및 도로 영역 검출(Road Segmentation) 태스크의 태스크 헤더(3)인 도로 영역 검출(Road Detection Header)로 입력된다. 태스크 헤더(3) 및 태스크 디코더(4)에 대하여는 도 7 내지 도 9를 참조하여 후술한다.
이하에서 도 6을 참조하여 공통 디코더(2)를 구체적으로 살펴본다.
도 6은 실시예에 따른 주행 환경 인지 모델의 공통 디코더의 구성도이다.
공통 디코더(2)는 멀티 스케일 피처 융합을 통해 복수의 제1 공통 특징 맵을 추출하는 다중 디코딩 레이어를 포함한다.
다중 디코딩 레이어는 공통 인코더(1)에서 출력된 복수의 제1 공통 특징 맵(C3, C4, C5, C6 및 C7)의 일부(C3, C4, C5)를 업샘플링(upsampling) 및 합산(add)하여 출력하는 톱-다운 레이어(Top-Down Layer)(2-1), 공통 인코더(1)에서 복수의 제1 공통 특징 맵(C3, C4, C5, C6 및 C7)의 일부를 제외한 나머지(C6, C7) 및 톱-다운 레이어(2-1)의 출력에 대하여 콘볼루션 연산을 수행하는 중간 레이어(2-2) 및 중간 레이어(2-2)의 출력을 콘볼루션 및 합산하여 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)을 출력하는 바텀-업 경로 병합 레이어(Bottom-Up Path Aggregation Layer)(2-3)를 포함할 수 있다.
톱-다운 레이어(2-1)는 공통 인코더(1)에서 출력된 복수의 제1 공통 특징 맵의 일부를 업샘플링(upsampling) 및 합산(add)하여 출력한다.
일 예에서, 톱-다운 레이어는 공통 인코더(1)에서 생성된 복수의 제1 공통 특징 맵(C3, C4, C5, C6 및 C7) 중에서 중간 해상도에 해당하는 세 개의 특징 맵(C3, C4 및 C5)를 대상으로 수행된다.
톱-다운 레이어(2-1)의 1단계는, 공통 인코더(1)의 다섯번째 인코딩 레이어(Conv5)에서 출력된 제1 공통 특징 맵(C5)을 1x1x256 콘볼루션하여 생성된 특징 맵(C5')을 출력한다. 톱-다운 레이어(2-1)의 2단계는, 1단계의 출력(C5')을 2배로 업샘플링한 결과와 공통 인코더(1)의 네번째 인코딩 레이어(Conv4)에서 출력된 제1 공통 특징 맵(C4)을 1x1x256 콘볼루션하여 생성된 특징 맵(C4')을 합산(C4'+ C5')하여 출력한다.
동일한 방식으로 톱-다운 레이어(2-1)의 3단계는, 2단계의 출력(C4'+ C5')을 2배로 업샘플링한 결과와 공통 인코더(1)의 세번째 인코딩 레이어(Conv3)에서 출력된 제1 공통 특징 맵(C3)을 1x1x256 콘볼루션하여 생성된 특징맵(C3')을 합산(C3'+ C4'+ C5')하여 출력한다. 이를 통해 톱-다운 방향으로 저해상도 및 고해상도의 피처가 누적적으로 융합될 수 있다.
중간 레이어(2-2)는 공통 인코더(1)에서 복수의 제1 공통 특징 맵(C3, C4, C5, C6 및 C7)의 일부를 제외한 나머지(C6 및 C7) 및 톱-다운 레이어(2-1)의 출력에 대하여 콘볼루션 연산을 수행한다.
중간 레이어(2-2)는 공통 인코더(1)에서 출력된 복수의 제1 공통 특징 맵(C3, C4, C5, C6 및 C7) 중에서 톱-다운 레이어(2-1)에서 사용되지 않은 두 개의 특징 맵(C6 및 C7)에 대하여 각각 3x3x256 콘볼루션한다. 즉, 중간 레이어(2-2)는 공통 인코더(1)의 마지막 인코딩 레이어(C7)에서 출력된 제1 공통 특징 맵(C7)을 3x3x256 콘볼루션하여 중간 특징 맵(M7)을 출력한다. 마찬가지로,중간 레이어(2-2)는 공통 인코더(1)의 여섯번째 인코딩 레이어(C6)에서 출력된 제1 공통 특징 맵(C6)을 3x3x256 콘볼루션하여 중간 특징 맵(M6)을 출력한다.
중간 레이어(2-2)는 톱-다운 레이어(2-1)의 출력에 대하여 각각 3x3x256 콘볼루션을 수행하여 중간 특징 맵(M5, M4 및 P3)을 출력한다.
바텀-업 경로 병합 레이어(2-3)는 중간 레이어(2-2)의 출력을 콘볼루션 및 합산하여 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)을 출력한다. 바텀-업 경로 병합 레이어(2-3)는 피라미드의 최하위층에서 최상위층으로 진행하면서 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)을 생성한다.
바텀-업 경로 병합 레이어(2-3)는 중간 레이어(2-2)에서 출력된 P3 중간 특징 맵을 3x3x256, stride=2 콘볼루션하여 저해상도의 특징 맵(P3')을 생성하고, 중간 레이어(2-2)에서 출력된 중간 특징 맵(M4)과 합산(P3'+M4)하여 제2 공통 특징 맵(P4)을 생성한다. 생성된 제2 공통 특징 맵(P4)에 대하여 마찬가지 방식으로 나머지 제2 공통 특징 맵(P4, P6 및 P7)을 생성한다.
복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)은 바텀-업 경로 병합 레이어(2-3)로부터 출력되는 일련의 멀티스케일(multi-scale) 특징 맵을 포함한다. 즉, 바텀-업 경로 병합 레이어(2-3)에 의해서 바텀-업 방향으로 저해상도 및 고해상도의 피처가 누적적으로 융합되어 일련의 멀티스케일 특징 맵이 생성될 수 있으며, 이로써 복잡한 도로 영상 및 객체의 크기와 모양 변화에 강건한 특징을 표현할 수 있게 된다.
이하에서는 주행 환경 요소의 유형 별로 각각 구현되는 태스크 헤더(3) 및 태스크 디코더(4)에 대하여 살펴본다.
도 7은 실시예에 따른 주행 환경 인지 모델의 객체 검출 태스크의 태스크 헤더 및 태스크 디코더의 구성도이다.
태스크 헤더(3)는 일종의 도메인 적응 레이어(Domain Adaptation Layer)로서, 공통 디코더(2)에서 생성된 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)을 각각 객체 검출을 위한 태스크 입력 특징 맵으로 변환한다.
태스크 디코더(4)는 태스크 헤더(3)에서 생성된 태스크 입력 특징 맵을 이용하여 객체 검출을 위한 객체 영역(box) 및 객체 분류(confidence) 정보를 예측한다.
태스크 디코더(4)는 이와 같은 예측 정보를 이용하여 NMS(Non-Maximum Suppression) 및 Soft NMS 기반의 후처리(post-processing)를 통해, 최종 객체 영역(Object Region)을 결정할 수 있다.
일 예에서, 객체 검출 태스크를 위한 태스크 디코더(4)는 앵커가 없는 Multi-Scale Fully-Convolutional Neural Network(MS-FCN)를 사용할 수 있으며, 중복적이고 부가적인 연산을 제거하여 고성능 고효율을 확보할 수 있다.
객체 검출을 위한 태스크 헤더(3)는 도메인 적응 레이어(Domain Adaptation Layer)를 통해 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)을 각각 객체 검출 태스크의 태스크 디코더(4)에 입력될 태스크 입력 특징 맵으로 변환한다. 여기서 객체 검출 태스크를 위한 태스크 입력 특징 맵은 객체 영역 특징 맵과 객체 분류 특징 맵을 포함한다.
객체 검출 태스크 헤더(3)는 객체 영역 헤더(box_feature)와 객체 분류 헤더(class_feature)로 구성된다. 객체 영역 헤더(box_feature)와 객체 분류 헤더(class_feature)는 공통 디코더(2)에서 출력된 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)을 동일한 파라미터를 이용(Sharing Layer)하여 객체 영역 특징을 표현하는 태스크 입력 특징 맵(객체 영역 특징 맵)과 객체 분류 특징을 표현하는 태스크 입력 특징 맵(객체 분류 특징 맵)을 생성한다.
일 예에서, 객체 영역 헤더와 객체 분류 헤더는 각각 공통 디코더(2)의 바텀-업 경로 병합 레이어(2-3)에서 출력된 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7)에 대해서 3x3x256 콘볼루션을 4번 수행하여 객체 영역 특징 맵과 객체 분류 특징 맵을 각각 생성할 수 있다.
객체 영역 특징 맵은 IOU(Intersection Over Inion)와 객체 영역 예측(pred_iou)의 입력으로 사용된다. 태스크 디코더(4)는 객체 영역 특징 정보에 대하여 3x3x4(x1, y1, x2, y2: 현재 grid 위치로부터 객체가 떨어져 있는 위치) 콘볼루션을 수행하여 객체 영역 예측 정보(pred_iou)를 생성한다.
예측된 IOU 정보(pred_iou)는 예측된 객체의 영역(box)이 실제 정답 객체 영역에 얼마나 일치 하는지를 예측하여, 학습 시에 객체 검출 정확도를 높일 수 있으며, 예측된 IOU 정보(pred_iou)를 객체 검출 후처리인 NMS에 적용하여 객체 영역 검출 성능을 향상 시킬 수 있다.
객체 분류 특징 맵은 객체 분류 확률 예측(pred_confidence)의 입력으로 사용된다. 태스크 디코더(4)는 객체 분류 특징 맵에 대하여 3x3xN(N: 배경(1채널)+분류 객체 개수(C채널)) 콘볼루션을 통해 객체 분류 확률 예측 정보(pred_confidence)를 생성한다.
태스크 디코더(4)는 최종 객체 분류 확률(confidence)을 결정하기 위하여, 수학식 1을 이용하여 객체 분류 확률 예측 정보(pred_confidence)와 예측 IOU 정보(pred_iou)를 융합한다.
Figure 112020124778599-pat00001
여기서, f(x)는 예측 IOU 가중치 요소이고, 상황에 따라 다양한 함수를 적용 할 수 있다. 예를 들어, f(x)=(x)0.8를 적용할 수 있다.
한편, 태스크 디코더(4)는 예측된 객체 영역 정보 및 객체 분류 정보를 입력으로 하여, 후처리(NMS 또는 Soft-NMS)를 수행하여 최종 객체 영역(Object Region)을 선택할 수 있다.
도 8은 실시예에 따른 주행 환경 인지 모델의 차선 검출 태스크의 태스크 헤더 및 태스크 디코더의 구성도이다.
태스크 헤더(3)는 일종의 도메인 적응 레이어(Domain Adaptation Layer)로서, 공통 디코더(2)에서 생성된 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7) 중에서 P7 및 P3 특징 맵을 각각 차선 검출을 위한 태스크 입력 특징 맵으로 변환한다.
태스크 디코더(4)는 태스크 헤더(3)에서 생성된 태스크 입력 특징 맵을 이용하여 차선 분류 맵(confidence_map), 차선 보정 맵(correction_map) 및 차선 존재 맵(lane existence)을 생성한다.
차선 분류 맵(confidence_map)은 영상 픽셀 위치에 대한 차선 클래스별 확률 맵을 의미한다. 차선 보정 맵(correction_map)은 예측되는 차선의 위치를 보다 정확하게 추정하기 위한 미세 위치 보정 값이 저장된 맵을 의미한다. 차선 존재 맵(lane existence)은 영상에서 각 클래스별로 차선이 존재하는 지 여부를 예측하는 맵을 의미한다.
차선 검출 태스크 헤더(3)는 차선 분류 헤더(class_feature) 및 차선 보정(correction) 헤더(correction_feature)를 포함한다.
차선 분류 헤더(class_feature)는 공통 디코더(2)에서 출력된 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 7) 중 P3 특징 맵을 차선 분류를 위한 태스크 입력 특징 맵으로 변환한다.
또한, 차선 분류 헤더(class_feature)는 공통 디코더(2)에서 출력된 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 7) 중 P7 특징 맵을 차선 존재 여부 판단을 위한 태스크 입력 특징 맵으로 변환한다.
차선 보정 헤더(correction_feature)는 공통 디코더(2)에서 출력된 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 7) 중 P3 특징 맵을 차선 보정을 위한 태스크 입력 특징 맵으로 변환한다.
여기서, 차선 분류 헤더는 동일한 파라미터를 이용하여 P3 특징 맵 및 P7 특징 맵을 각각 차선 분류 및 차선 존재 여부 결정을 위한 태스크 입력 특징 맵으로 변환할 수 있다.
차선 검출 태스크의 태스크 디코더(4)는 태스크 헤더(3)의 출력을 입력으로 하여 차선 분류 맵(confidence_map), 차선 보정 맵(correction_map), 차선 존재 확률(lane existence)을 출력한다.
태스크 디코더(4)는 차선 분류를 위한 태스크 입력 특징 맵을 3x3xN 콘볼루션하여 N(1+C) channel의 차선 분류 맵을 생성한 후에, Sigmoid 함수를 적용하여 차선 분류 맵(confidence_map)을 생성한다.
여기서, N은 분류한 차선의 개수이고, channel 0은 배경일 확률, channel 1 내지 Channel C는 1부터 C까지의 차선 클래스를 의미한다. 예를 들어, N이 7인 경우, 최대 6개의 차선 검출 할 수 있고, 영상의 중심으로부터 왼쪽에 위치한 차선 3개와 오른쪽에 위치한 차선 3개로 하여 왼쪽부터 차례대로 class id를 1, 2, 3, 4, 5, 6 부여할 수 있다.
태스크 디코더(4)는 차선 보정을 위한 태스크 입력 특징 맵을 3x3xC 콘볼루션하여 차선 보정 맵(correction_map)을 생성한다. 차선 보정 맵(correction_map)은 C개의 channel 맵으로 구성되어 있다. 태스크 디코더(4)는 차선 분류 맵(confidence_map)에서 y축을 기준으로 확률이 최대인 x축 좌표(pixel 위치로서 예측된 차선 위치)를 선택하고, 선택된 x축 좌표와 보정 예측 값을 더한 값을 각 channel별 차선의 위치로 결정한다. 보정 예측 값을 함께 사용함으로써 차선 위치의 정확도가 제고된다.
태스크 디코더(4)는 차선 존재 여부 결정을 위한 태스크 입력 특징 맵에 대하여, average pooling을 이용하여 1x256을 256 channel개의 전역적인 feature 평균값을 획득하고, 이를 3x3xC 콘볼루션 및 sigmoid 연산(함수)를 적용하여 차선 존재 확률(lane existence)을 획득한다.
여기서 차선 존재 확률(lane existence)는 입력 영상에 C개의 차선의 존재 여부에 대한 확률을 의미한다. 즉, 차선 존재 확률(lane existence)은 입력 영상으로부터 예측된 C개의 차선에 대해서, 입력 영상에서 각 차선이 존재하는 지의 여부를 예측 하는 정보이다. 말하자면, 차선 존재 확률(lane existence)는 입력 영상에서 각 차선이 존재할 확률이 얼마나 되는지 예측한 정보이다.
예시적으로, 예측할 수 있는 차선 개수가 6(C=6)개인 경우, class id는 1,2,3,4,5,6이고, 입력 영상에 존재하는 것으로 예측된 차선이 2,3,4,5이라고 가정하면, 예측되는 차선 존재 확률 정보는 예를 들어 0.2, 0.8, 0.9, 1.0, 0.85, 0.1로 계산될 수 있다. 이와 같은 예에서, 입력 영상에 존재하는 것으로 예측된 차선인 2, 3, 4, 5에 대한 차선 존재 확률은 0.8, 0.9, 1.0, 0.85이 되고, 존재하는 것으로 예측되지 않은 차선인 1, 6의 존재 확률보다 큰 값을 가진다.
태스크 디코더(4)는 입력 영상에서 차선의 위치를 결정할 수 있다.
이를 위하여 태스크 디코더(4)는 차선 존재 확률(lane existence)이 일정 값(예를 들어 0.5) 이상인 차선(차선 class/ID)을 선택하고, 선택된 차선에 해당하는 차선 분류 맵(confidence_map)의 channel에서 y축 기준으로 가장 확률이 큰 x축 위치를 찾고, 각 차선 class별로 차선에 해당하는 point 위치(x, y)를 선택한다. 태스크 디코더(4)는 선택된 차선 Class/ID와 point 위치(x, y) 정보를 이용하여 차선 보정 맵(correction_map) 에서 각 차선 위치의 위치 보정 값 △x 선택하고, 선택된 차선 Class/ID 별로 해당 차선 point 위치들을 (x+△x, y)로 업데이트한다. 이로써 입력 영상에서 차선의 위치를 보다 정확하게 예측할 수 있다.
도 9는 실시예에 따른 주행 환경 인지 모델의 도로 검출 태스크의 태스크 헤더 및 태스크 디코더의 구성도이다.
태스크 헤더(3)는 도메인 적응 레이어(Domain Adaptation Layer)로서, 공통 디코더(2)에서 생성된 복수의 제2 공통 특징 맵(P3, P4, P5, P6 및 P7) 중에서 P3 특징 맵을 도로 영역 검출을 위한 태스크 입력 특징 맵으로 변환한다.
태스크 디코더(4)는 태스크 헤더(3)에서 생성된 태스크 입력 특징 맵을 이용하여 도로 검출 맵(road_confidence)을 생성한다. 여기서, 도로 검출 맵(road_confidence)은 입력 영상의 픽셀별로 해당 픽셀이 도로 영역일 확률 값을 저장한다.
주행 도로 영역 검출을 위한 태스크 헤더(3)는 분류 헤더(class_feature)를 포함한다. 주행 도로 영역 검출을 위한 태스크 헤더(3)의 분류 헤더(class_feature)는 3x3x256 콘볼루션을 4회 수행하여 도로 검출을 위한 태스크 입력 특징 맵을 생성한다.
도로 검출 태스크 디코더(4)는 태스크 헤더(3)에서 생성된 도로 검출을 위한 태스크 입력 특징 맵에 대하여 3x3x2 콘볼루션과 sigmoid 연산을 적용하여 2 channel(0 channel:배경, 1 channel:도로 영역)의 도로 검출 맵(road_confidence)을 생성한다.
일 예에서 태스크 디코더(4)는 1 channel에서 일정 이상 확률 값(예를 들어 0.5)으로 예측되는 위치를 도로로 검출하고, 이하로 예측되는 값은 배경으로 결정하여 최종 도로 영역을 검출할 수 있다.
도 10은 실시예에 따른 주행 환경 인지 모델의 학습 과정을 설명하기 위한 도면이다.
실시예에 다른 주행 환경 인지 모델은 이기종 데이터를 이용한 Sequential Multi-Task 학습 방법을 사용하여 훈련할 수 있다.
기존의 멀티태스크 모델 학습 방법은 하나의 입력 영상에 대하여 각 태스크별 Ground-Truth(GT) 데이터를 모두 갖추고 있어야 한다. 하지만, 실제적으로 하나의 입력 영상으로부터 각 태스크별 Ground-Truth를 구성하기에는 비용이 많이 소요되고, 영상에 따라 GT 데이터의 획득이 불가능 할 수 있다. 이는 학습 데이터 불균형(unbalance) 문제를 야기하고, 태스크 간 학습 성능이 저하될 수 있는 문제점이 있다.
본 발명에서는 실시예에 따른 주행 환경 인지 모델의 학습 방법으로 각 태스크별로 각기 다른 학습 데이터라도, 멀티태스크 딥러닝 모델을 학습 할 수 있는 이기종 데이터 기반 Sequential Multi-Task 학습 방법을 제안한다.
도 10에 도시된 대로, 각 태스크별 학습 데이터가 이원화가 되어 있을 경우, Task 1의 입력 데이터를 이용하여 Task 1에 해당하는 학습 파라미터를 학습한 후, Task 2의 입력 데이터를 이용하여 Task 2에 해당하는 학습 파라미터를 학습한다. 즉, “Task 1 모델 학습->Task 2 모델 학습->Task 3 모델 학습->...->Task N 모델 학습”을 반복하여, 전체 멀티태스크 모델을 학습 할 수 있다.
예를 들어, 실시예에 따른 주행 환경 인지 모델은“객체 검출 학습 데이터 이용한 객체 검출 Task 1 Layer 학습 ->차선 검출 학습 데이터를 이용한 차선 검출 Task 2 Layer 학습->주행 도로 영역 학습 데이터를 이용한 주행 도로 Task 3 Layer 학습”의 순서를 반복하여, 모델이 학습된다.
나아가, 실시예에 따른 주행 환경 인지 모델은 태스크의 난이도와 태스크별 학습 데이터 비율을 고려하기 위하여, 랜덤 시퀀셜 멀티태스크 (Random Sequential Multi-Task) 학습 방법을 제안한다. 이로써, 태스크 간의 난이도 및 학습 데이터 비율에 차이가 있어도, 각 태스크의 학습이 고르게 잘 이루어질 수 있다.
제안하는 랜덤 시퀀셜 멀티태스크 학습은 다음과 같이 수행된다.
1) 수학식 2를 이용하여 태스크별로 반복 횟수를 구한다.
Figure 112020124778599-pat00002
여기서 i는 태스크의 인덱스(index)이고, N은 전체 Task 학습 데이터 수, ni는 각 태스크의 학습 데이터 수, wi는 각 태스크의 난이도별 사용자 설정 가중치이며, Soffset는 사용자 설정 기반 태스크 반복 횟수이다.
예를 들어, 객체 검출 학습 데이터 10개, 차선 학습 데이터 10개, 주행 도로 데이터 10개, 이에 대한 가중치를 3, 2, 1로 설정하고, 태스크 반복 횟수(Soffset)를 15로 설정한 경우, 각 태스크의 반복 횟수(si)는 각각 15, 10, 5로 계산된다.
2) 계산된 각 태스크의 반복 횟수에 따라 태스크 호출 룩-업 테이블(look-up table)을 만든다.
예를 들어 3개의 태스크에 대해 반복 회수가 3, 2, 1로 계산되었다면, 수학식 3과 같이 태스크 호출 룩-업 테이블(look-up table)이 구성된다.
Figure 112020124778599-pat00003
3) 태스크 룩-업 테이블을 참조하여 학습을 수행한다.
태스크 반복 학습의 매 iteration 시에 수학식 4와 같이 랜덤 함수(random function)를 이용하여 태스크 호출 룩-업 테이블의 태스크 인덱스를 선택하고, 선택된 태스크에 대한 학습을 수행한다.
Figure 112020124778599-pat00004
Figure 112020124778599-pat00005
여기서, k는 학습을 진행하는 동안의 iteration index이며, Num(C)는 태스크 호출 룩-업 테이블 개수, C[x]는 태스크 호출 룩-업 테이블에서 x번째 태스크를 의미한다. 예를 들어, 수학식 3에서 구성된 태스크 호출 룩-업 테이블의 개수는 6개이고, 학습 시 k번째 iteration에서 Random 함수를 통해 선택된 값이 3이라면, 학습을 수행할 태스크는 task2가 된다.
이와 같은 학습 방법을 통해 태스크별 이기종 데이터를 이용하여 공통 인코더(1) 및 공통 디코더(2)가 동시 학습되는 효과가 있다. 또한, 랜덤 시퀀셜 멀티태스크 학습 방법을 통해 학습 시 태스크 간 균형적 학습이 가능하다. 나아가, 학습 데이터의 Annotation 및 정제 비용에 대한 효용성 확보가 가능하다.
도 11은 실시예에 따른 주행 환경 인지 모델의 차선 검출 태스크의 예측 결과를 예시적으로 보여주는 도면이다.
도 11의 좌측도는 실시예에 따른 주행 환경 인지 모델이 차선 검출 태스크를 통해 네 개의 차선을 검출하고 검출된 차선에 각각 차선 Class/ID를 부여하고 서로 다른 색상으로 구분하여 출력한 결과를 예시적으로 보여준다.
도 11의 우측도는 실시예에 따른 주행 환경 인지 모델이 차선 검출 태스크를 통해 차선 보정 맵(correction_map)을 활용하여 차선의 위치를 정확히 예측한 결과를 보여준다.
도 8을 참조하여 전술한 과정에 따라 차선 검출을 위한 태스크 디코더(4)는 차선 존재 확률(lane existence)이 일정 값(예를 들어 0.5) 이상인 차선(차선 class/ID)을 선택하고, 선택된 차선에 해당하는 차선 분류 맵(confidence_map)의 channel에서 y축 기준으로 가장 확률이 큰 x축 위치를 찾고, 각 차선 class별로 차선에 해당하는 point 위치(x, y)를 선택한다.
차선 검출을 위한 태스크 디코더(4)는 선택된 차선 Class/ID와 point 위치(x, y) 정보를 이용하여 차선 보정 맵(correction_map) 에서 각 차선 위치의 위치 보정 값 △x 선택하고, 선택된 차선 Class/ID 별로 해당 차선 point 위치들을 (x+△x, y)로 업데이트한다.
도 12는 실시예에 따른 주행 환경 인지 모델의 객체 검출 결과를 예시적으로 보여주는 도면이다.
실시예에 따른 주행 환경 인지 모델은 객체 검출 태스크를 통해 다양한 입력 영상에서 다양한 모양/크기의 객체를 정확하게 검출함을 알 수 있다.
도 13은 실시예에 따른 주행 환경 인지 모델의 차선 검출 결과를 예시적으로 보여주는 도면이다.
실시예에 따른 주행 환경 인지 모델은 차선 검출 태스크를 통해 다양한 도로 영상에서 차선을 정확히 검출할 수 있다. 특히, 객체에 의해 차선이 가려진 영역에서도 차선을 정확하게 예측하고 있음을 알 수 있다.
도 14는 실시예에 따른 주행 환경 인지 모델의 도로 검출 결과를 예시적으로 보여주는 도면이다.
실시예에 따른 주행 환경 인지 모델은 도로 영역 검출 태스크를 통해 다양한 입력 영상에서 도로 영역을 정확하게 분할(segmentation)하여 보여준다. 특히, 도로 상에 객체가 위치하거나 주위 사물에 의한 그늘이 있어도 도로 영역을 정확히 예측함을 알 수 있다.
도 15는 실시예에 따른 주행 환경 인지 모델의 통합 인지 결과를 예시적으로 보여주는 도면이다.
실시예에 따른 주행 환경 인지 모델은 멀티태스크를 동시에 수행하여 객체, 차선 및 도로를 통합적으로 검출한 결과를 보여주며, 검출 대상의 모양 및 크기에 강건한 검출이 가능하여 검출 정확도가 제고된다.
이하에서 본 발명의 실시예와 관련된 인공지능 기술에 대하여 설명한다.
인공지능(artificial intelligence, AI)은 인간의 지능으로 할 수 있는 사고, 학습, 자기계발 등을 컴퓨터가 할 수 있도록 하는 방법을 연구하는 컴퓨터 공학 및 정보기술의 한 분야로, 컴퓨터가 인간의 지능적인 행동을 모방할 수 있도록 하는 것을 의미한다.
또한, 인공지능은 그 자체로 존재하는 것이 아니라, 컴퓨터 과학의 다른 분야와 직간접으로 많은 관련을 맺고 있다. 특히 현대에는 정보기술의 여러 분야에서 인공지능적 요소를 도입하여, 그 분야의 문제 풀이에 활용하려는 시도가 매우 활발하게 이루어지고 있다.
머신 러닝(machine learning)은 인공지능의 한 분야로, 컴퓨터에 명시적인 프로그램 없이 배울 수 있는 능력을 부여하는 연구 분야이다.
구체적으로 머신 러닝은, 경험적 데이터를 기반으로 학습을 하고 예측을 수행하고 스스로의 성능을 향상시키는 시스템과 이를 위한 알고리즘을 연구하고 구축하는 기술이라 할 수 있다. 머신 러닝의 알고리즘들은 엄격하게 정해진 정적인 프로그램 명령들을 수행하는 것이라기보다, 입력 데이터를 기반으로 예측이나 결정을 이끌어내기 위해 특정한 모델을 구축하는 방식을 취한다.
용어 '머신 러닝'은 용어 '기계 학습'과 혼용되어 사용될 수 있다.
기계 학습에서 데이터를 어떻게 분류할 것인가를 놓고, 많은 기계 학습 알고리즘이 개발되었다. 의사결정나무(Decision Tree)나 베이지안 망(Bayesian network), 서포트벡터머신(SVM: support vector machine), 그리고 인공 신경망(ANN: Artificial Neural Network) 등이 대표적이다.
의사결정나무는 의사결정규칙(Decision Rule)을 나무구조로 도표화하여 분류와 예측을 수행하는 분석방법이다.
베이지안 망은 다수의 변수들 사이의 확률적 관계(조건부독립성: conditional independence)를 그래프 구조로 표현하는 모델이다. 베이지안 망은 비지도 학습(unsupervised learning)을 통한 데이터마이닝(data mining)에 적합하다.
서포트벡터머신은 패턴인식과 자료분석을 위한 지도 학습(supervised learning)의 모델이며, 주로 분류와 회귀분석을 위해 사용한다.
인공신경망은 생물학적 뉴런의 동작원리와 뉴런간의 연결 관계를 모델링한 것으로 노드(node) 또는 처리 요소(processing element)라고 하는 다수의 뉴런들이 레이어(layer) 구조의 형태로 연결된 정보처리 시스템이다.
인공 신경망은 기계 학습에서 사용되는 모델로써, 기계학습과 인지과학에서 생물학의 신경망(동물의 중추신경계 중 특히 뇌)에서 영감을 얻은 통계학적 학습 알고리즘이다.
구체적으로 인공신경망은 시냅스(synapse)의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.
용어 인공신경망은 용어 뉴럴 네트워크(Neural Network)와 혼용되어 사용될 수 있다.
인공신경망은 복수의 레이어(layer)를 포함할 수 있고, 레이어들 각각은 복수의 뉴런(neuron)을 포함할 수 있다. 또한 인공신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다.
인공 신경망은 일반적으로 다음의 세가지 인자, 즉 (1) 다른 레이어의 뉴런들 사이의 연결 패턴 (2) 연결의 가중치를 갱신하는 학습 과정 (3) 이전 레이어로부터 수신되는 입력에 대한 가중 합으로부터 출력값을 생성하는 활성화 함수에 의해 정의될 수 있다.
인공 신경망은, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network), MLP(Multilayer Perceptron), CNN(Convolutional Neural Network)와 같은 방식의 네트워크 모델들을 포함할 수 있으나, 이에 한정되지 않는다.
본 명세서에서 용어 '레이어'는 용어 '계층'과 혼용되어 사용될 수 있다.
인공신경망은 계층 수에 따라 단층 신경망(Single-Layer Neural Networks)과 다층 신경망(Multi-Layer Neural Networks)으로 구분된다.
일반적인 단층 신경망은, 입력층과 출력층으로 구성된다.
또한 일반적인 다층 신경망은 입력층(Input Layer)과 하나 이상의 은닉층(Hidden Layer), 출력층(Output Layer)으로 구성된다.
입력층은 외부의 자료들을 받아들이는 층으로서, 입력층의 뉴런 수는 입력되는 변수의 수와 동일하며, 은닉층은 입력층과 출력층 사이에 위치하며 입력층으로부터 신호를 받아 특성을 추출하여 출력층으로 전달한다. 출력층은 은닉층으로부터 신호를 받고, 수신한 신호에 기반한 출력 값을 출력한다. 뉴런간의 입력신호는 각각의 연결강도(가중치)와 곱해진 후 합산되며 이 합이 뉴런의 임계치보다 크면 뉴런이 활성화되어 활성화 함수를 통하여 획득한 출력값을 출력한다.
한편 입력층과 출력 층 사이에 복수의 은닉층을 포함하는 심층 신경망은, 기계 학습 기술의 한 종류인 딥 러닝을 구현하는 대표적인 인공 신경망일 수 있다.
한편 용어 '딥 러닝'은 용어 '심층 학습'과 혼용되어 사용될 수 있다.
인공 신경망은 훈련 데이터(training data)를 이용하여 학습(training)될 수 있다. 여기서 학습이란, 입력 데이터를 분류(classification)하거나 회귀분석(regression)하거나 군집화(clustering)하는 등의 목적을 달성하기 위하여, 학습 데이터를 이용하여 인공 신경망의 파라미터(parameter)를 결정하는 과정을 의미할 수 있다. 인공 신경망의 파라미터의 대표적인 예시로써, 시냅스에 부여되는 가중치(weight)나 뉴런에 적용되는 편향(bias)을 들 수 있다.
훈련 데이터에 의하여 학습된 인공 신경망은, 입력 데이터를 입력 데이터가 가지는 패턴에 따라 분류하거나 군집화 할 수 있다.
한편 훈련 데이터를 이용하여 학습된 인공 신경망을, 본 명세서에서는 학습 모델(a trained model)이라 명칭 할 수 있다.
다음은 인공 신경망의 학습 방식에 대하여 설명한다.
인공 신경망의 학습 방식은 크게, 지도 학습, 비 지도 학습, 준 지도 학습(Semi-Supervised Learning), 강화 학습(Reinforcement Learning)으로 분류될 수 있다.
지도 학습은 훈련 데이터로부터 하나의 함수를 유추해내기 위한 기계 학습의 한 방법이다.
그리고 이렇게 유추되는 함수 중, 연속적인 값을 출력하는 것을 회귀분석(Regression)이라 하고, 입력 벡터의 클래스(class)를 예측하여 출력하는 것을 분류(Classification)라고 할 수 있다.
지도 학습에서는, 훈련 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시킨다.
여기서 레이블이란, 훈련 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 있다.
본 명세서에서는 훈련 데이터가 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과값)을 레이블 또는 레이블링 데이터(labeling data)이라 명칭 한다.
또한 본 명세서에서는, 인공 신경망의 학습을 위하여 훈련 데이터에 레이블을 설정하는 것을, 훈련 데이터에 레이블링 데이터를 레이블링(labeling) 한다고 명칭 한다.
이 경우 훈련 데이터와 훈련 데이터에 대응하는 레이블)은 하나의 트레이닝 셋(training set)을 구성하고, 인공 신경망에는 트레이닝 셋의 형태로 입력될 수 있다.
한편 훈련 데이터는 복수의 특징(feature)을 나타내고, 훈련 데이터에 레이블이 레이블링 된다는 것은 훈련 데이터가 나타내는 특징에 레이블이 달린다는 것을 의미할 수 있다. 이 경우 훈련 데이터는 입력 객체의 특징을 벡터 형태로 나타낼 수 있다.
인공 신경망은 훈련 데이터와 레이블링 데이터를 이용하여, 훈련 데이터와 레이블링 데이터의 연관 관계에 대한 함수를 유추할 수 있다. 그리고, 인공 신경망에서 유추된 함수에 대한 평가를 통해 인공 신경망의 파라미터가 결정(최적화)될 수 있다.
비 지도 학습은 기계 학습의 일종으로, 훈련 데이터에 대한 레이블이 주어지지 않는다.
구체적으로, 비 지도 학습은, 훈련 데이터 및 훈련 데이터에 대응하는 레이블의 연관 관계 보다는, 훈련 데이터 자체에서 패턴을 찾아 분류하도록 인공 신경망을 학습시키는 학습 방법일 수 있다.
비 지도 학습의 예로는, 군집화 또는 독립 성분 분석(Independent Component Analysis)을 들 수 있다.
본 명세서에서 용어 '군집화'는 용어 '클러스터링'과 혼용되어 사용될 수 있다.
비지도 학습을 이용하는 인공 신경망의 일례로 생성적 적대 신경망(GAN: Generative Adversarial Network), 오토 인코더(AE: Autoencoder)를 들 수 있다.
생성적 적대 신경망이란, 생성기(generator)와 판별기(discriminator), 두 개의 서로 다른 인공지능이 경쟁하며 성능을 개선하는 머신 러닝 방법이다.
이 경우 생성기는 새로운 데이터를 창조하는 모형으로, 원본 데이터를 기반으로 새로운 데이터를 생성할 수 있다.
또한 판별기는 데이터의 패턴을 인식하는 모형으로, 입력된 데이터가 원본 데이터인지 또는 생성기에서 생성한 새로운 데이터인지 여부를 감별하는 역할을 수행할 수 있다.
그리고 생성기는 판별기를 속이지 못한 데이터를 입력 받아 학습하며, 판별기는 생성기로부터 속은 데이터를 입력 받아 학습할 수 있다. 이에 따라 생성기는 판별기를 최대한 잘 속이도록 진화할 수 있고, 판별기는 원본 데이터와 생성기에 의해 생성된 데이터를 잘 구분하도록 진화할 수 있다.
오토 인코더는 입력 자체를 출력으로 재현하는 것을 목표로 하는 신경망이다.
오토 인코더는 입력층, 적어도 하나의 은닉층 및 출력층을 포함한다.
이 경우 은닉 계층의 노드 수가 입력 계층의 노드 수보다 적으므로 데이터의 차원이 줄어들게 되며, 이에 따라 압축 또는 인코딩이 수행되게 된다.
또한 은닉 계층에서 출력한 데이터는 출력 계층으로 들어간다. 이 경우 출력 계층의 노드 수는 은닉 계층의 노드 수보다 많으므로, 데이터의 차원이 늘어나게 되며, 이에 따라 압축 해제 또는 디코딩이 수행되게 된다.
한편 오토 인코더는 학습을 통해 뉴런의 연결 강도를 조절함으로써 입력 데이터가 은닉층 데이터로 표현된다. 은닉층에서는 입력층보다 적은 수의 뉴런으로 정보를 표현하는데 입력 데이터를 출력으로 재현할 수 있다는 것은, 은닉층이 입력 데이터로부터 숨은 패턴을 발견하여 표현했다는 것을 의미할 수 있다.
준 지도 학습은 기계 학습의 일종으로, 레이블이 주어진 훈련 데이터와 레이블이 주어지지 않은 훈련 데이터를 모두 사용하는 학습 방법을 의미할 수 있다.
준 지도 학습의 기법 중 하나로, 레이블이 주어지지 않은 훈련 데이터의 레이블을 추론한 후 추론된 라벨을 이용하여 학습을 수행하는 기법이 있으며, 이러한 기법은 레이블링에 소요되는 비용이 큰 경우에 유용하게 사용될 수 있다.
강화 학습은, 에이전트(Agent)가 매 순간 어떤 행동을 해야 좋을지 판단할 수 있는 환경이 주어진다면, 데이터 없이 경험으로 가장 좋을 길을 찾을 수 있다는 이론이다.
강화 학습은 주로 마르코프 결정 과정(MDP: Markov Decision Process)에 의하여 수행될 수 있다.
마르코프 결정 과정을 설명하면, 첫 번째로 에이전트가 다음 행동을 하기 위해 필요한 정보들이 구성된 환경이 주어지며, 두 번째로 그 환경에서 에이전트가 어떻게 행동할지 정의하고, 세 번째로 에이전트가 무엇을 잘하면 보상(reward)을 주고 무엇을 못하면 벌점(penalty)을 줄지 정의하며, 네 번째로 미래의 보상이 최고점에 이를 때까지 반복 경험하여 최적의 정책(policy)을 도출하게 된다.
인공 신경망은 모델의 구성, 활성 함수(Activation Function), 손실 함수(Loss Function) 또는 비용 함수(Cost Function), 학습 알고리즘, 최적화 알고리즘 등에 의해 그 구조가 특정되며, 학습 전에 하이퍼파라미터(Hyperparameter)가 미리 설정되고, 이후에 학습을 통해 모델 파라미터(Model Parameter)가 설정되어 내용이 특정될 수 있다.
예컨대, 인공 신경망의 구조를 결정하는 요소에는 은닉층의 개수, 각 은닉층에 포함된 은닉 노드의 개수, 입력 특징 벡터(Input Feature Vector), 대상 특징 벡터(Target Feature Vector) 등이 포함될 수 있다.
하이퍼파라미터는 모델 파라미터의 초기값 등과 같이 학습을 위하여 초기에 설정하여야 하는 여러 파라미터들을 포함한다. 그리고, 모델 파라미터는 학습을 통하여 결정하고자 하는 여러 파라미터들을 포함한다.
예컨대, 하이퍼파라미터에는 노드 간 가중치 초기값, 노드 간 편향 초기값, 미니 배치(Mini-batch) 크기, 학습 반복 횟수, 학습률(Learning Rate) 등이 포함될 수 있다. 그리고, 모델 파라미터에는 노드 간 가중치, 노드 간 편향 등이 포함될 수 있다.
손실 함수는 인공 신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표(기준)로 이용될 수 있다. 인공 신경망에서 학습은 손실 함수를 줄이기 위하여 모델 파라미터들을 조작하는 과정을 의미하며, 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다.
손실 함수는 주로 평균 제곱 오차(MSE: Mean Squared Error) 또는 교차 엔트로피 오차(CEE, Cross Entropy Error)를 사용할 수 있으며, 본 발명이 이에 한정되지는 않는다.
교차 엔트로피 오차는 정답 레이블이 원 핫 인코딩(one-hot encoding)된 경우에 사용될 수 있다. 원 핫 인코딩은 정답에 해당하는 뉴런에 대하여만 정답 레이블 값을 1로, 정답이 아닌 뉴런은 정답 레이블 값이 0으로 설정하는 인코딩 방법이다.
머신 러닝 또는 딥 러닝에서는 손실 함수를 최소화하기 위하여 학습 최적화 알고리즘을 이용할 수 있으며, 학습 최적화 알고리즘에는 경사 하강법(GD: Gradient Descent), 확률적 경사 하강법(SGD: Stochastic Gradient Descent), 모멘텀(Momentum), NAG(Nesterov Accelerate Gradient), Adagrad, AdaDelta, RMSProp, Adam, Nadam 등이 있다.
경사 하강법은 현재 상태에서 손실 함수의 기울기를 고려하여 손실 함수값을 줄이는 방향으로 모델 파라미터를 조정하는 기법이다.
모델 파라미터를 조정하는 방향은 스텝(step) 방향, 조정하는 크기는 스텝 사이즈(size)라고 칭한다.
이때, 스텝 사이즈는 학습률을 의미할 수 있다.
경사 하강법은 손실 함수를 각 모델 파라미터들로 편미분하여 기울기를 획득하고, 모델 파라미터들을 획득한 기울기 방향으로 학습률만큼 변경하여 갱신할 수 있다.
확률적 경사 하강법은 학습 데이터를 미니 배치로 나누고, 각 미니 배치마다 경사 하강법을 수행하여 경사 하강의 빈도를 높인 기법이다.
Adagrad, AdaDelta 및 RMSProp는 SGD에서 스텝 사이즈를 조절하여 최적화 정확도를 높이는 기법이다. SGD에서 모멘텀 및 NAG는 스텝 방향을 조절하여 최적화 정확도를 높이는 기법이다. Adam은 모멘텀과 RMSProp를 조합하여 스텝 사이즈와 스텝 방향을 조절하여 최적화 정확도를 높이는 기법이다. Nadam은 NAG와 RMSProp를 조합하여 스텝 사이즈와 스텝 방향을 조절하여 최적화 정확도를 높이는 기법이다.
인공 신경망의 학습 속도와 정확도는 인공 신경망의 구조와 학습 최적화 알고리즘의 종류뿐만 아니라, 하이퍼파라미터에 크게 좌우되는 특징이 있다. 따라서, 좋은 학습 모델을 획득하기 위하여는 적당한 인공 신경망의 구조와 학습 알고리즘을 결정하는 것뿐만 아니라, 적당한 하이퍼파라미터를 설정하는 것이 중요하다.
통상적으로 하이퍼파라미터는 실험적으로 다양한 값으로 설정해가며 인공 신경망을 학습시켜보고, 학습 결과 안정적인 학습 속도와 정확도를 제공하는 최적의 값으로 설정한다.
이상 설명된 본 발명에 따른 실시 예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, SSD(Solid State Disk), SDD(Silicon Disk Drive), 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
이상 설명된 본 발명의 실시 예에 대한 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 청구범위에 의하여 나타내어지며, 청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100 주행 환경 인지 장치
110 프로세서
120 메모리

Claims (20)

  1. 일련의 인코딩 레이어를 포함하는 공통 인코더를 실행하여 입력 영상으로부터 복수의 제1 공통 특징 맵을 추출하는 단계;
    다중 디코딩 레이어를 포함하는 공통 디코더를 실행하여 상기 복수의 제1 공통 특징 맵에 대한 멀티스케일(multi-scale) 피처 융합에 의해 복수의 제2 공통 특징 맵을 생성하는 단계;
    태스크 헤더를 실행하여, 상기 복수의 제2 공통 특징 맵 중 적어도 일부를 상기 입력 영상에 포함된 주행 환경 요소의 검출을 수행하기 위한 태스크의 태스크 입력 특징 맵으로 변환하는 단계; 및
    태스크 디코더를 실행하여, 상기 태스크 입력 특징 맵에 기반하여 상기 주행 환경 요소를 검출하는 단계
    를 포함하되,
    태스크별 학습 데이터를 이용하여 주행 환경 인지 모델을 학습하는 단계
    를 더 포함하고,
    상기 학습하는 단계는,
    상기 태스크별 학습 데이터에 포함된 각 태스크의 학습 데이터의 개수 및 각 태스크의 난이도에 기반하여 각 태스크의 학습 횟수를 결정하는 단계; 및
    각 태스크의 학습 횟수만큼 각 태스크의 학습을 수행하는 단계
    를 포함하는,
    주행 환경 인지 방법.
  2. 제 1 항에 있어서,
    상기 일련의 인코딩 레이어는 일련의 콘볼루션 레이어에 대응하는,
    주행 환경 인지 방법.
  3. 제 1 항에 있어서,
    상기 복수의 제1 공통 특징 맵은, 상기 일련의 인코딩 레이어의 각 레이어에서 출력되는 특징 맵을 포함하는
    주행 환경 인지 방법.
  4. 제 1 항에 있어서,
    상기 다중 디코딩 레이어는,
    상기 복수의 제1 공통 특징 맵의 일부를 업샘플링(upsampling) 및 합산(add)하여 출력하는 톱-다운 레이어(Top-Down Layer);
    상기 복수의 제1 공통 특징 맵의 일부를 제외한 나머지 및 상기 톱-다운 레이어의 출력에 대하여 콘볼루션 연산을 수행하는 중간 레이어; 및
    상기 중간 레이어의 출력을 콘볼루션 및 합산하여 상기 복수의 제2 공통 특징 맵을 출력하는 바텀-업 경로 병합 레이어(Bottom-Up Path Aggregation Layer)
    를 포함하는,
    주행 환경 인지 방법.
  5. 제 4 항에 있어서,
    상기 복수의 제2 공통 특징 맵은 상기 바텀-업 경로 병합 레이어로부터 출력되는 일련의 멀티스케일(multi-scale) 특징 맵을 포함하는,
    주행 환경 인지 방법.
  6. 제 1 항에 있어서,
    상기 주행 환경 요소는 객체, 차선 및 도로를 포함하고,
    상기 태스크 헤더 및 상기 태스크 디코더는 상기 주행 환경 요소의 유형 별로 각각 구현되는,
    주행 환경 인지 방법.
  7. 제 6 항에 있어서,
    상기 변환하는 단계 및 상기 검출하는 단계는 상기 주행 환경 요소의 유형 별로 동시에 수행가능한,
    주행 환경 인지 방법.
  8. 삭제
  9. 제 1 항에 있어서,
    상기 각 태스크의 학습을 수행하는 단계는,
    랜덤 함수를 이용하여 태스크 호출 룩-업 테이블을 생성하는 단계; 및
    상기 태스크 호출 룩-업 테이블에 기반하여 각 태스크의 학습 순서를 결정하는 단계
    를 포함하는,
    주행 환경 인지 방법.
  10. 제 1 항에 있어서,
    상기 각 태스크의 학습을 수행하는 단계를 수행하는 동안 상기 공통 인코더 및 상기 공통 디코더가 동시에 학습되는,
    주행 환경 인지 방법.
  11. 제 1 항에 있어서,
    상기 변환하는 단계는,
    상기 복수의 제2 공통 특징 맵의 적어도 일부에 대하여 가중치를 서로 공유하는 콘볼루션 연산을 기설정된 횟수만큼 수행하여 상기 태스크 입력 특징 맵을 생성하는 단계
    를 포함하는,
    주행 환경 인지 방법.
  12. 주행 환경 인지 장치에 있어서,
    하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는,
    일련의 인코딩 레이어를 포함하는 공통 인코더를 실행하여 입력 영상으로부터 복수의 제1 공통 특징 맵을 추출하고,
    다중 디코딩 레이어를 포함하는 공통 디코더를 실행하여 상기 복수의 제1 공통 특징 맵에 대한 멀티스케일(multi-scale) 피처 융합에 의해 복수의 제2 공통 특징 맵을 생성하고,
    태스크 헤더를 실행하여, 상기 복수의 제2 공통 특징 맵 중 적어도 일부를 상기 입력 영상에 포함된 주행 환경 요소의 검출을 수행하기 위한 태스크의 태스크 입력 특징 맵으로 변환하고,
    태스크 디코더를 실행하여, 상기 태스크 입력 특징 맵에 기반하여 상기 주행 환경 요소를 검출하도록 구성되며,
    상기 프로세서는,
    태스크별 학습 데이터를 이용하여 주행 환경 인지 모델을 학습하도록 구성되고,
    상기 주행 환경 인지 모델의 학습을 위하여 상기 프로세서는,
    상기 태스크별 학습 데이터에 포함된 각 태스크의 학습 데이터의 개수 및 각 태스크의 난이도에 기반하여 각 태스크의 학습 횟수를 결정하고,
    각 태스크의 학습 횟수만큼 각 태스크의 학습을 수행하도록 구성되는,
    주행 환경 인지 장치.
  13. 제 12 항에 있어서,
    상기 일련의 인코딩 레이어는 일련의 콘볼루션 레이어에 대응하는,
    주행 환경 인지 장치.
  14. 제 12 항에 있어서,
    상기 복수의 제1 공통 특징 맵은, 상기 일련의 인코딩 레이어의 각 레이어에서 출력되는 특징 맵을 포함하는
    주행 환경 인지 장치.
  15. 제 12 항에 있어서,
    상기 다중 디코딩 레이어는,
    상기 복수의 제1 공통 특징 맵의 일부를 업샘플링(upsampling) 및 합산(add)하여 출력하는 톱-다운 레이어(Top-Down Layer);
    상기 복수의 제1 공통 특징 맵의 일부를 제외한 나머지 및 상기 톱-다운 레이어의 출력에 대하여 콘볼루션 연산을 수행하는 중간 레이어; 및
    상기 중간 레이어의 출력을 콘볼루션 및 합산하여 상기 복수의 제2 공통 특징 맵을 출력하는 바텀-업 경로 병합 레이어(Bottom-Up Path Aggregation Layer)
    를 포함하는,
    주행 환경 인지 장치.
  16. 제 15 항에 있어서,
    상기 복수의 제2 공통 특징 맵은 상기 바텀-업 경로 병합 레이어로부터 출력되는 일련의 멀티스케일(multi-scale) 특징 맵을 포함하는,
    주행 환경 인지 장치.
  17. 제 12 항에 있어서,
    상기 태스크 헤더 및 상기 태스크 디코더는 상기 주행 환경 요소의 유형 별로 각각 구현되는,주행 환경 인지 장치.
  18. 제 17 항에 있어서,
    상기 주행 환경 요소의 유형은 객체, 차선 및 도로를 포함하고,
    상기 프로세서는,
    객체 검출을 위한 태스크 헤더 및 태스크 디코더, 차선 검출을 위한 태스크 헤더 및 태스크 디코더, 및 도로 검출을 위한 태스크 헤더 및 태스크 디코더를 동시에 실행가능한,
    주행 환경 인지 장치.

  19. 제 12 항에 있어서,
    상기 태스크 헤더는,
    상기 복수의 제2 공통 특징 맵의 적어도 일부에 대하여 가중치를 서로 공유하는 콘볼루션 연산을 기설정된 횟수만큼 수행하여 상기 태스크 입력 특징 맵을 생성하는,
    주행 환경 인지 장치.
  20. 삭제
KR1020200156353A 2020-11-20 2020-11-20 주행 환경 인지 방법 및 장치 KR102503594B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200156353A KR102503594B1 (ko) 2020-11-20 2020-11-20 주행 환경 인지 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200156353A KR102503594B1 (ko) 2020-11-20 2020-11-20 주행 환경 인지 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20220069335A KR20220069335A (ko) 2022-05-27
KR102503594B1 true KR102503594B1 (ko) 2023-02-23

Family

ID=81791597

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200156353A KR102503594B1 (ko) 2020-11-20 2020-11-20 주행 환경 인지 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102503594B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200302214A1 (en) * 2019-03-20 2020-09-24 NavInfo Europe B.V. Real-Time Scene Understanding System

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200302214A1 (en) * 2019-03-20 2020-09-24 NavInfo Europe B.V. Real-Time Scene Understanding System

Also Published As

Publication number Publication date
KR20220069335A (ko) 2022-05-27

Similar Documents

Publication Publication Date Title
US10740654B2 (en) Failure detection for a neural network object tracker
CN108027899B (zh) 用于提高经训练的机器学习模型的性能的方法
KR102641116B1 (ko) 데이터 증강에 기초한 인식 모델 트레이닝 방법 및 장치, 이미지 인식 방법 및 장치
US12014268B2 (en) Batch normalization layer training method
US20170262996A1 (en) Action localization in sequential data with attention proposals from a recurrent network
US11256964B2 (en) Recursive multi-fidelity behavior prediction
KR102582194B1 (ko) 선택적 역전파
US10878320B2 (en) Transfer learning in neural networks
US10275719B2 (en) Hyper-parameter selection for deep convolutional networks
KR20200075344A (ko) 검출기, 객체 검출 방법, 학습기 및 도메인 변환을 위한 학습 방법
US20210133943A1 (en) Video data quality improving method and apparatus
CN112347691B (zh) 人工智能服务器
US11551076B2 (en) Event-driven temporal convolution for asynchronous pulse-modulated sampled signals
US20190108399A1 (en) Video action localization from proposal-attention
US11200648B2 (en) Method and apparatus for enhancing illumination intensity of image
KR102517513B1 (ko) 인공지능 기반 수목 데이터 관리 시스템 및 수목 데이터 관리 방법
JP2018527677A (ja) 分類のための強制的なスパース性
CN111242071A (zh) 一种基于锚框的注意力遥感图像目标检测方法
US20190108400A1 (en) Actor-deformation-invariant action proposals
KR20210067442A (ko) 객체 인식을 위한 자동 레이블링 장치 및 방법
KR102512151B1 (ko) 객체 검출 방법 및 장치
KR20200077942A (ko) 객체의 미래 움직임 예측을 통한 동영상에서의 객체 추적을 위한 방법 및 시스템
KR102503594B1 (ko) 주행 환경 인지 방법 및 장치
KR20220102294A (ko) 차량-인프라 간 광카메라 통신의 송신부 인식 장치 및 방법
KR102236792B1 (ko) 카메라 기반의 차선 변경 가능 시점을 학습하는 방법 및 시스템, 그리고 차선 변경 가능 시점을 예측하는 방법 및 시스템

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant