位置: 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登录页面)

  • 微信怎么看bin图纸(怎么看微信所有图片)

    微信怎么看bin图纸(怎么看微信所有图片)

  • iphone面部识别一直在转(iphone面部识别一会高一会儿低)

    iphone面部识别一直在转(iphone面部识别一会高一会儿低)

  • 苹果se2多少寸(苹果se2是多少寸的)

    苹果se2多少寸(苹果se2是多少寸的)

  • 微信被拒收消息是拉黑了还是删除了(微信被拒收消息怎么强制聊天)

    微信被拒收消息是拉黑了还是删除了(微信被拒收消息怎么强制聊天)

  • 电脑开机cpu风扇不转显示器不亮(电脑开机cpu风扇动一下就没反应了)

    电脑开机cpu风扇不转显示器不亮(电脑开机cpu风扇动一下就没反应了)

  • 抖音为什么打不开闪退(抖音为什么打不了视频)

    抖音为什么打不开闪退(抖音为什么打不了视频)

  • nova7se屏幕刷新率(nove7se屏幕刷新率)

    nova7se屏幕刷新率(nove7se屏幕刷新率)

  • 华为手机怎么恢复出厂设置(华为手机怎么恢复试卷)

    华为手机怎么恢复出厂设置(华为手机怎么恢复试卷)

  • oppo应用时间怎么关闭(oppo的应用时间在哪里)

    oppo应用时间怎么关闭(oppo的应用时间在哪里)

  • qq账号为什么被冻结(qq账号为什么被冰冻了)

    qq账号为什么被冻结(qq账号为什么被冰冻了)

  • 如何把视频下载到电脑桌面(如何把视频下载到mp 3)

    如何把视频下载到电脑桌面(如何把视频下载到mp 3)

  • 华为手机广角怎么开(华为手机广角怎么设置)

    华为手机广角怎么开(华为手机广角怎么设置)

  • 小米cc9e支持快充吗(小米cc9支持快充)

    小米cc9e支持快充吗(小米cc9支持快充)

  • 云闪付乘车码在哪(云闪付乘车码在全国都可以用吗)

    云闪付乘车码在哪(云闪付乘车码在全国都可以用吗)

  • miui11多久更新(小米11多久更新miui12.5)

    miui11多久更新(小米11多久更新miui12.5)

  • 手机扰码是什么(手机扰码是什么样子)

    手机扰码是什么(手机扰码是什么样子)

  • uwb应用有哪些(uwb应用前景)

    uwb应用有哪些(uwb应用前景)

  • 极米遥控器复位键在哪(极米遥控器如何重启)

    极米遥控器复位键在哪(极米遥控器如何重启)

  • 华为mate30不支持5G吗(华为mate30不支持读取nfc)

    华为mate30不支持5G吗(华为mate30不支持读取nfc)

  • 如何开发外卖小程序平台(如何开发外卖小店)

    如何开发外卖小程序平台(如何开发外卖小店)

  • 新建word文档的快捷键是(新建Word文档的快捷)

    新建word文档的快捷键是(新建Word文档的快捷)

  • 打电话为什么线路忙(接电话为什么)

    打电话为什么线路忙(接电话为什么)

  • 屏幕耗电量大怎么解决方案(屏幕耗电高)

    屏幕耗电量大怎么解决方案(屏幕耗电高)

  • 电脑主板上的ISA插槽是起什么作用?(电脑主板上的电池没电了会怎么样)

    电脑主板上的ISA插槽是起什么作用?(电脑主板上的电池没电了会怎么样)

  • Wat Chaloem Phra Kiat Phrachomklao Rachanusorn的浮庙,泰国南邦 (© pa_YON/Getty Images)

    Wat Chaloem Phra Kiat Phrachomklao Rachanusorn的浮庙,泰国南邦 (© pa_YON/Getty Images)

  • 秋日里通往卢浮宫的杜乐丽花园,法国巴黎 (© Brian A. Jackson/Getty Images Plus)

    秋日里通往卢浮宫的杜乐丽花园,法国巴黎 (© Brian A. Jackson/Getty Images Plus)

  • 城镇土地使用税纳税
  • 解聘补偿金赔偿标准2023
  • 利润的敏感性分析怎么做?
  • 业务招待费进项税额转出表二
  • 出租的城镇土地由谁交城镇土地使用税
  • 补发工资如何计提
  • 资金账簿印花税减半征收是从什么时候开始的
  • 购买的商品赠送如何做账
  • 河道工程维护费按什么标准计提
  • 旅行社代订机票怎么做账
  • 核定征收的企业需要汇算清缴吗
  • 销售,购买
  • 销售已使用过的固定资产增值税
  • 小规模开普票要交税吗分录怎么做
  • 记账凭证按照填列方式的分类包括
  • 建筑企业存款账户
  • 有哪些费用发票可以抵扣
  • 变动成本总额怎么求单位变动成本
  • 公司生产的产品
  • 办税员的工作职责
  • 电脑显示器模糊不清晰是什么原因
  • windows10专业版是哪个版本
  • 预付账款是负数有什么税收风险
  • 保险公司工伤保险
  • php基础教程
  • 其他应付款很多
  • win10组策略编辑器打不开怎么办
  • 新西兰萨摩亚人
  • 手机客户端app使用
  • debian配置
  • 小规模纳税人查询
  • vue前端后端
  • 对公户怎么取备用金
  • websocket基于http
  • ubuntu20.04安装cuda10.2
  • windows where命令
  • 建筑劳务税率是13还是6
  • 正规现金收款收据怎么写
  • sql server添加语句
  • SQLite Delete详解及实例代码
  • 处理固定资产如何做账
  • mysql复制粘贴
  • 小规模减免的增值税
  • 企业的哪些支出不得列入成本费用原因
  • 实收资本需要明细科目吗
  • 软件续费应记什么科目
  • 多交了社保
  • 成本费用总额包括营业外支出吗
  • 年底销项税额和进项税额要转出吗
  • 大数据量高并发症有哪些
  • fedora linux安装教程
  • win7桌面和win10桌面
  • win7硬盘设置在哪里设置
  • 英伟达更新有用吗
  • netdrive mac
  • 微软为什么不自己做电脑
  • GhostXP装机版v3.0
  • shell32.exe - shell32是什么进程 有什么用
  • win8杀毒软件关闭
  • win10网络共享失败
  • win10软件报错
  • importem
  • table css 模板
  • pycharm新手使用教程
  • dos批处理文件的扩展名
  • JavaScript中常用的数据类型有
  • select类中下拉框选择常见的方法
  • windows node.js
  • 通过制作潜望镜活动,你获得哪些宝贵的经验
  • unity3ds
  • 开源项目怎么做
  • jquery ajax双击div可直接修改div中的内容
  • javascript基础教程教材答案
  • jqueryfilter
  • 浅析是什么意思
  • 四川省 税务局
  • 国家税务局湖南电子税务局登录
  • 个人所得税app怎么更改手机号码
  • 北京 国税局
  • 江西国税电子税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设