YOLO v4 darknet in a Video on Ubuntu18.04

Pawarit Sand
Super AI Engineer
Published in
3 min readFeb 1, 2021

อะไรคือ Object detection?

Comparison between image classification, object detection and instance segmentation.

Object classification : เทคนิคนี้ใช้บอกความน่าจะเป็นของวัตถุในภาพโดยจะบอกว่าภาพ ภาพนั้นคืออะไร ซึ่งสามารถบอกได้หนึ่งอย่างที่มีความน่าจะเป็นมากที่สุดสำหรับภาพนั้น “What is in the picture?”.

Object localization:จะเป็นการบอกว่าวัตถุในภาพคืออะไรและอยู่ตำแหน่งไหนของภาพ คือจะคล้ายกับ classification แต่จะเพิ่มการบอกตำแหน่งของวัตถุในภาพด้วย“What is in the picture and where it is?“.

Object detection: จาก 2 วิธีข้างต้นจะให้ความสำคัญกับวัตถุเดียว แต่ Object detection จะเป็นการใช้งานที่ใกล้เคียงกับสถานการณ์จริงเราอาจต้องหาวัตถุหลายชิ้นจากรูป รูปเดียวและต้องการตำแหน่งของแต่ละวัตถุ

Object detection

แล้ว YOLO object detection คืออะไร?

YOLO (“You Only Look Once“) คือ regression-based อัลกอริทึม สำหรับ object detection ที่มีความเร็วและประสิทธิภาพสูง โดย Joseph Chet Redmon

The official website for YOLO object detection

เมื่อ เข้าไป ดูใน https://pjreddie.com/darknet/ จะพบกับคำว่า “Darknet” Darknet เป็น open source neural network framework ที่ถูกพัฒนาด้วย C และ CUDA ซึ่งสนับสนุนทั้ง CPU และ GPU Darknet เป็นตัวเชื่อมต่อระหว่างผู้ใช้งานกับ neural network ต่างๆ ทำให้ผู้ใช้งานติดตั้ง แก้ไข และ ใช้งานได้ง่าย สะดวก และรวดเร็วยิ่งขึ้น

การติดตั้ง YOLO v4 บน Ubuntu 18.04

เราสามารถเรียกใช้งาน YOLO ได้ทั้งใน CPU หรือ GPU ซึ่งการใช้ GPU จำเป็นต้องใช้การ์ดแสดงผลที่ใช้ Nvidia ที่มีคอร์ CUDA ซึ่งเราจะต้องทำการติดตั้งส่วนเสริมต่างๆก่อน

  • CMake >= 3.8
  • CUDA 10.0 (For GPU)
  • OpenCV >= 2.4 (For CPU and GPU)
  • cuDNN >= 7.0 for CUDA 10.0 (for GPU)
  • OpenMP (for CPU)
  • Other Dependencies: make, git, g++

ติดตั้ง CMake

sudo apt install cmake

ตรวจสอบ CMake version

cmake --version

ติดตั้ง CUDA 10.0 (For GPU)

สามารถติดตั้ง CUDA ได้ ถ้ามี GPU ของ NVIDIA ช่วยเพิ่มความเร็วให้กับ YOLO

ติดตั้ง OpenCV

OpenCV เป็นไลบรารีของฟังก์ชันการเขียนโปรแกรมที่มุ่งเป้าไปที่การมองเห็นของคอมพิวเตอร์แบบเรียลไทม์เป็นหลัก ติดตั้งเพื่อให้เราสามารถใช้ไฟล์ Video ได้

sudo apt install libopencv-dev python3-opencv

ตรวจสอบ OpenCV

opencv_version

ติดตั้ง cuDNN >= 7.0 for CUDA 10.0 (for GPU)

ไลบรารี NVIDIA CUDA® Deep Neural Network (cuDNN) เป็นไลบรารีดั้งเดิมที่ช่วยเร่งประสิทธิภาพของ GPU สำหรับ deep neural networks

https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn_741/cudnn-install/index.html

ติดตั้ง OpenMP (for CPU)

sudo apt install libomp-dev

การติดตั้ง Darknet และ YOLO v4

หาพื้นที่สำหรับการติดตั้ง Darknet และ YOLO v4 แล้วทำการ git clone จะได้ folder ที่ชื่อว่า darknet

git clone https://github.com/AlexeyAB/darknet

หลังจากนั้น แก้ไข ไฟล์ Makefile

สำหรับใช้ CPU

GPU=0
CUDNN=0
CUDNN_HALF=0
OPENCV=1
AVX=1
OPENMP=1
LIBSO=1
ZED_CAMERA=0
ZED_CAMERA_v2_8=0

สำหรับใช้ GPU

GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1
AVX=0
OPENMP=0
LIBSO=1
ZED_CAMERA=0
ZED_CAMERA_v2_8=0

หลลังจากแก้ Makefile แล้ว cd เข้าไปยัง darknet folder แล้วทำการ make

make

การใช้งาน YOLO v4 กับ video

ทำการโหลด yolov4.weights และ ไฟล์ Video ตัวอย่าง แล้วนำไปไว้ใน darknet folder

link yolov4.weights

link video sample

เก็บไฟล์ video ที่ darknet folder แล้วทดสอบด้วยคำสั่ง

./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights test50.mp4 -i 0 -thresh 0.25

รายละเอียดการใช้งานเพิ่มเติม https://pjreddie.com/darknet/yolo/

--

--