Dự án Hệ thống Báo động An ninh sử dụng Ultralytics YOLO26#
Dự án Hệ thống Báo động An ninh sử dụng Ultralytics YOLO26 tích hợp các khả năng thị giác máy tính tiên tiến để tăng cường các biện pháp bảo mật. YOLO26, do Ultralytics phát triển, cung cấp khả năng phát hiện đối tượng theo thời gian thực, cho phép hệ thống nhanh chóng xác định và phản hồi các mối đe dọa an ninh tiềm ẩn. Dự án này mang lại một số lợi ích:
- Phát hiện theo thời gian thực: Hiệu suất của YOLO26 cho phép Hệ thống Báo động An ninh phát hiện và phản hồi các sự cố an ninh theo thời gian thực, giảm thiểu thời gian phản hồi.
- Độ chính xác: YOLO26 nổi tiếng với độ chính xác trong việc phát hiện đối tượng, giúp giảm các kết quả dương tính giả và nâng cao độ tin cậy của hệ thống báo động an ninh.
- Khả năng tích hợp: Dự án có thể được tích hợp liền mạch với hạ tầng an ninh hiện có, cung cấp một lớp giám sát thông minh được nâng cấp.
Gửi Cảnh báo An ninh với YOLO26#
Giải pháp SecurityAlarm theo dõi các đối tượng trong luồng video của bạn và gửi một email cảnh báo duy nhất kèm hình ảnh đã chú thích ngay khi số lượng đối tượng phát hiện đạt ngưỡng records. Xác thực tài khoản Gmail bằng mật khẩu ứng dụng, sau đó chạy giải pháp trên nguồn dữ liệu của bạn.
Điều hướng đến Trình tạo mật khẩu ứng dụng, chỉ định tên ứng dụng chẳng hạn như "security project" và lấy mật khẩu 16 chữ số. Sao chép mật khẩu này và dán vào trường password trong mã nguồn bên dưới.
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 windowsKhi chạy code, bạn sẽ nhận được một thông báo email duy nhất nếu phát hiện bất kỳ đối tượng nào. Thông báo được gửi ngay lập tức, không lặp lại. Bạn có thể tùy chỉnh code để phù hợp với yêu cầu dự án của mình.
Mẫu Email Đã nhận#
Các argument của SecurityAlarm#
Dưới đây là bảng các tham số của SecurityAlarm:
| Đối số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
model | str | None | Đường dẫn đến file model Ultralytics YOLO. |
records | int | 5 | Tổng số detection cần đạt để kích hoạt email cùng hệ thống cảnh báo an ninh. |
line_width | int | 2 | Độ dày đường kẻ cho các box, keypoint và số lượng mà solution vẽ. |
verbose | bool | True | Bật log theo từng frame của solution, gồm kích thước input, số lượng class và tốc độ xử lý. Riêng lệnh tracking luôn ở chế độ im lặng. |
Giải pháp SecurityAlarm hỗ trợ nhiều tham số track khác nhau:
| Đối số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Chỉ định thuật toán theo dõi cần sử dụng. Các tùy chọn tích hợp sẵn: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Thiết lập ngưỡng độ tin cậy cho các detection; giá trị thấp hơn cho phép theo dõi nhiều đối tượng hơn nhưng có thể bao gồm các false positive. |
iou | float | 0.7 | Thiết lập ngưỡng Intersection over Union (IoU) để lọc các detection chồng lấn. |
classes | list | None | Lọc kết quả theo chỉ số class. Ví dụ, classes=[0, 2, 3] chỉ theo dõi các class được chỉ định. |
device | str | None | Chỉ định thiết bị dùng cho inference (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng lựa chọn giữa CPU, một GPU cụ thể hoặc các thiết bị tính toán khác để thực thi model. |
imgsz | int or tuple | 640 | Kích thước ảnh inference mục tiêu: một số nguyên cho ảnh vuông hoặc một cặp (height, width). Các hình dạng được điều chỉnh theo stride của model. |
max_det | int | 300 | Số lượng detection tối đa được giữ lại trên mỗi frame trước khi tracking, giới hạn các đối tượng mà một solution xử lý trong các scene đông đúc. |
quantize | int or str | None | Độ chính xác inference: 16 (FP16) hoặc 32/không thiết lập (FP32) đối với các model PyTorch và TorchScript; các định dạng khác tính toán ở độ chính xác mà artifact và runtime của chúng chọn. Thay thế cờ half đã bị loại bỏ. |
Ngoài ra, các cài đặt trực quan hóa sau đây cũng khả dụng:
| Đối số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
show | bool | False | Nếu True, hiển thị image hoặc video đã được annotate trong một cửa sổ. Hữu ích để nhận phản hồi trực quan ngay lập tức trong quá trình development hoặc testing. |
show_conf | bool | True | Hiển thị score confidence cho mỗi detection bên cạnh label. Cung cấp thông tin về mức độ chắc chắn của model đối với từng detection. |
show_labels | bool | True | Hiển thị label cho mỗi detection trong output trực quan. Cung cấp nhận biết tức thì về các object được phát hiện. |
Cách thức hoạt động#
Hệ thống Báo động An ninh sử dụng theo dõi đối tượng để giám sát các luồng video và phát hiện các mối đe dọa an ninh tiềm ẩn. Khi hệ thống phát hiện các đối tượng vượt quá ngưỡng được chỉ định (thiết lập bởi tham số records), hệ thống sẽ tự động gửi thông báo qua email kèm tệp hình ảnh hiển thị các đối tượng đã phát hiện.
Hệ thống tận dụng lớp SecurityAlarm, cung cấp các phương thức để:
- Xử lý các frame và trích xuất các đối tượng đã phát hiện
- Chú thích các frame bằng bounding box xung quanh các đối tượng đã phát hiện
- Gửi thông báo qua email khi các ngưỡng phát hiện bị vượt quá
Triển khai này phù hợp cho an ninh gia đình, giám sát bán lẻ và các ứng dụng giám sát khác, nơi việc thông báo ngay lập tức về các đối tượng được phát hiện là yếu tố then chốt.
FAQ#
Ultralytics YOLO26 nâng cao các hệ thống báo động an ninh bằng khả năng phát hiện đối tượng có độ chính xác cao theo thời gian thực. Các thuật toán tiên tiến của model giúp giảm đáng kể các kết quả dương tính giả, đảm bảo hệ thống chỉ phản hồi các mối đe dọa thực sự. Độ tin cậy được nâng cao này có thể được tích hợp liền mạch với hạ tầng an ninh hiện có, cải thiện chất lượng giám sát tổng thể.
Có, Ultralytics YOLO26 có thể được tích hợp liền mạch với hạ tầng an ninh hiện có của bạn. Hệ thống hỗ trợ nhiều chế độ và cung cấp khả năng tùy chỉnh linh hoạt, cho phép bạn nâng cấp thiết lập hiện tại bằng các khả năng phát hiện đối tượng tiên tiến. Để xem hướng dẫn chi tiết về cách tích hợp YOLO26 vào dự án, hãy truy cập phần tích hợp.
Việc chạy Ultralytics YOLO26 trên một thiết lập tiêu chuẩn thường yêu cầu khoảng 5GB dung lượng đĩa trống. Dung lượng này bao gồm không gian lưu trữ model YOLO26 và mọi dependency bổ sung. Đối với các giải pháp dựa trên cloud, Ultralytics Platform cung cấp khả năng quản lý dự án và xử lý dataset hiệu quả, giúp tối ưu nhu cầu lưu trữ. Tìm hiểu thêm về Gói Pro để sử dụng các tính năng nâng cao, bao gồm dung lượng lưu trữ mở rộng.
Ultralytics YOLO26 vượt trội hơn các model như Faster R-CNN hoặc SSD nhờ khả năng phát hiện theo thời gian thực và độ chính xác cao hơn. Kiến trúc độc đáo của model cho phép xử lý hình ảnh nhanh hơn nhiều mà không ảnh hưởng đến độ chính xác, khiến model trở nên lý tưởng cho các ứng dụng nhạy cảm về thời gian như hệ thống báo động an ninh. Để xem so sánh toàn diện giữa các model phát hiện đối tượng, bạn có thể tham khảo hướng dẫn của chúng tôi.
Để giảm các kết quả dương tính giả, hãy đảm bảo model Ultralytics YOLO26 của bạn được huấn luyện đầy đủ với một dataset đa dạng và được chú thích kỹ lưỡng. Tinh chỉnh hyperparameter và thường xuyên cập nhật model bằng dữ liệu mới có thể cải thiện đáng kể độ chính xác phát hiện. Bạn có thể tìm thấy các kỹ thuật tinh chỉnh hyperparameter chi tiết trong hướng dẫn tinh chỉnh hyperparameter của chúng tôi.