─░├žeri─če ge├ž

YOLO-D├╝nya Modeli

YOLO-D├╝nya Modeli geli┼čmi┼č, ger├žek zamanl─▒ bir Ultralytics YOLOv8-A├ž─▒k Kelime Tespiti g├Ârevleri i├žin temelli yakla┼č─▒m. Bu yenilik, tan─▒mlay─▒c─▒ metinlere dayal─▒ olarak bir g├Âr├╝nt├╝ i├žindeki herhangi bir nesnenin tespit edilmesini sa─člar. Rekabet├ži performans─▒ korurken hesaplama taleplerini ├Ânemli ├Âl├ž├╝de d├╝┼č├╝ren YOLO-World, ├žok say─▒da g├Ârme tabanl─▒ uygulama i├žin ├žok y├Ânl├╝ bir ara├ž olarak ortaya ├ž─▒kmaktad─▒r.



─░zle: YOLO ├ľzel veri k├╝mesi ├╝zerinde d├╝nya e─čitim i┼č ak─▒┼č─▒

YOLO-D├╝nya Modeli mimarisine genel bak─▒┼č

Genel Bak─▒┼č

YOLO-World, genellikle kapsaml─▒ hesaplama kaynaklar─▒ gerektiren hantal Transformer modellerine dayanan geleneksel A├ž─▒k Kelime tespit modellerinin kar┼č─▒la┼čt─▒─č─▒ zorluklar─▒n ├╝stesinden gelir. Bu modellerin ├Ânceden tan─▒mlanm─▒┼č nesne kategorilerine ba─č─▒ml─▒l─▒─č─▒, dinamik senaryolardaki kullan─▒mlar─▒n─▒ da k─▒s─▒tlamaktad─▒r. YOLO-D├╝nya, YOLOv8 ├žer├ževesini a├ž─▒k kelime alg─▒lama yetenekleriyle yeniden canland─▒rarak, s─▒f─▒r ├žekim senaryolar─▒nda ├žok ├že┼čitli nesneleri benzersiz bir verimlilikle tan─▒mlamada m├╝kemmel olmak i├žin geni┼č veri k├╝meleri ├╝zerinde g├Ârme dili modelleme ve ├Ân e─čitim kullan─▒r.

Temel ├ľzellikler

  1. Ger├žek Zamanl─▒ ├ç├Âz├╝m: CNN'lerin hesaplama h─▒z─▒ndan yararlanan YOLO-World, h─▒zl─▒ sonu├žlara ihtiya├ž duyan sekt├Ârlere hitap eden h─▒zl─▒ bir a├ž─▒k kelime tespit ├ž├Âz├╝m├╝ sunar.

  2. Verimlilik ve Performans: YOLO-World, performanstan ├Âd├╝n vermeden hesaplama ve kaynak gereksinimlerini azalt─▒r, SAM gibi modellere sa─člam bir alternatif sunar, ancak hesaplama maliyetinin bir k─▒sm─▒yla ger├žek zamanl─▒ uygulamalara olanak tan─▒r.

  3. ├çevrimd─▒┼č─▒ Kelime Da─čarc─▒─č─▒ ile ├ç─▒kar─▒m: YOLO-World, verimlili─či daha da art─▒rmak i├žin ├ževrimd─▒┼č─▒ bir kelime da─čarc─▒─č─▒ kullanan bir "├Ânce sor sonra tespit et" stratejisi sunar. Bu yakla┼č─▒m, ba┼čl─▒klar veya kategoriler de dahil olmak ├╝zere apriori olarak hesaplanan ├Âzel istemlerin ├ževrimd─▒┼č─▒ kelime da─čarc─▒─č─▒ kat─▒┼čt─▒rmalar─▒ olarak kodlan─▒p saklanmas─▒n─▒ sa─člayarak alg─▒lama s├╝recini kolayla┼čt─▒r─▒r.

  4. Taraf─▒ndan desteklenmektedir YOLOv8: ├ťzerine in┼ča edilmi┼čtir Ultralytics YOLOv8, YOLO-World, a├ž─▒k kelime tespitini benzersiz bir do─čruluk ve h─▒zla kolayla┼čt─▒rmak i├žin ger├žek zamanl─▒ nesne tespitindeki en son geli┼čmelerden yararlan─▒r.

  5. Benchmark M├╝kemmelli─či: YOLO-World, standart k─▒yaslamalarda h─▒z ve verimlilik a├ž─▒s─▒ndan MDETR ve GLIP serisi dahil olmak ├╝zere mevcut a├ž─▒k kelime dedekt├Ârlerinden daha iyi performans g├Âstererek YOLOv8'un tek bir NVIDIA V100 GPU ├╝zerindeki ├╝st├╝n yetene─čini ortaya koyuyor.

  6. ├çok Y├Ânl├╝ Uygulamalar: YOLO-World'├╝n yenilik├ži yakla┼č─▒m─▒, mevcut y├Ântemlere g├Âre b├╝y├╝kl├╝k s─▒ras─▒na g├Âre h─▒z iyile┼čtirmeleri sa─člayarak ├žok say─▒da g├Ârme g├Ârevi i├žin yeni olas─▒l─▒klar─▒n kilidini a├žar.

Mevcut Modeller, Desteklenen G├Ârevler ve ├çal─▒┼čma Modlar─▒

Bu b├Âl├╝mde, ├Ânceden e─čitilmi┼č belirli a─č─▒rl─▒klar─▒yla birlikte mevcut modeller, destekledikleri g├Ârevler ve desteklenen modlar i├žin Ôťů ve desteklenmeyen modlar i├žin ÔŁî ile g├Âsterilen ├ç─▒kar─▒m, Do─črulama, E─čitim ve D─▒┼ča Aktarma gibi ├že┼čitli ├žal─▒┼čma modlar─▒yla uyumluluklar─▒ ayr─▒nt─▒l─▒ olarak a├ž─▒klanmaktad─▒r.

Not

T├╝m YOLOv8-World a─č─▒rl─▒klar─▒ do─črudan resmi YOLO-World deposundan ta┼č─▒narak m├╝kemmel katk─▒lar─▒ vurgulanm─▒┼čt─▒r.

Model Tipi ├ľnceden E─čitilmi┼č A─č─▒rl─▒klar Desteklenen G├Ârevler ├ç─▒kar─▒m Do─črulama E─čitim ─░hracat
YOLOv8s-D├╝nya yolov8s-world.pt Nesne Alg─▒lama Ôťů Ôťů Ôťů ÔŁî
YOLOv8s-worldv2 yolov8s-worldv2.pt Nesne Alg─▒lama Ôťů Ôťů Ôťů Ôťů
YOLOv8m-D├╝nya yolov8m-world.pt Nesne Alg─▒lama Ôťů Ôťů Ôťů ÔŁî
YOLOv8m-worldv2 yolov8m-worldv2.pt Nesne Alg─▒lama Ôťů Ôťů Ôťů Ôťů
YOLOv8l-D├╝nya yolov8l-world.pt Nesne Alg─▒lama Ôťů Ôťů Ôťů ÔŁî
YOLOv8l-worldv2 yolov8l-worldv2.pt Nesne Alg─▒lama Ôťů Ôťů Ôťů Ôťů
YOLOv8x-D├╝nya yolov8x-world.pt Nesne Alg─▒lama Ôťů Ôťů Ôťů ÔŁî
YOLOv8x-worldv2 yolov8x-worldv2.pt Nesne Alg─▒lama Ôťů Ôťů Ôťů Ôťů

COCO Veri Setinde S─▒f─▒r At─▒┼č Transferi

Model Tipi mAP mAP50 mAP75
yolov8s-D├╝nya 37.4 52.0 40.6
yolov8s-worldv2 37.7 52.2 41.0
yolov8m-D├╝nya 42.0 57.0 45.6
yolov8m-worldv2 43.0 58.4 46.8
yolov8l-D├╝nya 45.7 61.3 49.8
yolov8l-worldv2 45.8 61.3 49.8
yolov8x-D├╝nya 47.0 63.0 51.2
yolov8x-worldv2 47.1 62.8 51.4

Kullan─▒m ├ľrnekleri

YOLO-World modellerini Python uygulamalar─▒n─▒za entegre etmek kolayd─▒r. Ultralytics , geli┼čtirmeyi kolayla┼čt─▒rmak i├žin kullan─▒c─▒ dostu Python API ve CLI komutlar─▒ sa─člar.

Tren Kullan─▒m─▒

─░pucu

Kullanman─▒z─▒ ┼čiddetle tavsiye ederiz yolov8-worldv2 ├ľzel e─čitim i├žin model, ├ž├╝nk├╝ deterministik e─čitimi destekler ve ayr─▒ca onnx/tensorrt gibi di─čer formatlar─▒ d─▒┼ča aktarmak kolayd─▒r.

Nesne alg─▒lama, nesne alg─▒lay─▒c─▒ ile basittir. train y├Ântemi, a┼ča─č─▒da g├Âsterildi─či gibi:

├ľrnek

PyTorch ├Ân e─čitimli *.pt modellerin yan─▒ s─▒ra yap─▒land─▒rma *.yaml dosyalar ┼ču dosyalara aktar─▒labilir YOLOWorld() s─▒n─▒f─▒nda bir model ├Ârne─či olu┼čturmak i├žin python:

from ultralytics import YOLOWorld

# Load a pretrained YOLOv8s-worldv2 model
model = YOLOWorld("yolov8s-worldv2.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the YOLOv8n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
# Load a pretrained YOLOv8s-worldv2 model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8s-worldv2.yaml data=coco8.yaml epochs=100 imgsz=640

Kullan─▒m Tahmini

Nesne alg─▒lama, nesne alg─▒lay─▒c─▒ ile basittir. predict y├Ântemi, a┼ča─č─▒da g├Âsterildi─či gibi:

├ľrnek

from ultralytics import YOLOWorld

# Initialize a YOLO-World model
model = YOLOWorld("yolov8s-world.pt")  # or select yolov8m/l-world.pt for different sizes

# Execute inference with the YOLOv8s-world model on the specified image
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()
# Perform object detection using a YOLO-World model
yolo predict model=yolov8s-world.pt source=path/to/image.jpg imgsz=640

Bu kod par├žac─▒─č─▒, ├Ânceden e─čitilmi┼č bir modeli y├╝klemenin ve bir g├Âr├╝nt├╝ ├╝zerinde tahmin ├žal─▒┼čt─▒rman─▒n basitli─čini g├Âstermektedir.

Val Kullan─▒m─▒

Bir veri k├╝mesi ├╝zerinde model do─črulamas─▒ a┼ča─č─▒daki ┼čekilde kolayla┼čt─▒r─▒lm─▒┼čt─▒r:

├ľrnek

from ultralytics import YOLO

# Create a YOLO-World model
model = YOLO("yolov8s-world.pt")  # or select yolov8m/l-world.pt for different sizes

# Conduct model validation on the COCO8 example dataset
metrics = model.val(data="coco8.yaml")
# Validate a YOLO-World model on the COCO8 dataset with a specified image size
yolo val model=yolov8s-world.pt data=coco8.yaml imgsz=640

Par├ža Kullan─▒m─▒

Bir video/g├Âr├╝nt├╝ ├╝zerinde YOLO-World modeli ile nesne takibi a┼ča─č─▒daki gibi kolayla┼čt─▒r─▒lm─▒┼čt─▒r:

├ľrnek

from ultralytics import YOLO

# Create a YOLO-World model
model = YOLO("yolov8s-world.pt")  # or select yolov8m/l-world.pt for different sizes

# Track with a YOLO-World model on a video
results = model.track(source="path/to/video.mp4")
# Track with a YOLO-World model on the video with a specified image size
yolo track model=yolov8s-world.pt imgsz=640 source="path/to/video/file.mp4"

Not

Ultralytics taraf─▒ndan sa─članan YOLO-World modelleri, ├ževrimd─▒┼č─▒ kelime da─čarc─▒klar─▒n─▒n bir par├žas─▒ olarak COCO veri k├╝m esi kategorileriyle ├Ânceden yap─▒land─▒r─▒lm─▒┼č olarak gelir ve an─▒nda uygulama i├žin verimlili─či art─▒r─▒r. Bu entegrasyon, YOLOv8-World modellerinin ek kurulum veya ├Âzelle┼čtirme gerektirmeden COCO veri setinde tan─▒mlanan 80 standart kategoriyi do─črudan tan─▒mas─▒n─▒ ve tahmin etmesini sa─člar.

─░stemleri ayarlay─▒n

YOLO-D├╝nya istemi s─▒n─▒f adlar─▒na genel bak─▒┼č

YOLO-World ├žer├ževesi, ├Âzel istemler arac─▒l─▒─č─▒yla s─▒n─▒flar─▒n dinamik olarak belirlenmesine olanak tan─▒yarak kullan─▒c─▒lar─▒n yeniden e─čitim almadan modeli kendi ├Âzel ihtiya├žlar─▒na g├Âre uyarlamalar─▒n─▒ sa─člar. Bu ├Âzellik, modeli yeni etki alanlar─▒na veya ba┼člang─▒├žta e─čitim verilerinin bir par├žas─▒ olmayan belirli g├Ârevlere uyarlamak i├žin ├Âzellikle yararl─▒d─▒r. Kullan─▒c─▒lar, ├Âzel istemler belirleyerek modelin ilgi nesnelerine odaklanmas─▒n─▒ sa─člayabilir ve b├Âylece tespit sonu├žlar─▒n─▒n uygunlu─čunu ve do─črulu─čunu art─▒rabilir.

├ľrne─čin, uygulaman─▒z yaln─▒zca 'ki┼či' ve 'otob├╝s' nesnelerinin alg─▒lanmas─▒n─▒ gerektiriyorsa, bu s─▒n─▒flar─▒ do─črudan belirtebilirsiniz:

├ľrnek

from ultralytics import YOLO

# Initialize a YOLO-World model
model = YOLO("yolov8s-world.pt")  # or choose yolov8m/l-world.pt

# Define custom classes
model.set_classes(["person", "bus"])

# Execute prediction for specified categories on an image
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()

├ľzel s─▒n─▒flar─▒ ayarlad─▒ktan sonra da bir modeli kaydedebilirsiniz. Bunu yaparak YOLO-World modelinin ├Âzel kullan─▒m durumunuz i├žin ├Âzelle┼čtirilmi┼č bir versiyonunu olu┼čturursunuz. Bu i┼člem, ├Âzel s─▒n─▒f tan─▒mlar─▒n─▒z─▒ do─črudan model dosyas─▒na yerle┼čtirerek modeli ba┼čka ayarlamalar yapmadan belirtti─činiz s─▒n─▒flarla kullan─▒ma haz─▒r hale getirir. ├ľzel YOLOv8 modelinizi kaydetmek ve y├╝klemek i├žin a┼ča─č─▒daki ad─▒mlar─▒ izleyin:

├ľrnek

├ľnce bir YOLO-World modeli y├╝kleyin, bunun i├žin ├Âzel s─▒n─▒flar ayarlay─▒n ve kaydedin:

from ultralytics import YOLO

# Initialize a YOLO-World model
model = YOLO("yolov8s-world.pt")  # or select yolov8m/l-world.pt

# Define custom classes
model.set_classes(["person", "bus"])

# Save the model with the defined offline vocabulary
model.save("custom_yolov8s.pt")

Kaydettikten sonra, custom_yolov8s.pt modeli ├Ânceden e─čitilmi┼č di─čer YOLOv8 modelleri gibi davran─▒r, ancak ├Ânemli bir farkla: art─▒k yaln─▒zca tan─▒mlad─▒─č─▒n─▒z s─▒n─▒flar─▒ tespit etmek i├žin optimize edilmi┼čtir. Bu ├Âzelle┼čtirme, ├Âzel uygulama senaryolar─▒n─▒z i├žin alg─▒lama performans─▒n─▒ ve verimlili─čini ├Ânemli ├Âl├ž├╝de art─▒rabilir.

from ultralytics import YOLO

# Load your custom model
model = YOLO("custom_yolov8s.pt")

# Run inference to detect your custom classes
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()

├ľzel S├Âzc├╝k Da─čarc─▒─č─▒ ile Tasarruf Yapman─▒n Faydalar─▒

  • Verimlilik: ─░lgili nesnelere odaklanarak alg─▒lama s├╝recini kolayla┼čt─▒r─▒r, hesaplama y├╝k├╝n├╝ azalt─▒r ve ├ž─▒kar─▒m─▒ h─▒zland─▒r─▒r.
  • Esneklik: Kapsaml─▒ yeniden e─čitime veya veri toplamaya gerek kalmadan modelin yeni veya ni┼č tespit g├Ârevlerine kolayca uyarlanmas─▒n─▒ sa─člar.
  • Basitlik: ├çal─▒┼čma zaman─▒nda ├Âzel s─▒n─▒flar─▒ tekrar tekrar belirtme ihtiyac─▒n─▒ ortadan kald─▒rarak da─č─▒t─▒m─▒ basitle┼čtirir ve modeli g├Âm├╝l├╝ kelime da─čarc─▒─č─▒ ile do─črudan kullan─▒labilir hale getirir.
  • Performans: Modelin dikkatini ve kaynaklar─▒n─▒ tan─▒mlanan nesneleri tan─▒maya odaklayarak belirtilen s─▒n─▒flar i├žin alg─▒lama do─črulu─čunu art─▒r─▒r.

Bu yakla┼č─▒m, en son teknoloji ├╝r├╝n├╝ nesne alg─▒lama modellerini belirli g├Ârevler i├žin ├Âzelle┼čtirmenin g├╝├žl├╝ bir yolunu sunarak geli┼čmi┼č yapay zekay─▒ daha eri┼čilebilir ve daha geni┼č bir pratik uygulama yelpazesine uygulanabilir hale getirir.

Resmi sonu├žlar─▒ s─▒f─▒rdan yeniden ├╝retin (Deneysel)

Veri k├╝melerini haz─▒rlay─▒n

  • Tren verileri
Veri Seti Tip ├ľrnekler Kutular Ek A├ž─▒klama Dosyalar─▒
Objects365v1 Alg─▒lama 609k 9621k objects365_train.json
GQA Topraklama 621k 3681k final_mixed_train_no_coco.json
Flickr30k Topraklama 149k 641k final_flickr_separateGT_train.json
  • Val verileri
Veri Seti Tip Ek A├ž─▒klama Dosyalar─▒
LVIS minival Alg─▒lama minival.txt

S─▒f─▒rdan e─čitim ba┼člat─▒n

Not

WorldTrainerFromScratch yolo-d├╝nya modellerinin hem alg─▒lama veri k├╝meleri hem de topraklama veri k├╝meleri ├╝zerinde ayn─▒ anda e─čitilmesine izin verecek ┼čekilde son derece ├Âzelle┼čtirilmi┼čtir. Daha fazla ayr─▒nt─▒ i├žin l├╝tfen g├Âz at─▒n ultralytics.model.yolo.world.train_world.py.

├ľrnek

from ultralytics import YOLOWorld
from ultralytics.models.yolo.world.train_world import WorldTrainerFromScratch

data = dict(
    train=dict(
        yolo_data=["Objects365.yaml"],
        grounding_data=[
            dict(
                img_path="../datasets/flickr30k/images",
                json_file="../datasets/flickr30k/final_flickr_separateGT_train.json",
            ),
            dict(
                img_path="../datasets/GQA/images",
                json_file="../datasets/GQA/final_mixed_train_no_coco.json",
            ),
        ],
    ),
    val=dict(yolo_data=["lvis.yaml"]),
)
model = YOLOWorld("yolov8s-worldv2.yaml")
model.train(data=data, batch=128, epochs=100, trainer=WorldTrainerFromScratch)

At─▒flar ve Te┼čekk├╝r

Tencent AILab Computer Vision Center 'a YOLO-World ile ger├žek zamanl─▒ a├ž─▒k kelime da─čarc─▒─č─▒ nesne tespiti konusundaki ├Ânc├╝ ├žal─▒┼čmalar─▒ i├žin te┼čekk├╝rlerimizi sunar─▒z:

@article{cheng2024yolow,
title={YOLO-World: Real-Time Open-Vocabulary Object Detection},
author={Cheng, Tianheng and Song, Lin and Ge, Yixiao and Liu, Wenyu and Wang, Xinggang and Shan, Ying},
journal={arXiv preprint arXiv:2401.17270},
year={2024}
}

Daha fazla okuma i├žin, orijinal YOLO-World makalesi arXiv'de mevcuttur. Projenin kaynak koduna ve ek kaynaklara GitHub depolar─▒ ├╝zerinden eri┼čilebilir. Alan─▒ ilerletme ve de─čerli g├Âr├╝┼člerini toplulukla payla┼čma konusundaki kararl─▒l─▒klar─▒n─▒ takdir ediyoruz.



Created 2024-02-14, Updated 2024-06-10
Authors: glenn-jocher (6), RizwanMunawar (3), Burhan-Q (1), Laughing-q (4)

Yorumlar