Téknologi deteksi objék visi komputer penting pisan pikeun seueur aplikasi. Kami nganggo éta dina robotika, alat panjagaan, mobil nyetir mandiri, sareng seueur deui daérah. Lantaran kitu, urang tiasa mendakan sareng mikawanoh hal-hal anu tangtu dina gambar atanapi pidéo.
Salah sahiji nu pang alusna-dipikawanoh Algoritma idéntifikasi obyék nyaéta YOLO (Anjeun Ngan Tingali Sakali) set model. model ieu dijieun ku Ultralytics LLC.
Versi panganyarna tina séri ieu nyaéta YOLOv5. Sareng, éta mangrupikeun modél idéntifikasi obyék anu paling gancang sareng paling tepat dina pasaran. Kapasitas modél pikeun ngageneralisasi kana data énggal parantos ningkat pisan. Ogé, éta ngandung seueur fitur anu ngajantenkeun langkung saé tibatan iterations sateuacana.
YOLOv5 saé pikeun aplikasi sacara real-time sabab tiasa ngolah gambar dina laju dugi ka 1000 pigura per detik dina hiji GPU.
Dina tulisan ieu, urang bakal ngenalkeun YOLOv5 sareng ngémutan rinci ngeunaan daérah aplikasina.
Perjalanan YOLO: Ti YOLO ka YOLOv5
Joseph Redmon et al. mimitina ngenalkeun YOLO, sakumpulan modél idéntifikasi obyék, dina 2016. Modél YOLO awal tiasa ngaidentipikasi objék sacara real waktos. Tapi, éta ngagaduhan akurasi anu rendah upami dibandingkeun sareng modél sanés dina waktos éta.
Sababaraha vérsi YOLO anu ditingkatkeun dileupaskeun sapanjang taun. Tungtungna, Ultralytics LLC nyiptakeun édisi énggal tina séri YOLO, YOLOv5.
YOLOv5 mangrupikeun modél idéntifikasi obyék anu paling akurat sareng panggancangna ayeuna aya.
Fitur penting
Kotak Jangkar
YOLOv5 ngaramalkeun kotak wates pikeun objék dina gambar nganggo kotak jangkar. Model ngaramalkeun mana tina seueur kotak anu tos ditetepkeun sareng sagala rupa rasio aspek anu paling cocog sareng item dina gambar nganggo kotak jangkar. Ieu mangrupikeun kotak anu tos ditetepkeun.
Sareng, aranjeunna ngamungkinkeun YOLOv5 ngakuan sareng mendakan barang-barang dina gambar kalayan akurasi.
augmentation data mosaic
Nalika latihan, YOLOv5 nganggo metode anu katelah mosaik augmentation data. Pikeun ngembangkeun gambar latihan seger, model urang sacara acak ngagabungkeun patch sababaraha poto. Hasilna, modél janten langkung tahan banting sareng diandelkeun. Lantaran kitu, éta kedah ngageneralisasi kana data énggal sareng ngirangan overfitting.
Pipa Pelatihan Unik
A pipa latihan unik nu mixes diawasan jeung diajar henteu diawasan dipaké.
Ku kituna, model diajar tina sampel nu leuwih leutik sarta ngagunakeun input unlabelled éféktif. Ieu ningkatkeun kinerja modél sareng ningkatkeun kapasitasna pikeun ngageneralisasi kana input énggal.
Lapisan anu residual jeung non-residual
Arsitéktur YOLOv5 ngagabungkeun lapisan anu residual sareng non-residual. Ku ngamungkinkeun gradién ngalir ngaliwatan lapisan, lapisan sésa mantuan modél dina diajar fitur hésé. Ogé, lapisan non-residual nyadiakeun model jeung keupeul leuwih komprehensif ngeunaan gambar input. Hasilna, YOLOv5 tiasa beroperasi langkung tepat sareng efektif.
Kumaha Ngagunakeun YOLOv5
parabot nu geus dipasang di tempatna sarta sadia dipake
Pamasangan YOLOv5 tiasa réngsé gancang nganggo pip. Pip mangrupikeun manajer pakét Python. Prosedur umum pikeun masang YOLOv5 nyaéta kieu:
1- Pasang PyTorch: Kusabab YOLOv5 dumasar kana kerangka PyTorch, anjeun kedah masang PyTorch heula.
pip install torch torchvision
2. Install CUDA: Anjeun kudu install CUDA lamun maksudna pikeun ngajalankeun YOLOv5 on GPU a.
3. Pasang YOLOv5: Saatos nyetél PyTorch sareng CUDA, nganggo paréntah di handap ieu pikeun ngundeur YOLOv5.
pip install yolov5
4-Sanggeus pamasangan YOLOv5, anjeun kedah ngaunduh beurat anu tos dilatih. Beurat anu tos dilatih sayogi dina repo Ultralytics GitHub.
Pindah ka bagian "beurat" halaman wéb ku ngagulung ka handap. Anjeun tiasa ngaunduh beurat anu tos dilatih tina daptar anu anjeun tiasa mendakan di dieu.
5. Pilih beurat nu geus dilatih jeung pangalusna cocog kasus pamakéan Anjeun. Dataset atanapi versi YOLOv5 tinangtu anu diajar beurat tiasa dianggo pikeun ngahususkeun daptar.
6- Saatos milih beurat anu pas, pilih beurat ku ngaklik tombol "Unduh" di gigireunana. Beurat bakal sadia pikeun diundeur salaku. file pt.
7- Mindahkeun beurat anu diunduh kana diréktori. Ieu tempat skrip deteksi anjeun bakal beroperasi.
8- Dina titik ieu, anjeun tiasa ngajalankeun deteksi obyék dina poto atanapi video anjeun nganggo beurat anu tos dilatih dina naskah deteksi anjeun.
Nyiapkeun Data
Anjeun kedah ngalakukeun tindakan di handap ieu pikeun nyiapkeun data pikeun dianggo sareng YOLOv5:
1. Kumpulkeun data: Léngkah munggaran nyaéta pikeun ngumpulkeun data gambar atanapi pidéo anu anjeun peryogikeun deteksi obyék. Hal-hal anu anjeun hoyong deteksi kedah aya dina poto atanapi pidéo.
2- Pormat data: Anjeun tiasa ngimpor poto kana skrip anjeun upami anjeun ngagunakeunana. Anjeun kudu ngarobah hiji video kana runtuyan poto lamun rencana ngagunakeun hiji. Anjeun tiasa nimba pigura tina pilem nganggo perpustakaan sapertos OpenCV.
import cv2
img = cv2.imread('path/to/image')
Kalayan perpustakaan OpenCV, anjeun tiasa nganggo paréntah di handap ieu pikeun ngarobih pidéo kana séri gambar:
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. Labél data: Anjeun kedah labél data upami anjeun nganggo set data anjeun. Ngagambar kotak wates sabudeureun item nu Anjeun hoyong identipikasi dina unggal pigura hiji gambar. Nyaéta prosés panyiri data. Anjeun tiasa nganggo sababaraha alat pikeun ngabantosan anjeun dina operasi ieu, kalebet LabelImg sareng RectLabel.
4- Anjeun kedah ngabagi data kana set latihan sareng uji saatos anjeun masihan tag. Ieu penting pisan pikeun meunteun kumaha kinerja model anjeun.
5. Tungtungna, Anjeun bisa jadi kudu preprocess data saméméh latihan atawa nguji. Ieu tiasa nyababkeun skala gambar atanapi pidéo, ngabakukeun nilai piksel, atanapi nganggo metode pikeun ngagedékeun data.
Saatos ngalengkepan léngkah-léngkah ieu, data anjeun parantos siap.
Jalankeun skrip deteksi
Ieu mangrupikeun ilustrasi naskah deteksi anu nganalisa gambar sareng mendakan objék.
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))
Pos-processing
Suprési non-maksimum nyaéta salah sahiji téhnik post-processing anu paling sering dianggo dina deteksi obyék (NMS). Kami nganggo NMS pikeun ngaleungitkeun kotak wates anu tumpang tindih pikeun objék anu sami. Pikeun ngaéksekusi NMS on detections, urang tiasa nganggo cv2.dnn.NMSBoxes () métode OpenCV perpustakaan urang.
Ieu conto kumaha cara masangkeun prosés deteksi nganggo NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
indéks = cv2.dnn.NMSBoxes(deteksi, kapercayaan, conf_thres, nms_thres)
visualisasi
Dina kasus visualisasi, urang tiasa deui nganggo perpustakaan sapertos OpenCV. Urang tiasa nampilkeun kotak wates sabudeureun objék kapanggih dina gambar sumber atawa video. Pikeun ngagambar kotak wates gambar, ngagunakeun cv2.rectangle () métode. Ieu kumaha carana ningali deteksi dina gambar aslina:
impor cv2
# Draw the bounding boxes on the image
pikeun kuring dina indéks:
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
aplikasi
YOLOv5 mangrupikeun modél idéntifikasi objék anu kuat. Lantaran kitu, urang tiasa ngamangpaatkeunana dina seueur skenario dunya nyata. Salah sahiji kagunaan anu pang menonjol nyaéta dina mobil anu nyetir mandiri. YOLOv5 tiasa ngaidentipikasi barang sacara real-time sapertos mobil sareng lampu lalu lintas.
Dina sistem panjagaan, urang tiasa nganggo YOLOv5 pikeun mikawanoh sareng ngalacak objék dina aliran video langsung. Saterusna, YOLOv5 tiasa janten asset hébat dina robotics. Éta tiasa ngabantosan robot ngadeteksi sareng ngartos lingkunganana. Ieu penting pisan pikeun kagiatan sapertos navigasi sareng manipulasi.
YOLOv5 ogé tiasa dianggo dina industri naon waé anu peryogi deteksi objék, sapertos ritel, olahraga, médis, sareng kaamanan.
kacindekan
Tungtungna, YOLOv5 mangrupikeun versi anu paling anyar sareng canggih tina kulawarga YOLO deteksi obyék model
. Ogé, éta adil pikeun nyebutkeun yén éta téh modél deteksi objék paling akurat sadia. Hatur nuhun kana akurasi sareng kacepetan anu luhur, anjeun tiasa aman milih éta pikeun proyék deteksi obyék anjeun.
Resky Agus
Kuring nyieun jurnal munggaran ngeunaan wahana deteksi kalawan yolov5 na web ieu mantuan kuring pikeun neangan informasi ngeunaan éta.
Abdi resep pisan ngeunaan AI.
Upami anjeun tiasa gaduh seueur patarosan ngeunaan AI panginten anjeun tiasa ngabantosan kuring
Hatur nuhun