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

MCU에서 사물 AI(AIoT)를 구현하는 방법

이전 기사에서 IoT(사물 인터넷) 장치에서 점점 더 많은 인공 지능(AI)이 지능형 'AIoT' 장치를 생성할 수 있도록 하는 성장 추세를 강조했으며 다양한 응용 프로그램이 이러한 지능형 장치의 혜택을 받고 있습니다. 이들은 데이터에서 학습하고 사람의 개입 없이 자율적인 결정을 내림으로써 환경과 보다 논리적이고 사람과 유사한 상호 작용을 하는 제품으로 이어집니다.

AI와 IoT의 결합은 MCU(마이크로컨트롤러)의 새로운 시장을 열었습니다. AI 가속과 결합된 간단한 MCU를 사용하여 지능형 제어를 용이하게 할 수 있는 새로운 애플리케이션 및 사용 사례가 증가하고 있습니다. 이러한 AI 지원 MCU는 컴퓨팅을 위한 DSP 기능과 추론을 위한 머신 러닝(ML)의 고유한 조합을 제공하며 현재 키워드 스포팅, 센서 융합, 진동 분석 및 음성 인식과 같은 다양한 애플리케이션에서 사용되고 있습니다. 고성능 MCU는 얼굴 인식, 지문 분석 및 자율 로봇과 같은 비전 및 이미징 분야에서 보다 복잡한 애플리케이션을 가능하게 합니다.

AI 기술

다음은 IoT 장치에서 AI를 가능하게 하는 몇 가지 기술입니다.

머신 러닝(ML) :머신 러닝 알고리즘은 대표 데이터를 기반으로 모델을 구축하여 장치가 사람의 개입 없이 자동으로 패턴을 식별할 수 있도록 합니다. ML 공급업체는 임베디드 시스템에 구축할 수 있는 모델을 교육하는 데 필요한 알고리즘, API 및 도구를 제공합니다. 그런 다음 이러한 임베디드 시스템은 사전 훈련된 모델을 사용하여 새로운 입력 데이터를 기반으로 추론 또는 예측을 수행합니다. 응용 프로그램의 예로는 센서 허브, 키워드 발견, 예측 유지 관리 및 분류가 있습니다.

딥 러닝 :딥 러닝은 신경망의 여러 계층을 사용하여 복잡한 입력 데이터에서 점진적으로 더 높은 수준의 기능과 통찰력을 추출하여 시스템을 훈련하는 기계 학습 클래스입니다. 딥 러닝은 매우 크고 다양하며 복잡한 입력 데이터와 함께 작동하며 시스템이 반복적으로 학습하여 각 단계에서 결과를 개선할 수 있습니다. 딥 러닝을 사용하는 애플리케이션의 예로는 이미지 처리, 고객 서비스를 위한 챗봇 및 얼굴 인식이 있습니다.

자연어 처리(NLP) :NLP는 자연어를 사용하여 시스템과 인간 간의 상호 작용을 다루는 인공 지능의 한 분야입니다. NLP는 시스템이 인간의 언어(텍스트 또는 음성)를 이해하고 해석하고 이를 기반으로 결정을 내릴 수 있도록 도와줍니다. 응용 프로그램의 예로는 음성 인식 시스템, 기계 번역 및 자동 입력이 있습니다.

컴퓨터 비전 :머신/컴퓨터 비전은 이미지 데이터를 수집, 해석 및 이해하고 해당 데이터를 기반으로 조치를 취하도록 머신을 훈련시키는 인공 지능의 한 분야입니다. 기계는 카메라에서 디지털 이미지/비디오를 수집하고 딥 러닝 모델과 이미지 분석 도구를 사용하여 물체를 정확하게 식별 및 분류하고 "보는" 것을 기반으로 조치를 취합니다. 제조 조립 라인의 결함 감지, 의료 진단, 소매점의 얼굴 인식 및 무인 자동차 테스트가 그 예입니다.

MCU의 AIoT

과거에는 AI가 강력한 CPU 코어, 대용량 메모리 리소스 및 분석을 위한 클라우드 연결을 갖춘 MPU 및 GPU의 영역이었습니다. 하지만 최근 몇 년 동안 에지에서 인텔리전스가 증가하는 추세에 따라 임베디드 AIoT 애플리케이션에 MCU가 사용되는 것을 보기 시작했습니다. 에지로의 이동은 대기 시간 및 비용 고려 사항에 의해 주도되며 계산을 데이터에 더 가깝게 이동해야 합니다. MCU 기반 IoT 장치의 AI는 실시간 의사 결정과 이벤트에 대한 더 빠른 응답을 가능하게 하며 더 낮은 대역폭 요구 사항, 더 낮은 전력, 더 낮은 대기 시간, 더 낮은 비용 및 더 높은 보안의 이점을 가지고 있습니다. AIoT는 최신 MCU의 더 높은 컴퓨팅 기능과 이러한 최종 장치에 사용되는 리소스가 제한된 MCU에 더 적합한 NN(Thin Neural Network) 프레임워크의 가용성으로 인해 가능합니다.

신경망은 이전 계층에서 입력을 수신하고 입력의 가중치 및 편향된 합계에서 계산되는 출력을 생성하는 계층으로 배열된 노드 모음입니다. 이 출력은 나가는 모든 연결을 따라 다음 레이어로 전달됩니다. 훈련하는 동안 훈련 데이터는 네트워크의 첫 번째 또는 입력 계층에 공급되고 각 계층의 출력은 다음 계층으로 전달됩니다. 마지막 레이어 또는 출력 레이어는 모델의 예측을 산출하고, 이는 모델 오류를 평가하기 위해 알려진 예상 값과 비교됩니다. 훈련 프로세스에는 네트워크의 출력이 예상 값과 밀접하게 연관될 때까지 역전파라는 프로세스를 사용하여 각 반복에서 네트워크의 각 계층의 가중치와 편향을 수정하거나 조정하는 작업이 포함됩니다. 다시 말해, 네트워크는 입력 데이터 세트에서 반복적으로 "학습"하고 출력 예측의 정확도를 점진적으로 향상시킵니다.

신경망 훈련에는 매우 높은 컴퓨팅 성능과 메모리가 필요하며 일반적으로 클라우드에서 수행됩니다. 훈련 후 이 사전 훈련된 NN 모델은 MCU에 내장되어 훈련을 기반으로 하는 새로운 수신 데이터에 대한 추론 엔진으로 사용됩니다.

이 추론 생성은 모델 훈련보다 훨씬 낮은 컴퓨팅 성능을 요구하므로 MCU에 적합합니다. 이 사전 훈련된 NN 모델의 가중치는 고정되어 있으며 플래시에 배치할 수 있으므로 필요한 SRAM의 양이 줄어들고 리소스가 더 제한된 MCU에 적합합니다.

MCU에서 구현

MCU의 AIoT 구현에는 몇 가지 단계가 포함됩니다. 가장 일반적인 접근 방식은 MCU 기반 최종 장치 솔루션에 적합한 Caffe 또는 Tensorflow Lite와 같은 사용 가능한 NN(신경망) 프레임워크 모델 중 하나를 사용하는 것입니다. 머신 러닝을 위한 NN 모델의 훈련은 AI 벤더가 제공하는 도구를 사용하여 AI 전문가가 클라우드에서 수행합니다. NN 모델의 최적화와 MCU의 통합은 AI 공급업체와 MCU 제조업체의 도구를 사용하여 수행됩니다. 사전 훈련된 NN 모델을 사용하여 MCU에서 추론이 수행됩니다.

프로세스의 첫 번째 단계는 완전히 오프라인으로 수행되며 최종 장치 또는 애플리케이션에서 많은 양의 데이터를 캡처한 다음 NN 모델을 훈련하는 데 사용됩니다. 모델의 토폴로지는 사용 가능한 데이터를 최대한 활용하고 해당 애플리케이션에 필요한 출력을 제공하기 위해 AI 개발자가 정의합니다. NN 모델의 훈련은 모델의 출력에서 ​​오류를 지속적으로 최소화하는 것을 목표로 모델을 통해 반복적으로 데이터 세트를 전달하여 수행됩니다. 이 프로세스를 지원할 수 있는 NN 프레임워크와 함께 사용할 수 있는 도구가 있습니다.

두 번째 단계에서는 키워드 스포팅 또는 음성 인식과 같은 특정 기능에 최적화된 사전 학습된 모델을 MCU에 적합한 형식으로 변환합니다. 이 프로세스의 첫 번째 단계는 AI 변환기 도구를 사용하여 플랫 버퍼 파일로 변환하는 것입니다. 이것은 크기를 줄이고 MCU에 최적화하기 위해 양자화기를 통해 선택적으로 실행할 수 있습니다. 이 플랫 버퍼 파일은 C 코드로 변환되어 런타임 실행 파일로 대상 MCU에 전송됩니다.

사전 훈련된 임베디드 AI 모델이 장착된 이 MCU는 이제 최종 장치에 배포할 수 있습니다. 새로운 데이터가 들어오면 모델을 통해 실행되고 훈련을 기반으로 추론이 생성됩니다. 새로운 데이터 클래스가 들어오면 NN 모델은 재교육을 위해 클라우드로 다시 전송될 수 있으며 새로운 재교육 모델은 잠재적으로 OTA(무선) 펌웨어 업그레이드를 통해 MCU에 프로그래밍될 수 있습니다.

MCU 기반 AI 솔루션을 설계하는 방법에는 두 가지가 있습니다. 이 논의의 목적을 위해 대상 MCU에서 Arm Cortex-M 코어를 사용한다고 가정합니다.

첫 번째 방법은 변환된 NN 모델을 Cortex-M CPU 코어에서 실행하고 CMSIS-NN 라이브러리를 사용하여 가속화하는 것입니다. 추가 하드웨어 가속 없이 처리할 수 있는 간단한 구성이며 키워드 스포팅, 진동 분석 및 센서 허브와 같은 간단한 AI 응용 프로그램에 적합합니다.

보다 정교하고 고성능인 옵션에는 MCU에 NN 가속기 또는 u-NPU(미세 신경 처리 장치) 하드웨어를 포함하는 것이 포함됩니다. 이러한 u-NPU는 리소스가 제한된 IoT 최종 장치에서 기계 학습을 가속화하고 모델의 전력과 크기를 줄일 수 있는 압축을 지원할 수 있습니다. 오디오 처리, 음성 인식, 이미지 분류 및 객체 감지를 위해 대부분의 일반적인 NN 네트워크를 완전히 실행할 수 있는 운영자를 지원합니다. u-NPU에서 지원하지 않는 네트워크는 주 CPU 코어로 대체될 수 있으며 CMSIS-NN 라이브러리에 의해 가속화됩니다. 이 방법에서 NN 모델은 uNPU에서 실행됩니다.

이러한 방법은 MCU 기반 장치에 AI를 통합하는 몇 가지 방법을 보여줍니다. MCU가 MPU에서 기대하는 수준에 더 근접한 더 높은 수준으로 성능 경계를 확장함에 따라 우리는 MCU에 직접 구축되는 경량 학습 알고리즘 및 추론을 포함한 전체 AI 기능을 보기 시작할 것으로 기대합니다.

가장자리에 있는 AI가 미래입니다

리소스가 제한된 MCU에서 AI 구현은 앞으로 기하급수적으로 증가할 것이며 MCU가 성능의 경계를 넓히고 MCU와 MPU 사이의 경계를 흐리게 하고 점점 더 "씬" NN이 등장함에 따라 새로운 애플리케이션과 사용 사례가 계속해서 나타날 것입니다. 리소스가 제한된 기기에 적합한 모델이 출시됩니다.

미래에는 MCU 성능이 향상됨에 따라 추론 외에 경량 학습 알고리즘의 구현이 MCU에서 직접 실행되는 것을 보게 될 것입니다. 이는 MCU 제조업체를 위한 새로운 시장과 애플리케이션을 열 것이며 이들에게 상당한 투자 영역이 될 것입니다.


사물 인터넷 기술

  1. 클라우드 기술을 보호하는 방법은 무엇입니까?
  2. 데이터를 최대한 활용하는 방법
  3. AIoT가 스마트 교통 솔루션을 가능하게 하는 방법
  4. 사물 인터넷이 공급망을 변화시키는 방법:2부, 미래 솔루션
  5. 모바일 기술이 여행의 장벽을 없애는 방법
  6. 데이터 과학과 기계 학습이 웹사이트 디자인을 향상시키는 데 어떻게 도움이 되는지
  7. 사물 인터넷:데이터 유입 관리
  8. 오늘날의 기업 환경에서 기계 학습을 사용하는 방법
  9. IoT가 차량 추적 시스템을 어떻게 강화합니까?
  10. 의료 기기 OEM이 인더스트리 4.0 비즈니스 모델을 구현할 수 있는 방법