Link to this sectionEtiketli Bilgisayarlı Görü Verileri için Veri Ön İşleme Teknikleri#
Link to this sectionGiriş#
Bilgisayarlı görü projenin hedeflerini tanımlayıp verileri toplayıp etiketledikten sonra, bir sonraki adım etiketli verileri ön işlemek ve model eğitimine hazırlamaktır. Temiz ve tutarlı veriler, iyi performans gösteren bir model oluşturmak için hayati öneme sahiptir.
Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀
Ön işleme, bilgisayarlı görü proje iş akışındaki görüntüleri yeniden boyutlandırmayı, piksel değerlerini normalleştirmeyi, veri kümesini çoğaltmayı ve verileri eğitim, doğrulama ve test kümelerine ayırmayı içeren bir adımdır. Verilerini temizlemek için temel teknikleri ve en iyi uygulamaları keşfedelim!
Link to this sectionVeri Ön İşlemenin Önemi#
Verilerimizi zaten dikkatlice topluyor ve birden fazla hususu göz önünde bulundurarak etiketliyoruz. Peki, veri ön işlemeyi bir bilgisayarlı görü projesi için bu kadar önemli kılan nedir? Veri ön işleme, verilerini eğitim için uygun bir formata getirerek hesaplama yükünü azaltmak ve model performansını artırmaya yardımcı olmakla ilgilidir. İşte ön işlemenin ele aldığı ham verilerdeki bazı yaygın sorunlar:
- Gürültü: Verilerdeki alakasız veya rastgele değişiklikler.
- Tutarsızlık: Görüntü boyutlarındaki, biçimlerindeki ve kalitesindeki değişiklikler.
- Dengesizlik: Veri kümesindeki sınıfların veya kategorilerin eşit olmayan dağılımı.
Link to this sectionVeri Ön İşleme Teknikleri#
Veri ön işlemedeki ilk ve en önemli adımlardan biri yeniden boyutlandırmadır. Bazı modeller değişken girdi boyutlarını işlemek üzere tasarlanmıştır, ancak birçok model tutarlı bir girdi boyutu gerektirir. Görüntüleri yeniden boyutlandırmak onları tek tip hale getirir ve hesaplama karmaşıklığını azaltır.
Link to this sectionGörüntüleri Yeniden Boyutlandırma#
Görüntülerini aşağıdaki yöntemleri kullanarak yeniden boyutlandırabilirsin:
- Bilineer İnterpolasyon: En yakın dört piksel değerinin ağırlıklı ortalamasını alarak piksel değerlerini yumuşatır.
- En Yakın Komşu: Ortalamasını almadan en yakın piksel değerini atar, bu da daha bloklu bir görüntüye ancak daha hızlı hesaplamaya yol açar.
Yeniden boyutlandırmayı daha basit bir görev haline getirmek için şu araçları kullanabilirsin:
- OpenCV: Görüntü işleme için kapsamlı işlevlere sahip popüler bir bilgisayarlı görü kütüphanesi.
- PIL (Pillow): Görüntü dosyalarını açmak, işlemek ve kaydetmek için bir Python Görüntüleme Kütüphanesi.
YOLO26 ile ilgili olarak, model eğitimi sırasındaki 'imgsz' parametresi esnek girdi boyutlarına izin verir. Belirli bir boyuta, örneğin 640'a ayarlandığında, model girdi görüntülerini orijinal en-boy oranını korurken en büyük boyutları 640 piksel olacak şekilde yeniden boyutlandırır.
Modelinin ve veri kümenin özel ihtiyaçlarını değerlendirerek, yeniden boyutlandırmanın gerekli bir ön işleme adımı olup olmadığına veya modelinin farklı boyutlardaki görüntüleri verimli bir şekilde işleyip işleyemeyeceğine karar verebilirsin.
Link to this sectionPiksel Değerlerini Normalleştirme#
Bir diğer ön işleme tekniği normalleştirmedir. Normalleştirme, piksel değerlerini standart bir aralığa ölçeklendirir; bu, eğitim sırasında daha hızlı yakınsamaya yardımcı olur ve model performansını artırır. İşte bazı yaygın normalleştirme teknikleri:
- Min-Max Ölçeklendirme: Piksel değerlerini 0 ile 1 arasına ölçeklendirir.
- Z-Skoru Normalleştirmesi: Piksel değerlerini ortalamalarına ve standart sapmalarına göre ölçeklendirir.
YOLO26 ile ilgili olarak, normalleştirme, model eğitimi sırasında ön işleme hattının bir parçası olarak sorunsuz bir şekilde ele alınır. YOLO26, RGB'ye dönüştürme, piksel değerlerini [0, 1] aralığına ölçeklendirme ve önceden tanımlanmış ortalama ve standart sapma değerlerini kullanarak normalleştirme dahil olmak üzere birkaç ön işleme adımını otomatik olarak gerçekleştirir.
Link to this sectionVeri Kümesini Bölme#
Verileri temizlediğinde, veri kümesini bölmeye hazırsın demektir. Verileri eğitim, doğrulama ve test kümelerine ayırma işlemi, modelin genelleme performansını değerlendirmek için görülmemiş veriler üzerinde değerlendirilebilmesini sağlamak için yapılır. Yaygın bir bölme oranı %70 eğitim, %20 doğrulama ve %10 test içindir. Verilerini bölmek için scikit-learn veya TensorFlow gibi çeşitli araçlar ve kütüphaneler kullanabilirsin.
Veri kümeni bölerken şunları göz önünde bulundur:
- Veri Dağılımını Korumak: Sınıfların veri dağılımının eğitim, doğrulama ve test kümelerinde korunduğundan emin ol.
- Veri Sızıntısını Önlemek: Tipik olarak, veri çoğaltma işlemi veri kümesi bölündükten sonra yapılır. Veri çoğaltma ve diğer tüm ön işlemler, doğrulama veya test kümelerinden gelen bilgilerin model eğitimini etkilemesini önlemek için yalnızca eğitim kümesine uygulanmalıdır.
- Sınıfları Dengelemek: Dengesiz veri kümeleri için, eğitim kümesi içindeki azınlık sınıfını aşırı örnekleme veya çoğunluk sınıfını eksik örnekleme gibi teknikleri düşün.
Link to this sectionVeri Çoğaltma Nedir?#
En yaygın tartışılan veri ön işleme adımı veri çoğaltmadır. Veri çoğaltma, görüntülerin değiştirilmiş sürümlerini oluşturarak veri kümesinin boyutunu yapay olarak artırır. Verilerini çoğaltarak aşırı uyumu azaltabilir ve model genellemesini iyileştirebilirsin.
İşte veri çoğaltmanın diğer bazı faydaları:
- Daha Sağlam Bir Veri Kümesi Oluşturur: Veri çoğaltma, modeli girdi verilerindeki varyasyonlara ve bozulmalara karşı daha sağlam hale getirebilir. Buna aydınlatma, yönelim ve ölçek değişiklikleri dahildir.
- Maliyet Etkin: Veri çoğaltma, yeni veriler toplamadan ve etiketlemeden eğitim verisi miktarını artırmanın maliyet etkin bir yoludur.
- Verilerin Daha İyi Kullanımı: Mevcut her veri noktası, yeni varyasyonlar oluşturularak maksimum potansiyeliyle kullanılır.
Link to this sectionVeri Çoğaltma Yöntemleri#
Yaygın çoğaltma teknikleri arasında çevirme, döndürme, ölçeklendirme ve renk ayarlamaları bulunur. Albumentations, Imgaug ve TensorFlow'un ImageDataGenerator'ı gibi birkaç kütüphane bu çoğaltmaları oluşturabilir.
YOLO26 ile ilgili olarak, veri kümesi yapılandırma dosyasını, yani bir .yaml dosyasını değiştirerek özel veri kümeni çoğaltabilirsin. Bu dosyaya, verilerini nasıl çoğaltmak istediğini belirten parametrelerle bir çoğaltma bölümü ekleyebilirsin.
Ultralytics YOLO26 deposu çok çeşitli veri çoğaltmalarını destekler. Aşağıdakiler gibi çeşitli dönüşümler uygulayabilirsin:
- Rastgele Kırpmalar
- Çevirme: Görüntüler yatay veya dikey olarak çevrilebilir.
- Döndürme: Görüntüler belirli açılarla döndürülebilir.
- Bozulma
Ayrıca, daha fazla veri çeşitliliği oluşturmak için bu çoğaltma tekniklerinin yoğunluğunu belirli parametreler aracılığıyla ayarlayabilirsin.
Link to this sectionBir Ön İşleme Örnek Olayı#
YOLO26 kullanarak trafik görüntülerindeki farklı araç türlerini tespit etmek ve sınıflandırmak için bir model geliştirmeyi amaçlayan bir proje düşün. Trafik görüntüleri topladık ve bunları sınırlayıcı kutular (bounding box) ve etiketlerle etiketledik.
Bu proje için ön işlemenin her adımı şöyle görünür:
- Görüntüleri Yeniden Boyutlandırma: YOLO26 esnek girdi boyutlarını işlediği ve yeniden boyutlandırmayı otomatik olarak gerçekleştirdiği için manuel yeniden boyutlandırma gerekli değildir. Model, eğitim sırasında belirtilen 'imgsz' parametresine göre görüntü boyutunu ayarlayacaktır.
- Piksel Değerlerini Normalleştirme: YOLO26, ön işleme sırasında piksel değerlerini otomatik olarak 0 ile 1 arasına normalleştirir, bu yüzden gerekli değildir.
- Veri Kümesini Bölme: Veri kümesini scikit-learn gibi araçlar kullanarak eğitim (%70), doğrulama (%20) ve test (%10) kümelerine ayır.
- Veri Çoğaltma: Veri kümesi yapılandırma dosyasını (.yaml), rastgele kırpmalar, yatay çevirmeler ve parlaklık ayarlamaları gibi veri çoğaltma tekniklerini içerecek şekilde değiştir.
Bu adımlar, veri kümesinin herhangi bir potansiyel sorun olmadan hazırlandığından ve Keşifçi Veri Analizi (EDA) için hazır olduğundan emin olur.
Link to this sectionKeşifçi Veri Analizi Teknikleri#
Veri kümeni ön işleyip çoğalttıktan sonra, bir sonraki adım Keşifçi Veri Analizi yoluyla içgörüler elde etmektir. EDA, verilerindeki kalıpları ve dağılımları anlamak için istatistiksel teknikler ve görselleştirme araçları kullanır. Sınıf dengesizlikleri veya aykırı değerler gibi sorunları tanımlayabilir ve sonraki veri ön işleme veya model eğitimi ayarlamaları hakkında bilinçli kararlar alabilirsin.
Link to this sectionİstatistiksel EDA Teknikleri#
İstatistiksel teknikler genellikle ortalama, medyan, standart sapma ve aralık gibi temel metrikleri hesaplayarak başlar. Bu metrikler, görüntü veri kümenin piksel yoğunluğu dağılımları gibi özellikleri hakkında hızlı bir genel bakış sağlar. Bu temel istatistikleri anlamak, verilerinin genel kalitesini ve özelliklerini kavramana yardımcı olur ve herhangi bir düzensizliği erkenden fark etmeni sağlar.
Link to this sectionGörsel EDA Teknikleri#
Görselleştirmeler, görüntü veri kümeleri için EDA'da anahtardır. Örneğin, sınıf dengesizliği analizi, EDA'nın bir diğer hayati yönüdür. Belirli sınıfların veri kümenizde yeterince temsil edilip edilmediğini belirlemeye yardımcı olur. Farklı görüntü sınıflarının veya kategorilerinin dağılımını çubuk grafikler kullanarak görselleştirmek, herhangi bir dengesizliği hızla ortaya çıkarabilir. Benzer şekilde, aykırı değerler, piksel yoğunluğundaki veya özellik dağılımlarındaki anormallikleri vurgulayan kutu grafikleri gibi görselleştirme araçları kullanılarak tanımlanabilir. Aykırı değer tespiti, olağandışı veri noktalarının sonuçlarını çarpıtmasını önler.
Görselleştirmeler için yaygın araçlar şunlardır:
- Histogramlar ve Kutu Grafikleri: Piksel değerlerinin dağılımını anlamak ve aykırı değerleri tanımlamak için kullanışlıdır.
- Dağılım Grafikleri (Scatter Plots): Görüntü özellikleri veya etiketler arasındaki ilişkileri keşfetmek için yardımcı olur.
- Isı Haritaları (Heatmaps): Piksel yoğunluklarının dağılımını veya görüntüler içindeki etiketli özelliklerin mekansal dağılımını görselleştirmek için etkilidir.
Link to this sectionEDA için Ultralytics Platformunu Kullanma#
Kodsuz bir EDA yaklaşımı için veri kümeni Ultralytics Platformuna yükle. Veri kümesinin Charts sekmesi, yukarıda açıklanan görselleştirmeleri otomatik olarak oluşturur: bölünmüş dağılım, en iyi sınıf sayıları, görüntü genişliği/yüksekliği histogramları ve etiket konumlarının ve görüntü boyutlarının 2B ısı haritaları. Images sekmesi, verilerine ızgara, kompakt veya tablo görünümlerinde etiket kaplamalarıyla göz atmanı sağlayarak tek bir satır kod yazmadan yanlış etiketlenmiş örnekleri veya dengesiz sınıfları fark etmeyi kolaylaştırır.
Link to this sectionUlaş ve Bağlantı Kur#
Projen hakkında diğer bilgisayarlı görü meraklılarıyla tartışmalar yapmak, sana farklı bakış açılarından yeni fikirler verebilir. İşte öğrenmek, sorun gidermek ve ağ kurmak için bazı harika yollar:
Link to this sectionToplulukla Bağlantı Kurmak için Kanallar#
- GitHub Issues: YOLO26 GitHub deposunu ziyaret et ve soru sormak, hataları bildirmek ve özellikler önermek için Issues sekmesini kullan. Topluluk ve sürdürücüler karşılaştığın her türlü sorunda yardımcı olmak için oradalar.
- Ultralytics Discord Sunucusu: Diğer kullanıcılar ve geliştiricilerle bağlantı kurmak, destek almak, bilgi paylaşmak ve fikir alışverişinde bulunmak için Ultralytics Discord sunucusuna katıl.
Link to this sectionResmi Belgeler#
- Ultralytics YOLO26 Dokümantasyonu: Sayısız bilgisayarlı görü görevi ve projesi hakkında kapsamlı kılavuzlar ve değerli içgörüler için resmi YOLO26 dokümantasyonuna başvur.
Link to this sectionVeri Kümen Hazır!#
Düzgün şekilde yeniden boyutlandırılmış, normalleştirilmiş ve çoğaltılmış veriler, gürültüyü azaltarak ve genellemeyi iyileştirerek model performansını artırır. Bu kılavuzda belirtilen ön işleme tekniklerini ve en iyi uygulamaları izleyerek sağlam bir veri kümesi oluşturabilirsin. Ön işlenmiş veri kümen hazır olduğunda, projenin sonraki adımlarına güvenle geçebilirsin.
Link to this sectionSSS#
Link to this sectionBilgisayarlı görü projelerinde veri ön işlemenin önemi nedir?#
Veri ön işleme, verilerin temiz, tutarlı ve model eğitimi için en uygun biçimde olmasını sağladığı için bilgisayarlı görü projelerinde şarttır. Ham verilerdeki gürültü, tutarsızlık ve dengesizlik gibi sorunları ele alarak, yeniden boyutlandırma, normalleştirme, çoğaltma ve veri kümesini bölme gibi ön işleme adımları hesaplama yükünü azaltmaya ve model performansını artırmaya yardımcı olur. Daha fazla ayrıntı için bilgisayarlı görü projesinin adımlarını ziyaret et.
Link to this sectionVeri çoğaltma için Ultralytics YOLO'yu nasıl kullanabilirim?#
Ultralytics YOLO26 ile veri çoğaltma için veri kümesi yapılandırma dosyasını (.yaml) değiştirmen gerekir. Bu dosyada, rastgele kırpmalar, yatay çevirmeler ve parlaklık ayarlamaları gibi çeşitli çoğaltma tekniklerini belirtebilirsin. Bu, burada açıklanan eğitim yapılandırmaları kullanılarak etkili bir şekilde yapılabilir. Veri çoğaltma, daha sağlam bir veri kümesi oluşturmaya, aşırı uyumu azaltmaya ve model genellemesini iyileştirmeye yardımcı olur.
Link to this sectionBilgisayarlı görü verileri için en iyi veri normalleştirme teknikleri nelerdir?#
Normalleştirme, eğitim sırasında daha hızlı yakınsama ve gelişmiş performans için piksel değerlerini standart bir aralığa ölçeklendirir. Yaygın teknikler şunları içerir:
- Min-Max Ölçeklendirme: Piksel değerlerini 0 ile 1 arasına ölçeklendirir.
- Z-Skoru Normalleştirmesi: Piksel değerlerini ortalamalarına ve standart sapmalarına göre ölçeklendirir.
YOLO26 için normalleştirme, RGB'ye dönüştürme ve piksel değeri ölçeklendirme dahil olmak üzere otomatik olarak halledilir. Model eğitimi bölümünde bunun hakkında daha fazla bilgi edin.
Link to this sectionEğitim için etiketli veri kümemi nasıl bölmeliyim?#
Veri kümeni bölmek için yaygın bir uygulama, onu eğitim için %70, doğrulama için %20 ve test için %10 olarak ayırmaktır. Sınıfların veri dağılımını bu bölümler arasında korumak ve çoğaltma işlemini yalnızca eğitim setine uygulayarak veri sızıntısını önlemek önemlidir. Verimli veri kümesi bölme için scikit-learn veya TensorFlow gibi araçlar kullan. Veri kümesi hazırlığı hakkındaki ayrıntılı kılavuza bak.
Link to this sectionYOLO26'da manuel yeniden boyutlandırma olmadan değişen görüntü boyutlarını işleyebilir miyim?#
Evet, Ultralytics YOLO26, model eğitimi sırasında 'imgsz' parametresi aracılığıyla değişen görüntü boyutlarını işleyebilir. Bu parametre, görüntülerin en-boy oranını korurken en büyük boyutlarının belirtilen boyuta (örneğin 640 piksel) uygun şekilde yeniden boyutlandırılmasını sağlar. Daha esnek girdi işleme ve otomatik ayarlamalar için model eğitimi bölümüne göz at.