İçeriğe geç

Analitik kullanarak Ultralytics YOLO11

Giriş

Bu kılavuz, üç temel veri görselleştirme türüne kapsamlı bir genel bakış sunmaktadır: çizgi grafikler, çubuk grafikler ve pasta grafikler. Her bölüm, Python adresini kullanarak bu görselleştirmelerin nasıl oluşturulacağına dair adım adım talimatlar ve kod parçacıkları içermektedir.



İzle: Ultralytics | Çizgi Grafikler, Çubuk Grafikler, Alan ve Pasta Grafikler kullanılarak Analitik Grafikler nasıl oluşturulur?

Görsel Örnekler

Çizgi Grafiği Çubuk Arsa Pasta Grafiği
Çizgi Grafiği Çubuk Arsa Pasta Grafiği

Grafikler Neden Önemlidir?

  • Çizgi grafikler, kısa ve uzun dönemlerdeki değişiklikleri izlemek ve aynı dönemde birden fazla grup için değişiklikleri karşılaştırmak için idealdir.
  • Öte yandan çubuk grafikler, farklı kategorilerdeki miktarları karşılaştırmak ve bir kategori ile sayısal değeri arasındaki ilişkileri göstermek için uygundur.
  • Son olarak, pasta grafikler kategoriler arasındaki oranları göstermek ve bir bütünün parçalarını göstermek için etkilidir.

Ultralytics YOLO kullanarak analitik

yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True
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))
out = cv2.VideoWriter(
    "analytics_output.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

# Initialize analytics object
analytics = solutions.Analytics(
    show=True,  # display the output
    analytics_type="line",  # pass the analytics type, could be "pie", "bar" or "area".
    model="yolo11n.pt",  # path to the YOLO11 model file
    # classes=[0, 2],  # display analytics for specific detection classes
)

# Process video
frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame

        # print(results)  # access the output

        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()  # destroy all opened windows

Analytics Argümanlar

İşte Analitik argümanlarını özetleyen bir tablo:

Tartışma Tip Varsayılan Açıklama
model str None Ultralytics YOLO Model Dosyasının Yolu.
analytics_type str line Grafik türü, örn, line, bar, areaveya pie.

Aynı zamanda farklı track içindeki argümanlar Analytics Çözüm.

Tartışma Tip Varsayılan Açıklama
tracker str 'botsort.yaml' Kullanılacak izleme algoritmasını belirtir, örn, bytetrack.yaml veya botsort.yaml.
conf float 0.3 Algılamalar için güven eşiğini ayarlar; düşük değerler daha fazla nesnenin izlenmesine izin verir ancak yanlış pozitifler içerebilir.
iou float 0.5 Çakışan algılamaları filtrelemek için Birlik üzerinde Kesişim (IoU) eşiğini ayarlar.
classes list None Sonuçları sınıf dizinine 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 ederek 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 CPU, belirli bir GPU veya model yürütme için diğer hesaplama cihazları arasında seçim yapmasına olanak tanır.

Ayrıca, aşağıdaki görselleştirme argümanları da desteklenmektedir:

Tartışma Tip Varsayılan Açıklama
show bool False Eğer True, 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.

Sonuç

Farklı görselleştirme türlerinin ne zaman ve nasıl kullanılacağını anlamak, etkili veri analizi için çok önemlidir. Çizgi grafikler, çubuk grafikler ve pasta grafikler, verilerinizin hikayesini daha net ve etkili bir şekilde aktarmanıza yardımcı olabilecek temel araçlardır. Ultralytics YOLO11 Ultralytics çözümü, nesne algılama ve izleme sonuçlarınızdan bu görselleştirmeleri oluşturmak için kolaylaştırılmış bir yol sağlayarak görsel verilerinizden anlamlı içgörüler elde etmeyi kolaylaştırır.

SSS

Ultralytics YOLO11 Analytics kullanarak nasıl çizgi grafiği oluşturabilirim?

Ultralytics YOLO11 Analytics kullanarak bir çizgi grafiği oluşturmak için aşağıdaki adımları izleyin:

  1. Bir YOLO11 modeli yükleyin ve video dosyanızı açın.
  2. Başlatmak Analytics sınıfının türü "satır" olarak ayarlanmıştır.
  3. Video kareleri arasında yineleme yaparak çizgi grafiğini kare başına nesne sayısı gibi ilgili verilerle güncelleyin.
  4. Çizgi grafiğini görüntüleyen çıktı videosunu kaydedin.

Örnek:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Yapılandırma hakkında daha fazla ayrıntı için Analytics sınıfını ziyaret etmek için Analitik kullanarak Ultralytics YOLO11 Bölüm.

Çubuk grafikler oluşturmak için Ultralytics YOLO11 adresini kullanmanın faydaları nelerdir?

Çubuk grafikler oluşturmak için Ultralytics YOLO11 adresini kullanmak çeşitli avantajlar sunar:

  1. Gerçek Zamanlı Veri Görselleştirme: Dinamik güncellemeler için nesne algılama sonuçlarını çubuk grafiklere sorunsuz bir şekilde entegre edin.
  2. Kullanım Kolaylığı: Basit API ve fonksiyonlar, verilerin uygulanmasını ve görselleştirilmesini kolaylaştırır.
  3. Özelleştirme: Başlıkları, etiketleri, renkleri ve daha fazlasını özel gereksinimlerinize uyacak şekilde özelleştirin.
  4. Verimlilik: Büyük miktarda veriyi verimli bir şekilde işleyin ve video işleme sırasında grafikleri gerçek zamanlı olarak güncelleyin.

Bir çubuk grafiği oluşturmak için aşağıdaki örneği kullanın:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Daha fazla bilgi edinmek için kılavuzdaki Bar Plot bölümünü ziyaret edin.

Veri görselleştirme projelerimde pasta grafikler oluşturmak için neden Ultralytics YOLO11 adresini kullanmalıyım?

Ultralytics YOLO11 pasta grafikler oluşturmak için mükemmel bir seçimdir çünkü:

  1. Nesne Algılama ile Entegrasyon: Anında içgörüler için nesne algılama sonuçlarını doğrudan pasta grafiklere entegre edin.
  2. Kullanıcı Dostu API: Minimum kod ile kurulumu ve kullanımı basit.
  3. Özelleştirilebilir: Renkler, etiketler ve daha fazlası için çeşitli özelleştirme seçenekleri.
  4. Gerçek Zamanlı Güncellemeler: Video analiz projeleri için ideal olan verileri gerçek zamanlı olarak işleyin ve görselleştirin.

İşte hızlı bir örnek:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Daha fazla bilgi için kılavuzdaki Pasta Grafik bölümüne bakın.

Nesneleri izlemek ve görselleştirmeleri dinamik olarak güncellemek için Ultralytics YOLO11 kullanılabilir mi?

Evet, Ultralytics YOLO11 nesneleri izlemek ve görselleştirmeleri dinamik olarak güncellemek için kullanılabilir. Birden fazla nesneyi gerçek zamanlı olarak izlemeyi destekler ve izlenen nesnelerin verilerine dayalı olarak çizgi grafikler, çubuk grafikler ve pasta grafikler gibi çeşitli görselleştirmeleri güncelleyebilir.

Bir çizgi grafiğinin izlenmesi ve güncellenmesi için örnek:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Tüm işlevsellik hakkında bilgi edinmek için İzleme bölümüne bakın.

Ultralytics YOLO11 adresini OpenCV gibi diğer nesne algılama çözümlerinden farklı kılan nedir? TensorFlow?

Ultralytics YOLO11 OpenCV ve TensorFlow gibi diğer nesne algılama çözümlerinden birçok nedenden dolayı ayrılır:

  1. Son Teknoloji Doğruluk: YOLO11 nesne algılama, segmentasyon ve sınıflandırma görevlerinde üstün doğruluk sağlar.
  2. Kullanım Kolaylığı: Kullanıcı dostu API, kapsamlı kodlama olmadan hızlı uygulama ve entegrasyon sağlar.
  3. Gerçek Zamanlı Performans: Gerçek zamanlı uygulamalar için uygun, yüksek hızlı çıkarım için optimize edilmiştir.
  4. Çeşitli Uygulamalar: Çoklu nesne takibi, özel model eğitimi ve ONNX, TensorRT ve CoreML gibi farklı formatlara aktarma gibi çeşitli görevleri destekler.
  5. Kapsamlı Dokümantasyon: Kullanıcılara her adımda rehberlik edecek kapsamlı dokümantasyon ve blog kaynakları.

Daha ayrıntılı karşılaştırmalar ve kullanım örnekleri için Ultralytics Blogumuzu inceleyin.

📅1 0 ay önce oluşturuldu ✏️ 6 gün önce güncellendi

Yorumlar