간편한 개체 식별을 위해 내장형 IoT 노드에서 머신러닝 코드 실행하기

작성자: Bill Giovino

DigiKey 북미 편집자 제공

동적 환경에서 작동하는 사물 인터넷(IoT) 네트워크의 기능은 보안, 환경 모니터링, 안전 및 산업용 IoT(IIoT)와 같은 응용 제품에서 개체 감지를 넘어 시각적 개체 식별에까지 확장되고 있습니다. 개체 식별은 적응형이며 머신러닝(ML) 모델을 사용하기 때문에, 첫 단계부터 배워 효율적으로 구현하기에 어려울 수 있는 복잡한 분야입니다.

이러한 어려움은 ML 모델이 해당 모델이 지닌 데이터 세트의 수준을 능가할 수 없으며, 올바른 데이터가 수집되면 시스템이 실용적으로 작동하도록 적절하게 훈련되어야 한다는 점에서 비롯됩니다.

이 기사에서는 개발자에게 Google의 마이크로 컨트롤러 ML 모델용 TensorFlow Lite를 Microchip Technology의 마이크로 컨트롤러에 구현하는 방법을 살펴봅니다. 그런 다음 TensorFlow Lite에서 이미지 분류 및 개체 감지 학습 데이터 세트를 사용하여 최소한의 맞춤형 코딩으로 간편하게 개체를 식별하는 방법을 설명합니다.

그 후 개발자들로 하여금 ML의 기초를 다질 수 있도록 Adafruit Industries의 TensorFlow Lite ML 시험용 키트를 소개합니다.

내장형 비전 시스템용 ML

넓은 의미에서 ML은 컴퓨터 또는 내장형 시스템에 인간의 것과 유사한 패턴 인식 능력을 부여합니다. 인간의 감각이라는 관점에서 보면 이는 마이크와 카메라 등의 센서를 사용하여 인간이 듣고 보는 감각적 인식을 모방하도록 하는 것을 의미합니다. 오디오 또는 시각적 데이터 캡처를 위해 센서를 이용하는 것은 쉽지만, 데이터가 디지털화되어 저장되고 나면 그 후 알려진 사운드 또는 개체를 표현하는 메모리에 저장된 패턴에 일치하도록 일련의 처리 과정을 거쳐야만 합니다. 문제는 예를 들어 카메라로 캡처한 시각적 개체의 이미지 데이터가 메모리에 저장된 개체에 해당하는 항목의 데이터와 정확히 일치하지 않는다는 점입니다. 개체를 시각적으로 식별해야 하는 ML 응용 제품은 카메라가 캡처한 패턴이 메모리에 저장된 패턴과 정확하고 효율적으로 일치될 수 있도록 데이터를 처리해야 합니다.

다양한 라이브러리 또는 엔진을 사용하여 센서가 캡쳐한 데이터를 일치시킬 수 있습니다. TensorFlow는 패턴을 일치시키는 데 사용되는 오픈 소스 코드 라이브러리입니다. 마이크로 컨트롤러용 TensorFlow Lite 코드 라이브러리는 마이크로 컨트롤러에서 실행되도록 특별히 설계되었으며, 결과적으로 메모리 및 CPU 요구 사항을 줄임으로써 더 제한된 하드웨어에서의 실행을 가능하게 합니다. 특히 32비트 마이크로 컨트롤러가 요구되며 25킬로바이트(KB) 미만의 플래시 메모리를 사용합니다.

그러나 마이크로 컨트롤러용 TensorFlow Lite가 ML 엔진임에도 불구하고 여전히 시스템에서 식별할 패턴에 대한 학습 데이터 세트를 필요로 합니다. ML 엔진이 아무리 훌륭하다고 해도 해당 시스템이 지닌 학습 데이터 세트의 수준 자체를 능가할 수는 없으며, 시각적 개체의 경우 일부 학습 데이터 세트에서는 많은 대형 모델을 위해 수 기가바이트의 데이터가 요구되기도 합니다. 데이터가 커질수록 정확히 일치하는 항목을 찾기 위해 더 높은 CPU 성능이 요구되는데, 그러므로 이런 유형의 응용 제품은 주로 강력한 컴퓨터 또는 고급형 랩톱에서 실행됩니다.

내장형 시스템 응용 제품에서는 해당 응용 제품에서 필요한 특정 모델만을 학습 데이터 세트에 저장하면 됩니다. 즉 해당 시스템이 도구 및 하드웨어를 인식하기 위한 것이라면, 과일과 장난감을 표현하는 모델은 삭제해도 됩니다. 그러면 학습 데이터 세트의 크기가 줄어들므로 내장형 시스템의 메모리 요구 사항이 감소하고 성능이 향상되며 비용이 절감됩니다.

ML 마이크로 컨트롤러

마이크로 컨트롤러용 TensorFlow Lite를 실행하기 위해, Microchip Technology는 Arm® Cortex®-M4F 기반 ATSAMD51J19A-AFT 마이크로 컨트롤러가 포함된 마이크로 컨트롤러에서의 머신러닝을 대상으로 합니다(그림 1). 512KB의 플래시 메모리와 192KB의 SRAM 메모리를 제공하며 120MHz에서 실행됩니다. ATSAMD51J19A-AFT는 Microchip Technology의 ATSAMD51 ML 마이크로 컨트롤러 제품군에 속해 있습니다. 자동차 AEC-Q100 1등급 품질 표준을 준수하고 -40°C ~ +125°C의 작동 온도 범위를 지니므로, 열악한 IoT 및 IIoT 환경에서 이용할 수 있습니다. 저전력 마이크로 컨트롤러로 120 MHz에서 실행 시 1.71V ~ 3.63V의 작동 전압 범위를 지닙니다.

Arm Cortex-M4F 코어를 기반으로 한 Microchip ATSAMD51J19A 구성도(확대하려면 클릭)그림 1: The ATSAMD51J19A는 120 MHz에서 실행되는 Arm Cortex-M4F 코어를 기반으로 합니다. 512 KB의 플래시 및 192 KB의 SRAM이 포함된 전 기능 마이크로 컨트롤러입니다. (이미지 출처: Microchip Technology)

ATSAMD51J19A 네트워킹 옵션에는 산업용 네트워킹을 위한 CAN 2.0B와 대부분의 유선 네트워크를 위한 10/100 이더넷 등이 있습니다. 이를 통해 마이크로 컨트롤러가 여러 다양한 IoT 네트워크에서 작동할 수 있습니다. USB 2.0 인터페이스는 호스트 및 장치 작동 모드를 모두 지원하며 장치 디버깅 또는 시스템 네트워킹을 위해 사용될 수 있습니다.

4KB의 명령어 및 데이터 캐시 결합으로 ML 코드를 처리 시 성능이 향상됩니다. 부동 소수점 처리 장치(FPU)는 ML 코드의 성능을 개선하고 미가공 센서 데이터를 처리하는 데도 유용합니다.

학습 데이터 세트 저장하기

또한 ATSAMD51J19A에는 외부 프로그램 또는 데이터 메모리 스토리지를 위한 QSPI 인터페이스도 있습니다. 이는 온칩 플래시 메모리의 용량을 초과하는 추가적인 학습 데이터 세트의 저장에 유용합니다. QSPI에는 외부 고속 프로그램 메모리 확장을 위한 XiP(eXecute in Place) 지원도 있습니다.

또한 ATSAMD51J19A에는 SD/MMC 메모리 카드 호스트 컨트롤러(SDHC)가 있어, ML 코드 및 학습 데이터 세트의 간편한 메모리 스왑을 가능하게 하므로 ML 응용 제품에서 매우 유용합니다. 마이크로 컨트롤러 엔진용 TensorFlow Lite는 ATSAMD51J19A의 512KB 플래시에서 실행될 수 있지만, 학습 데이터 세트는 정기적으로 업그레이드 및 개선될 수 있습니다. 학습 데이터 세트는 외부 QSPI 플래시 또는 QSPI EEPROM에 저장할 수 있으며, 네트워크 구성에 따라 네트워크를 통해 원격으로 업그레이드할 수도 있습니다. 그러나 일부 시스템의 경우 개선된 학습 데이터 세트가 포함된 다른 메모리 카드로 물리적으로 교체하는 것이 더 간편할 수 ​​있습니다. 이 구성에서는 개발자가 시스템이 메모리 카드를 핫스왑하도록 설계해야 할지 또는 IoT 노드를 종료해야 할지를 결정해야 합니다.

IoT 노드에 심한 공간적 제약이 있는 경우 외부 메모리를 사용하는 대신 응용 제품을 최대한 마이크로 컨트롤러 메모리에 저장하는 것이 유리합니다. Microchip Technology의 ATSAMD51J20A-AFT는 ATSAMD51J19A와 유사하며 핀 호환이 가능합니다. 그러나 1MB의 플래시 및 256KB의 SRAM이 있어 학습 데이터 세트를 위한 더 큰 온칩 스토리지를 제공합니다.

마이크로 컨트롤러용 TensorFlow Lite로 개발하기

Adafruit Industries는 마이크로 컨트롤러용 4317 TensorFlow Lite 개발 키트로 ATSAMD51J19A에서의 개발을 지원합니다(그림 2). 이 기판에는 학습 데이터 세트를 저장하는 데 사용할 수 있는 2MB의 QSPI 플래시가 있습니다. 키트에는 ML 오디오 인식을 위한 마이크 잭이 포함됩니다. 1.8인치 컬러 160 x 128 TFT LCD를 개발 및 디버깅에 사용할 수 있습니다. 이 디스플레이는 마이크로 컨트롤러용 TensorFlow Lite를 음성 인식 학습 데이터 세트와 함께 사용하는 경우 음성 인식 데모에도 사용할 수 있습니다. 응용 제품에서 다양한 단어를 인식하면 해당 단어가 화면에 표시될 수 있습니다.

또한 Adafruit Industries의 키트에는 8개의 푸시 버튼, 3축 가속도계, 광 센서, 미니 스피커 및 리튬 폴리 배터리가 포함됩니다. ATSAMD51J19A의 USB 2.0 포트는 배터리 충전, 디버깅 및 프로그래밍을 위해 커넥터로 연결됩니다.

Adafruit Industries의 마이크로 컨트롤러용 4317 TensorFlow Lite 이미지그림 2: Adafruit Industries의 마이크로 컨트롤러용 4317 TensorFlow Lite 개발 기판에는 개발을 위한 컬러 TFT LCD가 포함되어 ML 작동의 결과를 표시할 수 있습니다. (이미지 출처: Adafruit Industries)

Adafruit 키트에는 최신 버전의 마이크로 컨트롤러용 TensorFlow Lite가 포함됩니다. 학습 데이터 세트는 USB 포트를 사용하여 ATSAMD51J19A 마이크로 컨트롤러의 512KB 플래시 메모리에 로드하거나 외부 2MB QSPI 메모리에 로드할 수 있습니다.

이미지 인식 평가를 위해서는 TensorFlow 개체 감지 학습 세트를 개발 기판에 로드할 수 있습니다. 개발 기판에는 마이크로 컨트롤러의 병렬 및 직렬 포트에 연결하기위한 포트가 있으며, 그 중 다수는 외부 카메라에 연결하는 데 사용할 수 있습니다. 개체 감지 학습 세트가 마이크로 컨트롤러에 로드되면 LCD를 사용하여 객체 감지 ML 처리의 결과를 출력하여 표시할 수 있습니다. 따라서 이 시스템이 바나나를 인식하는 경우, 그 인식된 개체가 무엇인지를 TFT 디스플레이에 백분율 정확도와 함께 표시할 수 있습니다. 예를 들어 그 결과가 다음과 같이 표시될 수 있습니다.

바나나: 95%
렌치: 12%
안경: 8%
머리빗: 2%

IoT 개체 감지 응용 제품을 개발함에 있어 이 제품은 개발의 속도를 높이고 잘못된 감지 결과를 진단하는 데 도움이 될 수 있습니다.

결론

ML은 최근 성장하고 있는 분야로, 마이크로 컨트롤러 엔진과 모델을 첫 단계부터 개발하며 이를 에지에서 효율적으로 구현하기 위해 특수 기술이 요구됩니다. 그러나 저가의 고효율 마이크로 컨트롤러 또는 개발 기판에서 마이크로 컨트롤러용 TensorFlow Lite와 같은 기존 코드 라이브러리를 사용하면 시간과 비용이 절약되며, 그 결과 IoT 노드의 개체를 빠르고 안정적이며 효율적으로 감지하는 데 사용할 수 있는 고성능 ML 시스템을 개발할 수 있습니다.

DigiKey logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

작성자 정보

Image of Bill Giovino

Bill Giovino

Bill Giovino는 시러큐스 대학(Syracuse University)에서 전자 공학 학위를 취득한 전자 엔지니어이며, 설계 엔지니어링에서 현장 애플리케이션 엔지니어링은 물론 기술 마케팅에 이르기까지 바로 투입 가능한 몇 안 되는 실력자 중 하나입니다.

Bill은 25년 이상 STMicroelectronics, Intel, Maxim Integrated를 비롯한 다양한 회사의 기술 및 비기술 담당자를 대상으로 신기술을 홍보해 왔습니다. STMicroelectronics 재직 중 Bill은 마이크로 컨트롤러 업계에서 회사의 초기 입지를 다지는 데 공헌했습니다. Infineon에서는 미국 자동차 업계에서 회사 최초로 마이크로 컨트롤러 설계를 성공으로 이끌어 내는 역할을 했습니다. Bill은 직접 설립한 CPU Technologies의 마케팅 컨설턴트로 일하면서, 많은 업체들이 실적이 저조한 제품의 실적을 개선하는 데 도움을 주고 있습니다.

Bill은 최초의 전체 TCP/IP 스택을 마이크로 컨트롤러에 배치하는 것을 비롯하여 사물 인터넷을 조기에 수용한 바 있습니다. Bill은 '교육을 통한 판매'라는 메시지와 온라인을 통한 제품 홍보에 있어 커져 가는 명확하고 분명한 의사 소통의 중요성 전달에 전념하고 있습니다. Bill은 LinkedIn의 인기 그룹인 Semiconductor Sales & Marketing Group의 중재자이며, B2E에 유창합니다.

게시자 정보

DigiKey 북미 편집자