KR102457588B1 - 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법 - Google Patents

자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법 Download PDF

Info

Publication number
KR102457588B1
KR102457588B1 KR1020190166926A KR20190166926A KR102457588B1 KR 102457588 B1 KR102457588 B1 KR 102457588B1 KR 1020190166926 A KR1020190166926 A KR 1020190166926A KR 20190166926 A KR20190166926 A KR 20190166926A KR 102457588 B1 KR102457588 B1 KR 102457588B1
Authority
KR
South Korea
Prior art keywords
keyframe
keyframes
robot
image feature
image
Prior art date
Application number
KR1020190166926A
Other languages
English (en)
Other versions
KR20210075619A (ko
Inventor
김기현
김현숙
한상훈
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020190166926A priority Critical patent/KR102457588B1/ko
Publication of KR20210075619A publication Critical patent/KR20210075619A/ko
Application granted granted Critical
Publication of KR102457588B1 publication Critical patent/KR102457588B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods

Abstract

위치 추정 서버가 자율주행 로봇의 위치를 추정하기 위하여, 자율주행 로봇에서 영상을 기초로 생성된 복수의 수신 키프레임들을 수신하면, 수신 키프레임들 각각에서 복수의 제1 영상 특징점들과 제1 영상 특징점들에 대한 제1 특징 서술자를 추출한다. 기 저장된 복수의 저장 키프레임들 각각에 대한 시각적 어휘들을 기초로 저장 키프레임들의 벡터를 계산하고, 계산한 벡터를 구성하는 저장 키프레임들의 제2 영상 특징점이 제1 영상 특징점에 일치하는 저장 키프레임을 정렬하여, 키프레임 인덱스로 생성한다. 그리고 키프레임 인덱스에 포함된 저장 키프레임들의 제2 특징 서술자들에 대한 가중치를 계산하여, 복수의 저장 키프레임들 중 비교 후보 키프레임을 선정한다.

Description

자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법{Autonomous robot, location estimation server of autonomous robot and location estimation or autonomous robot using the same}
본 발명은 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법에 관한 것이다.
자율주행 로봇(이하, '로봇'이라 지칭함)에서 시각적 장소 인식이란, 로봇이 구비된 카메라를 통해 수집한 이미지를 이용하여, 현재 있는 장소가 이전에 방문한 장소인지 여부를 확인하는 기술이다.
SLAM(Simulation Language for Alternative Modeling)에서 누적되는 로봇 위치의 오차를 줄이는 루프 결합 감지를 수행하는 데, 시각적 장소 인식은 중요한 정보를 제공한다. 시각적 장소 인식은 전역적 위치 추정, 증강 현실 등 다양한 분야에 응용 및 적용되고 있다. 전역적 위치 추정이란, 로봇의 초기 위치 정보가 없이, 로봇의 주변 환경을 인지하여 로봇의 위치를 추정하는 기술이다.
로봇이 공간을 이동하면, 로봇과 연동한 서버는 로봇이 방문한 공간에 대한 맵을 시각적 장소 인식 기법을 이용하여 생성한다. 서버에서 생성된 맵이 로봇에 제공됨으로써, 로봇은 현재 위치가 이전에 방문한 공간인지 여부를 확인할 수 있다. 그러나 로봇이 자주 방문하지 않은 공간을 주행할 때, 로봇은 현재 보고 있는 공간과 이전에 방문한 공간을 매칭하는데 어려움이 있다.
또한, 호텔 등 공간의 재배치나 조명의 변화가 빈번한 공간에서도, 강인한 공간 인식이 필요하다. 그리고 로봇은 자신의 위치에 대한 사전 정보 없이 위치를 파악할 수 있어야 한다. 그리고 불특정 다수의 외부인이 이용하는 공간(예를 들어, 호텔 등)에서 물리적인 충격이나 외부의 힘에 의해 로봇이 들어올려 임의의 장소로 이동되는 사고가 발생하더라도, 로봇은 자신이 위치하는 공간을 인지할 수 있는 기술이 필요하다.
기존의 로봇은 공간을 인지하기 위하여 현재 프레임에서 전역적 위치 추정을 수행할 때, 로봇이 현재 보고 있는 장면과 가장 유사한 키프레임을 참조하여 자신의 위치를 추정한다. 가장 유사한 키프레임을 찾기 위해, 로봇은 모든 키프레임과 현재 프레임을 비교하기 때문에 많은 연산량을 필요로 한다. 또한, 로봇이 주행을 하면 할수록 맵의 크기가 커지고 키프레임의 개수 또한 계속해서 늘어나기 때문에, 이를 해결하기 위한 방안이 필요하다.
따라서, 본 발명은 호텔과 같은 건물의 다양한 층을 주행하는 자율주행 로봇과 로봇의 위치를 추정하는 서버를 통해, 사전 정보 없이도 로봇이 주행중인 장소의 위치를 추정할 수 있는 기술을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 자율주행 로봇과 연동하여 상기 로봇이 위치를 추정할 수 있도록 비교 대상프레임을 제공하는 서버로서,
상기 자율주행 로봇으로부터 특정 영상에서 선택된 복수의 키프레임들을 수신하고, 상기 복수의 키프레임들로부터 각각 복수의 제1 영상 특징점들과 상기 복수의 제1 영상 특징점들에 대한 제1 특징 서술자들을 추출하는 키프레임 처리 모듈, 상기 복수의 키프레임들 각각의 키프레임 벡터를 계산하고, 기 저장된 복수의 저장 키프레임들의 제2 영상 특징점들을 포함하는 키프레임 인덱스 벡터를 생성하는 벡터 계산 모듈, 상기 제2 영상 특징점들에 대응되는 제1 특징 서술자들이 포함된 키프레임들을, 상기 키프레임 인덱스 벡터에 정렬하여 키프레임 인덱스로 생성하는 키프레임 인덱스 벡터 생성 모듈, 그리고 상기 키프레임 인덱스의 가중치를 계산하여, 상기 기 저장된 복수의 저장 키프레임들 중 상기 자율주행 로봇에서 상기 복수의 키프레임들과 비교하여 위치를 인식할 복수의 비교 후보 키프레임을 선정하는 비교 후보 키프레임 선정 모듈을 포함한다.
상기 키프레임 처리 모듈에서 처리한 복수의 키프레임들 및 제1 영상 특징점들과 제1 특징 서술자, 그리고 상기 저장 키프레임들에 대한 제2 영상 특징점들과 제2 특징 서술자들을 저장하는 키프레임 저장 모듈을 더 포함할 수 있다.
상기 키프레임 처리 모듈은, 상기 복수의 키프레임들 중 제1 키프레임에서 추출한 복수의 영상 특징점들 각각의 마스크 영역을 지정하고, 상기 제1 키프레임과 연속된 제2 키프레임에서 상기 마스크 영역 이외의 영역에서 복수의 추가 영상 특징점들을 추출할 수 있다.
상기 벡터 계산 모듈은, 상기 복수의 키프레임들 각각으로부터 시각적 어휘를 획득하고, 획득한 시각적 어휘를 기초로 BoW(Bag of Words) 방법으로 수신 키프레임들의 벡터를 계산할 수 있다.
상기 키프레임 인덱스 벡터 생성 모듈은, 상기 제1 영상 특징점들에 tf-idf(term frequency-inverse document frequency)를 적용하여, 상기 키프레임 인덱스를 생성할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 위치 추정 서버와 연동하는 자율주행 로봇으로서,
영상을 촬영하는 카메라, 상기 촬영된 영상으로부터 생성된 복수의 프레임들 중, 상기 로봇의 위치 추정을 위한 복수의 키프레임들을 선택하는 키프레임 생성 모듈, 상기 위치 추정 서버로 상기 복수의 키프레임을 전송하고, 상기 위치 추정 서버로부터 상기 복수의 키프레임을 기초로 선택된 복수의 비교 후보 키프레임들을 수신하는 인터페이스, 그리고 상기 복수의 키프레임과 상기 복수의 비교 후보 키프레임들을 비교하여, 상기 자율주행 로봇의 위치를 인식하는 키프레임 위치 인식 모듈을 포함한다.
상기 카메라에서 촬영된 영상을 복수의 이미지들로 생성하고, 복수의 이미지들 각각에 대한 상기 복수의 프레임을 생성하는 이미지 처리부를 더 포함할 수 있다.
상기 키프레임 위치 인식 모듈에서 상기 자율주행 로봇의 위치가 인식되면, 위치 인식을 위해 사용된 상기 복수의 키프레임들을 이용하여 키프레임 지도를 생성하는 키프레임 지도 생성부를 더 포함할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 위치 추정 서버가 자율주행 로봇의 위치를 추정하는 방법으로서,
상기 자율주행 로봇에서 영상을 기초로 생성된 복수의 수신 키프레임들을 수신하는 단계, 상기 수신 키프레임들 각각에서 복수의 제1 영상 특징점들과 상기 제1 영상 특징점들에 대한 제1 특징 서술자를 추출하는 단계, 기 저장된 복수의 저장 키프레임들 각각에 대한 시각적 어휘들을 기초로 상기 저장 키프레임들의 벡터를 계산하는 단계, 상기 계산한 벡터를 구성하는 저장 키프레임들의 제2 영상 특징점이 상기 제1 영상 특징점에 일치하는 저장 키프레임을 정렬하여, 키프레임 인덱스로 생성하는 단계, 그리고 상기 키프레임 인덱스에 포함된 저장 키프레임들의 제2 특징 서술자들에 대한 가중치를 계산하여, 복수의 저장 키프레임들 중 비교 후보 키프레임을 선정하는 단계를 포함한다.
상기 제1 특징 서술자를 추출하는 단계는, 상기 제1 영상 특징점들과 제1 특징 서술자를 기초로 특징 서술자 공간을 생성하는 단계, 그리고 상기 생성한 특징 서술자 공간을 클러스터링하여, 상기 제1 영상 특징점들을 제1 시각적 어휘로 생성하는 단계를 포함할 수 있다.
상기 제1 특징 서술자를 추출하는 단계는, 상기 수신 키프레임들 중 제1 키프레임에서 제1 키프레임 영상 특징점을 추출하는 단계, 상기 제1 키프레임과 인접한 제2 키프레임에서 제2 키프레임 영상 특징점을 추출하는 단계, 상기 추출한 제2 키프레임 영상 특징점의 수가 미리 설정한 임계값보다 적으면, 상기 제2 키프레임 영상 특징점을 기준점으로 하는 마스크 영역을 지정하는 단계, 그리고 상기 제2 키프레임에서 상기 마스크 영역 이외의 영역에서 추가 제2 키프레임 영상 특징점을 추출하는 단계를 포함할 수 있다.
상기 저장 키프레임들의 벡터를 계산하는 단계는, 상기 저장 키프레임들에 대응하는 제2 시각적 어휘를 기초로 Bow 벡터를 계산할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 위치 추정 서버와 연동한 자율주행 로봇이 위치를 추정하는 방법으로서,
촬영한 영상으로부터 복수의 이미지들을 생성하고, 상기 생성한 복수의 이미지들에 대한 프레임들을 생성하는 단계, 상기 생성한 프레임들 중 상기 로봇의 위치 추정을 위한 복수의 키프레임들을 선택하는 단계, 상기 선택한 복수의 키프레임들을 상기 위치 추정 서버로 전송하는 단계, 상기 복수의 키프레임들을 토대로 선택된 비교 후보 키프레임을 상기 위치 추정 서버로부터 수신하는 단계, 그리고 상기 수신한 비교 후보 키프레임과 상기 선택한 복수의 키프레임들을 이용하여, 위치를 추정하는 단계를 포함한다.
상기 위치를 추정하는 단계 이후에, 상기 복수의 키프레임들을 이용하여 키프레임 지도를 생성하는 단계를 포함할 수 있다.
본 발명에 따르면, BoW(Bag of Words) 기법을 이용하여 키프레임을 분류함으로써, 키프레임을 이용한 로봇의 시각적 공간 재인식 속도 및 정밀도를 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 위치 추정 서버가 적용된 환경의 예시도이다.
도 2는 본 발명의 실시예에 따른 로봇의 구조도이다.
도 3은 본 발명의 실시예에 따른 위치 추정 서버의 구조도이다.
도 4는 본 발명의 실시예에 따른 위치 추정 방법에 대한 흐름도이다.
도 5는 본 발명의 실시예에 따른 시각적 어휘 생성의 예시도이다.
도 6은 본 발명의 실시예에 따라 계산된 Bow 벡터의 예시도이다.
도 7은 본 발명의 실시예에 따른 키프레임 인덱스 벡터의 예시도이다.
도 8은 본 발명의 실시예에 따른 영상 특징점 추출 방법에 대한 흐름도이다.
도 9는 본 발명의 실시예에 따라 키프레임에서 영상 특징점이 추출된 예시도이다.
도 10은 본 발명의 실시예에 따른 시각적 어휘의 예시도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조로 하여, 본 발명의 실시예에 따른 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법을 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 위치 추정 서버가 적용된 환경의 예시도이다.
도 1에 도시된 바와 같이, 불특정 다수의 외부인이 이용하는 공간(예를 들어, 호텔 등)에 설치된 자율주행 로봇(이하, ‘로봇’이라 지칭함)(100)은 위치 추정 서버(200)와 연동한다. 또한, 로봇(100)과 위치 추정 서버(200)는 엘리베이터 제어 서버(300)와 연동한다.
로봇(100)은 내장 또는 외장 형태로 장착된 카메라를 이용하여, 로봇(100)이 주행하는 방향의 장소를 촬영하여 촬영 영상을 수집한다. 로봇(100)은 촬영 영상을 이미지 처리하여 복수의 이미지들을 생성한다.
로봇(100)은 복수의 이미지들로부터 키프레임을 각각 생성한다. 여기서 키프레임이라 함은, 로봇(100)이 촬영한 영상의 매 프레임에서 로봇(100)의 위치 인식을 위해 중요하다고 선택된 프레임을 의미한다.
예를 들어, 로봇(100)이 도 1에 도시된 바와 같이 호텔의 로비를 돌아다니면서 이미지를 수집하는 경우, 객실 문의 테두리, 엘리베이터로 연결되는 통로, 객실 번호 표지판 등이 로봇(100)의 위치 인식을 위해 중요한 요소가 될 수 있다. 따라서, 로봇(100)이 수집한 프레임에서 객실 문의 테두리나 통로, 객실 번호 표지판 등이 등장한다면, 해당 프레임을 키프레임으로 생성한다.
로봇(100)은 하나의 촬영 영상에서 하나 이상의 키프레임을 생성할 수 있다. 이미지에서 키프레임을 생성하는 방법은 다양한 방법으로 실행할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다. 그리고 하나의 이미지에서 생성하는 키프레임의 수도 한정하지 않는다.
또한, 본 발명의 실시예에서는 설명의 편의를 위하여 로봇(100)에서 키프레임을 생성하는 것을 예로 하여 설명하나, 위치 추정 서버(200)가 키프레임을 생성할 수 있다. 이러한 경우, 로봇(100)은 카메라가 촬영한 촬영 영상을 위치 추정 서버(200)로 전달하기만 하면 된다.
또한, 로봇(100)은 복수의 키프레임들을 이용하여 키프레임 지도를 생성한다. 이때, 로봇(100)은 층마다 키프레임 지도를 생성하며, 키프레임들을 이용하여 키프레임 지도를 생성하는 방법에 대해서는 이후 설명한다. 본 발명의 실시예에서는, 로봇(100)이 키프레임 지도를 생성하는 것을 예로 하여 설명하나, 위치 추정 서버(200)가 생성할 수도 있다.
로봇(100)은 위치 추정 서버(200)로부터 복수의 비교 후보 키프레임들을 수신하고, 수신한 복수의 비교 후보 키프레임들을 이용하여 로봇(100) 자신의 위치를 인식한다.
위치 추정 서버(200)는 엘리베이터 서버(300)로부터 로봇(100)이 하차한 건물의 층 정보를 수신한다. 위치 추정 서버(200)는 건물 층 정보를 수신하면, 기 저장되어 있는 해당 건물 층의 키프레임 지도를 읽어들인다. 여기서, 키프레임 지도는 건물 기둥, 복도, 방문 등 변경이 거의 발생하지 않는 구성 요소들만을 포함하는 글로벌 지도와, 화분, 이동 가능한 구조물 등의 장애물을 표시하는 로컬 지도로 구분된다.
로봇(100)이 실시간으로 지도를 업데이트하고 자기 위치를 인식하는 과정은 모두 로컬 지도에서 수행한다. 로컬 지도의 정보는 영상 특징을 통해 로봇(100)에서 구성되며, 키프레임 간 비교 수행을 통해 로봇(100) 자신의 위치를 인식힌다.
이때, 변경된 장애물 위치는 로컬 지도에 작성된다. 장애물 위치가 반복적으로 같은 위치에 인식되면, 로봇(100)은 글로벌 지도에 해당 장애물의 위치를 업데이트 한다. 즉, 가변성이 높은 장애물과 정밀 위치 인식은 로컬 지도에서 수행되며, 로컬 지도에 포함되어 있던 장애물 중 위치가 미리 설정한 횟수 이상 반복적으로 인식되면 해당 장애물의 위치는 글로벌 지도에 반영한 뒤 글로벌 지도를 구성한다.
예를 들어 설명하면, 호텔 로비에서 정문으로 주행 명령이 들어왔을 때, 로봇(100)은 로컬 지도 내에서 현재 자신의 위치를 인식한 후 주행을 수행한다. 호텔 로비에서 다른 층의 객실(이하, '목적지 객실'이라 지칭함)로 이동 명령을 수행하였을 때, 목적지 객실은 로컬 지도 상에 존재하지 않는다.
따라서, 로봇(100)은 글로벌 지도에서 목적지 객실을 탐색하여 주행한다. 즉, 호텔 전체 공간 정보를 글로벌 지도가 가지고 있다면, 해당 공간의 상세한 구역 정보는 로컬 지도가 가지고 있다고 할 수 있다.
위치 추정 서버(200)는 로봇(100)으로부터 복수의 키프레임들을 수신한다. 또한, 위치 추정 서버(200)는 로봇(100)으로부터 키프레임 지도를 수신할 수도 있다. 만약, 로봇(1000으로부터 복수의 키프레임들을 수신하였다면, 위치 추정 서버(200)는 복수의 키프레임들을 이용하여 키프레임 지도를 생성한다.
위치 추정 서버(200)는 키프레임 지도를 생성하기 위해 사용한 키프레임들 각각에 대하여, Bow(Bag of Words) 기법을 이용하여 Bow 벡터를 계산한다. Bow 기법은 문서를 자동으로 분류하기 위한 방법 중 하나로, 글에 포함된 단어들의 분포를 보고 이 문서가 어떤 종류의 문서인지를 판단하는 기법을 의미한다.
영상 처리나 컴퓨터 비전 분야에서는 Bow 기법을 주로 이미지를 분류하거나 검색하기 위한 목적으로 사용하였으며, 최근에는 물체나 장면(scene)을 인식하기 위한 용도로 활용되고 있다. 이미지 분류를 위한 Bow 기법에 대해서는 이후 설명한다.
위치 추정 서버(200)는 키프레임에서 Bow 벡터를 계산하기 위하여, 시각적 어휘를 이용한다. 이때, 시각적 어휘는 ORB(Oriented FAST and Rotated BRIEF) 특징점을 사용하여 생성되며, 이에 대해서는 이후 상세하게 설명한다.
위치 추정 서버(200)는 계산한 Bow 벡터를 이용하여, 키프레임 인덱스 벡터를 생성한다. 위치 추정 서버(200)는 키 프레임 인덱스를 이용하여 복수의 키프레임 후보를 선정하고, 선정한 복수의 키프레임 후보를 로봇(100)에 제공한다.
엘리베이터 제어 서버(300)는 로봇(100)이 엘리베이터에 탑승하거나 하차할 때, 엘리베이터 문의 개폐 상태를 기초로 로봇이 하차한 층의 층 정보를 위치 추정 서버(200)와 로봇(100)에 각각 전달한다.
이상에서 설명한 로봇(100)과 위치 추정 서버(200) 각각의 구조에 대해 도 2 및 도 3을 참조로 설명한다.
도 2는 본 발명의 실시예에 따른 로봇의 구조도이고, 도 3은 본 발명의 실시예에 따른 위치 추정 서버의 구조도이다.
도 2에 도시된 바와 같이 로봇(100)은 카메라(110), 이미지 처리 모듈(120), 키프레임 생성 모듈(130), 인터페이스(140), 키프레임 위치 인식 모듈(150), 키프레임 지도 생성 모듈(160), 그리고 로봇 구동 모듈(170)을 포함한다. 로봇(100)은 도 2에 도시한 구성 이외의 구성 요소들을 포함할 수 있다.
카메라(110)는 로봇(100)에 내장되어 있거나 로봇(100)의 외부에 부착되어, 로봇(100)의 진행 방향에 위치한 장소(배경, 객체 등)를 영상으로 촬영한다.
이미지 처리 모듈(120)은 카메라(110)가 촬영한 영상을 복수의 이미지로 생성하고, 각각의 이미지에 대한 프레임을 생성한다. 이미지 처리 모듈(120)이 영상을 이미지로 생성하거나, 이미지에 대한 프레임으로 생성하는 방법은 다양한 방법으로 실행할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
키프레임 생성 모듈(130)은 이미지 처리 모듈(120)이 생성한 복수의 프레임들 중, 복수의 프레임들을 키프레임들로 선택한다. 키프레임은 영상을 기초로 생성된 프레임들 중 로봇(100)의 위치 추정을 위해 중요한 프레임을 의미한다.
키프레임 생성 모듈(130)이 복수의 프레임들 중에서 복수의 키프레임들을 선택하는 것을 다양한 방법을 통해 이미 알려진 것이다. 따라서, 본 발명의 실시예에서는 키프레임 선택 방법에 대한 상세 설명은 생략한다.
인터페이스(140)는 키프레임 생성 모듈(130)이 생성한 복수의 키프레임들을 위치 추정 서버(200)로 전달한다. 또한, 인터페이스(140)는 키프레임 지도 생성 모듈(160)이 생성한 키프레임 지도를 위치 추정 서버(200)로 전달할 수 있다. 그리고 인터페이스(140)는 위치 추정 서버(200)로부터 복수의 키프레임들에서 선택된 적어도 하나의 비교 후보 키프레임들을 수신한다.
키프레임 위치 인식 모듈(150)은 위치 추정 서버(200)로부터 수신한 적어도 하나의 비교 후보 키프레임들과, 키프레임 생성 모듈(130)에서 생성한 키프레임들을 비교하여, 현재 로봇(100)의 위치를 인식한다.
종래에는 로봇(100)에서 생성한 모든 키프레임들과 생성한 키프레임을 비교하여 로봇(100)의 위치를 인식하였기 때문에, 위치 인식 연산이 오래 걸렸다. 그러나 본 발명의 실시예에서는 키프레임 위치 인식 모듈(150)이 위치 추정 서버(200)로부터 수신한 적은 수의 비교 후보 키프레임들과 생성한 키프레임들을 비교하기 때문에, 위치 인식 연산 시간이 단축되는 효과가 있다.
키프레임 지도 생성 모듈(160)은, 키프레임 위치 인식 모듈(150)이 로봇(100)의 위치를 인식하면, 위치 인식을 위해 사용한 키프레임들을 이용하여 로봇(100)이 위치한 건물의 키프레임 지도를 생성한다. 키프레임 지도 생성 모듈(160)은 생성한 키프레임 지도를 저장하고, 인터페이스(140)를 통해 위치 추정 서버(200)로 전달한다.
키프레임 지도 생성 모듈(160)은 로봇(100)이 엘리베이터에서 하차한 직후 로봇이 위치한 층 정보에 대응하여 로봇(100)에 저장한 로컬 지도를 불러들이는 것을 예로 하여 설명한다. 이때, 로봇(100)이 하차한 층 정보는 엘리베이터 제어 서버(300)로부터 수신한다.
즉, 로봇(100)이 룸 서비스를 위해 목적지 객실의 위치(호수)를 토대로 목적지 객실에 대한 층 정보를 인식한다. 로봇(100)이 엘리베이터 탑승을 위해 엘리베이터 앞으로 이동하면, 위치 추정 서버(200)에서 로봇(100)의 엘리베이터 탑승 대기를 인식하고, 엘리베이터 제어 서버(300)에 엘리베이터 호출을 명령한다.
엘리베이터 제어 서버(300)는 로봇(100)의 위치 추정 서버(200)와 연결되어 엘리베이터의 호출, 도착, 엘리베이터 문 개폐, 층 정보를 로봇(100)으로 전달한다. 로봇(100)이 호출한 엘리베이터가 도착하고 문이 열리면, 로봇(100)은 엘리베이터 탑승을 진행한다.
이때, 로봇(100)과 사람의 충돌을 방지하기 위해 카메라(110)가 촬영한 영상을 통해 사람을 인식한 후 탑승한다. 로봇(100)은 목적지 객실의 층에 엘리베이터가 도착하면, 해당 층 정보를 엘리베이터 제어 서버(300)와 연결된 위치 추정 서버(200)로부터 수신한다.
로봇(100)은 위치 추정 서버(200)로부터 수신한 해당 층 정보를 해당 층의 지도 정보로 전환한다. 로봇(100)이 층 정보를 이용하여 지도 정보로 전환하는 방법은 다양하므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
키프레임 지도 생성 모듈(160)이 키프레임 지도를 생성하는 방법은 다양한 방법(예를 들어, SLAM(Simultaneous Localization and Mapping) 등)으로 실행될 수 있으므로, 본 발명의 실시예에서는 상세한 설명을 생략한다. 또한, 본 발명의 실시예에서는 로봇(100)이 키프레임 지도를 생성하는 것을 예로 하여 설명하나, 위치 추정 서버(200)가 키프레임 지도를 생성할 수도 있다.
로봇 구동 모듈(170)은 로봇(100)이 주행할 수 있도록 구동한다. 로봇 구동 모듈(170)은 로봇(100)의 주행을 제어하는 제어 모듈, 로봇(100)의 하부에 설치된 바퀴, 엔진 등 로봇(100)이 자율주행 할 수 있도록 하는 구동 모듈 등 다양한 구성 요소들을 포함할 수 있다. 로봇 구동 모듈(170)의 기능은 다양하게 설정될 수 있으므로 본 발명의 실시예에서는 상세한 설명을 생략한다.
한편, 도 3에 도시된 바와 같이, 위치 추정 서버(200)는 키프레임 처리 모듈(210), 키프레임 저장 모듈(220), 벡터 계산 모듈(230), 키프레임 인덱스 벡터 생성 모듈(240), 그리고 비교 후보 키프레임 선정 모듈(250)를 포함한다.
키프레임 처리 모듈(210)은 로봇(200)으로부터 복수의 키프레임들을 수신하면, 수신한 키프레임(이하, 설명의 편의를 위하여 ‘수신 키프레임’이라 지칭함)들을 처리하여 영상 특징점과 특징 서술자를 각각 추출한다.
여기서, 영상 특징점은 물체의 형태나 크기, 위치가 변해도 쉽게 프레임에서 식별이 가능하고, 카메라의 시점이나 조명이 변해도 프레임에서 해당 지점을 쉽게 찾아낼 수 있는 점을 말한다. 그리고 특징 서술자는 영상 특징점의 지역적 특성을 설명하는 것으로, 영상 특징점들 간 비교를 가능하게 한다.
키프레임 처리 모듈(210)은 FAST(Feature from Accelerated Segment Test) 방법을 이용하여 수신 키프레임에서 영상 특징점을 추출한다. 키프레임 처리 모듈(210)이 영상 특징점을 추출할 때, 미리 설정된 수 이상의 특징점이 추출되지 않으면, 키프레임 처리 모듈(210)은 이미 추출한 영상 특징점을 중심으로 마스크 영역을 지정한다. 그리고 키프레임 처리 모듈(210)은 마스크 영역 이외의 영역에서 추가로 영상 특징점을 추출한다.
그리고, 키프레임 처리 모듈(210)은 영상 특징점을 추출할 때, 이전 키프레임과 다음 키프레임 사이의 광 흐름(optical flow)을 이용하여 다음 키프레임의 영상 특징점을 추출한다. 광 흐름은 각 픽셀별 움직임을 예상하는 알고리즘으로, 이전 프레임과 현재 프레임을 비교하여 픽셀이 움직인 방향과 크기를 구한다. 키프레임 처리 모듈(210)이 광 흐름을 이용하여 영상 특징점을 추출하는 방법은 이미 알려져 있으므로 본 발명의 실시예에서는 상세한 설명을 생략한다.
키프레임 처리 모듈(210)은 수신 키프레임에서 특징 서술자를 추출하는데, 특징 서술자로는 SIFT(Scale Invariant Feature Transform), HOG(Histogram of Oriented Gradient), 이진 기술자(BRIEF, ORB, BRISK) 등이 있다. 본 발명의 실시예에서는 빠른 비교를 위해 서술자를 이진 열로 표현하는 BRIEF 서술자를 이용하는 것을 예로 하여 설명한다.
여기서, 키프레임 처리 모듈(210)이 영상 특징점을 추출하기 위해 사용한 FAST 방법과, 특징 서술자를 추출하기 위해 사용한 BRIEF 서술자를 합쳐 ORB(Oriented FAST and Rotated BRIEF)라 한다. FAST 방법과 BRIEF 서술자는 이미 알려진 것으로, 본 발명의 실시예에서는 상세한 설명을 생략한다.
키프레임 처리 모듈(210)은 키프레임 저장 모듈(220)에 층별로 관리되는 키프레임 지도를 수신한다. 키프레임 지도는 로봇(100)이 위치를 인식하기 위해 비교할 비교 후보 키프레임들을 비교 후보 키프레임 선정 모듈(250)이 선정할 때 이용된다.
키프레임 저장 모듈(220)은 키프레임 처리 모듈(210)이 수신한 수신 키프레임과, 키프레임 처리 모듈(210)에서 추출된 영상 특징점과 특징 서술자를 매핑하여 저장한다. 본 발명의 실시예에서는 모든 키프레임들을 바이너리 파일 형태 저장하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
그리고 키프레임 저장 모듈(220)은 로봇(100)으로부터 수신한 키프레임들을 이용하여 로봇(100)이 위치한 건물의 키프레임 지도를 건물 층별로 생성한다. 키프레임 저장 모듈(220)은 생성한 키프레임 지도를 저장하고, 키프레임 처리 모듈(210)로 제공한다.
키프레임 저장 모듈(220)은 로봇(100)이 엘리베이터에서 하차한 직후 키프레임 지도를 생성하는 것을 예로 하여 설명한다. 이때, 로봇(100)이 하차한 층 정보를 키프레임 지도에 대응하여 저장하기 위하여, 엘리베이터 제어 서버(300)로부터 층 정보 신호를 수신한다.
또한, 본 발명의 실시예에서는 로봇(100)에서도 키프레임 지도를 생성할 수도 있다. 이 경우, 키프레임 저장 모듈(220)은 로봇(100)이 생성한 키프레임 지도를 층 정보와 함께 수신하여, 층별로 저장, 관리하기만 한다.
벡터 계산 모듈(230)은 키프레임 처리 모듈(210)이 수신한 수신 키프레임들 각각의 키프레임 벡터를 계산한다. 본 발명의 실시예에서는 수신 키프레임들에서 키프레임 벡터를 계산하기 위해 Bow 방법을 이용하는 것을 예로 하여 설명한다.
Bow 방법은 문서를 자동으로 분류하기 위한 방법 중 하나로, 글에 포함된 단어들의 분포를 통해 해당 문서가 어떤 종류의 문서인지 판단하는데 사용되는 방법이다. 본 발명의 실시예에서는 벡터 계산 모듈(230)이 Bow 방법을 이용하여 수신 키프레임들을 분류하는데 사용한다.
벡터 계산 모듈(230)이 수신 키프레임들의 벡터를 계산하기 위해서는, 수신 키프레임들 각각의 시각적 어휘(visual vocabulary)가 필요하다. 시각적 어휘를 얻기 위해, 벡터 계산 모듈(230)은 수신 키프레임들에 대해 키프레임 처리 모듈(210)이 추출한 영상 특징점과 특징 서술자를 확인한다.
여기서, 시각적 어휘는 키프레임 처리 모듈(210)이 키프레임에서 특징점과 특징 서술자를 추출하고, 추출한 특징 서술자로 특징점을 학습한 결과이다. 시각적 어휘의 예에 대해서는 이후 상세히 설명한다.
벡터 계산 모듈(230)은 저장 키프레임들의 영상 특징점과 특징 서술자, 수신 키프레임들의 영상 특징점과 특징 서술자를 기초로, 수신 키프레임들의 특징 서술자 그룹을 생성한다. 여기서, 특징 서술자 그룹은 벡터 계산 모듈(230)이 유사한 방향성을 지닌 특징 서술자들을 클러스터링하여 생성한 것이다.
벡터 계산 모듈(230)은 생성한 특징 서술자 그룹을 클러스터링을 수행하여 복수의 시각적 어휘를 생성한다. 여기서, 벡터 계산 모듈(230)은 특징 서술자 그룹을 클러스터링할 때 K-means 클러스터링을 수행하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
키프레임 인덱스 벡터 생성 모듈(240)은 키프레임 처리 모듈(210)이 추출한 영상 특징점을 가지는 수신 키프레임들을 정렬하여 키프레임 인덱스 벡터로 생성한다. 키프레임 인덱스 벡터는 키프레임들에 각각 점수를 부여하기 위한 가중치로, 문서 분류와 동일한 방식인 tf-idf(term frequency-inverse document frequency)를 시각적 어휘에 적용하여 사용한다.
tf-idf는 정보 검색 및 검색 엔진에 사용하는 가중치로서, 여러 문서로 구성된 문서 군이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한지를 나타내는 수치를 의미한다. 영어 문서를 예로 하면, a, an, and, of, but과 같은 관사나 접속사는 특정 문서에서 많이 등장하므로, 가중치도 낮고 중요 단어로 선택되지 않는다. 이를 본 발명의 실시예에 따른 시각적 어휘에 적용하면, 차별성이 있는 영상 특징점이 문서에서의 단어라 볼 수 있다.
키프레임 인덱스 벡터 생성 모듈(240)은 수신 키프레임에서 확인한 영상 특징점을, 벡터를 구성하는 각각의 요소에 정렬하여 키프레임 인덱스 벡터로 생성한다. 키프레임 인덱스 벡터의 각 요소인 영상 특징점은 시각적 어휘에 포함된 특징점에 해당한다.
키프레임 인덱스 벡터 생성 모듈(240)은 벡터 계산 모듈(230)에서 계산된 모든 키프레임들의 Bow 벡터의 요소인 특징점과, 특징점에 대응하는 키프레임 인덱스 벡터의 요소에 해당 키프레임을 사용한다. 모든 키프레임들에 대해 이 작업을 수행하면 각 워드에 해당하는 요소마다 해당 워드가 포함된 Bow 벡터를 가지고 있는 키프레임 목록이 완성된다.
비교 후보 키프레임 선정 모듈(250)은 현재 프레임을 구성하는 워드와 비교후보 키프레임들의 워드를 비교한다. 그리고 비교 후보 키프레임 선정 모듈(250)은 비교한 결과가 미리 설정된 임계값(예를 들어, 80% 등) 이상의 중복되는 워드를 가지는 키프레임이 존재하는 경우, 현재 프레임의 Tf-idf 가중치 점수를 증가시킨다.
비교 후보 키프레임 선정 모듈(250)은 증가시킨 Tf-idf 가중치 점수가 높은 키프레임들 중 미리 설정한 수 또는 미리 설정된 가중치 점수를 나타내는 키프레임을 비교 후보 키프레임으로 선정한다. 비교 후보 키프레임 선정 모듈(250)은 선정한 비교 후보 키프레임을 로봇(100)으로 전달한다. 이를 토대로, 로봇(100)에서 현재 촬영중인 영상의 키프레임과 비교 후보 키프레임을 비교하여, 로봇(100)이 현재 위치를 파악하도록 한다.
이상에서 설명한 로봇(100)과 위치 추정 서버(200)를 이용하여, 로봇(100)의 위치를 추정하는 방법에 대해 도 4를 참조로 설명한다.
도 4는 본 발명의 실시예에 따른 위치 추정 방법에 대한 흐름도이다.
도 4에 도시된 바와 같이, 로봇(100)은 이동하면서 카메라(110)를 이용하여 장소를 촬영하면, 촬영한 동영상을 이미지로 처리하여 복수의 프레임으로 생성한다(S100). 생성한 복수의 프레임들 중, 로봇(100)이 위치 추정을 위해 중요한 프레임이라 판단하는 적어도 하나 이상의 프레임들을 키프레임들로 생성하여 위치 추정 서버(200)로 전달한다(S101, S102).
여기서, 로봇(100)이 복수의 프레임들 중 키프레임들을 선정하는 방법은 다양한 방법으로 수행할 수 있다. 또한, 로봇(100)은 S100 단계에서 생성한 이미지를 위치 추정 서버(200)로 전달하고, 위치 추정 서버(200)가 키프레임을 선정할 수도 있다.
복수의 키프레임들을 수신한 위치 추정 서버(200)는, 수신한 수신 키프레임에서 영상 특징점과 특징 서술자를 추출한다(S103). 그리고 추출한 영상 특징점과 특징 서술자를 이용하여 생성한 특징 서술자 공간을 클러스터링하여 복수의 영상 특징점들을 시각적 어휘로 생성한다(S104).
위치 추정 서버(200)는 기 저장되어 있는 모든 저장 키프레임들의 Bow 벡터를 계산한다(S105). Bow 벡터를 계산하기 위해서 시각적 어휘가 필요한데, 모든 저장 키프레임들은 시각적 어휘가 추출되어 있으므로, 추출된 시각적 어휘를 이용하여 저장 키프레임들의 Bow 벡터를 계산한다.
위치 추정 서버(200)가 키프레임에 대해서 BoW 벡터를 계산하기 위해서는 시각적 어휘가 필요하다. 본 발명의 실시예에서는 ORB 특징을 사용하기 때문에, ORB특징으로 학습한 시각적 어휘를 사용한다. 시각적 어휘는 이미지를 희소 수 벡터(sparse numerical vector)인 BoW 벡터로 변환하는데 사용되는 것으로, 수많은 학습 이미지들로부터 특징점과 특징 서술자를 추출하고, 특징 서술자 공간을 K-median 클러스터링을 통해 W개의 시각적 단어로 표현한 것이다.
위치 추정 서버(200)는 S105 단계에서 계산한 Bow 벡터의 요소인 영상 특징점들과 S103 단계에서 추출한 수신 키프레임의 영상 특징점을 비교한다. 그리고 일치하는 영상 특징점을 가지는 저장 키프레임을 정렬하여 키프레임 인덱스 벡터로 생성한다(S106).
위치 추정 서버(200)는 S106 단계에서 생성한 키프레임 인덱스 벡터의 가중치를 계산하고, 미리 설정된 점수 이상을 나타내는 저장 키프레임을 비교 후보 키프레임으로 선정한다(S107). 위치 추정 서버(200)는 S107 단계에서 선정한 비교 후보 키프레임들을 로봇(100)으로 전송한다(S108).
여기서, S107 단계에서 위치 추정 서버(200)가 복수의 저장 키프레임들 중 비교 후보 키프레임들을 선정할 때, 현재 키프레임의 Bow 벡터와의 유사도 점수를 계산하여 비교 후보 키프레임을 선정한다. 유사도 점수는 다음 수학식 1을 통해 계산한다.
Figure 112019129176156-pat00001
여기서, v는 수신한 현재 키프레임의 Bow 벡터, w 저장 키프레임의 Bow 벡터를 의미한다. n은 워드 개수, i는 인덱스를 의미하고, vi은 현재 키프레임의 Bow 벡터에서 인덱스에 해당하는 영상 특징점의 가중치, wi는 저장 키프레임의 Bow 벡터에서 인덱스에 해당하는 영상 특징점의 가중치를 의미한다.
수학식 1을 이용하여 키프레임에 공통으로 속해있는 모든 영상 특이점에 대한 유사도 점수를 계산한 후, 위치 추정 서버(200)는 다음 수학식 2를 이용하여 현재 키프레임에 대한 최종 유사도 점수를 계산한다.
Figure 112019129176156-pat00002
본 발명의 실시예에서는 비교 후보 키프레임을 선정하는 과정에서 현재 키프레임의 가중치를 더 우선시하기 위하여, 유사도 점수를 계산하는 과정에서도 현재 키프레임과 저장 키프레임의 가중치를 곱하여 사용한다. 이를 토대로, 키프레임의 가중치가 낮아 현재 키프레임의 가중치가 무시될 수 있는 경우의 수를 최대한 줄이고, 정확도를 높였다.
로봇(100)은 S108 단계에서 수신한 비교 후보 키프레임들과 S101 단계에서 생성한 키프레임을 비교하여, 로봇(100) 자신의 현재 위치를 인식한다(S110). 그리고 로봇이 위치를 인식하는데 사용한 키프레임을 키프레임 지도로 생성한다(S111).
이와 같은 절차로 로봇(100)이 자신의 위치를 인식할 때, 모든 키프레임들과 비교하는 것이 아니라 선정된 비교 후보 키프레임들과 자신이 생성한 키프레임을 비교함으로써, 키프레임 비교를 위한 연산량을 줄이고 빠르게 위치를 파악할 수 있다.
이상에서 설명한 절차 중, S104 단계에서 복수의 시각적 어휘를 생성하는 예에 대해 도 5를 참조로 설명한다.
도 5는 본 발명의 실시예에 따른 시각적 어휘 생성의 예시도이다.
도 5에 도시된 바와 같이, BoW 방법을 이용하여 로봇(100)의 시각적 공간 재인식의 개선하기 위해, 위치 추정 서버(200)는 키프레임 인덱스 벡터를 생성한다. 먼저, 로봇(100)의 전역적 위치 추정을 하기 위해, 위치 추정 서버(200)에 기 저장된 바이너리 파일을 읽어들여, 저장 키프레임들을 불러온다. 위치 추정 서버(200)는 모든 저장 키프레임에 대한 영상 특징점과 특징 서술자를 불러온다.
위치 추정 서버(200)는 수신 키프레임에 대한 BoW 벡터를 계산하기 위해, ORB SLAM으로 ORB 특징으로 학습한 시각적 어휘를 사용한다. 여기서, ORB SLAM은 SLAM 기술 중의 하나로, ORB SLAM에서 키프레임 특징을 추출할 때 추출한 특징이 ORB 특징이 된다. 도 5에 도시된 바와 같이, 총 6개의 그룹을 가지는 시각적 위치를 생성한 예를 나타내었으며, 이를 6개의 시각적 어휘를 가진다고 지칭한다.
예를 들어 설명하면, 위치 추정 서버(200)가 키프레임 내 객실 문의 특징점과 특징 서술자를 지닌 이미지를 같은 특성을 지닌 키프레임으로 군집화하였다고 가정한다. 위치 추정 서버(200)가 군집화한 객실 문의 특징점과 특징 서술자는 로봇(100)이 객실 문 앞에서 영상으로 위치 인식을 수행하고자 할 때, 비교 키프레임으로 사용된다.
도 5에서는 대표 시각적 어휘를 6개 선정한 예를 도시한 것이며, 대표 시각적 어휘의 수가 반드시 이와 같이 한정되는 것은 아니다.
다음은 상기 도 4의 S105 단계에서 계산된 벡터의 예에 대해 도 6을 참조로 설명한다.
도 6은 본 발명의 실시예에 따라 계산된 Bow 벡터의 예시도이다.
도 6에 도시된 바와 같이, 위치 추정 서버(200)는 각 키프레임의 BoW 벡터를 계산하기 위해, 해당 키프레임의 모든 특징 서술자들에 대한 시각적 어휘의 각 레벨에서 해밍거리를 최소화하는 노드를 선택한다. 그리고 첫 시작점인 루트 노드에서 워드에 해당하는 잎 노드까지, 트리 구조의 시각적 어휘를 검색하여 가장 잘 대표할 수 있는 워드를 선택한다.
이는 모든 워드에 해당하는 노드를 검색하는 것이 아니라, 각 레벨에서 해밍거리가 가장 가까운 하나의 노드를 선택하고, 이외의 노드에 대해서는 검색하지 않기 때문에 효율적으로 워드를 선택할 수 있다.
그리고 위치 추정 서버(200)는 tf-idf를 이용해 키프레임에 대하여 선택한 워드의 가중치를 계산한다. 이렇게 선택된 워드와 가중치를 한 쌍으로 모든 쌍들을 모아 BoW 벡터를 생성한다.
즉, 다수의 키프레임 내의 영상 특징점이나 특징 서술자를 비교 또는 학습하기 위하여, 위치 추정 서버(200)는 키프레임의 영상 특징점에서 방향성을 지닌 특징 서술자를 수치화한다. 예를 들어 객실 문의 모서리에서 오늘 쪽 방향을 가리키는 수평적인 특징은 1, 수직적인 특징은 2로 수치화하여 위치 추정 서버(200)에서 관리하고, 이는 키프레임을 그룹화하는 기준이 된다.
다음은 상기 도 4의 S106 단계에서 생성한 키프레임 인덱스 벡터의 예에 대해 도 7을 참조로 설명한다.
도 7은 본 발명의 실시예에 따른 키프레임 인덱스 벡터의 예시도이다.
도 7에 도시된 바와 같이, 키프레임 인덱스 벡터의 각 요소는, ORB 특징으로 학습한 시각적 어휘에 있는 워드와 대응한다. 위치 추정 서버(200)는 저장되어 있는 모든 저장 키프레임들의 Bow 벡터를 계산한 후, 각 Bow 벡터의 요소인 워드에 대응하는 키프레임 인덱스 벡터의 요소에 해당 키프레임을 사용한다.
도 7을 예를 들면, 키프레임 인덱스 벡터의 역삼각형 워드 요소에 접근하면, 역삼각형 워드가 포함된 BoW 벡터를 가지고 있는 키프레임은 1, 2, 3인 것을 알 수 있다. 특정 워드가 포함된 키프레임을 찾을 때 모든 키프레임을 비교할 필요 없이 해당 워드 요소에만 접근하면 되므로 수행시간이 단축된다.
즉, 위치 추정 서버(200)는 선정된 키프레임들을 그룹화하는 기준을 통해, 키프레임들을 다시 정렬한다. 한 실시예로 위치 추정 서버(200)는 객실 복도의 조명 엣지의 특징을 지닌 키프레임 인덱스 벡터를 가진 키프레임을, 유사한 인덱스 벡터를 가진 키프레임 이미지들끼리 그룹화한다.
이렇게 위치 추정 서버(200)에서 미리 그룹화한 키프레임 이미지는, 로봇(100)이 객실 복도의 조명 근처에서 위치 재인식을 카메라로 수행할 때, 비교 이미지들로 선정되어 신속하게 영상으로 로봇이 위치를 인식할 수 있게 해준다. 모든 키프레임들에 대해 이 작업을 수행하면, 각 영상 특징점에 해당하는 요소마다 해당 영상 특징점이 포함된 Bow 벡터를 가지고 있는 키프레임 목록이 도 7에 도시한 바와 같이 완성된다.
한편, 상기에서 설명한 도 4의 S103 단계에서 위치 추정 서버(200)가 키프레임에서 영상 특징점을 추출하는 방법에 대해 도 8을 참조로 설명한다.
도 8은 본 발명의 실시예에 따른 영상 특징점 추출 방법에 대한 흐름도이다.
도 8에 도시된 바와 같이, 위치 추정 서버(200)가 로봇(100)으로부터 복수의 키프레임을 수신하면, 제1 키프레임에서 복수의 영상 특징점들을 추출한다(S200). 제1 키프레임에서 복수의 영상 특징점들을 추출한 후, 위치 추정 서버(200)는 제1 키프레임과의 광 흐름을 이용하여, 제2 키프레임에서 복수의 영상 특징점들을 추출한다(S201). 여기서, 광 흐름은 두 개의 연속된 비디오 프레임 사이에 이미지 객체의 가시적인 동작 패턴을 의미하는 것으로, 광 흐름에 대한 사항은 이미 알려져 있으므로 본 발명의 실시예에서는 상세한 설명을 생략한다.
위치 추정 서버(200)는 S201 단계에서 추출한 제2 키프레임의 영상 특징점들의 수가 미리 설정한 임계값보다 많은지 확인한다(S202).
제2 키프레임에서 추출한 영상 특징점들의 수가 충분하지 않은 경우, 위치 추정 서버(200)는 S201 단계에서 추출한 영상 특징점을 중심점으로 하고 미리 정의한 길이의 반지름을 갖는 원을 생성하여 마스크 영역으로 지정한다(S203). 위치 추정 서버(200)가 영상 특징점을 중심으로 마스크 영역을 지정하는 방법은 다양한 방법을 통해 수행할 수 있으므로, 본 발명의 실시예에서는 상세한 설명을 생략한다.
위치 추정 서버(200)는 S203 단계에서 지정한 제2 키프레임에서의 마스크 영역을 제외한 나머지 영역에서 추가로 복수의 영상 특징점을 추출한다(S204). 그리고 추가로 추출한 복수의 영상 특징점들과 S201 단계에서 추출한 영상 특징점들의 수가 미리 설정한 임계값 보다 많은지 확인한다(S205).
제2 키프레임에서 추출한 모든 영상 특징점들의 수가 임계값보다 많으면, 위치 추정 서버(200)는 제2 키프레임에 연속된 제3 키프레임에서, 제2 키프레임과의 광 흐름을 이용하여 영상 특징점을 추출한다(S206). 그러나 제2 키프레임에서 추출한 모든 영상 특징점들의 수가 임계값보다 적으면, S203 단계 이후의 절차를 반복 수행한다.
이상에서 설명한 영상 특징점 추출 예에 대해 도 9를 참조로 설명한다.
도 9는 본 발명의 실시예에 따라 키프레임에서 영상 특징점이 추출된 예시도이다.
도 9의 (a)는 t 시점에 임의의 키프레임에서 추출한 7개의 영상 특징점들을 나타낸 예시도이다. 그리고 도 9의 (b)는 t+1 시점에 임의의 키프레임에서 추출한 15개의 영상 특징점들을 나타낸 예시도이다.
도 9의 (a)에 나타낸 바와 같이, 위치 추정 서버(200)가 임의의 키프레임에서 t 시점에 7개의 영상 특징점을 추출한 후(①), 각각의 영상 특징점을 기준으로 하는 원을 생성하여 마스크 영역으로 지정한다(②, ③). 이때, 키프레임에서 추출한 7개의 영상 특징점이 임계값 보다 적다고 가정한다.
그러면, 위치 추정 서버(200)는 도 9의 (b)에 나타낸 바와 같이, 임의의 키프레임에서 7개의 영상 특징점을 기준으로 형성된 마스크 영역 이외의 영역에서 8개의 영상 특징점들을 추가로 추출한다(④). 그리고 추가로 추출한 8개의 영상 특징점들을 포함하여 마스크 영역을 지정한다(⑤, ⑥).
이와 같이, 본 발명의 실시예에서는 마스크 방식으로 영상 특징점들을 추출하기 때문에, 키프레임의 특정 영역에만 영상 특징점이 추출되는 것이 아니라 키프레임 전체에 고르게 영상 특징점을 추출할 수 있다. 따라서, 보다 많은 영상 특징점을 추출할 수 있다. 또한, 광 흐름에 유리한 영상 특징점들을 추출하므로, 이전 키프레임과 다음 키프레임 사이의 광 흐름 성능을 높일 수 있다.
다음은 벡터 계산 모듈(230)이 수신 키프레임들의 벡터를 계산하기 위해 사용한 시각적 어휘에 대해 도 10을 참조로 설명한다.
도 10은 본 발명의 실시예에 따른 시각적 어휘의 예시도이다.
도 10의 (a)와 같이 로봇(100)이 촬영한 이미지를 수신하면, 키프레임 처리 모듈(210)은 해당 이미지에서 특징이 되는 픽셀을 추출한다. 빨간색과 파란색으로 표시된 부분이 특징이 되는 픽셀이다. 해당 픽셀 값은 방향성을 지닌 벡터로 표현할 수 있고, 방향성을 지닌 값은 기존에 공지된 기술을 통해 특징 서술자로 변환할 수 있다.
그리고 도 10의 (b)에 도시된 바와 같이, 특징 서술자는 영상 특징점에 대해 방향 히스토그램을 구하고, 가장 강한 방향을 특징점 방향으로 결정한다. 특징 서술자 중에서도 유사한 특징 서술자들을 클러스터링하면, 키프레임 처리 모듈(210)은 tf-idf를 수행하기 위한 소수의 대표하는 시각적 어휘로 나타낸다. 소수의 대표적인 시각적 어휘가 도 10의 (c)에 해당한다.
예를 들어, 로봇(100)이 호텔의 로비를 돌아다니면서 키프레임 이미지를 수집하는 경우, 객실 문의 테두리, 엘리베이터로 연결되는 통로, 객실 번호 표지판 등의 특징 서술자는 가장 강한 방향을 지닌 특징 서술자가 될 수 있다. 따라서, 해당 특징을 지닌 키프레임을 차별성 있는 특징점의 특징 서술자가 속한 시각적 어휘라 할 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (14)

  1. 자율주행 로봇과 연동하여 상기 로봇이 위치를 추정할 수 있도록 비교 대상프레임을 제공하는 서버로서,
    상기 자율주행 로봇으로부터 특정 영상에서 선택된 복수의 키프레임들을 수신하고, 상기 복수의 키프레임들로부터 각각 복수의 제1 영상 특징점들과 상기 복수의 제1 영상 특징점들에 대한 제1 특징 서술자들을 추출하는 키프레임 처리 모듈,
    상기 복수의 키프레임들 각각의 키프레임 벡터를 계산하고, 기 저장된 복수의 저장 키프레임들의 제2 영상 특징점들을 포함하는 키프레임 인덱스 벡터를 생성하는 벡터 계산 모듈,
    상기 제2 영상 특징점들에 대응되는 제1 특징 서술자들이 포함된 키프레임들을, 상기 키프레임 인덱스 벡터에 정렬하여 키프레임 인덱스로 생성하는 키프레임 인덱스 벡터 생성 모듈, 그리고
    상기 키프레임 인덱스의 가중치를 계산하여, 상기 기 저장된 복수의 저장 키프레임들 중 상기 자율주행 로봇에서 상기 복수의 키프레임들과 비교하여 위치를 인식할 복수의 비교 후보 키프레임을 선정하는 비교 후보 키프레임 선정 모듈
    을 포함하는 위치 추정 서버.
  2. 제1항에 있어서,
    상기 키프레임 처리 모듈에서 처리한 복수의 키프레임들 및 제1 영상 특징점들과 제1 특징 서술자, 그리고 상기 저장 키프레임들에 대한 제2 영상 특징점들과 제2 특징 서술자들을 저장하는 키프레임 저장 모듈
    을 더 포함하는 위치 추정 서버.
  3. 제1항에 있어서,
    상기 키프레임 처리 모듈은,
    상기 복수의 키프레임들 중 제1 키프레임에서 추출한 복수의 영상 특징점들 각각의 마스크 영역을 지정하고,
    상기 제1 키프레임과 연속된 제2 키프레임에서 상기 마스크 영역 이외의 영역에서 복수의 추가 영상 특징점들을 추출하는 위치 추정 서버.
  4. 제1항에 있어서,
    상기 벡터 계산 모듈은,
    상기 복수의 키프레임들 각각으로부터 시각적 어휘를 획득하고, 획득한 시각적 어휘를 기초로 BoW(Bag of Words) 방법으로 수신 키프레임들의 벡터를 계산하는 위치 추정 서버.
  5. 제4항에 있어서,
    상기 키프레임 인덱스 벡터 생성 모듈은,
    상기 제1 영상 특징점들에 tf-idf(term frequency-inverse document frequency)를 적용하여, 상기 키프레임 인덱스를 생성하는 위치 추정 서버.
  6. 위치 추정 서버와 연동하는 자율주행 로봇으로서,
    영상을 촬영하는 카메라,
    상기 촬영된 영상으로부터 생성된 복수의 프레임들 중, 상기 로봇의 위치 추정을 위한 복수의 키프레임들을 선택하는 키프레임 생성 모듈,
    상기 로봇의 위치 인식을 위해 사용된 상기 복수의 키프레임들을 이용하여 키프레임 지도를 생성하는 키프레임 지도 생성부,
    상기 위치 추정 서버로 상기 키프레임 지도를 전송하고, 상기 위치 추정 서버로부터 상기 키프레임 지도를 선택된 복수의 비교 후보 키프레임들을 수신하는 인터페이스, 그리고
    상기 복수의 키프레임과 상기 복수의 비교 후보 키프레임들을 비교하여, 상기 자율주행 로봇의 위치를 인식하는 키프레임 위치 인식 모듈
    을 포함하는 자율주행 로봇.
  7. 제6항에 있어서,
    상기 카메라에서 촬영된 영상을 복수의 이미지들로 생성하고, 복수의 이미지들 각각에 대한 상기 복수의 프레임을 생성하는 이미지 처리부
    를 더 포함하는 자율주행 로봇.
  8. 삭제
  9. 위치 추정 서버가 자율주행 로봇의 위치를 추정하는 방법으로서,
    상기 자율주행 로봇에서 영상을 기초로 생성된 복수의 수신 키프레임들을 수신하는 단계,
    상기 수신 키프레임들 각각에서 복수의 제1 영상 특징점들과 상기 제1 영상 특징점들에 대한 제1 특징 서술자를 추출하는 단계,
    기 저장된 복수의 저장 키프레임들 각각에 대한 시각적 어휘들을 기초로 상기 저장 키프레임들의 벡터를 계산하는 단계,
    상기 계산한 벡터를 구성하는 저장 키프레임들의 제2 영상 특징점이 상기 제1 영상 특징점에 일치하는 저장 키프레임을 정렬하여, 키프레임 인덱스로 생성하는 단계, 그리고
    상기 키프레임 인덱스에 포함된 저장 키프레임들의 제2 특징 서술자들에 대한 가중치를 계산하여, 복수의 저장 키프레임들 중 비교 후보 키프레임을 선정하는 단계
    를 포함하는 로봇 위치 추정 방법.
  10. 제9항에 있어서,
    상기 제1 특징 서술자를 추출하는 단계는,
    상기 제1 영상 특징점들과 제1 특징 서술자를 기초로 특징 서술자 공간을 생성하는 단계, 그리고
    상기 생성한 특징 서술자 공간을 클러스터링하여, 상기 제1 영상 특징점들을 제1 시각적 어휘로 생성하는 단계
    를 포함하는 로봇 위치 추정 방법.
  11. 제10항에 있어서,
    상기 제1 특징 서술자를 추출하는 단계는,
    상기 수신 키프레임들 중 제1 키프레임에서 제1 키프레임 영상 특징점을 추출하는 단계,
    상기 제1 키프레임과 인접한 제2 키프레임에서 제2 키프레임 영상 특징점을 추출하는 단계,
    상기 추출한 제2 키프레임 영상 특징점의 수가 미리 설정한 임계값보다 적으면, 상기 제2 키프레임 영상 특징점을 기준점으로 하는 마스크 영역을 지정하는 단계, 그리고
    상기 제2 키프레임에서 상기 마스크 영역 이외의 영역에서 추가 제2 키프레임 영상 특징점을 추출하는 단계
    를 포함하는 로봇 위치 추정 방법.
  12. 제11항에 있어서,
    상기 저장 키프레임들의 벡터를 계산하는 단계는,
    상기 저장 키프레임들에 대응하는 제2 시각적 어휘를 기초로 Bow 벡터를 계산하는 로봇 위치 추정 방법.
  13. 위치 추정 서버와 연동한 자율주행 로봇이 위치를 추정하는 방법으로서,
    촬영한 영상으로부터 복수의 이미지들을 생성하고, 상기 생성한 복수의 이미지들에 대한 프레임들을 생성하는 단계,
    상기 생성한 프레임들 중 상기 로봇의 위치 추정을 위한 복수의 키프레임들을 선택하고, 상기 복수의 키프레임들을 기초로 키프레임 지도를 생성하는 단계,
    상기 생성한 키프레임 지도를 상기 위치 추정 서버로 전송하는 단계,
    상기 키프레임 지도를 기초로 선택된 비교 후보 키프레임을 상기 위치 추정 서버로부터 수신하는 단계, 그리고
    상기 수신한 비교 후보 키프레임과 상기 선택한 복수의 키프레임들을 이용하여, 위치를 추정하는 단계
    를 포함하는 로봇 위치 추정 방법.
  14. 제13항에 있어서,
    상기 위치를 추정하는 단계 이후에,
    상기 위치를 추정하는 데 사용한 키프레임을 상기 키프레임 지도로 생성하는 단계
    를 더 포함하는 로봇 위치 추정 방법.
KR1020190166926A 2019-12-13 2019-12-13 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법 KR102457588B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190166926A KR102457588B1 (ko) 2019-12-13 2019-12-13 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190166926A KR102457588B1 (ko) 2019-12-13 2019-12-13 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법

Publications (2)

Publication Number Publication Date
KR20210075619A KR20210075619A (ko) 2021-06-23
KR102457588B1 true KR102457588B1 (ko) 2022-10-24

Family

ID=76599304

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190166926A KR102457588B1 (ko) 2019-12-13 2019-12-13 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법

Country Status (1)

Country Link
KR (1) KR102457588B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076988B (zh) * 2021-03-25 2022-06-03 重庆邮电大学 基于神经网络的移动机器人视觉slam关键帧自适应筛选方法
KR102621089B1 (ko) * 2022-01-12 2024-01-08 네이버랩스 주식회사 시각적 측위방법,이를 이용하는 제어서버 및 건물
KR20240020865A (ko) * 2022-08-09 2024-02-16 네이버랩스 주식회사 로봇 제어를 위한 전자 장치, 시스템 및 방법
CN116399326B (zh) * 2023-04-06 2023-10-13 安徽工程大学 一种基于自适应关键帧选取的机器人地图构建方法、存储介质及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133658A (ja) 2018-01-31 2019-08-08 株式会社リコー 測位方法、測位装置及び読取り可能な記憶媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140323148A1 (en) * 2013-04-30 2014-10-30 Qualcomm Incorporated Wide area localization from slam maps
KR102557049B1 (ko) * 2018-03-30 2023-07-19 한국전자통신연구원 Slam 기반 카메라 추적에서 라벨된 키프레임을 이용한 이미지 특징 매칭 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133658A (ja) 2018-01-31 2019-08-08 株式会社リコー 測位方法、測位装置及び読取り可能な記憶媒体

Also Published As

Publication number Publication date
KR20210075619A (ko) 2021-06-23

Similar Documents

Publication Publication Date Title
KR102457588B1 (ko) 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법
Yang et al. Recognizing hand gestures using motion trajectories
CN108960184B (zh) 一种基于异构部件深度神经网络的行人再识别方法
Afif et al. Indoor objects detection and recognition for an ICT mobility assistance of visually impaired people
Hu et al. A system for learning statistical motion patterns
CN111080659A (zh) 一种基于视觉信息的环境语义感知方法
Yang et al. Extraction of 2d motion trajectories and its application to hand gesture recognition
US8213679B2 (en) Method for moving targets tracking and number counting
CN106845430A (zh) 基于加速区域卷积神经网络的行人检测与跟踪方法
KR101395094B1 (ko) 개체 검출 방법 및 시스템
KR102177412B1 (ko) 이미지와 텍스트간 유사도 매칭 시스템 및 방법
KR102462934B1 (ko) 디지털 트윈 기술을 위한 영상 분석 시스템
CN110765906A (zh) 一种基于关键点的行人检测算法
CN111709310A (zh) 一种基于深度学习的手势跟踪与识别方法
CN109993061B (zh) 一种人脸检测与识别方法、系统以及终端设备
CN107784291A (zh) 基于红外视频的目标检测跟踪方法和装置
JP2020038660A (ja) CNN(Convolutional Neural Network)を利用して車線を検出するための学習方法及び学習装置そしてこれを利用したテスト方法及びテスト装置{LEARNING METHOD, LEARNING DEVICE FOR DETECTING LANE USING CNN AND TEST METHOD, TEST DEVICE USING THE SAME}
KR20210029586A (ko) 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버
CN107256017B (zh) 路线规划方法及系统
Xu et al. A cascade adaboost and CNN algorithm for drogue detection in UAV autonomous aerial refueling
JP2020038661A (ja) 車線モデルを利用して車線を検出し得る学習方法及び学習装置そしてこれを利用したテスト方法及びテスト装置{learning method, learning device for detecting lane using lane model and test method, test device using the same}
CN106682681A (zh) 一种基于相关反馈的识别算法自动改进方法
CN110532937A (zh) 基于识别模型与分类模型进行列车前向目标精准识别的方法
CN114283355A (zh) 一种基于小样本学习的多目标濒危动物跟踪方法
CN114926859A (zh) 一种结合头部跟踪的密集场景下行人多目标跟踪方法

Legal Events

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