Arvutinägemise objektide tuvastamise tehnoloogia on paljude rakenduste jaoks hädavajalik. Kasutame seda robootikas, valveseadmetes, isejuhtivates autodes ja paljudes muudes valdkondades. Seega saame pildilt või videolt teatud asjad üles leida ja ära tunda.
Üks tuntumaid objekti tuvastamise algoritmid on YOLO (You Only Look Once) mudelite komplekt. Need mudelid on loonud Ultralytics LLC.
Selle seeria uusim versioon on YOLOv5. Ja see on turul kõige kiirem ja täpseim objekti tuvastamise mudel. Mudeli võime üldistada uusi andmeid on oluliselt paranenud. Lisaks sisaldab see palju funktsioone, mis muudavad selle varasemate iteratsioonidega võrreldes paremaks.
YOLOv5 sobib suurepäraselt reaalajas rakenduste jaoks, kuna see suudab ühe GPU-ga pilte töödelda kiirusega kuni 1000 kaadrit sekundis.
Selles artiklis tutvustame YOLOv5 ja käsitleme selle rakendusalade üksikasju.
YOLO teekond: YOLO-st YOLOv5-sse
Joseph Redmon et al. algselt tutvustas YOLO, objektide tuvastamise mudelite komplekti 2016. aastal. Esialgne YOLO mudel suutis objekte reaalajas tuvastada. Selle täpsus oli aga teiste tollaste mudelitega võrreldes madal.
Aastate jooksul anti välja mitu YOLO täiendatud versiooni. Ja lõpuks lõi Ultralytics LLC YOLO seeria uusima väljaande YOLOv5.
YOLOv5 on hetkel kõige täpsem ja kiireim objektide tuvastamise mudel.
Olulised funktsioonid
Ankrukastid
YOLOv5 ennustab ankrukastide abil pildil olevate objektide piirdekaste. Ankurduskastide abil ennustab mudel ette, milline paljudest erinevate kuvasuhetega eelmääratletud kastidest sobib kõige paremini pildil oleva üksusega. Need on eelnevalt määratletud kastid.
Ja need võimaldavad YOLOv5-l pildil olevaid üksusi täpselt ära tunda ja leida.
Mosaiikandmete suurendamine
Treenides kasutab YOLOv5 mosaiikina tuntud meetodit andmete suurendamine. Värskete treeningpiltide väljatöötamiseks ühendab meie mudel juhuslikult mitme foto laigud. Selle tulemusena muutub mudel vastupidavamaks ja töökindlamaks. Seega saab see üldistada uute andmetega ja vähendada ülepaigutamist.
Ainulaadne koolitustoru
Unikaalne koolitustoru, mis segab juhendatud ja järelevalveta õppimine kasutatakse.
Seega õpib mudel väiksemast valimist ja kasutab märgistamata sisendit tõhusalt. See suurendab mudeli jõudlust ja suurendab selle võimet üldistada uutele sisenditele.
Jääk- ja mittejääkkihid
YOLOv5 arhitektuur ühendab jääk- ja mittejääkkihte. Lubades gradientidel voolata üle kihtide, aitavad jääkkihid mudelil raskeid funktsioone õppida. Samuti annavad mittejääkkihid mudelile sisendpildist põhjalikuma ülevaate. Tänu sellele saab YOLOv5 töötada täpsemalt ja tõhusamalt.
Kuidas kasutada YOLOv5
paigaldamine
YOLOv5 installimise saab kiiresti lõpule viia, kasutades pip. Pip on Pythoni paketihaldur. YOLOv5 installimise üldprotseduurid on järgmised:
1- Installige PyTorch: kuna YOLOv5 põhineb PyTorchi raamistikul, peate esmalt installima PyTorchi.
pip install torch torchvision
2. Installige CUDA. Kui kavatsete YOLOv5 GPU-s käitada, peate installima CUDA.
3. Installige YOLOv5: pärast PyTorchi ja CUDA seadistamist kasutage YOLOv5 allalaadimiseks järgmist käsku.
pip install yolov5
4-Pärast YOLOv5 installimist peate alla laadima eelnevalt treenitud raskused. Eeltreenitud raskused on saadaval Ultralytics GitHubi repos.
Minge veebisaidi kaalude osasse, kerides alla. Eeltreenitud raskused saate alla laadida loendist, mille leiate siit.
5. Valige raskused, mis on juba treenitud ja mis sobivad teie kasutusjuhtumiga kõige paremini. Loendi kitsendamiseks võib kasutada andmestikku või konkreetset YOLOv5 versiooni, millest kaalud õpiti.
6- Pärast õigete kaalude valimist valige kaal, klõpsates selle kõrval olevat nuppu "Laadi alla". Kaalud on allalaadimiseks saadaval kujul. pt failid.
7- Kandke allalaaditud kaalud kataloogi. See on koht, kus teie tuvastamisskript töötab.
8- Sel hetkel saate käivitada objektide tuvastamise oma fotodel või videotel, kasutades tuvastamisskriptis eelnevalt treenitud kaalusid.
Valmistage andmed ette
Peate tegema järgmised toimingud, et saada andmed YOLOv5-ga kasutamiseks valmis.
1. Andmete kogumine: esimene samm on vajalike pildi- või videoandmete kogumine objektide tuvastamine. Asjad, mida soovite tuvastada, peaksid olema fotodel või videotes.
2- Vormindage andmed: võite lihtsalt importida fotod oma skripti, kui kasutate neid. Kui kavatsete seda kasutada, peate video muutma fotoseeriaks. Saate filmist kaadreid eraldada, kasutades sellist teeki nagu OpenCV.
import cv2
img = cv2.imread('path/to/image')
OpenCV teegiga saate kasutada järgmist käsku, et muuta video pildiseeriaks:
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. Andmete sildistamine: kui kasutate oma andmestikku, peate andmed märgistama. Piirdekastide joonistamine nende üksuste ümber, mida soovite pildi igas kaadris tuvastada. See on andmete märgistamise protsess. Selle toimingu abistamiseks võite kasutada mitmeid tööriistu, sealhulgas LabelImg ja RectLabel.
4- Pärast märgistamist peate andmed jagama treening- ja testimiskomplektideks. See on teie mudeli toimivuse hindamiseks ülioluline.
5. Lõpuks peate võib-olla enne koolitust või testimist andmeid eeltöötlema. See võib hõlmata piltide või videote skaleerimist, piksliväärtuste standardimist või andmete suurendamise meetodite kasutamist.
Pärast nende toimingute tegemist on teie andmed valmis.
Käivitage tuvastamisskript
Siin on illustratsioon tuvastusskriptist, mis analüüsib pilti ja leiab objekte.
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))
Järeltöötlus
Mittemaksimaalne summutamine on üks kõige sagedasemaid järeltöötlustehnikaid, mida objektide tuvastamisel (NMS) kasutatakse. Kasutame NMS-i, et kõrvaldada sama objekti kattuvad piirdekastid. Tuvastamisel NMS-i käivitamiseks saame kasutada OpenCV teegi meetodit cv2.dnn.NMSBoxes().
Siin on näide selle kohta, kuidas tuvastusi NMS-i abil järeltöödelda.
import cv2
# Perform Non-Maxima Suppression (NMS)
indeksid = cv2.dnn.NMSBoxes(tuvastused, usaldusväärsused, konf_thres, nms_thres)
Visualiseerimine
Visualiseerimise puhul saame jällegi kasutada sellist teeki nagu OpenCV. Saame kuvada lähtepildil või videol avastatud objektide ümber olevad piirdekastid. Pildi piirdekastide joonistamiseks kasutage meetodit cv2.rectangle(). Algse pildi tuvastamiste vaatamiseks tehke järgmist.
import cv2
# Draw the bounding boxes on the image
I jaoks indeksites:
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
Rakendused
YOLOv5 on tugev objektide tuvastamise mudel. Seetõttu saame seda kasutada paljudes reaalsetes olukordades. Üks silmapaistvamaid kasutusviise on isejuhtivates autodes. YOLOv5 suudab tuvastada reaalajas objekte, nagu autod ja valgusfoorid.
Jälgimissüsteemides saame kasutada YOLOv5 objektide tuvastamiseks ja jälgimiseks otsevideovoogudes. Lisaks võib YOLOv5 olla robootikas suur eelis. See võib aidata robotitel oma ümbrust tuvastada ja mõista. See on äärmiselt oluline selliste tegevuste jaoks nagu navigeerimine ja manipuleerimine.
YOLOv5 võib kasutada ka igas tööstusharus, mis nõuab objektide tuvastamist, näiteks jaekaubanduses, spordis, meditsiinis ja turvalisuses.
Järeldus
Lõpuks on YOLOv5 YOLO perekonna uusim ja keerukam versioon objektide tuvastamine mudelid
. Samuti on aus öelda, et see on kõige täpsem saadaolev objektituvastusmudel. Tänu suurele täpsusele ja kiirusele saate selle oma objektituvastusprojektide jaoks turvaliselt valida.
Resky Agus
Teen esimest ajakirja tuvastussõiduki kohta koos yolov5-ga ja see veebi aitab selle kohta teavet otsida.
Mind huvitab AI väga.
kui saate, on mul AI kohta palju küsimusi, võib-olla saate mind aidata
Aitäh