Görselleştirmeler ile bilgisayarlı görü uygulamalarını geliştirmek
Daha iyi içgörüler için Ultralytics Python paketini kullanarak bilgisayarlı görü uygulamalarından elde edilen verileri nasıl kolay anlaşılır grafiklere dönüştüreceğini öğren.

Havalimanı terminallerinden tren istasyonlarına ve alışveriş merkezlerine kadar her dakika devasa miktarda veri oluşturuluyor. Yapay zeka daha yaygın hale geldikçe, bu verilerin çoğu analiz ediliyor ve ayrıştırılıyor. Ancak bazen bu yapay zeka modellerinden gelen sonuçlarla desenleri fark etmek veya trendleri bir bakışta anlamak zor olabiliyor. İşte veri görselleştirme burada devreye giriyor; karmaşık çıktıları net, kolayca sindirilebilir içgörülere dönüştürüyor.
Bu durum özellikle bilgisayarlı görü uygulamaları söz konusu olduğunda geçerlidir. Bilgisayarlı görü, makinelerin çevrelerindeki dünyadan gelen görüntü ve video gibi görsel bilgileri yorumlamasına ve anlamasına yardımcı olan bir yapay zeka (AI) dalıdır. Ultralytics YOLO11 gibi görü yapay zeka modelleri bu tür görsel verileri analiz ederek bilgi edinmeye yardımcı olabilirken, veri görselleştirme bu bilgiyi anlaşılması kolay bir formata sokmaya 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örevlerini yerine getirmesi yeterli değildir; aynı zamanda bir hikaye anlatmalarına da ihtiyacımız var.
Hikaye anlatıcılığına duyulan bu ihtiyaç, veri görselleştirmenin tam olarak neden yükselişte olduğunun sebebidir ve pazarın 2030 yılına kadar $18.36 milyar seviyesine ulaşması beklenmektedir. Daha önce, bilgisayarlı görünün nasıl değerli iş içgörüleri sağlayabileceğini keşfetmiştik. Bugün, Ultralytics paketini kullanarak bilgisayarlı görü uygulamaları için nasıl net ve bilgilendirici analitik grafikler oluşturabileceğinizi adım adım göstererek bir adım öteye geçeceğiz. Hadi başlayalım!

Şekil 1. YOLO11 çıktılarına dayalı verilerin görselleştirilmesine bir örnek.
Link to this sectionBilgisayarlı görü uygulamalarında veri görselleştirmeye genel 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 panellere dönüştürmeyi içerir. Bu görseller, özellikle büyük hacimli video görüntüleriyle çalışırken desenleri ve trendleri tanımlamaya yardımcı olur.
Örneğin, saatlerce süren güvenlik kamerası görüntülerini 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ıca vurgulayabilir.
Veri görselleştirmenin yararlı 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, örneğin hangi nesnelerin en sık göründüğü gibi büyük resmi görmeyi kolaylaştırır.
-
Trendleri ortaya çıkarır: Çizgi ve çubuk grafikler, yaya trafiğinin ne zaman ve nerede artma eğiliminde olduğu gibi zaman içindeki desenleri tanımlamaya yardımcı olur.
-
Zaman kazandırır: Videonun her karesini incelemek yerine, grafikler araç aktivitesindeki ani artışlar veya kısıtlı bölgelerde olağandışı nesne görünümleri gibi önemli detayları hızla vurgulayabilir.
-
İletişimi geliştirir: Görseller, içgörüleri teknik olmayan kitlelerle paylaşmayı kolaylaştırarak herkesin sonuçları daha net anlamasına yardımcı olur.
Link to this sectionFarklı veri görselleştirme türleri#
Farklı türdeki analitik grafikler, bilgisayarlı görü sonuçlarını net ve anlaşılması kolay görsellere dönüştürebilir. Güvenlik görüntülerinde insanları ve araçları tespit eden bir bilgisayarlı görü uygulaması üzerinde çalıştığınızı varsayalım. Bu durumda, bir çizgi grafik, gün boyu yaya trafiğindeki zirveleri takip etmek gibi tespit sayıları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 yayanın 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 yararlıdır. Öte yandan pasta grafikler, her nesne türünün toplam tespitlerin yüzde kaçını oluşturduğunu gösterir. Her grafiğin kendi kullanım amacı vardır ve karmaşık bilgisayarlı görü verilerini yorumlamayı ve paylaşmayı kolaylaştırır.

Şekil 2. Analitik grafik örnekleri.
Link to this sectionBilgisayarlı görü içgörüleri elde etmek için analitik grafikler oluşturma#
Artık veri görselleştirmenin ne olduğunu ve neden farklı analitik grafik türlerinin önemli olduğunu incelediğimize göre, bilgisayarlı görü modeli tahminlerinizin sonuçlarını görselleştirmek için Ultralytics Analytics çözümünü nasıl kullanacağınıza daha yakından bakalım. Adım adım ilerlemeden önce, Ultralytics paketini eğitmek ve YOLO11 gibi modelleri kullanmak için araçlara ve kurulum seçeneklerine bir göz atalım.
Ultralytics Python paketi, modelleri eğitmeyi, nesneleri tespit etmeyi, tahminler yürütmeyi ve sonuçları görselleştirmeyi kolaylaştırır. Bununla 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, metin tabanlı bir araçtır. Görsel bir arayüzü yoktur ve bir terminale veya komut istemine talimatlar yazarak onunla etkileşim kurarsınız.
-
Jupyter Notebooks: Küçük kod parçalarını ("hücre" olarak adlandırılır) birer birer yazabileceğiniz, çalıştırabileceğiniz ve test edebileceğiniz interaktif bir kodlama ortamıdır. Sonuçları her hücrenin hemen altında gösterir, bu da adım adım neler olduğunu anlamayı kolaylaştırır. Özellikle öğrenme ve deneme için kullanışlıdır.
-
Google Colab: Bu seçenek, web tarayıcınızda çalışan, Jupyter Notebooks'un ü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 Entegre Geliştirme Ortamlarına (IDE) veya üretim süreçlerine entegre edebilirler. Daha fazla seçenek için resmi Ultralytics dokümantasyonuna göz atın.
Link to this sectionAdım 1: Ortamın kurulması#
Tercih ettiğiniz ortamı seçtikten sonra, bir sonraki adım onu tahminleri çalıştırmak ve sonuçları görselleştirmek için hazırlamaktır. En rahat ettiğiniz ortama bağlı olarak yukarıda belirtilen ortamlardan herhangi birini kullanabilirsiniz.
Google Colab'de çalışıyorsanız, varsayılan olarak CPU kullandığını ve bunun performansı yavaşlatabileceğini unutmayın. İşleri hızlandırmak için "Runtime" menüsüne gidip "Change runtime type" seçeneğini belirleyerek ve donanım hızlandırıcıyı GPU (tercihen bir T4) olarak ayarlayarak GPU'ya geçiş yapın.
Ortamınızı hazırlamak için, aşağıda belirtilen komutu kullanarak Ultralytics Python paketini yüklemeniz gerekecektir. Colab veya Jupyter gibi notebook tabanlı araçlarda, komuttan önce bir ünlem işareti (!) eklediğinizden emin olun.
pip install ultralyticsLink to this sectionAdım 2: Bir video dosyası indirme#
Sırada, üzerinde çalışacak bir videoya ihtiyacımız var. Pexels gibi ücretsiz stok sitelerinden kolayca bir tane indirebilirsiniz. YOLO11'in tespit edebileceği nesneleri içeren bir video seçtiğinizden emin olun. Model COCO veri kümesi üzerinde önceden eğitildiğinden, insanlar, arabalar ve bisikletler gibi yaygın nesneleri tanıyabilir.
Bu eğitim için, yoğun bir havalimanı terminalindeki bagaj taşıma videosunu kullanacağız. Aynı videoyu kullanabilir veya projenize uyan farklı bir video seçebilirsiniz.

Şekil 3. Bir havalimanı terminalinde bagaj taşımayı gösteren giriş videosundan bir kare.
Link to this sectionAdım 3: Paketleri içe aktarma#
Ardından, gerekli kütüphaneleri içe aktarabilir ve giriş videosunu yükleyebiliriz.
Bilgisayarlı görüde görüntü ve videolarla çalışmak için yaygın olarak kullanılan bir kütüphane olan OpenCV (cv2) ile içe aktarmaya başlayacağız. Ayrıca, nesne tespiti yapmamıza ve videodan analitikler oluşturmamıza yardımcı olan Ultralytics kütüphanesini de içe aktaracağız.
Ardından, yolunu belirterek video dosyasını açmaya çalışacağız. "path/to/video.mp4" ifadesini indirilen video dosyanızın gerçek konumuyla değiştirdiğinizden emin olun.
Ayrıca, aşağıdaki kod parçacığı videonun doğru şekilde yüklendiğinden emin olmak için basit bir kontrol içerir. Yol yanlışsa veya dosya bozuksa, program duracak ve "Error reading video file." hata mesajını gösterecektir.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"Link to this sectionAdım 4: Video yazıcıyı hazırlama#
Sonrasında, çıktıyı kaydetmek için bir video yazıcı kuracağı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çacığında, önce giriş videosundan temel özellikleri (genişlik, yükseklik ve saniye başına kare (fps)) çıkarıyoruz. Bu değerler doğrudan videodan alınır ve çıktı yazılırken doğru formatta olduklarından emin olmak için tamsayılara dönüştürülür.
Ardından, "analytics_output.avi" (gerektiğinde yeniden adlandırabilirsiniz) adlı yeni bir video dosyası oluşturmak için cv2.VideoWriter işlevini kullanıyoruz. 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 1280x720 piksel olarak ayarlanmıştı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),
)Link to this sectionAdım 5: Ultralytics Analytics çözümünü kurma#
Şimdi, videodan grafikler oluşturmak için Ultralytics Analytics çözümünü kuracağız. Verilerin çizgi, pasta, alan veya çubuk grafik olarak 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",
)Link to this sectionAdım 6: Giriş videosunu işleme#
Kodun son kısmı, videoyu her seferinde bir kare olarak işleyen bir döngü çalıştırır. Her kare, grafiği gerçek zamanlı olarak güncelleyen analitik aracına gönderilir. 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 olan tüm 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()Link to this sectionAdım 7: Hepsini bir araya getirme#
Son olarak, her şeyi bir araya getirelim. Sadece birkaç satır fazladan kodla iki çıktı videosu oluşturabiliriz: biri YOLO11 nesne tespiti sonuçlarını sınırlayıcı kutular ve etiketlerle gösteren, diğeri ise gerçek zamanlı analitik grafiklerini gösteren.
Bunu yapmak için iki VideoWriter örneği kuracağız; biri tahmin videosunu, diğeri ise analitiği kaydetmek için. Kodun bu sürümü hem nesne takibini hem de grafik oluşturmayı içerir, böylece tespit sonuçlarını görsel içgörülerle birlikte görebilirsiniz.
İşte kapsamlı kod ve hem tahmin hem de analitik çıktılarına dair örnekler.
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ı sınırlayıcı kutular ve etiketlerle nesne tespiti sonuçlarını gösterirken, "output_analytics.avi" dosyası tespitlere dayalı gerçek zamanlı analitik grafiklerini görüntüleyecektir.

Şekil 4. "output_predictions.avi" dosyasından bir kare.
İşte tahminlere dayalı analitik çıktısından bir kare. Alan grafiğini kullanarak, videonun o kısmındaki bavul hareketini veya aktivitesini gösteren 268. kare civarındaki ani artış gibi zaman içindeki bavul sayısı dalgalanmaları hakkında içgörüler elde edebiliriz.

Şekil 5. Alan grafiği olarak görselleştirilmiş YOLO11 tahminleri.
Link to this sectionGerçek dünya bilgisayarlı görü uygulamalarında grafik kullanma#
Veri görselleştirmenin anlamlı bir etkiye sahip olduğu bazı gerçek dünya bilgisayarlı görü uygulamaları şunlardır:
-
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 yoğun hasta doluluk zamanları veya yanıt gecikmeleri gibi desenleri ortaya çıkarabilen büyük miktarda görsel veri üretir.
-
Perakende ve e-ticaret: Görüntü yapay zekası, müşteri hareketlerini, raf önünde geçirilen süreyi ve ürün etkileşimlerini takip etmek için kullanılabilir. Çubuk veya pasta grafikler gibi görsel analitikler, hangi mağaza bölgelerinin veya öğelerin en çok ilgiyi gördüğünü vurgulayarak perakendecilerin ürün yerleşimini optimize etmelerine ve dönüşümleri artırmalarına yardımcı olabilir.
-
Üretim: Bilgisayarlı görü modelleriyle donatılmış kameralar, montaj hatlarını hatalar, güvenlik ihlalleri veya ekipman durumu açısından izleyebilir. Veri görselleştirme, en yaygın hata türlerindeki trendleri gösterebilir veya en yüksek hata oranlarına sahip zaman dilimlerini vurgulayarak daha hızlı karar verme ve önleyici bakım sağlar.
Link to this sectionÖne çıkanlar#
Ultralytics paketi ile video görüntülerini, 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ürebilirsin. Saatlerce süren videoları manuel olarak incelemek yerine, önemli desenleri ve trendleri vurgulayan görsel özetler oluşturabilir ve hızlı hareket etmeyi kolaylaştırabilirsin. İ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 mi istiyorsun? GitHub depomuzu keşfet, topluluğumuzla bağlantı kur ve bilgisayarlı görü projeni hızlandırmak için lisanslama seçeneklerimize göz at. Çözüm sayfalarımızda üretimde yapay zeka ve lojistik sektöründe bilgisayarlı görü gibi yenilikler hakkında daha fazla bilgi edin.






