การใช้ YOLO อัลกอริทึ่มในการตรวจจับวัตถุ(对象检测)
YOLO是什么?
YOLO 是什么?
YOLO ย่อมากจาก“你只看一次” เป็นโมเดลอัลกอริทั่มในการตรวจจับวัตถุ
约瑟夫·雷蒙 (Joseph Redmon)
YOLOคือการแบ่งภาพออกเป็นช่องๆขนาด N*N หละจะใช้อัลกอริทั่มคำนวนค่ ความเป็นไปได้ของข่องนั้นๆ数据集 ว่าจะเป็นวัตถุที่อยู่ใน数据集
หัวข้อถัดไปการตรวจจับวัตถุ
การตรวจจับวัตถุคืออะไร?
物体检测คือความสามารถในการตรวจจับวัตถุและบ่ง บอกว่าวัตถุนั้นคืออะไรได้อย่างถูกต้อง
计算机视觉 计算机视觉AI คอมพิวเตอร์
ให้สามารถมองเห็นและเข้าใจในสิ่งที่ม ุษย์สามารถทำได้ผ่านการรับค่ารูปภาพ目标检测
机器学习深度学习 深度学习深度学习 人工智能ให้ทำหน้าที่ได้เหมือนมนุษย์
โดยณปัจจุบันYOLOมีถึง版本8ในบทความนี้เราจะใช้YOLOV5特色功能ที่เพิ่มเข้ามาในเวอร์ชั่นหลังๆนั้นเอง
เอาหละ เมื่อเกริ่นคร่าวๆเสร็จแล ้วเรามาเริ่มกันเลยดีกว่า!
ขั้นตอนแรก
เปิด Google Colab ใช่แล้วเราจะใช้ Google Colab ในบทความนี้ Python 库ค่อนข้างเยอะ
เราเลยตัดปัญหาใช้ Google colabเลยง่ายดี ลิ้งไปGoogle Colab
ให้ทำการสร้าง笔记本อันใหม่ขึ้นมาโล่ด!
笔记本电脑ด้วยนะจะได้ไม่สับสนทีหลัง
2、
Git hub、YoloV5、Colab 和 YoloV5 โดยใช้ชุดโค้ดคำสั่งดังนี้
!git clone https://github.com/ultralytics/yolov5
%cd yolov5
%pip install -qr requirements.txt
และจากนั้นจะมีโฟลเดอร์ชื่อ yolov5 มาแบบนี้
ข้อควรระวัง!!!代码 นี้หลายๆรอบ จะทำให้โฟลเดอร์ซ้อนกันเรื่อยๆแบบนี้ จะมีปัญหาในการดึงค่า路径ภายหลัง
第 3 章
รันโค้ดชุดนี้和导入库
import torch
from yolov5 import utils
display = utils.notebook_init()
ถ้าใครมีปัญหาแนะนำให้ดูเรื่อง路径ของโฟลเดอร์ yolov5 ดีๆ
รันเสร็จจะได้แบบนี้
第 4 章
数据集和模型数据集
โดยในบทความครั้งนี้จะใช้ไฟล์ชื่อcoco128.yaml เนื่องจากเป็นไฟล์ที่YOLOV5 มีในตัว自定义数据集 自定义
数据集สามารถไปแก้ไขภายในไฟล์ได้
ใช้โค้ดชุดนี้ในการรันคำสั่ง
!python train.py --img 640 --batch 8 --epochs 10 --data coco128.yaml --weights yolov5s.pt --cache
โดยค่าข้างในเราสามารถปรับแต่งเองได้ดังนี้
- 图片 จะกำหนดค่าขนาดของภาพที่ใช้ในการเทรน
- 批处理 จะเป็นการแบ่ง数据集ให้เล็กลงว่าจะหารเท่าไร (128/8 16)
- epochs ให้เทรนทั้งหมดกี่ครั้งหลังจากรัน批次ทั้งหมดจะเพิ่มค่าความแม่นยำ
- 数据ไฟล์ที่จะใช้เทรนในที่นี้คือcoco128.yaml
- 权重输出ไฟล์ที่เทรนเสร็จแล้ว
ทริค!!高速缓存 高速缓存 高速缓存 高速缓存 内存 高速缓存 磁盘ในการทำให้เทรนเร็วขึ้นแต่กินสเปคคอมนะจ๊ะ
第 5 章
รอเทรนใช่แล้วรอเทรนให้เสร็จยังไงหละ รออย่างเดียวจะค่อนข้างนาน
时代ว่ากี่รอบโดยเริ่มจาก 0
ในที่นี้ก็คือ 0-9 รอบ รอไป!
ram 和磁盘หละก็อย่างต่ำครึ่งชม.ต้องมา
เทรนเสร็จแล้ว! จะได้ภาพคร่าวๆดังนี้
และดูว่าไฟล์จะไปเซฟที่ไหน ถ้าเกิดเราเทรนหลายๆครั้งและย กเลิกชื่อโฟลเดอร์จะเปลี่ยนไป
ให้หาโฟลเดอร์ชื่อ体重/ และใช้ไฟล์ best.pt แบบนี้
第 6 章
谷歌合作实验室สามารถข้ามตรงนี้ได้ถ้าอยากอัพไฟล์ขึ้นเอง
* โดยจะใช้โค้ดคำสั่งชุดนี้ *
from google.colab import files
uploaded = files.upload()
หละก็อัพโหลดภาพขึ้นโหลดหลังจากนั้นจะแก้ช ื่อภาพหรือย้ายไปโฟลเดอร์ไหนตามใจได้เลยจ้า
พอได้มากดคลิ๊กขวา!复制路径มันมาซะเราจะเอาไปใช้ในขั้นตอนต่อไป!
第 7 章
ได้เวลาแห่งความจริงในการตรวจจับภาพ
ใช้โค้ดคำสั่งชุดนี้ในการรัน
!python detect.py --source /content/yolov5/myfriend.jpg --weights /content/yolov5/runs/train/exp/weights/best.pt
โดยหาไฟล์ชื่อ detector.py ให้เจอนะถ้าใครไม่มี!第 2 章
ต่อมาคือการใช้路径ไฟล์
--source คือ ต่ำแหน่งของภาพที่ก็อปมาเมื่อกี้ มาวางตรงนี้โล่ด
--weight คือ模型ที่เราเทรนเสร็จแล้ว复制路径ไฟล์ best.pt มาแปะ
แล้วก็รันโล่ด!!!
จะได้ผลลัพธ์ออกมาประมาณนี้
640 号ภาพเลยจะมีขนาดแคบกว่าปกติ
第 2 章:
第 3 章:
*错误AI ตรวจจับเป็นโทรศัพท์มือถือแทน แนะนำว่าควรเพิ่มจำนวนครั้งที่เทรน เพื่อเพิ่มค่าความแม่นยำขึ้น *
教程 教程 YoloV5对象检测 对象检测 目标检测 目标检测ขอบคุณที่อ่านมาจนจบถึงตอนนี้ หวังว่าบทความนี้จะเป็นประโยชน ์ไม่น้อยก็มากต่อผู้อ่านนะครับขอบคุณครับผม!
参考文献
เนื่องจากบล็อกนี้เขียนขึ้นมาใหม่เอง
เป็นการรรวมกันของหลายๆเ ว็บจึงมีเรฟค่อนข้างเยอะ
- https://www.datacamp.com/blog/yolo-object-detection-explained
- https://www.analyticsvidhya.com/blog/2022/06/yolo-algorithm-for-custom-object-detection/
- https://github.com/ultralytics/yolov5/wiki#tutorials
- https://www.v7labs.com/blog/yolo-object-detection#:~:text=YOLO%20(You%20Only%20Look%20Once,for%20its%20speed%20and%20accuracy .
- https://docs.ultralytics.com/yolov5/train_custom_data/
- https://medium.com/@model.predict/epoch













