Datorredzes objektu noteikšanas tehnoloģija ir būtiska daudzām lietojumprogrammām. Mēs to izmantojam robotikā, novērošanas iekārtās, pašbraucošajos automobiļos un daudzās citās jomās. Tādējādi mēs varam atrast un atpazīt noteiktas lietas attēlā vai videoklipā.
Viens no pazīstamākajiem objektu identifikācijas algoritms ir YOLO (You Only Look Once) modeļu komplekts. Šos modeļus veido Ultralytics LLC.
Šīs sērijas jaunākā versija ir YOLOv5. Un tas ir ātrākais un precīzākais objektu identifikācijas modelis tirgū. Modeļa spēja vispārināt jaunus datus ir ievērojami uzlabota. Tajā ir arī daudzas funkcijas, kas padara to labāku nekā iepriekšējās iterācijas.
YOLOv5 ir lieliski piemērots reāllaika lietojumprogrammām, jo tas var apstrādāt attēlus ar ātrumu līdz 1000 kadriem sekundē vienā GPU.
Šajā rakstā mēs iepazīstināsim ar YOLOv5 un apskatīsim sīkāku informāciju par tā pielietojuma jomām.
YOLO ceļojums: no YOLO uz YOLOv5
Džozefs Redmons u.c. sākotnēji 2016. gadā ieviesa YOLO — objektu identifikācijas modeļu kopu. Sākotnējais YOLO modelis varēja identificēt objektus reāllaikā. Tomēr tam bija zema precizitāte, salīdzinot ar citiem tā laika modeļiem.
Gadu gaitā tika izlaistas vairākas jauninātas YOLO versijas. Visbeidzot, Ultralytics LLC izveidoja jaunāko YOLO sērijas izdevumu YOLOv5.
YOLOv5 ir precīzākais un ātrākais pašlaik pieejamais objektu identifikācijas modelis.
Svarīgas funkcijas
Enkuru kastes
YOLOv5 paredz attēla objektu robežlodziņus, izmantojot enkura kastes. Modelis paredz, kura no daudzajām iepriekš definētajām kastēm ar dažādām proporcijām vislabāk atbilst attēlā redzamajam vienumam, izmantojot enkura kastes. Tās ir iepriekš noteiktas kastes.
Un tie ļauj YOLOv5 precīzi atpazīt un atrast vienumus attēlā.
Mozaīkas datu palielināšana
Treniņos YOLOv5 izmanto metodi, kas pazīstama kā mozaīka datu papildināšana. Lai izstrādātu jaunus treniņu attēlus, mūsu modelis nejauši apvieno vairāku fotoattēlu ielāpus. Tā rezultātā modelis kļūst izturīgāks un uzticamāks. Tādējādi tas var vispārināt jaunus datus un samazināt pārmērīgu pielāgošanu.
Unikāls apmācību cauruļvads
Unikāls apmācību cauruļvads, kas sajauc uzraudzītu un mācīšanās bez uzraudzības tiek izmantots.
Tādējādi modelis mācās no mazāka parauga un efektīvi izmanto neiezīmēto ievadi. Tas uzlabo modeļa veiktspēju un uzlabo tā spēju vispārināt jaunas ievades.
Slāņi, kas ir atlikušie un neatliekamie
YOLOv5 arhitektūra apvieno slāņus, kas ir atlikušie un neatliekošie slāņi. Ļaujot gradientiem plūst pāri slāņiem, atlikušie slāņi palīdz modelim apgūt sarežģītas funkcijas. Turklāt slāņi, kas nav atlikušie, nodrošina modelim visaptverošāku ievades attēla uztveri. Rezultātā YOLOv5 var darboties precīzāk un efektīvāk.
Kā lietot YOLOv5
uzstādīšana
YOLOv5 instalēšanu var ātri pabeigt, izmantojot pip. Pip ir Python pakotņu pārvaldnieks. Vispārīgās YOLOv5 instalēšanas procedūras ir šādas:
1. Instalējiet PyTorch: tā kā YOLOv5 pamatā ir PyTorch sistēma, vispirms ir jāinstalē PyTorch.
pip install torch torchvision
2. Instalējiet CUDA. Ja vēlaties palaist YOLOv5 GPU, jums ir jāinstalē CUDA.
3. Instalējiet YOLOv5: pēc PyTorch un CUDA iestatīšanas izmantojiet šo komandu, lai lejupielādētu YOLOv5.
pip install yolov5
4-Pēc YOLOv5 instalēšanas jums ir jālejupielādē iepriekš apmācīti svari. Iepriekš apmācītie svari ir pieejami Ultralytics GitHub repo.
Pārejiet uz vietnes “svaru” daļu, ritinot uz leju. Jūs varat lejupielādēt iepriekš apmācītus svarus no šeit atrodamā saraksta.
5. Izvēlieties svarus, kas jau ir apmācīti un vislabāk atbilst jūsu lietošanas gadījumam. Datu kopu vai konkrēto YOLOv5 versiju, kurā tika apgūti svari, var izmantot, lai sašaurinātu sarakstu.
6- Pēc pareizo svaru izvēles izvēlieties svaru, noklikšķinot uz pogas “Lejupielādēt” blakus tam. Svari būs pieejami lejupielādei kā. pt faili.
7- Pārsūtiet lejupielādētos svarus uz direktoriju. Šeit darbosies jūsu noteikšanas skripts.
8. Šajā brīdī varat palaist objektu noteikšanu savos fotoattēlos vai videoklipos, izmantojot iepriekš apmācītus svarus savā noteikšanas skriptā.
Sagatavojiet datus
Lai datus sagatavotu lietošanai ar YOLOv5, jums jāveic šādas darbības:
1. Datu vākšana: pirmais solis ir apkopot nepieciešamos attēlu vai video datus objektu noteikšana. Lietas, kuras vēlaties noteikt, ir jābūt redzamām fotoattēlos vai videoklipos.
2- Formatējiet datus: varat vienkārši importēt fotoattēlus savā skriptā, ja tos izmantojat. Ja plānojat to izmantot, videoklips ir jāpārvērš fotoattēlu sērijā. Varat izvilkt kadrus no filmas, izmantojot bibliotēku, piemēram, OpenCV.
import cv2
img = cv2.imread('path/to/image')
Izmantojot OpenCV bibliotēku, varat izmantot šo komandu, lai video pārvērstu attēlu sērijā:
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. Iezīmējiet datus. Ja izmantojat datu kopu, dati ir jāapzīmē. Ierobežojošo lodziņu zīmēšana ap vienumiem, kurus vēlaties identificēt katrā attēla kadrā. Tas ir datu marķēšanas process. Lai palīdzētu veikt šo darbību, varat izmantot vairākus rīkus, tostarp LabelImg un RectLabel.
4- Dati ir jāsadala apmācības un testēšanas komplektos pēc tam, kad esat tos atzīmējis. Tas ir ļoti svarīgi, lai novērtētu, cik labi jūsu modelis darbojas.
5. Visbeidzot, iespējams, pirms apmācības vai testēšanas jums būs jāveic datu priekšapstrāde. Tas var ietvert attēlu vai videoklipu mērogošanu, pikseļu vērtību standartizēšanu vai datu palielināšanas metožu izmantošanu.
Pēc šo darbību veikšanas jūsu dati ir gatavi.
Palaidiet noteikšanas skriptu
Šeit ir ilustrācija atklāšanas skriptam, kas analizē attēlu un atrod objektus.
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))
Pēcapstrāde
Nemaksimālā slāpēšana ir viena no biežākajām pēcapstrādes metodēm, ko izmanto objektu noteikšanā (NMS). Mēs izmantojam NMS, lai vienam un tam pašam objektam novērstu pārklājošos ierobežojošos lodziņus. Lai izpildītu NMS noteikšanai, mēs varam izmantot OpenCV bibliotēkas cv2.dnn.NMSBoxes() metodi.
Šeit ir piemērs, kā pēcapstrādāt noteikšanu, izmantojot NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
indeksi = cv2.dnn.NMSBoxes(atklāšanas gadījumi, ticamība, konf_thres, nms_thres)
Vizualizācija
Vizualizācijas gadījumā mēs atkal varam izmantot bibliotēku, piemēram, OpenCV. Mēs varam parādīt ierobežojošos lodziņus ap atklātajiem objektiem avota attēlā vai videoklipā. Lai uzzīmētu attēla ierobežojošos lodziņus, izmantojiet metodi cv2.rectangle(). Lūk, kā skatīt oriģinālā attēla atradumus:
importēt cv2
# Draw the bounding boxes on the image
I indeksos:
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
Aplikācijas
YOLOv5 ir spēcīgs objektu identifikācijas modelis. Tādējādi mēs varam to izmantot daudzos reālās pasaules scenārijos. Viens no visizplatītākajiem lietojumiem ir pašpiedziņas automašīnās. YOLOv5 var reāllaikā identificēt vienumus, piemēram, automašīnas un luksoforus.
Novērošanas sistēmās mēs varam izmantot YOLOv5, lai atpazītu un izsekotu objektus tiešraides video straumēs. Turklāt YOLOv5 var būt lieliska priekšrocība robotikā. Tas var palīdzēt robotiem atklāt un izprast savu apkārtni. Tas ir ārkārtīgi svarīgi tādām darbībām kā navigācija un manipulācijas.
YOLOv5 var izmantot arī jebkurā nozarē, kurā nepieciešama objektu noteikšana, piemēram, mazumtirdzniecībā, sportā, medicīnā un apsardzē.
Secinājumi
Visbeidzot, YOLOv5 ir jaunākā un izsmalcinātākā YOLO saimes versija objektu noteikšana modeļi
. Tāpat ir godīgi teikt, ka tas ir visprecīzākais pieejamais objektu noteikšanas modelis. Pateicoties tā augstajai precizitātei un ātrumam, varat to droši izvēlēties saviem objektu noteikšanas projektiem.
Resky Agus
Es veidoju pirmo žurnālu par atklāšanas transportlīdzekli, izmantojot yolov5, un šis tīmekļa pakalpojums palīdz meklēt informāciju par to.
Mani ļoti interesē AI.
ja varat, man ir daudz jautājumu par AI, varbūt jūs varat man palīdzēt
Paldies