Yolo Vision Shenzhen
Shenzhen
Şimdi katılın

Görselleştirmelerle bilgisayar görüşü uygulamalarını geliştirme

Nuvola Ladi

4 dakika okuma

12 Mayıs 2025

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!

Şekil 1. YOLO11'den elde edilen çıktılara dayalı olarak verilerin görselleştirilmesine bir örnek.

Bilgisayarlı görü uygulamalarında veri görselleştirmeye genel bir bakış

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:

  • Karmaşık verileri basitleştirir: Binlerce nesne tespiti bunaltıcı olabilir, ancak çubuk veya pasta grafikler gibi görselleştirmeler, büyük resmi görmeyi kolaylaştırır, örneğin hangi nesnelerin en sık göründüğünü.
  • Eğilimleri ortaya çıkarır: Çizgi ve çubuk grafikler, ayak trafiğinin ne zaman ve nerede arttığı gibi zaman içindeki kalıpları belirlemeye yardımcı olur.
  • Zaman kazandırır: Her video karesini incelemek yerine, grafikler araç etkinliğindeki ani artışlar veya kısıtlı bölgelerde alışılmadık nesne görünümleri gibi önemli ayrıntıları hızla vurgulayabilir.
  • İletişimi geliştirir: Görseller, teknik olmayan kitlelerle bilgileri paylaşmayı kolaylaştırır ve herkesin sonuçları daha net anlamasına yardımcı olur.

Farklı veri görselleştirme türleri

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.

Şekil 2. Analitik grafik örnekleri.

Bilgisayarlı görü analizleri elde etmek için analitik grafikler oluşturma

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:

  • Komut Satırı Arayüzü (CLI): Kodunuzu çalıştırmak için komutlar yazabileceğiniz temel, salt metin bir araçtır. Görsel bir arayüzü yoktur ve bir terminale veya komut istemine talimatlar yazarak onunla etkileşime girersiniz.
  • Jupyter Notebook'lar: Küçük kod parçalarını ("hücreler" olarak adlandırılır) tek tek yazabileceğiniz, çalıştırabileceğiniz ve test edebileceğiniz etkileşimli bir kodlama ortamıdır. Sonuçları doğrudan her hücrenin altında gösterir, bu da adım adım ne olduğunu anlamayı kolaylaştırır. Özellikle öğrenme ve deneme için kullanışlıdır.
  • Google Colab: Bu seçenek, Jupyter Notebooks'un web tarayıcınızda çalışan ücretsiz, bulut tabanlı bir sürümüdür. Bilgisayarınızda herhangi bir kurulum gerektirmez ve daha hızlı işlem için ücretsiz GPU'lara erişmenizi sağlar.

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.

Adım 1: Ortamın ayarlanması

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 ultralytics

Adım 2: Bir video dosyasının indirilmesi

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 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.

Şekil 3. Bir havaalanı terminalinde bagaj taşıma işlemini gösteren girdi videosundan bir kare.

Adım 3: Paketlerin içe aktarılması

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"

Adım 4: Video yazıcısını hazırlama

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), 
)

Adım 5: Ultralytics çözümünü kurma

Ş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",   
)

Adım 6: Giriş videosunu işleme

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()

Adım 7: Her şeyi bir araya getirme

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.

Şekil 4. “output_predictions.avi” dosyasından bir kare.

İş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.

Şekil 5. YOLO11 tahminleri bir alan grafiği olarak görselleştirilmiştir.

Gerçek dünya bilgisayarlı görü uygulamalarında grafiklerin kullanılması

İşte veri görselleştirmenin anlamlı bir etkiye sahip olduğu bazı gerçek dünya bilgisayarlı görü uygulamaları:

  • Sağlık Hizmetleri: Bilgisayarlı görü sistemleri, hasta aktivitesini, personel hareketini ve ekipman kullanımını gerçek zamanlı olarak izleyebilir. Bu, görselleştirildiğinde hasta doluluk oranlarının en yüksek olduğu zamanlar veya yanıt gecikmeleri gibi kalıpları ortaya çıkarabilen büyük miktarda görsel veri üretir.
  • Perakende ve e-ticaret: Görsel yapay zeka, müşteri hareketlerini, rafların önünde bekleme süresini ve ürün etkileşimlerini track için kullanılabilir. Çubuk veya pasta grafikler gibi görsel analizler, hangi mağaza bölgelerinin veya ürünlerin en çok ilgi gördüğünü vurgulayarak perakendecilerin ürün yerleşimini optimize etmesine ve dönüşümleri iyileştirmesine yardımcı olabilir.
  • Üretim: Bilgisayarlı görü modelleriyle donatılmış kameralar, montaj hatlarını kusurlar, güvenlik ihlalleri veya ekipman durumu açısından izleyebilir. Veri görselleştirme, en yaygın kusur türlerindeki eğilimleri gösterebilir veya en yüksek hata oranlarına sahip zaman dilimlerini vurgulayarak, daha hızlı karar almayı ve önleyici bakımı sağlayabilir.

Önemli çıkarımlar

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.

Gelin, yapay zekanın geleceğini
birlikte inşa edelim!

Makine öğreniminin geleceği ile yolculuğunuza başlayın

Ücretsiz başlayın