Bilgisayarlı görü projelerinde hız tahmini için Ultralytics YOLOv8
Ultralytics YOLOv8 modelinin bilgisayarlı görü projelerinde hız tahmini için nasıl kullanılabileceğini keşfet. Basit bir kodlama örneği ile kendin dene.

Hepimiz muhtemelen hız sınırı trafik işaretlerini görmüşüzdür. Hatta bazılarımız posta veya e-posta yoluyla otomatik bir hız sınırı ihlali bildirimi bile almış olabilir. Yapay zeka (AI) tabanlı trafik yönetim sistemleri, bilgisayarlı görü sayesinde hız ihlallerini otomatik olarak tespit edebilir. Trafik ışıklarında ve otoyollarda bulunan kameralar tarafından yakalanan gerçek zamanlı görüntüler, hız tahmini yapmak ve yol güvenliğini artırmak için kullanılır.
Hız tahmini sadece otoyol güvenliğiyle sınırlı değildir. Spor, otonom araçlar ve diğer çeşitli uygulamalarda kullanılabilir. Bu makalede, bilgisayarlı görü projelerinde hız tahmini için Ultralytics YOLOv8 modelini nasıl kullanabileceğini ele alacağız. Ayrıca kendin deneyebilmen için adım adım bir kodlama örneği üzerinden geçeceğiz. Hadi başlayalım!
Hız tahmini trafik yönetimini kolaylaştırır#
Dünya Sağlık Örgütü'ne (WHO) göre, her yıl aşırı hız nedeniyle yaklaşık 1,19 milyon kişi trafik kazalarında hayatını kaybetmektedir. Ek olarak, 20 ila 50 milyon kişi daha ölümcül olmayan yaralanmalara maruz kalmakta ve bunların birçoğu engellilikle sonuçlanmaktadır. Hız tahmini kazaları önlemeye, hayat kurtarmaya ve yollarımızı güvenli ve verimli tutmaya yardımcı olduğunda, trafik güvenliğinin öneminin ne kadar büyük olduğu az bile söylenir.
Bilgisayarlı görü kullanarak hız tahmini, ne kadar hızlı hareket ettiklerini hesaplamak için video karelerindeki nesneleri tespit etmeyi ve takip etmeyi içerir. Ultralytics YOLOv8 gibi algoritmalar, ardışık kareler boyunca araçlar gibi nesneleri tanıyabilir ve takip edebilir. Sistem, gerçek dünyadaki mesafeleri ölçmek için kalibre edilmiş kameralar veya referans noktaları kullanarak bu nesnelerin kat ettiği mesafeyi ölçer. Nesnelerin iki nokta arasında hareket etmesinin ne kadar sürdüğünü zamanlayarak sistem, mesafe-zaman oranını kullanarak hızlarını hesaplar.

Şekil 1. Ultralytics YOLOv8 modeli kullanılarak hız tahmini.
Hız sınırını aşanları yakalamanın yanı sıra, AI entegreli hız tahmin sistemleri trafik hakkında tahminler yapmak için veri toplayabilir. Bu tahminler, sinyal zamanlamalarını optimize etmek ve kaynak tahsisi gibi trafik yönetimi görevlerini destekleyebilir. Trafik modellerine ve trafik sıkışıklığının nedenlerine ilişkin içgörüler, trafiği azaltmak için yeni yollar planlamada kullanılabilir.
Hız tahmininin diğer sektörlerdeki uygulamaları#
Hız tahmini uygulamaları yolları izlemenin ötesine geçer. Ayrıca sporcuların performansını izlemek, otonom araçların etraflarında hareket eden nesnelerin hızını anlamasına yardımcı olmak, şüpheli davranışları tespit etmek vb. için de faydalı olabilir. Bir nesnenin hızını ölçmek için kameranın kullanılabileceği herhangi bir yerde, bilgisayarlı görü kullanarak hız tahmini kullanılabilir.
İşte hız tahmininin kullanıldığı bazı örnekler:
- Tesla'nın otonom arabaları çarpışmaları önlemek için tabanlı görme hız tahminini kullanır.
- Atletizm etkinliklerinde performans analizini geliştirmek için 2024 Olimpiyat Oyunları'nda bilgisayarlı görü ve hız tahmini kullanılacaktır.
- Akıllı şehirler, yürüme hızlarını izlemek ve kentsel hareketliliği ve güvenliği artırmak için yaya yürüyüş analizi araştırmaları yapmaktadır. Bu sistemler, sürücüleri yayaların varlığı konusunda uyarabilir ve kazaları önleyebilir.
- Hayvan davranış izleme sistemleri, hayvan hareketini takip etmek ve sıkıntı veya hastalık belirtilerini tespit etmek için hız tahminini kullanır.

Şekil 2. Hız tahmini bir kişinin yürüme hızını ölçebilir.
Bilgisayarlı görü ile hız tahmininin faydaları#
Vizyon tabanlı hız tahmin sistemleri, gelişmiş doğrulukları, maliyet etkinlikleri ve esneklikleri nedeniyle geleneksel sensör tabanlı yöntemlerin yerini almaktadır. LiDAR gibi pahalı sensörlere dayanan sistemlerin aksine, bilgisayarlı görü hızı gerçek zamanlı olarak izlemek ve analiz etmek için standart kameralar kullanır. Hız tahmini için bilgisayarlı görü çözümleri, mevcut trafik altyapısı ile sorunsuz bir şekilde entegre edilebilir. Ayrıca, bu sistemler, genel trafik akışını ve güvenliğini iyileştirmek için araç tipi tanımlama ve trafik modeli analizi gibi bir dizi karmaşık görevi gerçekleştirecek şekilde oluşturulabilir.
Kendin dene: Ultralytics YOLOv8 kullanarak hız tahmini#
Hız tahminini ve uygulamalarını net bir şekilde anladığımıza göre, kod aracılığıyla hız tahminini bilgisayarlı görü projelerine nasıl entegre edebileceğini daha yakından inceleyelim. Ultralytics YOLOv8 modelini kullanarak hareketli araçları tespit edeceğiz ve hızlarını tahmin edeceğiz.
Bu örnek, internetten indirilen bir yoldaki arabaların bulunduğu bir videoyu kullanır. Aynı videoyu veya ilgili herhangi bir videoyu kullanabilirsin. Ultralytics YOLOv8 modeli, her aracın merkezini belirler ve bu merkezin video karesindeki yatay bir çizgiyi ne kadar hızlı geçtiğine bağlı olarak hızını hesaplar.
Derinlemesine incelemeden önce, bu durumda mesafe hesaplamasının yaklaşık olduğunu ve Öklid Mesafesine dayandığını unutmamak önemlidir. Kamera kalibrasyonu hesaba katılmamıştır, bu nedenle hız tahmini tamamen doğru olmayabilir. Ayrıca, tahmin edilen hız GPU'nun hızına bağlı olarak değişebilir.
Adım 1: Ultralytics paketini kurarak başlayacağız. Komut istemini veya terminalini aç ve aşağıda gösterilen komutu çalıştır.
pip install ultralyticsKurulum sürecine ilişkin adım adım talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz at. YOLOv8 için gerekli paketleri yüklerken herhangi bir sorunla karşılaşırsan, Yaygın Sorunlar kılavuzumuzda çözümler ve faydalı ipuçları bulabilirsin.
Adım 2: Ardından, gerekli kütüphaneleri içe aktaracağız. OpenCV kütüphanesi video işlemeyi yönetmemize yardımcı olacak.
import cv2
from ultralytics import YOLO, solutionsAdım 3: Ardından, Ultralytics YOLOv8 modelini yükleyebilir ve modelin tespit edebileceği sınıfların adlarını alabiliriz.
model = YOLO("yolov8n.pt")
names = model.model.namesProjene en uygun modelin hangisi olduğunu anlamak için desteklediğimiz tüm modellere göz at.
Adım 4: Bu adımda, OpenCV'nin VideoCapture modülünü kullanarak girdi video dosyasını açacağız. Ayrıca videonun genişliğini, yüksekliğini ve saniyedeki kare sayısını (fps) çıkaracağız.
cap = cv2.VideoCapture("path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))Adım 5: Burada, hız tahmininin nihai sonuçlarını kaydetmek için video yazıcıyı başlatacağız. Çıktı video dosyası “speed_estimation.avi” olarak kaydedilecektir.
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))Adım 6: Bir sonraki adımda, hız tahmini için çizgi noktalarını tanımlayabiliriz. Girdi videomuz için bu çizgi, çerçevenin ortasına yatay olarak yerleştirilecektir. Girdi videona bağlı olarak çizgiyi en uygun konumlara yerleştirmek için değerlerle oynamaktan çekinme.
line_pts = [(0, 360), (1280, 360)]Adım 7: Şimdi, tanımlanan çizgi noktalarını ve sınıf adlarını kullanarak hız tahmin nesnesini başlatabiliriz.
speed_obj = solutions.SpeedEstimator(
reg_pts=line_pts,
names=names,
view_img=True,
)Adım 8: Betiğin çekirdeği videoyu kare kare işler. Her kareyi okuruz, nesneleri tespit eder ve takip ederiz. Takip edilen nesnelerin hızı tahmin edilir ve açıklamalı kare çıktı videosuna yazılır.
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)Adım 9: Son olarak, video yakalama ve yazıcı nesnelerini serbest bırakır ve tüm OpenCV pencerelerini kapatırız.
cap.release()
video_writer.release()
cv2.destroyAllWindows()Adım 10: Betiğini kaydet. Terminalinden veya komut isteminden çalışıyorsan, betiği aşağıdaki komutu kullanarak çalıştır:
python your_script_name.pyVizyon tabanlı hız tahmininin zorlukları#
Bilgisayarlı görü kullanarak hız tahminini uygulamadaki zorlukları anlamak da önemlidir. Yağmur, sis veya kar gibi elverişsiz hava koşulları, yolun görünürlüğünü engelleyebildikleri için sistemde sorunlara neden olabilir. Benzer şekilde, diğer araçların veya nesnelerin neden olduğu tıkanıklıklar (okluzyonlar), bu sistemlerin hedef bir aracın hızını doğru bir şekilde takip etmesini ve tahmin etmesini zorlaştırabilir. Gölgelere veya güneşten gelen parlamaya neden olan kötü ışık koşulları da hız tahmini görevini daha da karmaşık hale getirebilir.
Diğer bir zorluk ise hesaplama gücüyle ilgilidir. Gerçek zamanlı olarak hız tahmini yapmak için yüksek kaliteli trafik kameralarından gelen çok sayıda görsel veriyi işlememiz gerekir. Çözümün, tüm bunların üstesinden gelmek ve her şeyin gecikmeden hızlı bir şekilde çalışmasını sağlamak için pahalı donanım gerektirebilir.
Ardından gizlilik meselesi var. Bu sistemler tarafından toplanan veriler, bireyin markası, modeli ve plaka bilgisi gibi, rızası olmadan toplanan araç detaylarını içerebilir. Bazı modern HD kameralar, arabanın içindeki yolcuların görüntülerini bile yakalayabilir. Bu tür veri toplama, büyük bir özenle ele alınması gereken ciddi etik ve yasal sorunları beraberinde getirebilir.
Geleceğe doğru hızla ilerlemek#
Hız tahmini için Ultralytics YOLOv8 modelini kullanmak, birçok kullanım için esnek ve verimli bir çözüm sunar. Zorlu koşullarda doğruluk ve gizlilik sorunlarını ele alma gibi zorluklar olsa da avantajları çok katlıdır. Bilgisayarlı görü destekli hız tahmini, eski yöntemlere kıyasla daha uygun maliyetli, uyarlanabilir ve kesindir. Ulaşım, spor, gözetim ve kendi kendine giden arabalar gibi çeşitli sektörlerde faydalıdır. Tüm faydaları ve uygulamalarıyla, gelecekteki akıllı sistemlerin kilit bir parçası olmaya adaydır.
Yapay zeka ile ilgileniyor musun? Topluluğumuzla bağlantı kur! Sağlık ve tarım gibi çeşitli endüstrilerde yenilikçi çözümler oluşturmak için yapay zekayı nasıl kullandığımız hakkında daha fazla bilgi edinmek için GitHub depomuzu keşfet. Bizimle işbirliği yap, yenilik yap ve öğren! 🚀






