KR102626574B1 - 카메라 및 라이다의 캘리브레이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램 - Google Patents

카메라 및 라이다의 캘리브레이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램 Download PDF

Info

Publication number
KR102626574B1
KR102626574B1 KR1020230078771A KR20230078771A KR102626574B1 KR 102626574 B1 KR102626574 B1 KR 102626574B1 KR 1020230078771 A KR1020230078771 A KR 1020230078771A KR 20230078771 A KR20230078771 A KR 20230078771A KR 102626574 B1 KR102626574 B1 KR 102626574B1
Authority
KR
South Korea
Prior art keywords
calibration
point
point cloud
lidar
cloud data
Prior art date
Application number
KR1020230078771A
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 KR1020230078771A priority Critical patent/KR102626574B1/ko
Application granted granted Critical
Publication of KR102626574B1 publication Critical patent/KR102626574B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/497Means for monitoring or calibrating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Electromagnetism (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 특정 패턴을 갖는 캘리브레이션 보드를 이용한 카메라 및 라이다의 캘리브레이션 방법을 제안한다. 상기 방법은 데이터 생성 장치가, 카메라(camera)에 의해 촬영된 이미지(image) 및 라이다(lidar)에 의해 획득된 점군(point cloud) 데이터에 대한 각각 하나의 프레임을 추출하는 단계, 상기 데이터 생성 장치가, 상기 추출된 이미지 및 라이다 각각의 하나의 프레임에 포함된 캘리브레이션 보드(calibration board)에 대한 특징점을 식별하는 단계 및 상기 데이터 생성 장치가, 상기 식별된 특징점을 기초로 상기 카메라 및 상기 라이다의 캘리브레이션을 수행하는 단계를 포함할 수 있다. 본 발명은 산업통상자원부/한국산업기술평가관리원의 지원(과제번호-20022003/사업명-자동차산업기술개발사업/과제명-종횡방향 연동기반 산업용 자율주행 및 안정성 확보기술 개발)으로 개발된 기술이다.

Description

카메라 및 라이다의 캘리브레이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램{Method for calibration of camera and lidar, and computer program recorded on record-medium for executing method therefor}
본 발명은 캘리브레이션(calibration)에 관한 것이다. 보다 상세하게는, 특정 패턴을 갖는 캘리브레이션 보드(calibration board)를 이용한 카메라 및 라이다의 캘리브레이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램에 관한 것이다.
차량의 자율주행(automatic driving)은 차량 스스로 판단하여 주행할 수 있는 시스템을 의미한다. 이와 같은, 자율주행은 시스템이 주행에 관여하는 정도와 운전차가 차량을 제어하는 정도에 따라 비자동화부터 완전 자동화까지 점진적인 단계로 구분될 수 있다. 일반적으로, 자율주행의 단계는 국제자동차기술자협회(SAE(Society of Automotive Engineers) International)에서 분류한 6단계의 레벨로 구분된다. 국제자동차기술자협회가 분류한 6단계에 따르면, 레벨 0단계는 비자동화, 레벨 1단계는 운전자 보조, 레벨 2단계는 부분 자동화, 레벨 3단계는 조건부 자동화, 레벨 4단계는 고도 자동화, 그리고 레벨 5단계는 완전 자동화 단계이다.
자율주행은 인지(perception), 측위(localization), 경로 계획(path planning) 및 제어(control)의 메커니즘을 통해 수행된다. 그리고, 다양한 기업체들은 자율주행 메커니즘에서 인지 및 경로 계획을 인공지능(AI)을 이용하여 구현하기 위해 개발 중에 있다.
이와 같은, 자율주행을 위해서는 도로에 관한 다양한 정보가 선제적으로 수집되어야 한다. 그러나, 현실적으로 차량의 센서 만을 이용하여 방대한 정보를 실시간 수집하여 분석하는 것은 쉽지 않다. 이에 따라, 자율주행이 현실화되기 위해서는 실제 자율 주행에 필요한 각종 정보를 제공해 줄 수 있는 정밀도로지도가 필수적이다
여기서, 정밀도로지도는 도로와 주변 지형의 정보를 정확도 ±25㎝로 구축한 3차원 전자지도를 말한다. 이러한, 정밀도로지도는 일반적인 전자지도의 정보(길안내를 위해 필요한 노드 정보들과 링크 정보들)에 더하여, 도로의 폭, 도로의 곡률, 도로의 경사도, 차선 정보(점선, 실선, 정지선 등), 면형 정보(횡단보도, 과속방지턱, 갓길 등), 노면 마크 정보, 표지 판 정보, 시설물 정보(신호등, 연석, 맨홀 등) 등과 같은 정밀 정보를 포함하는 지도이다.
이러한, 정밀도로지도를 생성하기 위해서는 이동 지도제작 시스템(Mobile Mapping System, MMS), 항공사진 촬영 정보 등 다양한 관련 자료들이 요구된다.
특히, MMS는 차량에 장착되어 차량의 운행과 함께 도로 주변에 있는 지형지물의 위치측정 및 시각정보를 획득하도록 이루어진다. 즉, MMS는 차체의 위치와 자세정보를 취득하기 위한 GPS(Global Positioning System), 관성 항법 장치(Inertial Navigation System; INS), 관성 측정 장치(Inertial Measurement Unit; IMU), 지형지물의 형상과 정보를 수집하기 위한 카메라, 라이다(Light Detection and Ranging, LiDAR) 및 기타 센서에 의해 수집된 정보들을 기반으로 생성될 수 있다.
그러나, 위와 같이 데이터를 획득, 촬영 또는 측정하기 위한 다양한 센서들은 물리적으로 동일한 하나의 지점에 설치될 수 없으며, 센서들 각각의 시간 정보를 기준으로 동작되기 때문에 센서들 간의 싱크(sync)가 맞지 않는 문제점이 있었다.
한편, 동시적 위치추정 및 지도작성(Simultaneous Localization and Mapping, SLAM) 시스템은 GPS, 관성 항법 장치, 관성 측정 장치, 카메라, 라이다 및 기타 센서에 의해 수집된 정보들을 기반으로 포즈를 추정할 수 있는 동시에 3차원 지도를 구축할 수 있다.
그러나, 종래의 동시적 위치추정 및 지도작성 시스템은 복잡한 연산으로 인해 연산량이 많고, 이로 인해 위치추정 및 지도 작성에 따른 작업 시간이 많이 소요되는 문제점이 있었다.
본 발명은 산업통상자원부/한국산업기술평가관리원의 지원(과제번호-20022003/사업명-자동차산업기술개발사업/과제명-종횡방향 연동기반 산업용 자율주행 및 안정성 확보기술 개발)으로 개발된 기술이다.
대한민국 공개특허공보 제10-2022-0085186호, ‘정밀지도를 이용한 라이다 센서 캘리브레이션 방법’, (2022.06.22. 공개)
본 발명의 일 목적은 특정 패턴을 갖는 캘리브레이션 보드를 이용한 카메라 및 라이다의 캘리브레이션 방법을 제공하는 것이다.
본 발명의 다른 목적은 캘리브레이션 보드를 이용한 카메라 및 라이다의 캘리브레이션 방법을 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상술한 바와 같은 기술적 과제를 달성하기 위하여, 본 발명은 특정 패턴을 갖는 캘리브레이션 보드를 이용한 카메라 및 라이다의 캘리브레이션 방법을 제안한다. 상기 방법은 데이터 생성 장치가, 카메라(camera)에 의해 촬영된 이미지(image) 및 라이다(lidar)에 의해 획득된 점군(point cloud) 데이터에 대한 각각 하나의 프레임을 추출하는 단계, 상기 데이터 생성 장치가, 상기 추출된 이미지 및 라이다 각각의 하나의 프레임에 포함된 캘리브레이션 보드(calibration board)에 대한 특징점을 식별하는 단계 및 상기 데이터 생성 장치가, 상기 식별된 특징점을 기초로 상기 카메라 및 상기 라이다의 캘리브레이션을 수행하는 단계를 포함할 수 있다.
구체적으로, 상기 캘리브레이션 보드는 직사각형의 체커 보드(cheaker board)이며, 테두리에 사전 설정된 값보다 높은 인텐시티(intensity)를 갖는 재질로 형성되는 테두리 식별 영역 및 상기 테두리 영역의 최상부에 위치하여 사전 설정된 값보다 낮은 인텐시티를 갖는 재질로 형성되는 탑 포인트 식별 영역이 형성된 것을 특징으로 한다.
상기 특징점을 식별하는 단계는 상기 이미지에서 상기 캘리브레이션 보드의 사이즈 및 개수를 기초로 코너(corner)를 식별하는 것을 특징으로 한다.
상기 특징점을 식별하는 단계는 상기 캘리브레이션 보드의 최상부 또는 최하부에 위치한 특징점을 기준으로 사전 설정된 패턴으로 코너(corner)에 해당하는 점을 식별하여 인덱스(index)를 부여하는 것을 특징으로 한다.
상기 특징점을 식별하는 단계는 상기 캘리브레이션 보드의 탑 포인트 식별 영역을 기초로, 상기 라이다로부터 식별된 특징점에 상기 이미지로부터 식별된 특징점의 인덱스를 매칭하는 것을 특징으로 한다.
상기 특징점을 식별하는 단계는 상기 데이터 생성 장치가, 상기 테두리 식별 영역을 기준으로 상기 점군 데이터에서 상기 캘리브레이션 보드를 검출하고, 상기 검출된 캘리브레이션 보드 내에서 특징점을 식별하는 것을 특징으로 한다.
상기 특징점을 식별하는 단계는 상기 데이터 생성 장치가, 상기 테두리 식별 영역에 포함된 점군을 기준으로 가상면(virtual plane)을 생성하는 단계, 상기 데이터 생성 장치가, 상기 생성된 가상면에서 채널별로 가장 외곽에 위치한 점들을 연결하여 복수의 직선을 생성하는 단계, 상기 데이터 생성 장치가, 생성된 복수의 직선들의 교점을 기준으로 상기 캘리브레이션 보드의 꼭지점을 검출하는 단계 및 상기 데이터 생성 장치가, 상기 검출된 꼭지점을 기준으로 상기 캘리브레이션 보드의 특징점을 식별하는 단계를 포함하는 것을 특징으로 한다.
상기 특징점을 식별하는 단계는 상기 검출된 꼭지점, 상기 캘리브레이션 보드의 사이즈 및 개수를 기초로 상기 캘리브레이션 보드의 특징점을 식별하는 것을 특징으로 한다.
상기 캘리브레이션 하는 단계는 상기 이미지 및 상기 점군 데이터 각각에 포함된 캘리브레이션 보드의 특징점을 기초로, 회전(rotation) 값 및 변환(translation) 값을 포함하는 외부 파라미터를 산출하고, 상기 산출된 외부 파라미터를 기준으로 캘리브레이션을 수행하는 것을 특징으로 한다.
상기 캘리브레이션 하는 단계는 상기 회전 값 및 상기 변환 값을 개별적으로 산출하는 것을 특징으로 한다.
상기 회전 값은 제1 뷰 포인트에서 제2 뷰 포인트로의 회전 값으로 정의했을 때 하기의 수학식을 통해 산출되는 것을 특징으로 한다.
[수학식]
(여기서, R은 회전 값, f,f’는 상기 제1 뷰 포인트 및 상기 제2 뷰 포인트에서 상기 점군 데이터에 포함된 캘리브레이션 보드의 특징점까지의 레이(ray)를 의미한다.)
상기 캘리브레이션 하는 단계는 상기 변환 값은 RPE(Re-Projection Error)를 기초로 한 손실 함수를 통해 산출하는 것을 특징으로 한다.
상술한 바와 같은 기술적 과제를 달성하기 위하여, 본 발명은 상기 방법을 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램을 제안한다. 상기 컴퓨터 프로그램은 메모리(memory), 송수신기(transceiver) 및 상기 메모리에 상주된 명령어를 처리하는 프로세서(processor)를 포함하여 구성된 컴퓨팅 장치와 결합될 수 있다. 그리고, 상기 컴퓨터 프로그램은 상기 프로세서가, 카메라(camera)에 의해 촬영된 이미지(image) 및 라이다(lidar)에 의해 획득된 점군(point cloud) 데이터 각각에서 캘리브레이션 보드(calibration board)를 추출하는 단계, 상기 프로세서가, 상기 이미지 및 상기 점군 데이터 각각에 포함된 캘리브레이션 보드의 특징점을 식별하는 단계 및 상기 프로세서가, 상기 식별된 특징점을 기초로 상기 카메라 및 상기 라이다의 캘리브레이션을 수행하는 단계; 를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.
기타 실시 예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 실시 예들에 따르면, 이미지 및 점군 데이터 각각에 포함된 캘리브레이션 보드의 특징점을 식별하여 카메라 및 라이다의 캘리브레이션을 수행할 수 있다.
이로 인해, 본 발명은 이미지 및 점군 데이터에 대한 하나의 프레임 만으로 캘리브레이션이 가능하여, 캘리브레이션에 따른 시간을 단축할 수 있을 뿐만 아니라 정확성을 확보할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과로 제한되지 아니하며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 본 발명이 속한 기술분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 데이터 생성 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 데이터 생성 장치의 논리적 구성도이다.
도 3은 본 발명의 일 실시예에 따른 데이터 생성 장치의 하드웨어 구성도이다.
도 4는 본 발명의 일 실시예에 따른 카메라 및 라이다의 캘리브레이션 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 일 실시예에 따른 라이다 및 관성측정장치의 캘리브레이션 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따른 복수개의 라이다들의 캘리브레이션 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 일 실시예에 따른 시각적 매핑 방법을 설명하기 위한 순서도이다.
도 8 내지 도 11은 본 발명의 일 실시예에 따른 카메라 및 라이다의 캘리브레이션 방법을 설명하기 위한 예시도이다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 라이다 및 관성측정장치의 캘리브레이션 방법을 설명하기 위한 예시도이다.
도 14 및 도 15는 본 발명의 일 실시예에 따른 복수개의 라이다들의 캘리브레이션 방법을 설명하기 위한 예시도이다.
도 16 및 도 17은 본 발명의 일 실시예에 따른 시각적 매핑 방법을 설명하기 위한 예시도이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, “구성된다” 또는 “가지다” 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다. 반면에, 어떤 구성 요소가 다른 구성 요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다. 본 발명의 사상은 첨부된 도면 외에 모든 변경, 균등물 내지 대체물에 까지도 확장되는 것으로 해석되어야 한다.
한편, MMS는 차량에 장착되어 차량의 운행과 함께 도로 주변에 있는 지형지물의 위치측정 및 시각정보를 획득하도록 이루어진다. 즉, MMS는 차체의 위치와 자세정보를 취득하기 위한 GPS(Global Positioning System), 관성 항법 장치(Inertial Navigation System; INS), 관성 측정 장치(Inertial Measurement Unit; IMU), 지형지물의 형상과 정보를 수집하기 위한 카메라, 라이다(Light Detection and Ranging, LiDAR) 및 기타 센서에 의해 수집된 정보들을 기반으로 생성될 수 있다.
그러나, 위와 같이 데이터를 획득, 촬영 또는 측정하기 위한 다양한 센서들은 물리적으로 동일한 하나의 지점에 설치될 수 없으며, 센서들 각각의 시간 정보를 기준으로 동작되기 때문에 센서들 간의 싱크(sync)가 맞지 않는 문제점이 있었다.
한편, 동시적 위치추정 및 지도작성(Simultaneous Localization and Mapping, SLAM) 시스템은 GPS, 관성 항법 장치, 관성 측정 장치, 카메라, 라이다 및 기타 센서에 의해 수집된 정보들을 기반으로 포즈를 추정할 수 있는 동시에 3차원 지도를 구축할 수 있다.
그러나, 종래의 동시적 위치추정 및 지도작성 시스템은 복잡한 연산으로 인해 연산량이 많고, 이로 인해 위치추정 및 지도 작성에 따른 작업 시간이 많이 소요되는 문제점이 있었다.
이러한 한계를 극복하고자, 본 발명은 복수개의 센서들 간에 캘리브레이션을 수행할 수 있고, 정확한 특징 지도를 생성할 수 있는 다양한 수단들을 제안하고자 한다.
도 1은 본 발명의 일 실시예에 따른 데이터 생성 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 데이터 생성 시스템(300)은 데이터 수집 장치(100), 데이터 생성 장치(200) 및 데이터 가공 장치(300)를 포함하여 구성될 수 있다.
이와 같은, 일 실시예에 따른 데이터 생성 시스템의 구성 요소들은 기능적으로 구분되는 요소들을 나타낸 것에 불과하므로, 둘 이상의 구성 요소가 실제 물리적 환경에서는 서로 통합되어 구현되거나, 하나의 구성 요소가 실제 물리적 환경에서는 서로 분리되어 구현될 수 있을 것이다.
각각의 구성 요소에 대하여 설명하면, 데이터 수집 장치(100)는 차량에 탑재되어, 지도 생성 및 학습 데이터 생성에 필요한 데이터를 수집할 수 있다.
데이터 수집 장치(100)는 라이다(lidar), 카메라(camera), 레이더(radar), 관성 측정장치(IMU, Inertial, Measurement Unit) 및 GPS(Global Positioning System) 중 하나 이상을 포함하여 구성될 수 있다. 하지만, 이에 한정된 것은 아니고, 데이터 수집 장치(100)는 도로정밀지도를 생성하기 위하여 다양한 정보를 센싱 할 수 있는 센서들이 적용될 수 있다.
즉, 데이터 수집 장치(100)는 라이다로부터 점군 데이터를 획득할 수 있으며, 카메라로부터 촬영된 이미지를 획득할 수 있다. 또한, 데이터 수집 장치(100)는 관성 측정장치, GPS 등으로부터 위치 및 포즈(pose)와 관련된 정보를 획득할 수 있다.
여기서, 라이다는 차량의 주위로 레이저 펄스를 발사하고 차량 주위에 위치하는 객체들에 의해 반사되어 돌아온 빛을 감지하여, 차량 주위에 대한 3차원 영상에 해당하는 점군 데이터를 생성할 수 있다.
카메라는 라이다를 중심으로 라이다로부터 수집되는 공간의 이미지를 획득할 수 있다. 이러한, 카메라는 컬러(Color) 카메라, 근적외선(NIR, Near InfraRed) 카메라, 단적외선(SWIR, Short Wavelength InfraRed) 카메라 및 장적외선(LWIR, Long WaveLength InfraRed) 카메라 중에서 어느 하나를 포함할 수 있다.
관성 측정장치는 가속도 센서(Acceleration Sensor), 각속도 센서(Gyroscope, 자이로스코프)로 이루어져 있으며, 일부는 지자기 센서(Magnetometer)도 포함할 수 있으며, 데이터 수집 장치(100)의 움직임의 변화에 따른 가속도의 변화를 감지할 수 있다.
GPS는 인공 위성으로부터 송신되는 신호를 받아 삼각측량을 이용하여 데이터 수집 장치(100)의 위치를 측정할 수 있다.
이러한, 데이터 수집 장치(100)는 차량 또는 항공 장치에 설치될 수 있다, 예를 들어, 데이터 수집 장치(100)는 차량의 상부에 설치되어, 주변의 점군 데이터 또는 이미지를 수집하거나, 항공 장치의 하부에 설치되어, 항공에서 지상의 객체에 대한 점군 데이터 또는 이미지를 수집할 수 있다.
또한, 데이터 수집 장치(100)는 수집된 점군 데이터 또는 이미지를 데이터 생성 장치(200)에 전송할 수 있다.
다음 구성으로, 데이터 생성 장치(200)는 데이터 수집 장치(100)로부터 라이다에 의해 획득된 점군 데이터 및 카메라에 의해 촬영된 이미지를 수신할 수 있다.
데이터 생성 장치(200)는 수신한 점군 데이터 및 카메라를 이용하여 도로정밀지도를 생성할 수 있으며, 도로정밀지도를 활용한 학습 데이터를 생성할 수 있다.
특징적으로, 본 발명의 일 실시예에 따르면, 데이터 생성 장치(200)는 카메라(camera)에 의해 촬영된 이미지 및 라이다(lidar)에 의해 획득된 점군 데이터에 대한 각각 하나의 프레임을 추출하고, 이미지 및 라이다 각각의 하나의 프레임에 포함된 캘리브레이션 보드(calibration board)에 대한 특징점을 식별할 수 있다. 또한, 데이터 생성 장치(200)는 식별된 특징점을 기초로 카메라 및 라이다의 캘리브레이션을 수행할 수 있다.
본 발명의 다른 실시예에 따르면, 데이터 생성 장치(200)는 사전 정의되는 월드 좌표계 상에 차량에 탑재된 라이다(lidar)로부터 획득된 점군 데이터(point cloud)를 배치하고, 배치된 점군 데이터 중 캘리브레이션(calibration)에 사용될 영역을 추출할 수 있다. 또한, 데이터 생성 장치(200)는 추출된 영역에 포함된 적어도 하나의 객체를 식별하고, 식별된 적어도 하나의 객체에 포함된 점군을 사전 저장된 모델(model)에 피팅(fitting)하여 점군 데이터에 대한 캘리브레이션을 수행할 수 있다.
본 발명의 다른 실시예에 따르면, 데이터 생성 장치(200)는 기준맵을 생성하기 위하여 제1 라이다(lidar)로부터 획득된 제1 점군(point cloud) 데이터, 기준맵 상의 경로를 주행하는 차량에 탑재된 복수의 제2 라이다로부터 획득된 복수의 제2 점군 데이터 및 제1 라이다 및 복수의 제2 라이다에 대한 제원 값을 획득하고, 제1 점군 데이터 및 복수의 제2 점군 데이터에 대한 전처리를 수행할 수 있다. 또한, 데이터 생성 장치(200)는 전처리 된 제1 점군 데이터 및 복수의 제2 점군 데이터에 대한 캘리브레이션을 수행할 수 있다.
본 발명의 또 다른 실시예에 따르면, 데이터 생성 장치(200)는 라이다(lidar)로부터 획득된 점군 데이터 및 카메라로부터 촬영된 이미지를 기초로 제1 특징 지도를 생성하고, 사전 저장된 점군 데이터를 통해 생성된 제2 특징 지도에 상기 제1 특징 지도를 매핑(mapping)하여 제3 특징 지도를 생성할 수 있다.
한편, 본 발명의 다양한 실시예들은 서로 구분되어 각각의 기능을 수행하는 것으로 설명하고 있으나, 이에 한정된 것은 아니고, 서로의 기능을 조합하여 적용할 수 있다.
이와 같은 특징을 가지는, 데이터 생성 장치(200)는 데이터 수집 장치(100), 및 데이터 가공 장치(300)와 데이터를 송수신하고, 송수신된 데이터를 기초로 연산을 수행할 수 있는 장치라면 어떠한 장치라도 허용될 수 있다. 예를 들어, 동기화 장치(300)는 데스크탑(desktop), 워크스테이션(workstation) 또는 서버(server)와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되는 것은 아니다.
다음 구성으로, 데이터 가공 장치(300)는 데이터 생성 장치(200)로부터 생성된 지도를 가공할 수 있다.
예를 들어, 데이터 가공 장치(300)는 데이터 생성 장치(200)로부터 생성된 지도의 시설물 정보를 보정하거나, 생성된 지도에서 노이즈를 제거할 수 있다. 또한, 데이터 가공 장치(300)는 생성된 지도에서 특정 객체를 검출하거나, 데이터에 대한 경량화를 수행할 수 있다.
이와 같은 특징을 가지는, 데이터 가공 장치(300)는 데이터 수집 장치(100), 및 데이터 생성 장치(200)와 데이터를 송수신하고, 송수신된 데이터를 기초로 연산을 수행할 수 있는 장치라면 어떠한 장치라도 허용될 수 있다. 예를 들어, 동기화 장치(300)는 데스크탑(desktop), 워크스테이션(workstation) 또는 서버(server)와 같은 고정식 컴퓨팅 장치 중 어느 하나가 될 수 있으나, 이에 한정되는 것은 아니다.
지금까지 상술한 바와 같은, 데이터 수집 장치(100), 데이터 생성 장치(200) 및 데이터 가공 장치(300)는 장치들 사이를 직접 연결하는 보안 회선, 공용 유선 통신망 또는 이동 통신망 중 하나 이상이 조합된 네트워크를 이용하여 데이터를 송수신할 수 있다.
예를 들어, 공용 유선 통신망에는 이더넷(ethernet), 디지털가입자선(x Digital Subscriber Line, xDSL), 광동축 혼합망(Hybrid Fiber Coax, HFC), 광가입자망(Fiber To The Home, FTTH)가 포함될 수 있으나, 이에 한정되는 것도 아니다. 그리고, 이동 통신망에는 코드 분할 다중 접속(Code Division Multiple Access, CDMA), 와이드 밴드 코드 분할 다중 접속(Wideband CDMA, WCDMA), 고속 패킷 접속(High Speed Packet Access, HSPA), 롱텀 에볼루션(Long Term Evolution, LTE), 5세대 이동통신(5th generation mobile telecommunication)가 포함될 수 있으나, 이에 한정되는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른 데이터 생성 장치의 논리적 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 데이터 생성 장치(200)는 통신부(205), 입출력부(210), 제1 캘리브레이션부(215), 제2 캘리브레이션부(220), 제3 캘리브레이션부(225) 및 지도 생성부(230)를 포함하여 구성될 수 있다.
이와 같은, 데이터 생성 장치(200)의 구성 요소들은 기능적으로 구분되는 요소들을 나타낸 것에 불과하므로, 둘 이상의 구성 요소가 실제 물리적 환경에서는 서로 통합되어 구현되거나, 하나의 구성 요소가 실제 물리적 환경에서는 서로 분리되어 구현될 수 있을 것이다.
각각의 구성 요소에 대하여 설명하면, 통신부(205)는 데이터 수집 장치(100) 및 데이터 가공 장치(300)와 데이터를 송수신할 수 있다. 구체적으로, 통신부(205)는 데이터 수집 장치(100)로부터 라이다에 의해 획득된 점군 데이터와 카메라를 통해 촬영된 이미지를 수신할 수 있다.
다음 구성으로, 입출력부(210)는 사용자 인터페이스(UI)를 통해 사용자로부터 신호를 입력 받거나, 연산 결과를 외부로 출력할 수 있다. 구체적으로, 입출력부(210)는 센서들 간의 캘리브레이션을 위한 설정 정보들을 입력받을 수 있다. 또한, 입출력부(210)는 캘리브레이션 결과 및 생성된 지도를 출력할 수 있다.
다음 구성으로, 제1 캘리브레이션부(215)는 카메라(camera) 및 라이다(lidar) 간의 캘리브레이션을 수행할 수 있다.
구체적으로, 제1 캘리브레이션부(215)는 카메라에 의해 촬영된 이미지 및 라이다에 의해 획득된 점군 데이터 각각에 대한 하나의 프레임을 추출할 수 있다. 이때, 추출된 이미지 및 라이다에 대한 각 프레임은 캘리브레이션 보드(calibration board)를 포함할 수 있다.
다음으로, 제1 캘리브레이션부(215)는 추출된 이미지 및 라이다 각각에 대한 하나의 프레임에 포함된 캘리브레이션 보드에 대한 특징점을 식별할 수 있다.
여기서, 캘리브레이션 보드는 직사각형의 체커 보드(cheaker board)이며, 테두리에 사전 설정된 값보다 높은 인텐시티(intensity)를 갖는 재질로 형성되는 테두리 식별 영역 및 상기 테두리 영역의 최상부에 위치하여 사전 설정된 값보다 낮은 인텐시티를 갖는 재질로 형성되는 탑 포인트 식별 영역이 형성될 수 있다.
예를 들어, 캘리브레이션 보드는 체커 보드의 테두리를 따라 사전 설정된 값보다 높은 인텐시티(intensity)를 갖는 재질로 형성되는 고휘도 테이프가 부착되어 테두리 식별 영역이 형성될 수 있다. 이때, 캘리브레이션 보드의 최상부에 위치한 고휘도 테이프의 일부가 제거되어 탑 포인트 식별 영역이 형성될 수 있다.
구체적으로, 제1 캘리브레이션부(215)는 카메라에 의해 촬영된 이미지에서 캘리브레이션 보드의 사이즈 및 개수를 기초로 코너(corner)를 식별할 수 있다. 예를 들어, 제1 캘리브레이션부(215)는 캘리브레이션 보드와 대응되는 소스 체커보드 이미지, 체커보드 행과 열당 내부 코너의 수 및 감지된 코너의 출력 배열을 통해 이미지 상의 캘리브레이션 보드를 추출하고, 추출된 캘리브레이션 보드의 코너를 식별할 수 있다.
이때, 제1 캘리브레이션부(215)는 캘리브레이션 보드의 최상부 또는 최하부에 위치한 특징점을 기준으로 사전 설정된 패턴으로 코너(corner)에 해당하는 점을 식별하여 인덱스(index)를 부여할 수 있다.
예를 들어, 제1 캘리브레이션부(215)는 캘리브레이션 보드의 최상부에 위치한 특징점을 기준으로 오른쪽 아래로 번호가 늘어가는 방식으로 인덱스를 부여하거나, 캘리브레이션 보드의 최하부에 위치한 특징점을 기준으로 왼쪽 위로 늘어가는 방식으로 인덱스를 부여할 수 있다.
또한, 제1 캘리브레이션부(215)는 캘리브레이션 보드에서 인텐시티가 상대적으로 높은 테두리 식별 영역을 기준으로 점군 데이터에서 캘리브레이션 보드를 검출하고, 검출된 캘리브레이션 보드 내에서 특징점을 식별할 수 있다.
구체적으로, 제1 캘리브레이션부(215)는 테두리 식별 영역에 포함된 점군을 기준으로 가상면(virtual plane)을 생성하고, 생성된 가상면에서 채널별로 가장 외곽에 위치한 점들을 연결하여 복수의 직선을 생성할 수 있다. 또한, 제1 캘리브레이션부(215)는 생성된 복수의 직선들의 교점을 기준으로 캘리브레이션 보드의 꼭지점을 검출하고, 검출된 꼭지점을 기준으로 캘리브레이션 보드의 특징점을 식별할 수 있다.
즉, 제1 캘리브레이션부(215)는 캘리브레이션 보드에 포함된 4개의 꼭지점을 식별하고, 사전 저장된 캘리브레이션 보드의 사이즈 및 개수를 기초로 캘리브레이션 보드의 특징점을 식별할 수 있다. 여기서, 점군 데이터에서 식별된 캘리브레이션 보드의 특징점은 이미지에서 식별된 특징점과 대응될 수 있다.
여기서, 제1 캘리브레이션부(215)는 캘리브레이션 보드의 탑 포인트 식별 영역을 기초로, 라이다로부터 식별된 특징점에 앞서 식별된 이미지로부터 식별된 특징점의 인덱스를 매칭할 수 있다.
그리고, 제1 캘리브레이션부(215)는 이미지 및 점군 데이터 각각으로부터 식별된 특징점을 기초로 카메라 및 라이다의 캘리브레이션을 수행할 수 있다.
구체적으로, 제1 캘리브레이션부(215)는 이미지 및 점군 데이터 각각에 포함된 캘리브레이션 보드의 특징점을 기초로 회전(rotation) 값 및 변환(translation) 값을 포함하는 외부 파라미터를 산출하고, 산출된 외부 파라미터를 기준으로 캘리브레이션을 수행할 수 있다.
이때, 제1 캘리브레이션부(215)는 회전 값 및 변환 값을 개별적으로 산출할 수 있다. 바람직하게, 제1 캘리브레이션부(215)는 회전 값을 산출한 후에 변환 값을 산출할 수 있다.
먼저, 회전 값은 제1 뷰 포인트에서 제2 뷰 포인트로의 회전 값으로 정의했을 때 하기의 수학식을 통해 산출될 수 있다.
[수학식]
(여기서, R은 회전 값, f,f’는 상기 제1 뷰 포인트 및 상기 제2 뷰 포인트에서 상기 점군 데이터에 포함된 캘리브레이션 보드의 특징점까지의 레이(ray)를 의미한다.)
변환 값은 RPE(Re-Projection Error)를 기초로 한 손실 함수를 통해 산출될 수 있다. 여기서 RPE는 이미지에서 관측된 점에 대하여, 점이 이미지에 프로젝션 되어 왜곡(distortion)된 정도를 의미할 수 있다.
다음 구성으로, 제2 캘리브레이션부(220)는 라이다로부터 획득된 점군 데이터에 포함된 특정 객체의 형상에 따른 특징을 이용하여 라이다 및 관성측정장치의 캘리브레이션을 수행할 수 있다.
구체적으로, 제2 캘리브레이션부(220)는 사전 정의되는 월드 좌표계 상에 차량에 탑재된 라이다(liar)로부터 획득된 점군 데이터(point cloud)를 배치할 수 있다.
이때, 제2 캘리브레이션부(220)는 점군 데이터와 동시에 획득된 GPS(Global Positioning System: GPS) 및 관성 측정장치(Inertial Measurement Unit: IMU) 중 적어도 하나로부터 측정된 위치 정보를 통해 월드 좌표계를 정의할 수 있다.
다음으로, 제2 캘리브레이션부(220)는 배치된 점군 데이터 중 캘리브레이션에 사용될 영역을 추출할 수 있다.
구체적으로, 제2 캘리브레이션부(220)는 라이다가 탑재된 차량의 이동 경로 중 GPS 데이터의 오차를 나타내는 헤딩 표준 편차(heading standard deviation)가 사전 설정된 값보다 낮은 궤적을 추출하고, 추출된 궤적 내에서 차량의 진행 방향이 서로 반대인 궤적이 동시에 포함된 구간을 추출할 수 있다.
일반적으로, GPS 데이터는 GPS, 관성측정장치(IMU), 거리계(DMI, Distance Measurement Instrument), 기지국(base station) 정보 등의 여러 데이터를 이용하여 후처리 된 데이터이다. GPS 데이터는 다른 데이터를 이용하여 후처리 된 후에도 반사도가 높은 물질로 구성된 높은 건물과 같은 객체들의 영향을 받아 오차가 발생되는 경우가 있다.
한편, 캘리브레이션은 GPS 데이터의 오차가 가장 낮은 위치에서 진행되어야 정확도를 높일 수 있다. 이에 따라, 제2 캘리브레이션부(220)는 전체 구간에서 캘리브레이션에 이용할 수 있는 가장 적절할 경로를 추출할 수 있다.
한편, 하기의 표 1은 GPS 데이터의 구성을 나타낸 표이다.
변수 내용 단위
TIME 시간 Sec
Easting IMU World x m
Northing IMU World y m
Up IMU World z m
Roll IMU roll degree
Pitch IMU pitch degree
Heading True north direction degree
EastVel World x velocity m/s
NorthVel World y velocity m/s
UpVel World z velocity m/s
EastSD World x standard deviation m
NorthSD World y standard deviation m
UpSD World z standard deviation m
RollSD IMU roll standard deviation degree
PitchSD IMU pitch standard deviation degree
HeadingSD IMU north standard deviation degree
xAngVel Roll velocity degree/s
yAngVel Pitch velocity degree/s
zAngVel Heading velocity degree/s
표 1을 참조하면, 진북을 나타내는 헤딩 값이 틀어지면, 캘리브레이션에 이용될 객체의 점군 형상이 무너지게 된다. 이에 따라, 제2 캘리브레이션부(220)는 헤딩 표준 편차가 사전 설정된 값보다 낮은 궤적을 추출할 수 있다.
또한, 헤딩 표준 편차가 사전 설정된 값보다 낮은 궤적 중에서도 차량이 한쪽 방향으로 진행한 구간을 대상으로 캘리브레이션을 수행하게 되면, 기울기에 대해서는 고려되지 않기 때문에 생성된 지도가 틀어질 수 있다. 이에 따라, 제2 캘리브레이션부(220)는 추출된 궤적 내에서 차량의 진행 방향이 서로 반대인 궤적이 동시에 포함된 구간을 추출할 수 있다.
예를 들어, 제2 캘리브레이션부(220)는 헤딩 표준 편차를 10-quantile으로 생성하고, 헤딩 표준 편차의 하위 10%의 궤적을 추출하고, 일정 크기의 슬라이딩 윈도우(sliding window)를 구동하면서 2개 이상의 분리되어 있는 궤적이 윈도우 안에 들어가는지 아닌지를 체크할 수 있다. 이때, 2개 이상의 궤적이 윈도우 안에 존재한다면, 각 궤적의 평균 헤딩 값을 계산하여 서로 방향이 반대인 궤적이 존재하는지 판단하고, 존재한다면 해당 구역을 캘리브레이션을 위한 적절한 궤적으로 판단할 수 있다.
다음으로, 제2 캘리브레이션부(220)는 추출된 영역에 포함된 적어도 하나의 객체를 식별할 수 있다.
한편, 캘리브레이션에 이용할 객체로는 x축, y축 및 z축을 모두 고려할 수 있는 구(sphere) 형상이 가장 적합하다고 할 수 있다. 즉, 구 형상은 어느 방향이든 틀어짐을 식별할 수 있다. 그러나, 현실에서는 구 형상의 객체가 상대적으로 적게 존재한다.
다른 방법으로, 벽을 기준으로 캘리브레이션을 수행하는 경우에는 벽과 수직한 방향에 대해서는 캘리브레이션이 가능하지만, 벽과 수평 한 방향에 대해서는 캘리브레이션이 어렵기 때문에 서로 평행한 둘 이상의 벽을 이용해야만 수평 방향에 대한 캘리브레이션을 수행할 수 있다.
따라서, 제2 캘리브레이션부(220)는 현실에서 상대적으로 많이 존재하며, 수평 피팅이 가능한 원통형의 객체를 캘리브레이션에 이용한다. 즉, 제2 캘리브레이션부(220)는 배치된 점군 데이터 중 수평 피팅을 위한 원통형의 객체를 식별할 수 있다. 예를 들어, 원통형 객체로는 가로등, 전봇대, 신호등 등이 해당될 수 있다.
또한, 제2 캘리브레이션부(220)는 배치된 점군 데이터 중 수직 피팅을 위한 지면을 식별할 수 있다. 이때, 제2 캘리브레이션부(220)는 추출된 구간의 중간 지점을 기준으로 사전 설정된 크기의 영역을 추출하여 지면으로 인식할 수 있다. 즉, 제2 캘리브레이션부(220)는 데이터 수집 장치(100)를 탑재한 차량이 도로위를 달린다는 가정 하에, 추출한 궤적의 중간지점으로부터 x축 및 y축을 기준으로 사전 설정된 크기의 영역을 지면으로 추출할 수 있다.
다음으로, 제2 캘리브레이션부(220)는 식별된 적어도 하나의 객체에 포함된 점군을 사전 저장된 모델(model)에 피팅(fitting)하여 점군 데이터에 대한 캘리브레이션을 수행할 수 있다.
구체적으로, 제2 캘리브레이션부(220)는 원통형 객체에 대응되는 사전 저장된 실린더 모델(cylinder model)에 피팅 된 인라이어 점군(inlier points)의 개수를 상기 원통형 객체에 포함된 점군의 개수로 나눈 값을 상기 원통형 객체에 대한 손실(loss)로 산출할 수 있다.
또한, 제2 캘리브레이션부(220)는 지면에 대응되는 사전 저장된 지면 모델에 피팅 된 인라이어 점군의 개수를 지면에 포함된 점군의 개수로 나눈 값을 지면에 대한 손실(loss)로 산출할 수 있다.
제2 캘리브레이션부(220)는 원통형 객체에 대한 손실 및 지면에 대한 손실을 기초로 구성된 손실 함수를 통해 점군 데이터에 대한 캘리브레이션을 수행할 수 있다.
즉, 제2 캘리브레이션부(220)는 하기의 코드와 같이 손실 함수를 구성할 수 있다.
double loss = (-1) * pole_loss + (-1) * ground_loss
(여기서, pole_loss는 객체에 대한 손실을 의미하고, ground_loss는 지면에 대한 손실을 의미한다.)
여기서, 식별된 객체에 대한 점군의 개수를 n이라고 가정하고, 실린더 모델을 이용하여 RANSAC 알고리즘을 적용하였을 때, 피팅 된 실린더 모델의 인라이어 개수를 i개라고 한다면, 하기의 코드를 통해 객체에 대한 손실을 산출할 수 있다.
pole_loss = i/n
또한, 식별된 지면에 대한 점군의 개수를 n이라고 가정하고, 지면 모델을 이용하여 RANSAC 알고리즘을 적용하였을 때, 피팅된 지면 모델의 인라이어 개수를 i개라고 한다면 하기의 코드를 통해 지면에 대한 손실을 산출할 수 있다.
ground_loss = i/n
한편, z축만을 고려하는 수직 피팅과 대비하여, x축 및 y축을 모두 고려하는 수평 피팅이 손실이 불균형하게 산출되는 문제점이 발생될 수 있다. 이러한, 손실의 불균형은 캘리브레이션 과정에서 지면을 먼저 맞추고 손실이 이미 떨어진 상태에서 다른 곳으로 이동하기 보다는 로컬 미니멈(local minimum)의 근처에서 서치(search)를 하기 때문에 정답으로 수렴하기 어려워질 수 있다.
이에 따라, 제2 캘리브레이션부(220)는 원통형 객체에 대한 손실 및 지면에 대한 손실 사이의 비율(ratio)에 대한 손실을 손실 함수에 추가할 수 있다.
한편, 원통형 객체에 대한 손실 및 지면에 대한 손실 사이의 비율(ratio)에 대한 손실은 하기의 코드를 통해 산출할 수 있다.
double ratio_loss;
if(pole_loss > ground_loss)
ratio_loss = ground_loss / pole_loss;
else // pole_loss < ground_loss
ratio_loss = pole_loss / ground_loss;
최종적으로, 제2 캘리브레이션부(220)는 하기의 코드와 같이 손실 함수를 구성할 수 있다.
double lambda = 0.5;
double loss = (-1) * pole_loss + (-1) * ground_loss + (-1) * ratio_loss * lambda;
여기서, 0.5의 λ는 객체에 대한 손실 및 지면에 대한 손실이 같은 값일 경우 더 이상 손실이 내려가지 않는 문제점을 해결할 수 있다.
그리고, 제2 캘리브레이션부(220)는 손실 함수를 이용하여 입자 군집 최적화(Particle Swarm Optimization, PSO)를 통해 점군 데이터에 대한 캘리브레이션을 수행할 수 있다.
예를 들어, 입자 군집 최적화는 하기와 같은 코드로 구성될 수 있다.
또한, 제2 캘리브레이션부(220)는 식별된 객체의 점군에 대한 분산을 이용하여 최적화하는 방식으로 손실 함수를 구성할 수도 있다.
구체적으로, 제2 캘리브레이션부(220)는 식별된 적어도 하나의 객체를 옥트리(octree)로 구성하고, 구성된 옥트리의 각 잎 노드(leaf node)의 분산 가중(variance summation)을 손실로 이용하여 점군 데이터에 대한 캘리브레이션을 수행할 수 있다.
이때, 제2 캘리브레이션부(220)는 점군 데이터의 z축의 길이를 분산 가중 손실에 추가하여 손실 함수를 구성하고, 손실 함수를 기초로 점군 데이터에 대한 캘리브레이션을 수행할 수 있다. 이를 통해, 제2 캘리브레이션부(220)는 지면 피팅에 대한 연속적(continuous)이고, 랜덤(random)성이 제거된 손실 함수를 구성할 수 있다.
다음 구성으로, 제3 캘리브레이션부(225)는 복수개의 라이다들 간의 캘리브레이션을 수행할 수 있다.
먼저, 제3 캘리브레이션부(225)는 기준맵을 생성하기 위하여 제1 라이다(lidar)로부터 획득된 제1 점군(point cloud) 데이터, 기준맵 상의 경로를 주행하는 차량에 탑재된 복수개의 제2 라이다들로부터 획득된 복수개의 제2 점군 데이터들 및 제1 라이다 및 복수개의 제2 라이다들에 대한 제원 값을 획득할 수 있다.
예를 들어, 제1 라이다는 지도를 생성하기 위한 라이다가 될 수 있으며, 복수개의 제2 라이다들은 생성된 지도를 업데이트 하기 위하여 지도 상의 경로를 이동하는 차량에 탑재된 라이다가 될 수 있다. 여기서, 복수개의 제2 라이다들은 차량의 전측방에 대한 점군 데이터를 획득하는 라이다, 차량의 후측방에 대한 점군 데이터를 획득하는 라이다, 차량의 루프에 설치되어 360도 점군 데이터를 획득하는 라이다가 될 수 있다.
다음으로, 제3 캘리브레이션부(225)는 제1 점군 데이터 및 복수개의 제2 점군 데이터들에 대한 전처리를 수행할 수 있다.
구체적으로, 제3 캘리브레이션부(225)는 제1 점군 데이터 및 복수개의 제2 점군 데이터들을 복셀화(voxelization)할 수 있다. 이를 통해, 제3 캘리브레이션부(225)는 제1 라이다 및 복수개의 제2 라이들 중 하나 간의 포인트 수 차이를 줄이고 노이즈를 제거할 수 있다.
또한, 제3 캘리브레이션부(225)는 제1 점군 데이터 및 복수개의 제2 점군 데이터들에서 점들 간의 거리(distance)를 기준으로 평균과 표준 편차를 산출하고, 사전 설정된 값보다 편차가 큰 점을 아웃라이어(outlier)로 정의하여 전처리를 수행할 수 있다.
한편, 기준맵을 생성하기 위한 라이다와, 차량에 탑재된 라이다 간의 캘리브레이션을 진행하기 때문에, 기준맵 상에 존재하지 않는 차량이나 사람 등에 해당하는 점군은 캘리브레이션의 오류를 가져올 수 있다.
이에 따라, 제3 캘리브레이션부(225)는 복수개의 제2 점군 데이터들에서 지면을 검출하고, 검출된 지면을 기준으로 사전 설정된 값의 높이를 가지는 객체를 제거할 수 있다. 즉, 제3 캘리브레이션부(225)는 지면으로부터의 높이를 기준으로 차량, 사람 등의 객체를 식별하여 삭제하는 전처리를 수행할 수 있다.
또한, 후술할 NDT 매칭에 사용되는 일치도 스코어는 복수개의 제2 점군 데이터들 중 하나의 각 점과, 제1 점군 데이터에서 가장 가까운 한 점을 대응시킨 후 그 거리가 일정 값보다 작은 점들의 거리 평균을 의미할 수 있다. 이에 따라, 복수개의 제2 라이다들의 z축 값의 오차를 줄이기 위해서는 지면의 비중이 벽과 기둥만큼 커야 한다.
이에 따라, 제3 캘리브레이션부(225)는 복수개의 제2 점군 데이터들에서 지면을 검출하고, 지면으로 검출된 점군을 면(plane)으로 근사시킨 후 지면으로 검출된 점군 사이에 추가점을 보간(interpolation)할 수 있다.
다음으로, 제3 캘리브레이션부(225)는 전처리 수행된 제1 점군 데이터 및 복수개의 제2 점군 데이터들에 대한 캘리브레이션을 수행할 수 있다.
구체적으로, 제3 캘리브레이션부(225)는 멀티 스레드(multi thread)를 통해 복수의 제2 라이다들에 대한 캘리브레이션을 동시에 수행할 수 있다.
캘리브레이션을 위하여 제3 캘리브레이션부(225)는 제1 점군 데이터 및 복수개의 제2 점군 데이터들 각각에 대하여 NDT 매칭(normal distribution transform maching)을 수행할 수 있다. 이때, 제3 캘리브레이션부(225)는 제1 라이다 및 복수개의 제2 라이다들 각각의 제원 값을 초기 포즈(pose)로 지정하여 캘리브레이션을 수행할 수 있다.
여기서, NDT 매칭은 점군 데이터 간의 매칭을 통해 변환행렬을 계산하는 알고리즘으로, 제1 점군 데이터 및 복수개의 제2 점군 데이터들 각각이 겹칠 때 각 점들의 오차를 정규분포로 계산해 최소화할 수 있다. 즉, NDT 알고리즘은 제1 점군 데이터를 기준으로 복수개의 제2 점군 데이터들 각각을 정합하는 알고리즘으로, 제1 점군 데이터를 일정한 크기의 그리드로 나누고, 그리드 안에 있는 점군들을 정규 분포(normal distribution)로 근사시킨 후, 복수개의 제2 점군 데이터들 각각의 각 점들이 그리드 안에 있을 확률을 높이는 방향으로 회전(rotation) 값 및 변환(translation) 값을 최적화할 수 있다.
제3 캘리브레이션부(225)는 NDT 매칭을 진행하는 과정에서 복셀(voxel)간의 평균과 공분산의 오차를 합한 값인 일치도 스코어(fitness score)를 이용하여 제1 점군 데이터 및 복수개의 제2 점군 데이터들 간의 정합을 판단할 수 있다. 여기서, 일치도 스코어는 NDT 매칭 결과 포즈로 변환된 복수개의 제2 점군 데이터들 중 하나의 각 점과, 제1 점군 데이터에서 가장 가까운 한 점을 대응시킨 후 그 거리가 일정 값보다 작은 점들의 거리 평균을 의미할 수 있다. 이때, 제3 캘리브레이션부(225)는 일치도 스코어가 사전 설정된 값보다 낮아 지는 시점의 포즈를 추출할 수 있다. 제3 캘리브레이션부(225)는 NDT 매칭이 완료된 시점의 일치도 스코어를 사전 설정된 값과 비교하여 캘리브레이션을 검증할 수 있다.
또한, 제3 캘리브레이션부(225)는 복수개의 제2 점군 데이터들 각각에 관심 영역(ROI, Region Of Interest)을 지정하여 제1 점군 데이터와 NDT 매칭을 수행할 수 있다. 이때, 제3 캘리브레이션부(225)는 제1 점군 데이터의 좌표계를 기준으로 복수개의 제2 점군 데이터들 각각에 관심 영역을 지정하되, 복수개의 제2 라이다들 각각의 제원 값을 이용하여 제1 점군 데이터 및 복수개의 제2 점군 데이터들의 좌표계를 정렬한 후 관심 영역을 지정할 수 있다. 제3 캘리브레이션부(225)는 지정된 관심 영역의 일치도 스코어를 이용하여 제1 점군 데이터 및 복수개의 제2 점군 데이터들 간의 정합을 판단할 수 있다. 이때, 제3 캘리브레이션부(225)는 일치도 스코어가 사전 설정된 값보다 낮아 지는 시점의 포즈를 추출할 수 있다. 예를 들어, 제3 캘리브레이션부(225)는 작업자로부터 움직임이 없을 것으로 예상되는 지역을 관심 영역으로 선택받을 수 있다.
여기서, 제3 캘리브레이션부(225)는 복수개의 제2 점군 데이터들 각각의 요(yaw) 값을 사전 설정된 각도로 변경하면서 NDT 매칭을 수행하여 일치도 스코어가 사전 설정된 값보다 낮아 지는 시점의 포즈를 추출하고, 추출된 포즈를 NDT 매칭의 초기 포즈로 재입력할 수 있다.
예를 들어, 제3 캘리브레이션부(225)는 복수개의 제2 라이다들 중 하나의 요 값을 0.1°씩 ±3°범위 내로 변경하며 NDT 매칭을 수행할 수 있으며, 최소 일치도 스코어 및 해당 일치도 시점의 포즈를 얻을 수 있다. 이때, 제3 캘리브레이션부(225)는 최소 일치도 스코어 및 해당 일치도 시점의 포즈를 다시 NDT 매칭 초기 포즈로 입력할 수 있으며, NDT 매칭을 반복하여 포즈가 수렴하면 해당 시점의 포즈를 결과로 채택할 수 있다.
다음 구성으로, 지도 생성부(230)는 라이다에 의해 획득된 점군 데이터에 카메라에 의해 촬영된 이미지의 특징점을 매핑하여 특징 지도를 생성할 수 있다.
이를 위해, 지도 생성부(230)는 라이다(lidar)로부터 획득된 점군 데이터(point cloud) 및 카메라(camera)로부터 촬영된 이미지(image)를 기초로 제1 특징 지도를 생성할 수 있다.
구체적으로, 지도 생성부(230)는 차량에 탑재되어 점군 데이터를 획득하는 라이다 및 라이다와 동일한 위치에 설치되는 카메라를 통해 점군 데이터 및 상기 이미지를 획득할 수 있다.
지도 생성부(230)는 획득된 이미지에서 특징점을 추출하고, 추출된 특징점으로 구성된 제1 특징 지도를 생성할 수 있다. 여기서, 지도 생성부(230)는 이미지에 포함된 각 픽셀(pixel)로부터 사전 설정된 범위 이내에 존재하는 픽셀들에 대한 밝기의 연속성을 기초로 특징점을 추출할 수 있다.
즉, 지도 생성부(230)는 이미지에 포함된 특정 픽셀보다 일정값 이상 밝을 픽셀들이 n개 이상 연속되어 있거나 일정값 이상 어두운 픽셀들이 n개 이상 연속되어 있으면 특정 픽셀을 코너점으로 판단할 수 있다.
이를 위해, 지도 생성부(230)는 판단 트리(decision tree)를 이용하여 코너점 여부를 판단할 수 있다. 즉, 지도 생성부(230)는 픽셀의 밝기 값을 특정 픽셀보다 훨씬 어두운 경우, 특정 필셀과 유사한 경우의 3가지 값으로 분류하고, 이를 이용하여 원주상의 픽셀들의 밝기분포를 16차원의 3진수 벡터(ternary vector)로 표현할 수 있다. 지도 생성부(230)는 표현된 3진수 벡터를 판단 트리에 입력하여 코너점 여부를 분류할 수 있다.
또한, 지도 생성부(230)는 이미지를 사전 설정된 스케일로 단계적으로 축소 및 블러링(blurring)을 적용시키고, DoG(Difference of Gaussian) 함수를 통해 이미지에 포함된 윤곽선 및 코너를 추출하고, 추출된 상기 윤곽선 및 코너로 구성된 이미지 내의 각 픽셀에 대한 극대값 및 극소값에 대한 픽셀들을 추출하고, 추출된 극대값 및 극소값을 갖는 픽셀들을 특징점으로 추출할 수 있다.
또한, 지도 생성부(230)는 이미지에 포함된 각 픽셀을 중심으로 윈도우(window)를 설정하고, 설정된 윈도우를 사전 살정된 방향 및 거리만큼 이동시켜 코너(corner)를 검출할 수 있다. 예를 들어, 지도 생성부(230)는 각 픽셀 위치에 대해 윈도우를 수직, 수평, 좌대각선, 우대각선 4개 방향으로 1픽셀씩 이동시켰을 때의 영상 변화량을 계산하고, 영상 변화량의 최소값을 해당 픽셀의 영상 변화량 값으로 설정하고, 설정된 최소 값이 지역적으로 극대가 되는 지점을 코너점으로 분류할 수 있다.
결과적으로, 지도 생성부(230)는 밝기의 연속성을 기초로 추출된 특징점 중 검출된 코너에 위치한 특징점을 기초로 특징점 지도를 생성할 수 있다. 즉, 지도 생성부(230)는 이미지에서 추출한 특징점만으로 구성된 제1 특징 지도를 생성할 수 있다.
다음으로, 지도 생성부(230)는 사전 저장된 점군 데이터를 통해 생성된 제2 특징 지도에 제1 특징 지도를 매핑(mapping)하여 제3 특징 지도를 생성할 수 있다.
구체적으로, 지도 생성부(230)는 제1 특징 지도 생성을 위한 이미지와 동시에 획득된 점군 데이터의 위치 정보 및 포즈 정보를 기초로 제1 특징 지도를 제2 특징 지도에 매핑할 수 있다.
한편, 제2 특징 지도는 제1 특징 지도를 생성하기 위한 이미지 및 점군 데이터를 획득하기 위한 장비와, 동일한 장비에 의해 획득된 점군 데이터를 이용하여 작성된 점군 지도가 될 수 있다.
이에 따라, 지도 생성부(230)는 제1 특징 지도를 제2 특징 지도에 매핑하는데 있어서 포즈 최적화 과정을 생략할 수 있다. 이로 인해, 지도 생성부(230)는 특징점만으로 생성된 경량화 된 특징 지도를 생성할 수 있을 뿐만 아니라, 빠른 속도로 제3 특징 지도를 생성할 수 있다.
또한, 지도 생성부(230)는 제3 특징 지도를 생성한 이후에 위치 추정을 위한 적어도 하나의 이미지를 실시간 수신할 수 있다.
지도 생성부(230)는 수신된 적어도 하나의 이미지를 실시간 분석하여 특징점을 추출할 수 있다. 여기서, 지도 생성부(230)는 상술한 제1 특징 지도를 생성하기 위하여 특징점을 추출하는 방식과 동일한 방식으로 이미지에서 특징점을 추출할 수 있다.
그리고, 지도 생성부(230)는 추출된 특징점을 제3 특징 지도와 매칭하여 실시간 수신되는 이미지 상의 위치를 추정할 수 있다. 이때, 지도 생성부(230)는 실시간 수신된 적어도 하나의 이미지의 특징점 및 제3 특징 지도의 특징점에 관한 정보를 기초로 데이터 수집 장치의 카메라의 포즈(pose)를 추정할 수 있다. 예를 들어, 지도 생성부(230)는 pnpsolver 함수를 통해 이미지 상의 현재 위치 및 포즈를 산출할 수 있다. 즉, 지도 생성부(230)는 실시간 수신된 이미지의 특징점들과 제3 특징 지도 상의 특징점을 기초로 실시간 수신된 이미지를 촬영하는 카메라의 위치 및 포즈를 추정할 수 있다.
또한, 지도 생성부(230)는 적어도 하나의 이미지 중 제1 이미지에 대한 위치 추정에 실패한 경우, 이전 위치 추정에 성공한 이미지인 제2 이미지의 포즈를 기반으로 제1 이미지의 위치를 추정할 수 있다. 즉, 지도 생성부(230)는 위치 추정에 실패한 이미지에 대하여 이전 촬영된 이미지의 위치 및 포즈를 기반으로 위치 추정에 실패한 이미지의 위치를 예측할 수 있다.
한편, 실시간 수신된 적어도 하나의 이미지는 카메라 및 관성측정장치가 설치된 단말기에 의해 촬영된 이미지가 될 수 있다.
이때, 지도 생성부(230)는 제2 이미지의 포즈를 기준으로 관성측정장치에 의해 측정된 포즈를 반영하여 제1 이미지의 위치를 추정함으로써, 위치 추정에 실패한 이미지에 대한 위치 및 포즈 추정에 대한 정확성을 높일 수 있다.
도 3은 본 발명의 일 실시예에 따른 데이터 생성 장치의 하드웨어 구성도이다.
도 3을 참조하면, 데이터 생성 장치(200)는 프로세서(Processor, 250), 메모리(Memory, 255), 송수신기(Transceiver, 260), 입출력장치(Input/output device, 265), 데이터 버스(Bus, 270) 및 스토리지(Storage, 275)를 포함하여 구성될 수 있다.
프로세서(250)는 메모리(255)에 상주된 소프트웨어(280a)에 따른 명령어를 기초로, 데이터 생성 장치(200)의 동작 및 기능을 구현할 수 있다. 메모리(255)에는 본 발명에 따른 방법이 구현된 소프트웨어(280a)가 상주(loading)될 수 있다. 송수신기(260)는 데이터 수집 장치(100) 및 데이터 가공 장치(300)와 데이터를 송수신할 수 있다.
입출력장치(265)는 데이터 생성 장치(200)의 동작에 필요한 데이터를 입력 받고, 생성된 결과 값을 출력할 수 있다. 데이터 버스(270)는 프로세서(250), 메모리(255), 송수신기(260), 입출력장치(265) 및 스토리지(275)와 연결되어, 각각의 구성 요소 사이가 서로 데이터를 전달하기 위한 이동 통로의 역할을 수행할 수 있다.
스토리지(275)는 본 발명에 다른 방법이 구현된 소프트웨어(280a)의 실행을 위해 필요한 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API), 라이브러리(library) 파일, 리소스(resource) 파일 등을 저장할 수 있다. 스토리지(275)는 본 발명에 따른 방법이 구현된 소프트웨어(280b)를 저장할 수 있다. 또한, 스토리지(275)는 캘리브레이션 방법 및 지도 생성 방법의 수행에 필요한 정보들을 저장할 수 있다. 특히, 스토리지(275)는 캘리브레이션 방법 및 지도 생성 방법을 수행하기 위한 프로그램을 저장하는 데이터베이스(285)를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 메모리(255)에 상주되거나 또는 스토리지(275)에 저장된 소프트웨어(280a, 280b)는 프로세서(250)가 카메라(camera)에 의해 촬영된 이미지 및 라이다(lidar)에 의해 획득된 점군 데이터 각각에서 캘리브레이션 보드(calibration board)를 추출하는 단계, 프로세서(250)가, 이미지 및 점군 데이터 각각에 포함된 캘리브레이션 보드의 특징점을 식별하는 단계 및 프로세서(250)가, 식별된 특징점을 기초로 카메라 및 라이다의 캘리브레이션을 수행하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.
본 발명의 다른 실시예에 따르면, 메모리(255)에 상주되거나 또는 스토리지(275)에 저장된 소프트웨어(280a, 280b)는 프로세서(250)가 사전 정의되는 월드 좌표계 상에 차량에 탑재된 라이다(lidar)로부터 획득된 점군 데이터(point cloud)를 배치하는 단계, 프로세서(250)가, 배치된 점군 데이터 중 캘리브레이션(calibration)에 사용될 영역을 추출하는 단계, 프로세서(250)가, 추출된 영역에 포함된 적어도 하나의 객체를 식별하는 단계 및 프로세서(250)가, 식별된 적어도 하나의 객체에 포함된 점군을 사전 저장된 모델(model)에 피팅(fitting)하여 점군 데이터에 대한 캘리브레이션을 수행하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.
본 발명의 다른 실시예에 따르면, 메모리(255)에 상주되거나 또는 스토리지(275)에 저장된 소프트웨어(280a, 280b)는 프로세서(250)가 기준맵을 생성하기 위하여 제1 라이다(lidar)로부터 획득된 제1 점군(point cloud) 데이터, 기준맵 상의 경로를 주행하는 차량에 탑재된 복수개의 제2 라이다들로부터 획득된 복수개의 제2 점군 데이터들 및 제1 라이다 및 복수개의 제2 라이다들에 대한 제원 값을 획득하는 단계, 프로세서(250)가, 제1 점군 데이터 및 복수개의 제2 점군 데이터들에 대한 전처리를 수행하는 단계 및 프로세서(250)가, 전처리 된 제1 점군 데이터 및 복수개의 제2 점군 데이터들에 대한 캘리브레이션을 수행하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.
본 발명의 또 다른 실시예에 따르면, 메모리(255)에 상주되거나 또는 스토리지(275)에 저장된 소프트웨어(280a, 280b)는 프로세서(250)가 라이다(lidar)로부터 획득된 점군 데이터(point cloud) 및 카메라(camera)로부터 촬영된 이미지(image)를 기초로 제1 특징 지도를 생성하는 단계 및 프로세서(250)가, 사전 저장된 점군 데이터를 통해 생성된 제2 특징 지도에 제1 특징 지도를 매핑(mapping)하여 제3 특징 지도를 생성하는 단계를 실행시키기 위하여, 기록매체에 기록된 컴퓨터 프로그램이 될 수 있다.
보다 구체적으로, 프로세서(250)는 ASIC(Application-Specific Integrated Circuit), 다른 칩셋(chipset), 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다. 메모리(255)는 ROM(Read-Only Memory), RAM(Random Access Memory), 플래쉬 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 장치를 포함할 수 있다. 송수신기(260)는 유무선 신호를 처리하기 위한 베이스밴드 회로를 포함할 수 있다. 입출력장치(265)는 키보드(keyboard), 마우스(mouse), 및/또는 조이스틱(joystick) 등과 같은 입력 장치 및 액정표시장치(Liquid Crystal Display, LCD), 유기 발광 다이오드(Organic LED, OLED) 및/또는 능동형 유기 발광 다이오드(Active Matrix OLED, AMOLED) 등과 같은 영상 출력 장치 프린터(printer), 플로터(plotter) 등과 같은 인쇄 장치를 포함할 수 있다.
본 명세서에 포함된 실시 예가 소프트웨어로 구현될 경우, 상술한 방법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리(255)에 상주되고, 프로세서(250)에 의해 실행될 수 있다. 메모리(255)는 프로세서(250)의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서(250)와 연결될 수 있다.
도 3에 도시된 각 구성요소는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한, 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
도 4는 본 발명의 일 실시예에 따른 카메라 및 라이다의 캘리브레이션 방법을 설명하기 위한 순서도이다.
도 4를 참조하면, 먼저 S110 단계에서 데이터 생성 장치는 카메라에 의해 촬영된 이미지 및 라이다에 의해 획득된 점군 데이터 각각에 대한 하나의 프레임을 추출할 수 있다. 이때, 추출된 이미지 및 라이다에 대한 각 프레임은 캘리브레이션 보드(calibration board)를 포함할 수 있다.
다음으로, S120 단계에서 데이터 생성 장치는 추출된 이미지 및 라이다 각각에 대한 하나의 프레임에 포함된 캘리브레이션 보드에 대한 특징점을 식별할 수 있다.
여기서, 캘리브레이션 보드는 직사각형의 체커 보드(cheaker board)이며, 테두리에 사전 설정된 값보다 높은 인텐시티(intensity)를 갖는 재질로 형성되는 테두리 식별 영역 및 상기 테두리 영역의 최상부에 위치하여 사전 설정된 값보다 낮은 인텐시티를 갖는 재질로 형성되는 탑 포인트 식별 영역이 형성될 수 있다.
구체적으로, 데이터 생성 장치는 카메라에 의해 촬영된 이미지에서 캘리브레이션 보드의 사이즈 및 개수를 기초로 코너(corner)를 식별할 수 있다.
이때, 데이터 생성 장치는 캘리브레이션 보드의 최상부 또는 최하부에 위치한 특징점을 기준으로 사전 설정된 패턴으로 코너(corner)에 해당하는 점을 식별하여 인덱스(index)를 부여할 수 있다.
또한, 데이터 생성 장치는 캘리브레이션 보드에서 인텐시티가 상대적으로 높은 테두리 식별 영역을 기준으로 점군 데이터에서 캘리브레이션 보드를 검출하고, 검출된 캘리브레이션 보드 내에서 특징점을 식별할 수 있다.
구체적으로, 데이터 생성 장치는 테두리 식별 영역에 포함된 점군을 기준으로 가상면(virtual plane)을 생성하고, 생성된 가상면에서 채널별로 가장 외곽에 위치한 점들을 연결하여 복수의 직선을 생성할 수 있다. 또한, 데이터 생성 장치는 생성된 복수의 직선들의 교점을 기준으로 캘리브레이션 보드의 꼭지점을 검출하고, 검출된 꼭지점을 기준으로 캘리브레이션 보드의 특징점을 식별할 수 있다.
즉, 데이터 생성 장치는 캘리브레이션 보드에 포함된 4개의 꼭지점을 식별하고, 사전 저장된 캘리브레이션 보드의 사이즈 및 개수를 기초로 캘리브레이션 보드의 특징점을 식별할 수 있다. 여기서, 점군 데이터에서 식별된 캘리브레이션 보드의 특징점은 이미지에서 식별된 특징점과 대응될 수 있다.
여기서, 데이터 생성 장치는 캘리브레이션 보드의 탑 포인트 식별 영역을 기초로, 라이다로부터 식별된 특징점에 앞서 식별된 이미지로부터 식별된 특징점의 인덱스를 매칭할 수 있다.
그리고, S130 단계에서 데이터 생성 장치는 이미지 및 점군 데이터 각각으로부터 식별된 특징점을 기초로 카메라 및 라이다의 캘리브레이션을 수행할 수 있다.
구체적으로, 데이터 생성 장치는 이미지 및 점군 데이터 각각에 포함된 캘리브레이션 보드의 특징점을 기초로 회전(rotation) 값 및 변환(translation) 값을 포함하는 외부 파라미터를 산출하고, 산출된 외부 파라미터를 기준으로 캘리브레이션을 수행할 수 있다.
이때, 데이터 생성 장치는 회전 값 및 변환 값을 개별적으로 산출할 수 있다. 바람직하게, 데이터 생성 장치는 회전 값을 산출한 후에 변환 값을 산출할 수 있다.
먼저, 회전 값은 제1 뷰 포인트에서 제2 뷰 포인트로의 회전 값으로 정의했을 때 하기의 수학식을 통해 산출될 수 있다.
[수학식]
(여기서, R은 회전 값, f,f’는 상기 제1 뷰 포인트 및 상기 제2 뷰 포인트에서 상기 점군 데이터에 포함된 캘리브레이션 보드의 특징점까지의 레이(ray)를 의미한다.)
변환 값은 RPE(Re-Projection Error)를 기초로 한 손실 함수를 통해 산출될 수 있다. 여기서 RPE는 이미지에서 관측된 점에 대하여, 점이 이미지에 프로젝션 되어 왜곡(distortion)된 정도를 의미할 수 있다.
도 5는 본 발명의 일 실시예에 따른 라이다 및 관성측정장치의 캘리브레이션 방법을 설명하기 위한 순서도이다.
도 5를 참조하면, 먼저 S210 단계에서 데이터 생성 장치는 사전 정의되는 월드 좌표계 상에 차량에 탑재된 라이다(liar)로부터 획득된 점군 데이터(point cloud)를 배치할 수 있다.
이때, 데이터 생성 장치는 점군 데이터와 동시에 획득된 GPS(Global Positioning System: GPS) 및 관성 측정장치(Inertial Measurement Unit: IMU) 중 적어도 하나로부터 측정된 위치 정보를 통해 월드 좌표계를 정의할 수 있다.
다음으로, S220 단계에서 데이터 생성 장치는 배치된 점군 데이터 중 캘리브레이션에 사용될 영역을 추출할 수 있다.
구체적으로, 데이터 생성 장치는 라이다가 탑재된 차량의 이동 경로 중 GPS 데이터의 오차를 나타내는 헤딩 표준 편차(heading standard deviation)가 사전 설정된 값보다 낮은 궤적을 추출하고, 추출된 궤적 내에서 차량의 진행 방향이 서로 반대인 궤적이 동시에 포함된 구간을 추출할 수 있다.
다음으로, S230 단계에서 데이터 생성 장치는 추출된 영역에 포함된 적어도 하나의 객체를 식별할 수 있다.
구체적으로, 데이터 생성 장치는 배치된 점군 데이터 중 수평 피팅을 위한 원통형의 객체를 식별할 수 있다. 예를 들어, 원통형 객체로는 가로등, 전봇대, 신호등 등이 해당될 수 있다.
또한, 데이터 생성 장치는 배치된 점군 데이터 중 수직 피팅을 위한 지면을 식별할 수 있다. 이때, 데이터 생성 장치는 추출된 구간의 중간 지점을 기준으로 사전 설정된 크기의 영역을 추출하여 지면으로 인식할 수 있다.
다음으로, S230 단계에서 데이터 생성 장치는 식별된 적어도 하나의 객체에 포함된 점군을 사전 저장된 모델(model)에 피팅(fitting)하여 점군 데이터에 대한 캘리브레이션을 수행할 수 있다.
구체적으로, 데이터 생성 장치는 원통형 객체에 대응되는 사전 저장된 실린더 모델(cylinder model)에 피팅 된 인라이어 점군(inlier points)의 개수를 상기 원통형 객체에 포함된 점군의 개수로 나눈 값을 상기 원통형 객체에 대한 손실(loss)로 산출할 수 있다.
또한, 데이터 생성 장치는 지면에 대응되는 사전 저장된 지면 모델에 피팅 된 인라이어 점군의 개수를 지면에 포함된 점군의 개수로 나눈 값을 지면에 대한 손실(loss)로 산출할 수 있다.
데이터 생성 장치는 원통형 객체에 대한 손실 및 지면에 대한 손실을 기초로 구성된 손실 함수를 통해 점군 데이터에 대한 캘리브레이션을 수행할 수 있다.
즉, 데이터 생성 장치는 하기의 코드와 같이 손실 함수를 구성할 수 있다.
double loss = (-1) * pole_loss + (-1) * ground_loss
(여기서, pole_loss는 객체에 대한 손실을 의미하고, ground_loss는 지면에 대한 손실을 의미한다.)
여기서, 식별된 객체에 대한 점군의 개수를 n이라고 가정하고, 실린더 모델을 이용하여 RANSAC 알고리즘을 적용하였을 때, 피팅 된 실린더 모델의 인라이어 개수를 i개라고 한다면, 하기의 코드를 통해 객체에 대한 손실을 산출할 수 있다.
pole_loss = i/n
또한, 식별된 지면에 대한 점군의 개수를 n이라고 가정하고, 지면 모델을 이용하여 RANSAC 알고리즘을 적용하였을 때, 피팅된 지면 모델의 인라이어 개수를 i개라고 한다면 하기의 코드를 통해 지면에 대한 손실을 산출할 수 있다.
ground_loss = i/n
한편, z축만을 고려하는 수직 피팅과 대비하여, x축 및 y축을 모두 고려하는 수평 피팅이 손실이 불균형하게 산출되는 문제점이 발생될 수 있다. 이러한, 손실의 불균형은 캘리브레이션 과정에서 지면을 먼저 맞추고 손실이 이미 떨어진 상태에서 다른 곳으로 이동하기 보다는 로컬 미니멈(local minimum)의 근처에서 서치(search)를 하기 때문에 정답으로 수렴하기 어려워질 수 있다.
이에 따라, 데이터 생성 장치는 원통형 객체에 대한 손실 및 지면에 대한 손실 사이의 비율(ratio)에 대한 손실을 손실 함수에 추가할 수 있다.
한편, 원통형 객체에 대한 손실 및 지면에 대한 손실 사이의 비율(ratio)에 대한 손실은 하기의 코드를 통해 산출할 수 있다.
double ratio_loss;
if(pole_loss > ground_loss)
ratio_loss = ground_loss / pole_loss;
else // pole_loss < ground_loss
ratio_loss = pole_loss / ground_loss;
최종적으로, 데이터 생성 장치는 하기의 코드와 같이 손실 함수를 구성할 수 있다.
double lambda = 0.5;
double loss = (-1) * pole_loss + (-1) * ground_loss + (-1) * ratio_loss * lambda;
여기서, 0.5의 λ는 객체에 대한 손실 및 지면에 대한 손실이 같은 값일 경우 더 이상 손실이 내려가지 않는 문제점을 해결할 수 있다.
그리고, S240 단계에서 데이터 생성 장치는 손실 함수를 이용하여 입자 군집 최적화(Particle Swarm Optimization, PSO)를 통해 점군 데이터에 대한 캘리브레이션을 수행할 수 있다.
또한, 데이터 생성 장치는 식별된 객체의 점군에 대한 분산을 이용하여 최적화하는 방식으로 손실 함수를 구성할 수도 있다.
구체적으로, 데이터 생성 장치는 식별된 적어도 하나의 객체를 옥트리(octree)로 구성하고, 구성된 옥트리의 각 잎 노드(leaf node)의 분산 가중(variance summation)을 손실로 이용하여 점군 데이터에 대한 캘리브레이션을 수행할 수 있다.
이때, 데이터 생성 장치는 점군 데이터의 z축의 길이를 분산 가중 손실에 추가하여 손실 함수를 구성하고, 손실 함수를 기초로 점군 데이터에 대한 캘리브레이션을 수행할 수 있다. 이를 통해, 제2 캘리브레이션부(220)는 지면 피팅에 대한 연속적(continuous)이고, 랜덤(random)성이 제거된 손실 함수를 구성할 수 있다.
도 6은 본 발명의 일 실시예에 따른 복수개의 라이다들의 캘리브레이션 방법을 설명하기 위한 순서도이다.
도 6을 참조하면, 먼저 S310 단계에서 데이터 생성 장치는 기준맵을 생성하기 위하여 제1 라이다(lidar)로부터 획득된 제1 점군(point cloud) 데이터, 기준맵 상의 경로를 주행하는 차량에 탑재된 복수개의 제2 라이다들로부터 획득된 복수개의 제2 점군 데이터들 및 제1 라이다 및 복수개의 제2 라이다들에 대한 제원 값을 획득할 수 있다.
다음으로, S320 단계에서 데이터 생성 장치는 제1 점군 데이터 및 복수개의 제2 점군 데이터들에 대한 전처리를 수행할 수 있다.
구체적으로, 데이터 생성 장치는 제1 점군 데이터 및 복수개의 제2 점군 데이터들을 복셀화(voxelization)할 수 있다. 이를 통해, 제3 캘리브레이션부(225)는 제1 라이다 및 복수개의 제2 라이들 중 하나 간의 포인트 수 차이를 줄이고 노이즈를 제거할 수 있다.
또한, 데이터 생성 장치는 제1 점군 데이터 및 복수개의 제2 점군 데이터들에서 점들 간의 거리(distance)를 기준으로 평균과 표준 편차를 산출하고, 사전 설정된 값보다 편차가 큰 점을 아웃라이어(outlier)로 정의하여 전처리를 수행할 수 있다.
또한, 데이터 생성 장치는 복수개의 제2 점군 데이터들에서 지면을 검출하고, 검출된 지면을 기준으로 사전 설정된 값의 높이를 가지는 객체를 제거할 수 있다. 즉, 데이터 생성 장치는 지면으로부터의 높이를 기준으로 차량, 사람 등의 객체를 식별하여 삭제하는 전처리를 수행할 수 있다.
또한, 데이터 생성 장치는 복수개의 제2 점군 데이터들에서 지면을 검출하고, 지면으로 검출된 점군을 면(plane)으로 근사시킨 후 지면으로 검출된 점군 사이에 추가점을 보간(interpolation)할 수 있다.
다음으로, S330 단계에서 데이터 생성 장치는 전처리 수행된 제1 점군 데이터 및 복수개의 제2 점군 데이터들에 대한 캘리브레이션을 수행할 수 있다.
구체적으로, 데이터 생성 장치는 멀티 스레드(multi thread)를 통해 복수의 제2 라이다들에 대한 캘리브레이션을 동시에 수행할 수 있다.
캘리브레이션을 위하여 데이터 생성 장치는 제1 점군 데이터 및 복수개의 제2 점군 데이터들 각각에 대하여 NDT 매칭(normal distribution transform maching)을 수행할 수 있다. 이때, 데이터 생성 장치는 제1 라이다 및 복수개의 제2 라이다들 각각의 제원 값을 초기 포즈(pose)로 지정하여 캘리브레이션을 수행할 수 있다.
데이터 생성 장치는 NDT 매칭을 진행하는 과정에서 복셀(voxel)간의 평균과 공분산의 오차를 합한 값인 일치도 스코어(fitness score)를 이용하여 제1 점군 데이터 및 복수개의 제2 점군 데이터들 간의 정합을 판단할 수 있다. 이때, 데이터 생성 장치는 일치도 스코어가 사전 설정된 값보다 낮아 지는 시점의 포즈를 추출할 수 있다. 데이터 생성 장치는 NDT 매칭이 완료된 시점의 일치도 스코어를 사전 설정된 값과 비교하여 캘리브레이션을 검증할 수 있다.
또한, 데이터 생성 장치는 복수개의 제2 점군 데이터들 각각에 관심 영역(ROI, Region Of Interest)을 지정하여 제1 점군 데이터와 NDT 매칭을 수행할 수 있다. 이때, 데이터 생성 장치는 제1 점군 데이터의 좌표계를 기준으로 복수개의 제2 점군 데이터들 각각에 관심 영역을 지정하되, 복수개의 제2 라이다들 각각의 제원 값을 이용하여 제1 점군 데이터 및 복수개의 제2 점군 데이터들의 좌표계를 정렬한 후 관심 영역을 지정할 수 있다. 데이터 생성 장치는 지정된 관심 영역의 일치도 스코어를 이용하여 제1 점군 데이터 및 복수개의 제2 점군 데이터들 간의 정합을 판단할 수 있다. 이때, 데이터 생성 장치는 일치도 스코어가 사전 설정된 값보다 낮아 지는 시점의 포즈를 추출할 수 있다.
여기서, 데이터 생성 장치는 복수개의 제2 점군 데이터들 각각의 요(yaw) 값을 사전 설정된 각도로 변경하면서 NDT 매칭을 수행하여 일치도 스코어가 사전 설정된 값보다 낮아 지는 시점의 포즈를 추출하고, 추출된 포즈를 NDT 매칭의 초기 포즈로 재입력할 수 있다.
도 7은 본 발명의 일 실시예에 따른 시각적 매핑 방법을 설명하기 위한 순서도이다.
도 7을 참조하면, 먼저 S410 단계에서 데이터 생성 장치는 라이다에 의해 획득된 점군 데이터에 카메라에 의해 촬영된 이미지의 특징점을 매핑하여 특징 지도를 생성할 수 있다.
이를 위해, 데이터 생성 장치는 라이다(lidar)로부터 획득된 점군 데이터(point cloud) 및 카메라(camera)로부터 촬영된 이미지(image)를 기초로 제1 특징 지도를 생성할 수 있다.
구체적으로, 데이터 생성 장치는 차량에 탑재되어 점군 데이터를 획득하는 라이다 및 라이다와 동일한 위치에 설치되는 카메라를 통해 점군 데이터 및 상기 이미지를 획득할 수 있다.
데이터 생성 장치는 획득된 이미지에서 특징점을 추출하고, 추출된 특징점으로 구성된 제1 특징 지도를 생성할 수 있다. 여기서, 데이터 생성 장치는 이미지에 포함된 각 픽셀(pixel)로부터 사전 설정된 범위 이내에 존재하는 픽셀들에 대한 밝기의 연속성을 기초로 특징점을 추출할 수 있다.
즉, 데이터 생성 장치는 이미지에 포함된 특정 픽셀보다 일정값 이상 밝을 픽셀들이 n개 이상 연속되어 있거나 일정값 이상 어두운 픽셀들이 n개 이상 연속되어 있으면 특정 픽셀을 코너점으로 판단할 수 있다.
이를 위해, 데이터 생성 장치는 판단 트리(decision tree)를 이용하여 코너점 여부를 판단할 수 있다. 즉, 데이터 생성 장치는 픽셀의 밝기 값을 특정 픽셀보다 훨씬 어두운 경우, 특정 필셀과 유사한 경우의 3가지 값으로 분류하고, 이를 이용하여 원주상의 픽셀들의 밝기분포를 16차원의 3진수 벡터(ternary vector)로 표현할 수 있다. 데이터 생성 장치는 표현된 3진수 벡터를 판단 트리에 입력하여 코너점 여부를 분류할 수 있다.
또한, 데이터 생성 장치는 이미지를 사전 설정된 스케일로 단계적으로 축소 및 블러링(blurring)을 적용시키고, DoG(Difference of Gaussian) 함수를 통해 이미지에 포함된 윤곽선 및 코너를 추출하고, 추출된 상기 윤곽선 및 코너로 구성된 이미지 내의 각 픽셀에 대한 극대값 및 극소값에 대한 픽셀들을 추출하고, 추출된 극대값 및 극소값을 갖는 픽셀들을 특징점으로 추출할 수 있다.
또한, 데이터 생성 장치는 이미지에 포함된 각 픽셀을 중심으로 윈도우(window)를 설정하고, 설정된 윈도우를 사전 살정된 방향 및 거리만큼 이동시켜 코너(corner)를 검출할 수 있다.
결과적으로, 데이터 생성 장치는 밝기의 연속성을 기초로 추출된 특징점 중 검출된 코너에 위치한 특징점을 기초로 특징점 지도를 생성할 수 있다. 즉, 데이터 생성 장치는 이미지에서 추출한 특징점만으로 구성된 제1 특징 지도를 생성할 수 있다.
다음으로, 데이터 생성 장치는 사전 저장된 점군 데이터를 통해 생성된 제2 특징 지도에 제1 특징 지도를 매핑(mapping)하여 제3 특징 지도를 생성할 수 있다.
구체적으로, 데이터 생성 장치는 제1 특징 지도 생성을 위한 이미지와 동시에 획득된 점군 데이터의 위치 정보 및 포즈 정보를 기초로 제1 특징 지도를 제2 특징 지도에 매핑할 수 있다.
한편, 제2 특징 지도는 제1 특징 지도를 생성하기 위한 이미지 및 점군 데이터를 획득하기 위한 장비와, 동일한 장비에 의해 획득된 점군 데이터를 이용하여 작성된 점군 지도가 될 수 있다.
이에 따라, 데이터 생성 장치는 제1 특징 지도를 제2 특징 지도에 매핑하는데 있어서 포즈 최적화 과정을 생략할 수 있다. 이로 인해, 데이터 생성 장치는 특징점만으로 생성된 경량화 된 특징 지도를 생성할 수 있을 뿐만 아니라, 빠른 속도로 제3 특징 지도를 생성할 수 있다.
다음으로, S420 단계에서 데이터 생성 장치는 제3 특징 지도를 생성한 이후에 위치 추정을 위한 적어도 하나의 이미지를 실시간 수신할 수 있다.
다음으로, S430 단계에서 데이터 생성 장치는 수신된 적어도 하나의 이미지를 실시간 분석하여 특징점을 추출할 수 있다. 여기서, 데이터 생성 장치는 상술한 제1 특징 지도를 생성하기 위하여 특징점을 추출하는 방식과 동일한 방식으로 이미지에서 특징점을 추출할 수 있다.
그리고, S440 단계에서 데이터 생성 장치는 추출된 특징점을 제3 특징 지도와 매칭하여 실시간 수신되는 이미지 상의 위치를 추정할 수 있다. 이때, 데이터 생성 장치는 실시간 수신된 적어도 하나의 이미지의 특징점 및 제3 특징 지도의 특징점에 관한 정보를 기초로 데이터 수집 장치의 카메라의 포즈(pose)를 추정할 수 있다.
또한, 데이터 생성 장치는 적어도 하나의 이미지 중 제1 이미지에 대한 위치 추정에 실패한 경우, 이전 위치 추정에 성공한 이미지인 제2 이미지의 포즈를 기반으로 제1 이미지의 위치를 추정할 수 있다. 즉, 데이터 생성 장치는 위치 추정에 실패한 이미지에 대하여 이전 촬영된 이미지의 위치 및 포즈를 기반으로 위치 추정에 실패한 이미지의 위치를 예측할 수 있다.
한편, 실시간 수신된 적어도 하나의 이미지는 카메라 및 관성측정장치가 설치된 단말기에 의해 촬영된 이미지가 될 수 있다.
이때, 데이터 생성 장치는 제2 이미지의 포즈를 기준으로 관성측정장치에 의해 측정된 포즈를 반영하여 제1 이미지의 위치를 추정함으로써, 위치 추정에 실패한 이미지에 대한 위치 및 포즈 추정에 대한 정확성을 높일 수 있다.
도 8 내지 도 11은 본 발명의 일 실시예에 따른 카메라 및 라이다의 캘리브레이션 방법을 설명하기 위한 예시도이다.
도 8에 도시된 바와 같이, 캘리브레이션 보드는 테두리에 사전 설정된 값보다 높은 인텐시티(intensity)를 갖는 재질로 형성되는 테두리 식별 영역(a) 및 테두리 식별 영역(a)의 최상부에 위치하여 사전 설정된 값보다 낮은 인텐시티를 갖는 재질로 형성되는 탑 포인트 식별 영역(b)이 형성될 수 있다.
예를 들어, 캘리브레이션 보드는 체커 보드의 테두리를 따라 사전 설정된 값보다 높은 인텐시티(intensity)를 갖는 재질로 형성되는 고휘도 테이프가 부착되어 테두리 식별 영역(a)이 형성될 수 있다. 이때, 캘리브레이션 보드의 최상부에 위치한 고휘도 테이프의 일부가 제거되어 탑 포인트 식별 영역(b)이 형성될 수 있다.
한편, 점군 데이터에 포함된 캘리브레이션 보드 외곽의 점들은 모두 한 평면안에 존재하지만 실제로는 라이다의 노이즈 때문에, 정확히 한 평면 안에 존재하지 못한다.
이에 따라, 데이터 생성 장치는 도 9에 도시된 바와 같이, 라이다로부터 획득된 점군 데이터에서 특징점을 추출하기 위하여, 테두리 식별 영역에 포함된 점군을 기준으로 가상면(virtual plane)을 생성할 수 있다.
이후, 데이터 생성 장치는 도 10에 도시된 바와 같이, 생성된 가상면에서 채널별로 가장 외곽에 위치한 점들을 연결하여 복수의 직선을 생성할 수 있다. 즉, 데이터 생성 장치는 라이다의 채널별로 가장 바깥에 위치하는 점들을 이어서 4개의 직선(line 1, line 2, line 3 및 line 4)을 구할 수 있다.
그리고, 데이터 생성 장치는 도 11에 도시된 바와 같이, 생성된 복수의 직선들의 교점을 기준으로 캘리브레이션 보드의 꼭지점(pt1, pt2, pt3 및 pt4)을 검출하고, 검출된 꼭지점을 기준으로 캘리브레이션 보드의 특징점을 식별할 수 있다.
즉, 데이터 생성 장치는 캘리브레이션 보드에 포함된 4개의 꼭지점을 식별하고, 사전 저장된 캘리브레이션 보드의 사이즈 및 개수를 기초로 캘리브레이션 보드의 특징점을 식별할 수 있다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 라이다 및 관성측정장치의 캘리브레이션 방법을 설명하기 위한 순서도이다.
일반적으로, 라이다와 관성측정장치 간의 캘리브레이션은 작업자가 특정 툴을 이용하여 수동으로 수행하고 있다.
이때, 라이다와 카메라의 경우에는 2차원 이미지에 라이다를 오버레이(overray)하여 보기 때문에, 회전 값을 바꿀 때 라이다 포인트들이 어떤 방향으로 움직이는지 작업자가 직관적으로 확인할 수 있다.
반면에, 라이다와 관성측정장치의 경우에는 3차원에서 결과를 확인해야하기 때문에 수동 작업을 위해서는 지도의 방향을 변경하고 확대하며 확인하는 방법 밖에 존재하지 않았따. 또한, 회전 값을 바꿀 때 변경된 회전 값을 이용한 지도가 어떻게 바뀔지 인지하기 쉽지 않다.
또한, 라이다와 관성측정장치의 경우에는 도 12의 (a)에 도시된 바와 같이 눈에 띌 정도로 오차가 심한 구간도 존재하기 때문에 정확한 정답을 내릴 수 없어서 작업자가 캘리브레이션의 정도를 판단해야 한다.
이에 따라, 데이터 생성 장치는 도 13의 (a)에 도시된 바와 같이, 라이다로부터 획득된 점군 데이터에 포함된 특정 객체의 형상에 따른 특징을 이용하여 라이다 및 관성측정장치의 캘리브레이션을 수행할 수 있다.
도 14 및 도 15는 본 발명의 일 실시예에 따른 복수개의 라이다들의 캘리브레이션 방법을 설명하기 위한 예시도이다.
한편, 도 14는 전처리 되기 전 제2 점군 데이터를 나타낸 도면이고, 도 15는 전처리 된 후 제2 점군 데이터를 나타낸 도면이다.
도 14 및 도 15를 참조하면, 기준맵을 생성하기 위한 라이다와, 차량에 탑재된 라이다 간의 캘리브레이션을 진행하기 때문에, 기준맵 상에 존재하지 않는 차량이나 사람 등에 해당하는 점군은 캘리브레이션의 오류를 가져올 수 있다.
이에 따라, 데이터 생성 장치는 복수개의 제2 점군 데이터들에서 지면을 검출하고, 검출된 지면을 기준으로 사전 설정된 값의 높이를 가지는 객체를 제거할 수 있다. 즉, 제2 점군 데이터는 지면으로부터의 높이를 기준으로 차량, 사람 등의 객체를 식별하여 삭제하는 전처리를 수행할 수 있다.
또한, NDT 매칭에 사용되는 일치도 스코어는 복수개의 제2 점군 데이터들 중 하나의 각 점과, 제1 점군 데이터에서 가장 가까운 한 점을 대응시킨 후 그 거리가 일정 값보다 작은 점들의 거리 평균을 의미할 수 있다. 이에 따라, 복수개의 제2 라이다들의 z축 값의 오차를 줄이기 위해서는 지면의 비중이 벽과 기둥만큼 커야 한다.
이에 따라, 데이터 생성 장치는 복수개의 제2 점군 데이터들에서 지면을 검출하고, 지면으로 검출된 점군을 면(plane)으로 근사시킨 후 지면으로 검출된 점군 사이에 추가점을 보간(interpolation)할 수 있다.
도 16 및 도 17은 본 발명의 일 실시예에 따른 시각적 매핑 방법을 설명하기 위한 예시도이다.
한편, 도 16은 제1 특징 지도를 나타낸 도면이고, 도 17은 제1 특징 지도를 제2 특징 지도에 매핑한 제3 특징 지도를 나타낸 도면이다.
도 16에 도시된 바와 같이, 데이터 생성 장치는 밝기의 연속성을 기초로 추출된 특징점 중 검출된 코너에 위치한 특징점(feature point)을 기초로 특징점 지도를 생성할 수 있다. 즉, 데이터 생성 장치는 이미지에서 추출한 특징점만으로 구성된 제1 특징 지도를 생성할 수 있다.
다음으로, 데이터 생성 장치는 도 17에 도시된 바와 같이, 사전 저장된 점군 데이터(lidar point)를 통해 생성된 제2 특징 지도에 제1 특징 지도를 매핑(mapping)하여 제3 특징 지도를 생성할 수 있다.
구체적으로, 데이터 생성 장치는 제1 특징 지도 생성을 위한 이미지와 동시에 획득된 점군 데이터의 위치 정보 및 포즈 정보를 기초로 제1 특징 지도를 제2 특징 지도에 매핑할 수 있다.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으나, 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적해석에 의해 선정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
100 : 데이터 수집 장치 200 : 데이터 생성 장치
300 : 데이터 가공 장치
205 : 통신부 210 : 입출력부
215 : 제1 캘리브레이션부 220 : 제2 캘리브레이션부
225 : 제3 캘리브레이션부 230 : 지도 생성부

Claims (10)

  1. 데이터 생성 장치가, 카메라(camera)에 의해 촬영된 이미지(image) 및 라이다(lidar)에 의해 획득된 점군(point cloud) 데이터에 대한 각각 하나의 프레임을 추출하는 단계;
    상기 데이터 생성 장치가, 상기 추출된 이미지 및 라이다 각각의 하나의 프레임에 포함된 캘리브레이션 보드(calibration board)에 대한 특징점을 식별하는 단계; 및
    상기 데이터 생성 장치가, 상기 식별된 특징점을 기초로 상기 카메라 및 상기 라이다의 캘리브레이션을 수행하는 단계; 를 포함하는 것을 특징으로 하고,
    상기 캘리브레이션 보드는
    직사각형의 체커 보드(cheaker board)이며, 테두리에 사전 설정된 값보다 높은 인텐시티(intensity)를 갖는 재질로 형성되는 테두리 식별 영역 및 상기 테두리 영역의 최상부에 위치하여 사전 설정된 값보다 낮은 인텐시티를 갖는 재질로 형성되는 탑 포인트 식별 영역이 형성된 것을 특징으로 하며,
    상기 특징점을 식별하는 단계는
    상기 이미지에서 상기 캘리브레이션 보드의 사이즈 및 개수를 기초로 코너(corner)를 식별하는 것을 특징으로 하고,
    상기 특징점을 식별하는 단계는
    상기 캘리브레이션 보드의 최상부 또는 최하부에 위치한 특징점을 기준으로 사전 설정된 패턴으로 코너(corner)에 해당하는 점을 식별하여 인덱스(index)를 부여하는 것을 특징으로 하며,
    상기 특징점을 식별하는 단계는
    상기 캘리브레이션 보드의 최상부에 위치한 특징점을 기준으로 오른쪽 아래로 번호가 늘어가는 방식으로 인덱스를 부여하거나, 캘리브레이션 보드의 최하부에 위치한 특징점을 기준으로 왼쪽 위로 늘어가는 방식으로 인덱스를 부여하는 것을 특징으로 하고,
    상기 캘리브레이션 하는 단계는
    상기 이미지 및 상기 점군 데이터 각각에 포함된 캘리브레이션 보드의 특징점을 기초로, 회전(rotation) 값 및 변환(translation) 값을 포함하는 외부 파라미터를 산출하고, 상기 산출된 외부 파라미터를 기준으로 캘리브레이션을 수행하는 것을 특징으로 하며,
    상기 캘리브레이션 하는 단계는
    상기 회전 값 및 상기 변환 값을 개별적으로 산출하는 것을 특징으로 하고,
    상기 회전 값은
    제1 뷰 포인트에서 제2 뷰 포인트로의 회전 값으로 정의했을 때 하기의 수학식을 통해 산출되는 것을 특징으로 하는, 캘리브레이션 방법.
    [수학식]

    (여기서, R은 회전 값, f,f’는 상기 제1 뷰 포인트 및 상기 제2 뷰 포인트에서 상기 점군 데이터에 포함된 캘리브레이션 보드의 특징점까지의 레이(ray)를 의미한다.)
  2. 제1 항에 있어서,
    상기 특징점을 식별하는 단계는
    상기 캘리브레이션 보드의 탑 포인트 식별 영역을 기초로, 상기 라이다로부터 식별된 특징점에 상기 이미지로부터 식별된 특징점의 인덱스를 매칭하는 것을 특징으로 하는, 캘리브레이션 방법.
  3. 제1 항에 있어서, 상기 특징점을 식별하는 단계는
    상기 데이터 생성 장치가, 상기 테두리 식별 영역을 기준으로 상기 점군 데이터에서 상기 캘리브레이션 보드를 검출하고, 상기 검출된 캘리브레이션 보드 내에서 특징점을 식별하는 것을 특징으로 하는, 캘리브레이션 방법.
  4. 제3 항에 있어서, 상기 특징점을 식별하는 단계는
    상기 데이터 생성 장치가, 상기 테두리 식별 영역에 포함된 점군을 기준으로 가상면(virtual plane)을 생성하는 단계;
    상기 데이터 생성 장치가, 상기 생성된 가상면에서 채널별로 가장 외곽에 위치한 점들을 연결하여 복수의 직선을 생성하는 단계;
    상기 데이터 생성 장치가, 생성된 복수의 직선들의 교점을 기준으로 상기 캘리브레이션 보드의 꼭지점을 검출하는 단계; 및
    상기 데이터 생성 장치가, 상기 검출된 꼭지점을 기준으로 상기 캘리브레이션 보드의 특징점을 식별하는 단계; 를 포함하는 것을 특징으로 하는, 캘리브레이션 방법.
  5. 제4 항에 있어서, 상기 특징점을 식별하는 단계는
    상기 검출된 꼭지점, 상기 캘리브레이션 보드의 사이즈 및 개수를 기초로 상기 캘리브레이션 보드의 특징점을 식별하는 것을 특징으로 하는, 캘리브레이션 방법.
  6. 제1 항에 있어서, 상기 캘리브레이션 하는 단계는
    상기 변환 값은 RPE(Re-Projection Error)를 기초로 한 손실 함수를 통해 산출하는 것을 특징으로 하는, 캘리브레이션 방법.
  7. 메모리(memory);
    송수신기(transceiver); 및
    상기 메모리에 상주된 명령어를 처리하는 프로세서(processor)를 포함하여 구성된 컴퓨팅 장치와 결합되어,
    상기 프로세서가, 카메라(camera)에 의해 촬영된 이미지(image) 및 라이다(lidar)에 의해 획득된 점군(point cloud) 데이터 각각에서 캘리브레이션 보드(calibration board)를 추출하는 단계;
    상기 프로세서가, 상기 이미지 및 상기 점군 데이터 각각에 포함된 캘리브레이션 보드의 특징점을 식별하는 단계; 및
    상기 프로세서가, 상기 식별된 특징점을 기초로 상기 카메라 및 상기 라이다의 캘리브레이션을 수행하는 단계; 를 포함하여 실행시키되,
    상기 캘리브레이션 보드는
    직사각형의 체커 보드(cheaker board)이며, 테두리에 사전 설정된 값보다 높은 인텐시티(intensity)를 갖는 재질로 형성되는 테두리 식별 영역 및 상기 테두리 영역의 최상부에 위치하여 사전 설정된 값보다 낮은 인텐시티를 갖는 재질로 형성되는 탑 포인트 식별 영역이 형성된 것을 특징으로 하고,
    상기 특징점을 식별하는 단계는
    상기 이미지에서 상기 캘리브레이션 보드의 사이즈 및 개수를 기초로 코너(corner)를 식별하는 것을 특징으로 하며,
    상기 특징점을 식별하는 단계는
    상기 캘리브레이션 보드의 최상부 또는 최하부에 위치한 특징점을 기준으로 사전 설정된 패턴으로 코너(corner)에 해당하는 점을 식별하여 인덱스(index)를 부여하는 것을 특징으로 하고,
    상기 특징점을 식별하는 단계는
    상기 캘리브레이션 보드의 최상부에 위치한 특징점을 기준으로 오른쪽 아래로 번호가 늘어가는 방식으로 인덱스를 부여하거나, 캘리브레이션 보드의 최하부에 위치한 특징점을 기준으로 왼쪽 위로 늘어가는 방식으로 인덱스를 부여하는 것을 특징으로 하며,
    상기 캘리브레이션 하는 단계는
    상기 이미지 및 상기 점군 데이터 각각에 포함된 캘리브레이션 보드의 특징점을 기초로, 회전(rotation) 값 및 변환(translation) 값을 포함하는 외부 파라미터를 산출하고, 상기 산출된 외부 파라미터를 기준으로 캘리브레이션을 수행하는 것을 특징으로 하고,
    상기 캘리브레이션 하는 단계는
    상기 회전 값 및 상기 변환 값을 개별적으로 산출하는 것을 특징으로 하며,
    상기 회전 값은
    제1 뷰 포인트에서 제2 뷰 포인트로의 회전 값으로 정의했을 때 하기의 수학식을 통해 산출되는 것을 특징으로 하는, 기록매체에 기록된 컴퓨터 프로그램.
    [수학식]

    (여기서, R은 회전 값, f,f’는 상기 제1 뷰 포인트 및 상기 제2 뷰 포인트에서 상기 점군 데이터에 포함된 캘리브레이션 보드의 특징점까지의 레이(ray)를 의미한다.)
  8. 제7 항에 있어서,
    상기 특징점을 식별하는 단계는
    상기 캘리브레이션 보드의 탑 포인트 식별 영역을 기초로, 상기 라이다로부터 식별된 특징점에 상기 이미지로부터 식별된 특징점의 인덱스를 매칭하는 것을 특징으로 하는, 기록매체에 기록된 컴퓨터 프로그램.
  9. 제7 항에 있어서, 상기 특징점을 식별하는 단계는
    상기 프로세서가, 상기 테두리 식별 영역을 기준으로 상기 점군 데이터에서 상기 캘리브레이션 보드를 검출하고, 상기 검출된 캘리브레이션 보드 내에서 특징점을 식별하는 것을 특징으로 하는, 기록매체에 기록된 컴퓨터 프로그램.
  10. 제7 항에 있어서, 상기 캘리브레이션 하는 단계는
    상기 변환 값은 RPE(Re-Projection Error)를 기초로 한 손실 함수를 통해 산출하는 것을 특징으로 하는, 기록매체에 기록된 컴퓨터 프로그램.
KR1020230078771A 2023-06-20 2023-06-20 카메라 및 라이다의 캘리브레이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램 KR102626574B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230078771A KR102626574B1 (ko) 2023-06-20 2023-06-20 카메라 및 라이다의 캘리브레이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230078771A KR102626574B1 (ko) 2023-06-20 2023-06-20 카메라 및 라이다의 캘리브레이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR102626574B1 true KR102626574B1 (ko) 2024-01-22

Family

ID=89716378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230078771A KR102626574B1 (ko) 2023-06-20 2023-06-20 카메라 및 라이다의 캘리브레이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR102626574B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220017697A (ko) * 2020-08-05 2022-02-14 한국기술교육대학교 산학협력단 복수의 센서간 캘리브레이션 방법 및 장치
KR20220085186A (ko) 2020-12-15 2022-06-22 충북대학교 산학협력단 정밀지도를 이용한 라이다 센서 캘리브레이션 방법
KR20230003803A (ko) * 2021-06-30 2023-01-06 주식회사 모빌테크 라이다 좌표계와 카메라 좌표계의 벡터 정합을 통한 자동 캘리브레이션 방법
KR20230030955A (ko) * 2021-08-26 2023-03-07 한국로봇융합연구원 카메라-라이다 캘리브레이션 장치 및 방법
US20230115660A1 (en) * 2021-10-07 2023-04-13 Denso Corporation Method and system for automatic extrinsic calibration of spad lidar and camera pairs

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220017697A (ko) * 2020-08-05 2022-02-14 한국기술교육대학교 산학협력단 복수의 센서간 캘리브레이션 방법 및 장치
KR20220085186A (ko) 2020-12-15 2022-06-22 충북대학교 산학협력단 정밀지도를 이용한 라이다 센서 캘리브레이션 방법
KR20230003803A (ko) * 2021-06-30 2023-01-06 주식회사 모빌테크 라이다 좌표계와 카메라 좌표계의 벡터 정합을 통한 자동 캘리브레이션 방법
KR20230030955A (ko) * 2021-08-26 2023-03-07 한국로봇융합연구원 카메라-라이다 캘리브레이션 장치 및 방법
US20230115660A1 (en) * 2021-10-07 2023-04-13 Denso Corporation Method and system for automatic extrinsic calibration of spad lidar and camera pairs

Similar Documents

Publication Publication Date Title
CN111563442B (zh) 基于激光雷达的点云和相机图像数据融合的slam方法及系统
US20230054914A1 (en) Vehicle localization
CN113870343B (zh) 相对位姿标定方法、装置、计算机设备和存储介质
CN110008851B (zh) 一种车道线检测的方法及设备
US20190005667A1 (en) Ground Surface Estimation
KR102627453B1 (ko) 위치 추정 장치 및 방법
CN112346463B (zh) 一种基于速度采样的无人车路径规划方法
Levinson Automatic laser calibration, mapping, and localization for autonomous vehicles
CN110674705A (zh) 基于多线激光雷达的小型障碍物检测方法及装置
CN112781599A (zh) 确定车辆的位置的方法
CN114792338A (zh) 基于先验三维激光雷达点云地图的视觉融合定位方法
CN111754388B (zh) 一种建图方法及车载终端
KR102316818B1 (ko) 도로 네트워크를 갱신하는 방법 및 장치
KR102626574B1 (ko) 카메라 및 라이다의 캘리브레이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
Irmisch et al. Robust visual-inertial odometry in dynamic environments using semantic segmentation for feature selection
KR102675138B1 (ko) 복수개의 라이다들의 캘리브레이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
KR102616437B1 (ko) 라이다 및 관성측정장치의 캘리브레이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
KR102618951B1 (ko) 시각적 매핑 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
CN116643291A (zh) 一种视觉与激光雷达联合剔除动态目标的slam方法
WO2022021209A1 (zh) 电子地图生成方法、装置、计算机设备和存储介质
Lee et al. Semi-automatic framework for traffic landmark annotation
KR102540634B1 (ko) 프로젝션 기반 컬러맵 생성 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
KR102540629B1 (ko) 교통 시설물에 대한 학습 데이터 생성 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
KR102540636B1 (ko) 방향 정보를 포함한 지도 생성 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
KR102540624B1 (ko) 항공 라이다를 이용한 지도 생성 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램

Legal Events

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