Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmartVisionAssist

YOLOv8 ve OpenCV ile geliştirilmiş, görsel çevre farkındalığına yönelik deneysel nesne algılama ve sesli bildirim prototipi.

Important

SmartVisionAssist bir araştırma/portföy prototipidir. Bağımsız hareket veya güvenli navigasyon aracı değildir. Algılama ve mesafe tahminleri hatalı olabilir; gerçek dünyada baston, rehber köpek veya profesyonel yardımcı teknolojilerin yerine kullanılmamalıdır.

Proje hakkında

Uygulama bir video, kamera veya ağ akışı üzerinde özel eğitilmiş YOLOv8 modelini çalıştırır. Algılanan nesnelerin görüntüdeki konumunu dokuz bölgeli bir grid ile açıklar, kalibre edilebilir bir odak değeriyle yaklaşık mesafe üretir ve en yakın nesne için sesli bildirim verir.

Modelde bulunan sınıflar:

  • car
  • objects
  • person
  • road
  • stairs

car ve stairs tehlikeli nesne olarak değerlendirilir ve alarm oluşturabilir. road algılaması yalnızca yol sınıfının görüntüdeki konumunu bildirir; yürünebilir veya engelsiz bir rota garanti etmez.

Özellikler

  • Özel eğitilmiş YOLOv8 modeliyle kare bazlı nesne algılama
  • Sol/orta/sağ ve üst/orta/alt bölgelerinden oluşan konum bilgisi
  • Nesnenin varsayılan gerçek genişliğine dayanan yaklaşık mesafe hesabı
  • Kuyruk tabanlı metinden sese bildirim
  • Tehlikeli veya çok yakın algılamalar için çakışmayan alarm
  • Video duraklatma, ileri/geri sarma ve grid görünümü
  • Video dosyası, kamera indeksi veya ağ akışı desteği
  • Ayarlanabilir güven eşiği, görüntü boyutu, cihaz ve odak değeri

Teknolojiler

Teknoloji Kullanım
Python 3.10+ Uygulama ve algılama akışı
Ultralytics YOLOv8 Nesne algılama
OpenCV Video okuma ve görselleştirme
pyttsx3 Yerel metinden sese dönüşüm
Pygame Alarm sesi

Kurulum

git clone https://github.com/dnzilkay/SmartVisionAssist.git
cd SmartVisionAssist

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt

Eğitilmiş models/my_model.pt dosyası repoya dahildir.

Örnek video büyük olduğu için repoya eklenmemiştir. Bağlantıyı videos/videolink.txt dosyasında bulabilir ve videoyu videos/video.mp4 olarak kaydedebilirsiniz. Bunun yerine kendi videonuzu, kameranızı veya ağ akışınızı da kullanabilirsiniz.

Kullanım

Varsayılan model ve videos/video.mp4 ile:

python main.py

Başka bir video ile:

python main.py --source videos/example.mp4

Bilgisayarın varsayılan kamerası ile:

python main.py --source 0

Bir ağ akışı ve açık cihaz seçimi ile:

python main.py --source "http://camera-address/video" --device cpu

Tüm seçenekleri görmek için:

python main.py --help

Öne çıkan parametreler:

Parametre Açıklama Varsayılan
--source Video yolu, kamera indeksi veya akış URL'si videos/video.mp4
--model YOLO model dosyası models/my_model.pt
--confidence Minimum algılama güveni 0.5
--image-size YOLO giriş boyutu 640
--device cpu, mps, 0 gibi Ultralytics cihaz değeri Otomatik
--focal-length Mesafe tahmini için kalibre edilmiş odak değeri 615
--max-distance Seslendirilecek en uzak tahmin 25 metre
--mute Uygulamayı sessiz başlatır Kapalı

Mesafe tahmini hakkında

Mesafe hesabı aşağıdaki basit yaklaşımı kullanır:

mesafe = (varsayılan gerçek genişlik × odak değeri) / piksel genişliği

Bu değer bir derinlik sensörü ölçümü değildir. Nesne boyutu, kamera açısı ve odak kalibrasyonuna bağlı olarak değişir. Daha anlamlı sonuçlar için --focal-length değeri kullanılan kameraya göre kalibre edilmelidir.

Klavye kısayolları

Tuş İşlev
q Uygulamadan çık
s Sesli bildirimleri kapat
r Sesli bildirimleri aç
p Videoyu duraklat/devam ettir
d Dokuz bölgeli grid çizgilerini aç/kapat
f Beş saniye ileri sar
b Beş saniye geri sar

İleri/geri sarma yalnızca kare hızı bilgisi sağlayan video kaynaklarında kullanılabilir.

Proje yapısı

SmartVisionAssist/
├── main.py
├── requirements.txt
├── core/
│   ├── alarm.py
│   ├── detector.py
│   ├── logic.py
│   ├── speaker.py
│   └── utils.py
├── models/
│   └── my_model.pt
├── sounds/
│   └── alarm.wav
└── videos/
    └── videolink.txt

Bilinen sınırlamalar

  • Model başarımına ilişkin yayımlanmış bir doğrulama metriği bulunmuyor.
  • Uygulama her karede yalnızca tahmini olarak en yakın nesneyi seslendiriyor.
  • Yol algılaması serbest alan veya engel analizi yapmıyor.
  • Mesafe değerleri kamera kalibrasyonuna ve varsayılan nesne genişliğine bağlı.
  • Arayüz OpenCV penceresi ve İngilizce sesli mesajlarla sınırlı.

İletişim

About

Experimental YOLOv8 and OpenCV object detection prototype with approximate distance estimation and voice alerts.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages