YOLO Vision 2025'i kaçırmayın!
25 Eylül 2025
10:00 — 18:00 BST
Hibrit etkinlik
Yolo Vision 2024

Bilgisayar görüşü projelerinde hız tahmini için Ultralytics YOLOv8

Abirami Vina

5 dakikalık okuma

23 Mayıs 2024

Ultralytics YOLOv8 modelinin, bilgisayarla görme projelerinizde hız tahmini için nasıl kullanılabileceğini keşfedin. Basit bir kodlama örneğiyle kendiniz deneyin.

Muhtemelen hepimiz 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 almış olabilir. Yapay zeka (AI) trafik yönetim sistemleri, bilgisayarlı görü sayesinde hız ihlallerini otomatik olarak işaretleyebilir. Sokak lambalarındaki ve otoyollardaki kameralar tarafından yakalanan gerçek zamanlı görüntüler, hız tahmini ve yol güvenliğini güçlendirmek için kullanılır.

Hız tahmini sadece otoyol güvenliği ile sınırlı değildir. Sporda, otonom araçlarda ve çeşitli diğer uygulamalarda da kullanılabilir. Bu makalede, bilgisayarlı görü projelerinizde hız tahmini için Ultralytics YOLOv8 modelini nasıl kullanabileceğinizi tartışacağız. Ayrıca, kendiniz deneyebilmeniz için adım adım bir kodlama örneği de sunacağız. Haydi başlayalım!

Hız tahmini, trafik yönetimini kolaylaştırır

Dünya Sağlık Örgütü'ne (WHO) göre, hız nedeniyle her yıl 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 yaralanmalar geçirmekte ve bunların çoğu engellilikle sonuçlanmaktadır. Özellikle hız tahmini kazaları önlemeye, hayat kurtarmaya ve yollarımızı güvenli ve verimli tutmaya yardımcı olduğunda, trafik güvenliğinin önemi yadsınamaz. 

Bilgisayarlı görü kullanarak hız tahmini, ne kadar hızlı hareket ettiklerini hesaplamak için video karelerindeki nesneleri algılamayı ve izlemeyi içerir. YOLOv8 gibi algoritmalar, araçlar gibi nesneleri ardışık kareler boyunca tanımlayabilir ve izleyebilir. Sistem, gerçek dünya mesafelerini ö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 etmesi için geçen süreyi zamanlayarak, sistem mesafe-zaman oranını kullanarak hızlarını hesaplar.

Şekil 1. Ultralytics YOLOv8 Modeli Kullanarak Hız Tahmini

Yapay zeka entegreli hız tahmin sistemleri, hız sınırını aşanları yakalamanın yanı sıra, trafik hakkında tahminler yapmak için veri toplayabilir. Bu tahminler, sinyal zamanlamalarını ve kaynak tahsisini optimize etmek gibi trafik yönetimi görevlerini destekleyebilir. Trafik düzenleri ve tıkanıklık nedenleri hakkındaki bilgiler, trafik sıkışıklığını azaltmak için yeni yollar planlamak için kullanılabilir.

Diğer endüstrilerde hız tahmininin uygulamaları

Hız tahmini uygulamaları, yolları izlemenin ötesine geçer. Ayrıca sporcuların performansını izlemek, otonom araçların çevrelerinde hareket eden nesnelerin hızını anlamalarına yardımcı olmak, şüpheli davranışları tespit etmek vb. için de kullanışlı olabilir. Bir kameranın bir nesnenin hızını ölçmek için kullanılabileceği her yerde, bilgisayarlı görü kullanılarak hız tahmini kullanılabilir. 

İşte hız tahmininin kullanıldığı bazı örnekler:

  • Tesla'nın otonom araçları, çarpışmaları önlemek için görsel tabanlı hız tahmini kullanır.
  • Bilgisayarla görü ve hız tahmini, atletizm etkinliklerinde performans analizini iyileştirmek için 2024 Olimpiyat Oyunları'nda 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ırması yapıyor. Bu sistemler, sürücüleri yayaların varlığına karşı uyarabilir ve kazaları önleyebilir.
  • Hayvan davranışlarını izleme sistemleri, hayvan hareketlerini izlemek 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ü kullanarak hızı tahmin etmenin faydaları

Görüntü tabanlı hız tahmin sistemleri, gelişmiş doğrulukları, maliyet etkinlikleri ve esneklikleri nedeniyle geleneksel sensör tabanlı yöntemlerin yerini alıyor. 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ıyla 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ştirmek üzere oluşturulabilir.

Kendiniz deneyin: YOLOv8 kullanarak hız tahmini

Artık hız tahmini ve uygulamaları hakkında net bir anlayışa sahip olduğumuza göre, kod aracılığıyla hız tahminini bilgisayarlı görü projelerinize nasıl entegre edebileceğinize daha yakından bakalım. YOLOv8 modelini kullanarak hareketli araçları tespit edeceğiz ve hızlarını tahmin edeceğiz.

Bu örnek, internetten indirilen bir yoldaki arabaların videosunu kullanır. Aynı videoyu veya ilgili herhangi bir videoyu kullanabilirsiniz. YOLOv8 modeli, her aracın merkezini tanımlar ve bu merkezin video çerçevesinde yatay bir çizgiyi ne kadar hızlı geçtiğine bağlı olarak hızını hesaplar. 

Derinlere dalmadan önce, bu durumda mesafe hesaplamasının yaklaşık olduğunu ve Öklid Mesafesine dayandığını belirtmek önemlidir. Kamera kalibrasyonu hesaba katılmamıştır ve bu nedenle hız tahmini tamamen doğru olmayabilir. Ayrıca, tahmini hız GPU'nuzun hızına bağlı olarak değişebilir.

Adım 1: İlk olarak Ultralytics paketini kurarak başlayacağız. Komut isteminizi veya terminalinizi açın ve aşağıda gösterilen komutu çalıştırın.

pip install ultralytics 

Adım adım talimatlar ve kurulum süreciyle ilgili en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz atın. YOLOv8 için gerekli paketleri kurarken herhangi bir sorunla karşılaşırsanız, Sık Karşılaşılan Sorunlar kılavuzumuzda çözümler ve faydalı ipuçları bulunmaktadır.

Adım 2: Ardından, gerekli kütüphaneleri içe aktaracağız. OpenCV kütüphanesi, video işlemeyi yönetmemize yardımcı olacaktır.

import cv2
from ultralytics import YOLO, solutions

Adım 3: Daha sonra, YOLOv8 modelini yükleyebilir ve modelin algılayabileceği sınıfların adlarını alabiliriz.

model = YOLO("yolov8n.pt")
names = model.model.names

Projenize en uygun modeli anlamak için desteklediğimiz tüm modellere göz atın.

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 saniye başına 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 tahmini sonuçlarımızı kaydetmek için video yazıcısını 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: Ardından, hız tahmini için çizgi noktalarını tanımlayabiliriz. Giriş videomuz için bu çizgi, çerçevenin ortasına yatay olarak yerleştirilecektir. Giriş videonuza bağlı olarak çizgiyi en uygun konumlara yerleştirmek için değerlerle oynamaktan çekinmeyin.

line_pts = [(0, 360), (1280, 360)]

Adım 7: Şimdi, tanımlanan çizgi noktalarını ve sınıf adlarını kullanarak hız tahmini nesnesini başlatabiliriz.

speed_obj = solutions.SpeedEstimator(
    reg_pts=line_pts,
    names=names,
    view_img=True,
)

Adım 8: Komut dosyasının özü, videoyu kare kare işlemesidir. Her kareyi okur, nesneleri algılar ve izleriz. İzlenen nesnelerin hızı tahmin edilir ve açıklamalı çerçeve çı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: Komut dosyanızı kaydedin. Terminalinizden veya komut isteminizden çalışıyorsanız, aşağıdaki komutu kullanarak komut dosyasını çalıştırın:

python your_script_name.py


Görsel tabanlı hız tahmininin zorlukları

Bilgisayarla görü kullanarak hız tahmini uygulamasında yer alan zorlukları anlamak da önemlidir. Yağmur, sis veya kar gibi olumsuz hava koşulları, yolun görünürlüğünü engelleyebileceğinden sistemde sorunlara neden olabilir. Benzer şekilde, diğer araçlar veya nesnelerin neden olduğu tıkanıklıklar, bu sistemlerin hedef bir aracın hızını doğru bir şekilde izlemesini ve tahmin etmesini zorlaştırabilir. Gölgelere veya güneşten gelen parlamaya neden olan yetersiz aydınlatma koşulları da hız tahmini görevini daha da karmaşık hale getirebilir.

Bir diğer zorluk ise hesaplama gücüyle ilgilidir. Hızı gerçek zamanlı olarak tahmin etmek için, yüksek kaliteli trafik kameralarından gelen çok miktarda görsel veriyi işlememiz gerekir. Çözümünüz, tüm bunları kaldırabilecek ve her şeyin gecikme olmadan hızlı bir şekilde çalışmasını sağlayacak pahalı donanımlar gerektirebilir.

Daha sonra, gizlilik sorunu var. Bu sistemler tarafından toplanan veriler, bir bireyin araç markası, modeli ve plakası bilgileri 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, azami özenle ele alınması gereken ciddi etik ve yasal sorunları gündeme getirebilir.

Geleceğe doğru hızla

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 almak gibi zorluklar olsa da, avantajları çoktur. Bilgisayar görüşü özellikli hız tahmini, eski yöntemlere kıyasla daha uygun maliyetli, uyarlanabilir ve hassastır. Ulaşım, spor, gözetim ve sürücüsüz arabalar gibi çeşitli sektörlerde faydalıdır. Tüm faydaları ve uygulamaları ile gelecekteki akıllı sistemlerin önemli bir parçası olmaya adaydır.

Yapay zeka ile mi ilgileniyorsunuz? Topluluğumuzla bağlantı kurun! Yapay zekayı sağlık ve tarım gibi çeşitli sektörlerde yenilikçi çözümler oluşturmak için nasıl kullandığımız hakkında daha fazla bilgi edinmek için GitHub depomuzu keşfedin. Bizimle işbirliği yapın, yenilikler yapın ve öğrenin! 🚀

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

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

Ücretsiz başlayın
Bağlantı panoya kopyalandı