코딩뚠뚠

[머신러닝 공부] Tiny ML -13 / 인체감지 어플리케이션-1 본문

공부/ML&DL

[머신러닝 공부] Tiny ML -13 / 인체감지 어플리케이션-1

로디네로 2022. 2. 17. 00:17
반응형

 

 

Chapter13. 인체감지 어플리케이션

 

"

카메라로 인체를 감지해보자 (CNN)

"

 

목차 : 

  • 개요
  • 만들고자하는 시스템
  • 어플리케이션 아키텍처
  • 코드 기본흐름 -> 다음장
  • 핵심 함수 분석 -> 다음장
  • 마이크로컨트롤러 배포 -> 다음장

 

참고 repo

 

GitHub - tensorflow/tensorflow: An Open Source Machine Learning Framework for Everyone

An Open Source Machine Learning Framework for Everyone - GitHub - tensorflow/tensorflow: An Open Source Machine Learning Framework for Everyone

github.com

 


 

개요 : 

 

사람에게 시각은 가장 중요하다고 할 수 있을 정도로 중요한 감각이다.

 

기계에게 시각 정보는 사람과 달리 너무 복잡하고 구조화되지 않았으며 해석하기 어려운 정보였다.

 

하지만 합성곱신경망 CNN발전으로 기계가 볼 수 있게 하는 프로그램을 만들기 쉬워졌다.

 

https://www.analyticsvidhya.com/blog/2021/05/convolutional-neural-networks-cnn/

 

오늘날 시각 모델은 아래 예시 이외에도 매우 다양한 곳에 사용된다.

  • 자율주행차량
  • 공장자동화
  • 번호판인식
  • 얼굴인증
  • 질병진단
  • 카메라어플

 

이런 시각 모델의 발전을 TinyML에 어떻게 적용하면 확장할 수 있을까?

 

http://www.aitimes.com/news/articleView.html?idxno=133510

 

인터넷 연결 없이도 추론이 가능한 보안의 장점을 이용해 보안시스템, 스토브 등을 구현 할 수 있을것이다.

 

또한 이 시스템은 저전력의 특성 덕분에 소형 배터리를 이용해서 한참동안 구동될 수 있어 휴대용기기로의 확장도 노릴수있다.

 


 

만들고자하는 시스템 : 

 

카메라로 캡처한 이미지를 분류 해내는 임베디드 어플리케이션 구축

 

모델은 사람이 카메라 시야안에 있을때만 인식하도록 훈련되고 그에 따른 출력을 생성할 수 있을것이다.

- 인체감지 센서를 이용해 사람을 인식할 수 있겠지만 사람만을 인식하지 못하고 정확도가 낮다.

 

카메라로 인식하기 때문에 추가적으로 카메라 구입이 필요하다 ㅠㅠ

- 나도 구입해야돼서 실제 실행해보는 포스팅은 늦을거같다.. (핑계아님)

 

 

hm01b0 : 네이버 쇼핑

'hm01b0'의 네이버쇼핑 검색 결과입니다

search.shopping.naver.com

 


 

어플리케이션 아키텍처 : 

 

이미지 분류 모델 훈련에 사용할 Dataset은 아래와 같다.

 

11만 5000개의 이미지로 구성되며 각 이미지에는 사람이 포함되어있는지 여부를 나타내는 레이블이 있다.

 

Visual Wake Words Dataset

The emergence of Internet of Things (IoT) applications requires intelligence on the edge. Microcontrollers provide a low-cost compute platform to deploy intelligent IoT applications using machine learning at scale, but have extremely limited on-chip memory

arxiv.org

이 Dataset을 이용해 훈련한 CNN은 용량이 250KB로 이전 포스팅에서의 음성모델보다 용량이 크다.

 

입력은 96x96 그레이스케일 이미지이고 (96,96,1) 형태의 3D텐서로 제공된다.

- 96x96이 작은것 같지만 복잡한 이미지가 아니기 때문에 충분한 크기이다.

- 이미지의 크기가 커짐에 따라 모델의 복잡도가 크게 증가한다.

- 일반적인 분류모델은 물론 모델에 따라 다르지만 320x320, 255x255 등의 이미지 크기를 사용한다.

 

모델의 출력은 사람 유무이고 그 확률은 0~255의 범위를 가진다.

 


그래서 이 책에선 인체감지를 위해 어떤 모델을 사용할까?

 

MobileNet 아키텍처를 사용한다.

 

MobileNet은 네이밍만 들어도 모바일용으로 가볍게 만들었음을 알 수 있다.

 

하지만 지금은 더 가볍고 성능도 좋은 모델도 많이 나왔기 때문에 추후에 다른 모델로 훈련도 해보도록 하자.

 


 

동작은 아래와 같다.

 

카메라모듈 입력

메인루프( 이미지추출 / TFlite 인터프리터 / 감지 응답기) ↔ 모델(Trained)

장치 LED로 출력

 

아주 간단한 동작이다.

- 이미지 데이터를 모델에 직접 전달할 수 있기 때문에 전처리도 필요치 않다.

 

 

다음 포스팅에서는 중요 코드 몇개를 분석해보자.

 

 

 

 

반응형