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 |
---|---|---|
![]() |
![]() |
![]() |
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:
- Bir YOLO11 modelini yükleyin ve video dosyanızı açın.
- Şunu başlat:
Analytics
türü "line" olarak ayarlanmış sınıf. - Video kareleri arasında yineleme yaparak, çerçeve başına nesne sayıları gibi ilgili verilerle çizgi grafiğini 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.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:
- 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: Belirli gereksinimlerinize uyacak şekilde başlıkları, etiketleri, renkleri ve daha fazlasını ö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 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ü:
- 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.
- Kullanıcı Dostu API: Kurulumu ve kullanımı kolaydır ve minimum kod gerektirir.
- Özelleştirilebilir: Renkler, etiketler ve daha fazlası için çeşitli özelleştirme seçenekleri.
- 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:
- 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 gerektirmeden hızlı uygulama ve entegrasyona olanak tanır.
- Gerçek Zamanlı Performans: Yüksek hızlı çıkarım için optimize edilmiştir, gerçek zamanlı uygulamalar için uygundur.
- Ç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.
- 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.