eBook

챕터 3

인식


융합된 센서 데이터에서 주변 환경을 인식하는 작업은 객체의 형상과 크기를 인식하고 객체를 분류하는 과정(예, 문 및 의자 인식)을 수반합니다. AMR(자율 이동 로봇) 운영에서는 이러한 정보들을 나중에 행동 계획과 의사결정에 사용합니다. 영상 인식과 포인트 클라우드 처리는 객체 검출을 돕습니다.

섹션

영상 처리 및 딥러닝을 사용한 객체 검출

최근 들어 AI(인공 지능) 분야에서 딥러닝이 많은 관심을 받고 영상 처리에 활용되는 딥러닝 기법이 로봇공학 응용 사례에서 주목할 만한 성과를 내면서 발전해 왔습니다. Deep Learning Toolbox™를 사용하면 컨벌루션 신경망(ConvNets, CNN) 및 LSTM(장단기 기억) 신경망 참조 예제에서 영상과 시계열 데이터에 대해 분류 및 회귀를 수행할 수 있습니다.

딥러닝은 영상 분류 이외에도 객체 검출 및 분할을 위한 알고리즘도 제공합니다. 빠른 처리 속도와 검출 정확도를 갖는 객체 검출 알고리즘은 AMR에 널리 사용되고 있습니다. 예를 들어 YOLO 같은 알고리즘은 빠른 속도와 정확도로 원하는 결과를 제공할 수 있습니다.

YOLO v2를 통한 객체 검출.

YOLO v2를 통한 객체 검출.

YOLO는 단일 단계 객체 검출기로 분류되는 실시간 객체 검출 알고리즘입니다. YOLO는 후보 영역들을 동시에 추출하고 분류하기 때문에 Faster R-CNN 같은 2단계 객체 검출기에 비해 빠릅니다. Deep Learning Toolbox와 Computer Vision Toolbox는 YOLO v2와 YOLO v3를 이용한 실시간 객체 검출을 지원합니다. 이들 툴박스에 제공되는 SSD(Single Shot Multibox Detector)를 사용할 수도 있습니다. 객체 검출기는 보통 훈련 데이터가 필요하며, 사용자가 직접 훈련 데이터를 만들거나 공개된 데이터셋을 이용할 수 있습니다. Computer Vision Toolbox는 훈련 데이터에 레이블을 지정하는(태그 지정 또는 주석 달기라고도 부름) Image Labeler 응용 프로그램도 제공합니다.

더욱 정교하고 유연한 심층 신경망을 구축하려면 Deep Learning Toolbox에서 로우 레벨 인터페이스에 액세스할 수도 있습니다. 인터페이스는 자동 미분을 위한 dlarray라는 전용 데이터 클래스를 제공하기 때문에 역전파 함수 구현 같은 번거로운 단계를 거치지 않고도 복잡한 신경망을 구축할 수 있습니다. 이 인터페이스를 사용하면 GAN(생성적 적대 신경망), VAE(변분 오토인코더) 같은 고급 신경망도 생성할 수 있습니다.

섹션

포인트 클라우드 처리를 통한 객체 검출

라이다(Light Detection and Ranging)는 AMR에서 사용하는 필수 센서입니다. 라이다는 객체에 레이저 광선을 쏘고, 광선이 타겟 객체에서 반사되어 광원으로 되돌아올 때까지의 경과 시간을 기록하여 거리를 측정합니다. 라이다는 능동적인 측정 방법이기 때문에 환경 속에서 움직이는 로봇과 객체들 사이의 매우 정확한 거리 측정값을 제공합니다. 뿐만 아니라 360도 회전할 수 있기 때문에, 객체가 레이저의 회전면 안에 있다면 로봇 주위의 어떤 객체까지의 거리도 측정할 수 있습니다. 2차원 라이다는 하나의 레이저 소자를 사용하며, 환경에 대한 2차원 레이저 스캔을 생성할 수 있고 3차원 라이다는 여러 레이저 소자를 사용하여 3차원 포인트 클라우드를 생성할 수 있습니다. 거리 추정뿐만 아니라, 라이다 포인트 클라우드를 처리하여 객체의 방향과 유형을 판별할 수도 있습니다.

Lidar Toolbox와 Computer Vision Toolbox는 포인트 클라우드의 다운 샘플링 및 정합, 형상 맞춤, 라이다 정합 등 다양한 포인트 클라우드 처리 방법을 제공합니다. PointSeg, PointPillars, SqueezeSegV2와 같은 딥러닝 및 머신러닝 알고리즘을 활용하여 사용자 지정 검출 및 의미론적 분할 모델을 훈련할 수도 있습니다.

포인트 클라우드 처리를 통한 객체 검출.

포인트 클라우드 처리를 통한 객체 검출.

섹션

검출된 객체 추적하기

로봇의 환경에 있는 객체는 항상 정지해 있지 않습니다. 인간이나 애완동물 같은 움직이는 물체가 있다면, 카메라 및 라이다와 같은 여러 센서에서 나온 검출 결과를 융합하여 더 나은 결과를 얻을 수 있습니다. 그러한 센서 융합을 위해서는 칼만 필터 같은 상태 추정 필터와 여러 트랙 할당을 관리하기 위한 알고리즘이 필요합니다.

Sensor Fusion and Tracking Toolbox™를 통해 다양한 상태 추정 필터와 객체 추적 알고리즘을 살펴볼 수 있습니다. 이 툴박스에서는 능동 및 수동 레이다, 소나, 라이다, EO/IR, IMU, GPS 등 실제 센서에서 나온 데이터를 융합할 수 있는 알고리즘을 제공합니다. 따라서 센서들의 강점과 약점을 보상하고, AMR이 안전하게 운행하는 데 반드시 필요한 위치 예측의 정확도를 개선하는 데 도움이 됩니다.

센서 융합을 통한 객체 추적.

센서 융합을 통한 객체 추적.

섹션

SLAM (동시적 위치추정 및 지도작성)

2차원 라이다를 이용한 미지의 공간 탐색을 가정해 보십시오. 라이다에서 얻은 포인트 클라우드들을 반복해서 정렬하여 지도를 생성할 수 있습니다. 지도를 만들었다면 지도 내 상대적 로봇의 자세(위치와 방향)에 관한 정보도 필요합니다. 그러나 위치를 순차적으로 추정하면 오차가 누적되고, 추정된 위치가 실제 위치에서 크게 벗어날 수 있습니다. 이러한 정렬 오류를 드리프트라고 하는데 AMR(자율 이동 로봇)을 안전하게 운영하기 위해서는 드리프트를 수정하면서 지도를 생성해야 합니다. SLAM 알고리즘은 환경 지도를 구축하는 동시에 AMR의 자세를 추정하며, 그와 동시에 위치 드리프트를 보상합니다. SLAM을 수행하는 방법은 라이다 센서를 사용하는 라이다 SLAM 및 카메라를 사용하는 시각적 SLAM 등 몇 가지 방법이 있습니다.

라이다는 카메라 및 기타 ToF(비행시간) 센서에 비해 정확한 거리 측정값을 제공하며, 라이다는 자율주행 차량과 드론 같은 빠르게 움직이는 객체에서 널리 사용되고 있습니다. 라이다 SLAM에서는 포인트 클라우드를 정합함으로써 순차적으로 움직임의 양을 추정할 수 있고 이를 통합하여 자기 위치를 추정할 수 있습니다. 라이다에서 나온 포인트 클라우드 정합에는 ICP(Iterative Closest Point) 및 NDT(Normal Distributions Transform) 알고리즘을 사용합니다. 라이다 SLAM으로 관리한 지도 표현이 아래 그림에 나와 있습니다. 첫 번째 행은 2차원 점유 그리드 지도이고 두 번째 행은 3차원 포인트 클라우드입니다. 포인트 클라우드 지도는 라이다 센서에서 나온 원시 출력값입니다. 포인트 클라우드에 상세한 환경 정보가 포함되어 있지만 그러한 정보는 충돌 감지용으로 적절하지 않습니다. 그리드 지도는 포인트 클라우드를 일정한 간격의 격자에서 샘플링하고, 장애물 검출과 모션 계획에 활용될 수 있습니다.

2차원 및 3차원 라이다 SLAM.

2차원 및 3차원 라이다 SLAM.

라이다 SLAM에서 난제는 포인트 클라우드의 밀도가 낮을 경우 포인트 클라우드 정합에 필요한 충분한 특징을 얻기가 어려울 수 있다는 점입니다. 예를 들면 장애물의 개수가 적을 경우에는 포인트 클라우드 간 정렬이 실패하고, 움직이는 객체의 위치를 놓치게 될 수 있습니다. 뿐만 아니라 포인트 클라우드 정합의 처리 부하가 일반적으로 크기 때문에 속도를 높일 방법을 고안해야 할 수 있습니다.

그에 대한 대안으로서 시각적 SLAM에서는 카메라와 영상 센서에서 나온 영상을 사용합니다. 시각적 SLAM에 사용되는 카메라 유형에는 단안 카메라(광각 카메라, 어안 카메라, 전천 카메라), 복안 카메라(스테레오 카메라, 멀티 카메라), RGB-D 카메라(심도 카메라 및 ToF 카메라) 등이 있습니다. 시각적 SLAM 알고리즘은 크게 두 유형으로 분류할 수 있습니다. 희소 방법은 PTAM 및 ORB-SLAM 등의 알고리즘을 사용하여 영상 특징 포인트들을 정합합니다. 조밀 방법은 전체 영상의 밝기를 활용하고, DTAM, LSD-SLAM, DSO, SVO 알고리즘을 사용합니다.

단안 카메라를 사용한 시각적 SLAM(ORB-SLAM).

단안 카메라를 사용한 시각적 SLAM(ORB-SLAM).

시각적 SLAM은 SfM(움직임 기반 구조), 시각적 주행거리 측정, 번들 조정 등의 기술과 깊은 연관이 있습니다. 시각적 SLAM의 주된 이점은 카메라의 가격이 비교적 저렴하기 때문에 라이다 SLAM에 비해 훨씬 적은 비용으로 구현할 수 있다는 점입니다. 카메라에도 많은 정보를 저장할 수 있기 때문에 이전에 관찰한 위치를 이후 검출을 위한 랜드마크로 활용할 수 있습니다. 그러나 단안 카메라에서는 오직 카메라의 기하 구조만을 사용하여 객체까지의 거리를 계산하기는 어려울 수 있습니다.

라이다 SLAM과 마찬가지로 시각적 SLAM에서도 위치추정을 부정확하게 만드는 드리프트 오차가 누적됩니다. 그에 대한 대책으로서 자세 그래프를 활용하면 그러한 오차를 수정할 수 있습니다. 자세 그래프는 간선으로 연결된 노드가 포함하는 그래프 구조입니다. 각각의 노드 추정값은 노드와 해당 측정값의 불확실성 사이의 상대적 자세를 정의하는 간선 제약 조건에 의해 그래프에 연결됩니다. 자세 그래프는 증강 현실 마커나 체커보드 등의 이미 알고 있는 객체를 포함할 수 있습니다. 자세 그래프는 직접 자세를 측정할 수 있는 IMU(관성 측정 장치) 등의 센서에서 나온 출력을 융합할 수도 있습니다.

Navigation Toolbox™에서 제공되는 자세 그래프는 모든 센서 데이터에 대해 확장할 수 있습니다. SLAM 프론트엔드는 센서 종속적 과정을 통해 AMR의 움직임과 장애물 위치를 추정하며, 아마도 칼만 필터를 이용하여 여러 센서를 통합함으로써 위치를 추정할 수 있을 것입니다. 그와 대조적으로, 백엔드 자세 그래프를 구축하고 최적화하는 작업은 센서 독립적 과정입니다. 백엔드 구성요소는 다양한 SLAM 알고리즘에 적용할 수 있습니다. 자세 그래프 최적화는 종종 번들 조정이라고도 합니다.

SLAM의 프론트엔드와 백엔드.

SLAM의 프론트엔드와 백엔드.

알려진 지도에서의 위치추정

SLAM을 이용하면 환경 지도를 구축하면서 동시에 로봇의 위치를 추정할 수 있습니다. 매핑 알고리즘을 사용하여 구축한 지도가 이미 있고, 주어진 지도 내에서 상대적인 자세를 추정하기만 하면 되는 경우도 있을 수 있습니다. 몬테카를로 위치추정 같은 상태 추정법은 입자 필터를 사용하여 알려진 지도 내에서 AMR의 움직임과 감지를 기반으로 AMR의 자세를 추정합니다. 몬테카를로 위치추정 알고리즘은 분산된 입자를 사용하여 다양한 로봇 상태를 표현합니다. AMR이 환경 내에서 움직이고 거리 센서가 환경의 다양한 부분들을 감지하면 분산된 입자들은 하나의 장소를 중심으로 수렴하게 됩니다. 주행거리 측정 센서를 이용해도 AMR 움직임을 검출할 수 있습니다. 확률 분포를 이용하여 AMR의 위치를 표현함으로써 동적인 환경 속에서 센서 측정값 오차를 반영하여 강건한 자세 추정을 수행할 수 있습니다. Navigation Toolbox에는 이 알고리즘의 변형이 AMCL(적응적 몬테카를로 위치추정)이라는 이름을 갖는 알고리즘을 포함합니다.

차량 위치 추정 (위치추정).

차량 위치 추정 (위치추정).

인식에 대해 자세히 알아보기