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.
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.
Her dakika, havaalanı terminallerinden ve tren istasyonlarından alışveriş merkezlerine kadar muazzam miktarda veri oluşturuluyor. Yapay zeka daha yaygın olarak kullanıldıkça, bu verilerin çoğu artık analiz ediliyor ve parçalara ayrı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 veri görselleştirme burada devreye giriyor - karmaşık çıktıları açık, kolayca sindirilebilir içgörülere dönüştürüyor.
Bu durum özellikle bilgisayarla görme uygulamaları söz konusu olduğunda geçerlidir. Bilgisayarla görme, makinelerin çevredeki dünyadan gelen görüntüler ve videolar gibi görsel bilgileri yorumlamasına ve anlamasına yardımcı olan bir yapay zeka (AI) dalıdır. 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 söylemek 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ı gerekir.
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!

Bilgisayarlı görü uygulamalarında veri görselleştirme, nesne tespiti ve takibi gibi bilgisayarlı görü görevlerinin sonuçlarını, anlaşılması kolay grafiklere veya panolara dönüştürmeyi içerir. Bu görseller, özellikle büyük miktarda video kaydıyla çalışırken, kalıpları ve eğilimleri belirlemeye yardımcı olur.
Örneğin, saatlerce süren güvenlik kamerasını manuel olarak incelemek yerine, zaman içinde tespit edilen araba veya insan sayısını gösteren basit bir çizgi grafiği, yoğun saatleri veya alışılmadık derecede sessiz dönemleri hızla vurgulayabilir.
Veri görselleştirmenin faydalı olmasının bazı temel nedenleri şunlardır:
Farklı türdeki analitik grafikler, bilgisayarlı görü sonuçlarını net, anlaşılması kolay görsellere dönüştürebilir. Diyelim ki, güvenlik görüntülerinde insanları ve araçları tespit eden bir bilgisayarlı görü uygulaması üzerinde çalışıyorsunuz. Bu durumda, bir çizgi grafiği, gün boyunca ayak trafiğindeki artışları izlemek gibi, tespit 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 olup olmadığını görmek gibi, tespit edilen farklı nesne türlerinin sayısını karşılaştırmak istediğinizde faydalıdır. Pasta grafikler ise, her nesne türünün toplam tespitlerin yüzde kaçını oluşturduğunu gösterir. Her grafiğin kendi kullanımı vardır ve karmaşık bilgisayarlı görü verilerinin yorumlanmasını ve paylaşılmasını kolaylaştırmaya 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 detect , 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. Yukarıda bahsedilen ortamlardan herhangi birini, en rahat ettiğiniz hangisiyse onu 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 ultralyticsArdından, üzerinde çalışmak için bir videoya ihtiyacımız olacak. Pexels gibi ücretsiz bir stok sitesinden kolayca bir tane indirebilirsiniz. YOLO11 'in detect 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ğitim için, yoğun bir havaalanı terminalinde bagaj taşıma videosu kullanacağız. Aynı videoyu kullanabilir veya projenize uygun farklı bir video seçebilirsiniz.

Ardından, gerekli kütüphaneleri içe aktarabilir ve girdi 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, yolunu belirterek video dosyasını açmayı deneyeceğiz. Lütfen "path/to/video.mp4" ifadesini, indirdiğiniz video dosyasının gerçek konumuyla değiştirdiğinizden emin olun.
Ayrıca, aşağıdaki kod parçacığı, videonun doğru şekilde yüklenmesini sağlamak için basit bir kontrol içerir. Yol yanlışsa veya dosya bozuksa, program duracak ve bir hata mesajı gösterecektir: "Video dosyası okuma hatası."
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ısı ayarlayacağız. Analizleri ç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çacığında, önce giriş videosundan temel özellikleri (genişlik, yükseklik ve saniyedeki kare sayısı (fps)) çıkarıyoruz. Bu değerler doğrudan videodan alınır ve çıktıyı yazmak için doğru biçimde olduklarından emin olmak için tamsayılara dönüştürülür.
Ardından, "analytics_output.avi" adında yeni bir video dosyası oluşturmak için cv2.VideoWriter işlevini kullanıyoruz (gerekirse 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 bölümü, videoyu bir seferde bir kare işleyen bir döngü çalıştırır. Her kare, grafiği gerçek zamanlı olarak güncelleyen analiz aracına geçirilir. Güncellenen grafik daha sonra çıktı videosuna yazılır. Bir kare okunamıyorsa, 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 iki VideoWriter örneği oluşturacağız: biri tahmin videosunu kaydetmek için, diğeri ise analizler için. Bu kod versiyonu hem nesne takibi hem de grafik oluşturmayı içerir, böylece algılama sonuçlarını görsel içgörülerle birlikte 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” algılamalara dayalı gerçek zamanlı analiz grafiklerini gösterecektir.

İşte tahminlere dayalı analiz çıktısından bir kare. Alan grafiğini kullanarak, bavul sayısındaki zaman içindeki dalgalanmalar gibi içgörüler elde edebiliriz; örneğin, 268. kare civarında bir artış, videonun o bölümünde bavul hareketi veya aktivite olduğunu gösterir.

İşte veri görselleştirmenin anlamlı bir etkiye sahip olduğu bazı gerçek dünya bilgisayarlı görü 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 bilgisayarlı görü projenize başlamak için lisanslama seçeneklerimize göz atın. Çözüm sayfalarımızda üretimde yapay zeka ve lojistik sektöründe bilgisayarlı görü gibi yenilikler hakkında daha fazla bilgi edinin.