Görselleştirmelerle bilgisayarlı görü uygulamalarını geliştirme
Daha iyi içgörüler elde etmek için Ultralytics Python paketini kullanarak bilgisayarlı görü uygulamalarından gelen verileri kolay anlaşılır grafiklere dönüştürmeyi öğren.
Nuvola Ladi8 dakikalık okuma
Havalimanı terminallerinden tren istasyonlarına ve alışveriş merkezlerine kadar her dakika devasa miktarda veri üretiliyor. Yapay zekâ daha yaygın kullanıldıkça bu verilerin çoğu analiz edilip ayrıştırılıyor. Ancak bazen bu yapay zekâ modellerinin sonuçları, örüntüleri fark etmeyi veya eğilimleri hızlıca anlamayı zorlaştırabiliyor. İşte veri görselleştirme burada devreye giriyor; karmaşık çıktıları net ve kolay anlaşılır içgörülere dönüştürüyor.
Bu durum özellikle bilgisayarlı görü uygulamalarında geçerlidir. Bilgisayarlı görü, makinelerin görüntü ve video gibi çevrelerindeki dünyaya ait görsel bilgileri yorumlayıp anlamasına yardımcı olan bir yapay zekâ (AI) dalıdır. Ultralytics YOLO11 gibi görsel yapay zekâ modelleri bilgi edinmek için bu tür görsel verileri analiz etmeye yardımcı olurken, veri görselleştirme bu bilgileri anlaşılması kolay bir biçime dönüştürür.
Basitçe söylemek gerekirse veri görselleştirme, anlamlı analitik grafikler kullanarak ham veriyle gerçek kavrayış arasındaki boşluğu kapatır. Bu önemlidir; çünkü makinelerin yalnızca görevleri yerine getirmesi yetmez, aynı zamanda bir hikâye anlatmalarını da isteriz.
Hikâye anlatımına duyulan ihtiyaç, veri görselleştirme pazarının yükselişinin tam da nedenidir; pazarın 2030'a kadar $18,36 milyar büyüklüğe ulaşması bekleniyor. Daha önce bilgisayarlı görünün değerli iş içgörüleri sağlayabileceğini incelemiştik. Bugün Ultralytics paketini kullanarak bilgisayarlı görü uygulamaları için net ve bilgilendirici analitik grafikler oluşturmayı adım adım ele alacağız.

Şekil 1. YOLO11 çıktılarından elde edilen verilerin görselleştirilmesine bir örnek.
Bilgisayarlı görü uygulamalarında veri görselleştirmeye genel bakış#
Bilgisayarlı görü uygulamalarında veri görselleştirme; nesne algılama ve izleme 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 örüntüleri ve eğilimleri belirlemeye yardımcı olur.
Örneğin, saatlerce süren gözetim videosunu elle incelemek yerine, zaman içinde algılanan araç veya kişi sayısını gösteren basit bir çizgi grafik yoğun saatleri ya da olağan dışı sakin dönemleri hızla ortaya çıkarabilir.
Veri görselleştirmenin yararlı olmasının bazı temel nedenleri şunlardır:
- Karmaşık verileri basitleştirir: Binlerce nesne algılama sonucu bunaltıcı olabilir; ancak çubuk veya pasta grafik gibi görselleştirmeler, örneğin en sık görünen nesneleri belirterek genel tabloyu görmeyi kolaylaştırır.
- Eğilimleri ortaya çıkarır: Çizgi ve çubuk grafikler, yaya trafiğinin ne zaman ve nerede artma eğiliminde olduğu gibi zaman içindeki örüntüleri belirlemeye yardımcı olur.
- Zaman kazandırır: Videonun her karesini incelemek yerine grafikler, araç hareketliliğindeki ani artışlar veya kısıtlı bölgelerde olağan dışı nesnelerin görünmesi gibi önemli ayrıntıları hızla ortaya çıkarabilir.
- İletişimi geliştirir: Görseller, teknik bilgisi olmayan kitlelerle içgörüleri paylaşmayı kolaylaştırarak herkesin sonuçları daha net anlamasına yardımcı olur.
Farklı veri görselleştirme türleri#
Farklı analitik grafik türleri, bilgisayarlı görü sonuçlarını anlaşılır ve kolayca yorumlanabilir görsellere dönüştürebilir. Gözetim kayıtlarında insanları ve araçları algılayan bir bilgisayarlı görü uygulaması üzerinde çalıştığını düşünelim. Bu durumda çizgi grafik, gün boyunca yaya trafiğindeki yoğunlukları 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, videoda daha fazla otomobil, bisiklet veya yaya olup olmadığını görmek gibi, algılanan farklı nesne türlerinin sayısını karşılaştırmak istediğinde çubuk grafikler kullanışlıdır. Pasta grafikler ise her nesne türünün toplam algılama sayısının yüzde kaçını oluşturduğunu gösterir. Her grafiğin kendine özgü bir kullanım alanı vardır ve karmaşık bilgisayarlı görü verilerini yorumlamayı ve paylaşmayı kolaylaştırır.

Şekil 2. Analitik grafik örnekleri.
Bilgisayarlı görü içgörüleri 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 incelediğimize göre, bilgisayarlı görü modelinin tahmin sonuçlarını görselleştirmek için Ultralytics Analytics çözümünü nasıl kullanacağına daha yakından bakalım. Adım adım ilerlemeden önce, Ultralytics paketini ve YOLO11 gibi modelleri eğitip kullanmaya yönelik araçlara ve kurulum seçeneklerine göz atalım.
Ultralytics Python paketi modelleri eğitmeyi, nesneleri algılamayı, tahminler çalıştırmayı ve sonuçları görselleştirmeyi kolaylaştırır. Paketi kullanmaya başlamak için bir kodlama ortamına ihtiyacın olacak. İşte üç basit seçenek:
- Komut Satırı Arayüzü (CLI): Kodunu çalıştırmak için komutlar yazabileceğin, temel ve yalnızca metin tabanlı bir araçtır. Görsel bir arayüzü yoktur; terminale veya komut istemine talimatlar yazarak etkileşim kurarsın.
- Jupyter Notebooks: Küçük kod parçalarını ("hücre" olarak adlandırılır) teker teker yazıp çalıştırabileceğin ve test edebileceğin etkileşimli bir kodlama ortamıdır. Sonuçları her hücrenin hemen altında göstererek neler olup bittiğini adım adım anlamanı kolaylaştırır. Özellikle öğrenme ve deneme için kullanışlıdır.
- Google Colab: Web tarayıcında çalışan, Jupyter Notebooks'un ücretsiz ve bulut tabanlı bir sürümüdür. Bilgisayarında herhangi bir kurulum gerektirmez ve daha hızlı işlem için ücretsiz GPU'lara erişmeni sağlar.
Bu araçlar hızlıca 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 işlem hatlarına da entegre edebilir. Daha fazla seçenek için resmî Ultralytics belgelerini incele.
Adım 1: Ortamı kurma#
Tercih ettiğin ortamı seçtikten sonraki adım, tahminleri çalıştırıp sonuçları görselleştirecek şekilde ortamı kurmaktır. Kendini en rahat hissettiğin seçeneğe bağlı olarak yukarıda belirtilen ortamlardan herhangi birini kullanabilirsin.
Google Colab'da çalışıyorsan varsayılan olarak CPU kullandığını ve bunun performansı yavaşlatabileceğini unutma. İşlemleri hızlandırmak için "Runtime" menüsüne gidip "Change runtime type" seçeneğini seç ve donanım hızlandırıcısını GPU (tercihen T4) olarak ayarla.
Ortamını hazırlamak için aşağıda belirtilen komutu kullanarak Ultralytics Python paketini yüklemen gerekir. Colab veya Jupyter gibi not defteri tabanlı araçlarda komutun başına bir ünlem işareti (!) eklemeyi unutma.
pip install ultralyticsAdım 2: Video dosyasını indirme#
Sonraki adımda üzerinde çalışacağımız bir videoya ihtiyacımız olacak. Pexels gibi ücretsiz bir stok video sitesinden kolayca video indirebilirsin. Ultralytics YOLO11'in algılayabileceği nesneler içeren bir video seçtiğinden emin ol. Model, COCO veri kümesi üzerinde önceden eğitildiği için insanlar, otomobiller ve bisikletler gibi yaygın nesneleri tanıyabilir.
Bu eğitimde, yoğun bir havalimanı terminalindeki bagaj taşıma işlemlerini gösteren bir video kullanacağız. Aynı videoyu kullanabilir veya projen için uygun başka bir video seçebilirsin.

Şekil 3. Havalimanı terminalinde bagaj taşıma işlemlerini gösteren giriş videosundan bir kare.
Adım 3: Paketleri içe aktarma#
Sonra gerekli kitaplıkları içe aktarabilir ve giriş videosunu yükleyebiliriz.
Görüntüler ve videolarla bilgisayarlı görü kapsamında çalışmak için yaygın olarak kullanılan bir kitaplık olan OpenCV'yi (cv2) içe aktararak başlayacağız. Ayrıca videoda nesne algılama yapmamıza ve analitik sonuçlar oluşturmamıza yardımcı olan Ultralytics kitaplığını da içe aktaracağız.
Ardından, dosya yolunu belirterek video dosyasını açmayı deneyeceğiz. "path/to/video.mp4" ifadesini indirdiğin video dosyasının gerçek konumuyla değiştirdiğinden emin ol.
Aşağıdaki kod parçacığında videonun doğru yüklendiğini doğrulamak için basit bir kontrol de bulunuyor. Yol yanlışsa veya dosya bozuksa program durur ve "Error reading video file." hata mesajını gösterir.
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 bu kod bölümü, özgün videonun her karesinden oluşturulan güncel grafikleri kaydeden yeni bir video dosyası oluşturacak.
Aşağıdaki kod parçacığında önce giriş videosunun genişlik, yükseklik ve saniyedeki kare sayısı (fps) gibi temel özelliklerini alıyoruz. Bu değerler doğrudan videodan alınır ve çıktıyı yazmak için doğru biçimde olduklarından emin olmak amacıyla tam sayılara dönüştürülür.
Sonra cv2.VideoWriter işlevini kullanarak "analytics_output.avi" adında yeni bir video dosyası oluşturuyoruz (gerektiğinde dosyanın adını değiştirebilirsin). Video, yaygın bir video sıkıştırma yöntemi olan MJPG biçiminde kaydedilir. Çıktı çözünürlüğü, özgün 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 Analytics çözümünü ayarlama#
Şimdi videodan grafikler oluşturmak için Ultralytics Analytics çözümünü kuracağız. Verilerin çizgi, pasta, alan veya çubuk grafik gibi nasıl görüntüleneceğini ve hangi YOLO modelinin kullanılacağını seçebilirsin. Bu örnekte hafif YOLO11n modelini ("yolo11n.pt") kullanıp sonuçları 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 her seferinde bir kare işleyecek bir döngü çalıştırır. Her kare, grafiği gerçek zamanlı güncelleyen analiz aracına aktarılır. Güncellenen grafik daha sonra çıktı 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()Adım 7: Her şeyi bir araya getirme#
Son olarak, her şeyi bir araya getirelim. Birkaç satır ek kodla iki çıktı videosu oluşturabiliriz: biri Ultralytics YOLO11'in sınırlayıcı kutuları ve etiketleri içeren nesne algılama sonuçlarını, diğeri ise gerçek zamanlı analitik grafikleri gösterir.
Bunu yapmak için iki VideoWriter örneği ayarlayacağız: biri tahmin videosunu, diğeri analizleri kaydedecek. Kodun bu sürümü hem nesne izlemeyi hem de grafik oluşturmayı içerir; böylece algılama sonuçlarını görsel içgörülerle birlikte görebilirsin.
Tahmin ve analiz çıktılarının örnekleriyle birlikte kodun tamamı burada.
import cv2
from ultralytics import YOLO, solutions
# Modeli ve videoyu yükle
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"
# Özellikleri al
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)
# Tahmin ve analiz videoları için yazıcılar
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)
# Analiz ayarları
analytics = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')
# Kareleri işle
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şturur. “output_predictions.avi” dosyası sınırlayıcı kutular ve etiketlerle nesne algılama sonuçlarını gösterirken “output_analytics.avi” dosyası algılamalara dayalı gerçek zamanlı analiz grafiklerini görüntüler.

Şekil 4. “output_predictions.avi” dosyasından bir kare.
Aşağıda tahminlere dayalı analiz çıktısından bir kare yer alıyor. Alan grafiğini kullanarak zaman içinde bavul sayısındaki dalgalanmalar gibi içgörüler elde edebiliriz. Örneğin 268. kare civarındaki ani artış, videonun bu bölümünde bavul hareketine veya etkinliğine işaret ediyor.

Şekil 5. Alan grafiği olarak görselleştirilen Ultralytics YOLO11 tahminleri.
Gerçek dünyadaki bilgisayarlı görü uygulamalarında grafik kullanımı#
Veri görselleştirmenin anlamlı bir etki yarattığı gerçek dünyadaki bazı bilgisayarlı görü uygulamaları şunlardır:
- Sağlık hizmetleri: Bilgisayarlı görü sistemleri hasta etkinliklerini, personel hareketlerini ve ekipman kullanımını gerçek zamanlı izleyebilir. Bu, görselleştirildiğinde yoğun hasta doluluğu saatleri veya müdahale gecikmeleri gibi örüntüleri ortaya çıkarabilen büyük miktarda görsel veri üretir.
- Perakende ve e-ticaret: Görsel yapay zekâ, müşteri hareketlerini, rafların önünde geçirilen süreyi ve ürün etkileşimlerini izlemek için kullanılabilir. Çubuk veya pasta grafik gibi görsel analizler, müşterilerin en çok ilgi gösterdiği mağaza alanlarını veya ürünleri ortaya çıkararak perakendecilerin ürün yerleşimini iyileştirmesine ve dönüşüm oranlarını artırmasına yardımcı olabilir.
- Üretim: Bilgisayarlı görü modelleriyle donatılmış kameralar, üretim hatlarını kusurlar, güvenlik ihlalleri veya ekipman durumu açısından izleyebilir. Veri görselleştirme, en sık görülen kusur türlerindeki eğilimleri gösterebilir veya hata oranlarının en yüksek olduğu zaman aralıklarını ortaya çıkarabilir; böylece daha hızlı karar alınmasını ve önleyici bakım yapılmasını sağlar.
Önemli çıkarımlar#
Ultralytics paketiyle video kayıtlarını kolayca anlaşılır ve içgörü sağlayan grafiklere dönüştürebilir, örneğin zaman içinde kaç kişi veya nesnenin göründüğünü izleyebilirsin. Saatlerce videoyu elle incelemek yerine, önemli örüntüleri ve eğilimleri ortaya çıkaran görsel özetler oluşturabilir ve hızlıca harekete geçebilirsin. Hastanelerde, perakende mağazalarında veya üretim tesislerinde bu grafikler, karmaşık yapay zekâ çıktılarını herkesin anlayıp kullanabileceği içgörülere dönüştürür.
Yapay zekâ hakkında daha fazla bilgi edinmek ister misin? GitHub depomuzu keşfet, topluluğumuza katıl ve bilgisayarlı görü projenin ilk adımlarını atmak için lisanslama seçeneklerimize göz at. Çözümler sayfalarımızda üretimde yapay zekâ ve lojistikte bilgisayarlı görü gibi yenilikler hakkında daha fazla bilgi edin.
Yazan
Yorumlar
Soru sor, sonuçlarını paylaş veya başka birine yardım et.










