网站自动弹窗代码,wordpress 例子,竞价托管推广,免费制作网站的软件0、前言
YOLO作为目前CV领域的扛把子#xff0c;分类、检测等任务样样精通#xff0c;本文将基于两个小案例#xff0c;用YOLO做检测任务#xff0c;看看效果如何
1、对图片内容做检测
假设我有一张名为picture.jpeg的图片#xff0c;其内容如下 我将图片和代码放到了同…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(Ximg[:, :, ::-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方法用于尝试读取一帧图像并返回两个值# 1status布尔值表示是否成功读取帧# 2frame读取到的帧图像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(delay1000 // 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方法用于尝试读取一帧图像并返回两个值# 1status布尔值表示是否成功读取帧# 2frame读取到的帧图像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(delay1000 // 24) 27:break# 释放资源
cap.release()
cv2.destroyAllWindows()
运行结果检测出了摄像头中的目标物并对边框线、标签以及置信度做了标注