位置: IT常识 - 正文

Yolov7-pose 训练body+foot关键点(yolo训练参数)

编辑:rootadmin
Yolov7-pose 训练body+foot关键点 一、Yolov7介绍:

推荐整理分享Yolov7-pose 训练body+foot关键点(yolo训练参数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:yolov3训练流程,yolov3训练,yolov2训练,yolov5训练命令,yolov5训练出来参数box,yolov2训练,yolov3训练过程,yolov5训练出来参数box,内容如对您有帮助,希望把文章链接给更多的朋友!

yolov7网络由三个部分组成:input,backbone和head,与yolov5不同的是,将neck层与head层合称为head层,实际上的功能的一样的。对各个部分的功能和yolov5相同,如backbone用于提取特征,head用于预测。

根据上图的架构图走一遍网络流程:先对输入的图片预处理,对齐成640*640大小的RGB图片,输入到backbone网络中,根据backbone网络中的三层输出,在head层通过backbone网络继续输出三层不同size大小的feature map(以下简称fm),经过RepVGG block 和conv,对图像检测的三类任务(分类、前后背景分类、边框)预测,输出最后的结果。

推荐yolov7 网络架构深度解析_所向披靡的张大刀的博客-CSDN博客

github在yolov7下面的pose部分

二、数据集准备

train 数据集 基于coco_whole_body_train 改造。

原始格式

${POSE_ROOT}

|-- data

`-- |-- coco

    `-- |-- annotations

        |   |-- coco_whole_body_train2017.json

        |   `-- coco_whole_body_val2017.json

        |-- person_detection_results

        |   |-- COCO_val2017_detections_AP_H_56_person.json

        `-- images

            |-- train2017

            |   |-- 000000000009.jpg

            |   |-- 000000000025.jpg

            |   |-- 000000000030.jpg

            |   |-- ...

            `-- val2017

                |-- 000000000139.jpg

                |-- 000000000285.jpg

                |-- 000000000632.jpg

                |-- ...

Json 信息

image:包含了,宽高,地址,图像名

annotations: 包含imageid iscrowd信息还有其他关键点的信息

"bbox": [

339.88,

22.16,

153.88,

300.73

],

Yolo的格式

    `-- |-- annotations

        |   |-- person_keypoints_train2017.json

        |   `-- person_keypoints_val2017.json

        |-- person_detection_results

        |   |-- COCO_val2017_detections_AP_H_56_person.json

        `-- images

        |    |-- train2017

        |    |   |-- 000000000009.jpg

        |    |   |-- 000000000025.jpg

        |    |   |-- ...

        |    `-- val2017

        |        |-- 000000000139.jpg

Yolov7-pose 训练body+foot关键点(yolo训练参数)

        |        |-- 000000000285.jpg

        |        |-- ...

        `-- labels

        |    |-- train2017

        |    |   |-- 000000000009.txt

        |    |   |-- 000000000025.txt   #这里面图片的keypoint信息,以YOLO格式展示

        |    |   |-- ...

        |    `-- val2017

        |        |-- 000000000139.txt

        |        |-- 000000000285.txt   #这里面图片的keypoint信息,以YOLO格式展示

        |        |-- ...  

    `-- train2017.txt    #这里面放的内容是:相对路径+图片名字

    `-- val2017.txt    #这里面放的内容是:相对路径+图片名字

打开一个labels 下的000000391895.txt格式

0 0.651281 0.479236 0.240437 0.835361 0.575000 0.169444 1.000000 0.576562 0.144444 2.000000 0.000000 0.000000 0.000000 0.596875 0.133333 2.000000 0.000000 0.000000 0.000000 0.575000 0.233333 2.000000 0.679688 0.225000 2.000000 0.565625 0.347222 2.000000 0.696875 0.347222 2.000000 0.562500 0.425000 2.000000 0.000000 0.000000 0.000000 0.620313 0.463889 1.000000 0.685937 0.461111 1.000000 0.576562 0.536111 2.000000 0.720313 0.650000 2.000000 0.564063 0.683333 2.000000 0.740625 0.797222 2.000000

解析为:

这里看到bbox 不一致,查看官方给的解释是归一化了,具体算法如下

img = images['%g' % x['image_id']]

h, w, f = img['height'], img['width'], img['file_name']

# The COCO box format is [top left x, top left y, width, height]

box = np.array(x['bbox'], dtype=np.float64)

box[:2] += box[2:] / 2  # xy top-left corner to center

box[[0, 2]] /= w  # normalize x

box[[1, 3]] /= h  # normalize y

这边手动验证下

Weigth=640 heigth=360

Bbox=[339.88,22.16,153.88,300.73]

Yolo-Bbox(6_float):(339.88+153.88/2)/640=0.651281,

(22.16+300.73/2)/360=0.479236, 153.88/640=0.2404375, 300.73/360=0.835361

与yolo中的一致

Keypoints = [368/640,61/360]=[0.575,0.169444]

与yolo中的label格式一致。按照上述,制作yolo 23点的训练集和验证集。

三、 训练代码准备

有些bug没放上来,因为train的时候就能跑出来简单的bug。

修改data/coco_kpts.yaml文件中的数据读取路径。

修改models/hub/cfg文件,如yolo7_pose_kpts.yaml中的相关参数如:nkpt 从17改为32;

修改dataset第497行,有关如何读取txt数据的;

修改dataset第987行,有关数据如何变化的,将原bbox写为kpts;

修改dataset第365行,有关如何flip数据;

修改loss函数第187,和202行,有关loss_gain;

loss函数中第119行,有关sigmas,coco数据集中给出了,直接换上。

修改yolo函数第90行,有关self.inplace;

修改test第80行,有关flip_index翻转处理问题;

train.log

四、结论

通过coco okps 计算100个迭代的mAP

也有和我一样在body+foot的工作者 用yolov7 pose 出现了相同的问题

 在多人视频下推理速度能达到30fps

会出现脚步乱连现象。

 脚步乱连现象已解决,主要是和test.py 和 dataset.py 文件下的filp_idex 的设置有关。

本文链接地址:https://www.jiuchutong.com/zhishi/299392.html 转载请保留说明!

上一篇:JavaScript-扫盲(javascriptz)

下一篇:html+css唯美登录页面,代码提供(效果展示)(html+css登录页面)

  • 三公经费指的是什么
  • 附加税的计算公式2023
  • 房东口头答应减免房租又反悔了
  • 城镇土地使用税纳税义务发生时间
  • 自产自销发票可以抵扣增值税发票吗
  • 普通发票不能抵扣进项税额怎么做账
  • 包装物押金是含税价格吗
  • 长期待摊费用的摊销方法
  • 上个月少计了成本要怎么办
  • 股权的溢价是什么意思
  • 个人独资企业是什么类型
  • 取得增值税专用发票是否可以抵扣
  • 企业所得所得税税负
  • 公司发生业务分录
  • 未提足折旧的房产,推倒重置的财务处理到底有没有差异
  • 个人收到支票如何做账
  • 小规模纳税人可以抵扣增值税专用发票吗
  • 筹建期间开办费账务处理
  • 售后回租 出租方
  • 委托代销中受托方账务处理
  • 内部职工销售佣金计入
  • 预存电费余额是什么意思
  • 营业外支出所得税前可以扣除吗
  • ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创
  • 在建工程包括哪些明细
  • 文件pages
  • 补充医疗税前扣除还是税后扣除
  • manager's office是什么意思
  • wordpress app怎么用
  • RuntimeError: (PreconditionNotMet) The third-party dynamic library (cudnn64_7.dll) that Paddle depen
  • 生产设备改良支出计入什么费用
  • 赊销商品属于什么信用
  • 非正常损失如何处理
  • php怎么传递参数
  • php绘制图片
  • php json_encode与json_decode详解及实例
  • ssh怎么带密码
  • 前端如何适配移动端
  • 用php编写一个简单的计算器程序
  • php oauth2 单点登录
  • 担保贷款借款人征信不好有影响吗
  • 生产车间发生的固定资产租赁费用属于直接费用
  • 应交税金相关内容包括
  • 抄税期一般是几天
  • 一般纳税人未申报可以开票吗
  • 变卖固定资产的账务处理
  • 小规模纳税人认定标准500万
  • 房地产预缴增值税计算公式
  • 拆迁补偿款收税吗
  • 增值税起征点有多少
  • 库存商品调价会计分录
  • 当月作废的采购发票已认证账务如何处理?
  • sql分组having
  • sql多条件组合条件的先后顺序
  • win7系统最佳性能
  • win7关机很慢是什么原因
  • xp系统桌面在c盘哪个位置
  • 新装的ubuntu18没有网络
  • vrvarp.exe是什么
  • winxp系统开机启动项
  • ubuntu开机密码不记得了
  • centos7怎么配置
  • Win10打开或关闭系统图标里开怎么灰色的
  • win10商店重置后不见了
  • fragmentize
  • win8.1 下 eclipse+android 开发环境配置带图详细教程
  • our与my的区别
  • 狗刨好学吗
  • jsonp实现动态加载文件
  • js面向对象的几种方式
  • jQuery ajaxForm()的应用
  • 编写shell脚本,批量建立用户
  • win7 python
  • 手滑式手机是什么意思
  • javascript ref
  • 国家税务处处长
  • 业财税一体化所指的业财税包括下列哪几项
  • 农产品进项税额核定扣除
  • 怎样从税务局网上交医保
  • 惠州市公交车投诉平台
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设