Daha iyi içgörüler için Ultralytics Python paketini kullanarak bilgisayarla görme uygulamalarından gelen verileri nasıl anlaşılması kolay grafiklere dönüştüreceğinizi öğrenin.
Havaalanı terminalleri ve tren istasyonlarından alışveriş merkezlerine kadar her dakika büyük miktarda veri üretiliyor. Yapay zeka daha yaygın bir şekilde kullanılmaya başlandıkça, bu verilerin çoğu analiz edilip ayrıştırılıyor. Ancak bazen bu yapay zeka modellerinden elde edilen sonuçlar, kalıpları tespit etmeyi veya eğilimleri bir bakışta anlamayı zorlaştırabilir. İşte bu noktada veri görselleştirme yardımcı olur - karmaşık çıktıları net, sindirimi kolay içgörülere dönüştürür.
Bu durum özellikle bilgisayarla görme uygulamaları söz konusu olduğunda geçerlidir. Bilgisayarla görme, yapay zekanın (AI) bir dalıdır ve makinelerin, görüntüler ve videolar gibi çevredeki dünyadan gelen görsel bilgileri yorumlamasına ve anlamasına yardımcı olur. Vision AI modelleri, örneğin Ultralytics YOLO11bilgi edinmek için bu tür görsel verilerin analiz edilmesine yardımcı olabilir, veri görselleştirme bu bilgilerin anlaşılması kolay bir formata sokulmasına yardımcı olur.
Basitçe ifade etmek gerekirse veri görselleştirme, anlamlı analitik grafikler kullanarak ham veri ile gerçek anlayış arasındaki boşluğu doldurur. Günümüzün veri odaklı dünyasında bu çok önemlidir çünkü makinelerin sadece görevleri yerine getirmesi yeterli değildir - bir hikaye anlatmalarına ihtiyacımız vardır.
Bu hikaye anlatma ihtiyacı, 2030 yılına kadar 18,36 milyar dolara ulaşması beklenen veri görselleştirme pazarının yükselişte olmasının nedenidir. Daha önce, bilgisayarla görmenin nasıl değerli iş içgörüleri sağlayabileceğini incelemiştik. Bugün, Ultralytics paketini kullanarak bilgisayarla görme uygulamaları için nasıl net ve anlaşılır analitik grafikler oluşturacağımızı anlatarak bunu bir adım öteye taşıyacağız. Hadi başlayalım!
Bilgisayarla görme uygulamalarında veri görselleştirme, nesne algılama ve izleme gibi bilgisayarla görme görevlerinin sonuçlarının anlaşılması kolay grafiklere veya gösterge tablolarına dönüştürülmesini içerir. Bu görseller, özellikle büyük hacimli video görüntüleriyle çalışırken kalıpların ve eğilimlerin belirlenmesine yardımcı olur.
Örneğin, saatlerce süren güvenlik kamerası videolarını manuel olarak incelemek yerine, zaman içinde tespit edilen araba veya insan sayısını gösteren basit bir çizgi grafik, yoğun saatleri veya alışılmadık derecede sessiz dönemleri hızlı bir şekilde vurgulayabilir.
İşte veri görselleştirmenin yararlı olmasının bazı temel nedenleri:
Farklı analitik grafik türleri, bilgisayarla görme sonuçlarını net, anlaşılması kolay görsellere dönüştürebilir. Diyelim ki güvenlik kamerası görüntülerindeki insanları ve araçları tespit eden bir bilgisayarla görme uygulaması üzerinde çalışıyorsunuz. Bu durumda, bir çizgi grafiği, gün boyunca yaya trafiğindeki zirveleri izlemek gibi, algılama sayısının zaman içinde nasıl değiştiğini göstermek için harikadır.
Benzer şekilde, çubuk grafikler, videoda daha fazla araba, bisiklet veya yaya görünüp görünmediğini görmek gibi tespit edilen farklı nesne türlerinin sayısını karşılaştırmak istediğinizde yardımcı olur. Pasta grafikler ise her bir nesne türünün toplam tespitlerin yüzde kaçını oluşturduğunu gösterir. Her grafiğin kendine özgü bir kullanımı vardır ve karmaşık bilgisayarla görme verilerinin daha kolay yorumlanmasına ve paylaşılmasına yardımcı olur.
Veri görselleştirmenin ne olduğunu ve farklı analitik grafik türlerinin neden önemli olduğunu keşfettiğimize göre, bilgisayarla görme modeli tahminlerinizin sonuçlarını görselleştirmek için Ultralytics Analytics çözümünün nasıl kullanılacağına daha yakından bakalım. Adım adım süreci incelemeden önce, Ultralytics paketini ve YOLO11 gibi modelleri eğitmek ve kullanmak için araçlara ve kurulum seçeneklerine bir göz atalım.
Ultralytics Python paketi, modelleri eğitmeyi, nesneleri algılamayı, tahminleri çalıştırmayı ve sonuçları görselleştirmeyi kolaylaştırır. Kullanmaya başlamak için bir kodlama ortamına ihtiyacınız olacak. İşte üç basit seçenek:
Bu araçlar hızlı bir şekilde başlamak için harikadır, ancak kullanıcılar Ultralytics 'i Visual Studio Code (VS Code) gibi Tümleşik Geliştirme Ortamlarına (IDE'ler) veya üretim boru hatlarına da entegre edebilirler. Daha fazla seçenek için resmi Ultralytics belgelerini inceleyin.
Tercih ettiğiniz ortamı seçtikten sonra, bir sonraki adım tahminleri çalıştırmak ve sonuçları görselleştirmek için ortamı ayarlamaktır. En rahat olduğunuz ortama bağlı olarak yukarıda belirtilen ortamlardan herhangi birini kullanabilirsiniz.
Google Colab'da çalışıyorsanız, varsayılan olarak CPU kullandığını ve bunun performansı yavaşlatabileceğini unutmayın. İşleri hızlandırmak için "Çalışma Zamanı" menüsüne gidip "Çalışma zamanı türünü değiştir "i seçerek ve donanım hızlandırıcıyı GPU (ideal olarak bir T4) olarak ayarlayarak bir GPU 'ya geçin.
Ortamınızı hazır hale getirmek için, aşağıda belirtilen komutu kullanarak Ultralytics Python paketini yüklemeniz gerekir. Colab veya Jupyter gibi not defteri tabanlı araçlarda, komuttan önce bir ünlem işareti (!) eklediğinizden emin olun.
pip install ultralytics
Ardından, üzerinde çalışmak için bir videoya ihtiyacımız olacak. Pexels gibi ücretsiz bir stok sitesinden kolayca bir tane indirebilirsiniz. YOLO11 'in algılayabileceği nesneleri içeren bir video seçtiğinizden emin olun. Model COCO veri kümesi üzerinde önceden eğitildiği için insanlar, arabalar ve bisikletler gibi yaygın nesneleri tanıyabilir.
Bu eğitimde, yoğun bir havaalanı terminalinde bagaj işlemlerini gösteren bir video kullanacağız. Siz de aynı videoyu kullanabilir veya projenize uygun farklı bir video seçebilirsiniz.
Ardından, gerekli kütüphaneleri içe aktarabilir ve giriş videosunu yükleyebiliriz.
Bilgisayarla görmede görüntüler ve videolarla çalışmak için yaygın olarak kullanılan bir kütüphane olan OpenCV'yi (cv2) içe aktararak başlayacağız. Ayrıca, nesne algılamayı çalıştırmamıza ve videodan analizler oluşturmamıza yardımcı olan Ultralytics kütüphanesini de içe aktaracağız.
Ardından, video dosyasını yolunu belirterek açmaya çalışacağız. "path/to/video.mp4" yerine indirdiğiniz video dosyasının gerçek konumunu yazdığınızdan emin olun.
Ayrıca, aşağıdaki kod parçacığı videonun doğru yüklendiğinden emin olmak için basit bir kontrol içerir. Yol yanlışsa veya dosya bozuksa, program duracak ve bir hata mesajı gösterecektir: "Video dosyası okunurken hata oluştu."
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
Ardından, çıktıyı kaydetmek için bir video yazıcı ayarlayacağız. Analitiği çalıştırdığımızda, kodun bu kısmı orijinal videonun her karesinden oluşturulan güncellenmiş grafikleri kaydeden yeni bir video dosyası oluşturacaktır.
Aşağıdaki kod parçasında, ilk olarak giriş videosundan genişlik, yükseklik ve saniye başına kare (fps) gibi temel özellikleri çıkarıyoruz. Bu değerler doğrudan videodan alınır ve çıktıyı yazmak için doğru formatta olduklarından emin olmak için tam sayılara dönüştürülür.
Ardından, cv2.VideoWriter işlevini kullanarak "analytics_output.avi" adında yeni bir video dosyası oluşturuyoruz (gerektiği gibi yeniden adlandırabilirsiniz). Video, yaygın bir video sıkıştırma yöntemi olan MJPG formatı kullanılarak kaydedilir. Çıktı çözünürlüğü, orijinal videonun boyutundan bağımsız olarak 1280×720 piksel olarak ayarlanır.
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),
)
Şimdi, videodan grafikler oluşturmak için Ultralytics çözümünü ayarlayacağız. Çizgi, pasta, alan veya çubuk grafik gibi verilerin nasıl görüntüleneceğini ve hangi YOLO modelinin kullanılacağını seçebilirsiniz. Bu örnekte, hafif "yolo11n.pt" modelini kullanacağız ve sonuçları bir alan grafiği olarak göstereceğiz.
analytics = solutions.Analytics(
show=True,
analytics_type="area",
model="yolo11n.pt",
)
Kodun son kısmı, videoyu her seferinde bir kare işleyen bir döngü çalıştırır. Her kare, grafiği gerçek zamanlı olarak güncelleyen analiz aracına aktarılır. Güncellenen grafik daha sonra çıkış videosuna yazılır. Bir kare okunamazsa döngü durur. Tüm kareler işlendikten sonra video kaydedilir ve açık pencereler kapatılır.
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count)
out.write(results.plot_im)
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
Son olarak, her şeyi bir araya getirelim. Sadece birkaç ekstra kod satırıyla iki çıktı videosu oluşturabiliriz: biri YOLO11 nesne algılama sonuçlarını sınırlayıcı kutular ve etiketlerle gösterirken diğeri gerçek zamanlı analiz grafiklerini gösterir.
Bunu yapmak için, biri tahmin videosunu kaydetmek, diğeri analizler için olmak üzere iki VideoWriter örneği kuracağız. Kodun bu versiyonu hem nesne izleme hem de grafik oluşturmayı içeriyor, böylece görsel içgörülerin yanı sıra algılama sonuçlarını da görebilirsiniz.
İşte hem tahmin hem de analiz çıktılarının örnekleriyle birlikte kapsamlı kod.
import cv2
from ultralytics import YOLO, solutions
# Load model and video
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"
# Get properties
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)
# Writers for prediction and analytics videos
out_pred = cv2.VideoWriter('output_predictions.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
out_ana = cv2.VideoWriter('output_analytics.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, analytics_res)
# Analytics setup
analytics = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')
# Process frames
frame_count = 0
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
frame_count += 1
pred_frame = model.track(frame, persist=True)[0].plot()
out_pred.write(pred_frame)
resized = cv2.resize(pred_frame, analytics_res)
out_ana.write(analytics(resized, frame_count).plot_im)
cap.release(), out_pred.release(), out_ana.release(), cv2.destroyAllWindows()
Yukarıdaki kod başarıyla çalıştığında, iki çıktı videosu oluşturacaktır. "output_predictions.avi" dosyası nesne algılama sonuçlarını sınırlayıcı kutular ve etiketlerle gösterirken, "output_analytics.avi" dosyası algılamalara dayalı gerçek zamanlı analiz grafiklerini gösterecektir.
İşte tahminlere dayalı analiz çıktısından bir kare. Alan grafiğini kullanarak, zaman içinde bavul sayılarındaki dalgalanmalar gibi içgörüler elde edebiliriz; örneğin 268. karenin etrafındaki ani artış, videonun o bölümündeki bavul hareketini veya etkinliğini gösterir.
İşte veri görselleştirmenin anlamlı bir etkiye sahip olduğu bazı gerçek dünya bilgisayarla görme uygulamaları:
Ultralytics paketi ile video görüntülerini, zaman içinde kaç kişinin veya nesnenin göründüğünü izlemek gibi neler olduğunu ortaya çıkaran net, anlayışlı grafiklere kolayca dönüştürebilirsiniz. Saatlerce süren videoları manuel olarak incelemek yerine, önemli kalıpları ve eğilimleri vurgulayan görsel özetler oluşturarak hızlı hareket etmeyi kolaylaştırabilirsiniz. İster hastanelerde, ister perakende mağazalarında veya üretim tesislerinde olsun, bu grafikler karmaşık yapay zeka çıktılarını herkesin anlayabileceği ve kullanabileceği içgörülere dönüştürür.
Yapay zeka hakkında daha fazla bilgi edinmek ister misiniz? GitHub depomuzu keşfedin, topluluğumuzla bağlantı kurun ve bilgisayarla görme projenize hızlı bir başlangıç yapmak için lisanslama seçeneklerimize göz atın. Çözüm sayfalarımızda üretimde yapay zeka ve lojistik sektöründe bilgisayarla görme gibi yenilikler hakkında daha fazla bilgi edinin.
Makine öğreniminin geleceği ile yolculuğunuza başlayın