YOLO kameradaki insanı ve arabayı buluyor, ancak kendi ürün ambalajınızı tanımıyor mu? Önceden eğitilmiş bir modelin çıktıları, öğrenilmiş sınıflarla sınırlıdır. Şişe tespit edebilmesi, sizin markanıza ait belirli bir şişeyi ayrı sınıf olarak tanıyabileceği anlamına gelmez. Böyle bir hedef için özel sınıflar ve bu sınıfları temsil eden bir veri seti gerekir.
Bu rehberde “kırmızı kapaklı ürün kutusu” adıyla örnek bir sınıf kullanacağız. Amacımız görüntüde bu nesnenin konumunu kutuyla belirlemek, yani nesne tespiti yapmaktır. Görselin tamamına etiket verme, nesneyi sayma veya ambalaj üzerindeki yazıyı okuma farklı tasarım ihtiyaçları doğurabilir.
Önce neyi tespit edeceğinizi tanımlayın
Sınıf tanımını veri toplamadan önce yazın. Aynı ürünün hasarlı ambalajı aynı sınıfta mı olacak? Arka yüzü görünen kutu etiketlenecek mi? Birbirine çok benzeyen iki ürün ayrılacak mı? Etiketleyen kişiler bu sorulara farklı yanıt verirse veri seti kendi içinde tutarsızlaşır.
Örnek projemizde yalnızca belirli bir ürün kutusunu tespit etmek istiyorsak tek bir hedef sınıfla başlayabiliriz. Her barkodu veya her ambalaj varyasyonunu ayrı sınıf yapmak ise çok daha ayrıntılı bir veri planı gerektirir. İş hedefini etiket sayısına dönüştürmeden önce görüntüden hangi kararın verileceğini netleştirin.
Gerçek kullanım koşullarını fotoğraflara taşıyın
Yalnızca stüdyo fotoğraflarıyla veri toplamak, modelin depoda veya mağazada karşılaşacağı görüntüleri temsil etmeyebilir. Ürünü farklı uzaklık, açı ve ışıkta kaydedin. Kısmi kapanma, yansıma, raf kalabalığı ve kamera hareketi gibi kullanım koşullarını veri toplama planına ekleyin.
Hedef nesnenin bulunmadığı görüntüler de değerlendirme açısından önemlidir. Benzer renkli kutular, boş raflar veya farklı ambalajlar modelin yanlış alarm davranışını görmenize yardımcı olur. İzin ve kullanım hakkı bulunan görüntülerle çalışın; kişisel veri içeren sahneler için kurumun veri işleme kurallarını uygulayın.
YOLO etiket formatını doğru kurun
Ultralytics YOLO nesne tespiti formatında her nesne için sınıf kimliği ile kutu merkezi ve boyutları yazılır. Koordinatlar görüntü boyutuna göre 0 ile 1 aralığına normalize edilir. Sınıf kimlikleri sıfırdan başlar. Aşağıdaki tek satır, sınıfı 0 olan bir nesnenin örnek etiketidir.
0 0.5 0.5 0.4 0.6
Bu örnekte kutunun merkezi görüntünün ortasındadır. Kutu genişliği görüntü genişliğinin yüzde 40’ı, yüksekliği görüntü yüksekliğinin yüzde 60’ıdır. Değerler örnektir ve gerçek bir ürünün ölçümünü temsil etmez. Etiketleri dışa aktardıktan sonra görüntü üzerine çizdirerek yerleşimini kontrol edin.
1000 × 800 piksellik bir görüntüde sol üst köşesi (300, 160), sağ alt köşesi (700, 640) olan kutu bu etiketi üretir. Merkez (500, 400), genişlik 400, yükseklik 480 pikseldir. X değerlerini 1000’e, Y değerlerini 800’e bölmek normalize koordinatları verir.
Eğitim ve değerlendirme görüntülerini bağımsız ayırın
Aynı videonun peş peşe gelen karelerini rastgele eğitim ve test kümelerine dağıtmak, birbirine çok benzeyen sahneleri iki tarafta da bulundurabilir. Bu durumda test, modelin farklı koşullara ne kadar genellendiğini yeterince göstermeyebilir. Çekim oturumu, kamera veya fiziksel konum gibi ayrımları veri planında kullanın.
Eğitim kümesi modelin öğrenmesi, doğrulama kümesi ayarların değerlendirilmesi, test kümesi ise son kontrol için ayrılabilir. Her proje için geçerli tek bir görüntü sayısı veya bölme oranı yoktur. Başlangıçta ayrılmış bir pilot veriyle çalışıp hataları incelemek, hangi sahnelerden yeni görüntü gerektiğini belirlemenize yardımcı olur.
Basit bir veri seti yapılandırması
Aşağıdaki YAML örneğinde görüntüler images/train, images/val ve images/test klasörlerinde tutulur. Etiketler, buna karşılık gelen labels/train, labels/val ve labels/test klasörlerinde aynı dosya köküyle bulunmalıdır. path alanını kendi veri seti kökünüze göre düzenleyin.
path: /data/urun_kutusu
train: images/train
val: images/val
test: images/test
names:
0: kirmizi_kapakli_kutu
Örneğin images/train/kutu_001.jpg dosyasının nesne etiketleri labels/train/kutu_001.txt içinde yer alır. Her görüntüde hedef sınıfa ait görünen nesneleri etiketleme kuralınıza göre tutarlı biçimde işaretleyin. Dosya yollarını, sınıf kimliklerini ve bozuk görüntüleri eğitime başlamadan kontrol edin.
Veri seti oluşturmayı Python ile eğitim ve performans değerlendirme adımlarına bağlamak isteyen ekipler YOLO ile Görüntüden Nesne Tanıma Eğitimi içeriğini inceleyebilir. Özel nesne senaryonuzu ve mevcut örnek görüntülerinizi önceden tanımlamak, öğrenilecek adımları somut bir uygulamaya bağlar.
Model nesneyi hâlâ bulamıyorsa neyi incelemelisiniz?
Önce kullanılan model dosyasının özel eğitimin çıktısı olduğunu doğrulayın. Ardından sınıf sırasını, etiketlerin görüntüyle eşleşmesini ve nesnenin görüntüde yeterince seçilip seçilemediğini inceleyin. Güven eşiği de görünen tahminleri etkiler. Eşiği düşürmek inceleme için yararlı olabilir, ancak yanlış alarmları da artırabilir.
Kaçırılan nesneleri ve yanlış tespitleri ayrı gruplarda toplayın. Hatalar belirli ışıkta yoğunlaşıyorsa o koşulu temsil eden veri ekleyin. Kutular tutarsızsa etiketleme kuralını düzeltin. Precision, recall ve mAP gibi ölçümleri birlikte değerlendirin; bunları gerçek kullanım senaryosundaki hata örnekleriyle tamamlayın.
Sık sorulan sorular
Özel nesne için kaç fotoğraf gerekir?
Tek bir sayı vermek doğru değildir. Nesnenin görünüm çeşitliliği, sınıfların benzerliği ve kullanım ortamı ihtiyacı değiştirir. Sabit bir sayıyı hedeflemek yerine bağımsız değerlendirme sonuçlarına göre veri ekleyin.
Daha uzun eğitim her zaman daha iyi sonuç verir mi?
Hayır. Veri kalitesi ve değerlendirme düzeni bozuksa eğitim süresini uzatmak sorunu çözmez. Önce hata örneklerini ve doğrulama sonuçlarını incelemek gerekir.
Teknik kaynaklar
Ultralytics nesne tespiti veri seti formatı ve model değerlendirme rehberi.
