이전 글 "MCU 단계에서 딥러닝을 수행하려면?" 에서의 방법보다 간단하게 수행하는 방법 정리
# 환경
- Window 10
# 딥러닝 경량화
- 딥러닝 경량화 방법에서 yolov5n의 80개의 클래스를 1개(사람)의 클래스로 줄이고 Transfer 학습 진행하는 과정을 생략.
→ 재학습 없이도 tflite 용량은 약 10KB ~ 100KB 정도의 차이로 감소폭이 미미함.
→ 클래스가 많기 때문에 연산량이 많아 속도는 2~30% 느릴 수 있다고함. (직접 확인해봐야할 부분)
먼저 yolo5 모델 다운로드
$ git clone https://github.com/ultralytics/yolov5
$ cd yolov5
$ pip install -r requirements.txt
1. 클래스 그대로 사용
- 80개의 클래스를 그대로 사용
→ 사용 시 특정 클래스 1개만 사용하면 됨.
2. 양자화
- 기본 TFLite 변환(float32)
$ python export.py --weights yolov5n.pt --include tflite
- 양자화된 TFLite 변환(INT8, MCU 권장)
$ python export.py --weights yolov5n.pt --include tflite --int8
위의 과정에서 발생할 수 있는 문제
- tensorflow 버전 에러
$ pip install tensorflow-cpu==2.15.1
- 신뢰되지않은 경로 지정 에러
$ git config --global --add safe.directory "C:/yolov5"
이전 글은 yolov5n모델을 pytorch 기반 pt파일로 변환하고 최종적으로 tflite 파일로 변환함.
이전 글 : transfer learning-> yolov5n → onnx → TensorFlow SavedModel → tflite (일반적)
현재 글 : (transfer learning 제거) yolov5n → (양자화) tflie
* 이전 글의 방법이 일반적이며 디버깅이 용이함
* 현재 글의 방법은 최적화되고 디버깅이 어려움
→ 세부적인 커스터마이징을 하기 위해서는 onnx를 거쳐서 변환하는 이전 글 방법을 사용하고
디버깅은 다소 어렵지만 빠르고 최적화되어 쉽게 사용하려면 onnx 변환과정이 없는 현재 글의 방법을 사용해야함.
# TFLite 파일 사용
- TFLM을 다운받아 TFLite파일과 함께 MCU 프로젝트에 추가하고 사용함.
TFLM 링크 : https://github.com/tensorflow/tflite-micro
GitHub - tensorflow/tflite-micro: Infrastructure to enable deployment of ML models to low-power resource-constrained embedded ta
Infrastructure to enable deployment of ML models to low-power resource-constrained embedded targets (including microcontrollers and digital signal processors). - tensorflow/tflite-micro
github.com
# 요약
yolov5n → TFLite 바로 생성.
'프로그래밍 > 작은 메모' 카테고리의 다른 글
| 간단한 나스닥 뉴스 알림 (2) | 2025.08.13 |
|---|---|
| 간단한 코스피/코스닥 뉴스 알림 (2) | 2025.08.12 |
| MCU 단계에서 딥러닝을 수행하려면? (1) | 2025.07.24 |
| OpenCV 픽셀 색상 변경( 어두운 색은 검정색으로, 밝은 색은 흰색으로) (4) | 2025.07.01 |
| v4l2 USB 카메라 노출 시간, 해상도 설정 (0) | 2025.06.10 |