បច្ចេកវិទ្យាការរកឃើញវត្ថុរបស់ Computer Vision គឺចាំបាច់សម្រាប់កម្មវិធីជាច្រើន។ យើងប្រើវានៅក្នុងផ្នែកមនុស្សយន្ត ឧបករណ៍ឃ្លាំមើល យានយន្តបើកបរដោយខ្លួនឯង និងតំបន់ជាច្រើនទៀត។ ដូច្នេះ យើងអាចរកឃើញ និងស្គាល់របស់មួយចំនួនក្នុងរូបភាព ឬវីដេអូ។
មួយក្នុងចំណោមល្បីល្បាញបំផុត។ ក្បួនដោះស្រាយការកំណត់អត្តសញ្ញាណវត្ថុគឺ YOLO សំណុំនៃគំរូ (អ្នកគ្រាន់តែមើលម្តង) ។ ម៉ូដែលទាំងនេះត្រូវបានបង្កើតឡើងដោយ Ultralytics LLC ។
កំណែចុងក្រោយបំផុតនៃស៊េរីនេះគឺ YOLOv5 ។ ហើយវាគឺជាគំរូកំណត់អត្តសញ្ញាណវត្ថុលឿនបំផុត និងច្បាស់លាស់បំផុតនៅលើទីផ្សារ។ សមត្ថភាពរបស់គំរូក្នុងការធ្វើជាទូទៅទៅនឹងទិន្នន័យថ្មីត្រូវបានធ្វើឱ្យប្រសើរឡើងយ៉ាងខ្លាំង។ ដូចគ្នានេះផងដែរ វាមានលក្ខណៈពិសេសជាច្រើនដែលធ្វើឱ្យវាដំណើរការបានល្អជាងការបន្តពីមុន។
YOLOv5 គឺអស្ចារ្យសម្រាប់កម្មវិធីក្នុងពេលវេលាជាក់ស្តែង ដោយសារវាអាចដំណើរការរូបភាពក្នុងអត្រារហូតដល់ 1000 ហ្វ្រេមក្នុងមួយវិនាទីនៅលើ GPU តែមួយ។
នៅក្នុងអត្ថបទនេះ យើងនឹងណែនាំ YOLOv5 ហើយពិនិត្យមើលលម្អិតនៃផ្នែកនៃកម្មវិធីរបស់វា។
ដំណើររបស់ YOLO: ពី YOLO ទៅ YOLOv5
Joseph Redmon et al ។ ដើមឡើយបានណែនាំ YOLO ដែលជាសំណុំនៃគំរូកំណត់អត្តសញ្ញាណវត្ថុក្នុងឆ្នាំ 2016 ។ គំរូ YOLO ដំបូងអាចកំណត់អត្តសញ្ញាណវត្ថុក្នុងពេលវេលាជាក់ស្តែង។ ទោះយ៉ាងណាក៏ដោយ វាមានភាពត្រឹមត្រូវទាប បើប្រៀបធៀបទៅនឹងម៉ូដែលផ្សេងទៀតនៅពេលនោះ។
កំណែអាប់ដេតជាច្រើនរបស់ YOLO ត្រូវបានចេញផ្សាយពេញមួយឆ្នាំ។ ហើយទីបំផុត Ultralytics LLC បានបង្កើតការបោះពុម្ពថ្មីបំផុតនៃស៊េរី YOLO គឺ YOLOv5 ។
YOLOv5 គឺជាគំរូកំណត់អត្តសញ្ញាណវត្ថុដែលត្រឹមត្រូវ និងរហ័សបំផុតដែលមាននាពេលបច្ចុប្បន្ន។
លក្ខណៈពិសេសសំខាន់ៗ
ប្រអប់យុថ្កា
YOLOv5 ទស្សន៍ទាយប្រអប់ចងសម្រាប់វត្ថុក្នុងរូបភាពដោយប្រើប្រអប់យុថ្កា។ គំរូព្យាករណ៍ពីប្រអប់ដែលបានកំណត់ជាមុនជាច្រើនដែលមានសមាមាត្រទិដ្ឋភាពផ្សេងៗដែលល្អបំផុតដែលត្រូវគ្នានឹងធាតុនៅក្នុងរូបភាពដោយប្រើប្រអប់យុថ្កា។ ទាំងនេះគឺជាប្រអប់ដែលបានកំណត់ជាមុន។
ហើយពួកគេបើកដំណើរការ YOLOv5 ដើម្បីសម្គាល់ និងស្វែងរកធាតុនៅក្នុងរូបភាពជាមួយនឹងភាពត្រឹមត្រូវ។
ការបង្កើនទិន្នន័យ Mosaic
នៅពេលបណ្តុះបណ្តាល YOLOv5 ប្រើវិធីសាស្រ្តដែលគេស្គាល់ថាជា mosaic ការបង្កើនទិន្នន័យ. ដើម្បីបង្កើតរូបភាពហ្វឹកហាត់ថ្មីៗ គំរូរបស់យើងរួមបញ្ចូលគ្នានូវរូបភាពជាច្រើនដោយចៃដន្យ។ ជាលទ្ធផល ម៉ូដែលកាន់តែមានភាពធន់ និងអាចទុកចិត្តបាន។ ដូច្នេះ វាត្រូវធ្វើការទូទៅទៅលើទិន្នន័យថ្មី និងកាត់បន្ថយភាពលើសចំណុះ។
បំពង់បណ្តុះបណ្តាលពិសេសមួយ។
បំពង់បណ្តុះបណ្តាលពិសេសមួយ ដែលរួមបញ្ចូលគ្នានូវការត្រួតពិនិត្យ និង ការរៀនសូត្រដែលមិនមានការត្រួតពិនិត្យ ត្រូវបានគេប្រើ។
ដូច្នេះ គំរូរៀនពីគំរូតូចជាង ហើយប្រើប្រាស់ការបញ្ចូលដែលគ្មានស្លាកយ៉ាងមានប្រសិទ្ធភាព។ នេះជួយបង្កើនដំណើរការរបស់ម៉ូដែល និងបង្កើនសមត្ថភាពរបស់វាក្នុងការធ្វើឱ្យមានលក្ខណៈទូទៅចំពោះធាតុចូលថ្មី។
ស្រទាប់ដែលមានសំណល់និងមិនសំណល់
ស្ថាបត្យកម្មរបស់ YOLOv5 រួមបញ្ចូលគ្នានូវស្រទាប់ដែលនៅសេសសល់ និងមិនមានសំណល់។ ដោយអនុញ្ញាតឱ្យពណ៌ជម្រាលហូរកាត់ស្រទាប់ ស្រទាប់សំណល់ជួយគំរូក្នុងការរៀនលក្ខណៈពិសេសពិបាក។ ផងដែរ ស្រទាប់ដែលមិនមានសំណល់ផ្តល់ឱ្យគំរូជាមួយនឹងការចាប់យកកាន់តែទូលំទូលាយនៃរូបភាពបញ្ចូល។ ជាលទ្ធផល YOLOv5 អាចដំណើរការបានកាន់តែច្បាស់លាស់ និងមានប្រសិទ្ធភាព។
របៀបប្រើ YOLOv5
ការដំឡើង
ការដំឡើង YOLOv5 អាចត្រូវបានបញ្ចប់យ៉ាងឆាប់រហ័សដោយប្រើ pip ។ Pip គឺជាកម្មវិធីគ្រប់គ្រងកញ្ចប់ Python ។ នីតិវិធីទូទៅសម្រាប់ការដំឡើង YOLOv5 មានដូចខាងក្រោម៖
1- ដំឡើង PyTorch: ដោយសារតែ YOLOv5 ផ្អែកលើក្របខ័ណ្ឌ PyTorch អ្នកត្រូវតែដំឡើង PyTorch ជាមុនសិន។
pip install torch torchvision
2. ដំឡើង CUDA៖ អ្នកត្រូវតែដំឡើង CUDA ប្រសិនបើអ្នកមានបំណងដំណើរការ YOLOv5 នៅលើ GPU ។
3. ដំឡើង YOLOv5៖ បន្ទាប់ពីដំឡើង PyTorch និង CUDA សូមប្រើពាក្យបញ្ជាខាងក្រោមដើម្បីទាញយក YOLOv5។
pip install yolov5
4- បន្ទាប់ពីការដំឡើង YOLOv5 អ្នកត្រូវតែទាញយកទម្ងន់ដែលបានហ្វឹកហាត់ជាមុន។ ទម្ងន់ដែលបានហ្វឹកហាត់ជាមុនមាននៅក្នុង Ultralytics GitHub repo ។
ចូលទៅកាន់ផ្នែក "ទម្ងន់" នៃគេហទំព័រដោយរមូរចុះក្រោម។ អ្នកអាចទាញយកទម្ងន់ដែលបានហ្វឹកហាត់ជាមុនពីបញ្ជីដែលអ្នកអាចរកបាននៅទីនេះ។
5. ជ្រើសរើសទម្ងន់ដែលបានហ្វឹកហាត់រួចហើយ និងសមស្របបំផុតសម្រាប់ករណីប្រើប្រាស់របស់អ្នក។ សំណុំទិន្នន័យ ឬកំណែ YOLOv5 ជាក់លាក់ដែលទម្ងន់ត្រូវបានរៀនអាចត្រូវបានគេប្រើដើម្បីបង្រួមបញ្ជី។
6- បន្ទាប់ពីជ្រើសរើសទម្ងន់ត្រឹមត្រូវហើយ ជ្រើសរើសទម្ងន់ដោយចុចប៊ូតុង "ទាញយក" នៅជាប់វា។ ទម្ងន់នឹងអាចទាញយកបាន។ ឯកសារ pt ។
7- ផ្ទេរទម្ងន់ដែលបានទាញយកទៅថត។ នេះជាកន្លែងដែលស្គ្រីបរកឃើញរបស់អ្នកនឹងដំណើរការ។
8- នៅចំណុចនេះ អ្នកអាចដំណើរការការរកឃើញវត្ថុនៅលើរូបថត ឬវីដេអូរបស់អ្នកដោយប្រើទម្ងន់ដែលបានបណ្តុះបណ្តាលជាមុននៅក្នុងស្គ្រីបរកឃើញរបស់អ្នក។
រៀបចំទិន្នន័យ
អ្នកត្រូវតែធ្វើសកម្មភាពខាងក្រោមដើម្បីទទួលបានទិន្នន័យរួចរាល់សម្រាប់ការប្រើប្រាស់ជាមួយ YOLOv5៖
1. ប្រមូលទិន្នន័យ៖ ជំហានដំបូងគឺប្រមូលទិន្នន័យរូបភាព ឬវីដេអូដែលអ្នកត្រូវការ ការរកឃើញវត្ថុ. អ្វីដែលអ្នកចង់រកឃើញគួរតែមាននៅក្នុងរូបថត ឬវីដេអូ។
2- ធ្វើទ្រង់ទ្រាយទិន្នន័យ៖ អ្នកគ្រាន់តែអាចនាំចូលរូបថតទៅក្នុងស្គ្រីបរបស់អ្នក ប្រសិនបើអ្នកកំពុងប្រើប្រាស់វា។ អ្នកត្រូវតែប្រែក្លាយវីដេអូទៅជាស៊េរីនៃរូបថត ប្រសិនបើអ្នកមានគម្រោងប្រើវា។ អ្នកអាចទាញយកស៊ុមពីខ្សែភាពយន្តដោយប្រើបណ្ណាល័យដូចជា OpenCV ។
import cv2
img = cv2.imread('path/to/image')
ជាមួយនឹងបណ្ណាល័យ OpenCV អ្នកអាចប្រើពាក្យបញ្ជាខាងក្រោមដើម្បីបង្វែរវីដេអូទៅជារូបភាពជាបន្តបន្ទាប់៖
import cv2
cap = cv2.VideoCapture('path/to/video')
while True:
ret, frame = cap.read()
if not ret:
break
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
3. ដាក់ស្លាកទិន្នន័យ៖ អ្នកត្រូវតែដាក់ស្លាកទិន្នន័យ ប្រសិនបើអ្នកកំពុងប្រើសំណុំទិន្នន័យរបស់អ្នក។ គូរប្រអប់ដាក់ជុំវិញវត្ថុដែលអ្នកចង់កំណត់អត្តសញ្ញាណក្នុងស៊ុមនីមួយៗនៃរូបភាព។ វាគឺជាដំណើរការនៃការដាក់ស្លាកទិន្នន័យ។ អ្នកអាចប្រើឧបករណ៍ជាច្រើនដើម្បីជួយអ្នកក្នុងប្រតិបត្តិការនេះ រួមទាំង LabelImg និង RectLabel ។
4- អ្នកត្រូវតែបែងចែកទិន្នន័យទៅជាសំណុំបណ្ដុះបណ្ដាល និងតេស្ត បន្ទាប់ពីអ្នកបានដាក់ស្លាកវា។ នេះមានសារៈសំខាន់ណាស់សម្រាប់ការវាយតម្លៃថាតើម៉ូដែលរបស់អ្នកដំណើរការបានល្អប៉ុណ្ណា។
5. ជាចុងក្រោយ អ្នកប្រហែលជាត្រូវដំណើរការទិន្នន័យជាមុនសិន មុនពេលបណ្តុះបណ្តាល ឬសាកល្បង។ នេះអាចរួមបញ្ចូលការធ្វើមាត្រដ្ឋានរូបភាព ឬវីដេអូ ការកំណត់ស្តង់ដារនៃតម្លៃភីកសែល ឬប្រើវិធីសាស្ត្រសម្រាប់ការបង្កើនទិន្នន័យ។
បន្ទាប់ពីបញ្ចប់ជំហានទាំងនេះ ទិន្នន័យរបស់អ្នករួចរាល់។
ដំណើរការស្គ្រីបរាវរក
នេះគឺជារូបភាពនៃស្គ្រីបរាវរកដែលវិភាគរូបភាព និងស្វែងរកវត្ថុ។
import yolov5
import cv2
# Pre-trained weights should be loaded.
weights = 'path/to/weights.pt'
# Set the detection confidence level
conf_thres = 0.5
# Set the Non-Maxima Suppression (NMS) threshold
nms_thres = 0.5
# Create the detector object
detector = yolov5.YOLOv5(weights, conf_thres, nms_thres)
# Load the image
img = cv2.imread('path/to/image')
# Perform object detection
detections = detector.detect(img)
# Print the detections
for x1, y1, x2, y2, conf, cls_conf, cls_pred in detections:
print("Object:", classes[int(cls_pred)])
print("Confidence:", conf)
print("Bounding box:", (x1, y1, x2, y2))
ដំណើរការក្រោយដំណើរការ
ការទប់ស្កាត់មិនអតិបរិមា គឺជាបច្ចេកទេសក្រោយដំណើរការញឹកញាប់បំផុតមួយ ដែលប្រើក្នុងការរកឃើញវត្ថុ (NMS)។ យើងប្រើ NMS ដើម្បីលុបបំបាត់ប្រអប់ដែលត្រួតលើគ្នាសម្រាប់វត្ថុដូចគ្នា។ ដើម្បីប្រតិបត្តិ NMS លើការរកឃើញ យើងអាចប្រើវិធីសាស្ត្រ cv2.dnn.NMSBoxes() របស់បណ្ណាល័យ OpenCV ។
នេះជាឧទាហរណ៍មួយអំពីរបៀបនៃការរកឃើញក្រោយដំណើរការដោយប្រើ NMS ។
import cv2
# Perform Non-Maxima Suppression (NMS)
សន្ទស្សន៍ = cv2.dnn.NMSBoxes(ការរកឃើញ ទំនុកចិត្ត, conf_thres, nms_thres)
រូបភាពមើលឃើញ
នៅក្នុងករណីនៃការមើលឃើញ យើងអាចប្រើបណ្ណាល័យដូចជា OpenCV ម្តងទៀត។ យើងអាចបង្ហាញប្រអប់ដាក់ជុំវិញវត្ថុដែលបានរកឃើញនៅលើរូបភាព ឬវីដេអូប្រភព។ ដើម្បីគូរប្រអប់ព្រំដែនរបស់រូបភាព សូមប្រើវិធីសាស្ត្រ cv2.rectangle()។ នេះជារបៀបមើលការរកឃើញនៅលើរូបភាពដើម៖
នាំចូល cv2
# Draw the bounding boxes on the image
សម្រាប់ខ្ញុំនៅក្នុងសន្ទស្សន៍៖
i = i[0]
x1, y1, x2, y2 = detections[i][0], detections[i][1], detections[i][2], detections[i][3]
cv2.rectangle(img, (x1, y1), (x2, y2), (255, 0, 0), 2)
cv2.putText(img, classes[class_ids[i]], (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
# Show the image
cv2.imshow("Object Detection", img)
cv2
ការកម្មវិធី
YOLOv5 គឺជាគំរូកំណត់អត្តសញ្ញាណវត្ថុខ្លាំង។ ដូច្នេះហើយ យើងអាចប្រើប្រាស់វានៅក្នុងស្ថានភាពជាក់ស្តែងជាច្រើន។ ការប្រើប្រាស់ដ៏លេចធ្លោបំផុតមួយគឺនៅក្នុងរថយន្តដែលបើកបរដោយស្វ័យប្រវត្តិ។ YOLOv5 អាចកំណត់អត្តសញ្ញាណរបស់របរក្នុងពេលវេលាជាក់ស្តែង ដូចជារថយន្ត និងភ្លើងចរាចរណ៍ជាដើម។
នៅក្នុងប្រព័ន្ធឃ្លាំមើល យើងអាចប្រើ YOLOv5 ដើម្បីសម្គាល់ និងតាមដានវត្ថុនៅក្នុងការផ្សាយបន្តផ្ទាល់វីដេអូ។ លើសពីនេះ YOLOv5 អាចជាទ្រព្យសម្បត្តិដ៏អស្ចារ្យមួយនៅក្នុងផ្នែកមនុស្សយន្ត។ វាអាចជួយមនុស្សយន្តរកឃើញ និងយល់ពីជុំវិញខ្លួនរបស់វាបាន។ នេះមានសារៈសំខាន់ខ្លាំងណាស់សម្រាប់សកម្មភាពដូចជាការរុករក និងការរៀបចំ។
YOLOv5 ក៏អាចត្រូវបានប្រើប្រាស់នៅក្នុងឧស្សាហកម្មណាមួយដែលតម្រូវឱ្យមានការរកឃើញវត្ថុ ដូចជាការលក់រាយ កីឡា វេជ្ជសាស្ត្រ និងសន្តិសុខ។
សន្និដ្ឋាន
ជាចុងក្រោយ YOLOv5 គឺជាកំណែថ្មីបំផុត និងទំនើបបំផុតនៃគ្រួសារ YOLO ការរកឃើញវត្ថុ ម៉ូដែល
. ដូចគ្នានេះផងដែរ វាជាការត្រឹមត្រូវក្នុងការនិយាយថាវាគឺជាគំរូការរកឃើញវត្ថុត្រឹមត្រូវបំផុតដែលមាន។ សូមអរគុណចំពោះភាពត្រឹមត្រូវ និងល្បឿនខ្ពស់របស់វា អ្នកអាចជ្រើសរើសវាដោយសុវត្ថិភាពសម្រាប់គម្រោងស្វែងរកវត្ថុរបស់អ្នក។
Resky Agus
ខ្ញុំបង្កើតទិនានុប្បវត្តិដំបូងអំពីយានរកឃើញជាមួយ yolov5 ហើយគេហទំព័រនេះជួយខ្ញុំក្នុងការស្វែងរកព័ត៌មានអំពីរឿងនោះ។
ខ្ញុំចាប់អារម្មណ៍យ៉ាងខ្លាំងអំពី AI ។
ប្រសិនបើអ្នកអាចមានសំណួរជាច្រើនអំពី AI ប្រហែលជាអ្នកអាចជួយខ្ញុំបាន
អរគុណ