YOLO Vision 2026:

使用 Ultralytics YOLO26 的安全报警系统项目#

AI-powered security alarm system with object detection

使用 Ultralytics YOLO26 的安全警报系统项目集成了先进的 computer vision 功能,以增强安全措施。由 Ultralytics 开发的 YOLO26 提供了实时的 object detection,使系统能够迅速识别潜在的安全威胁并作出响应。该项目具有以下几个优势:

  • 实时检测: YOLO26 的高效率使安全报警系统能够实时检测并应对安全事件,从而最大限度地缩短响应时间。
  • Accuracy: YOLO26 以其在目标检测方面的准确性而闻名,减少了误报并增强了安全警报系统的可靠性。
  • 集成能力: 该项目可以与现有的安全基础设施无缝集成,提供升级的智能监控层。


Watch: Security Alarm System with Ultralytics YOLO26 + Solutions Object Detection

使用 YOLO26 发送安全警报#

SecurityAlarm 解决方案会跟踪视频流中的目标,一旦检测数量达到 records 阈值,就会发送一封包含带有标注的图片附件的电子邮件警报。使用应用专用密码验证你的 Gmail 账户,然后在你的源上运行该解决方案。

注意

需要生成应用密码

  • 导航至 App Password Generator,指定一个应用名称(例如“security project”),并获取一个 16 位密码。复制此密码并将其粘贴到下方代码中指定的 password 字段中。
使用 Ultralytics YOLO 的安全报警系统
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 windows

当你运行此代码时,如果检测到任何对象,你将收到单封电子邮件通知。通知会立即发送,且不会重复发送。你可以根据项目需求自定义代码。

电子邮件接收示例#

Security alert email notification example

SecurityAlarm 参数#

以下是包含 SecurityAlarm 参数的表格:

参数类型默认值描述
modelstrNoneUltralytics YOLO 模型文件的路径。
recordsint5触发安全报警系统发送电子邮件所需的检测总数。
line_widthint2解决方案绘制的框、关键点和计数的线条粗细。
verboseboolTrue启用解决方案针对每帧的输入形状、类别计数和处理速度的日志记录。跟踪调用本身始终是静默的。

SecurityAlarm 解决方案支持多种 track 参数:

参数类型默认值描述
trackerstr'botsort.yaml'指定要使用的跟踪算法。内置选项:botsort.yamlbytetrack.yamlocsort.yamldeepocsort.yamlfasttrack.yamltracktrack.yaml
conffloat0.25设置检测的置信度阈值;较低的值允许跟踪更多的对象,但也可能包含误报。
ioufloat0.7设置用于过滤重叠检测结果的交并比 (IoU) 阈值。
classeslistNone按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定的类别。
devicestrNone指定用于推理的设备(例如 cpucuda:00)。允许用户在 CPU、特定的 GPU 或用于模型执行的其他计算设备之间进行选择。

此外,还提供以下可视化设置:

参数类型默认值描述
showboolFalse如果为 True,则在窗口中显示带注释的图像或视频。对于开发或测试期间的即时视觉反馈非常有用。
show_confboolTrue在标签旁显示每次检测的置信度得分。让你深入了解模型对每次检测的确定性。
show_labelsboolTrue在视觉输出中显示每次检测的标签。提供对检测到对象的即时理解。

工作原理#

安全警报系统使用 object tracking 来监控视频流并检测潜在的安全威胁。当系统检测到超过指定阈值(由 records 参数设置)的目标时,它会自动发送一封带有显示检测到目标的图片附件的电子邮件通知。

该系统利用了 SecurityAlarm class,它提供了以下方法:

  1. 处理帧并提取目标检测结果
  2. 使用边界框标注帧中检测到的目标
  3. 当超出检测阈值时发送电子邮件通知

此实现非常适合家庭安全、零售监控以及其他对检测到目标后的即时通知至关重要的监控应用。

常见问题解答#

  • Ultralytics YOLO26 通过提供高准确性的实时目标检测来增强安全报警系统。其先进的算法显著减少了误报,确保系统仅对真正的威胁做出响应。这种可靠性的提升可以与现有安全基础设施无缝集成,从而升级整体监控质量。

  • 可以,Ultralytics YOLO26 可以无缝集成到你现有的安全基础架构中。该系统支持各种模式并提供灵活的自定义选项,让你能够通过先进的目标检测功能增强现有的设置。有关在项目中集成 YOLO26 的详细说明,请访问 integration section

  • 在标准设置上运行 Ultralytics YOLO26 通常需要大约 5GB 的可用磁盘空间。这包括用于存储 YOLO26 模型和任何附加依赖项的空间。对于基于云的解决方案,Ultralytics Platform 提供了高效的项目管理和数据集处理功能,这可以优化存储需求。了解有关 Pro Plan 的更多信息以获取包括扩展存储在内的增强功能。

  • 凭借其实时检测能力和更高的准确性,Ultralytics YOLO26 相比 Faster R-CNN 或 SSD 等模型具有优势。其独特的架构使其能够更快地处理图像而不妥协于 precision,使其成为安全警报系统等时间敏感型应用的理想选择。有关目标检测模型的全面比较,你可以探索我们的 guide

  • 为了减少误报,请确保你的 Ultralytics YOLO26 模型使用多样化且标注良好的数据集进行了充分训练。微调超参数并定期使用新数据更新模型可以显著提高检测准确性。详细的 hyperparameter tuning 技术可以在我们的 hyperparameter tuning guide 中找到。

评论