YOLOv8模型的简单测试2,PyCharm集成开发环境安装使用(Windows+Python+PyTorch+Conda+cpu)

一、概述

记录时间 [2024-4-1]

本文讲述的是在Windows系统下YOLOv8模型的简单应用。在上一篇文章中,我们能使用CLI的方式运行yolov8n.pt模型,对图像和视频进行目标识别,并得到结果。

详情可参考这篇文章:YOLOv8模型的简单测试,Windows环境下安装部署(Python+PyTorch+Conda+cpu+CLI)

接下来,我们将在PyCharm集成开发环境中编写简单的python文件,以python的方式对YOLOv8模型进行简单的测试。本文同样使用的是cpu版本,使用YOLOv8模型进行图片/视频预测,并得到结果。

这里附带上YOLOv8官方文档,里面记载了详细的使用方法,如果觉得看文档比较麻烦的话,可以直接看文章,需要用到的部分已经在文章中进行了摘录。


二、安装PyCharm

1. 下载

打开浏览器直接搜索PyCharm官网,也可以点击这里进行下载,有两个版本可供选择,一个是专业版(30天),另一个是社区版(free),下载社区版即可。


在这里插入图片描述


2. 安装

安装过程比较简单,只要默认下一步就可以。

如果想要修改安装目录,可以根据自己的需要修改。建议大家创建一个桌面快捷方式,可以方便打开。


在这里插入图片描述


在这里插入图片描述


3. 运行

双击快捷方式图标即可,勾选接受,然后点击Continue


在这里插入图片描述


三、导入项目Ultralytics(yolov8)

温馨提示,进行后面的操作前需要完成Ultralytics(yolov8)的安装,conda安装,虚拟环境yolo_test的创建,配置清华源镜像,PyTorch的安装。

但是,看到这里的朋友千万别慌,具体详细的操作请点击查看这篇文章,根据步骤操作即可。


1. 导入项目

点击Open,找到之前安装的Ultralytics(yolov8)项目,选择其根目录ultralytics-main并打开,选择Trust Project


在这里插入图片描述


2. 配置虚拟环境

点击右下角,然后点击Add New Interpreter,如图所示,将我们之前创建的虚拟环境yolo_test导入进来。


在这里插入图片描述


在这里插入图片描述


导入完成后,我们可以用熟悉的CLI命令测试一下。如图,点击PyCharm面板下方的终端Terminal,运行命令:

yolo predict model = yolov8n.pt source=ultralytics/assets/bus.jpg

如果运行后能得到结果,那就说明已经配置完毕啦。


3. 一些错误解决

接下来的测试会在PyCharm中进行,首先找到tests目录下的test_python.py文件并双击打开。

不难发现,刚打开来的文件显示有红色的报错,很大的可能是一些依赖和包没有导入,我们先解决一下。(如果发现有很多报错也没关系,一个一个来)


在这里插入图片描述


把鼠标移动到错误附近,然后点击Install package即可。

在这里插入图片描述


四、Python测试YOLOv8模型

1. 简单说明(可以跳过)


开始之前,我们可以在命令行中简单使用一下python,输出一个Hello World!

按住win+r打开cmd,输入python然后回车,我们就进入了Python运行环境:

C:\Users\32453>python
Python 3.9.18...
Type "help", "copyright", "credits" or "license" for more information.
>>>

输入命令,打印出Hello World!

print("Hello World!")

查看结果可知,cmd中打印出了Hello World!

>>> print("Hello World!")
Hello World!
>>>

输入exit()结束运行。

在这种情况下,我们一次只能运行一行python代码,如果想要一次性运行多行的话,可以写成一个xxx.py文件:

python xxx.py

2. 查看官方文档示例


我们可以从官方文档中查看模型预测的使用方法:

from ultralytics import YOLO

# Load a pretrained YOLOv8n model
model = YOLO('yolov8n.pt')

# Define path to the image file
source = 'path/to/image.jpg'

# Run inference on the source
results = model(source)  # list of Results objects

# Run inference on 'bus.jpg' with arguments
model.predict('bus.jpg', save=True, imgsz=320, conf=0.5)

然后再了解一些涉及到的参数:

论据类型默认值说明
sourcestr'ultralytics/assets'指定推理的数据源。可以是图像路径、视频文件、目录、URL 或用于实时馈送的设备 ID。支持多种格式和来源,可灵活应用于不同类型的输入。
conffloat0.25设置检测的最小置信度阈值。如果检测到的对象置信度低于此阈值,则将不予考虑。调整该值有助于减少误报。
ioufloat0.7非最大抑制 (NMS) 的交叉重叠 (IoU) 阈值。较低的数值可以消除重叠的方框,从而减少检测次数,这对减少重复检测非常有用。
imgszint or tuple640定义用于推理的图像大小。可以是一个整数 640 或一个(高、宽)元组。适当调整大小可以提高检测精度和处理速度。
halfboolFalse启用半精度(FP16)推理,可加快支持的 GPU 上的模型推理速度,同时将对精度的影响降至最低。
devicestrNone指定用于推理的设备(例如:…)、 cpu, cuda:00).允许用户选择 CPU、特定 GPU 或其他计算设备来执行模型。
stream_bufferboolFalse确定在处理视频流时是否对所有帧进行缓冲 (True),或者模型是否应该返回最近的帧 (False).适用于实时应用。

另外还有一些可视化参数(例如,我们要保存结果,就会用到save参数):

论据类型默认值说明
showboolFalse如果 True在一个窗口中显示注释的图像或视频。有助于在开发或测试过程中提供即时视觉反馈。
saveboolFalse可将注释的图像或视频保存到文件中。这有助于记录、进一步分析或共享结果。
save_framesboolFalse处理视频时,将单个帧保存为图像。这对提取特定帧或逐帧进行详细分析非常有用。
save_txtboolFalse将检测结果保存在文本文件中,格式如下 [class] [x_center] [y_center] [width] [height] [confidence].有助于与其他分析工具集成。
save_confboolFalse在保存的文本文件中包含置信度分数。增强了后期处理和分析的细节。
save_cropboolFalse保存经过裁剪的检测图像。可用于数据集扩充、分析或创建特定物体的重点数据集。
show_labelsboolTrue在可视输出中显示每次检测的标签。让用户立即了解检测到的物体。
show_confboolTrue在标签旁显示每次检测的置信度得分。让人了解模型对每次检测的确定性。
show_boxesboolTrue在检测到的物体周围绘制边框。对于图像或视频帧中物体的视觉识别和定位至关重要。
line_widthNone or intNone指定边界框的线宽。如果 None根据图像大小自动调整线宽。提供可视化定制,使图像更加清晰。

简单了解下就行,然后就可以进行接下来的操作了。


3. 图片预测


查看test_python.py文件头部可知,上面定义了需要使用的yolov8n.pt模型MODEL,测试图片的存放位置SOURCE,以及识别结果的保存位置TMP

# 需要使用的yolov8n.pt模型MODEL
MODEL = WEIGHTS_DIR / "path with spaces" / "yolov8n.pt"  # test spaces in path
CFG = "yolov8n.yaml"

# 测试图片的存放位置SOURCE
SOURCE = ASSETS / "bus.jpg"

# 识别结果的保存位置TMP
TMP = (ROOT / "../tests/tmp").resolve()  # temp directory for test files
IS_TMP_WRITEABLE = is_dir_writeable(TMP)

我们在test_python.py文件中写一个简单的方法进行测试

def test_image():
    # 下载一个YOLOv8n模型
    model = YOLO(MODEL)
    # 指明预测图片的路径
    source = SOURCE
    # 运行,保存结果
    model.predict(source, save=True, imgsz=320, conf=0.5)

写完后运行一下,点击test_image()方法左边的小三角就可以运行。

如果没有出现小三角那就关注下方法名字,不能乱写,要以test开头,比如写成image_test()就不行。

第一次运行可能会稍慢一些,因为它要先下载YOLOv8n模型。

test_python.py::test_image PASSED                                        [100%]
image 1/1 C:\Repo\...\bus.jpg: 320x256 3 persons, 1 bus, 57.3ms
Speed: 1.0ms preprocess, 57.3ms inference, 1.0ms postprocess per image at shape (1, 3, 320, 256)
Results saved to C:\...\tmp\runs\detect\predict

# Results saved to
# 就是结果保存的路径

运行成功后查看结果。

在这里插入图片描述


4. 视频预测


视频预测同理,再在test_python.py文件中写一个简单的方法进行测试即可。(下载不到合适的视频可以自己录一个)

def test_video():
    
    # 下载一个YOLOv8n模型
    model = YOLO(MODEL)
    
    # 指明预测视频的路径,注意视频格式为mp4
    # 此处视频存放位置为:ultralytics-main/ultralytics/assets/
    source = ASSETS / "dy.mp4"
    
    # 运行,保存结果
    model.predict(source, save=True)

查看运行结果:运行成功,然后就可以在tests\tmp\runs\detect\predict文件夹中查看识别后的视频了。

它保存的视频是avi格式的,大家可以自行去看一下哦。

video 1/1 (frame 246/247) C:\...\assets\dy.mp4: 416x640 2 persons, 1 traffic light, 65.5ms
video 1/1 (frame 247/247) C:\...\assets\dy.mp4: 416x640 2 persons, 1 traffic light, 1 tie, 1 cup, 105.0ms
Speed: 2.7ms preprocess, 66.3ms inference, 0.8ms postprocess per image at shape (1, 3, 416, 640)
Results saved to C:\...\tests\tmp\runs\detect\predict

五、总结

通过本文,我们进行了集成开发环境PyCharm的安装和使用,并在其中以Python的方式运行yolov8n.pt模型,对图像和视频进行目标识别,并得到结果。后续会尝试将模型封装成网络接口来进行调用,感兴趣的朋友可以期待一下哦。


一些参考资料

YOLOv8模型的简单测试:https://blog.csdn.net/Sareur_1879/article/details/137203261

YOLOv8官方文档:https://docs.ultralytics.com/zh/

PyCharm官网:https://www.jetbrains.com/pycharm/download/?section=windows

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值