# 환경
- Window 10
# 딥러닝 경량화
- 기존 경량화 된 yolov3-tiny 모델이나 yolov5n, Tiny SSD 모델이 존재함.
→ 메모리가 부족한 MCU에서 사용하기위해 더 경량화가 필요.
: 경량화된 위의 모델은 대략적으로 5MB ~30MB의 메모리가 필요하지만 메모리가 부족한 MCU에서는 대략적으로 1MB이하가 필요함. (보통 수십 KB ~ 1MB까지 사용)
그래서 추가적으로 경량화 과정을 거쳐 사용 메모리를 줄여야함.
1. 양자화
- FP32 (32비트 부동소수점) 가중치와 활성화를 INT8 (8비트 정수)로 변환.
2. 클래스 줄이기
- 사용하고자 하는 클래스만 사용(ex. coco 데이터셋의 경우 80개의 클래스 → 사람만 인식이 필요하면 1개의 클래스)
3. 입력 이미지 최소화
- 이미지 전처리 과정에서 Input 이미지 사이즈 최소화, 160x160 or 128x128
- 단순히 이미지 사이즈만 줄이게 되면 속도는 향상되나 정확도가 떨어지게 됨.
따라서 기존 yolov5n모델을 pytorch 기반 pt파일로 변환하고 최종적으로 tflite 파일로 변환하고자함.
(yolov5n → onnx → TensorFlow SavedModel → tflite 변환 과정이 일반적)
# Transfer learning으로 재학습
- 이미지데이터셋 준비 (coco)
- yaml 예시
- 학습 명령어 예시
$ python train.py --img 128 --batch 32 --epochs 50 --data person.yaml --cfg models/yolov5n.yaml --weights yolov5n.pt --name y5n_128_person
yolov5n.pt 파일이 생성됨.
- 모델 onnx 변환 예시
$ python export.py --weights runs/train/y5n_128_person/weights/best.pt --img 128 --include onnx
변환 후 best.onnx 파일이 생성됨.
- 양자화 변환 과정을 거치면 tflite 파일이 생성됨.
- 모델을 .cc로 변환 후 사용
* 다음에 사용할 때 참고하기 위해 방법만 확인함.
'프로그래밍 > 작은 메모' 카테고리의 다른 글
| 간단한 코스피/코스닥 뉴스 알림 (2) | 2025.08.12 |
|---|---|
| MCU 단계에서 딥러닝을 사용하는 비교적 간단한 방법 (1) | 2025.07.25 |
| OpenCV 픽셀 색상 변경( 어두운 색은 검정색으로, 밝은 색은 흰색으로) (4) | 2025.07.01 |
| v4l2 USB 카메라 노출 시간, 해상도 설정 (0) | 2025.06.10 |
| 프레임 측정과 현재 시간을 포함한 파일 명으로 OpenCV 이미지 저장 (0) | 2025.05.28 |