KR102709552B1 - 자율주행을 위한 도로 데이터 생성방법, 장치 및 컴퓨터프로그램 - Google Patents

자율주행을 위한 도로 데이터 생성방법, 장치 및 컴퓨터프로그램 Download PDF

Info

Publication number
KR102709552B1
KR102709552B1 KR1020230121433A KR20230121433A KR102709552B1 KR 102709552 B1 KR102709552 B1 KR 102709552B1 KR 1020230121433 A KR1020230121433 A KR 1020230121433A KR 20230121433 A KR20230121433 A KR 20230121433A KR 102709552 B1 KR102709552 B1 KR 102709552B1
Authority
KR
South Korea
Prior art keywords
point cloud
cloud data
generating
data
road
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020230121433A
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 주식회사 라이드플럭스
Priority to KR1020230121433A priority Critical patent/KR102709552B1/ko
Application granted granted Critical
Publication of KR102709552B1 publication Critical patent/KR102709552B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/3815Road data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/3811Point data, e.g. Point of Interest [POI]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3841Data obtained from two or more sources, e.g. probe vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • G06T2207/30256Lane; Road marking

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Graphics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

자율주행을 위한 도로 데이터 생성방법, 장치 및 컴퓨터프로그램이 제공된다. 본 발명의 다양한 실시예에 따른 자율주행을 위한 도로 데이터 생성방법은 컴퓨팅 장치에 의해 수행되는 자율주행을 위한 도로 데이터 생성방법에 있어서, 소정의 지역을 스캔함에 따라 생성되는 포인트 클라우드 데이터(Point Cloud Data, PCD)를 픽셀화 함에 따라 이미지를 생성하는 단계, 상기 생성된 이미지에 포함된 복수의 픽셀 중 도로에 대응하는 픽셀을 추출하는 단계 및 상기 추출된 픽셀을 이용하여 상기 포인트 클라우드 데이터를 가공함에 따라 상기 소정의 지역에 대한 도로 데이터를 생성하는 단계를 포함한다.

Description

자율주행을 위한 도로 데이터 생성방법, 장치 및 컴퓨터프로그램{METHOD, COMPUTING DEVICE AND COMPUTER PROGRAM FOR GENERATING ROAD DATA FOR AUTONOMOUS DRIVING}
본 발명의 다양한 실시예는 자율주행을 위한 도로 데이터 생성방법, 장치 및 컴퓨터프로그램에 관한 것이다.
차량을 운전하는 사용자들의 편의를 위하여, 각종 센서와 전자 장치 등(예: 차량 운전자 보조 시스템(ADAS: Advanced Driver Assistance System)이 구비되고 있는 추세이며, 특히, 운전자의 개입 없이 주변 환경을 인식하고, 인식된 주변 환경에 따라 스스로 주어진 목적지까지 자동으로 주행하는 차량의 자율주행 시스템(Autonomous driving System)에 대한 기술 개발이 활발하게 이루어지고 있다.
자율주행 차량은 운전자의 개입 없이 주변 환경을 인식하고, 인식된 주변 환경에 따라 스스로 주어진 목적지까지 자동으로 주행하는 자율주행 시스템 기능을 탑재한 차량을 말하며, 자율주행 시스템 기능은 자율주행을 위해 측위, 인지, 예측, 계획 및 제어를 수행하는 것을 의미한다.
운전자에 개입 없이 자율주행 차량의 주행 동작을 제어하기 위해서는 자율주행 차량의 주변 환경을 인식하는 과정이 필요하며, 특히, 완전 자율주행의 안전성 및 신뢰성을 확보하기 위해서는 정밀지도가 필수적인 바, 정밀지도의 중요성이 크게 부각되고 있다.
정밀지도는 그 활용목적에 따라 서로 다른 사전 정보를 포함하는 여러 유형의 지도 레이어들을 포함할 수 있다. 예컨대, 정밀지도는 차선 정보를 포함하는 지도 레이어, 신호등 위치 정보를 포함하는 지도 레이어, 정적 객체 정보를 포함하는 지도 레이어 등을 포함할 수 있다.
이러한 정밀지도의 각 지도 레이어들은 센서 데이터로부터 생성될 수 있다. 예컨대, 라이다, 레이더, 카메라, GPS 등의 센서를 구비한 차량이 도로와 주변 환경을 스캔하여 데이터를 수집하고, 수집한 데이터를 가공 및 보정하여 지도 레이어들을 생성할 수 있다.
종래에는 자율주행 차량 운행에 쓰이는 고정밀지도의 제작을 위해 센서(예: 라이다 센서)를 부착한 차량을 운용하여 센서 데이터를 수집하고, 작업자가 센서 데이터로부터 도로에 해당하는 데이터만을 남기는 방식으로 지도를 제작하였다.
그러나, 종래의 정밀지도 제작 방식은 센서 데이터로부터 도로가 아닌 노이즈 부분을 제거하는 방식인데, 나무, 빌딩, 자동차, 인도 등 노이즈의 종류에 따라 그 특징이 다양하기 때문에 한번에 모든 노이즈를 제거하는 것이 불가능하며, 노이즈를 최소화하기 위해 노이즈를 제거하는 동작을 수없이 반복해야 하기 때문에 작업량이 많고 많은 시간이 소요된다는 문제가 있다.
또한, 종래의 정밀지도 제작 방식은 작업자에 의해 수행되는 것이기 때문에 인적 오류가 발생할 가능성이 크다는 문제가 있다.
본 발명이 해결하고자 하는 과제는 상술된 종래의 정밀지도 제작 방식의 문제점을 해소하기 위한 목적으로, 포인트 클라우드 데이터를 전처리하고, 기 학습된 인공지능 모델을 통해 전처리된 포인트 클라우드로부터 도로에 대응하는 픽셀을 추출하며, 추출된 픽셀을 기반으로 도로에 관한 정보만을 담고 있는 도로 데이터를 생성함으로써, 보다 효율적으로 신뢰도 높은 정밀지도를 제작할 수 있는 자율주행을 위한 도로 데이터 생성방법, 장치 및 컴퓨터프로그램을 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 자율주행을 위한 도로 데이터 생성방법은 컴퓨팅 장치에 의해 수행되는 자율주행을 위한 도로 데이터 생성방법에 있어서, 소정의 지역을 스캔함에 따라 생성되는 포인트 클라우드 데이터(Point Cloud Data, PCD)를 픽셀화 함에 따라 이미지를 생성하는 단계, 상기 생성된 이미지에 포함된 복수의 픽셀 중 도로에 대응하는 픽셀을 추출하는 단계 및 상기 추출된 픽셀을 이용하여 상기 포인트 클라우드 데이터를 가공함에 따라 상기 소정의 지역에 대한 도로 데이터를 생성하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 이미지를 생성하는 단계는, 상기 포인트 클라우드 데이터를 전처리하는 단계 및 상기 전처리된 포인트 클라우드 데이터를 픽셀화 함에 따라 이미지를 생성하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 전처리하는 단계는, 상기 소정의 지역을 기 설정된 크기로 분할함에 따라 복수의 단위 구역을 생성하고, 상기 생성된 복수의 단위 구역 각각에 대응하는 포인트 클라우드 데이터를 개별적으로 전처리하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 전처리하는 단계는, 상기 포인트 클라우드 데이터에 포함된 복수의 포인트 간의 고도 차이를 산출하는 단계, 상기 산출된 고도 차이에 기초하여 기준 고도 값을 설정하는 단계 및 상기 설정된 기준 고도 값을 이용하여 상기 포인트 클라우드 데이터에 포함된 복수의 포인트를 필터링하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 고도 차이를 산출하는 단계는, 고도 값을 기준으로 상기 복수의 포인트를 오름차순 정렬하고, 상기 정렬된 복수의 포인트 중 n번째 포인트와 (n+k)번째 포인트 사이의 고도 차이를 산출하되, 상기 k는 상기 포인트 클라우드 데이터에 포함된 포인트의 수에 기초하여 결정되는 것인, 단계를 포함할 수 있다.
다양한 실시예에서, 상기 기준 고도 값을 설정하는 단계는, 상기 오름차순으로 정렬된 복수의 포인트 중 특정 포인트부터 소정의 개수 이상의 포인트들 각각에 대응하여 산출된 고도 차이가 연속적으로 임계 고도값 미만인 경우, 상기 특정 포인트의 고도 값을 기준 고도 값으로 설정하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 복수의 포인트를 필터링하는 단계는, 상기 설정된 기준 고도 값을 이용하여 필터링 범위를 결정하고, 상기 포인트 클라우드 데이터에 포함된 복수의 포인트 중 고도 값이 상기 결정된 필터링 범위를 벗어나는 포인트를 제거하되, 상기 결정된 필터링 범위는 상기 포인트 클라우드 데이터에 대응하는 구역의 크기에 기초하여 결정되는 것인, 단계를 포함할 수 있다.
다양한 실시예에서, 상기 이미지를 생성하는 단계는, 상기 포인트 클라우드 데이터를 XY 평면을 기준으로 소정의 크기로 분할함에 따라 복수의 픽셀을 생성하는 단계, 상기 생성된 복수의 픽셀 각각에 포함된 포인트들에 대한 특성변수를 산출하는 단계, 상기 산출된 특성변수를 이용하여 상기 생성된 복수의 픽셀 각각에 대한 픽셀 값을 결정하는 단계 및 상기 결정된 픽셀 값을 기반으로 이미지를 생성하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 특성변수를 산출하는 단계는, 상기 생성된 복수의 격자에 포함된 포인트들에 대한 특성변수로서, 상기 생성된 복수의 픽셀 각각에 포함된 포인트들 각각의 반사율(Intensity)을 산출하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 특성변수를 산출하는 단계는, 상기 생성된 복수의 격자에 포함된 포인트들에 대한 특성변수로서, 상기 생성된 복수의 픽셀 각각에 포함된 포인트들 각각의 고도 편차(Elevation deviation)를 산출하는 단계를 포함하며, 상기 고도 편차를 산출하는 단계는, 특정 포인트를 중심으로 XY 평면 상의 거리가 임계 거리 내에 위치하는 포인트들을 탐색하고, 상기 탐색된 포인트들의 고도 값 중 가장 작은 크기의 고도 값과 상기 특정 포인트의 고도 값 간의 차이를 상기 특정 포인트에 대한 고도 편차로 산출하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 특성변수를 산출하는 단계는, 상기 생성된 복수의 격자에 포함된 포인트들에 대한 특성변수로서, 상기 생성된 복수의 픽셀 각각에 포함된 포인트들 각각의 XY 밀도(density)를 산출하는 단계를 포함하며, 상기 XY 밀도를 산출하는 단계는, 특정 포인트를 중심으로 XY 평면 상의 거리가 임계 거리 미만인 포인트들을 탐색하고, 상기 탐색된 포인트들의 수를 상기 특정 포인트의 XY 밀도로 산출하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 픽셀 값을 결정하는 단계는, 상기 생성된 복수의 픽셀 중 특정 픽셀에 포함된 포인트들의 특성변수 평균값을 산출하고, 상기 산출된 특성변수 평균값에 기초하여 상기 특정 픽셀에 대한 픽셀 값을 결정하되, 상기 산출된 특성변수 평균값이 임계 평균값을 초과하는 경우, 상기 임계 평균값에 기초하여 상기 특정 픽셀에 대한 픽셀 값을 결정하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 픽셀을 추출하는 단계는, 인공지능 모델을 통해 상기 생성된 이미지를 분석함에 따라 도로 영역을 식별하고, 상기 생성된 이미지에 포함된 복수의 픽셀 중 식별된 도로 영역에 대응하는 픽셀을 추출하는 단계를 포함하되, 상기 인공지능 모델은, 도로 영역에 관한 정보가 레이블링된 복수의 이미지 - 상기 복수의 이미지는 복수의 포인트 클라우드 데이터를 픽셀화 함에 따라 생성된 것임 - 를 학습 데이터로 하여 학습된 딥러닝 모델일 수 있다.
다양한 실시예에서, 상기 픽셀을 추출하는 단계는, 그랩 컷(Grab-cut) 기반의 알고리즘을 통해 상기 생성된 이미지를 분석함에 따라 도로 영역을 식별하고, 상기 생성된 이미지에 포함된 복수의 픽셀 중 식별된 도로 영역에 대응하는 픽셀을 추출하는 단계를 포함하되, 상기 그랩-컷 기반의 알고리즘은, 초기 입력 값이 설정된 복수의 이미지 - 상기 복수의 이미지는 복수의 포인트 클라우드 데이터를 픽셀화 함에 따라 생성된 것임 - 를 입력받아 상기 초기 입력 값이 설정된 복수의 이미지로부터 도로 영역을 추출하는 알고리즘이며, 상기 초기 입력 값이 설정된 복수의 이미지는, 도로 영역 및 비도로 영역 각각이 서로 다른 색상으로 표시된 이미지일 수 있다.
다양한 실시예에서, 상기 도로 데이터를 생성하는 단계는, 상기 포인트 클라우드 데이터에 포함된 복수의 포인트 중 상기 추출된 픽셀에 포함된 포인트들을 제외한 나머지 포인트들을 제거함에 따라 도로 데이터를 생성하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 추출된 픽셀에 포함된 포인트들을 제외한 나머지 포인트들을 제거함에 따라 도로 데이터를 생성하는 단계는, 상기 생성된 도로 데이터에 포함된 복수의 포인트 각각에 대한 고도 편차를 산출하는 단계 및 상기 생성된 도로 데이터에 포함된 복수의 포인트 중 상기 산출된 고도 편차가 임계 고도 편차를 초과하는 포인트를 제거하는 단계를 포함할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 자율주행을 위한 도로 데이터 생성방법을 수행하는 컴퓨팅 장치는 프로세서, 네트워크 인터페이스, 메모리 및 상기 메모리에 로드(load) 되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되, 상기 컴퓨터 프로그램은, 소정의 지역을 스캔함에 따라 생성되는 포인트 클라우드 데이터(Point Cloud Data, PCD)를 픽셀화 함에 따라 이미지를 생성하는 인스트럭션(instruction) 및 상기 생성된 이미지에 포함된 복수의 픽셀 중 도로에 대응하는 픽셀을 추출하는 인스트럭션 및 상기 추출된 픽셀을 이용하여 상기 포인트 클라우드 데이터를 가공함에 따라 상기 소정의 지역에 대한 도로 데이터를 생성하는 인스트럭션을 포함할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨터프로그램은 컴퓨팅 장치와 결합되어, 소정의 지역을 스캔함에 따라 생성되는 포인트 클라우드 데이터(Point Cloud Data, PCD)를 픽셀화 함에 따라 이미지를 생성하는 단계, 상기 생성된 이미지에 포함된 복수의 픽셀 중 도로에 대응하는 픽셀을 추출하는 단계 및 상기 추출된 픽셀을 이용하여 상기 포인트 클라우드 데이터를 가공함에 따라 상기 소정의 지역에 대한 도로 데이터를 생성하는 단계를 포함하는 자율주행을 위한 도로 데이터 생성방법을 실행시키기 위하여 컴퓨팅 장치로 판독 가능한 기록매체에 저장될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 다양한 실시예에 따르면, 포인트 클라우드 데이터를 전처리하고, 기 학습된 인공지능 모델을 통해 전처리된 포인트 클라우드로부터 도로에 대응하는 픽셀을 추출하며, 추출된 픽셀을 기반으로 도로에 관한 정보만을 담고 있는 도로 데이터를 생성함으로써, 보다 효율적으로 신뢰도 높은 정밀지도를 제작할 수 있다는 이점이 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 자율주행 시스템을 도시한 도면이다.
도 2는 본 발명의 다른 실시예에 따른 자율주행 제어를 위한 도로 데이터 생성방법을 수행하는 컴퓨팅 장치의 하드웨어 구성을 도시한 도면이다.
도 3은 본 발명의 또 다른 실시예에 따른 자율주행 제어를 위한 도로 데이터 생성방법의 순서도이다.
도 4는 다양한 실시예에서, 포인트 클라우드 데이터를 전처리하는 방법을 설명하기 위한 순서도이다.
도 5는 다양한 실시예에서, 포인트 클라우드 데이터를 이용하여 이미지를 생성하는 방법을 설명하기 위한 순서도이다.
도 6은 다양한 실시예에서, 원본 포인트 클라우드 데이터와 전처리된 포인트 클라우드 데이터를 예시적으로 도시한 도면이다.
도 7은 다양한 실시예에서, 특성변수로서 산출되는 XY밀도를 설명하기 위한 도면이다.
도 8은 다양한 실시예에서, 특성변수를 이용하여 생성된 이미지를 예시적으로 도시한 도면이다.
도 9는 다양한 실시예에서, 제1 인공지능 모델의 정답 데이터를 예시적으로 도시한 도면이다.
도 10은 다양한 실시예에서, 제2 인공지능 모델의 입력 이미지 및 정답 이미지를 예시적으로 도시한 도면이다.
도 11은 다양한 실시예에서, 전처리된 포인트 클라우드 데이터와 픽셀 기반으로 필터링된 포인트 클라우드 데이터를 예시적으로 도시한 도면이다.
도 12는 다양한 실시예에서, 1차 필터링된 포인트 클라우드 데이터와 2차 필터링된 포인트 클라우드 데이터를 예시적으로 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
본 명세서에서, 컴퓨터는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨터는 스마트폰, 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
본 명세서에서 설명되는 각 단계들은 컴퓨터에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.
도 1은 본 발명의 일 실시예에 따른 자율주행 시스템을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 자율주행 시스템은 컴퓨팅 장치(100), 사용자 단말(200), 외부 서버(300) 및 네트워크(400)를 포함할 수 있다.
여기서, 도 1에 도시된 자율주행 시스템은 일 실시예에 따른 것이고, 그 구성 요소가 도 1에 도시된 실시예에 한정되는 것은 아니며, 필요에 따라 부가, 변경 또는 삭제될 수 있다.
일 실시예에서, 컴퓨팅 장치(100)는 차량(10)에 대한 자율주행 제어를 수행할 수 있으며, 차량(10)의 자율주행 제어를 위해 필요한 정밀지도로서, 소정의 지역에 대한 도로 데이터를 생성할 수 있다.
여기서, 도로 데이터는 도로에 대응하는 정보만을 담고 있는 데이터일 수 있다. 예컨대, 소정의 지역에 대한 도로 데이터는 소정의 지역을 스캔함에 따라 수집되는 포인트 클라우드 데이터로부터 추출된 것으로, 도로에 대응하는 포인트들 만을 포함하는 지표면 포인트 클라우드(Surface Point Cloud, SPC)일 수 있으나, 이에 한정되지 않는다.
또한, 여기서, 도로 데이터는 제작 및 변경의 유연함과 편의성을 고려하여 하나의 전체 지역이 아닌 세부 구역 단위로 존재하는 것이 바람직하다. 따라서, 컴퓨팅 장치(100)는 소정의 지역을 복수의 단위 구역으로 분할하고, 복수의 단위 구역 각각에 대한 도로 데이터를 개별적으로 생성할 수 있다
이때, 산이나 강과 같이 실제 물리적 지형이나 시, 군, 구의 경계 등 행정적인 지역 구분을 기준으로 영역을 복수의 단위 구역으로 분할할 경우, 구역 표현의 일반성을 저해하는 바, 상기와 같은 현실적인 구분 기준과 무관하게 어느 지역이든 적용 가능하도록 전체 지역을 소정의 크기로 격자화 하는 방식으로 복수의 단위 구역을 분할할 수 있으나, 이에 한정되지 않는다
여기서, 도 1에 도시된 자율주행 시스템에 따르면, 컴퓨팅 장치(100)는 차량(10)의 외부에 별도로 구비될 수 있으며, 차량(10)의 외부에서 자율주행과 관련된 제어명령을 결정하고, 자율주행과 관련된 제어명령을 차량(10)으로 전송함으로써 차량(10)이 자율주행 동작을 수행하도록 할 수 있다. 그러나, 이에 한정되지 않고, 컴퓨팅 장치(100)는 차량(10)의 내부에 구비되는 구성 요소 중 하나에 해당할 수 있으며, 차량(10)의 내부에서 자율주행과 관련된 제어명령을 결정하고, 자율주행과 관련된 제어명령에 따라 차량(10)의 구성 요소들을 직접 제어함으로써 차량(10)에 대한 자율주행 제어를 수행할 수 있다. 예컨대, 컴퓨팅 장치(100)는 차량(10) 내에서 차량(10)에 포함된 구성 요소들의 동작을 제어하는 제어 모듈일 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 소정의 지역에 대한 도로 데이터를 생성하기 위한 환경을 제공할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 네트워크(400)를 통해 사용자 단말(200)과 연결될 수 있으며, 사용자 단말(200)로 웹(Web) 또는 애플리케이션(Application) 기반의 도로 데이터 생성 서비스를 제공할 수 있다. 이에, 컴퓨팅 장치(100)는 사용자가 사용자 단말(200)을 통해 도로 데이터 생성 서비스를 실행할 경우, 사용자 단말(200)로 도로 데이터 생성을 위한 사용자 인터페이스(User Interface, UI)를 제공할 수 있으며, UI를 통해 획득된 사용자입력(예컨대, 레이블링, 이미지 상에 입력되는 초기 입력 값 설정 등)에 기초하여 도로 데이터를 생성할 수 있다
여기서, 사용자 단말(200)은 컴퓨팅 장치(100)와 통신을 위한 메커니즘을 갖는 시스템에서의 임의의 형태의 엔티티(들)를 의미할 수 있다. 예를 들어, 이러한 사용자 단말(200)은 PC(personal computer), 노트북(note book), 모바일 단말기(mobile terminal), 스마트 폰(smart phone), 태블릿 PC(tablet pc) 및 웨어러블 디바이스(wearable device) 등을 포함할 수 있으며, 유/무선 네트워크에 접속할 수 있는 모든 종류의 단말을 포함할 수 있다. 또한, 사용자 단말(200)은 에이전트, API(Application Programming Interface) 및 플러그-인(Plug-in) 중 적어도 하나에 의해 구현되는 임의의 컴퓨팅 장치를 포함할 수도 있다. 또한, 사용자 단말(200)은 애플리케이션 소스 및/또는 클라이언트 애플리케이션을 포함할 수 있다.
또한, 여기서, 네트워크(400)는 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미할 수 있다. 예를 들어, 네트워크(400)는 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷(WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함할 수 있다.
무선 데이터 통신망은 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), 5GPP(5th Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), RF(Radio Frequency), 블루투스(Bluetooth) 네트워크, NFC(Near-Field Communication) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등을 포함할 수 있으나, 이에 한정되지는 않는다.
일 실시예에서, 외부 서버(300)는 네트워크(400)를 통해 컴퓨팅 장치(100)와 연결될 수 있으며, 컴퓨팅 장치(100)가 자율주행을 위한 도로 데이터 생성방법을 수행하기 위해 필요한 각종 정보 및 데이터를 저장 및 관리하거나, 컴퓨팅 장치(100)로부터 자율주행을 위한 도로 데이터 생성방법을 수행함에 따라 생성되는 각종 정보 및 데이터를 제공받아 저장 및 관리할 수 있다. 예를 들어, 외부 서버(300)는 컴퓨팅 장치(100)의 외부에 별도로 구비되는 저장 서버일 수 있으나, 이에 한정되지 않는다. 이하, 도 2를 참조하여, 자율주행을 위한 도로 데이터 생성방법을 수행하는 컴퓨팅 장치(100)의 하드웨어 구성에 대해 설명하도록 한다.
도 2는 본 발명의 다른 실시예에 따른 자율주행을 위한 도로 데이터 생성방법을 수행하는 컴퓨팅 장치의 하드웨어 구성을 도시한 도면이다.
도 2를 참조하면, 다양한 실시예에서, 컴퓨팅 장치(100)는 하나 이상의 프로세서(110), 프로세서(110)에 의하여 수행되는 컴퓨터 프로그램(151)을 로드(Load)하는 메모리(120), 버스(130), 통신 인터페이스(140) 및 컴퓨터 프로그램(151)을 저장하는 스토리지(150)를 포함할 수 있다. 여기서, 도 2에는 본 발명의 실시예와 관련 있는 구성요소들만 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 2에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(110)는 컴퓨팅 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(110)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다.
또한, 프로세서(110)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있으며, 컴퓨팅 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
다양한 실시예에서, 프로세서(110)는 프로세서(110) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(110)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다.
메모리(120)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(120)는 본 발명의 다양한 실시예에 따른 방법/동작을 실행하기 위하여 스토리지(150)로부터 컴퓨터 프로그램(151)을 로드할 수 있다. 메모리(120)에 컴퓨터 프로그램(151)이 로드되면, 프로세서(110)는 컴퓨터 프로그램(151)을 구성하는 하나 이상의 인스트럭션들을 실행함으로써 상기 방법/동작을 수행할 수 있다. 메모리(120)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(130)는 컴퓨팅 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(130)는 주소 버스(address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(140)는 컴퓨팅 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(140)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(140)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 몇몇 실시예에서, 통신 인터페이스(140)는 생략될 수도 있다.
스토리지(150)는 컴퓨터 프로그램(151)을 비 임시적으로 저장할 수 있다. 컴퓨팅 장치(100)를 통해 자율주행 제어를 위한 도로 데이터 생성 프로세스를 수행하는 경우, 스토리지(150)는 자율주행 제어를 위한 도로 데이터 생성 프로세스를 제공하기 위하여 필요한 각종 정보를 저장할 수 있다.
스토리지(150)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(151)은 메모리(120)에 로드될 때 프로세서(110)로 하여금 본 발명의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(110)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 발명의 다양한 실시예에 따른 상기 방법/동작을 수행할 수 있다.
일 실시예에서, 컴퓨터 프로그램(151)은 소정의 지역을 스캔함에 따라 생성되는 포인트 클라우드 데이터(Point Cloud Data, PCD)를 픽셀화 함에 따라 이미지를 생성하는 단계, 생성된 이미지에 포함된 복수의 픽셀 중 도로에 대응하는 픽셀을 추출하는 단계 및 추출된 픽셀을 이용하여 포인트 클라우드 데이터를 가공함에 따라 소정의 지역에 대한 도로 데이터를 생성하는 단계를 포함하는 자율주행을 위한 도로 데이터 생성방법을 수행하도록 하는 하나 이상의 인스트럭션을 포함할 수 있다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 이하, 도 3 내지 도 12를 참조하여, 컴퓨팅 장치(100)에 의해 수행되는 자율주행을 위한 도로 데이터 생성방법에 대해 설명하도록 한다.
도 3은 본 발명의 또 다른 실시예에 따른 자율주행을 위한 도로 데이터 생성방법의 순서도이다.
도 3을 참조하면, S110 단계에서, 컴퓨팅 장치(100)는 소정의 지역에 대한 포인트 클라우드 데이터(Point Cloud Data, PCD)를 픽셀화 함에 따라 이미지를 생성할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 소정의 지역에 대한 포인트 클라우드 데이터를 XY 평면(예: 지면)을 기준으로 이미지화 함으로써, 포인트 클라우드 데이터를 기반으로 소정의 지역을 하향식 시점(top down view)으로 바라봤을 때의 장면을 이미지로 생성할 수 있다.
여기서, 포인트 클라우드 데이터는 소정의 지역을 스캔함에 따라 생성되는 데이터로서, 예컨대, 소정의 지역 내에 설치된 센서(예: 라이다 센서) 또는 소정의 지역을 통과하는 차량 내에 설치된 센서를 통해 소정의 지역을 스캔함에 따라 생성되는 포인트 클라우드 데이터를 의미할 수 있으나, 이에 한정되지 않는다.
여기서, 라이다 센서를 통해 수집되는 포인트 클라우드 데이터에는 도로 뿐만 아니라 빌딩, 나무, 신호등과 같은 각종 노이즈들이 함께 포함되어 있다.
이러한 포인트 클라우드 데이터로부터 이러한 노이즈를 제거하지 않고 도로만의 특성변수를 추출하는 것은 상당히 어렵다는 문제가 있다. 예컨대, 도로와 인도의 고도 차이 정보를 이용하고자 하더라도, 빌딩의 고도 정보가 지배적이기 때문에, 빌딩의 고도 정보로 인해 도로와 인도 간의 고도 차이가 무시가 가능한 수준이 되어버린다는 문제가 있다.
이러한 점을 고려하여, 컴퓨팅 장치(100)는 포인트 클라우드 데이터에 대한 전처리를 수행함으로써 상기와 같은 극적인 노이즈들을 제거할 수 있고, 전처리된 포인트 클라우드 데이터를 이용하여 이미지를 생성함으로써, 도로의 특성변수가 명확하게 드러나는 이미지를 생성할 수 있다. 이하, 도 4 및 도 5를 참조하여, 컴퓨팅 장치(100)에 의해 수행되는 포인트 클라우드 데이터의 전처리 방법과 전처리된 포인트 클라우드 데이터를 이용한 이미지 생성 방법에 대해 설명하도록 한다.
도 4는 다양한 실시예에서, 포인트 클라우드 데이터를 전처리하는 방법을 설명하기 위한 순서도이다.
도 4를 참조하면, 다양한 실시예에서, 컴퓨팅 장치(100)는 포인트 클라우드 데이터를 전처리 함으로써, 전처리된 포인트 클라우드 데이터 즉, 각종 노이즈가 제거된 포인트 클라우드 데이터를 생성할 수 있다.
여기서, 도 4를 참조하여 설명할 포인트 클라우드 데이터를 전처리하는 방법은 특정 지역에 대응하는 포인트 클라우드 데이터를 소정의 크기의 단위 구역으로 분할함에 따라 생성되는 복수의 단위 구역 각각에 대응하는 포인트 클라우드 데이터들을 개별적인 전처리하는 것으로 설명하고 있으나, 이에 한정되지 않고, 경우에 따라, 특정 지역에 대응하여 수집된 포인트 클라우드 데이터 전체를 한번에 전처리하는 형태로도 구현될 수 있다.
즉, 도 4에 따른 방법에 의해 전처리 되는 포인트 클라우드 데이터는 복수의 단위 구역 각각에 대응하는 단위 포인트 클라우드 데이터(전체 포인트 클라우드 데이터를 구역에 맞춰 분할한 것)일 수도 있고, 단위 구역으로 분할되지 않은 전체 포인트 클라우드 데이터일 수도 있다. 이때, 단위 구역으로 분할되지 않은 전체 포인트 클라우드 데이터를 한번에 전처리 하고자 할 경우, 후술되는 S210 단계는 생략될 수 있다.
S210 단계에서, 컴퓨팅 장치(100)는 보다 정확하고 효율적인 전처리 작업을 수행하기 위한 목적으로, 소정의 지역을 기 설정된 크기로 분할함에 따라 복수의 단위 구역을 생성할 수 있다.
포인트 클라우드 데이터를 전처리하는 과정에서, 과도하게 넓은 구역에 대응하는 포인트 클라우드 데이터를 한번에 전처리 하고자 할 경우, 데이터를 정렬하는데 상당히 오랜 시간이 소요되기 때문에 전체적인 전처리 시간이 길어진다는 문제가 있으며, 구역 내부에 오르막길이 존재하는 경우 구역 안에서도 지면의 고도가 일정하지 않다는 문제가 있다.
반대로, 과도하게 좁은 구역에 대응하는 포인트 클라우드 데이터를 전처리 하고자 할 경우, 포인트 클라우드 데이터 내에 포함된 포인트의 개수가 적기 때문에 도로의 포인트들이 전체 포인트들에 대해 지배적인 분포를 지니지 않을 수 있고, 이에 따라 정확한 전처리가 불가능할 수 있다는 문제가 있다.
이러한 점을 고려하여, 컴퓨팅 장치(100)는 소정의 지역을 최적의 크기로 분할함으로써, 과도하게 넓은 구역에 대응하는 포인트 클라우드 데이터를 전처리하는 과정에서 발생되는 문제점들과 과도하게 좁은 구역에 대응하는 포인트 클라우드 데이터를 전처리하는 과정에서 발생되는 문제점들을 모두 상쇄시킬 수 있다. 예컨대, 컴퓨팅 장치(100)는 전체 지역이 409.6m*409.6m인 경우, 이를 6.4m 크기로 분할함에 따라 가지는 6.4m*6.4m 크기를 가지는 복수의 단위 구역을 생성할 수 있다. 그러나, 이에 한정되지 않는다.
S220 단계에서, 컴퓨팅 장치(100)는 포인트 클라우드 데이터에 포함된 복수의 포인트 간의 고도 차이를 산출할 수 있다.
보다 구체적으로, 먼저, 컴퓨팅 장치(100)는 고도 값을 기준으로 복수의 포인트를 오름차순 정렬할 수 있다.
이후, 컴퓨팅 장치(100)는 오름차순으로 정렬된 복수의 포인트 중 n번째 포인트와 (n+k)번째 포인트 사이의 고도 차이를 n번째 포인트에 대응하는 고도 차이로서 산출할 수 있다.
여기서, k는 고도 차이를 관찰할 두 포인트 간의 등수 차이(또는 고도 차이를 산출하고자 하는 대상이 되는 두 포인트 간의 등수 차이)로, 포인트 클라우드 데이터에 포함된 포인트의 수에 기초하여 결정될 수 있다.
고도 차이를 관찰할 두 포인트의 등수 차이를 특정 값으로 고정할 경우, 전처로 하고자 하는 포인트 클라우드 데이터에 포함된 포인트의 수에 달라지는 상황에 유연하게 대응하기 어렵다는 문제가 있다. 이러한 점을 고려하여, 컴퓨팅 장치(100)는 포인트 클라우드 데이터에 포함된 포인트의 수에 기초하여 고도 차이를 관찰할 두 포인트의 등수 차이(k)를 결정함으로써, 다양한 상황에 유연하게 대응할 수 있다. 예컨대, 컴퓨팅 장치(100)는 포인트 클라우드 데이터에 포함된 포인트의 개수가 1000개인 경우 k를 1000의 0.5%인 5로 결정할 수 있고, 포인트 클라우드 데이터에 포함된 포인트의 개수가 1,000,000개인 경우 k를 1,000,000의 0.5%인 5000으로 결정할 수 있다. 그러나, 이에 한정되지 않는다.
S230 단계에서, 컴퓨팅 장치(100)는 S220 단계를 거쳐 산출된 고도 차이에 기초하여, 기준 고도 값을 설정할 수 있다.
특정 지역에 대응하는 포인트 클라우드 데이터에 포함된 포인트들을 고도 기준으로 정렬하고, 고도 기준으로 정렬된 포인트들의 분포를 살펴보면, 지면에 대응하는 고도 근처에서 높은 밀도를 가진다는 점을 알 수 있다. 이러한 특성을 고려하여, 오름차순으로 정렬된 포인트들 간의 고도 차이 분포를 살펴보면, 포인트들 간의 고도 차이가 지면 고도 근처로 수렴하는 형태를 보인다는 점을 알 수 있다.
이러한 점을 고려하여, 컴퓨팅 장치(100)는 특정 포인트에 대하여 산출되는 고도 차이가 임계 고도값(예: 0.1m) 미만일 경우, 특정 포인트에 대응하는 고도 값을 기준 고도 값으로 설정할 수 있다.
이때, 컴퓨팅 장치(100)는 특정 포인트에 대하여 산출된 고도 차이가 우연히 임계 고도값 미만일 수 있다는 점을 고려하여, 특정 포인트부터 소정의 개수 이상의 포인트들 각각에 대응하여 산출된 고도 차이가 연속적으로 임계 고도값 미만일 경우에 특정 포인트의 고도 값을 기준 고도 값으로 설정할 수 있다. 예컨대, 컴퓨팅 장치(100)는 오름차순으로 정렬된 포인트들에 대하여 산출된 고도 차이에 기초하여, 제1 포인트, 제2 포인트 및 제3 포인트 각각에 대응하여 산출된 고도 차이가 임계 고도값 미만일 경우 즉, 제1 포인트부터 제3 포인트까지 3번 연속으로 고도 차이가 임계 고도값 미만인 것으로 판단되는 경우, 고도 차이가 임계 고도값 미만인 것으로 판단된 시작점에 대응하는 제1 포인트의 고도를 기준 고도 값으로 설정할 수 있다.
S240 단계에서, 컴퓨팅 장치(100)는 S230 단계를 거쳐 설정된 기준 고도 값을 이용하여 포인트 클라우드 데이터에 포함된 복수의 포인트를 필터링할 수 있다.
보다 구체적으로, 먼저, 컴퓨팅 장치(100)는 기준 고도 값을 이용하여 필터링 범위를 결정할 수 있다. 예컨대, 컴퓨팅 장치(100)는 기준 고도 값에 소정의 크기의 고도 오프셋을 반영함으로써, 필터링 범위를 결정할 수 있다. 이때, 컴퓨팅 장치(100)는 포인트 클라우드 데이터에 대응하는 구역의 크기에 기초하여 필터링 범위를 결정할 수 있다.
필터링 범위가 좁을수록 많은 노이즈를 제거할 수 있지만, 필터링 범위가 좁을 경우 오르막길 구역을 노이즈로 인식해 제거할 가능성이 있고, 이에 따라 데이터에서 도로 영역이 유실될 수 있다는 문제가 있다.
여기서, 국가법령정보센터의 도로의 구조, 시설 기준에 대한 규칙 제25조에 따르면, 한국에서 법적으로 설계할 수 있는 최대 경사도는 17%인 바, 컴퓨팅 장치(100)는 법적 허용 최대 경사도인 17%와 포인트 클라우드 데이터에 대응하는 구역의 크기에 기초하여 고도 오프셋의 크기를 설정할 수 있고, 이를 이용하여 필터링 범위를 결정함으로써, 오르막길 등을 노이즈로 인식하여 제거되는 것을 방지할 수 있다. 예컨대, 컴퓨팅 장치(100)는 포인트 클라우드 데이터에 대응하는 구역의 크기가 6.4m인 경우, 최대 경사로가 6.4m의 17%인 1.088m, 약 1m를 고도 오프셋으로 설정할 수 있고, 기준 고도 값에 고도 오프셋을 반영하여 필터링 범위를 기준 고도 값에서부터 기준 고도 값 +1m까지의 범위로 결정할 수 있다.
이후, 컴퓨팅 장치(100)는 필터링 범위에 기초하여 포인트 클라우드 데이터에 포함된 포인트들을 필터링할 수 있다. 예컨대, 컴퓨팅 장치(100)는 포인트 클라우드 데이터에 포함된 포인트들 중 필터링 범위를 벗어나는 포인트들을 제거할 수 있다. 상기의 방법에 따라 전처리된 포인트 클라우드 데이터는 도 6에 도시된 바와 같다.
이 밖에도, 본 발명의 다양한 실시예에 따른 포인트 클라우드 데이터를 전처리하는 방법은 Statistical Outlier Removal, Radius Outlier Removal, RANSAC, Region growing segmentation, Progress Morphological Filter 등 다양한 전처리 방법이 적용되거나, 이러한 전처리 방법들이 병행될 수 있다.
도 5는 다양한 실시예에서, 포인트 클라우드 데이터를 이용하여 이미지를 생성하는 방법을 설명하기 위한 순서도이다.
도 5를 참조하면, S310 단계에서, 컴퓨팅 장치(100)는 복수의 픽셀을 생성할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 포인트 클라우드 데이터를 XY 평면을 기준으로 소정의 크기로 분할함에 따라 복수의 픽셀을 생성할 수 있다. 예컨대, 컴퓨팅 장치(100)는 409.6m*409.6m 범위의 지역이 0.1m 간격으로 복셀화 되어있는 포인트 클라우드 데이터를 XY 평면을 기준으로 0.2m 간격으로 분할함에 따라 총 2048*2048 개의 픽셀을 생성할 수 있으나, 이에 한정되지 않는다.
S320 단계에서, 컴퓨팅 장치(100)는 S310 단계를 거쳐 생성된 복수의 픽셀 각각에 포함된 포인트들에 대한 특성변수를 산출할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 복수의 격자에 포함된 포인트들에 대한 특성변수로서, 복수의 픽셀 각각에 포함된 포인트들 각각의 반사율(Intensity)을 산출할 수 있다.
라이다 센서를 통해 수집된 데이터에는 반사율 또한 포함되어 있으며, 반사면의 종류에 따라 반사율에 유의미한 차이를 가진다. 예컨대, 차도와 인도의 경계에서 반사율이 크게 변하고, 차도와 도로노면표시의 경우 그 반사율이 일정한 범위 안의 값을 나타낸다. 이러한 점을 고려하여, 컴퓨팅 장치(100)는 포인트 각각의 반사율을 특성변수로서 산출할 수 있으나, 이에 한정되지 않는다.
다양한 실시예에서, 컴퓨팅 장치(100)는 복수의 격자에 포함된 포인트들에 대한 특성변수로서, 복수의 픽셀 각각에 포함된 포인트들 각각의 고도 편차(Elevation deviation)를 산출할 수 있다. 예컨대, 컴퓨팅 장치(100)는 특정 포인트를 중심으로 XY 평면 상의 거리가 제1 임계 거리(예: 0.2m) 이내에 위치하는 포인트들을 탐색하고, 탐색된 포인트들의 고도 값 중 가장 작은 크기의 고도 값과 특정 포인트의 고도 값 간의 차이를 특정 포인트에 대한 고도 편차로 산출할 수 있다.
차도와 인도의 경계에서 고도 차이가 발생한다는 점과, 도로의 절대적인 고도 값을 특성변수로서 활용하기 어렵다는 문제가 있다. 이러한 점을 고려하여, 컴퓨팅 장치(100)는 포인트 간의 고도 편차를 특성변수로서 산출할 수 있으나, 이에 한정되지 않는다.
다양한 실시예에서, 컴퓨팅 장치(100)는 복수의 격자에 포함된 포인트들에 대한 특성변수로서, 복수의 픽셀 각각에 포함된 포인트들 각각의 XY 밀도(density)를 산출할 수 있다. 예컨대, 컴퓨팅 장치(100)는 특정 포인트를 중심으로 XY 평면 상의 거리가 제2 임계 거리(예: 0.3m) 미만인 포인트들을 탐색하고, 탐색된 포인트들의 수를 특정 포인트의 XY 밀도로 산출할 수 있으나, 이에 한정되지 않는다.
도 8을 참조하면, 차도와 인도의 경계를 이루는 면이 XY 평면에 수직하고, 경계에서 나타나는 포인트들의 통계적 속성이 다르다는 특성이 있다. 차도와 인도의 턱이나 벽 같이 수직면에 점이 많아 수직 방향의 밀도가 큰 경우 분포에 피크가 나타나게 되고 이를 통해 경계를 특정할 수 있다. 이러한 점을 고려하여, 컴퓨팅 장치(100)는 포인트 각각의 XY 밀도를 특성변수로서 산출할 수 있으나, 이에 한정되지 않는다.
S330 단계에서, 컴퓨팅 장치(100)는 S320 단계를 거쳐 산출된 특성변수를 이용하여 복수의 픽셀 각각에 대한 픽셀 값을 결정할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 복수의 픽셀 각각에 포함된 포인트들의 특성변수 평균값을 산출할 수 있고, 산출된 특정변수 평균값을 이용하여 복수의 픽셀 각각에 대한 픽셀 값을 결정할 수 있다.
예컨대, 컴퓨팅 장치(100)는 특정 픽셀에 포함된 포인트들의 반사율 평균값을 산출하고, 산출된 반사율 평균값에 기초하여 특정 픽셀에 대한 제1 픽셀 값을 결정할 수 있다.
또한, 컴퓨팅 장치(100)는 특정 픽셀에 포함된 포인트들의 고도 편차 평균값을 산출하고, 산출된 고도 편차 평균값에 기초하여 특정 픽셀에 대한 제2 픽셀 값을 결정할 수 있다.
또한, 컴퓨팅 장치(100)는 특정 픽셀에 포함된 포인트들의 XY 밀도 평균값을 산출하고, 산출된 XY 밀도 평균값에 기초하여 특정 픽셀에 대한 제3 픽셀 값을 결정할 수 있다.
이때, 컴퓨팅 장치(100)는 특정 픽셀에 대응하여 산출된 특성변수 평균값이 임계 평균값을 초과하는 경우, 특정 픽셀에 대응하는 특성변수 평균값을 임계 평균값으로 정규화 할 수 있다. 예컨대, 컴퓨팅 장치(100)는 특정 픽셀에 대응하여 산출된 특성변수 평균값이 임계 평균값을 초과하는 경우, 특정 픽셀에 대응하여 산출되는 특성변수 평균값을 임계 평균값으로 설정하고, 임계 평균값에 기초하여 특정 픽셀에 대한 픽셀 값을 결정할 수 있다.
특성변수를 이용하여 복수의 픽셀 각각에 대한 픽셀 값을 결정하는 과정에서 특정 픽셀에 노이즈가 남아있을 경우, 노이즈로 인해 특정 픽셀에 대한 특성변수 값이 다른 픽셀들 대비 지나치게 큰 값을 가지게 되고, 이러한 이상점(Outlier)가 존재할 경우, 도로에 대응하는 픽셀을 추출하기 위해 경계를 특정하는 과정에 방해가 되어 정확한 결과가 도출되기 어렵다는 문제가 있다. 이러한 점을 고려하여, 컴퓨팅 장치(100)는 특성변수의 최대값 기준으로서 임계 평균값을 사전에 설정해두고, 노이즈가 남아있음에 따라 특성변수 평균값이 임계 평균 값을 넘어서는 값을 가지는 모든 픽셀들의 특성변수 평균값을 임계 평균값으로 정규화 함으로써, 보다 정확하게 경계를 특정할 수 있도록 하는 것이다. 그러나, 이에 한정되지 않는다.
S340 단계에서, 컴퓨팅 장치(100)는 복수의 픽셀 각각에 대하여 결정된 픽셀 값을 기초로 이미지를 생성할 수 있다. 예컨대, 컴퓨팅 장치(100)는 복수의 픽셀 각각에 대하여 결정된 제1 픽셀 값을 이용하여 제1 이미지를 생성하고, 복수의 픽셀 각각에 대하여 결정된 제2 픽셀 값을 이용하여 제2 이미지를 생성하며, 복수의 픽셀 각각에 대하여 결정된 제3 픽셀 값을 이용하여 제3 이미지를 생성할 수 있다. 즉, 컴퓨팅 장치(100)는 2048*2048*3의 이미지를 생성할 수 있다. 상기의 방법에 따라 생성된 이미지는 도 8에 도시된 바와 같다.
다시, 도 3을 참조하면, S120 단계에서, 컴퓨팅 장치(100)는 S110 단계를 거쳐 생성된 이미지를 분석하여 도로에 대응하는 픽셀을 추출할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 기 학습된 인공지능 모델을 이용하여 이미지를 분석함으로써, 도로에 대응하는 픽셀을 추출할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 추출하고자 하는 도로의 종류에 기초하여, 서로 다른 분석 방법을 통해 이미지를 분석할 수 있다. 예컨대, 컴퓨팅 장치(100)는 식별하고자 하는 도로가 간선도로인 경우 딥러닝(Deep-learning) 기반의 인공지능 모델을 통해 이미지를 분석할 수 있고, 식별하고자 하는 도로가 이면도로인 경우 그랩 컷(Grab-cut) 기반의 알고리즘을 통해 이미지 분석을 수행할 수 있다.
도로를 간선도로와 이면도로로 분류하는 가장 중요한 기준은 작업자의 개입 여부이다.
간선도로(Main road)는 도시의 주요지점을 연결하는 주요한 도로로, 최종적으로 생성되는 지도에 반드시 포함되어야 하는 도로인 바, 작업자의 개입이 필요하지 않는다.
한편, 이면도로(inside road 또는 backside road)는 차도와 보도의 구분이 없는 좁은 도로(예: 생활도로, 골목)로, 작업자의 판단에 따라 최종적으로 생성되는 지도에 포함될 수도 있지만 경우에 따라 의미가 없는 이면도로의 경우에는 최종적으로 생성되는 지도에 포함되지 않을 수 있는 바, 작업자의 개입이 필요하다. 실제로, 작업자들은 이면도로에 대해서는 거리 뷰 등을 참고하며 레이블링을 진행하며, 의미 있는 이면도로만을 추출하는 방식으로 작업을 한다.
이러한 점을 고려하지 않고, 딥러닝 기반의 인공지능 모델을 통해 모든 종류의 도로를 식별할 경우, 간선도로와 이면도로를 모두 인식할 수는 있으나, 인식된 이면도로가 유의미한 도로인지를 분류하거나, 유의미한 이면도로만을 선택적으로 식별하기는 어렵다는 문제가 있다. 이러한 점을 고려하여, 컴퓨팅 장치(100)는 식별하고자 하는 도로가 간선도로인지 이면도로인지에 따라 서로 다른 도로 식별 알고리즘을 적용함으로써, 보다 정확하게 도로를 식별할 수 있는 것이다.
여기서, 딥러닝 기반의 인공지능 모델은 도로 영역에 관한 정보가 레이블링된 복수의 이미지(예: 복수의 포인트 클라우드 데이터를 픽셀화 함에 따라 생성된 이미지들)(예: 도 9)를 학습 데이터로 하여 학습된 모델일 수 있다.
딥러닝 기반의 인공지능 모델(예컨대, 딥 뉴럴 네트워크(Deep Neural Network, DNN)(예: 심층신경망))은 입력 레이어와 출력 레이어 외에 복수의 히든 레이어를 포함할 수 있다. 딥 뉴럴 네트워크를 이용하면 데이터의 잠재적인 구조(latent structures)를 파악할 수 있다. 즉, 사진, 글, 비디오, 음성, 음악의 잠재적인 구조(예를 들어, 어떤 물체가 사진에 있는지, 글의 내용과 감정이 무엇인지, 음성의 내용과 감정이 무엇인지 등)를 파악할 수 있다.
딥 뉴럴 네트워크는 컨벌루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN), 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN), 오토 인코더(auto encoder), GAN(Generative Adversarial Networks), 제한 볼츠만 머신(Restricted Boltzmann Machine, RBM), 심층 신뢰 네트워크(Deep Belief Network, DBN), Q 네트워크, U 네트워크, 샴 네트워크 등을 포함할 수 있으나, 이에 한정되지 않는다.
딥러닝 기반의 인공지능 모델은 활성화 함수로서 소프트맥스 함수(softmax function)가 사용될 수 있으나, 이에 한정되지 않는다.
또한, 여기서, 그랩 컷 기반의 알고리즘은 최소한의 상호작용으로 이미지에서 불필요 영역을 제거하고, 필요 영역만을 추출하는 컴퓨터 비전 알고리즘일 수 있다. 예컨대, 그랩 컷 기반의 알고리즘은 초기 입력 값이 설정된 이미지(예: 포인트 클라우드 데이터를 픽셀화 함에 따라 생성된 이미지들)를 입력받아 해당 이미지로부터 불필요 영역(예: 비도로 영역)을 제거하고, 필요 영역(예: 도로 영역)만을 추출하는 알고리즘일 수 있다.
여기서, 초기 입력 값이 설정된 이미지는 도로 영역을 필요 영역(전경)으로 설정하고, 비도로 영역을 불필요 영역(배경)으로 설정한 이미지를 의미할 수 있다. 예컨대, 초기 입력 값이 설정된 이미지는 도 10에 도시된 바와 같이, 도로 영역과 비도로 영역 각각이 서로 다른 색상으로 표시된 이미지(예: 도로 영역-흰색, 비도로 영역-검정색)일 수 있다.
상기의 그랩 컷 기반의 알고리즘에 도 10의 (A)와 같이 초기 입력 값이 설정된 이미지를 입력할 경우, 도 10의 (B)에 도시된 정답 이미지와 같이 간선 도로가 흰색으로 명확하게 추출될 수 있다. 이때, 도로 영역 또는 비도로 영역으로 명확하게 구분되지 않은 이면 도로의 경우, 도 10의 (B)에 도시된 바와 같이 회색으로 표시될 수 있는데, 이러한 이면 도로에 대응하는 영역의 경우, 추후 컴퓨팅 장치(100)가 회색으로 표시된 영역에 대한 사용자 입력을 획득함에 따라 표시된 영역을 도로 영역 또는 비도로 영역으로 확정할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 딥러닝 기반의 인공지능 모델을 통해 이미지를 분석함에 따라 이미지로부터 미정 영역이 식별되는 경우, 그랩 컷 기반의 알고리즘을 통해 미정 영역에 대응하는 이미지를 분석함에 따라 미정 영역에 포함된 도로 영역을 식별하고, 미정 영역에 대응하는 이미지에 포함된 복수의 픽셀 중 식별된 도로 영역에 대응하는 픽셀을 추출함으로써, 이면도로에 대응하는 픽셀을 추출할 수 있다.
보다 구체적으로, 딥러닝 기반의 인공지능 모델을 통해 이미지를 분석함에 따라 결과 데이터로서, 이미지에 포함된 복수의 픽셀 각각이 도로 영역에 대응하는 픽셀일 확률 값을 산출할 수 있다.
이때, 컴퓨팅 장치(100)는 복수의 픽셀 중 확률 값이 제1 크기(예: 0.999) 이상인 픽셀을 도로 영역에 대응하는 픽셀로 판단할 수 있고, 확률 값이 제2 크기(예: 0.0001) 미만인 픽셀을 비도로 영역에 대응하는 픽셀로 판단할 수 있으며, 제2 크기 이상 제1 크기 미만(예: 0.0001 이상 0.999 미만)인 픽셀을 미정 영역으로 판단할 수 있다.
이후, 컴퓨팅 장치(100)는 딥러닝 기반의 인공지능 모델을 통해 추출된 결과를 이용하여 이미지 상에 초기 입력 값을 설정할 수 있다. 예컨대, 컴퓨팅 장치(100)는 이미지에 포함된 복수의 픽셀 중 확률 값이 제1 크기 이상인 픽셀을 도로 영역(전경)으로 설정하고, 확률 값이 제2 크기 미만인 픽셀을 불필요 영역(배경)으로 설정할 수 있다. 이때, 컴퓨팅 장치(100)는 딥러닝 기반의 인공지능 모델을 통해 추출된 결과를 이용하여 이미지 상에 초기 입력 값을 설정한 후, 초기 입력 값이 설정된 이미지를 사용자에게 제공함에 따라 사용자로부터 사용자 입력(예: 도로 영역(전경)에 대응하는 픽셀을 설정하는 사용자 입력 및/또는 불필요 영역(배경)에 대응하는 픽셀을 설정하는 사용자 입력 등)을 획득할 수 있으며, 이에 따라 초기 입력 값을 수정할 수 있다.
이후, 컴퓨팅 장치(100)는 그랩 컷 기반의 알고리즘을 통해, 초기 입력 값이 설정된 이미지를 분석함에 따라 도로 영역, 비도로 영역 및 미정 영역이 서로 다른 색상으로 표시된 이미지를 도출할 수 있다.
이후, 컴퓨팅 장치(100)는 도로 영역, 비도로 영역 및 미정 영역이 서로 다른 색상으로 표시된 이미지를 사용자에게 제공할 수 있고, 사용자로부터 미정 영역에 대응하는 복수의 픽셀 중 도로 영역에 대응하는 픽셀들을 선택받을 수 있으며, 사용자로부터 선택되는 픽셀들을 이면도로에 대응하는 픽셀로서 추출할 수 있다.
S130 단계에서, 컴퓨팅 장치(100)는 S120 단계를 거쳐 추출된 픽셀을 기반으로 포인트 클라우드 데이터를 가공함에 따라 소정의 지역에 대한 정밀지도로서, 도로 데이터를 생성할 수 있다(예: 도 11).
일례로, 컴퓨팅 장치(100)는 기 학습된 인공지능 모델을 통해 도로 영역에 대응하는 픽셀이 추출된 경우, 포인트 클라우드 데이터에 포함된 복수의 포인트 중 도로 영역에 대응하는 픽셀에 포함된 포인트들을 제외한 나머지 포인트들을 제거함으로써 도로 데이터를 생성할 수 있다.
다른 예로, 컴퓨팅 장치(100)는 기 학습된 인공지능 모델을 통해 비도로 영역에 대응하는 픽셀이 추출된 경우, 포인트 클라우드 데이터에 포함된 복수의 포인트 중 비도로 영역에 대응하는 픽셀에 포함된 포인트들을 제거함으로써 도로 데이터를 생성할 수 있다.
한편, 픽셀을 기반으로 포인트 클라우드 데이터에 포함된 포인트들을 필터링하더라도, 노이즈가 완전히 제거되기 어렵고, 차량 바퀴와 차체 하단부, 인도와 차도의 경계, 포인트 클라우드 데이터 수집 과정에서 발생한 노이즈들이 남아있게 된다. 이러한 점을 고려하여, 컴퓨팅 장치(100)는 규칙 기반의 필터링을 2차적으로 수행함으로써, 도로 데이터에 포함된 노이즈를 보다 확실하게 제거할 수 있다.
보다 구체적으로, 먼저, 컴퓨팅 장치(100)는 픽셀 기반의 1차 포인트 필터링을 수행할 수 있다. 예컨대, 컴퓨팅 장치(100)는 포인트 클라우드 데이터에 포함된 복수의 포인트 중 도로 영역에 대응하는 픽셀에 포함된 포인트들을 제외한 나머지 포인트들을 제거하거나, 비도로 영역에 대응하는 픽셀에 포함된 포인트들을 제거할 수 있다.
이후, 컴퓨팅 장치(100)는 1차 필터링된 포인트 클라우드 데이터에 대하여 규칙 기반의 2차 포인트 필터링을 수행할 수 있다. 예컨대, 컴퓨팅 장치(100)는 앞서 도 5를 참조하여 설명한 바와 유사하게, 1차 필터링된 포인트 클라우드 데이터에 포함된 복수의 포인트 각각에 대한 고도 편차를 산출할 수 있고, 1차 필터링된 포인트 클라우드 데이터에 포함된 복수의 포인트 중 고도 편차가 임계 고도 편차(예: 0.25m)를 초과하는 포인트를 제거할 수 있다. 상기의 방법에 따라 1차 및 2차 필터링된 포인트 클라우드 데이터는 도 12에 도시된 바와 같다.
전술한 자율주행을 위한 도로 데이터 생성방법은 도면에 도시된 순서도를 참조하여 설명하였다. 간단한 설명을 위해 자율주행을 위한 도로 데이터 생성방법은 일련의 블록들로 도시하여 설명하였으나, 본 발명은 상기 블록들의 순서에 한정되지 않고, 몇몇 블록들은 본 명세서에 도시되고 시술된 것과 상이한 순서로 수행되거나 또는 동시에 수행될 수 있다. 또한, 본 명세서 및 도면에 기재되지 않은 새로운 블록이 추가되거나, 일부 블록이 삭제 또는 변경된 상태로 수행될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
100 : 컴퓨팅 장치
200 : 사용자 단말
300 : 외부 서버
400 : 네트워크

Claims (18)

  1. 컴퓨팅 장치에 의해 수행되는 자율주행을 위한 도로 데이터 생성방법에 있어서,
    소정의 지역을 스캔함에 따라 생성되는 포인트 클라우드 데이터(Point Cloud Data, PCD)를 픽셀화 함에 따라 이미지를 생성하는 단계;
    상기 생성된 이미지에 포함된 복수의 픽셀 중 도로에 대응하는 픽셀을 추출하는 단계; 및
    상기 추출된 픽셀을 이용하여 상기 포인트 클라우드 데이터를 가공함에 따라 상기 소정의 지역에 대한 도로 데이터를 생성하는 단계를 포함하며,
    상기 이미지를 생성하는 단계는,
    상기 포인트 클라우드 데이터를 전처리하는 단계; 및
    상기 전처리된 포인트 클라우드 데이터를 픽셀화 함에 따라 이미지를 생성하는 단계를 포함하고,
    상기 전처리하는 단계는,
    상기 포인트 클라우드 데이터에 포함된 복수의 포인트 간의 고도 차이를 산출하는 단계;
    상기 산출된 고도 차이에 기초하여 기준 고도 값을 설정하는 단계; 및
    상기 설정된 기준 고도 값을 이용하여 상기 포인트 클라우드 데이터에 포함된 복수의 포인트를 필터링하는 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 전처리하는 단계는,
    상기 소정의 지역을 기 설정된 크기로 분할함에 따라 복수의 단위 구역을 생성하고, 상기 생성된 복수의 단위 구역 각각에 대응하는 포인트 클라우드 데이터를 개별적으로 전처리하는 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 고도 차이를 산출하는 단계는,
    고도 값을 기준으로 상기 복수의 포인트를 오름차순 정렬하고, 상기 정렬된 복수의 포인트 중 n번째 포인트와 (n+k)번째 포인트 사이의 고도 차이를 산출하되, 상기 k는 상기 포인트 클라우드 데이터에 포함된 포인트의 수에 기초하여 결정되는 것인, 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  6. 제5항에 있어서,
    상기 기준 고도 값을 설정하는 단계는,
    상기 오름차순으로 정렬된 복수의 포인트 중 특정 포인트부터 소정의 개수 이상의 포인트들 각각에 대응하여 산출된 고도 차이가 연속적으로 임계 고도값 미만인 경우, 상기 특정 포인트의 고도 값을 기준 고도 값으로 설정하는 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  7. 제1항에 있어서,
    상기 복수의 포인트를 필터링하는 단계는,
    상기 설정된 기준 고도 값을 이용하여 필터링 범위를 결정하고, 상기 포인트 클라우드 데이터에 포함된 복수의 포인트 중 고도 값이 상기 결정된 필터링 범위를 벗어나는 포인트를 제거하되, 상기 결정된 필터링 범위는 상기 포인트 클라우드 데이터에 대응하는 구역의 크기에 기초하여 결정되는 것인, 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  8. 제1항에 있어서,
    상기 이미지를 생성하는 단계는,
    상기 포인트 클라우드 데이터를 XY 평면을 기준으로 소정의 크기로 분할함에 따라 복수의 픽셀을 생성하는 단계;
    상기 생성된 복수의 픽셀 각각에 포함된 포인트들에 대한 특성변수를 산출하는 단계;
    상기 산출된 특성변수를 이용하여 상기 생성된 복수의 픽셀 각각에 대한 픽셀 값을 결정하는 단계; 및
    상기 결정된 픽셀 값을 기반으로 이미지를 생성하는 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  9. 제8항에 있어서,
    상기 특성변수를 산출하는 단계는,
    상기 생성된 복수의 격자에 포함된 포인트들에 대한 특성변수로서, 상기 생성된 복수의 픽셀 각각에 포함된 포인트들 각각의 반사율(Intensity)을 산출하는 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  10. 제8항에 있어서,
    상기 특성변수를 산출하는 단계는,
    상기 생성된 복수의 격자에 포함된 포인트들에 대한 특성변수로서, 상기 생성된 복수의 픽셀 각각에 포함된 포인트들 각각의 고도 편차(Elevation deviation)를 산출하는 단계를 포함하며,
    상기 고도 편차를 산출하는 단계는,
    특정 포인트를 중심으로 XY 평면 상의 거리가 임계 거리 내에 위치하는 포인트들을 탐색하고, 상기 탐색된 포인트들의 고도 값 중 가장 작은 크기의 고도 값과 상기 특정 포인트의 고도 값 간의 차이를 상기 특정 포인트에 대한 고도 편차로 산출하는 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  11. 제8항에 있어서,
    상기 특성변수를 산출하는 단계는,
    상기 생성된 복수의 격자에 포함된 포인트들에 대한 특성변수로서, 상기 생성된 복수의 픽셀 각각에 포함된 포인트들 각각의 XY 밀도(density)를 산출하는 단계를 포함하며,
    상기 XY 밀도를 산출하는 단계는,
    특정 포인트를 중심으로 XY 평면 상의 거리가 임계 거리 미만인 포인트들을 탐색하고, 상기 탐색된 포인트들의 수를 상기 특정 포인트의 XY 밀도로 산출하는 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  12. 제8항에 있어서,
    상기 픽셀 값을 결정하는 단계는,
    상기 생성된 복수의 픽셀 중 특정 픽셀에 포함된 포인트들의 특성변수 평균값을 산출하고, 상기 산출된 특성변수 평균값에 기초하여 상기 특정 픽셀에 대한 픽셀 값을 결정하되, 상기 산출된 특성변수 평균값이 임계 평균값을 초과하는 경우, 상기 임계 평균값에 기초하여 상기 특정 픽셀에 대한 픽셀 값을 결정하는 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  13. 제1항에 있어서,
    상기 픽셀을 추출하는 단계는,
    인공지능 모델을 통해 상기 생성된 이미지를 분석함에 따라 도로 영역을 식별하고, 상기 생성된 이미지에 포함된 복수의 픽셀 중 식별된 도로 영역에 대응하는 픽셀을 추출하는 단계를 포함하되,
    상기 인공지능 모델은,
    도로 영역에 관한 정보가 레이블링된 복수의 이미지 - 상기 복수의 이미지는 복수의 포인트 클라우드 데이터를 픽셀화 함에 따라 생성된 것임 - 를 학습 데이터로 하여 학습된 딥러닝 모델인,
    자율주행을 위한 도로 데이터 생성방법.
  14. 제1항에 있어서,
    상기 픽셀을 추출하는 단계는,
    그랩 컷(Grab-cut) 기반의 알고리즘을 통해 상기 생성된 이미지를 분석함에 따라 도로 영역을 식별하고, 상기 생성된 이미지에 포함된 복수의 픽셀 중 식별된 도로 영역에 대응하는 픽셀을 추출하는 단계를 포함하되,
    상기 그랩 컷 기반의 알고리즘은,
    초기 입력 값이 설정된 복수의 이미지 - 상기 복수의 이미지는 복수의 포인트 클라우드 데이터를 픽셀화 함에 따라 생성된 것임 - 를 입력받아 상기 초기 입력 값이 설정된 복수의 이미지로부터 도로 영역을 추출하는 알고리즘이며,
    상기 초기 입력 값이 설정된 복수의 이미지는,
    도로 영역 및 비도로 영역 각각이 서로 다른 색상으로 표시된 이미지인,
    자율주행을 위한 도로 데이터 생성방법.
  15. 제1항에 있어서,
    상기 도로 데이터를 생성하는 단계는,
    상기 포인트 클라우드 데이터에 포함된 복수의 포인트 중 상기 추출된 픽셀에 포함된 포인트들을 제외한 나머지 포인트들을 제거함에 따라 도로 데이터를 생성하는 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  16. 제15항에 있어서,
    상기 추출된 픽셀에 포함된 포인트들을 제외한 나머지 포인트들을 제거함에 따라 도로 데이터를 생성하는 단계는,
    상기 생성된 도로 데이터에 포함된 복수의 포인트 각각에 대한 고도 편차를 산출하는 단계; 및
    상기 생성된 도로 데이터에 포함된 복수의 포인트 중 상기 산출된 고도 편차가 임계 고도 편차를 초과하는 포인트를 제거하는 단계를 포함하는,
    자율주행을 위한 도로 데이터 생성방법.
  17. 프로세서;
    네트워크 인터페이스;
    메모리; 및
    상기 메모리에 로드(load) 되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되,
    상기 컴퓨터 프로그램은,
    소정의 지역을 스캔함에 따라 생성되는 포인트 클라우드 데이터(Point Cloud Data, PCD)를 픽셀화 함에 따라 이미지를 생성하는 인스트럭션(instruction); 및
    상기 생성된 이미지에 포함된 복수의 픽셀 중 도로에 대응하는 픽셀을 추출하는 인스트럭션; 및
    상기 추출된 픽셀을 이용하여 상기 포인트 클라우드 데이터를 가공함에 따라 상기 소정의 지역에 대한 도로 데이터를 생성하는 인스트럭션을 포함하며,
    상기 이미지를 생성하는 인스트럭션은,
    상기 포인트 클라우드 데이터를 전처리하는 인스트럭션; 및
    상기 전처리된 포인트 클라우드 데이터를 픽셀화 함에 따라 이미지를 생성하는 인스트럭션을 포함하고,
    상기 전처리하는 인스트럭션은,
    상기 포인트 클라우드 데이터에 포함된 복수의 포인트 간의 고도 차이를 산출하는 인스트럭션;
    상기 산출된 고도 차이에 기초하여 기준 고도 값을 설정하는 인스트럭션; 및
    상기 설정된 기준 고도 값을 이용하여 상기 포인트 클라우드 데이터에 포함된 복수의 포인트를 필터링하는 인스트럭션을 포함하는,
    자율주행을 위한 도로 데이터 생성방법을 수행하는 컴퓨팅 장치.
  18. 컴퓨팅 장치와 결합되어,
    소정의 지역을 스캔함에 따라 생성되는 포인트 클라우드 데이터(Point Cloud Data, PCD)를 픽셀화 함에 따라 이미지를 생성하는 단계;
    상기 생성된 이미지에 포함된 복수의 픽셀 중 도로에 대응하는 픽셀을 추출하는 단계; 및
    상기 추출된 픽셀을 이용하여 상기 포인트 클라우드 데이터를 가공함에 따라 상기 소정의 지역에 대한 도로 데이터를 생성하는 단계를 포함하며,
    상기 이미지를 생성하는 단계는,
    상기 포인트 클라우드 데이터를 전처리하는 단계; 및
    상기 전처리된 포인트 클라우드 데이터를 픽셀화 함에 따라 이미지를 생성하는 단계를 포함하고,
    상기 전처리하는 단계는,
    상기 포인트 클라우드 데이터에 포함된 복수의 포인트 간의 고도 차이를 산출하는 단계;
    상기 산출된 고도 차이에 기초하여 기준 고도 값을 설정하는 단계; 및
    상기 설정된 기준 고도 값을 이용하여 상기 포인트 클라우드 데이터에 포함된 복수의 포인트를 필터링하는 단계를 포함하는 자율주행을 위한 도로 데이터 생성방법을 실행시키기 위하여 컴퓨팅 장치로 판독 가능한 기록매체에 저장된, 컴퓨터프로그램.
KR1020230121433A 2023-09-13 2023-09-13 자율주행을 위한 도로 데이터 생성방법, 장치 및 컴퓨터프로그램 Active KR102709552B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230121433A KR102709552B1 (ko) 2023-09-13 2023-09-13 자율주행을 위한 도로 데이터 생성방법, 장치 및 컴퓨터프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230121433A KR102709552B1 (ko) 2023-09-13 2023-09-13 자율주행을 위한 도로 데이터 생성방법, 장치 및 컴퓨터프로그램

Publications (1)

Publication Number Publication Date
KR102709552B1 true KR102709552B1 (ko) 2024-09-26

Family

ID=92928146

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230121433A Active KR102709552B1 (ko) 2023-09-13 2023-09-13 자율주행을 위한 도로 데이터 생성방법, 장치 및 컴퓨터프로그램

Country Status (1)

Country Link
KR (1) KR102709552B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119919910A (zh) * 2025-04-02 2025-05-02 大连慕泽科技有限公司 一种公路路面质量在线检测方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170115778A (ko) * 2016-04-08 2017-10-18 팅크웨어(주) 도로면 생성 방법, 도로면 생성 장치, 포인트 클라우드 데이터 처리 방법, 포인트 클라우드 데이터 처리 장치, 컴퓨터 프로그램 및 컴퓨터 판독 가능한 기록 매체
KR102363719B1 (ko) * 2021-06-30 2022-02-16 주식회사 모빌테크 3차원 점군 지도의 투영 변환을 이용한 차선 좌표 추출 방법
KR102391853B1 (ko) * 2021-11-19 2022-05-09 주식회사 케이비전 영상 정보 처리 시스템 및 방법
KR102424305B1 (ko) * 2022-01-03 2022-07-22 주식회사 라이드플럭스 인공지능 모델의 학습 데이터 생성을 위한 데이터 영상 생성 및 제공방법, 장치 및 컴퓨터프로그램

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170115778A (ko) * 2016-04-08 2017-10-18 팅크웨어(주) 도로면 생성 방법, 도로면 생성 장치, 포인트 클라우드 데이터 처리 방법, 포인트 클라우드 데이터 처리 장치, 컴퓨터 프로그램 및 컴퓨터 판독 가능한 기록 매체
KR102363719B1 (ko) * 2021-06-30 2022-02-16 주식회사 모빌테크 3차원 점군 지도의 투영 변환을 이용한 차선 좌표 추출 방법
KR102391853B1 (ko) * 2021-11-19 2022-05-09 주식회사 케이비전 영상 정보 처리 시스템 및 방법
KR102424305B1 (ko) * 2022-01-03 2022-07-22 주식회사 라이드플럭스 인공지능 모델의 학습 데이터 생성을 위한 데이터 영상 생성 및 제공방법, 장치 및 컴퓨터프로그램

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119919910A (zh) * 2025-04-02 2025-05-02 大连慕泽科技有限公司 一种公路路面质量在线检测方法及装置

Similar Documents

Publication Publication Date Title
CN109798903B (zh) 一种从地图数据中获取道路信息的方法及装置
Janahiraman et al. Traffic light detection using tensorflow object detection framework
CN107918753A (zh) 点云数据处理方法及装置
CN111767831B (zh) 用于处理图像的方法、装置、设备及存储介质
JP7376992B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
CN114385662B (zh) 路网更新方法、装置、存储介质及电子设备
Paramarthalingam et al. A deep learning model to assist visually impaired in pothole detection using computer vision
CN115689946B (zh) 图像修复方法、电子设备及计算机程序产品
CN115294544A (zh) 驾驶场景分类方法、装置、设备及存储介质
CN108846387B (zh) 一种交警手势识别方法及装置
US12488485B2 (en) Computer vision systems and methods for determining roof shapes from imagery using segmentation networks
US20240416956A1 (en) Vehicle control method and apparatus, device, and storage medium
US11132561B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
KR102709552B1 (ko) 자율주행을 위한 도로 데이터 생성방법, 장치 및 컴퓨터프로그램
WO2023029704A1 (zh) 数据处理方法、装置和系统
Dewi et al. Image enhancement method utilizing YOLO models to recognize road markings at night
CN118397403B (zh) 低照度车辆图像检测模型的训练方法、装置、设备及介质
US20240419724A1 (en) Clip search with multimodal queries
CN115880307B (zh) 一种电站建模地图组串分割方法及装置
KR102507906B1 (ko) 저용량 ndt 지도를 이용한 자율주행 차량의 측위 방법, 장치 및 컴퓨터프로그램
US12518541B2 (en) Method and device for determining available vehicle boarding area in travel image by using artificial neural network
Bellishree et al. Pothole Detection: Machine Learning and Computer Vision Approach
KR102709551B1 (ko) 라이다 포인트 클라우드 기반의 실시간 객체 탐지 방법, 장치 및 컴퓨터프로그램
US20240265675A1 (en) Artificial image generation with traffic signs
Nisha et al. Robust Traffic Sign Recognition Using CNN YOLOv5 Model

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20230913

PA0201 Request for examination

Patent event code: PA02011R01I

Patent event date: 20230913

Comment text: Patent Application

PA0302 Request for accelerated examination

Patent event date: 20230913

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20230913

Patent event code: PA03021R01I

Comment text: Patent Application

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20231130

Patent event code: PE09021S01D

PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20240625

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20240920

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20240923

End annual number: 3

Start annual number: 1

PG1601 Publication of registration