Ultralytics YOLO11 kullanılarak Örnek Segmentasyonu ve Takibi 🚀
Örnek Bölütleme (Instance Segmentation) nedir?
Örnek bölütleme, bir görüntüdeki bireysel nesneleri piksel düzeyinde tanımlamayı ve ana hatlarını çizmeyi içeren bir bilgisayarlı görü görevidir. Pikselleri yalnızca kategoriye göre sınıflandıran semantik bölütleme'den farklı olarak, örnek bölütleme her nesne örneğini benzersiz bir şekilde etiketler ve hassas bir şekilde tanımlar, bu da onu tıbbi görüntüleme, otonom sürüş ve endüstriyel otomasyon gibi ayrıntılı mekansal anlayış gerektiren uygulamalar için çok önemli kılar.
Ultralytics YOLO11, YOLO modellerinin bilindiği hızı ve verimliliği korurken, hassas nesne sınırı algılamayı sağlayan güçlü örnek segmentasyonu yetenekleri sağlar.
Ultralytics paketinde bulunan iki tür örnek segmentasyonu takibi vardır:
-
Sınıf Nesneleriyle Örnek Bölütleme: Net görsel ayrım için her sınıf nesnesine benzersiz bir renk atanır.
-
Nesne İzleriyle Örnek Bölütleme: Her iz, video kareleri arasında kolay tanımlama ve izleme sağlamak için farklı bir renkle temsil edilir.
İzle: Ultralytics YOLO11 Kullanarak Nesne Takibi ile Örnek Segmentasyonu
Numuneler
Örnek Segmentasyonu | Örnek Segmentasyonu + Nesne Takibi |
---|---|
![]() |
![]() |
Ultralytics Örnek Bölütleme 😍 | Nesne Takibi ile Ultralytics Örnek Bölütleme 🔥 |
Ultralytics YOLO kullanarak örnek segmentasyonu
# Instance segmentation using Ultralytics YOLO11
yolo solutions isegment show=True
# Pass a source video
yolo solutions isegment source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("isegment_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize instance segmentation object
isegment = solutions.InstanceSegmentation(
show=True, # display the output
model="yolo11n-seg.pt", # model="yolo11n-seg.pt" for object segmentation using YOLO11.
# classes=[0, 2], # segment specific classes i.e, person and car with pretrained model.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = isegment(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
InstanceSegmentation
Argümanlar
İşte şunları içeren bir tablo: InstanceSegmentation
argümanlar:
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
model |
str |
None |
Ultralytics YOLO Model Dosyasına Giden Yol. |
region |
list |
'[(20, 400), (1260, 400)]' |
Sayma bölgesini tanımlayan nokta listesi. |
Ayrıca şunlardan da yararlanabilirsiniz: track
içindeki argümanlar InstanceSegmentation
çözümü:
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Kullanılacak izleme algoritmasını belirtir, örneğin: bytetrack.yaml veya botsort.yaml . |
conf |
float |
0.3 |
Algılamalar için güven eşiğini ayarlar; daha düşük değerler daha fazla nesnenin izlenmesine olanak tanır ancak yanlış pozitifleri içerebilir. |
iou |
float |
0.5 |
Çakışan algılamaları filtrelemek için Intersection over Union (IoU) eşiğini ayarlar. |
classes |
list |
None |
Sonuçları sınıf indeksine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler. |
verbose |
bool |
True |
İzleme sonuçlarının görüntülenmesini kontrol eder ve izlenen nesnelerin görsel bir çıktısını sağlar. |
device |
str |
None |
Çıkarım için cihazı belirtir (örn. cpu , cuda:0 veya 0 ). Kullanıcıların model yürütme için CPU, belirli bir GPU veya diğer işlem cihazları arasında seçim yapmasına olanak tanır. |
Ayrıca, aşağıdaki görselleştirme argümanları mevcuttur:
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
show |
bool |
False |
Eğer True , ek açıklamalı görüntüleri veya videoları bir pencerede görüntüler. Geliştirme veya test sırasında anında görsel geri bildirim için kullanışlıdır. |
line_width |
None or int |
None |
Sınırlayıcı kutuların çizgi genişliğini belirtir. Eğer None , çizgi genişliği, görüntü boyutuna göre otomatik olarak ayarlanır. Netlik için görsel özelleştirme sağlar. |
show_conf |
bool |
True |
Etiketin yanında her algılama için güvenilirlik puanını görüntüler. Modelin her algılama için kesinliği hakkında fikir verir. |
show_labels |
bool |
True |
Görsel çıktıdaki her algılama için etiketleri görüntüler. Algılanan nesnelerin anında anlaşılmasını sağlar. |
Örnek Bölütleme Uygulamaları
YOLO11 ile örnek segmentasyonun çeşitli sektörlerde çok sayıda gerçek dünya uygulaması vardır:
Atık Yönetimi ve Geri Dönüşüm
YOLO11, farklı türdeki malzemeleri tanımlamak ve ayırmak için atık yönetimi tesislerinde kullanılabilir. Model, plastik atıkları, kartonları, metalleri ve diğer geri dönüştürülebilir malzemeleri yüksek hassasiyetle segmentlere ayırabilir ve otomatik ayıklama sistemlerinin atıkları daha verimli bir şekilde işlemesini sağlayabilir. Bu, dünya çapında üretilen 7 milyar ton plastik atığın yalnızca yaklaşık %10'unun geri dönüştürüldüğü düşünüldüğünde özellikle değerlidir.
Otonom Araçlar
Otonom sürüşlü arabalarda, örnek segmentasyonu yayaları, araçları, trafik işaretlerini ve diğer yol unsurlarını piksel düzeyinde tanımlamaya ve izlemeye yardımcı olur. Çevrenin bu kesin anlaşılması, navigasyon ve güvenlik kararları için çok önemlidir. YOLO11'in gerçek zamanlı performansı, onu bu zamana duyarlı uygulamalar için ideal kılar.
Tıbbi Görüntüleme
Örnek segmentasyonu, tıbbi taramalarda tümörleri, organları veya hücresel yapıları tanımlayabilir ve ana hatlarını çizebilir. YOLO11'in nesne sınırlarını hassas bir şekilde belirleme yeteneği, tıbbi teşhis ve tedavi planlaması için değerlidir.
Şantiye İzleme
Şantiyelerde, örnek segmentasyonu ağır makineleri, işçileri ve malzemeleri izleyebilir. Bu, ekipman konumlarını izleyerek ve işçilerin tehlikeli alanlara ne zaman girdiğini tespit ederek güvenliği sağlamaya yardımcı olurken, aynı zamanda iş akışını ve kaynak tahsisini optimize eder.
Not
Herhangi bir sorunuz için, sorularınızı Ultralytics Sorunlar Bölümü'nde veya aşağıda belirtilen tartışma bölümünde paylaşmaktan çekinmeyin.
SSS
Ultralytics YOLO11 kullanarak örnek segmentasyonunu nasıl gerçekleştiririm?
Ultralytics YOLO11 kullanarak örnek segmentasyonu gerçekleştirmek için, YOLO modelini YOLO11'in bir segmentasyon sürümüyle başlatın ve video karelerini bunun üzerinden işleyin. İşte basitleştirilmiş bir kod örneği:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init InstanceSegmentation
isegment = solutions.InstanceSegmentation(
show=True, # display the output
model="yolo11n-seg.pt", # model="yolo11n-seg.pt" for object segmentation using YOLO11.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = isegment(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Ultralytics YOLO11 kılavuzunda örnek segmentasyonu hakkında daha fazla bilgi edinin.
Ultralytics YOLO11'de örnek segmentasyonu ve nesne takibi arasındaki fark nedir?
Örnek segmentasyonu, bir görüntüdeki her bir nesneyi benzersiz bir etiket ve maske vererek tanımlar ve ana hatlarını çizer. Nesne takibi, aynı nesnelerin zaman içinde sürekli olarak izlenmesini kolaylaştırarak, nesnelere video kareleri arasında tutarlı kimlikler atayarak bunu genişletir. YOLO11'in uygulamasında olduğu gibi birleştirildiğinde, hassas sınır bilgilerini korurken videolardaki nesne hareketini ve davranışını analiz etmek için güçlü yetenekler elde edersiniz.
Örnek segmentasyonu ve takibi için neden Ultralytics YOLO11'i Mask R-CNN veya Faster R-CNN gibi diğer modellere tercih etmeliyim?
Ultralytics YOLO11, Mask R-CNN veya Faster R-CNN gibi diğer modellere kıyasla gerçek zamanlı performans, üstün doğruluk ve kullanım kolaylığı sunar. YOLO11, görüntüleri tek geçişte (tek aşamalı algılama) işleyerek yüksek hassasiyeti korurken önemli ölçüde daha hızlı hale getirir. Ayrıca, kullanıcıların modelleri, veri kümelerini ve eğitim işlem hatlarını verimli bir şekilde yönetmelerine olanak tanıyan Ultralytics HUB ile sorunsuz entegrasyon sağlar. Hem hız hem de doğruluk gerektiren uygulamalar için YOLO11 optimum bir denge sağlar.
Ultralytics tarafından sağlanan, örnek segmentasyonu ve takibi için YOLO11 modellerini eğitmek için uygun herhangi bir veri seti var mı?
Evet, Ultralytics, örnek segmentasyonu için YOLO11 modellerini eğitmek üzere COCO-Seg, COCO8-Seg (hızlı test için daha küçük bir alt küme), Package-Seg ve Crack-Seg dahil olmak üzere çeşitli veri kümeleri sunar. Bu veri kümeleri, örnek segmentasyon görevleri için gereken piksel düzeyinde açıklamalarla birlikte gelir. Daha özel uygulamalar için, Ultralytics formatını izleyerek özel veri kümeleri de oluşturabilirsiniz. Eksiksiz veri kümesi bilgileri ve kullanım talimatları Ultralytics Veri Kümeleri belgelerinde bulunabilir.