YOLO v4 darknet in a Video on Ubuntu18.04
อะไรคือ Object detection?
Object classification : เทคนิคนี้ใช้บอกความน่าจะเป็นของวัตถุในภาพโดยจะบอกว่าภาพ ภาพนั้นคืออะไร ซึ่งสามารถบอกได้หนึ่งอย่างที่มีความน่าจะเป็นมากที่สุดสำหรับภาพนั้น “What is in the picture?”.
Object localization:จะเป็นการบอกว่าวัตถุในภาพคืออะไรและอยู่ตำแหน่งไหนของภาพ คือจะคล้ายกับ classification แต่จะเพิ่มการบอกตำแหน่งของวัตถุในภาพด้วย“What is in the picture and where it is?“.
Object detection: จาก 2 วิธีข้างต้นจะให้ความสำคัญกับวัตถุเดียว แต่ 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
เก็บไฟล์ 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/