ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • YOLOv4 & Deepsort로 Object Tracking 하기
    카테고리 없음 2024. 5. 10. 10:56

    프로젝트 환경 설정

    가상환경 설정에는 두 가지 방법이 존재한다.

     

    - Virtual Env (venv)

    python -m venv yolov4-cpu source yolov4-cpu/Scripts/activate pip install -r requirement.txt

     

    - Conda

    # Tensorflow CPU 
    conda env create -f conda-cpu.yml 
    conda activate yolov4-cpu

     

    YOLOv4 Tiny Weights 다운로드

    https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.weights

     

    Object Tracking 과정

     

    인공지능을 크게 학습(Training)과 예측(Inference)으로 나눈다면 해당 과정은 Inference 에 해당한다. 미리 학습 된 모델을 이용하여 예측을 수행한다.

     

    해당 Sample Code는 크게 3단계로 진행된다.

    1. save model

    가중치 및 연산을 포함한 사전에 훈련한 모델을 내보내는 과정이다.

    이 과정에서 check point 가 생성되는데, 이러한 형태를 SavedModel Format 이라고 한다.

     

    check point 구성요소

    • variables.index : 가중치(weight), 편향(bias) 등과 같은 변수들에 대한 정의 및 위치를 기록하는 파일
    • variables.data-00000-of-00001 : 실제 변수들의 데이터를 기록하는 파일
    • saved_model.pb

     

    python save_model.py \
        --weights ./data/yolov4-tiny.weights \
        --output ./checkpoints/yolov4-tiny-416 \
        --model yolov4 \
        --tiny

    2. object tracking

    객체를 추적하는 과정은 크게 두 가지로 나뉜다.

    • Object Detection
    • Object Tracking

    YOLO를 이용하여 객체의 Bounding Box를 예측한 후,

    예측 결과를 Deepsort에 전달하여 해당 Bounding Box를 추적하는 형식이다.

    batch_data = tf.constant(image_data)
    pred_bbox = infer(batch_data) # bounding box 예측 
    
    ...
    
    tracker.predict()
    tracker.update(detections) # 예측한 결과를 deepsort tracker에 전달
    
    python object_tracker.py \
        --weights ./checkpoints/yolov4-tiny-416 \
        --model yolov4 \
        --video ./data/video/car.mp4 \
        --output ./outputs/tiny.avi \
        --tiny

    3. convert to tflite

    이전 단계에서 내보낸 SavedModel을 Tensorflow Lite형태로 변환한다.

    Tensorflow Lite 형태로 변환하면 모바일 및 임베디드 기기에서 사용가능하다.

    아래 파이썬 스크립트를 실행하면 yolov4-416-fp32.tflite 가 생성된다.

    python convert_tflite.py --weights ./checkpoints/yolov4-tiny-416  

     

    다른 영상으로 Object Tracking 테스트

     

    pexels 에서 제공하는 자동차 영상으로 Object Tracking을 진행하였다.

     

     

Designed by Tistory.