Computer vision ၏ object detection technology သည် application များစွာအတွက် မရှိမဖြစ်လိုအပ်ပါသည်။ စက်ရုပ်များ၊ စောင့်ကြည့်ကိရိယာများ၊ အလိုအလျောက်မောင်းနှင်သည့် မော်တော်ကားများနှင့် အခြားနေရာများတွင် အသုံးပြုပါသည်။ ထို့ကြောင့်၊ ကျွန်ုပ်တို့သည် ရုပ်ပုံ သို့မဟုတ် ဗီဒီယိုတွင် အချို့သောအရာများကို ရှာဖွေသိရှိနိုင်မည်ဖြစ်သည်။
လူသိအများဆုံးတစ်ခု Object identification algorithms သည် YOLO ဖြစ်သည်။ (You Only Look Once) မော်ဒယ်အစုံ။ ဒီမော်ဒယ်တွေက ဖန်တီးထားတာပါ။ Ultralytics LLC
ဤစီးရီး၏ နောက်ဆုံးဗားရှင်းမှာ YOLOv5 ဖြစ်သည်။ ထို့အပြင်၊ ၎င်းသည် စျေးကွက်တွင် အလျင်မြန်ဆုံးနှင့် အတိကျဆုံး အရာဝတ္ထု ခွဲခြားသတ်မှတ်ခြင်း ပုံစံဖြစ်သည်။ ဒေတာအသစ်များအတွက် ယေဘုယျဖော်ပြရန် မော်ဒယ်၏ စွမ်းရည်သည် များစွာ မြှင့်တင်ထားသည်။ ထို့အပြင်၊ ၎င်းတွင် ယခင်အကြိမ်များထက် ပိုကောင်းအောင် လုပ်ဆောင်နိုင်သည့် အင်္ဂါရပ်များစွာပါရှိသည်။
YOLOv5 သည် GPU တစ်ခုတည်းတွင် တစ်စက္ကန့်လျှင် ဖရိမ် 1000 အထိ နှုန်းဖြင့် ပုံများကို လုပ်ဆောင်နိုင်သောကြောင့် အချိန်နှင့်တပြေးညီ အက်ပ်လီကေးရှင်းများအတွက် ကောင်းမွန်ပါသည်။
ဤဆောင်းပါးတွင်၊ ကျွန်ုပ်တို့သည် YOLOv5 ကို မိတ်ဆက်ပေးပြီး ၎င်း၏ အသုံးချမှုနယ်ပယ်များ၏ အသေးစိတ်အချက်အလက်များကို လေ့လာပါမည်။
YOLO ၏ခရီး- YOLO မှ YOLOv5 သို့
Joseph Redmon et al ။ မူလက YOLO ကို 2016 ခုနှစ်တွင် object identification model အစုအဝေးကို မိတ်ဆက်ပေးခဲ့သည်။ ကနဦး YOLO မော်ဒယ်သည် အရာဝတ္ထုများကို အချိန်နှင့်တပြေးညီ ခွဲခြားနိုင်သည်။ သို့သော်လည်း ထိုအချိန်က အခြားသော မော်ဒယ်များနှင့် နှိုင်းယှဉ်ပါက တိကျမှု နည်းပါးပါသည်။
YOLO ၏ အဆင့်မြှင့်တင်ထားသော ဗားရှင်းအများအပြားကို နှစ်များတစ်လျှောက် ဖြန့်ချိခဲ့သည်။ နောက်ဆုံးတွင်၊ Ultralytics LLC သည် YOLO စီးရီး၏ နောက်ဆုံးထုတ်ဝေမှုဖြစ်သော YOLOv5 ကို ဖန်တီးခဲ့သည်။
YOLOv5 သည် လက်ရှိရရှိနိုင်သော အတိကျဆုံးနှင့် အလျင်မြန်ဆုံး အရာဝတ္ထု ခွဲခြားသတ်မှတ်ခြင်း မော်ဒယ်ဖြစ်သည်။
အရေးကြီးအင်္ဂါရပ်များ
ကျောက်ဆူးသေတ္တာများ
YOLOv5 သည် ကျောက်ဆူးဘောက်စ်များကို အသုံးပြု၍ ပုံရှိ အရာဝတ္ထုများအတွက် ဘောင်ခတ်ထားသော သေတ္တာများကို ခန့်မှန်းသည်။ မော်ဒယ်သည် အမျိုးမျိုးသော အချိုးအစားများပါရှိသော ကြိုတင်သတ်မှတ်ထားသော သေတ္တာများထဲမှ မည်သည့်အရာသည် ပုံရှိအရာနှင့် ကိုက်ညီမှုအရှိဆုံးဖြစ်သည်ကို Anchor boxes ဖြင့် ခန့်မှန်းသည်။ ၎င်းတို့သည် ကြိုတင်သတ်မှတ်ထားသော အကွက်များဖြစ်သည်။
ထို့အပြင်၊ ၎င်းတို့သည် YOLOv5 ကို တိကျမှန်ကန်စွာဖြင့် ပုံရှိအရာများကို မှတ်မိရန်နှင့် ရှာဖွေရန် ၎င်းတို့ကို ဖွင့်ပေးသည်။
Mosaic ဒေတာ တိုးမြှင့်ခြင်း။
သင်တန်းတက်သောအခါ၊ YOLOv5 သည် mosaic ဟုလူသိများသောနည်းလမ်းကိုအသုံးပြုသည်။ ဒေတာတိုးမြှင့်ခြင်း။. ဆန်းသစ်သောလေ့ကျင့်ရေးပုံများကို ပြုစုပျိုးထောင်ရန်အတွက် ကျွန်ုပ်တို့၏မော်ဒယ်သည် ဓာတ်ပုံအများအပြား၏ ဖာထေးမှုများကို ကျပန်းပေါင်းစပ်ထားသည်။ ရလဒ်အနေဖြင့်၊ မော်ဒယ်သည် ပို၍ ခံနိုင်ရည်ရှိပြီး အားကိုးနိုင်လာသည်။ ထို့ကြောင့်၊ ၎င်းသည် ဒေတာအသစ်များကို ယေဘူယျ အသွင်ပြောင်းရန်နှင့် အလွန်အကျုံးဝင်မှုကို လျှော့ချရန် လိုအပ်သည်။
ထူးခြားသောလေ့ကျင့်ရေးပိုက်လိုင်း
ကြီးကြပ်မှု နှင့် ရောနှောထားသော ထူးခြားသော လေ့ကျင့်ရေးပိုက်လိုင်း ထိန်းချုပ်မှုမရှိသင်ယူမှု အသုံးပြုသည်။
ထို့ကြောင့် မော်ဒယ်သည် သေးငယ်သောနမူနာမှ သင်ယူပြီး တံဆိပ်မပါသော ထည့်သွင်းမှုကို ထိရောက်စွာ အသုံးပြုသည်။ ၎င်းသည် မော်ဒယ်၏ စွမ်းဆောင်ရည်ကို မြှင့်တင်ပေးပြီး သွင်းအားစုအသစ်များဆီသို့ ယေဘုယျအားဖြင့် ၎င်း၏စွမ်းရည်ကို မြှင့်တင်ပေးပါသည်။
ကျန်နေသော အလွှာများနှင့် အကြွင်းမဲ့ အလွှာများ
YOLOv5 ၏ ဗိသုကာလက်ရာသည် အကြွင်းအကျန်များနှင့် အကြွင်းမဲ့မဟုတ်သော အလွှာများကို ပေါင်းစပ်ထားသည်။ gradient များကို အလွှာများတစ်လျှောက် ဖြတ်သန်းခွင့်ပြုခြင်းဖြင့် ကျန်ရှိသောအလွှာများသည် မော်ဒယ်အား ခက်ခဲသောအင်္ဂါရပ်များကို လေ့လာရာတွင် ကူညီပေးပါသည်။ ထို့အပြင်၊ အကြွင်းအကျန်မရှိသော အလွှာများသည် မော်ဒယ်အား ထည့်သွင်းပုံ၏ ပိုမိုပြည့်စုံသော ဆုပ်ကိုင်မှုကို ပေးပါသည်။ ရလဒ်အနေဖြင့် YOLOv5 သည် ပိုမိုတိကျစွာနှင့် ထိထိရောက်ရောက် လုပ်ဆောင်နိုင်သည်။
YOLOv5 ကိုအသုံးပြုနည်း
installation
YOLOv5 ထည့်သွင်းခြင်းသည် pip ကို အသုံးပြု၍ လျင်မြန်စွာ ပြီးမြောက်နိုင်ပါသည်။ Pip သည် Python အထုပ်မန်နေဂျာဖြစ်သည်။ YOLOv5 တပ်ဆင်ခြင်းအတွက် ယေဘူယျလုပ်ထုံးလုပ်နည်းများမှာ အောက်ပါအတိုင်းဖြစ်သည်။
1- PyTorch ကို ထည့်သွင်းပါ- YOLOv5 သည် PyTorch ဘောင်ပေါ်တွင် အခြေခံထားသောကြောင့် PyTorch ကို ဦးစွာ ထည့်သွင်းရပါမည်။
pip install torch torchvision
2. CUDA ကို ထည့်သွင်းပါ- သင်သည် YOLOv5 ကို GPU တစ်ခုပေါ်တွင် အသုံးပြုလိုပါက CUDA ကို ထည့်သွင်းရပါမည်။
3. YOLOv5 ကို ထည့်သွင်းပါ- PyTorch နှင့် CUDA ကို စနစ်ထည့်သွင်းပြီးနောက်၊ YOLOv5 ကို ဒေါင်းလုဒ်လုပ်ရန် အောက်ပါ command ကို အသုံးပြုပါ။
pip install yolov5
4-YOLOv5 တပ်ဆင်ပြီးနောက်၊ သင်သည် ကြိုတင်လေ့ကျင့်ထားသော အလေးများကို ဒေါင်းလုဒ်လုပ်ရပါမည်။ ကြိုတင်လေ့ကျင့်ထားသော အလေးချိန်များကို Ultralytics GitHub repo တွင် ရနိုင်ပါသည်။
အောက်ကိုဆင်းပြီး ဝဘ်ဆိုဒ်၏ "အလေးချိန်" အပိုင်းသို့ သွားပါ။ သင်ဤနေရာတွင်တွေ့နိုင်သောစာရင်းမှကြိုတင်လေ့ကျင့်ထားသောအလေးများကိုဒေါင်းလုဒ်လုပ်နိုင်သည်။
5. လေ့ကျင့်ထားပြီးသားနှင့် သင့်အသုံးပြုမှုကိစ္စအတွက် အသင့်တော်ဆုံးအလေးများကို ရွေးချယ်ပါ။ အလေးများကို လေ့လာခဲ့သည့် ဒေတာအတွဲ သို့မဟုတ် YOLOv5 ဗားရှင်းကို စာရင်းကျဉ်းစေရန် အသုံးပြုနိုင်သည်။
6- သင့်လျော်သောအလေးချိန်များကိုရွေးချယ်ပြီးနောက် ၎င်းဘေးရှိ "ဒေါင်းလုဒ်" ခလုတ်ကိုနှိပ်ခြင်းဖြင့် အလေးချိန်ကိုရွေးချယ်ပါ။ အလေးချိန်များကို ဒေါင်းလုဒ်လုပ်ရန် ရရှိနိုင်မည်ဖြစ်သည်။ pt ဖိုင်များ။
7- ဒေါင်းလုဒ်လုပ်ထားသော အလေးများကို လမ်းညွှန်သို့ လွှဲပြောင်းပါ။ ဤနေရာတွင် သင်၏ ထောက်လှမ်းမှု ဇာတ်ညွှန်းသည် လည်ပတ်နေမည်ဖြစ်သည်။
8- ဤအချိန်တွင်၊ သင်သည် သင်၏ထောက်လှမ်းမှု script တွင် ကြိုတင်လေ့ကျင့်ထားသော အလေးများကို အသုံးပြု၍ သင်၏ဓာတ်ပုံ သို့မဟုတ် ဗီဒီယိုများတွင် အရာဝတ္ထုများကို သိရှိနိုင်မည်ဖြစ်သည်။
Data ကိုပြင်ဆင်ပါ။
YOLOv5 ဖြင့် အသုံးပြုရန်အတွက် ဒေတာအဆင်သင့်ရရှိရန် အောက်ပါလုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရပါမည်။
1. အချက်အလက်စုဆောင်းခြင်း- ပထမအဆင့်မှာ သင်လိုအပ်မည့် ပုံ သို့မဟုတ် ဗီဒီယိုဒေတာကို စုဆောင်းရန်ဖြစ်သည်။ အရာဝတ္ထုထောက်လှမ်း. သင်ရှာဖွေလိုသည့်အရာများသည် ဓာတ်ပုံ သို့မဟုတ် ဗီဒီယိုများတွင် ရှိနေသင့်သည်။
2- ဒေတာကို ဖော်မတ်လုပ်ပါ- ၎င်းတို့ကို အသုံးပြုနေပါက ဓာတ်ပုံများကို သင်၏ script ထဲသို့ တင်သွင်းနိုင်ပါသည်။ ဗီဒီယိုတစ်ခုကို အသုံးပြုရန်စီစဉ်ထားလျှင် ဓာတ်ပုံတစ်ပုံအဖြစ်သို့ ပြောင်းလဲရပါမည်။ OpenCV ကဲ့သို့ စာကြည့်တိုက်ကို အသုံးပြု၍ ရုပ်ရှင်မှ ဖရိမ်များကို သင် ထုတ်ယူနိုင်သည်။
import cv2
img = cv2.imread('path/to/image')
OpenCV စာကြည့်တိုက်ဖြင့်၊ သင်သည် ဗီဒီယိုတစ်ခုကို ရုပ်ပုံများအဖြစ်သို့ ပြောင်းလဲရန် အောက်ပါ command ကို အသုံးပြုနိုင်သည်။
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- သင်သည် ၎င်းကို tag လုပ်ပြီးပါက ဒေတာများကို လေ့ကျင့်ရေးနှင့် စမ်းသပ်မှုအစုများအဖြစ် ပိုင်းခြားရပါမည်။ သင့်မော်ဒယ်စွမ်းဆောင်ရည် မည်မျှကောင်းမွန်သည်ကို အကဲဖြတ်ရန်အတွက် ၎င်းသည် အရေးကြီးပါသည်။
5. နောက်ဆုံးအနေဖြင့်၊ သင်တန်း သို့မဟုတ် စမ်းသပ်ခြင်းမပြုမီ ဒေတာကို ကြိုတင်လုပ်ဆောင်ရန် လိုအပ်နိုင်သည်။ ၎င်းသည် ရုပ်ပုံများ သို့မဟုတ် ဗီဒီယိုများကို ချဲ့ထွင်ခြင်း၊ pixel တန်ဖိုးများကို စံသတ်မှတ်ခြင်း သို့မဟုတ် ဒေတာ တိုးမြှင့်ခြင်းအတွက် နည်းလမ်းများကို အသုံးပြုခြင်းတို့ ပါဝင်နိုင်သည်။
ဤအဆင့်များပြီးပါက၊ သင်၏ဒေတာအဆင်သင့်ဖြစ်ပါပြီ။
ထောက်လှမ်းခြင်း script ကိုဖွင့်ပါ။
ဤသည်မှာ ရုပ်ပုံတစ်ပုံကို ပိုင်းခြားစိတ်ဖြာပြီး အရာဝတ္ထုများကို ရှာဖွေသည့် ထောက်လှမ်းမှုဆိုင်ရာ ဇာတ်ညွှန်း၏ သရုပ်ဖော်ပုံဖြစ်သည်။
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 ကို လုပ်ဆောင်ရန်၊ ကျွန်ုပ်တို့သည် OpenCV စာကြည့်တိုက်၏ cv2.dnn.NMSBoxes() နည်းလမ်းကို အသုံးပြုနိုင်ပါသည်။
ဤသည်မှာ NMS ကို အသုံးပြု၍ စစ်ဆေးပြီးနောက် ထောက်လှမ်းမှုများကို မည်သို့လုပ်ဆောင်ရမည်ကို ဥပမာတစ်ခုဖြစ်သည်။
import cv2
# Perform Non-Maxima Suppression (NMS)
အညွှန်းကိန်း = cv2.dnn.NMSBoxes(ရှာဖွေတွေ့ရှိမှု၊ ယုံကြည်မှုများ၊ conf_thres၊ nms_thres)
visualization
စိတ်ကူးပုံဖော်ခြင်းကိစ္စတွင်၊ 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
applications ကို
YOLOv5 သည် အားကောင်းသော အရာဝတ္ထု ခွဲခြားသတ်မှတ်ခြင်း မော်ဒယ်တစ်ခု ဖြစ်သည်။ ထို့ကြောင့်၊ ကျွန်ုပ်တို့သည် ၎င်းကို လက်တွေ့ကမ္ဘာအခြေအနေများစွာတွင် အသုံးပြုနိုင်သည်။ အထင်ရှားဆုံးအသုံးပြုမှုတစ်ခုမှာ မောင်းသူမဲ့ကားများတွင်ဖြစ်သည်။ YOLOv5 သည် မော်တော်ကားများနှင့် မီးပွိုင့်များကဲ့သို့သော အရာများကို အချိန်နှင့်တပြေးညီ သိရှိနိုင်သည်။
စောင့်ကြည့်ရေးစနစ်များတွင် ကျွန်ုပ်တို့သည် တိုက်ရိုက်ဗီဒီယိုစီးကြောင်းများတွင် အရာဝတ္ထုများကို မှတ်မိရန်နှင့် ခြေရာခံရန် YOLOv5 ကို အသုံးပြုနိုင်ပါသည်။ ထို့အပြင်၊ YOLOv5 သည် စက်ရုပ်များတွင် ကောင်းမွန်သော ပိုင်ဆိုင်မှုတစ်ခု ဖြစ်နိုင်သည်။ စက်ရုပ်များသည် ၎င်းတို့၏ပတ်ဝန်းကျင်ကို သိရှိနားလည်နိုင်စေရန် ကူညီပေးနိုင်ပါသည်။ လမ်းညွှန်ခြင်းနှင့် ခြယ်လှယ်ခြင်းကဲ့သို့သော လှုပ်ရှားမှုများအတွက် ၎င်းသည် အလွန်အရေးကြီးပါသည်။
YOLOv5 ကို လက်လီ၊ အားကစား၊ ဆေးဘက်ဆိုင်ရာ နှင့် လုံခြုံရေး ကဲ့သို့သော အရာဝတ္ထု ထောက်လှမ်းမှု လိုအပ်သည့် မည်သည့် လုပ်ငန်းတွင်မဆို အသုံးပြုနိုင်သည်။
ကောက်ချက်
နောက်ဆုံးအနေဖြင့် YOLOv5 သည် YOLO မိသားစု၏ နောက်ဆုံးပေါ်နှင့် ခေတ်မီဆန်းသစ်သောဗားရှင်းဖြစ်သည်။ အရာဝတ္ထုထောက်လှမ်း မော်ဒယ်များ
. ထို့အပြင် ၎င်းသည် ရရှိနိုင်သော အတိကျဆုံး အရာဝတ္ထုကို ထောက်လှမ်းခြင်း စံနမူနာဖြစ်ကြောင်း ပြောရလျှင် တရားမျှတပါသည်။ ၎င်း၏ မြင့်မားသော တိကျမှုနှင့် မြန်နှုန်းကြောင့်၊ သင်၏ အရာဝတ္ထုကို ထောက်လှမ်းခြင်း ပရောဂျက်များအတွက် ၎င်းကို ဘေးကင်းစွာ ရွေးချယ်နိုင်သည်။
Resky Agus
ကျွန်ုပ်သည် yolov5 ဖြင့် ထောက်လှမ်းခြင်းယာဉ်အကြောင်း ပထမဆုံး ဂျာနယ်ထုတ်ပြီး ၎င်းနှင့်ပတ်သက်သော အချက်အလက်များကို ရှာဖွေရန် ဤဝဘ်ဆိုဒ်မှ ကျွန်ုပ်အား ကူညီပေးပါသည်။
AI ကို အရမ်းစိတ်ဝင်စားတယ်။
AI နဲ့ ပတ်သက်ပြီး မေးစရာတွေ အများကြီးရှိနိုင်ရင် ကူညီပေးနိုင်ပါတယ်။
ကျေးဇူးတင်ပါတယ်