[YOLO_Acc_prj] 02 YOLO v3 tiny 분석

YOLOv3_tiny의 레이어 구조 및 특징 이해

Target Model을 YOLOv3_tiny로 정한 것은 다른 이유가 있는 것은 아니고 간단하고 레퍼런스가 쉽게 구할 수 있어서이다. 사실 프로젝트가 YOLOv3 tini의 경우 매우 가볍기 때문에 가속기로의 의미는 크게 없다고 생각한다. 그러나 YOLO-X 모델 같은 가속기를 구현하기 위해서는 Sparse Matrix operation 등이 적용 가능한 NPU와 같은 구조를 잡는 것이 필요할 것이라 생각되어 미루어 두기로 한다. 우선 간단한 가속기를 구현하는 것에 의미를 둔다.

YOLO reference

  • YOLO v3 tiny은 YOLO v3에서 FPN 을 덜어내고 경량화 시킨 구조이다. 라즈베리 파이 CPU에서도 돌릴 수 있다고 한다. ( 실제로 돌려보니 정확도가 좀 떨어지는 것 같다. 바운딩 박스도 이상하게 쳐지고)
  • 기본적인 코드는 darknet git에서 구할 수 있다. 사용법 및 설명은 홈페이지에서 볼 수 있다. (https://pjreddie.com/darknet/yolo/)
    1. darknet repo pull
    2. make(GPU 사용 예정이라면 Makefile 수정)
    3. pre-trained 된 weights 다운
    4. test
1
2
3
4
5
git clone https://github.com/pjreddie/darknet
cd darknet
make
wget https://pjreddie.com/media/files/yolov3-tiny.weights
./darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights data/dog.jpg

YOLO v3 Structure

Model을 도식화하면 다음과 같다.

참고 자료

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy