Ultralytics YOLO26 ile Güvenlik Alarm Sistemi Projesi#
Ultralytics YOLO26 kullanan Güvenlik Alarm Sistemi Projesi, güvenlik önlemlerini güçlendirmek için gelişmiş bilgisayarlı görü yeteneklerini bir araya getirir. Ultralytics tarafından geliştirilen YOLO26, gerçek zamanlı nesne tespiti sunarak sistemin potansiyel güvenlik tehditlerini hızla belirleyip bunlara yanıt vermesini sağlar. Bu proje çeşitli avantajlar sunar:
- Gerçek Zamanlı Tespit: YOLO26'nın verimliliği, Güvenlik Alarm Sisteminin güvenlik olaylarını gerçek zamanlı tespit edip bunlara yanıt vermesini ve yanıt süresini en aza indirmesini sağlar.
- Doğruluk: YOLO26, nesne tespitindeki doğruluğuyla bilinir; yanlış pozitifleri azaltır ve güvenlik alarm sisteminin güvenilirliğini artırır.
- Entegrasyon Yetenekleri: Proje, mevcut güvenlik altyapısına sorunsuz şekilde entegre edilerek akıllı gözetim için geliştirilmiş bir katman sunabilir.
YOLO26 ile Güvenlik Uyarıları Gönder#
SecurityAlarm çözümü, video akışındaki nesneleri takip eder ve tespit sayısı records eşiğine ulaşır ulaşmaz açıklama eklenmiş bir görselin iliştirildiği tek bir e-posta uyarısı gönderir. Bir uygulama şifresiyle Gmail hesabını doğrula, ardından çözümü kaynağında çalıştır.
Uygulama Şifresi Oluşturucu sayfasına git, "security project" gibi bir uygulama adı belirle ve 16 karakterli bir şifre al. Bu şifreyi kopyalayıp aşağıdaki koddaki password alanına yapıştır.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video yazıcısı
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("security_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
from_email = "abc@gmail.com" # gönderenin e-posta adresi
password = "---- ---- ---- ----" # şu adresten oluşturulan 16 karakterli uygulama şifresi: https://myaccount.google.com/apppasswords
to_email = "xyz@gmail.com" # alıcının e-posta adresi
# Güvenlik alarmı nesnesini başlat
securityalarm = solutions.SecurityAlarm(
show=True, # çıktıyı görüntüle
model="yolo26n.pt", # ör. yolo26s.pt, yolo26m.pt
records=1, # E-posta göndermek için toplam tespit sayısı
)
securityalarm.authenticate(from_email, password, to_email) # E-posta sunucusunun kimliğini doğrula
# Videoyu işle
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = securityalarm(im0)
# print(results) # çıktıya eriş
video_writer.write(results.plot_im) # işlenmiş kareyi yaz.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # açık tüm pencereleri kapatKodu çalıştırdığında, herhangi bir nesne tespit edilirse tek bir e-posta bildirimi alırsın. Bildirim tekrarlanmadan hemen gönderilir. Kodu projenin gereksinimlerine göre özelleştirebilirsin.
Alınan E-posta Örneği#
SecurityAlarm Bağımsız Değişkenleri#
Aşağıda SecurityAlarm bağımsız değişkenlerini içeren bir tablo bulabilirsin:
| Bağımsız değişken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
model | str | None | Ultralytics YOLO model dosyasının yolu. |
records | int | 5 | Güvenlik alarm sistemiyle e-posta gönderilmesini tetikleyecek toplam tespit sayısı. |
line_width | int | 2 | Çözümün çizdiği kutular, anahtar noktalar ve sayılar için çizgi kalınlığı. |
verbose | bool | True | Çözümün her kare için girdi şekli, sınıf sayıları ve işleme hızına ilişkin günlüğünü etkinleştirir. İzleme çağrısının kendisi her zaman sessizdir. |
SecurityAlarm çözümü çeşitli track parametrelerini destekler:
| Bağımsız değişken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Kullanılacak izleme algoritmasını belirtir. Yerleşik seçenekler: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Algılamalar için güven eşiğini belirler; düşük değerler daha fazla nesnenin izlenmesine olanak tanır ancak yanlış pozitifleri de içerebilir. |
iou | float | 0.7 | Çakışan algılamaları filtrelemek için Kesişim-Birleşim Oranı (IoU) eşiğini belirler. |
classes | list | None | Sonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler. |
device | str | None | Çıkarım için kullanılacak cihazı belirtir (ör. cpu, cuda:0 veya 0). Kullanıcıların model yürütme için CPU, belirli bir GPU veya başka hesaplama cihazları arasında seçim yapmasına olanak tanır. |
imgsz | int or tuple | 640 | Hedef çıkarım görüntü boyutu: kare görüntüler için bir tam sayı veya bir (height, width) çifti. Boyutlar model adım değerine göre ayarlanır. |
max_det | int | 300 | Yoğun sahnelerde bir çözümün işleyeceği nesne sayısını sınırlamak için izleme öncesinde kare başına tutulan en yüksek algılama sayısı. |
quantize | int or str | None | Çıkarım hassasiyeti: PyTorch ve TorchScript modellerinde 16 (FP16) veya 32/ayarlanmamış (FP32); diğer biçimlerde hesaplama, yapıtın ve çalışma zamanının seçtiği hassasiyetle yapılır. Kullanımdan kaldırılan half bayrağının yerine geçer. |
Ayrıca aşağıdaki görselleştirme ayarları da kullanılabilir:
| Bağımsız değişken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
show | bool | False | True ise açıklama eklenmiş görüntüleri veya videoları bir pencerede gösterir. Geliştirme veya test sırasında anında görsel geri bildirim almak için kullanışlıdır. |
show_conf | bool | True | Her algılamanın güven puanını etiketinin yanında gösterir. Modelin her algılamaya ne kadar güvendiğini görmeni sağlar. |
show_labels | bool | True | Görsel çıktıda her algılama için etiketleri gösterir. Algılanan nesnelerin hemen anlaşılmasını sağlar. |
Nasıl Çalışır?#
Güvenlik Alarm Sistemi, video akışlarını izlemek ve olası güvenlik tehditlerini tespit etmek için nesne takibi kullanır. Bir karede tespit edilen nesne sayısı belirtilen eşiğe (records parametresiyle ayarlanır) ulaştığında, tespit edilen nesneleri gösteren bir görsel ekli e-posta bildirimini otomatik olarak gönderir.
Sistem, aşağıdaki yöntemleri sağlayan SecurityAlarm sınıfından yararlanır:
- Kareleri işle ve nesne tespitlerini çıkar
- Tespit edilen nesnelerin etrafına sınırlayıcı kutular çizerek karelere açıklama ekle
- Tespit eşikleri karşılandığında e-posta bildirimleri gönder
Bu uygulama; algılanan nesneler hakkında anında bildirim almanın kritik önem taşıdığı ev güvenliği, perakende gözetimi ve diğer izleme uygulamaları için idealdir.
Sık Sorulan Sorular#
Ultralytics YOLO26, yüksek doğruluklu gerçek zamanlı nesne tespiti sunarak güvenlik alarmı sistemlerini geliştirir. Gelişmiş algoritmaları yanlış pozitifleri önemli ölçüde azaltır ve sistemin yalnızca gerçek tehditlere yanıt vermesini sağlar. Artan bu güvenilirlik, mevcut güvenlik altyapısına sorunsuzca entegre edilerek genel gözetim kalitesini yükseltebilir.
Evet, Ultralytics YOLO26 mevcut güvenlik altyapına sorunsuzca entegre edilebilir. Sistem çeşitli modları destekler ve özelleştirme esnekliği sunar; böylece gelişmiş nesne tespit özellikleriyle mevcut kurulumunu iyileştirebilirsin. YOLO26'yı projelerine entegre etmeye ilişkin ayrıntılı talimatlar için entegrasyon bölümünü ziyaret et.
Ultralytics YOLO26'yı standart bir kurulumda çalıştırmak için genellikle yaklaşık 5 GB boş disk alanı gerekir. Buna YOLO26 modelini ve diğer bağımlılıkları depolamak için gereken alan dahildir. Bulut tabanlı çözümler için Ultralytics Platform, depolama gereksinimlerini optimize edebilecek verimli proje yönetimi ve veri kümesi yönetimi sunar. Genişletilmiş depolama dâhil gelişmiş özellikler için Pro Plan hakkında daha fazla bilgi edin.
Ultralytics YOLO26, gerçek zamanlı tespit özellikleri ve daha yüksek doğruluğuyla Faster R-CNN veya SSD gibi modellere göre avantaj sağlar. Benzersiz mimarisi, hassasiyetten ödün vermeden görüntüleri çok daha hızlı işlemesine olanak tanır; bu da onu güvenlik alarmı sistemleri gibi zaman açısından kritik uygulamalar için ideal kılar. Nesne tespit modellerinin kapsamlı karşılaştırması için kılavuzumuzu inceleyebilirsin.
Yanlış pozitifleri azaltmak için Ultralytics YOLO26 modelinin çeşitli ve iyi açıklamalar eklenmiş bir veri kümesiyle yeterince eğitildiğinden emin ol. Hiperparametreleri ince ayarlamak ve modeli yeni verilerle düzenli olarak güncellemek tespit doğruluğunu önemli ölçüde artırabilir. Ayrıntılı hiperparametre ayarlama tekniklerini hiperparametre ayarlama kılavuzumuzda bulabilirsin.