පරිගණක දර්ශනයේ වස්තු හඳුනාගැනීමේ තාක්ෂණය බොහෝ යෙදුම් සඳහා අත්යවශ්ය වේ. අපි එය රොබෝ තාක්ෂණය, නිරීක්ෂණ උපකරණ, ස්වයං-රිය පැදවීමේ මෝටර් රථ සහ තවත් බොහෝ ප්රදේශවල භාවිතා කරමු. එමනිසා, අපට පින්තූරයක් හෝ වීඩියෝවක් තුළ යම් යම් දේවල් සොයා ගැනීමට සහ හඳුනා ගැනීමට හැකි වේ.
වඩාත්ම ප්රසිද්ධ එකක් වස්තුව හඳුනාගැනීමේ ඇල්ගොරිතම YOLO වේ (ඔබ එක් වරක් පමණක් බලන්න) ආකෘති කට්ටලය. මෙම ආකෘති නිර්මාණය කර ඇත Ultralytics LLC.
මෙම මාලාවේ නවතම අනුවාදය YOLOv5 වේ. තවද, එය වෙළඳපොලේ ඇති වේගවත්ම හා වඩාත්ම නිවැරදි වස්තු හඳුනාගැනීමේ ආකෘතියයි. නව දත්ත වලට සාමාන්යකරණය කිරීමේ ආකෘතියේ හැකියාව බෙහෙවින් වැඩි දියුණු කර ඇත. එසේම, එය පෙර පුනරාවර්තනයට වඩා හොඳින් ක්රියා කරන බොහෝ විශේෂාංග අඩංගු වේ.
YOLOv5 තත්ය කාලීන යෙදුම් සඳහා විශිෂ්ටයි එයට තනි GPU එකකින් තත්පරයකට රාමු 1000ක් දක්වා වේගයකින් පින්තූර සැකසීමට හැකිය.
මෙම ලිපියෙන්, අපි YOLOv5 හඳුන්වා දී එහි යෙදුම් ක්ෂේත්ර පිළිබඳ විස්තර වෙත යන්නෙමු.
YOLO හි ගමන: YOLO සිට YOLOv5 දක්වා
ජෝසප් රෙඩ්මන් සහ අල්. 2016 දී YOLO, වස්තු හඳුනාගැනීමේ ආකෘති කට්ටලයක් හඳුන්වා දෙන ලදී. ආරම්භක YOLO ආකෘතියට තත්ය කාලීන වස්තූන් හඳුනා ගත හැකිය. කෙසේ වෙතත්, එකල අනෙකුත් මාදිලි සමඟ සසඳන විට එය අඩු නිරවද්යතාවයක් විය.
YOLO හි වැඩි දියුණු කළ අනුවාද කිහිපයක් වසර පුරා නිකුත් විය. අවසාන වශයෙන්, Ultralytics LLC විසින් YOLO මාලාවේ නවතම සංස්කරණය වන YOLOv5 නිර්මාණය කරන ලදී.
YOLOv5 යනු දැනට පවතින වඩාත් නිවැරදි සහ වේගවත්ම වස්තු හඳුනාගැනීමේ ආකෘතියයි.
වැදගත් විශේෂාංග
නැංගුරම් පෙට්ටි
YOLOv5 නැංගුරම් පෙට්ටි භාවිතයෙන් රූපයක ඇති වස්තූන් සඳහා මායිම් පෙට්ටි පුරෝකථනය කරයි. නැංගුරම් පෙට්ටි භාවිතයෙන් පින්තූරයේ ඇති අයිතමයට වඩාත් ගැලපෙන විවිධ දර්ශන අනුපාත සහිත බොහෝ පෙර නිර්වචනය කළ පෙට්ටිවලින් කුමන පෙට්ටියද යන්න ආකෘතිය පුරෝකථනය කරයි. මේවා පූර්ව නිශ්චිත කොටු වේ.
තවද, ඔවුන් YOLOv5 හට නිරවද්යතාවයෙන් පින්තූරයක ඇති අයිතම හඳුනා ගැනීමට සහ සොයා ගැනීමට සබල කරයි.
මොසෙයික් දත්ත වැඩි කිරීම
පුහුණු කිරීමේදී YOLOv5 මොසෙයික් ලෙස හඳුන්වන ක්රමයක් භාවිතා කරයි දත්ත වැඩි කිරීම. නැවුම් පුහුණු පින්තූර සංවර්ධනය කිරීම සඳහා, අපගේ ආකෘතිය අහඹු ලෙස ඡායාරූප කිහිපයක පැච් ඒකාබද්ධ කරයි. එහි ප්රතිඵලයක් වශයෙන්, ආකෘතිය වඩාත් ප්රත්යාස්ථ හා විශ්වාසනීය වේ. එබැවින්, එය නව දත්ත වලට සාමාන්යකරණය කිරීමට සහ අධික ලෙස ගැලපීම අඩු කරයි.
අද්විතීය පුහුණු නල මාර්ගයක්
සුපරීක්ෂණය සහ මිශ්ර කරන අද්විතීය පුහුණු නල මාර්ගයක් අධීක්ෂණය නොකළ ඉගෙනීම භාවිතා වේ.
මේ අනුව, ආකෘතිය කුඩා සාම්පලයකින් ඉගෙන ගන්නා අතර ලේබල් නොකළ ආදානය ඵලදායී ලෙස භාවිතා කරයි. මෙය ආකෘතියේ කාර්ය සාධනය ඉහළ නංවන අතර නව යෙදවුම් සඳහා සාමාන්යකරණය කිරීමට එහි ධාරිතාව වැඩි කරයි.
අවශේෂ සහ අවශේෂ නොවන ස්ථර
YOLOv5 හි ගෘහ නිර්මාණ ශිල්පය අවශේෂ සහ අවශේෂ නොවන ස්ථර ඒකාබද්ධ කරයි. ස්ථර හරහා අනුක්රමණයට ගලා යාමට ඉඩ දීමෙන්, අවශේෂ ස්තර, දුෂ්කර විශේෂාංග ඉගෙන ගැනීමට ආකෘතියට සහාය වේ. එසේම, අවශේෂ නොවන ස්ථර මඟින් ආදාන පින්තූරයේ වඩාත් පුළුල් ග්රහණයක් සමඟ ආකෘතිය සපයයි. එහි ප්රතිඵලයක් වශයෙන්, YOLOv5 වඩාත් නිවැරදිව හා ඵලදායී ලෙස ක්රියා කළ හැක.
YOLov5 භාවිතා කරන්නේ කෙසේද
ස්ථාපනය
YOLOv5 ස්ථාපනය pip භාවිතයෙන් ඉක්මනින් අවසන් කළ හැක. Pip යනු Python පැකේජ කළමනාකරුවෙකි. YOLOv5 ස්ථාපනය කිරීමේ සාමාන්ය ක්රියා පටිපාටි පහත පරිදි වේ:
1- PyTorch ස්ථාපනය කරන්න: YOLOv5 PyTorch රාමුව මත පදනම් වී ඇති නිසා, ඔබ මුලින්ම PyTorch ස්ථාපනය කළ යුතුය.
pip install torch torchvision
2. CUDA ස්ථාපනය කරන්න: ඔබ GPU එකක YOLOv5 ධාවනය කිරීමට අදහස් කරන්නේ නම් ඔබ CUDA ස්ථාපනය කළ යුතුය.
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 ක්රියාත්මක කිරීමට, අපට OpenCV පුස්තකාලයේ cv2.dnn.NMSBoxes() ක්රමය භාවිතා කළ හැක.
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 = 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 පවුලේ නවතම සහ නවීනතම අනුවාදයයි වස්තුව හඳුනාගැනීම ආකෘති
. එසේම, එය පවතින වඩාත් නිවැරදි වස්තු හඳුනාගැනීමේ ආකෘතිය බව පැවසීම සාධාරණ ය. එහි ඉහළ නිරවද්යතාවයට සහ වේගයට ස්තුතිවන්ත වන්න, ඔබට එය ඔබගේ වස්තු හඳුනාගැනීමේ ව්යාපෘති සඳහා ආරක්ෂිතව තෝරාගත හැක.
රෙස්කි ඇගස්
මම yolov5 සමඟ හඳුනාගැනීමේ වාහනය පිළිබඳ පළමු සඟරාවක් සාදන අතර ඒ පිළිබඳ තොරතුරු සෙවීමට මෙම වෙබ් අඩවිය මට උපකාර කරයි.
මම AI ගැන ගොඩක් උනන්දුයි.
ඔබට AI ගැන බොහෝ ප්රශ්න තිබේ නම්, ඔබට මට උදව් කළ හැකිය
ඔබට ස්තුතියි