首页 > 其他分享 >三、计算机视觉_08YOLO目标检测

三、计算机视觉_08YOLO目标检测

时间:2024-11-26 13:29:28浏览次数:14  
标签:视频 检测 frame YOLO cv2 08YOLO import 视觉

0、前言

YOLO作为目前CV领域的扛把子,分类、检测等任务样样精通,本文将基于两个小案例,用YOLO做检测任务,看看效果如何

1、对图片内容做检测

假设我有一张名为picture.jpeg的图片,其内容如下

我将图片和代码放到了同级目录

代码如下:

from ultralytics import YOLO
import cv2
import os

# 解决OMP问题
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"

# 加载模型
model = YOLO("yolo11n.pt")

# 读取图片(这里要写图片的路径和名称)
image = cv2.imread("picture.jpeg")

# 预测
results = model(image)

# 绘制预测结果
img = results[0].plot()

from matplotlib import pyplot as plt
import matplotlib
matplotlib.use('TkAgg')
# 显示图像(BGR转RGB)
# OpenCV默认使用BGR颜色顺序,matplotlib默认使用RGB颜色顺序,所以需要先进行转换,然后才能正常显示
plt.imshow(X=img[:, :, ::-1])
plt.show()

运行结果:(检测出了图片中的目标物,并对边框线、标签以及置信度做了标注)

2、对视频内容做检测

2.1 本地视频

假设我有一段视频文件(bwgqmy.mp4),我需要对视频中的内容进行检测

我将视频文件和代码放到了同级目录

代码如下:

PS:其实视频检测和上面的图片检测一样,是将视频拆分成一帧一帧的图片来做检测,连起来就是视频效果

from ultralytics import YOLO
import cv2

# 加载YOLO模型
model = YOLO("yolo11n.pt")

# 打开视频(填写自己电脑上想要检测的视频路径和名称即可)
cap = cv2.VideoCapture("bwgqmy.mp4")

while cap.isOpened():
    # read方法用于尝试读取一帧图像,并返回两个值:
    # (1)status(布尔值,表示是否成功读取帧)
    # (2)frame(读取到的帧图像)
    status, frame = cap.read()

    # 如果读取失败,则跳出循环
    if not status:
        print("error")
        break

    # 如果视频太大了,则缩小尺寸
    # height, width = frame.shape[:2]
    # new_width = width // 2
    # new_height = height // 2
    # frame = cv2.resize(frame, (new_width, new_height))

    # 使用YOLO模型检测物体
    results = model(frame)
    # 绘制预测结果
    img = results[0].plot()

    # 显示图像(循环显示预测结果的图像,就相当于视频效果)
    cv2.imshow("demo", img)

    # 如果按下的是ESC键(ASCII码为27),则跳出循环
    if cv2.waitKey(delay=1000 // 24) == 27:
        break

# 释放资源
cap.release()
cv2.destroyAllWindows()

运行结果:(检测出了视频中的目标物,并对边框线、标签以及置信度做了标注)

2.2 摄像头

假设我需要对我电脑摄像头拍摄到的内容进行检测

代码如下:

PS:其实和视频检测一样,是将摄像头拍到的内容拆分成一帧一帧的图片来做检测

from ultralytics import YOLO
import cv2

# 加载YOLO模型
model = YOLO("yolo11n.pt")

# 调起电脑的第0个摄像头
cap = cv2.VideoCapture(0)

while cap.isOpened():
    # read方法用于尝试读取一帧图像,并返回两个值:
    # (1)status(布尔值,表示是否成功读取帧)
    # (2)frame(读取到的帧图像)
    status, frame = cap.read()

    # 如果读取失败,则跳出循环
    if not status:
        print("error")
        break

    # 如果显示区域太大了,则缩小尺寸
    # height, width = frame.shape[:2]
    # new_width = width // 2
    # new_height = height // 2
    # frame = cv2.resize(frame, (new_width, new_height))

    # 使用YOLO模型检测物体
    results = model(frame)
    # 绘制预测结果
    img = results[0].plot()

    # 显示图像(循环显示预测结果的图像,就相当于视频效果)
    cv2.imshow("demo", img)

    # 如果按下的是ESC键(ASCII码为27),则跳出循环
    if cv2.waitKey(delay=1000 // 24) == 27:
        break

# 释放资源
cap.release()
cv2.destroyAllWindows()

运行结果:(检测出了摄像头中的目标物,并对边框线、标签以及置信度做了标注)

标签:视频,检测,frame,YOLO,cv2,08YOLO,import,视觉
From: https://blog.csdn.net/weixin_43767064/article/details/144056675

相关文章

  • 【Termux中使用ClamAV检测病毒木马】
    在Termux中,可以通过安装和使用ClamAV来扫描手机内是否存在病毒和木马包。以下是使用Termux和ClamAV扫描手机病毒的步骤:1.更新Termux并安装ClamAV:•打开Termux,输入pkgupdate来更新软件包列表。•输入pkginstallclamav来安装ClamAV。2.配置ClamAV:•ClamAV是命令行工......
  • 基于智能物联网关的车辆超重AI检测应用
    超重超载是严重的交通违法行为,超重超载车辆的交通安全风险极高,像是一颗行走的“不定时炸弹”,威胁着社会公众的安全。但总有一些人受到利益驱使,使超重超载的违法违规行为时有发生。 随着物联网和AI技术的发展,针对预防杜绝路面车辆的超重超载行为,可以采用基于智能物联网关的AI超......
  • 【计算机视觉+MATLAB】自动检测并可视化圆形目标:通过 imfindcircles 和 viscircles 函
    引言自动检测图像中的圆形或圆形对象,并可视化检测到的圆形。函数详解imfindcirclesimfindcircles是MATLAB中的一个函数,用于在图像中检测并找出圆形区域。基本语法:[centers,radii]=imfindcircles(A,radiusRange)[centers,radii,metric]=imfindcircles(A,rad......
  • 水域入侵检测视频分析服务器人员闯入危险水域识别算法:守护生命安全的前沿技术
    随着科技的飞速发展,视频监控技术已经广泛应用于社会生活的各个领域,从公共安全到环境保护,无不体现着其巨大的价值。在这一背景下,视频分析服务器作为智能监控系统的核心,正不断融合先进的人工智能算法,以实现更为精准、高效的监控目标。其中,人员闯入危险水域视频分析服务器作为一项前......
  • 工帽/安全帽检测视频分析网关摄像机实时接入分析平台安全帽识别监控解决方案
    在建筑施工领域,保障工人的安全始终是项目管理的重中之重。随着人工智能和计算机视觉技术的发展,智能视频监控系统在工地安全管理中的应用越来越广泛,尤其是安全帽检测技术,它通过自动化的方式大大提高了安全监管的效率和效果。以下是对工地安全帽检测算法的工作原理、功能应用以及其......
  • 【触想智能】工业一体机在工业机器视觉领域应用的特点与注意事项
    随着工业化的进程和技术的不断发展,工业机器视觉成为现代工业生产中不可或缺的一部分。作为工业机器视觉技术的核心组件之一,工业一体机因其便携、集成度高和易于操作的特点,在工业机器视觉应用中得到广泛应用。触想工业一体机TPC-W500系列一、工业一体机在工业机器视......
  • SLCP认证检测周期全解析:深入了解流程与时间框架
    一、引言在当今全球化的商业环境中,消费者、投资者和监管机构对企业在社会与劳工权益方面的表现关注度日益提升。企业为了满足市场需求、维护品牌声誉并确保供应链的可持续性,积极寻求各类社会责任认证。SLCP认证作为一项重要的社会与劳工整合项目认证,其检测周期的长短直接影......
  • 【深度学习】铁路轨道缺陷检测
    一、概述铁路轨道在生产、热处理、机械加工等过程中,可能会出现凹陷、未熔合、气孔、裂纹等缺陷影响其性能和寿命,如其不良品流入市场,铁路运输安全将无法得到保障。二、传统算法检测缺点传统算法依赖于手动选择特征,当图像一致性较差的时候需要人工反复调整参数适应检测,在......
  • 高空抛物AI智能检测系统
    高空抛物AI智能检测系统通过现场监控摄像头捕捉到的画面,高空抛物AI智能检测系统利用YOLOv5进行目标检测,实现对高空抛物行为的实时监测。一旦检测到异常物体从高空坠落,系统会立即触发告警机制,通过声音、光线或短信等多种方式通知物业管理人员。系统不仅能够识别抛物行为,还能通过算......
  • 工厂车间产线防错防呆检测系统
    工厂车间产线防错防呆检测系统通过安装在工位顶部的摄像机用于捕捉工人的操作过程,工厂车间产线防错防呆检测系统对图像进行深度学习和分析,系统能够自动检测工人是否按照正确的顺序执行任务,确保生产流程的顺畅。通过识别工具的形状和使用方式,系统能够判断工人是否使用了正确的工具......