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.
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:
carobjectspersonroadstairs
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.
- Ö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
| 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 |
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.txtEğ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.
Varsayılan model ve videos/video.mp4 ile:
python main.pyBaşka bir video ile:
python main.py --source videos/example.mp4Bilgisayarın varsayılan kamerası ile:
python main.py --source 0Bir ağ akışı ve açık cihaz seçimi ile:
python main.py --source "http://camera-address/video" --device cpuTü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 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.
| 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.
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
- 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ı.
- E-posta: dnzilkay1@gmail.com
- GitHub Issues