USB 3.0 보드 레벨 카메라가 장착된 임베디드 비전 솔루션

플라잉 아이 (flying eye)

USB 3.0 보드 레벨 카메라가 장착된 임베디드 비전 솔루션

3D 및 로봇 비전 외에도, 임베디드 비전은 머신 비전의 최신 주목받는 주제들 중 하나입니다. 만약 실시간 머신 비전이 없었으면, industry 4.0 환경에서 자율 운송 시스템과 로봇, 자율 주행 차, 또는 무인 드론 같은 것이 없었을 것이기 때문입니다. 그러나, 고전적인 머신 비전 시스템은 공간이나 비용 제한으로 인해 고려 대상이 아니지만, 소위 “스마트 카메라”의 기능은 일반적으로 매우 제한적입니다. 소형 카메라, 컴팩트한 프로세서 보드 및 유연한 프로그래밍이 가능한 소프트웨어를 결합하여야만, 맞춤형 머신 비전 어플리케이션을 개발하고 머신 또는 차량에 직접 임베디드될 수 있습니다.

어플리케이션

USB 3.0 보드 레벨 카메라가 장착된 임베디드 비전 솔루션
USB 3.0 보드 레벨 카메라가 장착된 임베디드 비전 솔루션

이러한 맞춤형 어플리케이션 중 하나는 멀티콥터이고, 멀티콥터는 실시간으로 재해 지역을 맵핑하기 위하여 Braunschweig University of Technology에서 구축되었습니다. 이 맵은 ARM 기반 단일-보드 컴퓨터와 IDS USB 3.0 보드-레벨 카메라로 구성된 보드에 장착된 임베디드 비전 시스템에 의해 생성됩니다. 어떻게 드론이 재난 상황에서 도움이 될 수 있을까요? 드론은 물 샘플 채취, 구명 벨트 던지기, 사람들이 접근하기 어렵거나 불가능한 지역의 지리 데이터와 이미지를 제공하는 등 다양한 용도로 사용될 수 있습니다.

후자의 작업을 위해, TU Braunschweig의 IFF (Institute of Flight Guidance)가 지원하는 Braunschweig University of Technology의 학생 및 직원으로 구성된 작업 그룹인 AKAMAV 팀은 특수 장비를 갖춘 멀티콥터를 구축했습니다.

이 초소형 비행체 (MAV; micro air vehicle)는 재난 지역을 비행하고 - 지진 지역, 침수된 도시, 또는 불타고 있는 공장까지도 - 실시간으로 지도를 제공하여 구조 팀이 즉시 임무 계획을 도울 수 있습니다. 멀티콥터는 자율적으로 동작합니다. 동작 영역은 기존의 지리 참조 위성 이미지를 사용하여 정의됩니다. 지역의 크기와 필요한 지상 해상도에 따라 웨이포인트(waypoint) 목록이 자동으로 생성됩니다. 그런 다음, 멀티콥터는 GNSS 기술 (Global Navigation Satellite System) 또는 GPS를 사용하여 비행합니다. 멀티콥터도 자동으로 이착륙합니다.

실시간 요구 사항은 현재 시중에 나와 있는 사진 측량과 같은 원격 감지 방법을 제외합니다. 이러한 방법은, 일반적으로 상당한 프로세서 성능을 필요로 하는 알고리즘에 기반하여 모든 이미지를 캡처하고 결합할 때까지 결과를 제공하지 않습니다. 이 방법을 사용하여 만든 지도는 매우 정밀하지만, 정밀함은 재난 상황에서 초기 오버뷰를 얻는 데 최우선 순위가 아니며, 오히려 구조 작업을 지나치게 지연시킬 뿐입니다. 대조적으로, AKAMAV에 의하여 설계된 솔루션은 이미지 모자이크(mosaicing) 또는 스티칭(stitching)의 원리에 기반합니다. 이 원리들은, 많은 개별 이미지들에서 큰 전체 이미지를 매우 빠르게 이어 붙이는(piecing) 입증된 방법입니다. 그러나, 이 원리를 멀티콥터에서 실행하기 위하여, 카메라가 제공하는 이미지를 컴퓨터에서 신속하고 가까운 곳에서 처리해야 합니다.

"고전" 비전 시스템은, USB, GigE 또는 FireWire를 통해 데스크탑 PC 또는 박스 PC에 연결된 산업용 카메라로 구성됩니다; 실질적인 이미지 처리는 적절한 머신 비전 소프트웨어에 의해 컴퓨터에서 수행되며, 만약 적용 가능하다면 다른 구성 요소들은 어플리케이션 내에서 관리됩니다. 이 유형의 설정은 공간이 필요하고, 비교적 비싸며, 궁극적으로 불필요한 많은 기능들을 제공합니다. 단일-보드 컴퓨터에 기반하고 오픈 소스 운영 시스템과 연계하여 사용되는 임베디드 비전 시스템은, 매우 컴팩트할 수 있지만 유연하게 프로그래밍할 수 있으며 일반적으로 구현 비용이 저렴합니다. USB 인터페이스가 포함된 보드 레벨 카메라는, ARM-기반 단일-보드 컴퓨터와 완벽하게 팀을 구성할 수 있습니다. 이들은 충분한 처리 능력을 제공하고, 전력을 거의 소비하지 않으며, 다양한 폼 팩터들로 제공되고, 이 폼 팩터들 중 대부분은 매우 작고 100유로 미만으로 구입할 수 있습니다. 예를 들어 저명한 Raspberry Pi를 예로 들어 보겠습니다.

AKAMAV는 크기가 83 x 60mm에 불과한 작지만 매우 강력한 ODROID-XU4 보드를 활용하고, 8 코어 ARM CPU가 있으며 Linux에서 실행됩니다. 그러나 단일-보드 컴퓨터에는 모든 필수 인터페이스 (예: GigE, USB 2.0 및 USB 3.0 포함)를 가지며, USB 인터페이스를 통해 항공기 시스템의 자동 조종 장치에 연결됩니다. 컴퓨터는 이 데이터 링크를 통해 상태 정보를 수신할뿐만 아니라, 위도와 경도에 따른 현재 위치, 기압 고도(barometric altitude) 및 기준 타원체 위의 높이에 대한 정보도 수신합니다.

카메라

이미지는 IDS uEye LE 시리즈의 보드 카메라로 캡처됩니다. USB 3.0 커넥터가 포함된 산업용 카메라의 보드 레벨 버전은, 크기가 36 x 36mm에 불과하지만, 모든 필수 기능을 제공합니다. 최신 세대의 onsemi 및 e2v CMOS 센서와 함께 사용할 수 있으며, 최대 18메가픽셀의 해상도를 지원합니다. 5V 전원 공급 장치, 트리거 및 플래시, 2개의 GPIO들, 주변 장치 제어를 위한 I2C 버스가 포함된 8핀 커넥터는 거의 무제한의 연결과 높은 유연성을 보장합니다.

AKAMAV 팀은 카메라가 2 메가픽셀 CMOS 센서와 S-마운트 렌즈 홀더가 포함된 UI-3251LE-C-HQ 모델을 멀티콥터에 장착했습니다. AKAMAV 팀의 학생 구성원 Alexander Kern이 지적했듯이, 이 경우 해상도는 비교적 중요하지 않기 때문입니다. "처리는 원본 이미지 데이터를 사용하여 수행되며, 이는 전체 알고리즘의 필요한 성능을 보장하기 위해 크기를 줄일 수도 있습니다. 이미지가 카메라로 캡처되어 단일-보드 컴퓨터로 전달되는 즉시, 시스템은 이미지에서 특징인 “랜드 마크”를 찾고 추출합니다. 또한 시스템은 다음 이미지에서 특징을 찾아 이전 이미지의 특징과 매칭합니다. 그런 다음, 대응하는 포인트 쌍으로부터 시스템은 하나의 이미지가 나머지 하나의 이미지에 비해 어떻게 촬영되었는 지를 결정하고, 그에 따라 각각의 새 이미지를 전체 지도에 신속하게 추가할 수 있습니다."

1 헥타르 면적에 대해, 멀티콥터가 맵핑할 영역의 가장자리에 직접 시작하고 착륙할 경우, 약 4 ~ 5 분이 소요됩니다. 비행 고도가 약 40 m이고 배율이 조정된 이미지 해상도가 1200 x 800 픽셀이면, 지상 해상도는 평균 약 7 cm/pixel입니다. 임베디드 비전 시스템은 멀티콥터의 최대 대기속도(airspeed) 5 m/s에 대하여 설계되었습니다. 따라서 1-2fps의 비교적 낮은 이미지 캡처 속도로 충분하며, 이미지 데이터를 버퍼링할 필요도 없습니다.

 

항공기(aircraft)와 관제소(control station) 간에 무선 연결되어 있으면, 스티칭 프로세스를 지상에서 실시간으로 추적할 수 있습니다. 일단 맵핑 프로세스가 완료되면, 멀티콥터가 무선 범위 내이면 원격으로 완성된 지도에 액세스하거나, 지도를 외부 데이터 저장 매체에 복사하여 멀티콥터가 착륙하면 배포할 수 있습니다.

소프트웨어

머신 비전 기술은 오픈 소스 컴퓨터 비전 라이브러리 OpenCV 및 C++를 사용하여 AKAMAV 팀에 의해 구현되었습니다. "여기서 문제는 실시간 요구 사항이므로, 소프트웨어는 가능한 한 강력해야 하고, 이는 하나의 고급 언어만 고려할 가치가 있기 때문입니다. OpenCV는, 지난 몇 년 동안 연구 분야에서 머신 비전의 표준이 되었으며, 이미지 분석 또는 머신 비전을 위한 모든 종류의 인상적인 기능들을 포함하고 있습니다"라고 AKAMAV 학생 작업 그룹의 Mario Gäbel은 강조합니다.

카메라는 uEye API를 사용하여 통합됩니다. API는 모든 비전 어플리케이션에서 핵심적인 역할을 합니다. 이는 카메라의 기능을 얼마나 쉽게 사용할 수 있는 지는 물론, 카메라의 잠재력을 얼마나 잘 활용할 수 있는 지를 결정하기 때문입니다. IDS는, 특히 임베디드 비전 어플리케이션 개발자가 엄청난 이점을 얻을 수 있는 자체 "표준"에 관한 한 가지 주요 이점을 제공합니다: 결국, 어떤 제조업체의 카메라를 사용하는지, 어떤 인터페이스 기술 (USB 2.0, USB 3.0 또는 GigE)이 필요한지, 데스크탑 또는 임베디드 플랫폼 중 어떤 것이 사용되는지는 중요하지 않습니다 - uEye API는 항상 동일합니다.

이를 통해 카메라 또는 플랫폼의 상호 교환이 용이하게 하는 것은 물론, 개발자가 데스크탑 PC에서 프로젝트 작업을 수행하고 나중에 코드를 수정하지 않고도 시간을 쓸 필요 없이 임베디드 컴퓨터에서 이 프로젝트를 1:1로 사용할 수 있습니다. 카메라를 통합 및 Halcon과 같은 제3자 머신 비전 소프트웨어에 대해 적응하기 위한 프로세스는, 임베디드 플랫폼에서 데스크탑 환경과 완전히 동일합니다.

IDS의 자체 소프트웨어 개발 키트의 일부이기도 한 uEye Cockpit과 같은 특수 도구도, 프로그래밍 노력의 양을 줄입니다. "프로그래밍 대신 설정"이라는 모토에 기반하여, 몇 번의 클릭만으로 데스크탑 PC에서 카메라를 사전 설정할 수 있습니다. 설정이 저장되고 나중에 임베디드 비전 어플리케이션으로 쉽게 로딩될 수 있습니다. 특히 임베디드 부문에서, 크로스 컴파일링을 통한 프로그래밍은 일반적으로 매우 시간이 많이 걸리며, 디스플레이 및 키보드 포트가 없어서 장치 자체에 연결된 카메라를 설정하는 데 사용할 수 있는 옵션이 없는 경우가 많습니다. 특히 이와 같은 상황에서, uEye Cockpit에서 카메라 설정을 사전 설정하는 옵션은 대단히 귀중한 가치를 가집니다.

여기서 문제는 실시간 요구 사항이므로, 소프트웨어는 가능한 한 강력해야 하고, 이는 하나의 고급 언어만 고려할 가치가 있기 때문입니다.

— AKAMAV 학생 워킹 그룹의 Mario Gäbel —

카메라를 통합 및 Halcon과 같은 제3자 머신 비전 소프트웨어에 대해 적응하기 위한 프로세스는, 임베디드 플랫폼에서 데스크탑 환경과 완전히 동일합니다.

IDS의 자체 소프트웨어 개발 키트의 일부이기도 한 uEye Cockpit과 같은 특수 도구도, 프로그래밍 노력의 양을 줄입니다. "프로그래밍 대신 설정"이라는 모토에 기반하여, 몇 번의 클릭만으로 데스크탑 PC에서 카메라를 사전 설정할 수 있습니다. 설정이 저장되고 나중에 임베디드 비전 어플리케이션으로 쉽게 로딩될 수 있습니다. 특히 임베디드 부문에서, 크로스 컴파일링을 통한 프로그래밍은 일반적으로 매우 시간이 많이 걸리며, 디스플레이 및 키보드 포트가 없어서 장치 자체에 연결된 카메라를 설정하는 데 사용할 수 있는 옵션이 없는 경우가 많습니다. 특히 이와 같은 상황에서, uEye Cockpit에서 카메라 설정을 사전 설정하는 옵션은 대단히 귀중한 가치를 가집니다.

USB 3 uEye LE - 임베디드 시스템을 위한 완벽한 구성 요소

IDS 산업용 카메라 USB 3 uEye LE Boardlevel