Ultralytics YOLO11是一款集成了高级计算机视觉功能的实时目标检测系统,它能够提高安全监控的效率和准确性。该系统能够快速识别和响应潜在的安全威胁,从而最小化响应时间。YOLO11 以其在目标检测中的准确性而闻名,减少了误报,提高了安全报警系统的可靠性。此外,该项目能够无缝集成到现有的安全基础设施中,为智能监控提供了升级的层次。
YOLO11 的高效性能使得安全报警系统能够实时检测和响应安全事件,最大限度地减少了响应时间。这种实时检测能力对于需要快速反应的安全场景至关重要,例如在监控摄像头捕捉到可疑行为时,系统可以立即发出警报。
YOLO11 在目标检测方面的准确性是其主要优势之一。通过减少误报,它提高了安全报警系统的可靠性。这意味着系统只会对真正的威胁做出反应,从而避免了不必要的安全措施,如误报导致的资源浪费。
该项目可以与现有的安全基础设施无缝集成,提供智能监控的升级层。这意味着用户可以利用现有的设备和系统,通过集成 YOLO11 来增强其监控能力,而无需进行大规模的硬件升级或更换。
在检测到目标时,系统可以自动发送电子邮件通知。这需要生成一个应用密码,并在发送邮件的函数中使用。以下是一个简单的 Python 代码示例,展示了如何设置邮件发送功能:
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib
def send_email(to_email, from_email, object_detected=1):
    ""“发送电子邮件通知,指示检测到的目标数量;默认为1个目标。”""
    message = MIMEMultipart()
    message["From"] = from_email
    message["To"] = to_email
    message["Subject"] = "安全警报"
    message_body = f"警报 - {object_detected} 个目标已被检测到!!"
    message.attach(MIMEText(message_body, "plain"))
    server = smtplib.SMTP("smtp.gmail.com: 587")
    server.starttls()
    server.login(from_email, password)
    server.sendmail(from_email, to_email, message.as_string())
以下是一个使用 Ultralytics YOLO11 进行对象检测并发送警报的 Python 类示例。该类初始化时需要指定摄像头索引,并在检测到目标时发送电子邮件。
import cv2
import torch
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors
class ObjectDetection:
    def __init__(self, capture_index):
        ""“使用给定的摄像头索引初始化 ObjectDetection 实例。”""
        self.capture_index = capture_index
        self.email_sent = False
        self.model = YOLO("yolo11n.pt")
        self.annotator = None
        self.start_time = 0
        self.end_time = 0
        self.device = "cuda" if torch.cuda.is_available() else "cpu"
    def predict(self, im0):
        ""“使用 YOLO 模型对输入图像 `im0` 进行预测。”""
        results = self.model(im0)
        return results
    def display_fps(self, im0):
        ""“通过计算并在黑色矩形上叠加白色文本来显示图像 `im0` 上的 FPS。”""
        self.end_time = time.time()
        fps = 1 / round(self.end_time - self.start_time, 2)
        text = f"FPS: {int(fps)}"
        text_size = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, 1.0, 2)[0]
        gap = 10
        cv2.rectangle(im0, (20 - gap, 70 - text_size[1] - gap), (20 + text_size[0] + gap, 70 + gap), (255, 255, 255), -1)
        cv2.putText(im0, text, (20, 70), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 0), 2)
    def plot_bboxes(self, results, im0):
        ""“在给定检测结果的图像上绘制边界框;返回注释过的图像和类 ID。”""
        class_ids = []
        self.annotator = Annotator(im0, 3, results[0].names)
        boxes = results[0].boxes.xyxy.cpu()
        clss = results[0].boxes.cls.cpu().tolist()
        names = results[0].names
        for box, cls in zip(boxes, clss):
            class_ids.append(cls)
            self.annotator.box_label(box, label=names[int(cls)], color=colors(int(cls), True))
        return im0, class_ids
    def __call__(self):
        ""“从摄像头流中运行对象检测,绘制并显示结果。”""
        cap = cv2.VideoCapture(self.capture_index)
        assert cap.isOpened()
        cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
        frame_count = 0
        while True:
            self.start_time = time.time()
            ret, im0 = cap.read()
            assert ret
            results = self.predict(im0)
            im0, class_ids = self.plot_bboxes(results, im0)
            if len(class_ids) > 0:
                if not self.email_sent:
                    send_email(to_email, from_email, len(class_ids))
                    self.email_sent = True
                else:
                    self.email_sent = False
            self.display_fps(im0)
            cv2.imshow("YOLO11 Detection", im0)
            frame_count += 1
            if cv2.waitKey(5) & 0xFF == 27:
                break
        cap.release()
        cv2.destroyAllWindows()
要运行对象检测,只需创建 ObjectDetection 类的实例并调用它。以下是如何执行的示例:
detector = ObjectDetection(capture_index=0)
detector()
执行上述代码后,如果检测到任何对象,将收到一封电子邮件通知。通知会立即发送,不会重复。当然,可以根据项目需求自定义代码。
Ultralytics YOLO11 如何提高安全报警系统的准确性? Ultralytics YOLO11 通过提供高精度的实时目标检测来增强安全报警系统。其先进的算法显著减少了误报,确保系统只对真正的威胁做出反应。这种增加的可靠性可以无缝集成到现有的安全基础设施中,提升整体监控质量。
可以将Ultralytics YOLO11集成到现有的安全基础设施中吗? 是的,Ultralytics YOLO11 可以无缝集成到现有的安全基础设施中。系统支持多种模式,并提供自定义的灵活性,允许使用先进的目标检测功能增强现有设置。有关在项目中集成 YOLO11 的详细说明,请访问。
运行 Ultralytics YOLO11 需要多少存储空间? 在标准设置上运行 Ultralytics YOLO11 通常需要大约 5GB 的空闲磁盘空间。这包括存储 YOLO11 模型和任何附加依赖项的空间。对于基于云的解决方案,Ultralytics HUB 提供了高效的项目管理和数据集处理,可以优化存储需求。了解更多关于的增强功能,包括扩展存储。
Ultralytics YOLO11与其他目标检测模型(如 Faster R-CNN 或 SSD)有何不同? Ultralytics YOLO11 以其实时检测能力和更高的准确性优于 Faster R-CNN 或 SSD 等模型。其独特的架构允许它在不牺牲精度的情况下更快地处理图像,使其非常适合安全报警系统等时间敏感的应用。有关目标检测模型的全面比较,可以探索。