Link to this section使用 Ultralytics YOLO26 的安全报警系统项目#
利用 Ultralytics YOLO26 的安全报警系统项目集成了先进的 计算机视觉 功能,以加强安全措施。由 Ultralytics 开发的 YOLO26 提供实时 目标检测,使系统能够及时识别潜在安全威胁并做出响应。该项目具有以下优势:
- 实时检测: YOLO26 的高效率使安全报警系统能够实时检测并应对安全事件,从而最大限度地缩短响应时间。
- 准确率: YOLO26 以其目标检测的准确性而闻名,减少了误报并增强了安全报警系统的可靠性。
- 集成能力: 该项目可以与现有的安全基础设施无缝集成,提供升级的智能监控层。
Link to this section使用 YOLO26 发送安全警报#
SecurityAlarm 解决方案会追踪视频流中的对象,并在检测数量达到 records 阈值时,立即发送一封附带标注图像的电子邮件提醒。请使用应用专用密码验证 Gmail 账户,然后在你的源视频上运行此解决方案。
注意
需要生成应用密码
- 导航至 应用密码生成器,指定一个应用名称(例如“security project”),然后获取一个 16 位的密码。复制此密码并将其粘贴到下方代码中指定的
password字段中。
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当你运行此代码时,如果检测到任何对象,你将收到单封电子邮件通知。通知会立即发送,且不会重复发送。你可以根据项目需求自定义代码。
Link to this section电子邮件接收示例#
Link to this sectionSecurityAlarm 参数#
下表列出了 SecurityAlarm 的参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
records | int | 5 | 触发安全报警系统发送电子邮件所需的检测总数。 |
SecurityAlarm 解决方案支持多种 track 参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 指定要使用的追踪算法。内置选项包括:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.1 | 设置检测的置信度阈值;较低的值允许跟踪更多的对象,但也可能包含误报。 |
iou | float | 0.7 | 设置用于过滤重叠检测的 交并比 (IoU) 阈值。 |
classes | list | None | 按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定的类别。 |
verbose | bool | True | 控制跟踪结果的显示,提供被跟踪对象的视觉输出。 |
device | str | None | 指定推理设备(例如 cpu、cuda:0 或 0)。允许用户在 CPU、特定的 GPU 或其他计算设备之间进行选择以执行模型。 |
此外,还提供以下可视化设置:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
show | bool | False | 如果为 True,则在窗口中显示标注后的图像或视频。这对于开发或测试过程中的即时视觉反馈非常有用。 |
line_width | int or None | None | 指定边界框的线条宽度。如果为 None,则线条宽度会根据图像尺寸自动调整。提供用于清晰度的视觉自定义功能。 |
show_conf | bool | True | 在标签旁显示每次检测的置信度得分。让你深入了解模型对每次检测的确定性。 |
show_labels | bool | True | 在视觉输出中显示每次检测的标签。提供对检测到对象的即时理解。 |
Link to this section工作原理#
安全警报系统利用 对象追踪 来监控视频流并探测潜在的安全威胁。当系统检测到的对象超过指定阈值(由 records 参数设定)时,它会自动发送一封包含所检测对象图像附件的电子邮件通知。
该系统利用 SecurityAlarm 类,它提供了以下方法:
- 处理帧并提取目标检测结果
- 使用边界框标注帧中检测到的目标
- 当超出检测阈值时发送电子邮件通知
此实现非常适合家庭安全、零售监控以及其他对检测到目标后的即时通知至关重要的监控应用。
Link to this section常见问题解答#
Link to this sectionUltralytics YOLO26 如何提高安全报警系统的准确性?#
Ultralytics YOLO26 通过提供高准确性的实时目标检测来增强安全报警系统。其先进的算法显著减少了误报,确保系统仅对真正的威胁做出响应。这种可靠性的提升可以与现有安全基础设施无缝集成,从而升级整体监控质量。
Link to this section我可以将 Ultralytics YOLO26 与我现有的安全基础设施集成吗?#
是的,Ultralytics YOLO26 可以无缝集成到你现有的安全基础设施中。该系统支持多种模式并提供灵活的定制功能,允许你利用先进的对象检测能力来增强现有配置。关于在项目中集成 YOLO26 的详细说明,请访问 集成章节。
Link to this section运行 Ultralytics YOLO26 的存储要求是什么?#
在标准配置下运行 Ultralytics YOLO26 通常需要约 5GB 的可用磁盘空间。这包括了存储 YOLO26 模型及任何额外依赖项所需的空间。对于云端解决方案,Ultralytics Platform 提供了高效的项目管理和数据集处理功能,可以优化存储需求。了解更多关于 Pro Plan 的信息,以获取包括扩展存储在内的增强功能。
Link to this section是什么让 Ultralytics YOLO26 与 Faster R-CNN 或 SSD 等其他目标检测模型不同?#
凭借其实时检测能力和更高的准确性,Ultralytics YOLO26 在 Faster R-CNN 或 SSD 等模型面前具有明显优势。其独特的架构使其能够更快地处理图像而不牺牲 准确率,这使其非常适合安全警报系统等对时间敏感的应用。如需对象检测模型的综合对比,你可以浏览我们的 指南。
Link to this section如何使用 Ultralytics YOLO26 减少我安全系统中的误报频率?#
为了减少误报,请确保你的 Ultralytics YOLO26 模型使用了多样化且标注良好的数据集进行充分训练。微调超参数并使用新数据定期更新模型可以显著提高检测准确率。详细的 超参数调优 技术可以在我们的 超参数调优指南 中找到。