SlideShare ist ein Scribd-Unternehmen logo
1 von 28
TinyML Study
Ch9~Ch10
2020.10.31.
김병헌
Ch9. 인체 감지 애플리케이션 만들기
1. CNN 모델 개요
2. Ch9 Overview
3. Test & Build
Ch10. 인체 감지 모델 훈련하기
CNN 모델 개요
기존 이미지 인식 방법
2차원으로 된 이미지를 1차원 배열로 바꾼 뒤
Fully Connected 신경망을 학습시키는 방법
> 이미지의 특성을 이해하지 못하는 단점이 있었음
> 회전이나 움직이면 잘 인식하지 못하는 Overfitting 문제가 있었
음
Convolution(합성곱)을 통해 이미지 특징(Feature) 추출
Ch9. 인체 감지 애플리케이션 만들기
Reference: https://gruuuuu.github.io/machine-learning/cnn-doc/#
CNN 모델 개요
Convolution(합성곱)은 한참 전 이미지에 사용된 개념.
Feature의 획득이 가능한 유명한 Filter를 통해 학습하던 방식에서
신경망을 통해 Filter를 생성하고
적합한 필터를 생성해 학습에 이용
Ch9. 인체 감지 애플리케이션 만들기
Reference: https://gruuuuu.github.io/machine-learning/cnn-doc/#
sobel-x sobel-y
Ch9 Overview
훈련된 인체 감지 모델(MobileNet 아키텍처)로 MCU에서 예측하
는 법
Architecture
MobileNet https://arxiv.org/pdf/1704.04861.pdf
Training dataset
Visual Wake Words dataset https://arxiv.org/pdf/1906.05721.pdf
그외, “CIFAR10” 도 Cortex-M7에 활용된 기록 있음.
Ch9. 인체 감지 애플리케이션 만들기
10개 클래스, 6만장, 32x32 컬러 이미
지
115k 개의 COCO dataset에서 기원, 비전센서를 통해 사람의 유무 판단 필요성에서
시작.
모델이 250KB 이내를 차지하도록, 사람의 유무 Labeling
가벼운 CNN Architecture을 목표해서 제안. 성능과 효율성의 Trade-off를 맞출 필요성에서 출발.
커널의 변경을 통해 파라미터량을 줄이는 방법(Depthwise Separable Convolution)
Reference: https://minimin2.tistory.com/42
Ch9 Overview
Ch9. 인체 감지 애플리케이션 만들기
데이터 전처리 없이 진행
> 학습모델(MobileNet) 때문
(Ch7 호출어감지와 다르게)
모델의 평균을 구하지 않음.
여전히 데이터량이 많아 느림.
인체 감지 어플리케이션의 구성 요소
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/micro/examples/person_detection
Ch9 Test & Build
Ch9. 인체 감지 애플리케이션 만들기
-person_detection_test.cc
-Image_provider_test.cc
-Main_functions.cc
-Image_provider.cc
모델에 필요한 Op 추가
Tensor_arena 사이즈 정의. (실험적으로 획득된 값)
모델 매핑
모델을 실행할 인터프리터 빌드
Ch9 Test & Build
Ch9. 인체 감지 애플리케이션 만들기
-person_detection_test.cc
-Image_provider_test.cc
-Main_functions.cc
-Image_provider.cc
Input 속성 ASSERT
모델 실행
이미지를 input용 메모리로 복사
Output 속성 ASSERT
Ch9 Test & Build
Ch9. 인체 감지 애플리케이션 만들기
-person_detection_test.cc
-Image_provider_test.cc
-Main_functions.cc
-Image_provider.cc
결과값 획득
사람이 없는 이미지로, 추론
Ch9 Test & Build
Ch9. 인체 감지 애플리케이션 만들기
-person_detection_test.cc
-Image_provider_test.cc
-Main_functions.cc
-Image_provider.cc
image_data 배열의 포인터를 이용한다.
Ch9 Test & Build
Ch9. 인체 감지 애플리케이션 만들기
-person_detection_test.cc
-Image_provider_test.cc
-main_functions.cc
-Image_provider.cc
필요 포인터 선언
모델 매핑
Ch9 Test & Build
Ch9. 인체 감지 애플리케이션 만들기
-person_detection_test.cc
-Image_provider_test.cc
-main_functions.cc
-Image_provider.cc
사용할 Op 추가
작업 메모리 할당
(Cont...) 작업 메모리 할당, setup 종료
Ch9 Test & Build
Ch9. 인체 감지 애플리케이션 만들기
-person_detection_test.cc
-Image_provider_test.cc
-main_functions.cc
-Image_provider.cc
이미지 전달, 추론, 결과 출력
Ch9 Test & Build
Ch9. 인체 감지 애플리케이션 만들기
-person_detection_test.cc
-Image_provider_test.cc
-main_functions.cc
-Image_provider.cc
이미지 전달, 추론, 결과 출력
Ch9 Test & Build
Ch9. 인체 감지 애플리케이션 만들기
-person_detection_test.cc
-Image_provider_test.cc
-main_functions.cc
-Image_provider.cc
Sparkfun Edge 보드
frame 포인터에 이미지 저장
input->data.uint8 로 이미지 접근
Ch9 Test & Build
Ch9. 인체 감지 애플리케이션 만들기
-HM01B0 카메라 모듈은 320*320 픽셀 이미지 센서 모듈
- 바이너리 빌드
$ make –f tensorflow/lite/micro/tools/make/Makefile TARGET=sparkfun_edge person_detection_bin
- 파일 존재 확인
$ test –f tensorflow/lite/micro/tools/make/gen/sparkfun_edge_cortex-m4/bin/person_detection.bin
&& echo “success” || echo “missing”
- 바이너리 서명 및 플래시는 생략하겠습니다 …
Ch10. 인체 감지 모델 훈련하기
어쩌면 Appendix
Ch10 개발 환경 설정
Ch10. 인체 감지 모델 훈련하기
- AWS, Azure, GCP 등, 개발환경 선택 후 진행
- “초소형 머신러닝 TinyML”에서는 GCP를 이용한 예시
- 트러블슈팅 관련 이슈
- 단순 실습 외의 조사한 내용 공유
> slim 에 대해서 알아보기
> (Ch10.10) 아키텍처 이해
Ch10. tf-slim
Ch10. 인체 감지 모델 훈련하기
- TF-slim
- 사전에 학습된 모델 제공
- Alexnet
5 conv + 5 pooling
고화질 이미지
- Inception
적은 파라미터수(연산)+정확도
- Overfeat
- Resnet
shortcut connection
파라미터 감소
- VGG
ImageNet (1M)
https://github.com/google-research/tf-slim
Ch10. tf-slim
Ch10. 인체 감지 모델 훈련하기
- TF-slim
- Tensorflow의 확장된 추상화 라이브러리,
(추상화는 모두 CNN에 관한 함수를 가독성 좋게 제공..)
- 교재에는 커맨드 arguments로 훈련하지만
실제로 더 많은 모델을 직접 만들어 볼 수 있다.
!python models/research/slim/train_image_classifier.py 
--train_dir=vww_96_grayscale 
--dataset_name=visualwakewords 
--dataset_split_name=train 
--model_name=mobilenet_v1_025 
…
https://github.com/google-research/tf-slim
제게는 대중화(?) 가능한 모델을 제공하는 정도로 보입
니다.
Ch10.10 아키텍처 이해
Ch10. 인체 감지 모델 훈련하기
- MobileNet
- 적은 파라미터, 적은 연산량
- Ver1, Ver2의 비교표를 보면 Ver2가 더 좋아보이지만
- Ver1가 가장 적은 양의 램을 이용한다.
(교재 내용이라서 믿어보지만… 이를 확인해보고 싶었지만…)
- MACs (Multiply-accumulate operations)
http://machinethink.net/blog/mobilenet-v2/
Ch10.10 아키텍처 이해
Ch10. 인체 감지 모델 훈련하기
MobileNet Ver1
- 14 Depth-wise conv layer
- Fully Connected layer
- Point-wise conv layer
- softmax layer
Ch10.10 아키텍처 이해
Ch10. 인체 감지 모델 훈련하기
- 14 Depth-wise layer
- Point-wise conv layer
https://www.slideshare.net/ssuser6135a1/ss-106656779
일반적인 Convolution Filter는 입력 영상
모든 채널의 영향을 받게 되는데,
Depth-wise Convolution은 각 단일 채널
에 대해서만 수행되는 필터들을 사용한
다.
Ch10.10 아키텍처 이해
Ch10. 인체 감지 모델 훈련하기
- 14 Depth-wise layer
- Point-wise conv layer
https://www.slideshare.net/ssuser6135a1/ss-106656779
커널 크기가 1x1로 고정된 conv layer.
입력 영상에 대한 Spatial feature의 추출은 하
지 않은 상태로, 연산만을 수행.
불필요한 채널의 Coefficient를 이용할 수 있음.
Ch10.10 아키텍처 이해
Ch10. 인체 감지 모델 훈련하기
https://www.slideshare.net/ssuser6135a1/ss-106656779
Ch10.10 아키텍처 이해
Ch10. 인체 감지 모델 훈련하기
https://www.slideshare.net/ssuser6135a1/ss-106656779
전체 채널에 대한 Spatial conv 각 채널별 Spatial conv 이후 Feature별 연산
Ch10.10 아키텍처 이해
Ch10. 인체 감지 모델 훈련하기
https://www.slideshare.net/ssuser6135a1/ss-106656779
전체 채널에 대한 Spatial conv 각 채널별 Spatial conv 이후 Feature별 연산
감사합니다
Ch9~Ch10
2020.10.31.
김병헌

Weitere ähnliche Inhalte

Ähnlich wie Tiny ml study 20201031

딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 
Autonomous Drive for Smart Factory
Autonomous Drive for Smart FactoryAutonomous Drive for Smart Factory
Autonomous Drive for Smart Factoryminsukim134
 
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐Amazon Web Services Korea
 
Vip detection sensor
Vip detection sensorVip detection sensor
Vip detection sensorchs71
 
권기훈_포트폴리오
권기훈_포트폴리오권기훈_포트폴리오
권기훈_포트폴리오Kihoon4
 
[Paper] shuffle net an extremely efficient convolutional neural network for ...
[Paper] shuffle net  an extremely efficient convolutional neural network for ...[Paper] shuffle net  an extremely efficient convolutional neural network for ...
[Paper] shuffle net an extremely efficient convolutional neural network for ...Susang Kim
 
딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetectJunyi Song
 
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여Dong Chan Shin
 
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트Amazon Web Services Korea
 
코드스쿼드 iOS 교육 ML 발표자료
코드스쿼드 iOS 교육 ML 발표자료코드스쿼드 iOS 교육 ML 발표자료
코드스쿼드 iOS 교육 ML 발표자료HyunwooJung14
 
[Let's Swift 2019] iOS 앱에서 머신러닝이 해결 할 수 있는 문제들
[Let's Swift 2019] iOS 앱에서 머신러닝이 해결 할 수 있는 문제들[Let's Swift 2019] iOS 앱에서 머신러닝이 해결 할 수 있는 문제들
[Let's Swift 2019] iOS 앱에서 머신러닝이 해결 할 수 있는 문제들Doyoung Gwak
 
Caffe Tutorial with window10, VS2015
Caffe Tutorial with window10, VS2015Caffe Tutorial with window10, VS2015
Caffe Tutorial with window10, VS2015youngjoon kim
 
Spiral 모델 기반 실무 AI 교육.pdf
Spiral 모델 기반 실무 AI 교육.pdfSpiral 모델 기반 실무 AI 교육.pdf
Spiral 모델 기반 실무 AI 교육.pdfMyungHoKim10
 
I3D and Kinetics datasets (Action Recognition)
I3D and Kinetics datasets (Action Recognition)I3D and Kinetics datasets (Action Recognition)
I3D and Kinetics datasets (Action Recognition)Susang Kim
 
FLUTTER with AI tensorflow lite.pptx
FLUTTER with AI tensorflow lite.pptxFLUTTER with AI tensorflow lite.pptx
FLUTTER with AI tensorflow lite.pptxssuser6edff8
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)Haezoom Inc.
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)Jaimie Kwon (권재명)
 
스마트폰 위의 딥러닝
스마트폰 위의 딥러닝스마트폰 위의 딥러닝
스마트폰 위의 딥러닝NAVER Engineering
 
OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)Jinwook On
 

Ähnlich wie Tiny ml study 20201031 (20)

딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
Autonomous Drive for Smart Factory
Autonomous Drive for Smart FactoryAutonomous Drive for Smart Factory
Autonomous Drive for Smart Factory
 
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐
[2017 AWS Startup Day] 스타트업이 인공지능을 만날 때 : 딥러닝 활용사례와 아키텍쳐
 
Vip detection sensor
Vip detection sensorVip detection sensor
Vip detection sensor
 
권기훈_포트폴리오
권기훈_포트폴리오권기훈_포트폴리오
권기훈_포트폴리오
 
[Paper] shuffle net an extremely efficient convolutional neural network for ...
[Paper] shuffle net  an extremely efficient convolutional neural network for ...[Paper] shuffle net  an extremely efficient convolutional neural network for ...
[Paper] shuffle net an extremely efficient convolutional neural network for ...
 
딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect
 
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
 
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
 
코드스쿼드 iOS 교육 ML 발표자료
코드스쿼드 iOS 교육 ML 발표자료코드스쿼드 iOS 교육 ML 발표자료
코드스쿼드 iOS 교육 ML 발표자료
 
[Let's Swift 2019] iOS 앱에서 머신러닝이 해결 할 수 있는 문제들
[Let's Swift 2019] iOS 앱에서 머신러닝이 해결 할 수 있는 문제들[Let's Swift 2019] iOS 앱에서 머신러닝이 해결 할 수 있는 문제들
[Let's Swift 2019] iOS 앱에서 머신러닝이 해결 할 수 있는 문제들
 
Caffe Tutorial with window10, VS2015
Caffe Tutorial with window10, VS2015Caffe Tutorial with window10, VS2015
Caffe Tutorial with window10, VS2015
 
Spiral 모델 기반 실무 AI 교육.pdf
Spiral 모델 기반 실무 AI 교육.pdfSpiral 모델 기반 실무 AI 교육.pdf
Spiral 모델 기반 실무 AI 교육.pdf
 
I3D and Kinetics datasets (Action Recognition)
I3D and Kinetics datasets (Action Recognition)I3D and Kinetics datasets (Action Recognition)
I3D and Kinetics datasets (Action Recognition)
 
FLUTTER with AI tensorflow lite.pptx
FLUTTER with AI tensorflow lite.pptxFLUTTER with AI tensorflow lite.pptx
FLUTTER with AI tensorflow lite.pptx
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
 
스마트폰 위의 딥러닝
스마트폰 위의 딥러닝스마트폰 위의 딥러닝
스마트폰 위의 딥러닝
 
OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)
 

Mehr von ByoungHern Kim

Progress Indicators - Affective Engineering Presentation
Progress Indicators - Affective Engineering PresentationProgress Indicators - Affective Engineering Presentation
Progress Indicators - Affective Engineering PresentationByoungHern Kim
 
pre-workshop assignment
pre-workshop assignmentpre-workshop assignment
pre-workshop assignmentByoungHern Kim
 
(review) Using nonverbal signals to request help during human robot
(review) Using nonverbal signals to request help during human robot(review) Using nonverbal signals to request help during human robot
(review) Using nonverbal signals to request help during human robotByoungHern Kim
 
210604 hci seminar long term use
210604 hci seminar   long term use210604 hci seminar   long term use
210604 hci seminar long term useByoungHern Kim
 
210716 web serial impl
210716 web serial impl210716 web serial impl
210716 web serial implByoungHern Kim
 
Mbed cli install guide
Mbed cli install guideMbed cli install guide
Mbed cli install guideByoungHern Kim
 
PnP instrument ( Computational Interaction Design - project proposal )
PnP instrument ( Computational Interaction Design - project proposal )PnP instrument ( Computational Interaction Design - project proposal )
PnP instrument ( Computational Interaction Design - project proposal )ByoungHern Kim
 
경상북도교육청 과학영재교육원 4차산업혁명 특강자료
경상북도교육청 과학영재교육원 4차산업혁명 특강자료경상북도교육청 과학영재교육원 4차산업혁명 특강자료
경상북도교육청 과학영재교육원 4차산업혁명 특강자료ByoungHern Kim
 
Superbin project workshop
Superbin project workshopSuperbin project workshop
Superbin project workshopByoungHern Kim
 
proposal using big+thick data
proposal using big+thick dataproposal using big+thick data
proposal using big+thick dataByoungHern Kim
 
Bdpdp project proposal 20200402
Bdpdp project proposal 20200402Bdpdp project proposal 20200402
Bdpdp project proposal 20200402ByoungHern Kim
 

Mehr von ByoungHern Kim (16)

Progress Indicators - Affective Engineering Presentation
Progress Indicators - Affective Engineering PresentationProgress Indicators - Affective Engineering Presentation
Progress Indicators - Affective Engineering Presentation
 
pre-workshop assignment
pre-workshop assignmentpre-workshop assignment
pre-workshop assignment
 
(review) Using nonverbal signals to request help during human robot
(review) Using nonverbal signals to request help during human robot(review) Using nonverbal signals to request help during human robot
(review) Using nonverbal signals to request help during human robot
 
211117 decs seminar
211117 decs seminar211117 decs seminar
211117 decs seminar
 
210604 hci seminar long term use
210604 hci seminar   long term use210604 hci seminar   long term use
210604 hci seminar long term use
 
210812 decs seminar
210812 decs seminar210812 decs seminar
210812 decs seminar
 
210901 decs seminar
210901 decs seminar210901 decs seminar
210901 decs seminar
 
210716 web serial impl
210716 web serial impl210716 web serial impl
210716 web serial impl
 
Decs seminar 211117
Decs seminar 211117Decs seminar 211117
Decs seminar 211117
 
Mbed cli install guide
Mbed cli install guideMbed cli install guide
Mbed cli install guide
 
PnP instrument ( Computational Interaction Design - project proposal )
PnP instrument ( Computational Interaction Design - project proposal )PnP instrument ( Computational Interaction Design - project proposal )
PnP instrument ( Computational Interaction Design - project proposal )
 
경상북도교육청 과학영재교육원 4차산업혁명 특강자료
경상북도교육청 과학영재교육원 4차산업혁명 특강자료경상북도교육청 과학영재교육원 4차산업혁명 특강자료
경상북도교육청 과학영재교육원 4차산업혁명 특강자료
 
Superbin project workshop
Superbin project workshopSuperbin project workshop
Superbin project workshop
 
proposal using big+thick data
proposal using big+thick dataproposal using big+thick data
proposal using big+thick data
 
Bdpdp project proposal 20200402
Bdpdp project proposal 20200402Bdpdp project proposal 20200402
Bdpdp project proposal 20200402
 
Pinocchio ppt 140324
Pinocchio ppt 140324Pinocchio ppt 140324
Pinocchio ppt 140324
 

Tiny ml study 20201031

  • 2. Ch9. 인체 감지 애플리케이션 만들기 1. CNN 모델 개요 2. Ch9 Overview 3. Test & Build Ch10. 인체 감지 모델 훈련하기
  • 3. CNN 모델 개요 기존 이미지 인식 방법 2차원으로 된 이미지를 1차원 배열로 바꾼 뒤 Fully Connected 신경망을 학습시키는 방법 > 이미지의 특성을 이해하지 못하는 단점이 있었음 > 회전이나 움직이면 잘 인식하지 못하는 Overfitting 문제가 있었 음 Convolution(합성곱)을 통해 이미지 특징(Feature) 추출 Ch9. 인체 감지 애플리케이션 만들기 Reference: https://gruuuuu.github.io/machine-learning/cnn-doc/#
  • 4. CNN 모델 개요 Convolution(합성곱)은 한참 전 이미지에 사용된 개념. Feature의 획득이 가능한 유명한 Filter를 통해 학습하던 방식에서 신경망을 통해 Filter를 생성하고 적합한 필터를 생성해 학습에 이용 Ch9. 인체 감지 애플리케이션 만들기 Reference: https://gruuuuu.github.io/machine-learning/cnn-doc/# sobel-x sobel-y
  • 5. Ch9 Overview 훈련된 인체 감지 모델(MobileNet 아키텍처)로 MCU에서 예측하 는 법 Architecture MobileNet https://arxiv.org/pdf/1704.04861.pdf Training dataset Visual Wake Words dataset https://arxiv.org/pdf/1906.05721.pdf 그외, “CIFAR10” 도 Cortex-M7에 활용된 기록 있음. Ch9. 인체 감지 애플리케이션 만들기 10개 클래스, 6만장, 32x32 컬러 이미 지 115k 개의 COCO dataset에서 기원, 비전센서를 통해 사람의 유무 판단 필요성에서 시작. 모델이 250KB 이내를 차지하도록, 사람의 유무 Labeling 가벼운 CNN Architecture을 목표해서 제안. 성능과 효율성의 Trade-off를 맞출 필요성에서 출발. 커널의 변경을 통해 파라미터량을 줄이는 방법(Depthwise Separable Convolution) Reference: https://minimin2.tistory.com/42
  • 6. Ch9 Overview Ch9. 인체 감지 애플리케이션 만들기 데이터 전처리 없이 진행 > 학습모델(MobileNet) 때문 (Ch7 호출어감지와 다르게) 모델의 평균을 구하지 않음. 여전히 데이터량이 많아 느림. 인체 감지 어플리케이션의 구성 요소 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/micro/examples/person_detection
  • 7. Ch9 Test & Build Ch9. 인체 감지 애플리케이션 만들기 -person_detection_test.cc -Image_provider_test.cc -Main_functions.cc -Image_provider.cc 모델에 필요한 Op 추가 Tensor_arena 사이즈 정의. (실험적으로 획득된 값) 모델 매핑 모델을 실행할 인터프리터 빌드
  • 8. Ch9 Test & Build Ch9. 인체 감지 애플리케이션 만들기 -person_detection_test.cc -Image_provider_test.cc -Main_functions.cc -Image_provider.cc Input 속성 ASSERT 모델 실행 이미지를 input용 메모리로 복사 Output 속성 ASSERT
  • 9. Ch9 Test & Build Ch9. 인체 감지 애플리케이션 만들기 -person_detection_test.cc -Image_provider_test.cc -Main_functions.cc -Image_provider.cc 결과값 획득 사람이 없는 이미지로, 추론
  • 10. Ch9 Test & Build Ch9. 인체 감지 애플리케이션 만들기 -person_detection_test.cc -Image_provider_test.cc -Main_functions.cc -Image_provider.cc image_data 배열의 포인터를 이용한다.
  • 11. Ch9 Test & Build Ch9. 인체 감지 애플리케이션 만들기 -person_detection_test.cc -Image_provider_test.cc -main_functions.cc -Image_provider.cc 필요 포인터 선언 모델 매핑
  • 12. Ch9 Test & Build Ch9. 인체 감지 애플리케이션 만들기 -person_detection_test.cc -Image_provider_test.cc -main_functions.cc -Image_provider.cc 사용할 Op 추가 작업 메모리 할당 (Cont...) 작업 메모리 할당, setup 종료
  • 13. Ch9 Test & Build Ch9. 인체 감지 애플리케이션 만들기 -person_detection_test.cc -Image_provider_test.cc -main_functions.cc -Image_provider.cc 이미지 전달, 추론, 결과 출력
  • 14. Ch9 Test & Build Ch9. 인체 감지 애플리케이션 만들기 -person_detection_test.cc -Image_provider_test.cc -main_functions.cc -Image_provider.cc 이미지 전달, 추론, 결과 출력
  • 15. Ch9 Test & Build Ch9. 인체 감지 애플리케이션 만들기 -person_detection_test.cc -Image_provider_test.cc -main_functions.cc -Image_provider.cc Sparkfun Edge 보드 frame 포인터에 이미지 저장 input->data.uint8 로 이미지 접근
  • 16. Ch9 Test & Build Ch9. 인체 감지 애플리케이션 만들기 -HM01B0 카메라 모듈은 320*320 픽셀 이미지 센서 모듈 - 바이너리 빌드 $ make –f tensorflow/lite/micro/tools/make/Makefile TARGET=sparkfun_edge person_detection_bin - 파일 존재 확인 $ test –f tensorflow/lite/micro/tools/make/gen/sparkfun_edge_cortex-m4/bin/person_detection.bin && echo “success” || echo “missing” - 바이너리 서명 및 플래시는 생략하겠습니다 …
  • 17. Ch10. 인체 감지 모델 훈련하기 어쩌면 Appendix
  • 18. Ch10 개발 환경 설정 Ch10. 인체 감지 모델 훈련하기 - AWS, Azure, GCP 등, 개발환경 선택 후 진행 - “초소형 머신러닝 TinyML”에서는 GCP를 이용한 예시 - 트러블슈팅 관련 이슈 - 단순 실습 외의 조사한 내용 공유 > slim 에 대해서 알아보기 > (Ch10.10) 아키텍처 이해
  • 19. Ch10. tf-slim Ch10. 인체 감지 모델 훈련하기 - TF-slim - 사전에 학습된 모델 제공 - Alexnet 5 conv + 5 pooling 고화질 이미지 - Inception 적은 파라미터수(연산)+정확도 - Overfeat - Resnet shortcut connection 파라미터 감소 - VGG ImageNet (1M) https://github.com/google-research/tf-slim
  • 20. Ch10. tf-slim Ch10. 인체 감지 모델 훈련하기 - TF-slim - Tensorflow의 확장된 추상화 라이브러리, (추상화는 모두 CNN에 관한 함수를 가독성 좋게 제공..) - 교재에는 커맨드 arguments로 훈련하지만 실제로 더 많은 모델을 직접 만들어 볼 수 있다. !python models/research/slim/train_image_classifier.py --train_dir=vww_96_grayscale --dataset_name=visualwakewords --dataset_split_name=train --model_name=mobilenet_v1_025 … https://github.com/google-research/tf-slim 제게는 대중화(?) 가능한 모델을 제공하는 정도로 보입 니다.
  • 21. Ch10.10 아키텍처 이해 Ch10. 인체 감지 모델 훈련하기 - MobileNet - 적은 파라미터, 적은 연산량 - Ver1, Ver2의 비교표를 보면 Ver2가 더 좋아보이지만 - Ver1가 가장 적은 양의 램을 이용한다. (교재 내용이라서 믿어보지만… 이를 확인해보고 싶었지만…) - MACs (Multiply-accumulate operations) http://machinethink.net/blog/mobilenet-v2/
  • 22. Ch10.10 아키텍처 이해 Ch10. 인체 감지 모델 훈련하기 MobileNet Ver1 - 14 Depth-wise conv layer - Fully Connected layer - Point-wise conv layer - softmax layer
  • 23. Ch10.10 아키텍처 이해 Ch10. 인체 감지 모델 훈련하기 - 14 Depth-wise layer - Point-wise conv layer https://www.slideshare.net/ssuser6135a1/ss-106656779 일반적인 Convolution Filter는 입력 영상 모든 채널의 영향을 받게 되는데, Depth-wise Convolution은 각 단일 채널 에 대해서만 수행되는 필터들을 사용한 다.
  • 24. Ch10.10 아키텍처 이해 Ch10. 인체 감지 모델 훈련하기 - 14 Depth-wise layer - Point-wise conv layer https://www.slideshare.net/ssuser6135a1/ss-106656779 커널 크기가 1x1로 고정된 conv layer. 입력 영상에 대한 Spatial feature의 추출은 하 지 않은 상태로, 연산만을 수행. 불필요한 채널의 Coefficient를 이용할 수 있음.
  • 25. Ch10.10 아키텍처 이해 Ch10. 인체 감지 모델 훈련하기 https://www.slideshare.net/ssuser6135a1/ss-106656779
  • 26. Ch10.10 아키텍처 이해 Ch10. 인체 감지 모델 훈련하기 https://www.slideshare.net/ssuser6135a1/ss-106656779 전체 채널에 대한 Spatial conv 각 채널별 Spatial conv 이후 Feature별 연산
  • 27. Ch10.10 아키텍처 이해 Ch10. 인체 감지 모델 훈련하기 https://www.slideshare.net/ssuser6135a1/ss-106656779 전체 채널에 대한 Spatial conv 각 채널별 Spatial conv 이후 Feature별 연산