Imọ-ẹrọ wiwa ohun iran kọnputa jẹ pataki fun awọn ohun elo lọpọlọpọ. A lo ninu awọn ẹrọ roboti, awọn ohun elo iwo-kakiri, awọn ọkọ ayọkẹlẹ ti n wakọ, ati ọpọlọpọ awọn agbegbe diẹ sii. Nitorinaa, a gba lati wa ati da awọn nkan kan mọ ni aworan tabi fidio.
Ọkan ninu awọn julọ daradara-mọ Awọn algoridimu idanimọ ohun ni YOLO (Iwọ Nikan Wo Ni ẹẹkan) ṣeto awọn awoṣe. Awọn awoṣe wọnyi ni a ṣẹda nipasẹ Ultralytics LLC.
Ẹya aipẹ julọ ti jara yii jẹ YOLOv5. Ati pe, o jẹ awoṣe idanimọ ohun ti o yara julọ ati kongẹ julọ lori ọja naa. Agbara awoṣe lati ṣe akopọ si data tuntun ti ni ilọsiwaju pupọ. Paapaa, o ni ọpọlọpọ awọn ẹya ti o jẹ ki o ṣiṣẹ daradara ju awọn iterations iṣaaju lọ.
YOLOv5 jẹ nla fun awọn ohun elo akoko gidi nitori o le ṣe ilana awọn aworan ni iwọn ti o to awọn fireemu 1000 fun iṣẹju kan lori GPU kan.
Ninu nkan yii, a yoo ṣafihan YOLOv5 ati lọ lori awọn alaye ti awọn agbegbe ohun elo rẹ.
Irin ajo ti YOLO: Lati YOLO si YOLOv5
Joseph Redmon et al. Ni akọkọ ṣe afihan YOLO, ipilẹ awọn awoṣe idanimọ ohun, ni 2016. Awoṣe YOLO akọkọ le ṣe idanimọ awọn nkan ni akoko gidi. Sibẹsibẹ, o ni iṣedede kekere nigbati akawe si awọn awoṣe miiran ni akoko yẹn.
Ọpọlọpọ awọn ẹya igbegasoke ti YOLO ni a tu silẹ ni gbogbo awọn ọdun. Ati nikẹhin, Ultralytics LLC ṣẹda ẹda tuntun ti jara YOLO, YOLOv5.
YOLOv5 jẹ deede julọ ati awoṣe idanimọ ohun iyara ti o wa lọwọlọwọ.
Awọn ẹya Pataki
Awọn apoti oran
YOLOv5 ṣe asọtẹlẹ awọn apoti ifunmọ fun awọn nkan inu aworan nipa lilo awọn apoti oran. Awoṣe ṣe asọtẹlẹ eyi ti ọpọlọpọ awọn apoti asọye tẹlẹ pẹlu ọpọlọpọ awọn ipin abala ti o dara julọ ni ibamu pẹlu ohun ti o wa ninu aworan ni lilo awọn apoti oran. Iwọnyi jẹ awọn apoti asọye tẹlẹ.
Ati pe, wọn jẹ ki YOLOv5 ṣe idanimọ ati wa awọn ohun kan ninu aworan pẹlu deede.
Mosaic data augmentation
Nigbati ikẹkọ, YOLOv5 nlo ọna ti a mọ si mosaic augmentation data. Lati ṣe agbekalẹ awọn aworan ikẹkọ tuntun, awoṣe wa laileto dapọ awọn abulẹ ti awọn fọto pupọ. Bi abajade, awoṣe naa di diẹ sii resilient ati ki o gbẹkẹle. Nitorinaa, o ni lati ṣakopọ si data tuntun ati dinku apọju.
A Oto Training Pipeline
Opo gigun ti ikẹkọ alailẹgbẹ ti o dapọ abojuto ati eko ti ko ni abojuto ti lo.
Nitorinaa, awoṣe naa kọ ẹkọ lati inu apẹẹrẹ ti o kere ati lilo igbewọle ti ko ni aami ni imunadoko. Eyi ṣe alekun iṣẹ ṣiṣe awoṣe ati mu agbara rẹ pọ si lati ṣe gbogbogbo si awọn igbewọle tuntun.
Fẹlẹfẹlẹ ti o wa ni aloku ati ti kii-aseku
YOLOv5's faaji daapọ awọn fẹlẹfẹlẹ ti o jẹ iyokù ati ti kii ṣe iyokù. Nipa gbigba awọn gradients laaye lati ṣàn kọja awọn fẹlẹfẹlẹ, awọn ipele iyokù ṣe iranlọwọ fun awoṣe ni kikọ awọn ẹya ti o nira. Paapaa, awọn fẹlẹfẹlẹ ti kii ṣe iyokù pese awoṣe pẹlu oye diẹ sii ti aworan titẹ sii. Bi abajade, YOLOv5 le ṣiṣẹ ni deede ati imunadoko.
Bii o ṣe le Lo YOLOv5
fifi sori
Fifi sori YOLOv5 le pari ni kiakia nipa lilo pip. Pip jẹ oluṣakoso package Python kan. Awọn ilana gbogbogbo fun fifi sori YOLOv5 jẹ bi atẹle:
1- Fi PyTorch sori ẹrọ: Nitori YOLOv5 da lori ilana PyTorch, o gbọdọ kọkọ fi PyTorch sori ẹrọ.
pip install torch torchvision
2. Fi CUDA sori ẹrọ: O gbọdọ fi CUDA sori ẹrọ ti o ba pinnu lati ṣiṣẹ YOLOv5 lori GPU kan.
3. Fi YOLOv5 sori ẹrọ: Lẹhin ti ṣeto PyTorch ati CUDA, lo aṣẹ atẹle lati ṣe igbasilẹ YOLOv5.
pip install yolov5
4-Ni atẹle fifi sori ẹrọ ti YOLOv5, o gbọdọ ṣe igbasilẹ awọn iwuwo ti a ti kọ tẹlẹ. Awọn òṣuwọn ti a ti kọkọ ṣaaju wa ninu Ultralytics GitHub repo.
Lọ si apakan “awọn iwuwo” ti oju opo wẹẹbu nipasẹ yi lọ si isalẹ. O le ṣe igbasilẹ awọn iwuwo ti a ti kọ tẹlẹ lati atokọ ti o le rii Nibi.
5. Yan awọn iwuwo ti o ti ni ikẹkọ tẹlẹ ati pe o dara julọ fun ọran lilo rẹ. Awọn dataset tabi ẹya YOLOv5 pato ti a kọ awọn iwuwo le ṣee lo lati dín atokọ naa.
6- Lẹhin yiyan awọn iwọn to dara, mu iwuwo nipa titẹ bọtini “Download” lẹgbẹẹ rẹ. Awọn òṣuwọn yoo wa fun gbigba lati ayelujara bi. pt awọn faili.
7- Gbigbe awọn iwuwo ti a gbasilẹ si itọsọna naa. Eyi ni ibi ti iwe afọwọkọ wiwa rẹ yoo ṣiṣẹ.
8- Ni aaye yii, o le ṣiṣe wiwa ohun lori awọn fọto rẹ tabi awọn fidio ni lilo awọn iwuwo ti a ti kọ tẹlẹ ninu iwe afọwọkọ wiwa rẹ.
Mura Data naa
O gbọdọ ṣe awọn iṣe wọnyi lati jẹ ki data ṣetan fun lilo pẹlu YOLOv5:
1. Kojọ data: Igbesẹ akọkọ ni lati ṣajọ aworan tabi data fidio ti o nilo fun ohun èlò. Awọn ohun ti o fẹ lati rii yẹ ki o wa ninu awọn fọto tabi awọn fidio.
2- Ṣe ọna kika data naa: O le kan gbe awọn fọto wọle sinu iwe afọwọkọ rẹ ti o ba nlo wọn. O gbọdọ yi fidio kan sinu lẹsẹsẹ awọn fọto ti o ba gbero lati lo ọkan. O le jade awọn fireemu lati fiimu kan nipa lilo ile-ikawe bii OpenCV.
import cv2
img = cv2.imread('path/to/image')
Pẹlu ile-ikawe OpenCV, o le lo aṣẹ atẹle lati yi fidio pada si lẹsẹsẹ awọn aworan:
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. Aami data naa: O gbọdọ fi aami si data naa ti o ba nlo dataset rẹ. Yiya awọn apoti didi ni ayika awọn ohun ti o fẹ lati ṣe idanimọ ni fireemu kọọkan ti aworan kan. O jẹ ilana ti isamisi data naa. O le lo awọn irinṣẹ pupọ lati ṣe iranlọwọ fun ọ pẹlu iṣẹ ṣiṣe yii, pẹlu LabelImg ati RectLabel.
4- O gbọdọ pin data naa si ikẹkọ ati awọn eto idanwo lẹhin ti o ti samisi rẹ. Eyi ṣe pataki fun iṣiro bi awoṣe rẹ ṣe n ṣiṣẹ daradara.
5. Nikẹhin, o le nilo lati ṣaju data ṣaaju ikẹkọ tabi idanwo. Eyi le fa wiwọn awọn aworan tabi awọn fidio, diwọn awọn iye piksẹli, tabi lilo awọn ọna fun imudara data.
Lẹhin ipari awọn igbesẹ wọnyi, data rẹ ti šetan.
Ṣiṣe awọn erin akosile
Eyi jẹ apejuwe ti iwe afọwọkọ wiwa ti o ṣe itupalẹ aworan kan ti o wa awọn nkan.
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))
Lilọ kiri lẹhin
Ipilẹṣẹ ti kii ṣe ti o pọju jẹ ọkan ninu awọn ilana ilana-ifiweranṣẹ loorekoore ti a lo ninu wiwa ohun (NMS). A lo NMS lati se imukuro agbekọja apoti fun ohun kanna. Lati ṣiṣẹ NMS lori wiwa, a le lo ọna ikawe OpenCV's cv2.dnn.NMSBoxes().
Eyi ni apẹẹrẹ ti bii o ṣe le ṣe awari ilana lẹhin lilo NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
atọka = cv2.dnn.NMSBoxes (awọn awari, awọn igbẹkẹle, conf_thres, nms_thres)
iworan
Ninu ọran ti iworan, a le tun lo ile-ikawe bii OpenCV. A le ṣe afihan awọn apoti ifamọ ni ayika awọn nkan ti a ṣe awari lori aworan orisun tabi fidio. Lati fa awọn apoti didi aworan, lo ọna cv2.rectangle (). Eyi ni bii o ṣe le wo awọn iwari lori aworan atilẹba:
gbe wọle cv2
# Draw the bounding boxes on the image
fun emi ni awọn atọka:
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
ohun elo
YOLOv5 jẹ awoṣe idanimọ ohun to lagbara. Nitorinaa, a le lo o ni ọpọlọpọ awọn oju iṣẹlẹ gidi-aye. Ọkan ninu awọn lilo olokiki julọ ni ninu awọn ọkọ ayọkẹlẹ awakọ ti ara ẹni. YOLOv5 le ṣe idanimọ awọn ohun kan ni akoko gidi gẹgẹbi awọn ọkọ ayọkẹlẹ ati awọn ina opopona.
Ni awọn eto iwo-kakiri, a le lo YOLOv5 lati ṣe idanimọ ati tọpa awọn nkan ni awọn ṣiṣan fidio laaye. Pẹlupẹlu, YOLOv5 le jẹ ohun-ini nla ni awọn roboti. O le ṣe iranlọwọ fun awọn roboti ṣawari ati loye agbegbe wọn. Eyi ṣe pataki pupọ fun awọn iṣẹ bii lilọ kiri ati ifọwọyi.
YOLOv5 tun le jẹ lilo ni eyikeyi ile-iṣẹ ti o nilo wiwa ohun, gẹgẹbi soobu, awọn ere idaraya, iṣoogun, ati aabo.
ipari
Nikẹhin, YOLOv5 jẹ ẹya aipẹ julọ ati fafa ti idile YOLO ti ohun èlò Awọn awoṣe
. Paapaa, o tọ lati sọ pe o jẹ awoṣe wiwa ohun deede julọ ti o wa. Ṣeun si iṣedede giga rẹ ati iyara, o le yan lailewu fun awọn iṣẹ akanṣe wiwa ohun rẹ.
Resky Agus
Mo ṣe iwe akọọlẹ akọkọ kan nipa ọkọ wiwa pẹlu yolov5 ati wẹẹbu yii ṣe iranlọwọ fun mi lati wa alaye nipa iyẹn.
Mo nifẹ pupọ nipa AI.
ti o ba le Mo ni ibeere pupọ nipa AI boya o le ṣe iranlọwọ fun mi
E dupe