Teknolojia ya kugundua kitu cha maono ya kompyuta ni muhimu kwa matumizi mengi. Tunaitumia katika robotiki, vifaa vya uchunguzi, magari yanayojiendesha na maeneo mengi zaidi. Kwa hivyo, tunapata na kutambua vitu fulani katika picha au video.
Mmoja wa wanaojulikana zaidi kanuni za kitambulisho cha kitu ni YOLO (Unaangalia Mara Moja Pekee) seti ya mifano. Mifano hizi zinaundwa na Ultralytics LLC.
Toleo la hivi karibuni la mfululizo huu ni YOLOv5. Na, ndio mtindo wa haraka na sahihi zaidi wa kitambulisho cha kitu kwenye soko. Uwezo wa modeli wa kujumuisha data mpya umeboreshwa sana. Pia, ina vipengele vingi vinavyoifanya ifanye vizuri zaidi kuliko marudio ya awali.
YOLOv5 ni nzuri kwa programu za wakati halisi kwa vile inaweza kuchakata picha kwa kasi ya hadi fremu 1000 kwa sekunde kwenye GPU moja.
Katika makala hii, tutaanzisha YOLOv5 na kwenda juu ya maelezo ya maeneo yake ya matumizi.
Safari ya YOLO: Kutoka YOLO hadi YOLOv5
Joseph Redmon et al. awali ilianzisha YOLO, seti ya miundo ya utambuzi wa kitu, mwaka wa 2016. Muundo wa awali wa YOLO unaweza kutambua vitu kwa wakati halisi. Walakini, ilikuwa na usahihi wa chini ikilinganishwa na mifano mingine wakati huo.
Matoleo kadhaa yaliyoboreshwa ya YOLO yalitolewa kwa miaka yote. Na hatimaye, Ultralytics LLC iliunda toleo jipya zaidi la mfululizo wa YOLO, YOLOv5.
YOLOv5 ndio muundo sahihi zaidi na wa haraka zaidi wa kutambua kitu unaopatikana kwa sasa.
Vipengele muhimu
Sanduku za Nanga
YOLOv5 inatabiri visanduku vya kufunga vitu vilivyo kwenye picha kwa kutumia visanduku vya kushikilia. Muundo huu unatabiri ni kipi kati ya visanduku vilivyobainishwa awali vilivyo na uwiano wa vipengele mbalimbali vinavyolingana vyema na kipengee kilicho kwenye picha kwa kutumia visanduku vya kushikilia. Hizi ni masanduku yaliyoainishwa mapema.
Na, huwezesha YOLOv5 kutambua na kupata vipengee kwenye picha kwa usahihi.
Uboreshaji wa data ya Musa
Wakati wa mafunzo, YOLOv5 hutumia njia inayojulikana kama mosaic kuongeza data. Ili kuunda picha mpya za mafunzo, muundo wetu unachanganya kwa nasibu vipande vya picha kadhaa. Kama matokeo, mtindo huo unakuwa thabiti zaidi na wa kutegemewa. Kwa hivyo, inapata kujumlisha kwa data mpya na kupunguza uwekaji kupita kiasi.
Bomba la Kipekee la Mafunzo
Bomba la kipekee la mafunzo ambalo linachanganya kusimamiwa na kujifunza bila kusimamiwa hutumika.
Kwa hivyo, modeli hujifunza kutoka kwa sampuli ndogo na kutumia ingizo lisilo na lebo kwa ufanisi. Hii huongeza utendakazi wa modeli na kuongeza uwezo wake wa kujumuisha mambo mapya.
Tabaka ambazo ni mabaki na zisizo za mabaki
Usanifu wa YOLOv5 unachanganya tabaka ambazo ni mabaki na zisizo za mabaki. Kwa kuruhusu gredi kutiririka katika tabaka, tabaka mabaki husaidia kielelezo katika kujifunza vipengele vigumu. Pia, tabaka zisizo za mabaki hutoa mfano kwa ufahamu wa kina zaidi wa picha ya uingizaji. Matokeo yake, YOLOv5 inaweza kufanya kazi kwa usahihi na kwa ufanisi zaidi.
Jinsi ya kutumia YOLOv5
ufungaji
Usakinishaji wa YOLOv5 unaweza kukamilika haraka kwa kutumia bomba. Pip ni meneja wa kifurushi cha Python. Taratibu za jumla za kusakinisha YOLOv5 ni kama ifuatavyo:
1- Sakinisha PyTorch: Kwa sababu YOLOv5 inategemea mfumo wa PyTorch, lazima kwanza usakinishe PyTorch.
pip install torch torchvision
2. Sakinisha CUDA: Lazima usakinishe CUDA ikiwa unanuia kuendesha YOLOv5 kwenye GPU.
3. Sakinisha YOLOv5: Baada ya kuanzisha PyTorch na CUDA, tumia amri ifuatayo ili kupakua YOLOv5.
pip install yolov5
4-Kufuatia usakinishaji wa YOLOv5, lazima upakue uzani uliofunzwa mapema. Vipimo vilivyofunzwa mapema vinapatikana katika Ultralytics GitHub repo.
Nenda kwenye sehemu ya "uzito" ya tovuti kwa kusogeza chini. Unaweza kupakua uzani uliofunzwa mapema kutoka kwenye orodha unayoweza kupata hapa.
5. Chagua uzani ambao tayari umefunzwa na unafaa zaidi kesi yako ya utumiaji. Seti ya data au toleo mahususi la YOLOv5 ambalo uzani ulijifunza linaweza kutumika kupunguza orodha.
6- Baada ya kuchagua uzani unaofaa, chagua uzani kwa kubofya kitufe cha "Pakua" karibu nayo. Vipimo vitapatikana kwa kupakuliwa kama. faili za pt.
7- Hamisha uzani uliopakuliwa kwenye saraka. Hapa ndipo hati yako ya utambuzi itafanya kazi.
8- Katika hatua hii, unaweza kuendesha utambuzi wa kitu kwenye picha au video zako kwa kutumia uzani uliofunzwa mapema katika hati yako ya utambuzi.
Andaa Takwimu
Lazima uchukue hatua zifuatazo ili kupata data tayari kwa matumizi na YOLOv5:
1. Kusanya data: Hatua ya kwanza ni kukusanya data ya picha au video utakayohitaji utambuzi wa kitu. Vitu unavyotaka kugundua vinapaswa kuwepo kwenye picha au video.
2- Fomati data: Unaweza tu kuingiza picha kwenye hati yako ikiwa unazitumia. Lazima ugeuze video kuwa mfululizo wa picha ikiwa unapanga kutumia moja. Unaweza kutoa viunzi kutoka kwa sinema kwa kutumia maktaba kama OpenCV.
import cv2
img = cv2.imread('path/to/image')
Ukiwa na maktaba ya OpenCV, unaweza kutumia amri ifuatayo kugeuza video kuwa safu ya picha:
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. Weka data lebo: Lazima uweke data lebo ikiwa unatumia mkusanyiko wako wa data. Kuchora visanduku vya kufunga karibu na vipengee unavyotaka kutambua katika kila fremu ya picha. Ni mchakato wa kuweka lebo data. Unaweza kutumia zana kadhaa kukusaidia kufanya kazi hii, ikiwa ni pamoja na LabelImg na RectLabel.
4- Lazima ugawanye data katika seti za mafunzo na majaribio baada ya kuitambulisha. Hii ni muhimu kwa kutathmini jinsi mtindo wako unavyofanya kazi vizuri.
5. Hatimaye, huenda ukahitaji kuchakata data kabla ya mafunzo au majaribio. Hii inaweza kujumuisha kuongeza picha au video, kusawazisha thamani za pikseli, au kutumia mbinu za kuongeza data.
Baada ya kukamilisha hatua hizi, data yako iko tayari.
Endesha hati ya utambuzi
Hapa kuna kielelezo cha hati ya kugundua ambayo inachambua picha na kupata vitu.
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))
Usindikaji wa baada
Ukandamizaji usio wa kiwango cha juu ni mojawapo ya mbinu za mara kwa mara baada ya usindikaji zinazotumiwa katika kutambua kitu (NMS). Tunatumia NMS kuondoa visanduku vya mipaka vinavyopishana kwa kitu kimoja. Ili kutekeleza NMS kwenye ugunduzi, tunaweza kutumia mbinu ya cv2.dnn.NMSBoxes() ya maktaba ya OpenCV.
Huu hapa ni mfano wa jinsi ya baada ya kuchakata ugunduzi kwa kutumia NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
fahirisi = cv2.dnn.NMSBoxes(ugunduzi, siri, conf_thres, nms_thres)
Visualization
Katika kesi ya taswira, tunaweza kutumia tena maktaba kama OpenCV. Tunaweza kuonyesha visanduku vya kufunga karibu na vitu vilivyogunduliwa kwenye picha au video ya chanzo. Ili kuchora visanduku vya kufunga picha, tumia mbinu ya cv2.rectangle(). Hivi ndivyo jinsi ya kutazama ugunduzi kwenye picha asili:
kuingiza cv2
# Draw the bounding boxes on the image
kwa mimi katika fahirisi:
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
matumizi
YOLOv5 ni kielelezo dhabiti cha utambuzi wa kitu. Kwa hivyo, tunaweza kuitumia katika hali nyingi za ulimwengu halisi. Moja ya matumizi maarufu ni katika magari yanayojiendesha. YOLOv5 inaweza kutambua vitu katika muda halisi kama vile magari na taa za trafiki.
Katika mifumo ya uchunguzi, tunaweza kutumia YOLOv5 kutambua na kufuatilia vitu katika mitiririko ya video ya moja kwa moja. Zaidi ya hayo, YOLOv5 inaweza kuwa nyenzo nzuri katika robotiki. Inaweza kusaidia roboti kutambua na kuelewa mazingira yao. Hii ni muhimu sana kwa shughuli kama vile urambazaji na upotoshaji.
YOLOv5 pia inaweza kutumika katika tasnia yoyote inayohitaji utambuzi wa kitu, kama vile rejareja, michezo, matibabu na usalama.
Hitimisho
Hatimaye, YOLOv5 ni toleo la hivi punde na la kisasa zaidi la familia ya YOLO ya utambuzi wa kitu mifano ya
. Pia, ni sawa kusema kuwa ni mfano sahihi zaidi wa kugundua kitu unaopatikana. Shukrani kwa usahihi na kasi yake ya juu, unaweza kuichagua kwa usalama kwa ajili ya miradi yako ya kutambua kitu.
Resky Agus
Ninatengeneza jarida la kwanza kuhusu gari la kugundua na yolov5 na usaidizi huu wa wavuti kutafuta habari kuhusu hilo.
Ninavutiwa sana na AI.
kama unaweza nina maswali mengi kuhusu AI labda unaweza kunisaidia
Asante