开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 6514|回复: 23
收起左侧

[技术专题] yolov8

[复制链接]
发表于 2024-2-25 18:15:06 | 显示全部楼层 |阅读模式   湖北省武汉市
前置条件(安装):
        pycharm教程:https://blog.csdn.net/weixin_59047731/article/details/135634418
        pycharm下载:https://www.jetbrains.com/zh-cn/pycharm/download/other.html
        anaconda教程:https://blog.csdn.net/tqlisno1/article/details/108908775
        anaconda下载:https://www.anaconda.com/download/
注意:以下所有的命名包括目录不要出现中文!!!
注意:以下所有的命名包括目录不要出现中文!!!
注意:以下所有的命名包括目录不要出现中文!!!

1.使用anaconda创建虚拟环境
        注意:-n后面接环境名称 python=选择安装的版本,默认会在C:\Users\你的账户名\.conda\envs\环境名称,我这里的环境名为yolov8
        命令:conda create -n yolov8 python=3.8
        成功:#
                # To activate this environment, use
                #
                #     $ conda activate yolov8
                #
                # To deactivate an active environment, use
                #
                #     $ conda deactivate

2.切换虚拟环境
        注意:默认环境是base为root环境,切换到你创建的虚拟环境中,前面括号的名称会改变为你创建的虚拟环境名,我这里的环境名为yolov8
        命令:conda activate yolov8
        成功:在原来base的位置显示为你设置的环境名,我这里是显示yolov8

3.切换国内的镜像源
        注意:我这里是直接把源切换到清华镜像源并且设置为默认
        命令:pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
        成功:Writing to C:\Users\13151\AppData\Roaming\pip\pip.ini

4.查看电脑支持的cuda版本
        注意:这个地方不是让你装cuda,是查看cuda的版本
        命令:nvidia-smi
        成功:显示表格,在表格的右上角显示cuda版本(例如: CUDA Version: 11.0)
       
4.安装pytorch
        pytorch地址:https://pytorch.org/get-started/previous-versions/
        注意:如果显卡版本是gtx 16xx的话需要安装pytorch的cu102版本。如果显卡版本是gtx 30xx或40xx的话需要安装pytorch的cu111以上版本。我的电脑是16xx,所以我安装的102版本,但是在实际安装过程中发现torch==1.12.1我的电脑安装不了,所有只能安装torch==1.10.1这个版本
        命令:pip install torch==1.10.1+cu102 torchvision==0.11.2+cu102 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu102/torch_stable.html
        成功:pip安装成功提示

5.下载yolov8源码,三种方法
        第一种:直接下载github仓库
                yolov8仓库地址:https://github.com/ultralytics/ultralytics
                注意:这种方法用不了命令行CLI命令
        第二种:使用pip直接安装
                命令:pip install ultralytics
                成功:pip安装成功提示
                注意:此命令可以运行命令行CLI命令,但是无法修改源码
        第三中:使用pip源码安装
                注意:源码安装之前需要先cd到下载的源码目录,例如:cd f:/python/YOLOX/ultralytics-main
                命令:pip install -e.
                成功:pip安装成功提示
                注意:此命令可以运行命令行CLI命令,也可以修改源码

6.查看安装的包
        命令:pip list
        成功:显示所有安装的包

7.查看终端中是否激活环境变量
        激活:显示当前环境变量,例如:(yolov8) F:\python\YOLOX>。
        未激活:把anaconda3/scripts目录添加进系统path环境变量中,例如D:\anaconda3\Scripts 则把D:\anaconda3\Scripts添加进环境变量中

8.验证yolov8环境是否正确
        python代码:
                import ultralytics
                ultralytics.checks()
        成功:显示当前yolo版本,python版本,pytorch版本。后面括号中会显示当前是用的cpu还是GPU。例如Ultralytics YOLOv8.1.18

评分

参与人数 2好评 +1 精币 +3 收起 理由
七颗心 + 2 感谢分享,很给力!~
1752328925 + 1 + 1 YYDS~!

查看全部评分


 楼主| 发表于 2024-2-25 18:15:48 | 显示全部楼层   湖北省武汉市
8.验证yolov8环境是否正确
        python代码:
                import ultralytics
                ultralytics.checks()
        成功:显示当前yolo版本,python版本,pytorch版本。后面括号中会显示当前是用的cpu还是GPU。例如Ultralytics YOLOv8.1.18
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-25 18:16:48 | 显示全部楼层   湖北省武汉市
9.模型预测,两种方法
        第一种:命令行CLI命令
                命令:yolo detect predict model=./models/yolov8n.pt source='F:/python/YOLOX/ultralytics-main/ultralytics/assets/bus.jpg'
        第二种:python代码
                from ultralytics import YOLO
                yolo = YOLO("./models/yolov8n.pt",task="detect")
                result = yolo(source="F:/python/YOLOX/ultralytics-main/ultralytics/assets/bus.jpg")
        注意:我的电脑出现了C:\Users\13151\.conda\envs\yolov8\lib\site-packages\torchvision\io\image.py:11: UserWarning: Failed to load image Python extension: Could not find module 'C:\Users\13151\.conda\envs\yolov8\Lib\site-packages\torchvision\image.pyd' (or one of its dependencies). Try using the full path with constructor syntax.
  warn(f"Failed to load image Python extension: {e}")报错,但是不影响结果,目前不知道问题出现在哪!还有一点
        成功:image 1/1 F:\python\YOLOX\ultralytics-main\ultralytics\assets\bus.jpg: 640x480 4 persons, 1 bus, 1 stop sign, 10.0ms
                Speed: 10.0ms preprocess, 10.0ms inference, 48.9ms postprocess per image at shape (1, 3, 640, 480)
                Results saved to runs\detect\predict
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-25 18:17:01 | 显示全部楼层   湖北省武汉市
还得是我000 发表于 2024-2-25 18:16
9.模型预测,两种方法
        第一种:命令行CLI命令
                命令:yolo detect predict model=./models/yolov8n.pt so ...

10.模型结果
        注意:模型会自动下载进./models中,例如F:/python/YOLOX/models,而不是F:/python/YOLOX/ultralytics-main/models中,也可以在模型预测之前先下栽好,在进行预测
        成功:会在./runs/detect/predict中,例如F:/python/YOLOX/runs/detect/predict/bus.jpg

11.推理方式
        第一种:检测图片
                例如:result = yolo(source="F:/python/YOLOX/ultralytics-main/ultralytics/assets/bus.jpg")
                        yolo detect predict model=./models/yolov8n.pt source='F:/python/YOLOX/ultralytics-main/ultralytics/assets/bus.jpg'
        第二种:检测视频
                例如:result = yolo(source="F:/python/YOLOX/ultralytics-main/ultralytics/assets/bus.mp4")
                        yolo detect predict model=./models/yolov8n.pt source='F:/python/YOLOX/ultralytics-main/ultralytics/assets/bus.mp4'
        第三种:检测桌面
                例如:result = yolo(source="screen")
                        yolo detect predict model=./models/yolov8n.pt source='screen'
        第四种:检测窗口
                注意:官方文档里没有对窗口的实时检测
                实现:使用opencv或pil库对窗口进行截图保存到目录,然后推理到模型中
                问题:使用这种方式没有办法达到实时的效果,因为需要先截图然后保存图片在推理,速度在2s左右(cpu推理)。你总不可能在客户电脑上安装pytorch的吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-25 18:17:14 | 显示全部楼层   湖北省武汉市
还得是我000 发表于 2024-2-25 18:17
10.模型结果
        注意:模型会自动下载进./models中,例如F:/python/YOLOX/models,而不是F:/python/YOLOX/u ...

12.推理参数设置
        save:是否保存推理图片(默认会保存,保存目录就是第10步说的目录)
                例如:result = yolo(source="F:/python/YOLOX/ultralytics-main/ultralytics/assets/bus.jpg",save=flase)
        conf:推理分数(类似大漠的相似度)
                例如:result = yolo(source="F:/python/YOLOX/ultralytics-main/ultralytics/assets/bus.jpg",conf=0.9)

13.训练设置
        月饼训练集地址:https://download.csdn.net/download/weixin_43694096/87094367
        注意:数据标注请自行搜索教程,如果第一次可以网上找训练集。训练集需要放到datasets目录中,例如:F:/python/YOLOX/datasets/mooncake
        特别注意:如果未来自己创建数据集请按照月饼数据集的格式放到datasets目录中,如果没有datasets请自行创建,以及对应的yaml文件也需要自行创建
        yaml文件格式:月饼数据集例子
                train: F:\python\YOLOX\datasets\MoonCake_datasets\images\train
                val: F:\python\YOLOX\datasets\MoonCake_datasets\images\val

                names:
                  0: MoonCake
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-25 18:17:37 | 显示全部楼层   湖北省武汉市
还得是我000 发表于 2024-2-25 18:17
12.推理参数设置
        save:是否保存推理图片(默认会保存,保存目录就是第10步说的目录)
                例如:result = ...

14.训练方式
        第一种:命令行CLI命令
                注意:命令行模式中workers=0如果报错,请使用workers=1。amp会禁止模型自动下载,从输入的model路劲中读取权重模型
                命令:yolo detect train data=F:/python/YOLOX/yaml/mooncake.yaml model=F:/python/YOLOX/models/yolov8n.pt workers=0 epochs=100 batch=8 amp=False
        第二种:python代码
                from ultralytics import YOLO
                model = YOLO(model="F:/python/YOLOX/models/yolov8n.pt")
                model.train(data="F:/python/YOLOX/yaml/mooncake.yaml", workers=0, epochs=5, batch=8, amp=False)

15.训练好的模型推理跟第9部一样
        注意:把model的路径改成你训料好的bast.pt的路径(bast.pt的路径会在你训练结束之后显示在终端)
        命令行CLI命令:
                yolo detect predict model=F:/python/YOLOX/ultralytics-main/runs/detect/train/weights/best.pt source='F:/python/YOLOX/datasets/MoonCake_datasets/images/val/Cake9.jpg'
        python代码:
                from ultralytics import YOLO
                yolo = YOLO("F:/python/YOLOX/ultralytics-main/runs/detect/train/weights/best.pt", task="detect")
                result = yolo(source="F:/python/YOLOX/datasets/MoonCake_datasets/images/val/Cake9.jpg")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-25 18:17:59 | 显示全部楼层   湖北省武汉市
还得是我000 发表于 2024-2-25 18:17
14.训练方式
        第一种:命令行CLI命令
                注意:命令行模式中workers=0如果报错,请使用workers=1。amp会禁 ...

16.保存模型
        命令行CLI命令:
                yolo export model=F:/python/YOLOX/ultralytics-main/runs/detect/train/weights/best.pt format=onnx
        python代码:
                from ultralytics import YOLO
                model = YOLO("F:/python/YOLOX/ultralytics-main/runs/detect/train/weights/best.pt")
                model.export(format='onnx')
        注意:导出的onnx模型自行改名
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-25 18:18:20 | 显示全部楼层   湖北省武汉市
还得是我000 发表于 2024-2-25 18:17
16.保存模型
        命令行CLI命令:
                yolo export model=F:/python/YOLOX/ultralytics-main/runs/detect/trai ...

17.其他语言调用
        理论上说onnx是一个开源协议,只要能调用opencv的高级语言都可以调用。
        问题:终端(电脑,手机,手表,平板,树莓派,香橙派)上怎么实现调用模型?或者说能运行debian系统的终端是不是都可以推理模型?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-28 21:06:17 | 显示全部楼层   湖北省武汉市
还得是我000 发表于 2024-2-25 18:18
17.其他语言调用
        理论上说onnx是一个开源协议,只要能调用opencv的高级语言都可以调用。
        问题:终端( ...

这是优化过的python推理代码
电脑配置:i5-10200H GTX1650 4G 内存8g
库:onnxruntime(cpu版本,DML加速),opencv,numnp,mss,pillow
功能:图片推理(速度29ms左右),摄像头推理(速度84ms左右),窗口推理(速度148ms左右)
问题:现在python直接运行的速度已经是极限了!python代码加了易语言TCP调用的程序,但是上面那些功能的速度都翻了3倍,图片推理(速度127ms左右),摄像头推理(速度435ms左右),窗口推理(速度340ms左右),现在的问题是可以转换成c++的代码吗?转换成c++代码速度会有提升吗?c++封装成com库让易语言调用速度又是多少?速度又应该怎么优化???
本人声明:1.上诉所有的速度是本人在电脑上循环1000测试出的最慢速度
                 (第5-20次是运行速度最快的)
                2.最快速度:图片推理 18ms,摄像头推理70ms,窗口推理89ms
                3.本人可以保证这些数据在我电脑上是真实存在的!!!

python源码地址:https://wwt.lanzn.com/iXyeS1pnq16d

补充内容 (2024-3-1 15:19):
网吧测试pubg 3080ti显卡 i9的十代,窗口推理速度8ms左右,游戏30分钟,最后5分钟的时候速度只有20ms左右,图片推理速度一样,一定要模型优化才行
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 2 天

发表于 2024-7-28 22:25:44 | 显示全部楼层   河南省洛阳市
感谢分享,下载看看
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2024-7-9 16:00:19 | 显示全部楼层   广西壮族自治区柳州市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2024-6-12 08:49:54 | 显示全部楼层   广西壮族自治区柳州市
感谢大佬分享666666!
回复 支持 反对

使用道具 举报

结帖率:67% (4/6)
发表于 2024-4-23 22:43:40 | 显示全部楼层   广东省佛山市
还得是我000 发表于 2024-2-25 18:17
10.模型结果
        注意:模型会自动下载进./models中,例如F:/python/YOLOX/models,而不是F:/python/YOLOX/u ...

直接打包exe 可以吗。这样客户也不用安装pytorch
回复 支持 反对

使用道具 举报

发表于 2024-4-16 11:26:35 | 显示全部楼层   湖南省永州市
谢谢了楼主
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2024-4-14 08:39:17 | 显示全部楼层   福建省泉州市
作者的技术和教学水平都很高,佩服!
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2024-4-12 02:45:20 | 显示全部楼层   福建省泉州市
作者一定花了不少时间和精力,感谢!
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2024-4-7 14:30:02 | 显示全部楼层   福建省泉州市
赞一个,这样的教程才是我们需要的。
回复 支持 反对

使用道具 举报

结帖率:100% (5/5)

签到天数: 13 天

发表于 2024-3-8 12:53:43 | 显示全部楼层   河南省焦作市
感谢分享,很给力!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表