Bu sistem, yangın ve duman tespiti amacıyla YOLOv8 modelini kullanır ve yüksek çözünürlüklü kamera sistemlerinden gelen görüntüleri işleyerek gerçek zamanlı analiz yapar. Sistem, aynı zamanda tespit edilen olaylarla ilgili uyarıları görüntü ve konum bilgisiyle birlikte Telegram üzerinden gönderebilir. Aşağıda bu sistemin işleyişi ve potansiyel uygulama alanları detaylı bir şekilde açıklanmıştır.
from ultralytics import YOLO # YOLOv8 kütüphanesini içe aktar
import cv2 # Video işleme için OpenCV
import numpy as np
import os
import requests # Telegram veya WhatsApp ile mesaj göndermek için
# Yangın ve duman tespiti için YOLOv8 modelini başlat
model = YOLO('fire_smoke_detection_model.pt') # Kendi eğittiğiniz YOLOv8 modelini buraya ekleyin
# Yüksek çözünürlüklü kameradan video yakalama
cap = cv2.VideoCapture(0) # Kamera indeksi veya bir video dosyasının yolunu kullanın
if not cap.isOpened():
print("Hata: Kamera erişilemiyor!")
exit()
# Telegram API ayarları
TELEGRAM_BOT_TOKEN = 'bot_tokeninizi_buraya_yazin'
TELEGRAM_CHAT_ID = 'chat_idnizi_buraya_yazin'
def telegram_mesaj_gonder(resim_yolu, konum_koordinatlari):
"""
Resim ve koordinatlarla birlikte Telegram üzerinden mesaj gönderen fonksiyon.
"""
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendPhoto"
with open(resim_yolu, 'rb') as photo:
data = {
'chat_id': TELEGRAM_CHAT_ID,
'caption': f"Yangın/Duman Tespit Edildi!\nKonum: {konum_koordinatlari}",
}
files = {'photo': photo}
requests.post(url, data=data, files=files)
# Her kareyi işlemek için döngü
while True:
ret, frame = cap.read()
if not ret:
print("Kare yakalanamadı.")
break
# Tespit işlemi
results = model(frame)
# Tespit edilen nesneleri çıkar
detections = results.xyxy[0] # Kutu tahminlerini alın
for detection in detections:
x1, y1, x2, y2, confidence, class_id = detection[:6]
class_id = int(class_id)
# Tespit edilen sınıfın yangın veya duman olup olmadığını kontrol et
if class_id in [0, 1]: # 0 yangın, 1 duman varsayımı
label = 'fire' if class_id == 0 else 'smoke'
# Sınır kutusu ve etiket çiz
cv2.rectangle(frame, (int(x1), int(y1)), (int(x2), int(y2)), (0, 0, 255), 2)
cv2.putText(frame, f"{label} ({confidence:.2f})", (int(x1), int(y1) - 10),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
# Sınır kutulu kareyi kaydet
output_path = "tespit_edilen_yangin_duman.jpg"
cv2.imwrite(output_path, frame)
# Konum koordinatları (şimdilik örnek olarak)
coordinates = "Enlem: 12.9716, Boylam: 77.5946" # Gerçek GPS verisiyle değiştirin
# Telegram üzerinden uyarı gönder
telegram_mesaj_gonder(output_path, coordinates)
# Kareyi ekranda göster
cv2.imshow('Yangın ve Duman Tespiti', frame)
# 'q' tuşuna basıldığında çıkış yap
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Kaynakları serbest bırak
cap.release()
cv2.destroyAllWindows()
1. Temel Çalışma Mantığı
Bu kod, bir görüntü işleme döngüsü kullanarak kameradan gelen her kareyi işler:
- Model Eğitimi: YOLOv8 modelini yangın ve duman tespit edebilecek şekilde eğitirsiniz.
- Video Yakalama: OpenCV kütüphanesi ile kameradan görüntü alınır.
- Tespit İşlemi: Her kare üzerinde YOLOv8 modeli çalıştırılarak yangın ve duman gibi belirli nesnelerin varlığı tespit edilir.
- Sonuçların Görselleştirilmesi: Tespit edilen nesneler, çerçeve üzerinde sınırlayıcı kutular ve etiketler ile gösterilir.
- Uyarı Gönderimi: Tespit edilen yangın veya duman, konum bilgisi ile birlikte Telegram üzerinden bir mesaj olarak gönderilir.
2. Sistem Özellikleri
a. Yüksek Çözünürlüklü Kamera Entegrasyonu:
Kullanılan kamera, yüksek çözünürlükte görüntü sağlayarak modelin tespit doğruluğunu artırır. Özellikle büyük alanlarda veya dış mekanlarda kullanıldığında, daha küçük duman izlerini bile algılamak mümkündür.
b. Gerçek Zamanlı İşleme:
Kod, kameradan gelen görüntüleri gerçek zamanlı olarak analiz eder ve tespit edilen durumlarda anında uyarı verir.
c. Telegram Uyarı Sistemi:
Kod, tespit edilen olayları görüntü ve konum bilgisiyle Telegram üzerinden ilgililere bildirir. Bu özellik, acil durumlarda hızlı müdahale edilmesini sağlar.
3. Sistem Geliştirme ve Uygulama Alanları
a. Rüzgar Sensörleri ile Entegrasyon:
Sistem, rüzgar sensörlerinden gelen verilerle birleştirilerek yangının olası yayılma yönü ve hızı tahmin edilebilir. Örneğin:
- Rüzgarın hız ve yön bilgileri, yangının büyüme ihtimalini değerlendirmek için kullanılabilir.
- Bu tahminler, yangınla mücadelede daha etkili stratejilerin geliştirilmesine olanak tanır.
b. Yangın Yoğunluğu Tahmini:
Modelin zaman içindeki çıktılarına bakılarak yangının yoğunluğundaki değişiklikler takip edilebilir. Örneğin, dumanın büyüklüğündeki artışlar veya alevlerin yayılma hızı analiz edilebilir.
c. Konum ve Koordinat Belirleme:
Kamera konumu, GPS sensörleri veya yerel ağ bilgileri kullanılarak yangının tam koordinatları belirlenebilir. Bu koordinatlar, acil müdahale ekiplerine iletilebilir.
d. WhatsApp ile Mesaj Gönderimi:
Telegram entegrasyonuna benzer şekilde, WhatsApp API’si kullanılarak görüntü ve konum bilgisi gönderilebilir. Böylece uyarılar daha geniş bir kitleye ulaştırılabilir.
4. Uygulama Alanları
- Orman Yangını İzleme: Geniş alanlarda gerçek zamanlı izleme yaparak erken müdahale sağlar.
- Sanayi Alanları: Fabrika ve depolarda yangın riskini tespit ederek büyük felaketlerin önüne geçebilir.
- Kentsel Güvenlik: Şehir içi bölgelerde yangın ve dumanı tespit ederek toplumsal güvenliği artırır.
- Akıllı Binalar: Akıllı ev sistemleri ile entegre edilerek ev içi yangınları hızlıca bildirebilir.
5. Sistemin Avantajları
- Hızlı Müdahale: Gerçek zamanlı tespit ve uyarı mekanizması sayesinde zaman kaybı önlenir.
- Doğruluk: YOLOv8 modelinin yüksek doğruluğu sayesinde yanlış pozitif veya negatif sonuçlar minimize edilir.
- Kapsamlı İzleme: Hem duman hem de yangını aynı anda tespit edebilme özelliğiyle kapsamlı bir izleme sağlar.
- Uygun Maliyet: Kamera ve sensörler dışında özel bir donanım gerektirmez, bu da sistemi uygun maliyetli yapar.
6. Önerilen Geliştirmeler
- Rüzgar Yön Haritaları: Yangının yayılma yönünü görselleştirmek için haritalama sistemleri kullanılabilir.
- Sesli Uyarılar: Algılanan yangın durumunda, bölgedeki insanları uyarmak için sesli uyarı sistemleri entegre edilebilir.
- Mobil Uygulama Entegrasyonu: Kullanıcılar, bir mobil uygulama üzerinden doğrudan bildirim alabilir ve sistem durumunu izleyebilir.
Bu sistem, yangın ve duman tespitinde modern teknolojinin sunduğu tüm olanaklardan yararlanarak güvenlik ve acil müdahale süreçlerini geliştirmeyi hedefler. Gerekli altyapı ve eğitimle, bu tür bir çözüm her sektöre kolayca entegre edilebilir.