YOLOv8'in görüntü tanıma özelliği olağanüstüdür ancak modeli eğitmek, gözden kaçırmamanız gereken önemli bir görevdir.
YOLOv8, nesne algılama alanında yaygın olarak kullanılan gerçek zamanlı bir nesne algılama algoritmasıdır. Ultralytics tarafından geliştirilen Yalnızca Bir Kez Bakarsınız (YOLO) serisinin bir parçasıdır. Algoritma, görüntüleri ve videolardaki örnekleri izler, algılar, bölümlere ayırır, pozu tahmin eder ve nesneleri sınıflandırır. Önceki algoritmalarından daha hızlı ve daha doğru olmayı hedefliyor.
CIFAR-10 ve CIFAR-100 gibi deneysel veri kümelerinde YOLOv8 kullanmak, Kavram Kanıtı (POC) projeleri için, özelleştirilmiş veri kümeleri gerektiren gerçek dünya veri kümelerine göre genellikle daha kolaydır.
Bu öğretici, YOLOv8'i özel veriler üzerinde eğitme adımlarında size yol gösterecektir.
Python Ortamını Kurma
Aşağıdaki talimatları izleyerek proje için geliştirme ortamını kurarak başlayın.
- Terminale gidin ve adında yeni bir dizin oluşturun. yolov8 projesi:
mkdir yolov8project
- Proje dizinine gidin ve sanal ortam oluşturmak:
cd yolov8 projesi
piton -m venv ortamı - Ardından sanal ortamı etkinleştirin.
Kodunuzu çalıştırmak için, nesne algılama ve görüntü bölümlemeye yönelik bir kitaplık olan Ultralytics'i yüklemeniz gerekir. Aynı zamanda bir YOLOv8 bağımlılığıdır. Yükle pip kullanarak aşağıdaki komutu çalıştırarak.# Windows'ta
env/Komut Dosyaları/etkinleştir# Linux / macOS'ta
kaynak env/bin/etkinleştirpip kurulumu ultralytics
- Bu komut, YOLOv8'in önceden eğitilmiş modelini kurar, yolov8n.pt. YOLOv8 kullanarak sırasıyla seçtiğiniz görüntü veya video üzerinde önceden eğitilmiş ağırlıklarla bir algılama yapmak için aşağıdaki komutları çalıştırarak modeli test edin.
Her şey mükemmel çalışırsa, sonuçlar yolov8 projesi dizindeki çalışır/algılar/exp alt dizin.#görüntü algılama
yolo görev=algılama modu=tahmin modeli=yolov8n.pt kaynak="yol/to/image.png"#video algılama
yolo görev=algılama modu=tahmin modeli=yolov8n.pt kaynak="yol/to/video.mp4"
Özel Veri Kümenizin Hazırlanması
Özel veri kümenizi hazırlama adımları arasında veri toplama, veri etiketleme ve veri bölme (eğitim, test, doğrulama) yer alır.
Veri toplama
Bu, algılamak istediğiniz nesneleri içeren bir dizi görüntüyü toplama işlemidir. Odaklanmış ve nesnelerin açıkça görülebildiği yüksek kaliteli görüntüler kullandığınızdan emin olun. Görüntü toplamak için Google Görseller, Flickr veya kendi kameranız gibi çeşitli araçlar kullanabilirsiniz. Bir görüntü veri kümeniz yoksa, açık resimler veri tabanı. Bu makale şantiye güvenlik görselini kullanacak Kaggle'dan veri seti.
Veri Etiketleme
Resimlerinizi topladıktan sonra, onları etiketlemeniz gerekir. Bu, her görüntüdeki nesneleri ve bunların sınırlayıcı kutularını tanımlamak anlamına gelir. Verilerinizi etiketlemenize yardımcı olacak, LabelImg, CVAT ve Roboflow. Bu araçların tümü ücretsizdir.
Verileri Bölme
Makine öğrenimi modellerini eğitmek için verilerinizi eğitim ve test kümelerine ayırmanız gerekir. Büyük miktarda veri kullanırken %70 - %30'luk bir bölme oranı kullanmayı deneyin. Aksi takdirde, modelinizin gereğinden fazla veya eksik uymasını önlemek için %80 - %20'ye sadık kalın.
Kullanmak bölünmüş klasörler, verilerinizi istediğiniz bölme oranıyla tren, test ve doğrulama kümelerine rastgele bölmek için.
Veri Kümeniz için YOLOv8'i Yapılandırma
Verilerinizi etiketledikten sonra, özel veri kümeniz için YOLOv8'i yapılandırmaya devam edin. Bu, aşağıdakileri belirten bir yapılandırma dosyası oluşturmayı içerir:
- Egzersiz verilerinize giden yol.
- Doğrulama verilerinizin yolu.
- Tespit etmek istediğiniz sınıfların sayısı.
Yapılandırmayı depolamak için bir config.yaml dosyası oluşturun:
yol:(veri kümesidizinyol)
tren:(trenveri kümesidosyayol)
Ölçek:(Ölçekveri kümesidosyayol)
geçerli:(doğrulamaveri kümesidosyayol)# sınıflar
yok:5# veri kümenizin sınıf sayısına göre değiştirin
# Sınıf isimleri
# tüm sınıf adlarını kendi sınıflarınızın adlarıyla değiştirin
isimler:['1. sınıf','sınıf 2',"sınıf3",'4. Sınıf',"sınıf5"]
Konfigürasyon dosyasını oluşturmak, bilgisayarlı görü modeliniz için önemli parametreleri yapılandırmak ve depolamak için yararlı bir yoldur. config.yaml dosyasını veri kümenizin doğasına ve yapısına göre güncellediğinizden emin olun.
Modeli eğitmek tamamen yapılandırma dosyasına bağlı olduğundan, veri kümeleriniz için doğru yolları kullandığınızdan emin olun.
Özel Veriler Üzerine YOLOv8 Eğitimi
Yapılandırma dosyasını oluşturduktan sonra YOLOv8'i eğitmeye başlayın. Modelinizi eğitmek için YOLOv8 komut satırı aracını kullanın. Komut satırı aracı, yapılandırma dosyasının yolu, dönem sayısı ve görüntü boyutu gibi birkaç parametreyi aşağıdaki gibi alır:
yolo görev=algılama modu=tren modeli=yolov8n.pt data=yol/to/config.yaml epochs=10 imgsz=640
Bu komutun birkaç bölümü vardır.
görev görev türünü ayarlar: algılama, segmentlere ayırma veya sınıflandırma. mod bir eylemi temsil eder: eğit, tahmin et, val, dışa aktar, izle veya kıyasla. modeli bu durumda kullanılacak model yolov8n.pt'dir. Yolov8s/yolov8l/yolov8x'i de kullanabilirsiniz.
çağlar eğitim turlarının sayısını temsil eder (10). imgsz görüntü boyutunu (640) temsil eder. Görüntü boyutu her zaman 32'nin katı olarak ayarlanmalıdır.
İşte beklediğiniz çıktıya bir örnek:
Eğitim için kullanılan süre, veri kümenizin boyutuna, çağ sayısına ve algılamak istediğiniz sınıf sayısına bağlıdır. Eğitim süreci tamamlandığında, görüntü ve videolardaki nesneleri algılamak için kullanacağınız eğitimli bir YOLOv8 modeline sahip olacaksınız.
Eğitim tamamlandıktan sonra, yeni ağırlıklar best.pt ile çıkarım yapın
yolo task=algılama modu=predict model="runs/train/weights/best.pt" source="image.png"
Şuraya git: run/train/exp/weights/best.pt özel olarak eğitilmiş ağırlıklara erişmek için dizin. YOLOv8 tahmin edilen görüntüyü çalışır/algılar/exp alt dizin.
Modelin Performansını Değerlendirme
Modeli bir dizi test görüntüsü üzerinde değerlendiren aşağıdaki komutu kullanarak YOLOv8 modelinin performansını değerlendirebilirsiniz:
yolo val model=yolov8n.pt data=yol/to/config.yaml toplu işi=1 imgsz=640
Beklenen sonuçlar aşağıdaki gibidir:
Değerlendirme süreci, kesinlik, hatırlama ve F1 puanı gibi çeşitli ölçümler üretecektir. Kesinlik metriği, doğru şekilde algılanan nesnelerin yüzdesini ölçer. Geri çağırma metriği, YOLOv8'in algıladığı nesnelerin yüzdesini ölçer. F1 puanı, kesinlik ve hatırlama ölçütlerinin ağırlıklı ortalamasıdır.
Özel YOLOv8 Modelinizi Dağıtma
YOLOv8 modelinizin performansını test edin.
yolo algılama tahmin modeli=yol/to/best.pt kaynak='yol/to/image.jpg'
Çıktı aşağıdaki gibidir:
Ardından, modelin ağırlıklarını bir dosyaya kaydedin.
yolo dışa aktarma modeli=yol/to/best.pt biçimi=onnx
Modeli uygulamanıza yüklemek için dosyayı kullanın ve nesneleri gerçek zamanlı olarak algılamak için kullanın. Modeli bir Bulut hizmeti, hizmetteki resimlerdeki ve videolardaki nesneleri algılamak için bulut hizmetini kullanın.
YOLOv8 Paket Servisi
Ultralytics ekibi, YOLO serisi modelleri sürekli olarak iyileştirmiştir. Bu, onları nesne algılama teknolojisinde ve bilgisayar görüşü alanında endüstri lideri yaptı.
YOLOv8, birçok türde bilgisayarlı görü projesini yönetmek için kullanabileceğiniz geliştirilmiş bir modeldir.