Yolo Vision Shenzhen
Shenzhen
Şimdi katılın

Bilgisayarla görme 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ği ile 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 diğer çeşitli uygulamalarda kullanılabilir. Bu makalede, bilgisayarla görme projelerinizde hız tahmini için Ultralytics YOLOv8 modelini nasıl kullanabileceğinizi tartışacağız. Ayrıca, kendiniz deneyebilmeniz için bir kodlama örneğinde adım adım yürüyeceğ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, 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. 

Bilgisayar görüşü kullanarak hız tahmini, ne kadar hızlı hareket ettiklerini hesaplamak için video karelerindeki nesneleri tespit etmeyi ve izlemeyi içerir. YOLOv8 gibi algoritmalar, ardışık kareler boyunca araçlar gibi nesneleri tanımlayabilir ve track . 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. Sistem, nesnelerin iki nokta arasında ne kadar sürede hareket ettiğini zamanlayarak, mesafe-zaman oranını kullanarak hızlarını hesaplar.

Şekil 1. Ultralytics YOLOv8 Modeli Kullanılarak 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.
  • Bilgisayar görüşü ve hız tahmini, 2024 Olimpiyat Oyunlarında track etkinliklerinde performans analizini geliştirmek için kullanılacak.
  • 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ışı izleme sistemleri, hayvan hareketlerini track ve sıkıntı veya hastalık belirtilerini detect 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, hız tahminini kod aracılığıyla bilgisayarla görme projelerinize nasıl entegre edebileceğinize daha yakından bakalım. Hareket eden araçları detect edeceğiz ve YOLOv8 modelini kullanarak hızlarını tahmin edeceğiz.

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

Konuya girmeden önce, bu durumda mesafe hesaplamasının yaklaşık olduğunu ve Öklid Mesafesine dayandığını belirtmek önemlidir. Kamera kalibrasyonu hesaba katılmaz 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: 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 

Kurulum sürecine ilişkin adım adım talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz atın. YOLOv8 için gerekli paketleri yüklerken herhangi bir sorunla karşılaşırsanız, Ortak Sorunlar kılavuzumuzda çözümler ve yararlı ipuçları bulunmaktadır.

Adım 2: Ardından, gerekli kütüphaneleri içe aktaracağız. OpenCV kütüphanesi video işlemede bize yardımcı olacak.

import cv2
from ultralytics import YOLO, solutions

Adım 3: Ardından, YOLOv8 modelini yükleyebilir ve modelin detect 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 giriş 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 çekirdeği videoyu kare kare işler. Her kareyi okur ve nesneleri detect edip track . Takip edilen nesnelerin hızı tahmin edilir ve açıklamalı çerçeve çıkış 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 yazma nesnelerini serbest bırakıyoruz ve tüm OpenCV pencerelerini kapatıyoruz.

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ı

Bilgisayar görüşü kullanarak hız tahmini yapmanın zorluklarını anlamak da önemlidir. Yağmur, sis veya kar gibi elverişsiz hava koşulları yolun görünürlüğünü engelleyebileceğinden sistemde sorunlara neden olabilir. Benzer şekilde, diğer araçların veya nesnelerin neden olduğu tıkanmalar, bu sistemlerin hedef aracın hızını doğru bir şekilde track ve tahmin etmesini zorlaştırabilir. Gölgelere veya güneşten kaynaklanan parlamaya neden olan zayıf 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 sağlar. Zorlu koşullarda doğruluk ve gizlilik sorunlarının ele alınması gibi zorluklar olsa da avantajları çok çeşitlidir. Bilgisayarlı görü destekli 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 araçlar gibi çeşitli sektörlerde kullanışlıdır. Tüm faydaları ve uygulamaları ile geleceğin akıllı sistemlerinin ö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