산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

임베디드 시스템을 위한 비주얼 SLAM 개발 간소화

동시 위치 추정 및 지도 작성(SLAM)은 로봇, 드론, 자율주행차 같은 장치가 주변 환경의 실시간 지도를 구축하면서 동시에 해당 지도 내에서의 자기 위치를 파악할 수 있게 해줍니다. SLAM은 카메라, 라이다, 소나, 레이더, 관성측정장치(IMU) 등 다양한 알고리즘과 센서를 조합해 구현할 수 있습니다.

저비용 소형 카메라의 보급으로 단안 비주얼 SLAM이 화성 탐사 로버, 농업용 장비, 배송 드론, 도심 자율주행 플랫폼 등 다양한 로봇의 표준 솔루션으로 자리 잡았습니다. 비주얼 SLAM은 실내 창고나 위성 신호가 차단되거나 열악한 밀집 도심 등 GPS 음영 지역에서 탁월한 성능을 발휘합니다.

이 글에서는 비주얼 SLAM의 핵심 워크플로를 설명하며, 특징점 검출, 매칭, 오차 보정의 주요 모듈과 알고리즘을 다룹니다. 또한 SLAM 연산을 전용 비전 처리 장치(VPU)로 오프로드함으로써 얻는 이점을 CEVA-SLAM SDK 사례와 함께 살펴봅니다.

다이렉트 SLAM과 특징점 기반 SLAM

모든 비주얼 SLAM 시스템은 연속된 카메라 프레임 간 특징점을 추적하며, 이들을 삼각측량해 3D 위치를 산출하고 동시에 카메라 포즈를 추정합니다. 또한 재투영 오차(투영된 특징점 위치와 실제 위치의 차이)를 지속적으로 최소화합니다. 두 방식의 근본적인 차이는 이미지 정보를 활용하는 방식에 있습니다.

다이렉트 SLAM은 이미지 전체를 비교해 풍부한 환경 정보를 얻지만, 연산 부하가 높습니다. 반면 이 글에서 다루는 특징점 기반 SLAM은 코너, 블롭 등 뚜렷한 이미지 특징점을 추출해 포즈 추정에만 사용합니다. 일부 이미지 데이터를 버리지만, 임베디드 하드웨어에서 더 단순하고 빠르며 전력 효율적인 솔루션을 제공합니다.

임베디드 시스템을 위한 비주얼 SLAM 개발 간소화
그림 1: 다이렉트 SLAM과 특징점 기반 SLAM 비교. (출처: https://vision.in.tum.de/research/vslam/lsdslam)

비주얼 SLAM 워크플로

특징점 기반 SLAM은 1) 특징점 추출, 2) 특징점 기술, 3) 특징점 매칭, 4) 루프 클로저의 네 가지 핵심 단계를 거칩니다. 이 단계들은 다양한 SLAM 구현에 적용할 수 있는 검증된 구성 요소들로 이루어져 있습니다.

특징점 추출

특징점 추출은 이미지를 코너, 에지, 블롭, 출입문이나 창문 같은 복잡한 구조물 등 간결한 주요 점들의 집합으로 압축해 콤팩트한 벡터로 표현합니다. 대표적인 알고리즘으로는 가우시안 차분(DoG)과 실시간 처리에 적합한 FAST9 코너 검출기가 있습니다.

임베디드 시스템을 위한 비주얼 SLAM 개발 간소화
그림 2: SLAM 특징점 추출. (출처: https://medium.com/towards-artificial-intelligence/oriented-fast-and-rotated-brief-orb-1da5b2840768)

특징점 기술

특징점 위치가 확인되면 주변 픽셀 패치를 디스크립터(기술자)로 변환합니다. 이는 다른 디스크립터와 비교 가능한 간결한 표현입니다. ORB와 FREAK는 독창성과 연산 효율성을 균형 있게 제공하는 널리 쓰이는 디스크립터 알고리즘입니다.

특징점 매칭

연속 프레임의 디스크립터는 비트 벡터 간 해밍 거리를 계산해 매칭합니다. 이 연산은 XOR과 팝카운트 연산으로 하드웨어에서 효율적으로 수행할 수 있어, 자원이 제한된 장치에서도 빠른 매칭이 가능합니다.

루프 클로저

루프 클로저는 시스템이 이전에 방문한 위치를 재방문했음을 감지합니다. 인접하지 않은 프레임 간 제약 조건을 추가함으로써 누적 드리프트를 크게 줄입니다. 최신 루프 클로저 기법으로는 번들 어저스트먼트, 칼만 필터링, 파티클 필터링 등이 있습니다.

특징점 기반 SLAM은 임베디드 솔루션에 특히 적합해, 더 빠른 처리, 낮은 메모리 사용량, 다양한 조명 조건·모션 블러·가림 상황에서도 강건한 성능을 제공합니다. 구체적인 알고리즘 선택은 애플리케이션의 지도 유형, 센서 구성, 정확도 요구사항, 기타 제약 조건에 따라 달라집니다.

구현 과제

비주얼 SLAM의 높은 연산량은 범용 CPU를 압도해 전력 소모를 늘리고 프레임 레이트를 제한합니다. CEVA-XM6 같은 전용 VPU는 비전 작업 가속에 특화된 아키텍처로, 저전력, 강력한 ALU, 고대역폭 메모리 접근, 이미지 처리 전용 명령어를 제공합니다.

임베디드 시스템을 위한 비주얼 SLAM 개발 간소화
그림 3: CEVA XM6 비전 처리 장치. (출처: CEVA)

VPU를 사용해도 개발자는 과제에 직면합니다: 특징점 매칭, 번들 어저스트먼트 등 선형대수 연산이 많은 연산을 위한 효율적인 코드 작성; 비용이 큰 비연속 메모리 접근을 피하기 위한 메모리 레이아웃 관리; VPU와 호스트 CPU 통합. 고수준 라이브러리와 최적화된 루틴은 VPU의 잠재력을 최대한 끌어내는 데 필수적입니다.

CEVA-SLAM SDK로 개발 가속화

CEVA-SLAM SDK는 CEVA-XM6 하드웨어와 풍부한 비전 라이브러리를 결합한 종합 툴체인입니다. 특징점 검출, 디스크립터 추출, 매칭, 번들 어저스트먼트, 선형대수 연산에 대한 사전 최적화된 루틴을 제공합니다. 고유한 병렬 로드 명령어로 비연속 메모리 접근 문제를 해결하고, 전용 해밍 거리 명령어로 매칭을 가속화합니다.

임베디드 시스템을 위한 비주얼 SLAM 개발 간소화
그림 4: CEVA SLAM SDK. (출처: CEVA)

벤치마크 구현에서 SDK는 60fps SLAM 추적을 달성하면서 단 86mW만 소모했습니다. 이는 범용 CPU로는 도달하기 어려운 성능 수준입니다.

결론

비주얼 SLAM은 자율 로봇, 드론, 스마트 차량의 핵심 기술로 급부상하고 있습니다. 임베디드 배포가 확대되면서 코딩 효율성과 전력 소모가 결정적 요소가 되었습니다. VPU가 무거운 비전 워크로드를 오프로드하지만, 고성능 저전력 SLAM 개발은 여전히 비단순합니다. CEVA-SLAM SDK 같은 전용 툴킷을 활용하면 개발자는 출시 기간을 단축하고 신뢰할 수 있는 에너지 효율적 SLAM 솔루션을 제공할 수 있습니다.

임베디드

  1. 압출(Extrusion)이 3D 프린팅 정밀도를 이끄는 원리
  2. AI가 글로벌 공급망을 혁신하는 방식
  3. 프탈로시아닌 안료: 적용 산업, 용도, 품질이 중요한 이유
  4. 산업 전반에서의 염기성 염료 응용
  5. 안료 블루: 핵심 적용, 이점, 업계 리더들이 신뢰하는 제조사 선택 이유
  6. 상아에서 베이클라이트까지: 현대 플라스틱의 진화 추적
  7. 올바른 컨트롤러 선택: PLC, PAC, DCS, IPC 비교 설명
  8. 산업용 바이브레이터: 전 분야 효율성 증대
  9. 인더스트리 4.0 보안: 제조업체 고유의 사이버보안 과제 해결
  10. 인더스트리 4.0에서 시각적 관리가 성공을 이끄는 방법