Teknologi deteksi objek visi komputer sangat penting untuk berbagai aplikasi. Kami menggunakannya dalam robotika, peralatan pengawasan, mobil self-driving, dan banyak lagi area lainnya. Karenanya, kita dapat menemukan dan mengenali hal-hal tertentu dalam gambar atau video.
Salah satu yang paling terkenal algoritma identifikasi objek adalah YOLO (Anda Hanya Melihat Sekali) kumpulan model. Model-model ini dibuat oleh Ultralitik LLC.
Versi terbaru dari seri ini adalah YOLOv5. Dan, ini adalah model identifikasi objek tercepat dan paling tepat di pasaran. Kapasitas model untuk menggeneralisasi data baru telah sangat ditingkatkan. Juga, ini berisi banyak fitur yang membuatnya tampil lebih baik daripada iterasi sebelumnya.
YOLOv5 sangat bagus untuk aplikasi waktu nyata karena dapat memproses gambar dengan kecepatan hingga 1000 bingkai per detik pada satu GPU.
Pada artikel ini, kami akan memperkenalkan YOLOv5 dan membahas detail area aplikasinya.
Perjalanan YOLO: Dari YOLO ke YOLOv5
Joseph Redmon dkk. awalnya memperkenalkan YOLO, satu set model identifikasi objek, pada tahun 2016. Model awal YOLO dapat mengidentifikasi objek secara real time. Namun, akurasinya rendah jika dibandingkan dengan model lain pada masa itu.
Beberapa versi YOLO yang ditingkatkan dirilis sepanjang tahun. Dan terakhir, Ultralytics LLC membuat edisi terbaru dari seri YOLO, YOLOv5.
YOLOv5 adalah model identifikasi objek paling akurat dan tercepat yang tersedia saat ini.
Fitur Penting
Kotak Jangkar
YOLOv5 memprediksi kotak pembatas untuk objek dalam gambar menggunakan kotak jangkar. Model memprediksi mana dari banyak kotak yang ditentukan sebelumnya dengan berbagai rasio aspek yang paling cocok dengan item dalam gambar menggunakan kotak jangkar. Ini adalah kotak yang telah ditentukan sebelumnya.
Dan, mereka memungkinkan YOLOv5 mengenali dan menemukan item dalam gambar dengan akurat.
Augmentasi data mosaik
Saat pelatihan, YOLOv5 menggunakan metode yang dikenal sebagai mosaik augmentasi data. Untuk mengembangkan gambar pelatihan yang baru, model kami secara acak menggabungkan tambalan dari beberapa foto. Akibatnya, model menjadi lebih tangguh dan dapat diandalkan. Oleh karena itu, dapat menggeneralisasi data baru dan mengurangi overfitting.
Jalur Pelatihan yang Unik
Saluran pelatihan unik yang menggabungkan pengawasan dan belajar tanpa pengawasan digunakan.
Dengan demikian, model belajar dari sampel yang lebih kecil dan memanfaatkan masukan yang tidak berlabel secara efektif. Ini meningkatkan kinerja model dan meningkatkan kapasitasnya untuk menggeneralisasi input baru.
Lapisan yang bersifat residual dan non-residual
Arsitektur YOLOv5 menggabungkan lapisan yang bersifat residual dan non-residual. Dengan membiarkan gradien mengalir melintasi lapisan, lapisan sisa membantu model dalam mempelajari fitur yang sulit. Selain itu, lapisan non-residual memberi model pemahaman gambar input yang lebih komprehensif. Alhasil, YOLOv5 dapat beroperasi lebih presisi dan efektif.
Cara Menggunakan YOLOv5
Instalasi
Instalasi YOLOv5 dapat diselesaikan dengan cepat menggunakan pip. Pip adalah manajer paket Python. Prosedur umum untuk menginstal YOLOv5 adalah sebagai berikut:
1- Instal PyTorch: Karena YOLOv5 didasarkan pada kerangka kerja PyTorch, Anda harus menginstal PyTorch terlebih dahulu.
pip install torch torchvision
2. Instal CUDA: Anda harus menginstal CUDA jika ingin menjalankan YOLOv5 pada GPU.
3. Instal YOLOv5: Setelah menyiapkan PyTorch dan CUDA, gunakan perintah berikut untuk mengunduh YOLOv5.
pip install yolov5
4-Setelah penginstalan YOLOv5, Anda harus mengunduh bobot yang telah dilatih sebelumnya. Bobot yang telah dilatih sebelumnya tersedia di repo Ultralytics GitHub.
Buka bagian "bobot" situs web dengan menggulir ke bawah. Anda dapat mengunduh bobot pra-latihan dari daftar yang dapat Anda temukan di sini.
5. Pilih bobot yang sudah terlatih dan paling sesuai dengan kasus penggunaan Anda. Kumpulan data atau versi YOLOv5 tertentu yang dipelajari bobotnya dapat digunakan untuk mempersempit daftar.
6- Setelah memilih bobot yang tepat, pilih bobot dengan mengklik tombol "Unduh" di sebelahnya. Bobot akan tersedia untuk diunduh sebagai. file pt.
7- Transfer bobot yang diunduh ke direktori. Di sinilah skrip deteksi Anda akan beroperasi.
8- Pada titik ini, Anda dapat menjalankan deteksi objek pada foto atau video Anda menggunakan bobot yang telah dilatih sebelumnya dalam skrip deteksi Anda.
Siapkan Datanya
Anda harus melakukan tindakan berikut untuk menyiapkan data agar dapat digunakan dengan YOLOv5:
1. Kumpulkan data: Langkah pertama adalah mengumpulkan data gambar atau video yang Anda perlukan deteksi objek. Hal-hal yang ingin Anda deteksi harus ada di foto atau video.
2- Format data: Anda hanya dapat mengimpor foto ke dalam skrip Anda jika Anda menggunakannya. Anda harus mengubah video menjadi rangkaian foto jika berencana menggunakannya. Anda dapat mengekstrak bingkai dari film menggunakan pustaka seperti OpenCV.
import cv2
img = cv2.imread('path/to/image')
Dengan pustaka OpenCV, Anda dapat menggunakan perintah berikut untuk mengubah video menjadi rangkaian 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. Beri label pada data: Anda harus memberi label pada data jika menggunakan kumpulan data. Menggambar kotak pembatas di sekitar item yang ingin Anda identifikasi di setiap bingkai gambar. Ini adalah proses pelabelan data. Anda dapat menggunakan beberapa alat untuk membantu Anda dengan operasi ini, termasuk LabelImg dan RectLabel.
4- Anda harus membagi data menjadi set pelatihan dan pengujian setelah Anda menandainya. Ini penting untuk menilai seberapa baik performa model Anda.
5. Terakhir, Anda mungkin perlu melakukan praproses data sebelum pelatihan atau pengujian. Ini dapat memerlukan penskalaan gambar atau video, standarisasi nilai piksel, atau menggunakan metode untuk augmentasi data.
Setelah menyelesaikan langkah-langkah ini, data Anda sudah siap.
Jalankan skrip deteksi
Berikut adalah ilustrasi skrip deteksi yang menganalisis gambar dan menemukan objek.
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))
Pengolahan pasca
Penekanan non-maksimum adalah salah satu teknik pasca-pemrosesan yang paling sering digunakan dalam deteksi objek (NMS). Kami menggunakan NMS untuk menghilangkan kotak pembatas yang tumpang tindih untuk objek yang sama. Untuk mengeksekusi NMS pada pendeteksian, kita dapat menggunakan metode cv2.dnn.NMSBoxes() library OpenCV.
Berikut adalah contoh cara melakukan post-process detection menggunakan NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
indeks = cv2.dnn.NMSBoxes(deteksi, rahasia, conf_thres, nms_thres)
Visualisasi
Dalam hal visualisasi, kita dapat kembali menggunakan pustaka seperti OpenCV. Kami dapat menampilkan kotak pembatas di sekitar objek yang ditemukan pada gambar atau video sumber. Untuk menggambar kotak pembatas gambar, gunakan metode cv2.rectangle(). Berikut cara melihat pendeteksian pada gambar asli:
impor cv2
# Draw the bounding boxes on the image
untuk I dalam indeks:
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 adalah model identifikasi objek yang kuat. Oleh karena itu, kita dapat memanfaatkannya dalam banyak skenario dunia nyata. Salah satu kegunaan yang paling menonjol adalah pada mobil self-driving. YOLOv5 dapat mengidentifikasi item secara real-time seperti mobil dan lampu lalu lintas.
Dalam sistem pengawasan, kita dapat menggunakan YOLOv5 untuk mengenali dan melacak objek dalam aliran video langsung. Selain itu, YOLOv5 bisa menjadi aset besar dalam robotika. Ini dapat membantu robot mendeteksi dan memahami lingkungan mereka. Ini sangat penting untuk aktivitas seperti navigasi dan manipulasi.
YOLOv5 juga dapat digunakan dalam industri apa pun yang membutuhkan deteksi objek, seperti ritel, olahraga, medis, dan keamanan.
Kesimpulan
Terakhir, YOLOv5 adalah versi terbaru dan canggih dari keluarga YOLO deteksi objek model
. Juga, wajar untuk mengatakan bahwa ini adalah model deteksi objek paling akurat yang tersedia. Berkat akurasi dan kecepatannya yang tinggi, Anda dapat memilihnya dengan aman untuk proyek deteksi objek Anda.
Resky Agus
Saya membuat jurnal pertama tentang deteksi kendaraan dengan yolov5 dan web ini membantu saya untuk mencari informasi tentang itu.
Saya sangat tertarik dengan AI.
jika Anda dapat saya memiliki banyak pertanyaan tentang AI mungkin Anda dapat membantu saya
Terima kasih