YOLO-World ile uygulamalı pratik
Metin istemleri aracılığıyla nesneleri tanımlayabilen yenilikçi bir nesne algılama modeli olan YOLO-World hakkında bilgi edin. YOLO-World'ün nasıl çalıştığını ve uygulamalarını keşfet ve hızlı bir kod örneğiyle uygulamalı pratik yap.

Bilgisayarlı görü projeleri genellikle veri etiketleme ve nesne algılama modellerini eğitmek için çok zaman harcamayı gerektirir. Ancak bu durum yakında geçmişte kalabilir. Tencent’in AI Lab ekibi, 31 Ocak 2024 tarihinde gerçek zamanlı, açık sözcüklü bir nesne algılama modeli olan YOLO-World modelini yayınladı. YOLO-World sıfır örnekli (zero-shot) bir modeldir, yani nesne algılama çıkarımlarını modeli eğitmenize gerek kalmadan görüntüler üzerinde çalıştırabilirsiniz.
Sıfır örnekli modeller, bilgisayarlı görü uygulamalarına yaklaşımımızı değiştirme potansiyeline sahiptir. Bu blog yazısında, YOLO-World’ün nasıl çalıştığını ve potansiyel kullanım alanlarını keşfedecek, ayrıca başlamana yardımcı olacak pratik bir kod örneği paylaşacağız.
Link to this sectionYOLO-World'e kısa bir bakış#
YOLO-World modeli aracılığıyla bir görüntü ve aradığın nesneleri tanımlayan bir metin istemi girebilirsin. Örneğin, bir fotoğrafın içinde "kırmızı gömlek giyen bir kişi" bulmakla ilgileniyorsan, YOLO-World bu girdiyi alır ve çalışmaya başlar.
Modelin benzersiz mimarisi üç ana öğeyi birleştirir:
- Görüntüdeki görsel içeriği analiz etmek için Ultralytics YOLOv8 nesne algılama modelini temel alan bir dedektör.
- Metin istemini anlamak için özel olarak tasarlanmış, OpenAI’ın CLIP modeli tarafından önceden eğitilmiş bir metin kodlayıcı.
- İşlenmiş görüntü verilerini metin verileriyle bütünleştiren bir ağ: Vision-Language Path Aggregation Network (RepVL-PAN).
YOLO dedektörü, potansiyel nesneleri tanımlamak için girdi görüntünü tarar. Metin kodlayıcı, tanımını modelin anlayabileceği bir biçime dönüştürür. Bu iki bilgi akışı daha sonra çok seviyeli çapraz modalite füzyonu kullanılarak RepVL-PAN aracılığıyla birleştirilir. Bu, YOLO-World’ün isteminde tanımladığın nesneleri görüntü içinde hassas bir şekilde algılamasını ve konumlandırmasını sağlar.

YOLO-World sonuçlarına bir örnek.
Link to this sectionYOLO-World’ü seçmenin avantajları#
YOLO-World kullanmanın en büyük avantajlarından biri, modeli belirli bir sınıf için eğitmek zorunda olmamandır. Görüntü ve metin çiftlerinden zaten öğrenmiştir, bu yüzden tanımlara dayanarak nesneleri nasıl bulacağını bilir. Saatlerce veri toplama, verileri etiketleme, pahalı GPU'lar üzerinde eğitim yapma gibi süreçlerden kaçınabilirsin.
YOLO-World kullanmanın diğer bazı avantajları şunlardır:
- Gerçek Zamanlı Performans - YOLO-World, tıpkı orijinal YOLO mimarisi gibi gerçek zamanlı performansı destekler. Otonom araçlar ve gözetim sistemleri gibi anlık nesne algılama gerektiren uygulamalar için idealdir.
- Örnek Bölütleme - YOLO-World, bu nesneler eğitimi sırasında özel olarak öğretilmese bile resimlerdeki nesneleri düzgün bir şekilde çizebilir ve ayırabilir.
- Verimlilik - YOLO-World, yüksek doğruluğu hesaplama verimliliği ile birleştirir, bu da onu gerçek dünya uygulamaları için pratik hale getirir. Sadeleştirilmiş mimarisi, işlem gücünden aşırı talep etmeden hızlı nesne algılamayı mümkün kılar.
Link to this sectionYOLO-World'ün uygulama alanları#
YOLO-World modelleri çok çeşitli uygulamalar için kullanılabilir. Bunlardan bazılarını keşfedelim.
Link to this sectionÜretimde kalite kontrol#
Bir montaj hattında üretilen ürünler, paketlenmeden önce kusurlara karşı görsel olarak kontrol edilir. Kusur tespiti genellikle elle yapılır, bu zaman alır ve hatalara yol açabilir. Bu hatalar, yüksek maliyetler ve onarım veya geri çağırma ihtiyacı gibi sorunlara neden olabilir. Buna yardımcı olmak için, bu kontrolleri gerçekleştirmek üzere özel makine görme kameraları ve AI sistemleri oluşturulmuştur.
YOLO-World modelleri bu alanda büyük bir ilerlemedir. Sıfır örnekli yeteneklerini kullanarak, o belirli sorun için eğitilmediklerinde bile ürünlerdeki kusurları bulabilirler. Örneğin, su şişeleri üreten bir fabrika, YOLO-World kullanarak düzgün kapatılmış bir şişe kapağı ile kapağı eksik veya hatalı bir şişeyi kolayca ayırt edebilir.

Şişe kapağı denetimi örneği.
Link to this sectionRobotik#
YOLO-World modelleri, robotların yabancı ortamlarda etkileşime girmesini sağlar. Bir odada bulunabilecek belirli nesneler üzerinde eğitilmelerine gerek kalmadan, hangi nesnelerin mevcut olduğunu yine de tanımlayabilirler. Yani, bir robotun daha önce hiç bulunmadığı bir odaya girdiğini varsayalım. Bir YOLO-World modeli ile, bu nesneler üzerinde özel olarak eğitilmemiş olsa bile sandalye, masa veya lamba gibi nesneleri yine de tanıyıp tanımlayabilir.
Nesne algılamanın yanı sıra YOLO-World, 'önce istem gir, sonra algıla' özelliği sayesinde bu nesnelerin durumlarını da belirleyebilir. Örneğin, tarım robotiklerinde, robotu onları algılaması için programlayarak olgunlaşmış meyveler ile olgunlaşmamış meyveleri tanımlamak için kullanılabilir.
Link to this sectionOtomobil endüstrisinde AI#
Otomobil endüstrisi birçok hareketli parçayı içerir ve YOLO-World farklı araba uygulamaları için kullanılabilir. Örneğin, araç bakımı söz konusu olduğunda, YOLO-World'ün manuel etiketleme veya kapsamlı ön eğitim olmaksızın çok çeşitli nesneleri tanıma yeteneği son derece kullanışlıdır. YOLO-World, değiştirilmesi gereken araba parçalarını tanımlamak için kullanılabilir. Hatta yeni arabalardaki kusurları veya eksik parçaları tespit ederek kalite kontrolleri gibi görevleri otomatikleştirebilir.
Bir diğer uygulama ise kendi kendine giden arabalarda sıfır örnekli nesne algılamadır. YOLO-World'ün sıfır örnekli algılama yetenekleri, bir otonom aracın yayalar, trafik işaretleri ve diğer araçlar gibi yoldaki nesneleri gerçek zamanlı olarak algılama ve sınıflandırma yeteneğini geliştirebilir. Bunu yaparak, engelleri algılamaya ve daha güvenli bir yolculuk için kazaları önlemeye yardımcı olabilir.

Yolda nesne algılama örneği.
Link to this sectionPerakende mağazaları için envanter yönetimi#
Perakende mağazalarındaki raflarda bulunan nesneleri tanımlamak, envanteri izlemenin, stokları korumanın ve süreçleri otomatikleştirmenin önemli bir parçasıdır. Ultralytics YOLO-World'ün manuel etiketleme veya kapsamlı ön eğitim olmaksızın çok çeşitli nesneleri tanıma yeteneği, envanter yönetimi için son derece kullanışlıdır.
Örneğin, envanter yönetiminde, YOLO-World, enerji içeceklerinin farklı markaları gibi raflardaki ürünleri hızla tespit edip kategorize edebilir. Perakende mağazaları doğru envanter tutabilir, stok seviyelerini verimli bir şekilde yönetebilir ve tedarik zinciri operasyonlarını kolaylaştırabilir.
Tüm uygulamalar benzersizdir ve YOLO-World'ün ne kadar kapsamlı bir şekilde kullanılabileceğini gösterir. Şimdi, YOLO-World ile uygulamalı bir şekilde ilgilenelim ve bir kod örneğine göz atalım.
Link to this sectionKod üzerinden adım adım inceleme#
Daha önce belirttiğimiz gibi, YOLO-World bakım için bir arabanın farklı parçalarını tespit etmek amacıyla kullanılabilir. Gerekli onarımları tespit eden bir bilgisayarlı görü uygulaması; arabanın fotoğrafını çekmeyi, araba parçalarını tanımlamayı, arabanın her bir parçasını hasar açısından incelemeyi ve onarım önermeyi içerir. Bu sistemin her parçası farklı AI teknikleri ve yaklaşımları kullanır. Bu kod incelemesi amacıyla, araba parçalarının tespit edildiği bölüme odaklanalım.
YOLO-World ile bir görüntüdeki farklı araba parçalarını 5 dakikanın altında tanımlayabilirsin. Bu kodu, YOLO-World kullanarak farklı uygulamaları denemek için de genişletebilirsin! Başlamak için, aşağıda gösterildiği gibi Ultralytics paketini pip ile yüklememiz gerekecek.
Kurulum süreciyle ilgili daha fazla talimat ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz at. YOLOv8 için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar kılavuzumuza bak.
Gerekli paketi yükledikten sonra, çıkarımlarımızı çalıştırmak için İnternet'ten bir görüntü indirebiliriz. Aşağıdaki görüntüyü kullanacağız.

Girdi görüntümüz.
Ardından, gerekli paketi içe aktaracağız, modelimizi başlatacağız ve girdi görüntümüzde aradığımız sınıfları belirleyeceğiz. Burada şu sınıflarla ilgileniyoruz: araba, tekerlek, araba kapısı, araba aynası ve plaka.
Daha sonra, görüntü üzerinde bir çıkarım çalıştırmak için görüntünün yolunu, maksimum algılama sayısı parametrelerini ve IoU (intersection over union) ve güven (conf) eşiklerini sağlayarak predict yöntemini kullanacağız. Son olarak, tespit edilen nesneler 'result.jpg' adlı bir dosyaya kaydedilir.
Aşağıdaki çıktı görüntüsü dosyalarına kaydedilecektir.

Çıktı görüntümüz.
YOLO-World'ün kod yazmadan neler yapabileceğini görmek istersen, YOLO-World Demo sayfasına gidebilir, bir girdi görüntüsü yükleyebilir ve özel sınıfları girebilirsin.
Özel sınıfları sürekli girmek zorunda kalmadan daha sonra doğrudan kullanabilmek için modeli özel sınıflarla nasıl kaydedeceğini öğrenmek adına YOLO-World hakkındaki doküman sayfamızı oku.
Link to this sectionAraba kapılarının algılanmadığını fark ettin mi?#
Çıktı görüntüsüne tekrar bakarsan, “araba kapısı” özel sınıfının algılanmadığını fark edeceksin. Büyük başarılarına rağmen, YOLO-World'ün belirli sınırlamaları vardır. Bu sınırlamalarla mücadele etmek ve YOLO-World modelini etkili bir şekilde kullanmak için doğru türde metin istemleri kullanmak önemlidir.
İşte bununla ilgili bazı bilgiler:
- YOLO-World doğru tahminler için yüksek güven seviyelerine ihtiyaç duymayabilir, bu nedenle güven eşiklerini düşürmek algılama oranlarını artırabilir.
- İlgilenmediğin sınıfları ekle. Bu, ikincil nesneler için yanlış pozitifleri azaltarak birincil nesne algılamayı iyileştirmeye yardımcı olacaktır.
- Küçük detaylara odaklanmadan önce daha büyük nesneleri tespit etmek, algılama doğruluğunu artırabilir.
- Nesneleri renk ipuçlarına göre algılamak için sınıflarında renklerden bahset.
- İstemlerde nesne boyutlarını tanımlamak, YOLO-World'ün belirli nesneleri daha doğru tanımlamasına da yardımcı olabilir.
- Tahminleri boyuta göre filtrelemek veya sınıf başına güven seviyelerini ayarlamak gibi işleme sonrası yöntemler, nesne algılama sonuçlarını daha da iyileştirebilir.
Link to this sectionSınırlar sonsuzdur#
Genel olarak, YOLO-World modelleri gelişmiş nesne algılama yetenekleriyle güçlü bir araç haline getirilebilir. Mükemmel verimlilik ve doğruluk sağlar ve pratik olarak tartıştığımız araba parçalarını tanımlama örneği gibi çeşitli uygulamalarda farklı görevleri otomatikleştirmeye yardımcı olur.
Bilgisayarlı görü ve AI alanındaki katkılarımız hakkında daha fazla bilgi edinmek için GitHub depomuzu keşfetmekten çekinme. AI'nın sağlık teknolojisi gibi sektörleri nasıl yeniden şekillendirdiği konusunda meraklıysan, çözüm sayfalarımıza göz at. YOLO-World gibi yeniliklerle olasılıklar sonsuz görünüyor!






