Gelişmiş Veri Görselleştirme: Ultralytics YOLOv8 kullanarak ısı haritaları 🚀
Isı Haritalarına Giriş
ile oluşturulan bir ısı haritası Ultralytics YOLOv8 karmaşık verileri canlı, renk kodlu bir matrise dönüştürür. Bu görsel araç, değişen veri değerlerini temsil etmek için daha sıcak tonların daha yüksek yoğunlukları ve daha soğuk tonların daha düşük değerleri belirttiği bir renk yelpazesi kullanır. Isı haritaları karmaşık veri modellerini, korelasyonları ve anomalileri görselleştirmede mükemmeldir ve çeşitli alanlarda veri yorumlamasına erişilebilir ve ilgi çekici bir yaklaşım sunar.
İzle: Isı haritaları kullanarak Ultralytics YOLOv8
Veri Analizi için Neden Isı Haritalarını Seçmelisiniz?
- Sezgisel Veri Dağılımı Görselleştirme: Isı haritaları, karmaşık veri kümelerini anlaşılması kolay görsel formatlara dönüştürerek veri yoğunluğu ve dağılımının anlaşılmasını kolaylaştırır.
- Etkili Örüntü Tespiti: Verileri ısı haritası biçiminde görselleştirerek eğilimleri, kümeleri ve aykırı değerleri tespit etmek daha kolay hale gelir ve daha hızlı analiz ve içgörü sağlar.
- Gelişmiş Mekânsal Analiz ve Karar Alma: Isı haritaları mekânsal ilişkilerin gösterilmesinde etkilidir ve iş zekâsı, çevre çalışmaları ve şehir planlama gibi sektörlerde karar alma süreçlerine yardımcı olur.
Gerçek Dünya Uygulamaları
Ulaşım | Perakende |
---|---|
Ultralytics YOLOv8 Ulaşım Isı Haritası | Ultralytics YOLOv8 Perakende Isı Haritası |
Isı Haritası Yapılandırması
heatmap_alpha
: Bu değerin (0,0 - 1,0) aralığında olduğundan emin olun.decay_factor
: Bir nesne artık çerçevede olmadıktan sonra ısı haritasını kaldırmak için kullanılır, değeri de (0.0 - 1.0) aralığında olmalıdır.
Ultralytics kullanarak ısı haritalarıYOLOv8 Örnek
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
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
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init heatmap
heatmap_obj = solutions.Heatmap(
colormap=cv2.COLORMAP_PARULA,
view_img=True,
shape="circle",
names=model.names,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False)
im0 = heatmap_obj.generate_heatmap(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
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
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
line_points = [(20, 400), (1080, 404)] # line for object counting
# Init heatmap
heatmap_obj = solutions.Heatmap(
colormap=cv2.COLORMAP_PARULA,
view_img=True,
shape="circle",
count_reg_pts=line_points,
names=model.names,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False)
im0 = heatmap_obj.generate_heatmap(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
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
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Define polygon points
region_points = [(20, 400), (1080, 404), (1080, 360), (20, 360), (20, 400)]
# Init heatmap
heatmap_obj = solutions.Heatmap(
colormap=cv2.COLORMAP_PARULA,
view_img=True,
shape="circle",
count_reg_pts=region_points,
names=model.names,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False)
im0 = heatmap_obj.generate_heatmap(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
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
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Define region points
region_points = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
# Init heatmap
heatmap_obj = solutions.Heatmap(
colormap=cv2.COLORMAP_PARULA,
view_img=True,
shape="circle",
count_reg_pts=region_points,
names=model.names,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False)
im0 = heatmap_obj.generate_heatmap(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8s.pt") # YOLOv8 custom/pretrained model
im0 = cv2.imread("path/to/image.png") # path to image file
h, w = im0.shape[:2] # image height and width
# Heatmap Init
heatmap_obj = solutions.Heatmap(
colormap=cv2.COLORMAP_PARULA,
view_img=True,
shape="circle",
names=model.names,
)
results = model.track(im0, persist=True)
im0 = heatmap_obj.generate_heatmap(im0, tracks=results)
cv2.imwrite("ultralytics_output.png", im0)
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
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
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
classes_for_heatmap = [0, 2] # classes for heatmap
# Init heatmap
heatmap_obj = solutions.Heatmap(
colormap=cv2.COLORMAP_PARULA,
view_img=True,
shape="circle",
names=model.names,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False, classes=classes_for_heatmap)
im0 = heatmap_obj.generate_heatmap(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Argümanlar Heatmap()
İsim | Tip | Varsayılan | Açıklama |
---|---|---|---|
names |
list |
None |
Sınıf adları sözlüğü. |
imw |
int |
0 |
Görüntü genişliği. |
imh |
int |
0 |
Resim yüksekliği. |
colormap |
int |
cv2.COLORMAP_JET |
Isı haritası için kullanılacak renk haritası. |
heatmap_alpha |
float |
0.5 |
Isı haritası kaplaması için alfa karıştırma değeri. |
view_img |
bool |
False |
Görüntünün ısı haritası kaplamasıyla görüntülenip görüntülenmeyeceği. |
view_in_counts |
bool |
True |
Bölgeye giren nesnelerin sayısının görüntülenip görüntülenmeyeceği. |
view_out_counts |
bool |
True |
Bölgeden çıkan nesnelerin sayısının görüntülenip görüntülenmeyeceği. |
count_reg_pts |
list veya None |
None |
Sayım bölgesini tanımlayan noktalar (bir çizgi veya bir çokgen). |
count_txt_color |
tuple |
(0, 0, 0) |
Sayıları görüntülemek için metin rengi. |
count_bg_color |
tuple |
(255, 255, 255) |
Sayıları görüntülemek için arka plan rengi. |
count_reg_color |
tuple |
(255, 0, 255) |
Sayma bölgesi için renk. |
region_thickness |
int |
5 |
Bölge çizgisinin kalınlığı. |
line_dist_thresh |
int |
15 |
Çizgi tabanlı sayım için mesafe eşiği. |
line_thickness |
int |
2 |
Çizimde kullanılan çizgilerin kalınlığı. |
decay_factor |
float |
0.99 |
Isı haritasının zaman içinde yoğunluğunu azaltmak için bozunma faktörü. |
shape |
str |
"circle" |
Isı haritası lekelerinin şekli ('daire' veya 'dikdörtgen'). |
Argümanlar model.track
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
source |
str |
None |
Specifies the source directory for images or videos. Supports file paths and URLs. |
persist |
bool |
False |
Enables persistent tracking of objects between frames, maintaining IDs across video sequences. |
tracker |
str |
botsort.yaml |
Specifies the tracking algorithm to use, e.g., bytetrack.yaml veya botsort.yaml . |
conf |
float |
0.3 |
Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives. |
iou |
float |
0.5 |
Sets the Intersection over Union (IoU) threshold for filtering overlapping detections. |
classes |
list |
None |
Filters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes. |
verbose |
bool |
True |
Controls the display of tracking results, providing a visual output of tracked objects. |
Isı Haritası COLORMAPs
Renk Haritası Adı | Açıklama |
---|---|
cv::COLORMAP_AUTUMN |
Sonbahar renk haritası |
cv::COLORMAP_BONE |
Kemik renk haritası |
cv::COLORMAP_JET |
Jet renk haritası |
cv::COLORMAP_WINTER |
Kış renk haritası |
cv::COLORMAP_RAINBOW |
Gökkuşağı renk haritası |
cv::COLORMAP_OCEAN |
Okyanus renk haritası |
cv::COLORMAP_SUMMER |
Yaz renk haritası |
cv::COLORMAP_SPRING |
Bahar renk haritası |
cv::COLORMAP_COOL |
Harika renk haritası |
cv::COLORMAP_HSV |
HSV (Ton, Doygunluk, Değer) renk haritası |
cv::COLORMAP_PINK |
Pembe renkli harita |
cv::COLORMAP_HOT |
Sıcak renk haritası |
cv::COLORMAP_PARULA |
Parula renk haritası |
cv::COLORMAP_MAGMA |
Magma renk haritası |
cv::COLORMAP_INFERNO |
Inferno renk haritası |
cv::COLORMAP_PLASMA |
Plazma renk haritası |
cv::COLORMAP_VIRIDIS |
Viridis renk haritası |
cv::COLORMAP_CIVIDIS |
Cividis renkli harita |
cv::COLORMAP_TWILIGHT |
Alacakaranlık renk haritası |
cv::COLORMAP_TWILIGHT_SHIFTED |
Kaydırılmış Alacakaranlık renk haritası |
cv::COLORMAP_TURBO |
Turbo renk haritası |
cv::COLORMAP_DEEPGREEN |
Derin Yeşil renk haritası |
Bu renk haritaları, verileri farklı renk gösterimleriyle görselleştirmek için yaygın olarak kullanılır.
SSS
Ultralytics YOLOv8 ısı haritalarını nasıl oluşturur ve bunların faydaları nelerdir?
Ultralytics YOLOv8 karmaşık verileri, farklı tonların veri yoğunluklarını temsil ettiği renk kodlu bir matrise dönüştürerek ısı haritaları oluşturur. Isı haritaları, verilerdeki desenleri, korelasyonları ve anormallikleri görselleştirmeyi kolaylaştırır. Daha sıcak tonlar daha yüksek değerleri gösterirken, daha soğuk tonlar daha düşük değerleri temsil eder. Başlıca faydaları arasında veri dağılımının sezgisel olarak görselleştirilmesi, etkili örüntü tespiti ve karar verme için gelişmiş uzamsal analiz yer alır. Daha fazla ayrıntı ve yapılandırma seçenekleri için Isı Haritası Yapılandırması bölümüne bakın.
Nesne takibi yapmak ve aynı anda bir ısı haritası oluşturmak için Ultralytics YOLOv8 adresini kullanabilir miyim?
Evet, Ultralytics YOLOv8 nesne izleme ve ısı haritası oluşturmayı aynı anda destekler. Bu, onun aracılığıyla elde edilebilir Heatmap
çözümü nesne izleme modelleri ile entegre edilmiştir. Bunu yapmak için, ısı haritası nesnesini başlatmanız ve YOLOv8'un izleme özelliklerini kullanmanız gerekir. İşte basit bir örnek:
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
heatmap_obj = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, view_img=True, shape="circle", names=model.names)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
tracks = model.track(im0, persist=True, show=False)
im0 = heatmap_obj.generate_heatmap(im0, tracks)
cv2.imshow("Heatmap", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Daha fazla rehberlik için İzleme Modu sayfasını kontrol edin.
Ultralytics YOLOv8 ısı haritalarını OpenCV veya Matplotlib gibi diğer veri görselleştirme araçlarından farklı kılan nedir?
Ultralytics YOLOv8 ısı haritaları, nesne algılama ve izleme modelleriyle entegrasyon için özel olarak tasarlanmıştır ve gerçek zamanlı veri analizi için uçtan uca bir çözüm sunar. OpenCV veya Matplotlib gibi genel görselleştirme araçlarının aksine, YOLOv8 ısı haritaları performans ve otomatik işleme için optimize edilmiştir ve kalıcı izleme, bozunma faktörü ayarı ve gerçek zamanlı video kaplaması gibi özellikleri destekler. YOLOv8 'un benzersiz özellikleri hakkında daha fazla bilgi için Ultralytics YOLOv8 Giriş bölümünü ziyaret edin.
Ultralytics YOLOv8 kullanarak ısı haritalarında yalnızca belirli nesne sınıflarını nasıl görselleştirebilirim?
'de istediğiniz sınıfları belirterek belirli nesne sınıflarını görselleştirebilirsiniz. track()
YOLO yöntemini kullanabilirsiniz. Örneğin, yalnızca arabaları ve kişileri görselleştirmek istiyorsanız (sınıf indekslerinin 0 ve 2 olduğunu varsayarak) classes
parametresini buna göre ayarlayın.
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
heatmap_obj = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, view_img=True, shape="circle", names=model.names)
classes_for_heatmap = [0, 2] # Classes to visualize
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
tracks = model.track(im0, persist=True, show=False, classes=classes_for_heatmap)
im0 = heatmap_obj.generate_heatmap(im0, tracks)
cv2.imshow("Heatmap", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
İşletmeler veri analizinde ısı haritası oluşturmak için neden Ultralytics YOLOv8 adresini seçmelidir?
Ultralytics YOLOv8 gelişmiş nesne algılama ve gerçek zamanlı ısı haritası oluşturmanın sorunsuz entegrasyonunu sunarak verileri daha etkili bir şekilde görselleştirmek isteyen işletmeler için ideal bir seçimdir. Temel avantajlar arasında sezgisel veri dağılımı görselleştirme, verimli örüntü algılama ve daha iyi karar verme için gelişmiş mekansal analiz yer alır. Ayrıca, YOLOv8'un kalıcı izleme, özelleştirilebilir renk haritaları ve çeşitli dışa aktarma formatları desteği gibi son teknoloji özellikleri, kapsamlı veri analizi için TensorFlow ve OpenCV gibi diğer araçlardan daha üstün olmasını sağlar. Ultralytics Plans adresinden iş uygulamaları hakkında daha fazla bilgi edinin.