admin 管理员组文章数量: 887021
【YOLO
2023.4.20更新 关于报错的解决办法
关于评论出现的问题,我当初测试的时候是没有的(可能是以前跑YOLO的时候已经改过了),于是我换了一台电脑测试,报错了,于是这里更新一下:
报错'Upsample' object has no attribute 'recompute_scale_factor'的解决办法:
找到你的pytorch源码中的upsampling.py文件(我的位置是在anaconda3\envs\torch12\lib\site-packages\torch\nn\modules\upsampling.py),将153行开始的forward函数做修改:
def forward(self, input: Tensor) -> Tensor:# return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners,# recompute_scale_factor=self.recompute_scale_factor)return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners)
这样再根据下文的的说明来操作就有结果了。
虽然基于top-down方法的HRNet网络精度很高(在COCO数据集上最高能达到76.7mAP),但是由于其需要一个额外的detector和网络中始终保持着高分辨率的heatmap的原因,网络在推理时的速度非常的慢,这就使得类似与HRNet的网络不适合部署在低算力的边缘设备上。
而使用buttom-up的方法虽然快,但是其精度与top-down方法还存在一些差距。
YOLO-Pose与其他buttom-up的方法一样,也是一种single shot的方法。然而,它并不使用 heatmap。相反,YOLO-Pose将一个人的所有关键点与anchor联系起来。这就使得它在进行人物检测的同时,可以进行关节点的预测,形成了一个端到端的网络,在保证精度的同时拥有很快的推理速度。下面文章将进行YOLO-Pose的部署与测试,看看这个网络的表现如何。
原文地址:YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss
开源地址:edgeai-yolov5
1.部署环境
Windows 11
python 3.7
pytorch 1.13
cuda 11.6
2.选择分支下载源码
进入开源地址是看不到YOLO-Pose源码的,在master分支显示的是YOLOv5的源码,我们想要的源码在名为yolo-pose的分支。这里提供两个方法:
1)clone源码后切换分支
首先从github上clone代码
git clone .git
下载完成后点击vscode的左下角的master
在出现的选项中选择yolo-pose分支
2)切换分支后下载zip
点击GitHub页面左上的分支按钮,在下拉菜单中选择yolo-pose分支
然后下载zip压缩包
3.安装配置yolo-pose运行环境
1)使用conda新建一个python环境,这里不再赘述。
2)使用conda install命令安装pytorch等基础包,同样不再赘述。
3)安装YOLO-Pose要求的包
命令行切换到YOLO-Pose源码路径,运行pip命令
pip install -r requirement.txt
等待安装完成即可。如果出现网络问题安装失败可以尝试清华源下载,在命令行后加上
pip install -r requirement.txt -i
如果pycocotools安装失败,请参考这篇文章。
4.下载官方的模型进行测试
在github的页面或者源码中的readme.md中找到下图所示的表格
注意!这里框出的两个超链接点击后都会下载一个模型文件,但是他们是不一样的!左边是官方训练好的模型,可以直接使用。右边是网络的预训练权重,需要自行训练网络后才能得到要用的模型。模型一定要下载正确,不然测试的时候会出现错误的结果。
这里我们选择左边框的模型下载,下载完成后更名为Yolov5s6_pose_640.pt放入源码的根目录。下面进行模型的测试,切换命令行路径到源码目录,输入:
python detect.py --weights Yolov5s6_pose_640.pt --source data/images --kpt-label
--weights 后跟模型路径;
--source 后跟图片或视频路径,如果要使用摄像头,--source 后写0即可;
--kpt-label 使用yolo-pose模型必须加上,不然会报错。
其他更多的参数(例如conf和iou)请详见detect.py。这里使用了源码自带的两张图片测试,效果如下:
使用摄像头测试:
python detect.py --weights Yolov5s6_pose_640.pt --source 0 --kpt-label
图片这里就不放了,这个模型在我的1050ti旧笔记本上单帧推理速度在40ms多一点,相较于HRNet可以说是非常快了。
本文标签: Yolo
版权声明:本文标题:【YOLO 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1686719992h29072.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论