Daha iyi içgörüler için Ultralytics Python paketini kullanarak bilgisayar görüşü uygulamalarından elde edilen verileri nasıl kolayca anlaşılır grafiklere dönüştüreceğinizi öğrenin.
.webp)
Daha iyi içgörüler için Ultralytics Python paketini kullanarak bilgisayar görüşü uygulamalarından elde edilen verileri nasıl kolayca anlaşılır 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, özellikle bilgisayar görüşü uygulamaları söz konusu olduğunda geçerlidir. Bilgisayar görüşü, makinelerin resimler ve videolar gibi çevreleyen dünyadan gelen görsel bilgileri yorumlamasına ve anlamasına yardımcı olan bir yapay zeka (AI) dalıdır. Ultralytics YOLO11 gibi Vision AI modelleri, bilgi edinmek için bu tür görsel verileri analiz etmeye yardımcı olabilirken, veri görselleştirme bu bilgileri anlaşılması kolay bir biçime sokmaya 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.
Hikaye anlatma ihtiyacı, veri görselleştirmenin yükselişte olmasının tam olarak nedenidir ve pazarın 2030'a kadar 18,36 milyar dolara ulaşması bekleniyor. Daha önce, bilgisayarlı görü yönteminin nasıl değerli iş analizleri sağlayabileceğini incelemiştik. Bugün, Ultralytics paketini kullanarak bilgisayarlı görü uygulamaları için nasıl net, anlayışlı analitik grafikler oluşturulacağını adım adım anlatarak bir adım daha ileri gideceğiz. Haydi 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 incelediğimize göre, bilgisayarlı görü model tahminlerinizin sonuçlarını görselleştirmek için Ultralytics Analitik çözümünü nasıl kullanacağımıza 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 gereken araçlara ve kurulum seçeneklerine bir göz atalım.
Ultralytics Python paketi, modelleri eğitmek, nesneleri tespit etmek, tahminler yürütmek ve sonuçları görselleştirmek için kolaylık sağlar. Başlamak için bir kodlama ortamına ihtiyacınız olacak. İşte üç basit seçenek:
Bu araçlar hızlı bir başlangıç yapmak için harikadır, ancak kullanıcılar Ultralytics'i Visual Studio Code (VS Code) gibi Entegre Geliştirme Ortamlarına (IDE'ler) veya üretim hatlarına da entegre edebilir. 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 bir CPU kullandığını ve bunun performansı yavaşlatabileceğini unutmayın. İşlemleri hızlandırmak için "Çalışma zamanı" menüsüne gidip, "Çalışma zamanı türünü değiştir"i seçerek donanım hızlandırıcısını GPU (ideal olarak bir T4) olarak ayarlayın.
Ortamınızı hazırlamak için, aşağıda belirtilen komutu kullanarak Ultralytics Python paketini yüklemeniz gerekir. Colab veya Jupyter gibi not defteri tabanlı araçlarda, komutun önüne bir ünlem işareti (!) eklediğinizden emin olun.
pip install ultralytics
Ardından, çalışmak için bir videoya ihtiyacımız olacak. Pexels gibi ücretsiz bir stok sitesinden kolayca indirebilirsiniz. YOLO11'in algılayabileceği nesneleri içeren bir video seçtiğinizden emin olun. Model COCO veri kümesi üzerinde önceden eğitilmiş olduğundan, 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.
İlk olarak, bilgisayarlı görü alanında resim 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 tespiti yapmamı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 Analiz çözümünü ayarlayacağız. Verilerin nasıl görüntüleneceğini (çizgi, pasta, alan veya çubuk grafik gibi) 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 kayıtlarını, zaman içinde kaç kişinin veya nesnenin göründüğünü takip etmek gibi, neler olup bittiğini ortaya çıkaran net ve bilgilendirici 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.