Ultralytics YOLO26 Kullanarak Güvenlik Alarm Sistemi Projesi#
Ultralytics YOLO26 kullanan Güvenlik Alarm Sistemi Projesi, güvenlik önlemlerini geliştirmek için gelişmiş bilgisayarlı görü özelliklerini entegre eder. Ultralytics tarafından geliştirilen YOLO26, gerçek zamanlı nesne algılama sağlayarak sistemin olası güvenlik tehditlerini hızlıca tanımlamasına ve bunlara yanıt vermesine olanak tanır. Bu proje çeşitli avantajlar sunar:
- Gerçek Zamanlı Algılama: YOLO26'nın verimliliği, Güvenlik Alarm Sisteminin güvenlik olaylarını gerçek zamanlı olarak algılayıp yanıtlamasını sağlar ve yanıt süresini en aza indirir.
- Doğruluk: YOLO26, nesne algılamadaki 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ıyla sorunsuz şekilde entegre edilerek akıllı gözetim için yükseltilmiş bir katman sağlayabilir.
YOLO26 ile Güvenlik Uyarıları Gönderme#
SecurityAlarm çözümü video akışındaki nesneleri izler ve algılama sayısı records eşiğine ulaşır ulaşmaz ekinde açıklamalı bir görüntü bulunan tek bir e-posta uyarısı gönderir. Bir Gmail hesabının kimliğini uygulama şifresiyle doğrula, ardından çözümü kaynağın üzerinde çalıştır.
Uygulama Parolası Oluşturucu sayfasına git, "security project" gibi bir uygulama adı belirle ve 16 haneli bir parola al. Bu parolayı kopyala ve aşağıdaki kodda bulunan 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 writer
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" # the sender email address
password = "---- ---- ---- ----" # 16-digits password generated via: https://myaccount.google.com/apppasswords
to_email = "xyz@gmail.com" # the receiver email address
# Initialize security alarm object
securityalarm = solutions.SecurityAlarm(
show=True, # display the output
model="yolo26n.pt", # e.g., yolo26s.pt, yolo26m.pt
records=1, # total detections count to send an email
)
securityalarm.authenticate(from_email, password, to_email) # authenticate the email server
# Process video
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) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windowsKodu çalıştırdığında herhangi bir nesne algılanırsa tek bir e-posta bildirimi alırsın. Bildirim tekrarlı olarak değil, hemen gönderilir. Kodu proje gereksinimlerine uyacak şekilde özelleştirebilirsin.
Alınan E-posta Örneği#
SecurityAlarm Bağımsız Değişkenleri#
SecurityAlarm bağımsız değişkenlerini içeren tablo aşağıda verilmiştir:
| Bağımsız değişken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
model | str | None | Bir Ultralytics YOLO model dosyasının yolu. |
records | int | 5 | Güvenlik alarm sistemiyle e-posta göndermeyi tetikleyecek toplam algılama sayısı. |
line_width | int | 2 | Çözümün çizdiği kutular, kilit noktaları ve sayılar için çizgi kalınlığı. |
verbose | bool | True | Çözümün kare başına giriş şeklini, sınıf sayılarını ve işlem hızını kaydetmesini etkinleştirir. Takip çağrısı 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 | 'botsort.yaml' | Kullanılacak takip 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; daha düşük değerler daha fazla nesnenin takip edilmesine olanak tanır ancak yanlış pozitifler içerebilir. |
iou | float | 0.7 | Örtüşen algılamaları filtrelemek için Birleşim Üzerindeki Kesişim (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ı takip eder. |
device | str | None | Çıkarım için cihazı belirtir (ör. cpu, cuda:0 veya 0). Kullanıcıların model çalıştırma işlemi için CPU, belirli bir GPU veya diğer hesaplama cihazları arasında seçim yapmasına olanak tanır. |
imgsz | int or tuple | 640 | Hedef çıkarım görüntü boyutu: kare için bir tamsayı veya bir (height, width) çifti. Şekiller model adımına göre ayarlanır. |
max_det | int | 300 | İzlemeden önce kare başına tutulan maksimum algılama sayısı; yoğun sahnelerde bir çözümün işlediği nesneleri sınırlar. |
quantize | int or str | None | Çıkarım hassasiyeti: PyTorch ve TorchScript modelleri için 16 (FP16) veya 32/ayarlanmamış (FP32); diğer formatlar, yapılarının ve çalışma zamanının seçtiği hassasiyette hesaplama yapar. Kullanımdan kaldırılan half bayrağının yerini alır. |
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 olduğunda açıklamalı görüntüleri veya videoları bir pencerede görüntüler. 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 skorunu etiketin yanında görüntüler. Modelin her algılamaya ilişkin kesinliği hakkında fikir verir. |
show_labels | bool | True | Görsel çıktıda her algılama için etiketleri görüntüler. 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 algılamak için nesne izleme kullanır. Sistem, belirtilen eşiği (records parametresiyle ayarlanır) aşan nesneleri algıladığında, algılanan nesneleri gösteren ekli bir görüntüyle birlikte otomatik olarak e-posta bildirimi gönderir.
Sistem, aşağıdaki işlemleri sağlayan SecurityAlarm sınıfından yararlanır:
- Kareleri işleme ve nesne algılamalarını çıkarma
- Algılanan nesnelerin çevresine sınırlayıcı kutular ekleyerek karelere açıklama ekleme
- Algılama eşikleri aşıldığında e-posta bildirimleri gönderme
Bu uygulama; ev güvenliği, perakende gözetimi ve algılanan nesneler hakkında anında bildirimin kritik olduğu diğer izleme uygulamaları için idealdir.
SSS#
Ultralytics YOLO26, yüksek doğruluklu gerçek zamanlı nesne algılama sağlayarak 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. Bu artan güvenilirlik, mevcut güvenlik altyapısıyla sorunsuz şekilde entegre edilerek genel gözetim kalitesini yükseltebilir.
Evet, Ultralytics YOLO26 mevcut güvenlik altyapınla sorunsuz şekilde entegre edilebilir. Sistem çeşitli modları destekler ve özelleştirme esnekliği sunar; böylece mevcut kurulumunu gelişmiş nesne algılama özellikleriyle geliş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 genellikle yaklaşık 5 GB boş disk alanı gerektirir. Buna YOLO26 modelini ve ek 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 işleme özellikleri sunar. Daha fazla depolama dahil gelişmiş özellikler hakkında bilgi edinmek için Pro Planı hakkında daha fazla bilgi edin.
Ultralytics YOLO26, gerçek zamanlı algılama yetenekleri 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 zamana duyarlı uygulamalar için ideal kılar. Nesne algılama modellerinin kapsamlı bir karşılaştırması için kılavuzumuzu inceleyebilirsin.
Yanlış pozitifleri azaltmak için Ultralytics YOLO26 modelinin çeşitli ve iyi açıklanmış bir veri kümesiyle yeterince eğitildiğinden emin ol. Hiperparametreleri ince ayarlamak ve modeli yeni verilerle düzenli olarak güncellemek algılama doğruluğunu önemli ölçüde artırabilir. Ayrıntılı hiperparametre ayarlama tekniklerini hiperparametre ayarlama kılavuzumuzda bulabilirsin.