YOLO-World'ü uygulamalı olarak dene
Metin istemlerinden nesneleri bulan, gerçek zamanlı ve açık kelime dağarcıklı bir nesne algılama modeli olan YOLO-World'ü; kullanım alanları ve hızlı bir kod örneğiyle keşfet.
Abirami Vina7 dakikalık okuma
Bilgisayarlı görü projeleri çoğu zaman verileri etiketlemek ve nesne algılama modellerini eğitmek için çok zaman harcamayı gerektirir. Ancak bu durum yakında değişebilir. Tencent AI Lab, 31 Ocak 2024'te gerçek zamanlı, açık kelime dağarcıklı bir nesne algılama modeli olan YOLO-World'ü yayımladı. YOLO-World bir sıfır atışlı modeldir; yani modeli eğitmen gerekmeden görüntüler üzerinde nesne algılama çıkarımı yapabilirsin.
Sıfır örnekli modeller, bilgisayarlı görü uygulamalarına yaklaşımımızı değiştirme potansiyeline sahip. Bu blogda YOLO-World'ün nasıl çalıştığını ve olası kullanım alanlarını inceleyecek, başlaman için pratik bir kod örneği paylaşacağız.
YOLO-World'e kısa bir bakış#
YOLO-World modeline, aradığın nesneleri tanımlayan bir görsel ve metin istemi verebilirsin. Örneğin bir fotoğrafta "kırmızı gömlek giyen bir kişi" bulmak istiyorsan YOLO-World bu girdiyi alır ve işe koyulur.
Modelin özgün mimarisi üç temel bileşeni bir araya getirir:
- Görüntünün görsel içeriğini analiz etmek için Ultralytics YOLOv8 nesne tespiti modelini temel alan bir algılayıcı.
- OpenAI'ın CLIP modeli tarafından önceden eğitilmiş ve özellikle metin istemini anlamak üzere tasarlanmış bir metin kodlayıcı.
- İşlenmiş görüntü verilerini metin verileriyle birleştiren, Yeniden Parametrelendirilebilir Görü-Dil Yol Toplama Ağı (RepVL-PAN) adlı bir ağ.
YOLO algılayıcısı, olası nesneleri belirlemek için girdi görüntünü tarar. Metin kodlayıcı, açıklamanı modelin anlayabileceği bir biçime dönüştürür. Ardından bu iki bilgi akışı, çok seviyeli çapraz kiplik füzyonu kullanılarak RepVL-PAN üzerinden birleştirilir. Böylece YOLO-World, isteminde tanımlanan nesneleri görüntü içinde hassas biçimde tespit edip konumlandırabilir.

YOLO-World sonuçlarına bir örnek.
YOLO-World'ü tercih etmenin 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. Model, görüntü ve metin çiftlerinden zaten öğrenmiştir; bu nedenle açıklamalara göre nesneleri bulmayı bilir. Veri toplamak, verileri açıklamak ve pahalı GPU'larda eğitim yapmak için saatler harcamaktan kaçınabilirsin.
YOLO-World kullanmanın diğer avantajlarından bazıları şunlardır:
- Gerçek zamanlı performans - YOLO-World, tıpkı özgün YOLO mimarisi gibi gerçek zamanlı performansı destekler. Otonom araçlar ve gözetim sistemleri gibi anında nesne tespiti gerektiren uygulamalar için idealdir.
- Örnek Bölümleme - Özgün YOLO-World sürümünde bölümleme varyantları bulunur; Ultralytics paketinde YOLO-World algılama yapar, YOLOE ise açık kelime dağarcıklı örnek bölümleme özelliği ekler.
- Verimlilik - YOLO-World, yüksek doğruluğu hesaplama verimliliğiyle birleştirerek gerçek dünya uygulamaları için kullanışlı hâle gelir. Sadeleştirilmiş mimarisi, işlem gücüne aşırı yük bindirmeden hızlı nesne tespitini mümkün kılar.
YOLO-World'ün uygulamaları#
YOLO-World modelleri çok çeşitli uygulamalarda kullanılabilir. Bunlardan bazılarını inceleyelim.
Üretimde kalite kontrolü#
Üretim 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 maliyet ve onarım ya da geri çağırma ihtiyacı gibi sorunlara neden olabilir. Bu kontrolleri gerçekleştirmek için özel makine görüşü kameraları ve yapay zeka sistemleri geliştirildi.
YOLO-World modelleri bu alanda önemli bir ilerlemedir. Sıfır atış yetenekleri sayesinde, belirli bir sorun için eğitilmemiş olsalar bile ürünlerdeki kusurları bulabilirler. Örneğin su şişesi üreten bir fabrika, kapağı düzgün biçimde kapatılmış bir şişeyi kapağı eksik ya da kusurlu bir şişeden ayırmak için YOLO-World'ü kullanabilir.

Şişe kapağı denetimine bir örnek.
Robotik#
YOLO-World modelleri, robotların tanımadıkları ortamlarda etkileşim kurmasını sağlar. Bir odada bulunabilecek belirli nesneler üzerinde eğitilmemiş olsalar da hangi nesnelerin bulunduğunu belirleyebilirler. Örneğin, bir robotun daha önce hiç girmediği bir odaya girdiğini düşün. YOLO-World modeliyle, bu nesneler üzerinde özel olarak eğitilmemiş olsa bile sandalye, masa veya lamba gibi nesneleri tanıyıp belirleyebilir.
YOLO-World, nesne tespitine ek olarak 'önce istem ver, sonra tespit et' özelliği sayesinde nesnelerin durumunu da belirleyebilir. Örneğin tarım robotlarında robotu meyveleri tespit edecek şekilde programlayarak olgun meyveleri olgunlaşmamış meyvelerden ayırmak için kullanılabilir.
Otomotiv sektöründe yapay zeka#
Otomotiv sektörü birçok hareketli parçadan oluşur ve YOLO-World farklı araç uygulamalarında kullanılabilir. Örneğin araç bakımında YOLO-World'ün manuel etiketleme veya kapsamlı ön eğitim olmadan çok çeşitli nesneleri tanıma yeteneği son derece kullanışlıdır. YOLO-World, değiştirilmesi gereken araç parçalarını belirlemek için kullanılabilir. Hatta yeni araçlardaki kusurları veya eksik parçaları saptamak gibi kalite kontrol görevlerini otomatikleştirebilir.
Bir başka uygulama da otonom araçlarda sıfır örnekli nesne tespitidir. YOLO-World'ün sıfır örnekli tespit yetenekleri, otonom bir aracın yayalar, trafik işaretleri ve diğer araçlar gibi yoldaki nesneleri gerçek zamanlı olarak tespit edip sınıflandırma becerisini geliştirebilir. Böylece engelleri tespit etmeye ve kazaları önlemeye yardımcı olarak daha güvenli bir yolculuk sağlayabilir.

Yoldaki nesnelerin tespitine bir örnek.
Perakende mağazalarında envanter yönetimi#
Perakende mağazalarındaki raflarda bulunan nesneleri belirlemek, envanteri izlemek, stokları korumak ve süreçleri otomatikleştirmek açısından önemlidir. Ultralytics YOLO-World'ün açık kelime dağarcıklı algılama özelliği envanter yönetiminde de kullanışlıdır.
Örneğin envanter yönetiminde YOLO-World, enerji içeceklerinin farklı markaları gibi raftaki ürünleri hızla tespit edip kategorilere ayırabilir. Perakende mağazaları doğru envanter kayıtları tutabilir, stok seviyelerini verimli biçimde yönetebilir ve tedarik zinciri operasyonlarını kolaylaştırabilir.
Tüm bu uygulama örnekleri birbirinden farklıdır ve YOLO-World'ün ne kadar geniş kapsamlı kullanılabileceğini gösterir. Şimdi YOLO-World'ü uygulamalı olarak deneyelim ve bir kod örneğine göz atalım.
Kod adım adım inceleme#
Daha önce belirttiğimiz gibi YOLO-World, bakım için bir aracın farklı parçalarını tespit etmek üzere kullanılabilir. Gerekli onarımları tespit eden bir bilgisayarlı görü uygulaması; aracın fotoğrafını çekmeyi, araç parçalarını belirlemeyi, her parçayı hasar açısından incelemeyi ve onarım önerileri sunmayı içerir. Bu sistemin her parçasında farklı yapay zeka teknikleri ve yaklaşımları kullanılır. Bu kod incelemesinde araç parçalarının tespit edildiği bölüme odaklanalım.
YOLO-World ile bir görüntüdeki farklı araç parçalarını 5 dakikadan kısa sürede belirleyebilirsin. Bu kodu genişleterek YOLO-World'ü farklı uygulamalar için de deneyebilirsin! Başlamak için aşağıda gösterildiği gibi pip kullanarak Ultralytics paketini yüklememiz gerekiyor.
pip install ultralyticsYükleme süreciyle ilgili daha fazla talimat ve en iyi uygulama için Ultralytics Kurulum kılavuzumuza göz at. YOLOv8 için gerekli paketleri yüklerken herhangi bir sorunla karşılaşırsan, çözümler ve ipuçları için Sık Karşılaşılan Sorunlar kılavuzumuza bak.
Gerekli paketi yükledikten sonra, çıkarım çalıştırmak için internetten 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 aktaracak, modelimizi başlatacak 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.
Ardından görüntünün yolunu ve maksimum algılama sayısına ilişkin parametreleri, ayrıca görüntü üzerinde çıkarım yapmak için kesişim/birleşim (IoU) ve güven (conf) eşiklerini sağlayarak predict yöntemini kullanacağız. Son olarak algılanan nesneler result.jpg adlı bir dosyaya kaydedilir.
from ultralytics import YOLOWorld
# Bir YOLO-World modelini başlat
model = YOLOWorld("yolov8s-worldv2.pt")
# Algılanacak özel sınıfları tanımla
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])
# Maksimum algılama sayısı ve IoU ile güven eşiklerini belirleyerek çıkarım yap
results = model.predict("path/to/image.jpg", max_det=100, iou=0.5, conf=0.25)
# Açıklama eklenmiş sonucu kaydet
results[0].save("result.jpg")Aşağıdaki çıktı görüntüsü dosyalarına kaydedilecek.

Çıktı görüntümüz.
YOLO-World'ün neler yapabildiğini kod yazmadan 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ı tekrar tekrar girmeden daha sonra doğrudan kullanabilmek için modeli bu sınıflarla nasıl kaydedeceğini öğrenmek üzere YOLO-World hakkındaki dokümantasyon sayfamızı oku.
Araba kapılarının tespit edilmediğini fark ettin mi?#
Çıktı görüntüsüne yeniden baktığında özel “araba kapısı” sınıfının tespit edilmediğini fark edeceksin. Büyük başarılarına rağmen YOLO-World'ün bazı sınırlamaları var. Bu sınırlamaların üstesinden gelmek ve YOLO-World modelini etkili biçimde kullanmak için doğru metin istemi türlerini kullanmak önemli.
İşte konuyla ilgili birkaç ipucu:
- YOLO-World doğru tahminler için yüksek güven düzeyleri gerektirmeyebilir; bu nedenle güven eşiklerini düşürmek tespit oranlarını artırabilir.
- İlgilenmediğin sınıfları ekle. Bu, ikincil nesnelere ilişkin yanlış pozitifleri azaltarak birincil nesne algılamayı iyileştirmeye yardımcı olur.
- Daha küçük ayrıntılara odaklanmadan önce büyük nesneleri tespit etmek, tespit doğruluğunu artırabilir.
- Nesneleri renge dayalı ipuçlarıyla tespit etmek için sınıflarda renkleri belirt.
- İstemlerde nesnelerin boyutlarını açıklamak da YOLO-World'ün belirli nesneleri daha doğru tanımasına yardımcı olabilir.
- Tahminleri boyuta göre filtrelemek veya her sınıfın güven düzeylerini ayarlamak gibi son işleme yöntemleri, nesne tespiti sonuçlarını daha da iyileştirebilir.
Olanakların sınırı yok#
Genel olarak YOLO-World modelleri, gelişmiş nesne tespiti yetenekleriyle güçlü bir araca dönüştürülebilir. Uygulamalı olarak ele aldığımız araç parçalarını belirleme örneğinde olduğu gibi, farklı uygulamalardaki çeşitli görevlerin otomatikleştirilmesine yardımcı olurken yüksek verimlilik ve doğruluk sağlar.
Bilgisayarlı görü ve yapay zekâ alanındaki katkılarımız hakkında daha fazla bilgi edinmek için GitHub depomuzu keşfedebilirsin. Yapay zekânın sağlık teknolojisi gibi sektörleri nasıl dönüştürdüğünü merak ediyorsan çözümler sayfalarımıza göz at. YOLO-World, görsel yapay zekâ için pek çok yeni olasılığın kapısını açıyor.
Yazan
Yorumlar
Soru sor, sonuçlarını paylaş veya başka birine yardım et.










