İçeriğe geç

Ultralytics YOLO11 kullanılarak analiz

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 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 kullanarak Analitik Grafikler Nasıl Oluşturulur | Çizgi Grafikler, Çubuk Grafikler, Alan ve Pasta Grafikler

Görsel Örnekler

Çizgi Grafiği Çubuk Grafiği Pasta Grafik
Çizgi Grafiği Çubuk Grafiği Pasta Grafik

Grafikler Neden Önemli

  • Çizgi grafikleri, kısa ve uzun dönemlerdeki değişiklikleri izlemek ve aynı dönemdeki 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 Analytics argümanlarını özetleyen bir tablo:

Argüman Tür Varsayılan Açıklama
model str None Ultralytics YOLO Model Dosyasına Giden Yol.
analytics_type str line Grafik türü, örneğin, line, bar, area, veya pie.

Ayrıca farklı olanaklardan da yararlanabilirsiniz: track içindeki argümanlar Analytics çö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.

Ek olarak, aşağıdaki görselleştirme argümanları desteklenir:

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.

Sonuç

Farklı görselleştirme türlerini ne zaman ve nasıl kullanacağınızı 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 Analytics çö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 etmenizi kolaylaştırır.

SSS

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

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

  1. Bir YOLO11 modelini yükleyin ve video dosyanızı açın.
  2. Şunu başlat: Analytics türü "line" olarak ayarlanmış sınıf.
  3. Video kareleri arasında yineleme yaparak, çerçeve başına nesne sayıları gibi ilgili verilerle çizgi grafiğini 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()

Şunu yapılandırma hakkında daha fazla bilgi için: Analytics sınıfı için şu adresi ziyaret edin: Ultralytics YOLO11 kullanılarak analiz bölüm.

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

Çubuk grafikler oluşturmak için Ultralytics YOLO11 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: Belirli gereksinimlerinize uyacak şekilde başlıkları, etiketleri, renkleri ve daha fazlasını ö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 grafik 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 Çubuk Grafik bölümünü ziyaret edin.

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

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

  1. Nesne Algılama ile Entegrasyon: Nesne algılama sonuçlarını doğrudan pasta grafiklerine entegre ederek anında içgörüler elde edin.
  2. Kullanıcı Dostu API: Kurulumu ve kullanımı kolaydır ve minimum kod gerektirir.
  3. Özelleştirilebilir: Renkler, etiketler ve daha fazlası için çeşitli özelleştirme seçenekleri.
  4. Gerçek Zamanlı Güncellemeler: Verileri gerçek zamanlı olarak işleyin ve görselleştirin; bu, video analizi projeleri için idealdir.

İş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 Grafiği bölümüne bakın.

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

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

Bir çizgi grafiğini izleme ve güncelleme 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şlevler hakkında bilgi edinmek için İzleme bölümüne bakın.

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

Ultralytics YOLO11, OpenCV ve TensorFlow gibi diğer nesne algılama çözümlerinden çeşitli nedenlerle 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 gerektirmeden hızlı uygulama ve entegrasyona olanak tanır.
  3. Gerçek Zamanlı Performans: Yüksek hızlı çıkarım için optimize edilmiştir, gerçek zamanlı uygulamalar için uygundur.
  4. Çeşitli Uygulamalar: Çoklu nesne takibi, özel model eğitimi ve ONNX, TensorRT ve CoreML gibi farklı formatlara aktarma dahil olmak üzere ç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 keşfedin.



📅 1 yıl önce oluşturuldu ✏️ 3 ay önce güncellendi

Yorumlar