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 |
---|---|---|
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.
Analitik Örnekler
yolo solutions analytics show=True
# pass the source
yolo solutions analytics source="path/to/video/file.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/file.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))
# Video writer
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1920, 1080), # This is fixed
)
# Init analytics
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], # If you want to count specific classes i.e person and car with COCO pretrained model.
)
# Process video
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
Tartışma Analytics
İşte bir tablo Analytics
Argümanlar:
İsim | Tip | Varsayılan | Açıklama |
---|---|---|---|
analytics_type |
str |
line |
Grafik türü, yani "çizgi", "çubuk", "alan", "pasta" |
model |
str |
None |
Ultralytics YOLO Model Dosyasının Yolu |
line_width |
int |
2 |
Sınırlayıcı kutular için çizgi kalınlığı. |
show |
bool |
False |
Video akışının görüntülenip görüntülenmeyeceğini kontrol etmek için bayrak. |
Argümanlar model.track
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
source |
str |
None |
Resimler veya videolar için kaynak dizini belirtir. Dosya yollarını ve URL'leri destekler. |
persist |
bool |
False |
Video dizileri boyunca kimlikleri koruyarak nesnelerin kareler arasında kalıcı olarak izlenmesini sağlar. |
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. |
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.
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:
- Bir YOLO11 modeli yükleyin ve video dosyanızı açın.
- Başlatmak
Analytics
sınıfının türü "satır" olarak ayarlanmıştır. - Video kareleri arasında yineleme yaparak çizgi grafiğini kare başına nesne sayısı gibi ilgili verilerle güncelleyin.
- Çizgi grafiğini görüntüleyen çıktı videosunu kaydedin.
Örnek:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("Path/to/video/file.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,
(1920, 1080), # 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
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # 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 Analytics 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:
- 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.
- Kullanım Kolaylığı: Basit API ve fonksiyonlar, verilerin uygulanmasını ve görselleştirilmesini kolaylaştırır.
- Özelleştirme: Başlıkları, etiketleri, renkleri ve daha fazlasını özel gereksinimlerinize uyacak şekilde özelleştirin.
- 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/file.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,
(1920, 1080), # 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
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # 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ü:
- 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.
- Kullanıcı Dostu API: Minimum kod ile kurulumu ve kullanımı basit.
- Özelleştirilebilir: Renkler, etiketler ve daha fazlası için çeşitli özelleştirme seçenekleri.
- 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/file.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,
(1920, 1080), # 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
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # 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/file.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,
(1920, 1080), # 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
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # 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:
- Son Teknoloji Doğruluk: YOLO11 nesne algılama, segmentasyon ve sınıflandırma görevlerinde üstün doğruluk sağlar.
- Kullanım Kolaylığı: Kullanıcı dostu API, kapsamlı kodlama olmadan hızlı uygulama ve entegrasyon sağlar.
- Gerçek Zamanlı Performans: Gerçek zamanlı uygulamalar için uygun, yüksek hızlı çıkarım için optimize edilmiştir.
- Ç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.
- 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.