KR102419101B1 - 비행체의 자율 비행을 위한 학습 데이터 생성 방법 및 그 장치 - Google Patents

비행체의 자율 비행을 위한 학습 데이터 생성 방법 및 그 장치 Download PDF

Info

Publication number
KR102419101B1
KR102419101B1 KR1020220001790A KR20220001790A KR102419101B1 KR 102419101 B1 KR102419101 B1 KR 102419101B1 KR 1020220001790 A KR1020220001790 A KR 1020220001790A KR 20220001790 A KR20220001790 A KR 20220001790A KR 102419101 B1 KR102419101 B1 KR 102419101B1
Authority
KR
South Korea
Prior art keywords
vehicle
image
electronic device
camera
reverse
Prior art date
Application number
KR1020220001790A
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 KR1020220001790A priority Critical patent/KR102419101B1/ko
Application granted granted Critical
Publication of KR102419101B1 publication Critical patent/KR102419101B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03BAPPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
    • G03B15/00Special procedures for taking photographs; Apparatus therefor
    • G03B15/006Apparatus mounted on flying objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • H04N5/247
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Traffic Control Systems (AREA)
  • Image Analysis (AREA)

Abstract

실시예들에 따른 학습 데이터 생성 방법은 비행체의 주행 중에 촬영된 이미지를 획득하는 단계; 상기 비행체가 회전한 회전 각도 및 상기 비행체가 이동한 이동 정도에 기초하여 상기 이미지에 대한 증강 이미지를 생성하는 단계; 상기 회전 각도 및 상기 이동 정도에 대응하는 하나 이상의 역-스티어링 정보를 생성하는 단계; 및 상기 증강 이미지 및 상기 하나 이상의 역-스티어링 파라미터들을 포함하는 학습 데이터를 생성하는 단계; 를 포함할 수 있다.

Description

비행체의 자율 비행을 위한 학습 데이터 생성 방법 및 그 장치 {METHOD FOR GENERATING TRAINING DATA FOR AUTONOMOUS FLIGHT AND APPARATUS FOR THE SAME}
본 발명은 비행체의 자율 비행을 위한 학습 데이터를 생성하는 방법 및 그 장치에 관한 것이다. 구체적으로 본 발명의 일 실시예는 비행체가 저고도 자율비행을 수행하기 위하여 자율 비행의 학습에 필요한 학습 데이터를 생성하는 방법으로, 3안 카메라를 사용한 데이터의 증강 방법의 예시들을 제안한다.
자율비행 기술은 현재 아주 각광받는 기술로서, 특히 저고도 자율비행은 사람의 시점 높이에서 관측, 탐지, 경계 또는 정찰 되어야 되는 환경을 전제로 이동하므로, 그 활용가능성이 높다. 자율비행 기술은 드론과 같은 소형 비행체에 적용할 수 있는 핵심 기술이며, 예를 들어 전시 실전 상황에서 정찰 대상의 정찰을 목적으로 무인 정찰용으로 활용되고 이동의 제한이 없어 그 활용 가치가 매우 크다.
최근에는 비행체의 자율 비행 기술이 딥러닝의 발전에 힘입어 더욱 발전하고 있으며, 최근에는 이미지를 인공신경망에 입력하여 바로 제어 명령(Steering, throttle)을 출력할 수 있도록 하는 End-to-End learning(이하 E2E라고 한다) 연구되고 있다. 예를 들어, 소형 드론의 경우 위성항법체계 수신이 불가한 지역(예를 들어, 건물내, 지하터널, 숲속 등) 과 같은 곳에서도 비행이 가능하며, 특히 학습 데이터를 보유한 코스대로 비행을 하는 정찰 업무의 경우에는 영상을 통한 E2E 학습으로 가능하다.
E2E방법에 따른 비행체의 제어는 기존의 제어 방법에 비해 다음과 같은 장점이 있다.
첫 번째로, 비행체의 성능이 각 단계에 해당하는 유닛에 대한 성능에 제한 받지 않고 인식에서 주행판단으로 직접 연결이 가능하여 더 나은 자율비행 성능을 가질 수 있다. 기존의 단계적 학습방법에서 인식 유닛의 출력이 정확하지 않을 경우, 해당 출력을 입력받는 판단 유닛, 제어 유닛 또한 출력이 부정확해진다.
두 번째로, 데이터 레이블링이 쉽다는 장점이 있다. 기존의 방법에서는 각 단계별 유닛을 학습시키기 위해서 서로 다른 레이블링 방법이 필요하다. 예를 들어, 인식 유닛에서는 이미지로부터 어떤 부분이 장애물이므로 충돌 회피를 해야 되는지 인식 해야 되고. 판단 유닛에서는 인식 유닛으로부터 출력된 결과로부터 정확한 판단방법(steering, throttle)을 레이블링 해야한다. 반면, 상술한 E2E방식의 경우 단순히 일반적인 비행을 하면서 각 프레임 별로 스티어링 및 스로틀 값을 기록하는 것만으로도 충분히 각 이미지에 대한 레이블링이 완성되므로 레이블링에 필요한 노력이 훨씬 적다. 자율 비행에서는 출돌을 회피 해야될 물체들이 자율 주행에 비해서 상대적으로 많고, 비행에서 충돌은 되돌릴 수 없는 수준의 심각한 파손을 야기 하니 이는 최우선적으로 지향되어야 될 숙제라는 점에서 E2E 방식이 장점을 가진다.
세 번째로 숙련자의 경험에 축적된 비행을 모은 데이터로 학습을 하게 되어 자율비행 모드 (추론 모드) 또한 이를 모방하게 되어 상황에 따라 필요시 가속 및 감속이 가능하므로, 유연하고 적응성 높은 운행을 보장할 수 있다. 앞서 말한 것과 같이 충돌을 회피하기 위하여 레이블링 되어야 될 물체가 많아질수록 인식해야 될 오브젝트가 많아진다. 이러한 구성은, 비행체 또는 제어 장치로 하여금 해당 오브젝트의 인식 자체도 느리게 할 뿐만 아니라, 비행체의 조작을 위한 판단 또한 순차적으로 느려지게 되는 문제점을 야기한다. 또, 이러한 구성은 제어 장치로 하여금 더 많은 계산을 요구하게 되어 필연적으로 차체 중량의 증가로 이어진다.
특히 소형 비행체의 경우 군사 작전에서 많이 활용되고 있다는 점, 군사 작전에서 투입되는 인력에 대체할 수 있는 무한한 활용 가능성이 있다는 점에서 연구가 활발히 이루어지고 있다. 그러나 상술한 문제점들은, 특히 군사 작전을 수행하는데 있어서 필요한 정찰 임무 또는 감시 임무에서, 작전 수행 상 큰 차질을 유발하게 될 수 있다. 특히 군사 작전의 경우 외부의 힘이 비행체에 가해지는 경우가 많아 손쉽게 경로가 이탈되는 상황이 발생할 수 있다는 점에서, 경로 이탈 시 빠른 복귀가 가능토록 한 기술이 시급한 상황이다.
본 발명의 해결 과제는 비행체의 자율 비행을 위한 학습 데이터 생성 방법 및 그 장치를 제공하는데 있다.
상술한 과제를 달성하기 위하여, 비행체의 자율 비행을 위한 학습 데이터 생성 방법은 비행체의 주행 중에 촬영된 이미지를 획득하는 단계; 상기 비행체가 회전한 회전 각도 및 상기 비행체가 이동한 이동 정도에 기초하여 상기 이미지에 대한 증강 이미지를 생성하는 단계; 상기 회전 각도 및 상기 이동 정도에 대응하는 하나 이상의 역-스티어링 정보를 생성하는 단계; 및 상기 증강 이미지 및 상기 하나 이상의 역-스티어링 파라미터들을 포함하는 학습 데이터를 생성하는 단계; 를 포함할 수 있다.
또한, 실시예들에 따른 비행체는 복수의 카메라들을 포함하고, 상기 이미지는 상기 복수의 카메라들 중 적어도 하나에 의해 촬영되고, 상기 복수의 카메라들은 상기 비행체의 주행 방향의 뷰(view)를 촬영하는 제1카메라, 상기 비행체의 주행 방향에서 좌측으로 특정 각도만큼 회전된 뷰를 촬영하는 제2카메라, 및 상기 비행체의 주행 방향에서 우측으로 상기 특정 각도만큼 회전된 뷰를 촬영하는 제3카메라를 포함할 수 있다.
나아가, 실시예들에 따른 상기 증강 이미지를 생성하는 단계는, 상기 비행체가 회전한 회전 각도에 기초하여 상기 이미지의 회전 증강(rotational augmentation)을 수행하는 단계; 및 상기 비행체가 이동한 이동 정도에 기초하여 상기 이미지의 이동 증강(translational augmentation)을 수행하는 단계; 를 포함할 수 있다.
나아가, 실시예들에 따른 상기 역-스티어링 정보는 상기 회전 각도로 회전한 상기 비행체의 경로 복귀와 관련된 제1역-스티어링 파라미터 및 상기 이동 정도로 이동한 상기 비행체의 경로 복귀와 관련된 제2역-스티어링 파라미터에 기초하여 생성될 수 있다.
더 나아가, 실시예들에 따른 상기 역-스티어링 정보는 상기 제1역-스티어링 파라미터 및 제2역-스티어링 파라미터 각각에 상기 회전 각도 및 상기 이동 정도를 가중함으로써 계산될 수 있다.
또한, 실시예들에 따른 상기 증강 이미지를 생성하는 단계는, 상기 비행체에서 촬영된 하나 이상의 이미지들에 기초하여 추론된 상기 비행체의 자세 정보 및 진북(true north)의 방향 정보에 기초하여 상기 비행체의 회전 또는 이동의 결함을 보정하는 단계를 더 포함할 수 있다.
나아가, 실시예들에 따른 상기 증강 이미지를 생성하는 단계는, 상기 증강 이미지의 빈 픽셀을 값을 추정하는 단계를 더 포함하고, 상기 빈 픽셀의 값은 상기 빈 픽셀의 최근접 이웃(nearest neighbor)에 해당하는 픽셀의 값에 기반하여 결정될 수 있다.
더 나아가, 실시예들에 따른 상기 회전 증강을 수행하는 단계는, 상기 카메라의 초점 거리 정보, 상기 이미지의 크기 정보, 각 픽셀의 뎁스(depth) 정보에 기초하여 결정된 상기 이미지의 픽셀들의 위치를 이동할 수 있다.
실시예들에 따른 전자 장치는, 복수의 카메라부들을 이용하여 이미지 데이터를 수집함으로써, 전자 장치의 학습 효율을 높일 수 있다.
더 나아가, 실시예들에 따른 전자 장치는, 주행 방향과 뷰(view)의 방향을 달리 하는 하나 이상의 카메라부 각각에 의해 촬영된 이미지에 역-스티어링 값을 결합 또는 적용함으로써, 외압에 의해 발생되는 비행체의 급작스러운 회전 발생 또는 이동 발생에 대응하여 정상 경로로 복귀할 수 있는 능력을 학습할 수 있도록 도와 준다.
이러한 동작으로 인해, 실시예들에 따른 전자 장치는 전자 장치의 학습 모델이 알려주는 로컬 경로 방향(local path direction) (즉, 현재 카메라로부터 획득한 입력 영상을 통해 도출되는 비행체의 스로틀(throttle) 및 스티어링(steering) 값을 추론한 결과)과 실제 비행체가 이동하고 있는 방향이 다르거나 예상 밖의 방향으로 진행하는지 여부를 신속하게 확인할 수 있다. 또 이러한 동작으로 인해, 전자 장치는 비행체의 제어 알고리즘과 실제 기체의 이동 간의 괴리를 파악할 수 있어, 비행 결함으로 인한 더욱 심각한 위기(예를 들어, 비행체의 파손)를 초래 하기 전에 사전 진단을 할 수 있다.
실시예들에 따른 전자 장치는, 증강 이미지 데이터를 보완함으로써, 전자 장치의 학습 모델이 효율적으로 학습하도록 할 수 있으며, 빈 영역의 기본 픽셀 값을 학습하지 않도록 유도할 수 있어 학습 모델이 잘못 학습하는 등의 에러율을 현저히 낮출 수 있는 효과를 제공한다.
실시예들에 따른 전자 장치는, 실제 비행체의 운행자가 운행한 비행체의 조작 정보와, 각 조작 정보에 대응하는 시각의 비행체의 증강된 이미지 데이터를 함께 학습함으로써, 비행체가 경로의 이탈 없이 올바르게 운행할 수 있도록 제어할 수 있다. 더 나아가, 이러한 학습 방법에 의해, 비행체에서 돌발 상황이 발생하더라도 이미지 데이터에만 의존하는 것이 아닌, 이미지를 포함하여 이미지에 따른 운행자의 운행을 함께 학습하므로 한 번 경로 이탈한 상황에서도 신속하게 경로에 복귀할 수 있는 능력을 학습할 수 있다.
도 1은 실시예들에 따른 전자 장치를 나타낸다.
도 2는 기존의 방식에 따라 생성된 학습 데이터를 학습한 학습 모델에 의해 운행되는 비행체의 운행 및 그에 따른 문제점을 나타낸 도면이다.
도 3은 실시예들에 따른 비행체가 자율 비행을 수행하기 위한 학습 데이터를 수집 및 생성하는 방법을 나타낸다.
도 4는 실시예들에 따른 비행체가 자율 비행을 수행하기 위한 학습 데이터를 수집 및 생성하는 방법을 나타낸다.
도 5는 실시예들에 따른 비행체가 자율 비행을 수행하기 위해 획득한 이미지 데이터를 증강하기 위한 방법에서 활용되는 파라미터(들)의 일 예시를 나타낸다.
도 6은 실시예들에 따른 비행체가 자율 비행을 수행하기 위해 획득한 이미지 데이터를 증강하기 위한 방법에서 활용되는 파라미터(들)의 일 예시를 나타낸다.
도 7은 실시예들에 따른 비행체가 자율 비행을 수행하기 위해 획득한 이미지 데이터를 증강하는 방법을 나타낸다.
도 8은 실시예들에 따른 비행체가 자율 비행을 수행하기 위한 학습 데이터를 생성하는 방법을 나타낸다.
도 9는 실시예들에 따른 학습 데이터를 생성하는 방법을 나타낸다.
실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.
명세서 전체에서 기재된 "a, b, 및 c 중 적어도 하나"의 표현은, 'a 단독', 'b 단독', 'c 단독', 'a 및 b', 'a 및 c', 'b 및 c', 또는 'a, b, 및 c 모두'를 포괄할 수 있다.
이하에서 언급되는 "단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication), CDMA(Code Division Multiple Access), W-CDMA(W-Code Division Multiple Access), LTE(Long Term Evolution) 등의 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하에서는 도면을 참조하여 본 개시의 실시 예들을 상세히 설명한다.
도 1은 실시예들에 따른 전자 장치를 나타낸다.
전자 장치(100)는 프로세서(110), 및 메모리(120)를 포함한다. 도 1에 도시된 전자 장치(100)에는 본 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 전자 장치(100)에는 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.
실시예들에 따른 전자 장치(100)는 예를 들어, 비행체 또는 비행체 내부에 포함되어 자율 비행을 위한 학습 데이터를 생성하는 모듈일 수도 있고, 비행체 외부에 있는 전자 장치 (또는 서버 등)로, 비행체로부터 획득한 데이터를 이용하여 자율 비행을 위한 학습 데이터를 생성하는 모듈일 수도 있다. 즉, 실시예들에 따른 전자 장치(100)는, 비행체의 자율 비행을 위한 학습 데이터를 생성할 수 있다.
일반적으로 자율 비행을 수행하기 위한 학습 데이터는, 비행체의 진행 방향을 향한 하나의 뷰(view, 카메라 모듈 등에 의해 획득한 이미지가 차지하는 공간 상의 영역으로 2차원의 상에 표현된 것)의 이미지 데이터에 기반하고 있다. 비행체는 학습 데이터에 의해 학습된 학습 모델을 이용하여 비행체의 방향 및 이동(속도 등)을 조절한다.
또한, 비행체가 자율 비행하는 과정에서 충돌을 회피해야 할 물체들이 상대적으로 많이 등장하고, 특히 비행체의 경로 이탈 상황에서 이러한 충돌이 빈번하게 발생하며, 비행체는 충돌 발생 시 되돌릴 수 없는 수준의 심각한 파손을 받는다. 따라서, 비행체의 경로 이탈 상황을 방지하는 것이 자율 주행 과정에서 최우선적으로 지향되어야 될 숙제라고 볼 수 있다.
실시예들에 따른 전자 장치는, 비행체로부터 이미지 데이터를 획득할 수 있고, 획득한 이미지 데이터를 학습하여 경로를 이탈하지 않도록 비행체를 조절할 수 있다. 예를 들어, 전자 장치는 관리자(또는 운행자)에 의해 기 정의되는 경로에서 운행되는 비행체의 운행 방향 및 운행 상태(예를 들어, 비행체의 스티어링(steering) 및 스로틀(throttle))와 비행체로부터 획득한 이미지 데이터를 학습 (예를 들어, 인공신경망 모델 등과 같은 학습 모델의 생성 또는 업데이트) 할 수 있다.
실시예들에 따른 전자 장치는, 상술한 바와 같이 학습된 학습 모델에 기초하여, 실제 운행을 수행하면서 획득되는 이미지 데이터로부터 비행체의 조작 데이터(운행 방향, 운행 상태의 조작 데이터)를 출력하여, 비행체가 경로를 이탈하지 않도록 조작할 수 있다. 즉, 실시예들에 따른 전자 장치는, 이미지를 인공신경망(예를 들어, 학습된 학습 모델)에 입력하여 바로 제어 명령(Steering, throttle)을 출력할 수 있도록 하는 단대단 학습(End-to-End learning) (이하, E2E라 한다) 방법에 따라 비행체를 조작 또는 제어할 수 있다.
이러한 기술적 어려움을 극복하기 위해, 쉽고 빠르고 정확하며 점진적 학습이 가능한 모델을 만들기 위해 실시예들에 따른 전자 장치는, 상술한 E2E 방법을 채택할 수 있다.
이에 따라 전자 장치에 의해 수행되는 비행체의 자율 비행을 위한 학습 데이터 생성 방법은, 비행체의 주행 중에 촬영된 이미지를 획득하는 단계; 상기 비행체가 회전한 회전 각도 및 상기 비행체가 이동한 이동 정도에 기초하여 상기 이미지에 대한 증강 이미지를 생성하는 단계; 상기 회전 각도 및 상기 이동 정도에 대응하는 하나 이상의 역-스티어링 정보를 생성하는 단계; 및 상기 증강 이미지 및 상기 하나 이상의 역-스티어링 파라미터들을 포함하는 학습 데이터를 생성하는 단계; 를 포함할 수 있다.
한편, 기존의 방법에 따른 비행체의 학습 데이터 생성 방법은, 오직 비행체의 진행 방향만을 바라보는 하나의 뷰에 의존한다. 이렇게 오직 하나의 뷰에만 의존하는 학습 데이터로, 비행체의 조작을 학습하는 경우에는 다양한 상황 변화에 적응할 수 있는 충분한 학습이 어려울 수 있다. 특히, 학습 데이터의 양적 측면에서 그 확보가 어렵다는 단점이 있고, 더 나아가 비행체가 단 한 번의 경로 이탈 시 비행체의 제어 판단에 혼선이 생기게 되고, 추후 다른 오브젝트들과의 충돌 가능성을 높이며 제어가 불가능한 상황에까지 이를 수 있는 위험이 존재한다.
즉, 상술한 E2E 방식에 따른 레이블링은 기존의 방법에 비해서 쉽고 빠르게 학습 데이터를 생성할 수 있는 장점이 있지만, 여전히 자율비행에 필요한 데이터를 얻기에는 충분하지 않다는 결과를 여러 연구에서 볼 수 있다. 즉, 기존의 E2E 방식에 따른 비행체의 조종은 후술할 도 2와 같이 학습된 자율비행 비행체가 한번 학습된 경로를 벗어나게 되면 보지 못한 장면을 입력받게 되고 부정확한 제어 명령을 야기하여 비행궤적을 완전히 이탈하게 되는 문제점이 있었다. 예를 들어, 비행체(특히 소형 비행체)는 바람이나, 아주 작은 모터의 회전 에러와 같은 소소한 이유로 인해 학습한 결과 대비 비행 불안전이 예상 궤적을 이탈할 수 있다.
이 경우 기존의 E2E 방식에 따른 비행체의 조작을 위한 학습 데이터는, 비행체가 학습된 비행 궤적을 이탈하였을 때 다시 정상 궤적으로 회복할 수 있도록 제어할 수 있는 데이터가 없고, 그로 인하여 그 상황에 적절한 제어명령이 제공할 수 없는 문제점이 있다.
따라서, 실시예들에 따른 전자 장치는 비행체의 정면 이외에 다른 뷰들을 향한 다른 카메라 모듈들을 이용 즉, 복수의 카메라 모듈들을 이용하여 학습 데이터 생성을 위한 다수의 이미지 데이터를 확보할 수 있다. 더 나아가 실시예들에 따른 전자 장치는, 확보한 다수의 이미지 데이터를 증강(augmentation)하고, 증강된 이미지와 관리자(운행자)의 조작 데이터를 함께 학습으로써, 비행체의 궤적 이탈 상황에서 손쉽게 경로에 다시 복귀할 수 있는 제어 방법까지 학습할 수 있도록 한다.
이하 도 2 내지 도 9에서는, 실시예들에 따른 전자 장치가 비행체의 궤적 이탈 상황에서 손쉽게 경로에 다시 복귀할 수 있는 제어 방법까지 학습할 수 있는 학습 데이터를 생성하는 방법 즉, 획득한 복수의 이미지들을 이용하여 증강 데이터를 생성하고, 이들을 이용하여 역-스티어링 값 또는 역 운행과 관련된 값들을 계산하는 방법을 설명한다.
한편, 실시예들에 따른 전자 장치에 포함될 수 있는 프로세서(110)는 전자 장치(100) 내의 메모리(120)에 저장된 알고리즘과 관련된 프로그램들을 실행함으로써, 전자 장치(100)를 전반적으로 제어한다. 프로세서(110)는 전자 장치(100) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.
실시예들에 따른 전자 장치에 포함될 수 있는 메모리(120)는 전자 장치(100) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 메모리(120)는 전자 장치(100)에서 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(120)는 전자 장치(100)에 의해 구동될 애플리케이션들, 드라이버들 등을 저장할 수 있다. 메모리(120)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.
도 2는 기존의 방식에 따라 생성된 학습 데이터를 학습한 학습 모델에 의해 운행되는 비행체의 운행 및 그에 따른 문제점을 나타낸 도면이다.
구체적으로, 도 2는 기존의 방식에 따라 생성된 학습 데이터를 학습한 학습 모델에 의해 비행체가 자율 주행을 운행하면서 경로에 따라 이동하는 동작 및 경로를 이탈한 상황을 나타낸 것이다.
도 2를 참조하면, 비행체는 이동 경로(200)를 확인하고, 학습된 학습 모델에 기초하여 이동 경로에 따라 이동(201)한다. 비행체를 제어하는 전자 장치는 예를 들어, 비행체의 이동 방향에 위치한 카메라 모듈에 의해 획득한 제1뷰(view)(202)를 확인할 수 있다. 전자 장치는 제1뷰(202)를 확인하고, 계획된 경로(planned path)에 따라 비행체가 이동하도록 제어할 수 있다.
전자 장치는 제1뷰(202)를 입력 받는 학습 모델을 포함할 수 있고, 학습 모델은 예상 경로(예상 궤적, expected trajectory)를 추론할 수 있다. 이는 학습 모델이 계획된 경로에 대한 뷰를 나타내는 데이터가 충분히 존재하거나, 부합하는 학습된 데이터(trained data)가 존재하기 때문에 전자 장치는 올바른 이동 경로를 안내할 수 있다.
그러나, 비행체가 한 번의 경로를 이탈하게 되면(즉, 203a 및 203b와 같은 상황이 발생할 경우), 전자 장치는 비행체의 제어하는 판단에 혼선이 발생할 수 있다. 왜냐하면, 전자 장치의 학습 모델은 이미 정의된 경로에 따라 이동하면서 이미 정의된 경로로 운행하는 뷰만을 학습했기 때문이며, 경로가 완전히 이탈되었을 때 비행체가 획득하는 뷰들(예를 들어, 203a, 203b)은 학습 데이터는 없는 새로운 환경의 데이터이기 때문에, 학습 모델은 제대로된 제어 신호를 출력할 수 없다. 즉, 이러한 뷰들(203a, 203b)은 기 계획된 경로에 따른 뷰들도 아니므로, 경로를 예상할 수도 없을 뿐만 아니라, 학습된 데이터에도 포함되어 있지 않다.
실제 비행체의 운행 과정에서, 이러한 돌발적인 경로 이탈은 자주 발생할 수 있다. 예를 들어, 갑자기 불어드는 바람이나 물체에 의하여 비행체가 잠시나마 상황 통제력을 잃을 수 있는데, 다시 통제력을 되찾은 비행체는 이미 경로를 이탈하는 방향으로 운행중인 경우가 있다.
따라서, 실시예들에 따른 전자 장치는, 예정되어 있는 경로를 계속 추적하거나 포착할 수 있도록 여러 개의 뷰들을 동시다발적으로 학습할 필요가 있다. 또, 외부의 힘 (또는 매뉴얼 운행의 경우 운행자의 조종)에 의해 비행체의 회전 또는 이동이 발생한 경우, 여러 개의 뷰들을 상술한 회전 또는 이동한 만큼 증강(augmentation)함으로써 생성된 학습 데이터가 필요하다. 이러한 학습 데이터에 기반하여 전자 장치의 학습 모델이 학습을 수행할 경우, 경로 이탈에 적응적으로 반응할 수 있는 효과가 있다.
이하 도 3에서는, 비행체를 기준으로 여러 개의 뷰(view)들을 획득하는 방법을 설명하고, 도 4 내지 도 9에서는 여러 개의 뷰들을 이용하여 외부의 힘 (또는 매뉴얼 운행의 경우 운행자의 조종)에 의해 비행체의 회전 또는 이동이 발생한 경우, 이미지 데이터를 증강하여 증강된 이미지 데이터를 생성하는 방법의 예시들을 설명한다.
도 3은 실시예들에 따른 비행체가 자율 비행을 수행하기 위한 학습 데이터를 수집 및 생성하는 방법을 나타낸다.
구체적으로, 도 3은 실시예들에 따른 비행체에 장착된 복수의 카메라부들에 의해 촬영된 이미지 데이터(300 내지 302)를 나타낼 수 있다. 도 3에 나타난 복수의 카메라부들에 의해 촬영된 이미지 데이터(300 내지 302)는 실시예들에 따른 전자 장치가 이동 경로를 학습하기 위해 필요한 학습 데이터를 생성하는데 사용될 수 있다.
도 3을 참조하면, 실시예들에 따른 비행체는 예를 들어, 복수의 카메라들(적어도 3개의 카메라 모듈들)을 포함할 수 있다. 실시예들에 따른 복수의 카메라들은 상기 비행체의 주행 방향의 제1뷰(view)(301)를 촬영하는 제1카메라부, 비행체의 주행 방향에서 좌측으로 특정 각도만큼 회전된 제2뷰(300)를 촬영하는 제2카메라부, 및 상기 비행체의 주행 방향에서 우측으로 상기 특정 각도만큼 회전된 제3뷰(302)를 촬영하는 제3카메라부를 포함할 수 있다.
여기서, 제1카메라부에서 촬영되는 주행 방향의 제1뷰(301)는 상기 비행체의 주행 방향과 동일한 방향을 향하여 비행체 내부 또는 외부에 장착될 수 있으며, 제1카메라부는 주행 방향과 동일한 방향으로 주행하는 이미지 또는 영상 데이터를 수집할 수 있다.
도 3에 나타난 복수의 이미지 데이터는 예를 들어, 비행체의 주행 과정에서 동일한 시각(동시)에 수집되는 이미지 데이터일 수 있고, 전자 장치는 동일한 시각에 획득한 이미지를 결합하여 시계열 데이터(time series data) 형태로 저장할 수도 있다.
한편, 실시예들에 따른 전자 장치는 비행체의 각 카메라부로부터 확인되는 이미지 데이터에 역-스티어링(anti-steering) 값 또는 기본 역-스티어링(default anti-steering) 값(303)을 함께 또는 이와 결합하여 저장할 수도 있다.
역-스티어링(anti-steering) 값은 예를 들어, 비행체가 정상 주행하는 과정에서 새롭게 방향 전환을 하는 경우(즉, 비행체의 스티어링의 값이 변화되는 경우) 다시 비행체가 정상 경로로 주행하기 위해 가할 반대 방향의 스티어링 값을 의미할 수 있다. 따라서, 역-스티어링 값은 비행체가 주행 방향으로 비행체의 움직임을 복원시키기 위한 값이므로, 비행체의 카메라 모듈이 바라보는 방향과 주행하는 방향의 차이에 따라 기본적으로 설정되어야 하는 역-스티어링 값이 존재한다.
예를 들어, 실시예들에 따른 제1카메라부에 의해 촬영되는 이미지 데이터는 주행 방향과 카메라가 바라보는 방향이 동일하므로 기본 역-스티어링(default anti-steering) 값(303)을 0으로 설정할 수 있다. 예를 들어, 실시예들에 따른 제2카메라부에 의해 촬영되는 이미지 데이터는 주행 방향 대비 카메라가 바라보는 방향이 좌측이므로 기본 역-스티어링(default anti-steering) 값(303)을 양수(시계방향을 나타내는 값)으로 설정할 수 있다. 예를 들어, 실시예들에 따른 제3카메라부에 의해 촬영되는 이미지 데이터는 주행 방향 대비 카메라가 바라보는 방향이 우측이므로 기본 역-스티어링(default anti-steering) 값(303)을 음수(반시계방향을 나타내는 값, 예를 들어, -0.3 등)으로 설정할 수 있다. 즉, 역-스티어링 값들은 해당 각도로부터 원본의 각도, 즉 정상주행 했을 때 카메라의 뷰에 해당하는 스로틀(throttle)과 스티어링으로 회복하기 위해 주어야하는 스티어링 값을 의미한다.
한편, 실시예들에 따른 역-스티어링 값은 정규화된 값의 범위(예를 들어, -1 내지 +1, 또는 0 내지 1) 내에서 매핑된 값일 수 있다. 예를 들어, 역-스티어링 값이 만약 -1 내지 +1의 범위로 정규화된 값의 범위 내에서 매핑된 값일 경우, +1은 제1방향(예를 들어, 시계방향)으로 최대로 스티어링된 상태를 의미할 수 있고, -1은 제2방향(예를 들어, 반시계방향)으로 최대로 스티어링된 상태를 의미할 수 있다.
실시예들에 따른 전자 장치는, 복수의 카메라부에 의해 촬영된 복수의 이미지 데이터로부터 하나 또는 그 이상의 증강된 이미지들을 생성할 수 있다.
복수의 이미지 데이터로부터 하나 또는 그 이상의 증강된 이미지들을 생성하는 방법은 예를 들어, 기하학적 증강 (Geometrical Augmentation) 방법을 포함할 수 있다. 구체적인 복수의 이미지 데이터로부터 하나 또는 그 이상의 증강된 이미지들을 생성하는 방법은 도 4에 자세히 기술한다.
예를 들어, 전자 장치는, 비행체가 특정 방향 및 특정 각도로 회전을 수행한 경우 (매뉴얼 운행에서 조작에 의한 경우 또는 외부의 힘에 의한 경우), 특정 각도 및 특정 방향에 기반하여 기하학적 증강 (Geometrical Augmentation)을 수행하여, 증강된 이미지 데이터를 생성할 수 있다.
이러한 실시예들에 따른 전자 장치는, 복수의 카메라부들을 이용하여 이미지 데이터를 수집함으로써, 전자 장치의 학습 효율을 높일 수 있다.
더 나아가, 실시예들에 따른 전자 장치는, 주행 방향과 뷰(view)의 방향을 달리 하는 하나 이상의 카메라부 각각에 의해 촬영된 이미지에 역-스티어링 값을 결합 또는 적용함으로써, 외압에 의해 발생되는 비행체의 급작스러운 회전 발생 또는 이동 발생에 대응하여 정상 경로로 복귀할 수 있는 능력을 학습할 수 있도록 도와 준다.
도 4는 실시예들에 따른 비행체가 자율 비행을 수행하기 위한 학습 데이터를 수집 및 생성하는 방법을 나타낸다.
전자 장치는, 비행체가 특정 방향 및 특정 각도로 회전을 수행한 경우 (매뉴얼 운행에서 조작에 의한 경우 또는 외부의 힘에 의한 경우), 특정 각도 및 특정 방향에 기반하여 증강 (Augmentation)을 수행할 수 있다.
도 4는 복수의 이미지 데이터로부터 하나 또는 그 이상의 증강된 이미지들을 생성하기 위한 증강 방법(augmentation method)들을 나타낸다. 실시예들에 따른 전자 장치는, 각 카메라부의 장착 특성(예를 들어, 비행체의 정면 주행 방향 대비 각 카메라가 바라보는 방향)에 따라 다양한 증강 방법을 수행할 수 있다.
실시예들에 따른 전자 장치가 수행하는 증강 방법은, 3차원 공간 상에서 회전 방향 중 하나인 롤(Roll) 방향에서의 회전 증강(rotational augmentation) 방법(400), 3차원 공간 상에서 회전 방향 중 하나인 요(Yaw) 방향에서의 회전 증강(rotational augmentation) 방법(401), 3차원 공간 상에서 회전 방향 중 하나인 요(Pitch) 방향에서의 회전 증강(rotational augmentation) 방법(402), 및 3차원 공간 상에서의 이동을 반영하는 이동 증강(translational augmentation) 방법(403)을 포함할 수 있다. 이동 증강(translational augmentation)은 카메라가 바라 보고있는 방향에 수직된 방향으로 비행체가 평행이동할 때, 획득한 이미지 데이터를 보정하는 것을 의미할 수 있다. 여기서, 수직된 방향은 비행체에 고정되어 있는 카메라가 동일고도에서 회전체로서 이동할 수 있는 모든 방향을 포함할 수 있으나, 그에 대한 제한은 필요한 만큼 휴리스틱(heuristic)하게 지정 할 수도 있다. 카메라는 비행체에 고정되어 있으므로 카메라가 바라보는 뷰는 곧 비행체가 바라보는 뷰와 동일하며 이는 비행체의 자세 또한 마찬가지이다. 회전 증강 방법들이 수행되는 구체적인 방법은 예를 들어, 도 6에서 자세히 설명하기로 한다.
한편, 실시예들에 따른 전자 장치는, 상술한 회전 증강(rotational augmentation) 방법들 및 이동 증강 방법(Translational augmentation)의 신속한 처리 및 신속한 수행하기 위하여, 다양한 라이브러리(예를 들어, Python의 Numpy 라이브러리)를 이용하여 벡터화(vectorization)를 수행할 수 있다.
실시예들에 따른 전자 장치는, 상술한 제1증강 방법 내지 제4증강 방법을 수행하기 위하여, 카메라부로부터 이미지 데이터에 관한 하나 이상의 파라미터들을 확인 및 이용할 수 있다. 이미지 데이터에 관한 하나 이상의 파라미터들은 예를 들어, 고유 파라미터(intrinsic parameter) 및 외부 매개변수(extrinsic parameter)를 포함할 수 있다.
고유 파라미터(intrinsic parameter)는 카메라가 갖는 고유의 특성을 나타내는 파라미터를 의미할 수 있으며, 예를 들어, 카메라의 초점 거리(focal length)를 나타내는 초점 거리 정보, 카메라의 화각(Field of View, FOV)을 나타내는 화각 정보를 포함할 수 있다. 카메라의 초점 거리(focal length)란 물체의 상이 맺히는 이미지 평면(image plane)과 초점과의 거리를 픽셀 단위로 나타낸 것을 의미할 수 있다. 카메라의 초점 거리가 제공되지 않을 경우(즉, 해당 파라미터가 없을 경우)에는, 실시예들에 따른 전자 장치는 카메라의 화각 정보로부터 해당 파라미터의 값을 추정할 수 있다.
예를 들어, 실시예들에 따른 전자 장치는 카메라(500)의 화각을 θ, 이미지 평면(501)의 한 변의 길이를 L라고 할 때, 카메라(500)의 초점 거리(f)를 다음의 수학식에 따라 계산 및 도출할 수 있다.
Figure 112022001526811-pat00001
한편, 카메라(500)의 특성에 따라, 이미지 평면(501)의 가로 및 세로 길이가 다를 수 있고, 카메라(500)의 화각도 가로 및 세로 방향으로 다를 수 있는데, 이 경우 실시예들에 따른 전자 장치는 카메라(500)의 초점 거리(f)를 x 방향 및 y 방향으로 각각 (fx, fy) 구할 수 있다. 이미지 평면(501)의 가로 길이를 W, 세로 길이를 H, 가로 및 세로의 카메라(500)의 화각을 각각 θx, θy라 할 때, x 방향 및 y 방향의 각각의 초점 거리(fx, fy)는 다음과 같이 도출할 수 있다.
Figure 112022001526811-pat00002
다음으로, 실시예들에 따른 전자 장치는, 이미지 평면(image plane)의 각 픽셀에 대하여 깊이(depth) 정보를 더 추정할 수 있다. 각 픽셀에 대한 깊이 정보는 예를 들어, 카메라의 초점 거리(또는 상술한 방법에 따라 도출한 카메라의 초점 거리)에 기초하여 계산할 수도 있다.
도 4를 참조하면, 전자 장치는 비행체의 자세(posture)에 따라 각 카메라부에 의해 획득된 하나 이상의 이미지 데이터를 상술한 증강 방법들 중 적어도 하나를 수행할 수 있다. 실시예들에 따른 전자 장치는, 비행체로부터 비행체의 자세에 대한 정보를 수신할 수 있다. 실시예들에 따른 전자 장치는 상술한 자세 정보에 기초하여 획득한 하나 이상의 이미지들을 상술한 증강 방법(들)에 따라 증강할 수 있다. 여기서, 비행체의 자세에 대한 정보는 예를 들어, 비행체 내에 포함된 디지털 나침반과 관련된 모듈에, 자세 제어와 관련된 모듈 등으로부터 확인될 수 있다.
실시예들에 따른 전자 장치는, 상술한 증강된 이미지 데이터를 학습 데이터로 이용할 수 있고, 이러한 학습 데이터에 기반하여 전자 장치 내에 포함된 인공 신경망 모델을 학습할 수 있다.
실시예들에 따른 전자 장치는, 복수의 카메라부들을 이용하여 이미지 데이터를 수집함으로써, 전자 장치의 학습 효율을 높일 수 있다.
더 나아가, 실시예들에 따른 전자 장치는, 주행 방향과 뷰(view)의 방향을 달리 하는 하나 이상의 카메라부 각각에 의해 촬영된 이미지에 역-스티어링 값을 결합 또는 적용함으로써, 외압에 의해 발생되는 비행체의 급작스러운 회전 발생 또는 이동 발생에 대응하여 정상 경로로 복귀할 수 있는 능력을 학습할 수 있도록 도와 준다.
도 5는 실시예들에 따른 비행체가 자율 비행을 수행하기 위해 획득한 이미지 데이터를 증강하기 위한 방법에서 활용되는 파라미터(들)의 일 예시를 나타낸다.
구체적으로, 도 5는 실시예들에 따른 전자 장치가 카메라(500)의 초점 거리 정보(f) 및 카메라(500)가 촬영한 이미지 평면(image plane)(501)의 길이 등을 이용하여 해당 카메라(500)가 촬영한 이미지 평면(501)의 각 픽셀의 깊이(depth)를 계산(추정)하는 방법을 나타낸다.
실시예들에 따른 전자 장치는, 먼저 이미지 평면(image plane)의 이미지에 나타난 배경 및 전경 등을 평지임을 가정하여 픽셀 별로 다음과 같이 깊이를 추정할 수 있다. 여기서, 같은 높이의 픽셀들은 같은 깊이로 가지도록 설정할 수 있다.
Figure 112022001526811-pat00003
또, 실시예들에 따른 전자 장치는, 이미지 평면의 높이(H)의 특정 비율(예를 들어, 절반)보다 높은 위치의 픽셀들에 대하여, 깊이를 무한의 값을 가지도록 설정할 수 있다. (즉, i가 낮을수록 이미지의 위쪽에 위치)
Figure 112022001526811-pat00004
여기서, 실시예들에 따른 전자 장치는, 이미지 평면의 높이(H)의 특정 비율(예를 들어, 상술한 절반)보다 낮은 위치의 픽셀들은 다음 수학식에 기초하여 계산할 수 있다. (여기서, h는 카메라의 높이를 나타냄)
Figure 112022001526811-pat00005
도 6은 실시예들에 따른 비행체가 자율 비행을 수행하기 위해 획득한 이미지 데이터를 증강하기 위한 방법에서 활용되는 파라미터(들)의 일 예시를 나타낸다.
도 6은 실시예들에 따른 전자 장치가, 획득한 이미지 데이터를 이용하여 회전 증강을 수행하는 방법을 나타낸다. 회전 증강은 예를 들어, 전자 장치에 의해 수행되며, 이미지 평면 상의 픽셀들의 위치를 추정 및 조정하는 과정을 의미할 수 있다. 예를 들어, (i, j) 위치의 픽셀은 회전 증강 방법에 기초하여 (i', j')의 위치로 이동될 수 있다.
Figure 112022001526811-pat00006
실시예들에 따른 전자 장치는, 도 4 내지 도 5에서 추정 및 계산한 각 픽셀의 깊이(depth, d), 이미지 평면의 길이(높이: H, 폭: W), 카메라의 초점 거리(fx, fy 등)에 기초하여, 다음과 같이 이미지 평면 상의 뷰를 (x, y, z) 좌표로 변환을 수행할 수 있다.
Figure 112022001526811-pat00007
다음으로, 실시예들에 따른 전자 장치는, 카메라의 각도가 오른쪽으로 θ만큼 옮겨지는 경우, 회전 변환을 통해 각 x, z 값들을 다음과 같이 변환할 수 있다. 여기서, 카메라는 y방향을 축으로 움직이기 때문에, 전자 장치는 y의 값에 대해 변화하지 않을 수 있다.
Figure 112022001526811-pat00008
다음으로, 실시예들에 따른 전자 장치는 변환된 좌표를 통해 이미지 평면 상에 투영되는 픽셀의 좌표(i, j)를 다음과 같이 변환 (i', j') 할 수 있다.
Figure 112022001526811-pat00009
실시예들에 따른 전자 장치는, 상술한 방법에 따른 하나 이상의 변환들을 통해 카메라로부터 획득한 이미지 데이터의 모든 픽셀 위치를 새로운 위치로 이동시킴으로써, 회전 증강(Rotational augmentation)된 이미지를 생성할 수 있다.
다음으로, 실시예들에 따른 전자 장치는, 비행체의 위치 이동에 대한 이동 증강(translational augmentation) 방법을 설명한다. 실시예들에 따른 전자 장치는, 이동 증강 방법에 기초하여, 각 픽셀의 이동되는 위치를 추정할 수 있다.
먼저, 실시예들에 따른 전자 장치는, 픽셀(i,j)의 좌표를 (x, y, z) 좌표로 변환할 수 있다. 여기서, 변환 방법은 상술한 회전 증강(Rotational augmentation) 방법과 동일한 방법으로 도출할 수 있다.
Figure 112022001526811-pat00010
다음으로, 실시예들에 따른 전자 장치는, (x, y, z) 좌표를 이동 증강(Translational augmentation)의 일 방법에 의해 다음과 같이 (x', y', z')으로 변환할 수 있다. 여기서, 이동 증강 방법(Translational augmentation)에서는 x좌표만 변환될 수 있다. 카메라가 오른쪽으로 t만큼 이동되었을 때 각 좌표는 전자 장치에 의해 다음과 같이 변환된다.
Figure 112022001526811-pat00011
마지막으로, 실시예들에 따른 전자 장치는 변환된 좌표 (x', y', z') 를 투영되는 이미지 평면 상의 좌표 (i', j') 로 변환 및 도출할 수 있다.
Figure 112022001526811-pat00012
한편, 실시예들에 따른 전자 장치는, 비행체의 결함, 외부에 의해 변화되는 외압, 외부의 환경 변화(예를 들어, 자기장의 변화 등)에 의해 비행체의 자세(posture) 또는 비행 상태 등을 정확하게 파악하지 못하여, 잘못된 정보를 전자 장치로 전달되는 경우가 있을 수 있다.
따라서, 실시예들에 따른 전자 장치는, 비행체의 자기장 보상을 위한 디지털 컴패스 보상(digital compass compensation) 동작을 더 수행할 수 있다. 디지털 컴패스 보상 동작은 예를 들어, 실시예들에 따른 비행체 내에 포함된 디지털 나침반 모듈로부터 수신되는 진북 좌표 정보(또는 진북 방향과 관련된 정보)를 이용하여 기체의 자세 또는 기체의 비행 상태를 조정하는 동작을 의미할 수 있다.
예를 들어, 실시예들에 따른 비행체 내부에 위치한 디지털 나침반 모듈은 진북(true north) 좌표 또는 그 방향을 확인할 수 있으며, 디지털 나침반 모듈에 의해 확인되는 비행체의 좌표는 절대 좌표일 수 있다. 따라서, 실시예들에 따른 비행체가 디지털 나침반을 사용할 경우, 이는 비행체에 고정되어 있을 수 있으므로 비행체의 현재 x, y, z, roll, pitch, yaw 의 절대 좌표 값을 알 수 있다.
실시예들에 따른 전자 장치는, 이러한 디지털 나침반 모듈을 이용하여 비행체의 자세(posture) 및 비행 상태의 결함을 조정할 수 있다. 예를 들어, 전자 장치는 디지털 나침반 모듈을 이용하여 진북을 기준으로 하는 비행체의 절대 좌표를 파악할 수 있고, 전자 장치의 제어 모듈(제어 알고리즘)에서 확인되는 비행체의 자세 및 이동 방향과 실제 비행체의 자세 및 이동방향 간의 차이를 탐지할 수 있다. 그 후, 실시예들에 따른 전자 장치는, 제어 모듈(제어 알고리즘)에서 확인되는 비행체의 자세 및 이동 방향을 실제 비행체의 자세 및 이동방향으로 조정할 수 있다.
이러한 동작으로 인해, 실시예들에 따른 전자 장치는 전자 장치의 학습 모델이 알려주는 로컬 경로 방향(local path direction) (즉, 현재 카메라로부터 획득한 입력 영상을 통해 도출되는 비행체의 스로틀(throttle) 및 스티어링(steering) 값을 추론한 결과)과 실제 비행체가 이동하고 있는 방향이 다르거나 예상 밖의 방향으로 진행하는지 여부를 신속하게 확인할 수 있다. 또 이러한 동작으로 인해, 전자 장치는 비행체의 제어 알고리즘과 실제 기체의 이동 간의 괴리를 파악할 수 있어, 비행 결함으로 인한 더욱 심각한 위기(예를 들어, 비행체의 파손)를 초래 하기 전에 사전 진단을 할 수 있다.
나아가 이러한 디지털 나침반의 동작으로 인해, 전자 장치는 비행체의 자세의 안정화에도 도움을 줄 수 있다. 예를 들어, 비행체가 외부의 힘 등에 의해서 roll, pitch, yaw 의 변화가 발생하였을 때에, 비행체의 안정된 자세로 복원시킬 수 있는 스티어링 및 스로틀 값을 계산하여 안정된 자세로 유지할 수 있다.
도 7은 실시예들에 따른 비행체가 자율 비행을 수행하기 위해 획득한 이미지 데이터를 증강하는 방법을 나타낸다.
전자 장치는, 비행체가 특정 방향 및 특정 각도로 회전을 수행한 경우 또는 특정 이동 정도만큼 이동한 경우 (매뉴얼 운행에서 조작에 의한 경우 또는 외부의 힘에 의한 경우), 특정 각도 및 특정 방향에 기반하여 증강 (Augmentation)을 수행할 수 있다.
실시예들에 따른 전자 장치가 도 3 내지 도 6에 따라, 획득한 이미지 데이터를 증강(회전 증강 및 이동 증강 등)하여 증강된 이미지 데이터를 생성하는 과정을 나타낸다. 구체적으로, 도 7을 참조하면, 700은 카메라 모듈로부터 획득한 이미지를 나타낼 수 있다.
실시예들에 따른 전자 장치는, 외부의 힘 (또는 매뉴얼 운행의 경우 운행자의 조종)에 의해 비행체의 회전 또는 이동이 발생한 경우, 카메라로부터 획득한 이미지(700)를 실시예들에 따른 회전 증강 또는 이동 증강(회전 또는 이동한 만큼)을 수행하여 증강된 이미지 데이터(701)를 생성할 수 있다. 증강된 이미지 데이터(701)를 생성하는 방법은 예를 들어, 도 3 내지 도 6에 나타난 방법에 따른 하나 이상의 증강 방법 또는 그 조합에 의해 수행될 수 있다.
한편, 실시예들에 따른 전자 장치는, 증강된 이미지 데이터(701)를 생성할 수 있으나, 증강된 이미지 데이터(701)는 공백 영역을 포함할 수 있으며, 이러한 공백 영역은 전자 장치의 학습 효율을 저하시킬 수 있다. 따라서, 실시예들에 따른 전자 장치는 공백 영역에 대하여 다양한 방법에 따라 추정(prediction) 또는 채움(filling)을 수행하여 보완된 이미지 데이터(702)를 생성할 수 있다.
실시예들에 따른 전자 장치는, 예를 들어, 공백 영역의 픽셀들의 값들을 가까운 이웃의 픽셀들의 값들에 의해 채움으로써, 보완된 이미지 데이터(702)를 생성할 수 있다. 즉, 실시예들에 따른 전자 장치는, 상술한 회전/이동 증강(Rotational/Translational Augmentation)에 의해 미처 옮겨지지 못한 빈 픽셀들 즉, 공백 영역이 존재할 수 있다. 전자 장치는, 이들을 채우기 위해서는 적절한 보간(interpolation) 방법을 수행할 수 있다.
실시예들에 따른 보간 방법은 예를 들어, 전자 장치의 연산 속도를 높이기 위해 가장 간단한 최단 이웃(nearest neighbor) 픽셀을 찾는 방법을 포함할 수 있다. 최단 이웃 픽셀을 찾는 방법은 예를 들어, 비어있는 공백 영역의 픽셀들의 값을 각 픽셀과 가장 가까운 픽셀의 값으로 채우는 방법이다. 실시예들에 따른 보간 방법 과정 또한, 벡터화(vectorization)하여 전자 장치가 빠르게 계산될 수 있도록 할 수 있다.
실시예들에 따른 전자 장치는, 복수의 카메라부들을 이용하여 이미지 데이터를 수집함으로써, 전자 장치의 학습 효율을 높일 수 있다.
또, 이러한 방법에 의한 증강 이미지 데이터를 보완함으로써, 전자 장치의 학습 모델이 효율적으로 학습하도록 할 수 있으며, 빈 영역의 기본 픽셀 값을 학습하지 않도록 유도할 수 있어 학습 모델이 잘못 학습하는 등의 에러율을 현저히 낮출 수 있는 효과가 있다.
도 8은 실시예들에 따른 비행체가 자율 비행을 수행하기 위한 학습 데이터를 생성하는 방법을 나타낸다.
도 8에 나타난 동작들 일부 또는 전부는 실시예들에 따른 전자 장치(예를 들어, 도 1 내지 도 7에서 설명한 전자 장치)에 의해 수행될 수 있다.
도 8을 참조하면, 실시예들에 따른 전자 장치는, 먼저 복수의 카메라들(예를 들어, 3개의 카메라들을 포함하는 3안 카메라)로부터 입력 이미지(input image)(들)을 획득(800)할 수 있다.
도 8을 참조하면, 실시예들에 따른 전자 장치는, 획득한 입력 이미지(들) 중 적어도 하나 이상에 대하여 기하 증강(geometric augmentation)을 수행(801)할 수 있다. 실시예들에 따른 기하 증강 동작은 예를 들어, 도 3 내지 도 4에서 설명한 회전 증강(rotational augmentation)의 일부 또는 전부, 도 5 내지 도 7에서 설명한 회전 증강의 일부 또는 전부를 포함할 수 있다. 회전 증강은 예를 들어, 비행체에 부착된 카메라가 바라보는 방향에 기초하여 수행될 수 있다.
도 8을 참조하면, 실시예들에 따른 전자 장치는, 회전 증강(기하 증강)이 수행된 이미지(들)에 대하여 이동 증강(translational augmentation)을 수행(802)할 수 있다. 실시예들에 따른 이동 증강 동작은 예를 들어, 도 3 내지 도 4에서 설명한 이동 증강(translational augmentation)의 일부 또는 전부, 도 5 내지 도 7에서 설명한 이동 증강의 일부 또는 전부를 포함할 수 있다. 이동 증강은 예를 들어, 비행체가 이동한 방향 (예를 들어, 비행체가 이동을 진행하는 방향에 수직하는 방향) 및 이동 정도에 기초하여 수행될 수 있다.
도 8을 참조하면, 실시예들에 따른 전자 장치는, 회전 증강 및/또는 이동 증강이 완료된 이미지(들)을, 디지털 나침반에 기초한 비행체의 보정에 따라 이미지를 보완(803)할 수 있다. 예를 들어, 전자 장치가 이미지(들)을 회전 증강 및/또는 이동 증강 완료한 경우라고 하더라도, 비행체의 실제 절대 좌표와 전자 장치가 인식하는 비행체의 좌표는 다를 수 있으므로, 비행체의 실제 절대 좌표를 기준으로 회전 증강 및/또는 이동 증강을 보완할 수 있다.
그 후, 실시예들에 따른 전자 장치는 증강이 완료된 이미지(들) 즉, 증강 이미지 데이터의 공백 영역을 채울(filling)(804) 수 있다. 전자 장치가 공백 영역을 채우는 방법은 예를 들어, 도 5 내지 도 7에서 설명한 보간(interpolation) 방법에 따라 수행될 수 있다. 실시예들에 따른 전자 장치는, 증강 이미지 데이터의 공백 영역을 다른 픽셀들의 값으로 채운 경우, 보완이 완료된 증강 이미지 데이터를 출력하여 학습 데이터로 이용(805) (즉, 인공신경망 모델을 학습) 할 수 있다. 여기서, 보간 방법은 예를 들어, 선형 보간(Linear interpolation) 방법 등을 포함할 수 있다. 여기서, 인공신경망 모델(Neural Network Model)은 예를 들어 monocular depth estimation neural network 등을 포함할 수 있다.
한편, 이러한 증강 이미지 데이터만으로는 전자 장치의 학습 모델이 실제 비행체가 관리자(또는 비행체 운행자)의 조작 없이 운행하는 방법을 학습할 수 없다. 즉, 전자 장치의 학습 모델이 스스로 운행을 수행하도록 학습되기 위해서는 실제 비행체가 촬영한 증강된 이미지 데이터와 함께, 관리자(또는 운행자)에 의해 직접 운행된(즉, 매뉴얼하게 운행된) 기록이 함께 학습되어야 한다.
따라서, 실시예들에 따른 학습 데이터는, 상술한 증강 이미지 데이터(또는 보완이 완료된 이미지 데이터)와 함께, 해당 이미지 데이터를 촬영한 시각에 대한 비행체의 조작 정보를 결합할 수 있다. 여기서, 비행체의 조작 정보는 예를 들어, 관리자(또는 운행자)가 조작한 비행체의 스로틀 값 및 스티어링 값을 포함할 수 있다.
실시예들에 따른 전자 장치는, 실제 비행체의 운행자가 운행한 비행체의 조작 정보와, 각 조작 정보에 대응하는 시각의 비행체의 증강된 이미지 데이터를 함께 학습함으로써, 비행체가 경로의 이탈 없이 올바르게 운행할 수 있도록 제어할 수 있다. 더 나아가, 이러한 학습 방법에 의해, 비행체에서 돌발 상황이 발생하더라도 이미지 데이터에만 의존하는 것이 아닌, 이미지를 포함하여 이미지에 따른 운행자의 운행을 함께 학습하므로 한 번 경로 이탈한 상황에서도 신속하게 경로에 복귀할 수 있는 능력을 학습할 수 있다.
운행자의 비행체 조작 정보를 학습하는 방법을 자세하게 서술한다.
예를 들어, 외부의 힘에 의해 비행체의 운행 방향이 변경되었을 때, 비행체는 변경된 방향으로 이미지(들)을 촬영한다. 만약, Δθ만큼 비행체가 회전하였을 경우, 비행체는 다시 제 각도로 돌아오기 위해서 만큼의 역-스티어링(anti-steering)을 해야한다. 여기서, 역-스티어링(anti-steering) 값은 비행체에 주어진 스티어링(steering)값과 반대의 부호를 가질 수 있는데, 그 이유는 스티어링된 만큼 다시 비행체를 돌아오게끔 해야 하기 때문이다. 예를 들어, 비행체가 30도만큼 오른쪽으로 틀어졌을 때, 기존의 스티어링 값에 음수의 값 만큼(예를 들어, -0.3 등) 더하여 본래의 각도로 돌아올 수 있도록 유도할 수 있다.
한편, 실시예들에 따른 역-스티어링 값은 정규화된 값의 범위(예를 들어, -1 내지 +1, 또는 0 내지 1) 내에서 매핑된 값일 수 있다. 예를 들어, 역-스티어링 값이 만약 -1 내지 +1의 범위로 정규화된 값의 범위 내에서 매핑된 값일 경우, +1은 제1방향(예를 들어, 시계방향)으로 최대로 스티어링된 상태를 의미할 수 있고, -1은 제2방향(예를 들어, 반시계방향)으로 최대로 스티어링된 상태를 의미할 수 있다.
마찬가지로, 비행체가 진행 방향의 수직되는 제1방향(예를 들어, 오른쪽) Δt 만큼 이동했으면 그 만큼 반대 방향에 대한 역-스티어링을 제공하여야 본래 학습된 경로로 돌아올 수 있다.
전자 장치는 이러한 상황에서 역-스티어링 값을 계산함으로써, 전자 장치가 학습한 데이터 대비 경로의 이탈을 방지하거나 빠르게 복귀할 수 있도록 하고, 완전히 이탈하여 학습이 부족한 방향으로 진행되기 전에 역-스티어링을 위한 제어 명령을 신속하게 도출할 수 있다.
역-스티어링 값은 예를 들어, 기본 역-스티어링 값(default anti-steering value)에 기초하여 결정될 수 있다. 여기서, 기본 역-스티어링 값의 범위는 상술한 바와 마찬가지로, 정규화된 범위 (예를 들어, -1과 1의 범위) 내의 값일 수 있으며, Front-left 카메라와 Front-right 카메라는 Front 카메라를 기준으로 대칭이 되도록 고정되어 있을 경우, 그 둘에게 고정되는 기본 역-스티어링 값은 부호만 다를 수 있다.
실시예들에 따른 전자 장치는 예를 들어, 이동 증강 및 회전 증강 동작을 순서대로 거쳐 본래 원본 위치에서 Δθ만큼 비행체의 각이 틀어지고, Δt만큼 비행체가 이동을 가정하면, 실시예들에 따른 역-스티어링 값(anti-steering value)는 다음과 같이 계산될 수 있다.
Figure 112022001526811-pat00013
여기서,
Figure 112022001526811-pat00014
Figure 112022001526811-pat00015
는 실시예들에 따른 전자 장치의 학습 모델에 의해 학습되는 하이퍼-파라미터(hyper-parameter)일 수 있다. 초기 하이퍼-파라미터인
Figure 112022001526811-pat00016
Figure 112022001526811-pat00017
를 설정하는 방법은 예를 들어, 다음과 같을 수 있다. 여기서,
Figure 112022001526811-pat00018
Figure 112022001526811-pat00019
는 각각 제1역-스티어링 파라미터, 제2역-스티어링 파라미터라고 호칭할 수도 있다.
한편, 실시예들에 따른 전자 장치는, 역-스티어링 값을 제1역-스티어링 파라미터
Figure 112022001526811-pat00020
및 제2역-스티어링 파라미터
Figure 112022001526811-pat00021
각각에 회전 각도 Δθ 및 상기 이동 정도 Δt를 제곱(가중)함으로써 계산될 수도 있다. 예를 들어, 역-스티어링 값은 다음과 같은 수학식에 의해 계산될 수도 있다.
Figure 112022001526811-pat00022
회전 증강(rotational augmentation)에서 이미지 데이터가 틀어질 수 있는 최대의 각도
Figure 112022001526811-pat00023
를 정하고 해당 각도에서 반대방향으로 꺾어야할 역-스티어링 값(anti-steering value)을
Figure 112022001526811-pat00024
라고 정하면
Figure 112022001526811-pat00025
은 다음과 같이 설정될 수 있다.
Figure 112022001526811-pat00026
마찬가지 방법으로, 이동 증강(translational augmentation)에서 이동될 수 있는 최대 거리를
Figure 112022001526811-pat00027
로 정하고 해당 위치에서의 역-스티어링 값을
Figure 112022001526811-pat00028
라고 정하면,
Figure 112022001526811-pat00029
는 다음과 같이 설정될 수 있다.
Figure 112022001526811-pat00030
예를 들어, 비행체가 30도가 회전된 경우, 비행체가 -0.3 만큼 역-스티어링을 가해야 정상 경로에 신속히 진입하는 것을 확인하거나 (또는, 비행체가 30도가 회전된 상황에서 운행자가 비행체를 -0.3 만큼 역-스티어링을 가하여 정상 경로에 진입시킨 경우)라면, 다음과 같이
Figure 112022001526811-pat00031
를 설정할 수 있다.
Figure 112022001526811-pat00032
마찬가지로, 오른쪽으로 3.0m 떨어진 곳에서는 -0.2만큼 역-스티어링 값을 주어야한다고 생각하면,
Figure 112022001526811-pat00033
는 다음과 같이 설정할 수 있다.
Figure 112022001526811-pat00034
따라서, 실시예들에 따른 증강 방법으로 생성된 데이터에 대한 새로운 스티어링 값은 다음과 같다.
Figure 112022001526811-pat00035
도 9는 실시예들에 따른 학습 데이터를 생성하는 방법을 나타낸다.
실시예들에 따른 학습 데이터 생성 방법은, 도 1 내지 도 8에서 상술한 전자 장치에 의해 수행될 수 있다. 실시예들에 따른 학습 데이터 생성 방법은 예를 들어, 도 9의 900 내지 903 동작들 일부 또는 전부를 수행할 수 있다.
도 9를 참조하면, 실시예들에 따른 전자 장치는, 비행체의 주행 중에 촬영된 이미지를 획득(900)할 수 있다. 실시예들에 따른 비행체는 복수의 카메라들을 포함하고, 상기 이미지는 상기 복수의 카메라들 중 적어도 하나에 의해 촬영되고, 상기 복수의 카메라들은 상기 비행체의 주행 방향의 뷰(view)를 촬영하는 제1카메라, 상기 비행체의 주행 방향에서 좌측으로 특정 각도만큼 회전된 뷰를 촬영하는 제2카메라, 및 상기 비행체의 주행 방향에서 우측으로 상기 특정 각도만큼 회전된 뷰를 촬영하는 제3카메라를 포함할 수 있다.
한편, 실시예들에 따른 역-스티어링 정보는 상기 회전 각도로 회전한 상기 비행체의 경로 복귀와 관련된 제1역-스티어링 파라미터 및 상기 이동 정도로 이동한 상기 비행체의 경로 복귀와 관련된 제2역-스티어링 파라미터에 기초하여 생성될 수 있다. 또한, 역-스티어링 정보는 상기 제1역-스티어링 파라미터 및 제2역-스티어링 파라미터 각각에 상기 회전 각도 및 상기 이동 정도를 가중함으로써 계산될 수 있다.
도 9를 참조하면, 실시예들에 따른 전자 장치는, 상기 비행체가 회전한 회전 각도 및 상기 비행체가 이동한 이동 정도에 기초하여 상기 이미지에 대한 증강 이미지를 생성(901)할 수 있다. 여기서, 증강 이미지를 생성하는 단계는, 상기 비행체가 회전한 회전 각도에 기초하여 상기 이미지의 회전 증강(rotational augmentation)을 수행하는 단계; 및 상기 비행체가 이동한 이동 정도에 기초하여 상기 이미지의 이동 증강(translational augmentation)을 수행하는 단계; 를 더 수행할 수 있다.
여기서, 실시예들에 따른 전자 장치는, 상기 증강 이미지를 생성하기 위하여, 상기 비행체에서 촬영된 하나 이상의 이미지들에 기초하여 추론된 상기 비행체의 자세 정보 및 진북(true north)의 방향 정보에 기초하여 상기 비행체의 회전 또는 이동의 결함을 보정하는 단계를 더 수행할 수 있다. 여기서, 실시예들에 따른 전자 장치는, 상기 증강 이미지를 생성하기 위하여, 상기 증강 이미지의 빈 픽셀을 값을 추정하는 단계를 더 수행할 수 있다. 이 때, 상기 빈 픽셀의 값은 상기 빈 픽셀의 최근접 이웃(nearest neighbor)에 해당하는 픽셀의 값에 기반하여 결정될 수 있다.
한편, 실시예들에 따른 상기 회전 증강은 상기 카메라의 초점 거리 정보, 상기 이미지의 크기 정보, 각 픽셀의 뎁스(depth) 정보에 기초하여 결정된 상기 이미지의 픽셀들의 위치를 이동함으로써 수행될 수 있다.
도 9를 참조하면, 실시예들에 따른 전자 장치는, 상기 회전 각도 및 상기 이동 정도에 대응하는 하나 이상의 역-스티어링 정보를 생성(902)할 수 있다. 도 9를 참조하면, 실시예들에 따른 전자 장치는, 상기 증강 이미지 및 상기 하나 이상의 역-스티어링 파라미터들을 포함하는 학습 데이터를 생성(903)할 수 있다.
전술한 실시 예들에 따른 전자 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 메모리(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-Access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
전술한 실시 예들은 일 예시일 뿐 후술하는 청구항들의 범위 내에서 다른 실시 예들이 구현될 수 있다.

Claims (10)

  1. 전자 장치에 의해 수행되는 비행체의 자율 비행을 위한 학습 데이터 생성 방법에 있어서,
    비행체의 주행 중에 촬영되는 이미지를 획득하는 단계;
    상기 비행체가 회전한 회전 각도 및 상기 비행체가 이동한 이동 정도에 기초하여 상기 이미지에 대한 증강 이미지를 생성하는 단계;
    상기 회전 각도 및 상기 이동 정도에 기반하여 하나 이상의 역-스티어링 정보를 생성하는 단계; 및
    상기 증강 이미지 및 상기 하나 이상의 역-스티어링 정보를 포함하는 학습 데이터를 생성하는 단계; 를 포함하고,
    상기 비행체는 복수의 카메라들을 포함하고, 상기 이미지는 상기 복수의 카메라들 중 적어도 하나에 의해 촬영되고, 상기 복수의 카메라들은 상기 비행체의 주행 방향의 뷰(view)를 촬영하는 제1카메라, 상기 비행체의 주행 방향에서 좌측으로 특정 각도만큼 회전된 뷰를 촬영하는 제2카메라, 및 상기 비행체의 주행 방향에서 우측으로 상기 특정 각도만큼 회전된 뷰를 촬영하는 제3카메라를 포함하는,
    학습 데이터 생성 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 증강 이미지를 생성하는 단계는,
    상기 비행체가 회전한 회전 각도에 기초하여 상기 이미지의 회전 증강(rotational augmentation)을 수행하는 단계; 및
    상기 비행체가 이동한 이동 정도에 기초하여 상기 이미지의 이동 증강(translational augmentation)을 수행하는 단계; 를 포함하는,
    학습 데이터 생성 방법.
  4. 제1항에 있어서, 상기 역-스티어링 정보는 상기 회전 각도로 회전한 상기 비행체의 경로 복귀와 관련된 제1역-스티어링 파라미터 및 상기 이동 정도로 이동한 상기 비행체의 경로 복귀와 관련된 제2역-스티어링 파라미터에 기초하여 생성되는,
    학습 데이터 생성 방법.
  5. 제4항에 있어서, 상기 역-스티어링 정보는 상기 제1역-스티어링 파라미터 및 제2역-스티어링 파라미터 각각에 상기 회전 각도 및 상기 이동 정도를 가중함으로써 계산되는,
    학습 데이터 생성 방법.
  6. 제3항에 있어서, 상기 증강 이미지를 생성하는 단계는,
    상기 비행체에서 촬영된 하나 이상의 이미지들에 기초하여 추론된 상기 비행체의 자세 정보 및 진북(true north)의 방향 정보에 기초하여 상기 비행체의 회전 또는 이동의 결함을 보정하는 단계를 더 포함하는,
    학습 데이터 생성 방법.
  7. 제3항에 있어서, 상기 증강 이미지를 생성하는 단계는,
    상기 증강 이미지의 빈 픽셀을 값을 추정하는 단계를 더 포함하고, 상기 빈 픽셀의 값은 상기 빈 픽셀의 최근접 이웃(nearest neighbor)에 해당하는 픽셀의 값에 기반하여 결정되는,
    학습 데이터 생성 방법.
  8. 제3항에 있어서, 상기 회전 증강을 수행하는 단계는,
    카메라의 초점 거리 정보, 상기 이미지의 크기 정보, 각 픽셀의 뎁스(depth) 정보에 기초하여 결정된 상기 이미지의 픽셀들의 위치를 이동하는,
    학습 데이터 생성 방법.
  9. 비행체의 자율 비행을 위한 학습 데이터를 생성하는 전자 장치에 있어서,
    적어도 하나의 프로그램이 저장된 메모리; 및
    상기 적어도 하나의 프로그램을 실행함으로써 비행체의 주행 중에 촬영된 이미지를 획득하고, 상기 비행체가 회전한 회전 각도 및 상기 비행체가 이동한 이동 정도에 기초하여 상기 이미지에 대한 증강 이미지를 생성하고, 상기 회전 각도 및 상기 이동 정도에 대응하는 하나 이상의 역-스티어링 정보를 생성하고, 상기 증강 이미지 및 상기 하나 이상의 역-스티어링 정보를 포함하는 학습 데이터를 생성하는 프로세서; 를 포함하고,
    상기 비행체는 복수의 카메라들을 포함하고, 상기 이미지는 상기 복수의 카메라들 중 적어도 하나에 의해 촬영되고, 상기 복수의 카메라들은 상기 비행체의 주행 방향의 뷰(view)를 촬영하는 제1카메라, 상기 비행체의 주행 방향에서 좌측으로 특정 각도만큼 회전된 뷰를 촬영하는 제2카메라, 및 상기 비행체의 주행 방향에서 우측으로 상기 특정 각도만큼 회전된 뷰를 촬영하는 제3카메라를 포함하는,
    전자 장치.
  10. 비행체의 자율 비행을 위한 학습 데이터를 생성하는 방법을 컴퓨터에 실행시키기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 읽을 수 있는 비일시적 기록 매체에 있어서, 상기 학습 데이터를 생성하는 방법은:
    비행체의 주행 중에 촬영된 이미지를 획득하는 단계;
    상기 비행체가 회전한 회전 각도 및 상기 비행체가 이동한 이동 정도에 기초하여 상기 이미지에 대한 증강 이미지를 생성하는 단계;
    상기 회전 각도 및 상기 이동 정도에 대응하는 하나 이상의 역-스티어링 정보를 생성하는 단계; 및
    상기 증강 이미지 및 상기 하나 이상의 역-스티어링 정보를 포함하는 학습 데이터를 생성하는 단계; 를 포함하고,
    상기 비행체는 복수의 카메라들을 포함하고, 상기 이미지는 상기 복수의 카메라들 중 적어도 하나에 의해 촬영되고, 상기 복수의 카메라들은 상기 비행체의 주행 방향의 뷰(view)를 촬영하는 제1카메라, 상기 비행체의 주행 방향에서 좌측으로 특정 각도만큼 회전된 뷰를 촬영하는 제2카메라, 및 상기 비행체의 주행 방향에서 우측으로 상기 특정 각도만큼 회전된 뷰를 촬영하는 제3카메라를 포함하는,
    컴퓨터로 읽을 수 있는 비일시적 기록 매체.
KR1020220001790A 2022-01-05 2022-01-05 비행체의 자율 비행을 위한 학습 데이터 생성 방법 및 그 장치 KR102419101B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220001790A KR102419101B1 (ko) 2022-01-05 2022-01-05 비행체의 자율 비행을 위한 학습 데이터 생성 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220001790A KR102419101B1 (ko) 2022-01-05 2022-01-05 비행체의 자율 비행을 위한 학습 데이터 생성 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR102419101B1 true KR102419101B1 (ko) 2022-07-11

Family

ID=82396394

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220001790A KR102419101B1 (ko) 2022-01-05 2022-01-05 비행체의 자율 비행을 위한 학습 데이터 생성 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102419101B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06195125A (ja) * 1992-12-14 1994-07-15 Nec Corp 飛翔体の飛行制御装置
JPH07277286A (ja) * 1994-04-11 1995-10-24 Mitsubishi Heavy Ind Ltd 航空機用学習型飛行制御装置
KR20210001659A (ko) * 2019-06-28 2021-01-07 (주)스마트모션 드론에 부착된 vr 카메라를 이용하여 촬영한 운동 경기 영상을 제공하는 방송 시스템
KR102319649B1 (ko) * 2021-03-10 2021-10-29 세종대학교산학협력단 혼합현실에서의 드론 비행을 위한 원격 훈련 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06195125A (ja) * 1992-12-14 1994-07-15 Nec Corp 飛翔体の飛行制御装置
JPH07277286A (ja) * 1994-04-11 1995-10-24 Mitsubishi Heavy Ind Ltd 航空機用学習型飛行制御装置
KR20210001659A (ko) * 2019-06-28 2021-01-07 (주)스마트모션 드론에 부착된 vr 카메라를 이용하여 촬영한 운동 경기 영상을 제공하는 방송 시스템
KR102319649B1 (ko) * 2021-03-10 2021-10-29 세종대학교산학협력단 혼합현실에서의 드론 비행을 위한 원격 훈련 방법 및 장치

Similar Documents

Publication Publication Date Title
CN109211241B (zh) 基于视觉slam的无人机自主定位方法
Alvarez et al. Collision avoidance for quadrotors with a monocular camera
US20230215024A1 (en) Position estimation method and apparatus for tracking target, and unmanned aerial vehicle
US11064178B2 (en) Deep virtual stereo odometry
US20220292711A1 (en) Pose estimation method and device, related equipment and storage medium
Dey et al. Vision and learning for deliberative monocular cluttered flight
US11906983B2 (en) System and method for tracking targets
CN106708048B (zh) 机器人的天花板图像定位方法和系统
CN110533719B (zh) 基于环境视觉特征点识别技术的增强现实定位方法及装置
van der Zwaan et al. Visual station keeping for floating robots in unstructured environments
US20210134001A1 (en) System and method for moment capturing
CN106548486A (zh) 一种基于稀疏视觉特征地图的无人车位置跟踪方法
US11652972B2 (en) Systems and methods for self-supervised depth estimation according to an arbitrary camera
Li et al. Monocular Snapshot‐based Sensing and Control of Hover, Takeoff, and Landing for a Low‐cost Quadrotor
CN115151470A (zh) 用于调整自主车辆的规划轨迹的系统和方法
Ivancsits et al. Visual navigation system for small unmanned aerial vehicles
KR102419101B1 (ko) 비행체의 자율 비행을 위한 학습 데이터 생성 방법 및 그 장치
CN114785955B (zh) 复杂场景下动态相机运动补偿方法、系统及存储介质
WO2021056144A1 (zh) 可移动平台的返航控制方法、装置及可移动平台
Abdulov et al. Visual odometry approaches to autonomous navigation for multicopter model in virtual indoor environment
KR102695440B1 (ko) 카메라 자세 결정 및 그 방법을 수행하는 전자 장치
JP2020064029A (ja) 移動体制御装置
Lewis et al. A framework for visual return-to-home capability in GPS-denied environments
US10969786B1 (en) Determining and using relative motion of sensor modules
Reis et al. A ROS Implementation of the Situational Awareness and Maneuvering Systems for an Autonomous Marine Vessel

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant