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

  • 当营销成为赚钱的机器(当营销成为赚钱的工具)

    当营销成为赚钱的机器(当营销成为赚钱的工具)

  • nova9pro是不是5G(nova9pro是不是5g数字移动电话)

    nova9pro是不是5G(nova9pro是不是5g数字移动电话)

  • 手机快手怎么投屏到电视(手机快手怎么投屏)

    手机快手怎么投屏到电视(手机快手怎么投屏)

  • freebuds3用什么充电头(freebuds3充电用什么充电头)

    freebuds3用什么充电头(freebuds3充电用什么充电头)

  • 快手怎么设置电话(快手怎么设置电话和地址)

    快手怎么设置电话(快手怎么设置电话和地址)

  • qq里的小秘密怎么知道是谁(qq小秘密在哪儿)

    qq里的小秘密怎么知道是谁(qq小秘密在哪儿)

  • 苹果11锁屏右上角有横杠(苹果11锁屏右上角会有一个横条怎么取消)

    苹果11锁屏右上角有横杠(苹果11锁屏右上角会有一个横条怎么取消)

  • 华为nova7se是屏幕指纹吗(华为nova7se是顶级lcd屏幕吗)

    华为nova7se是屏幕指纹吗(华为nova7se是顶级lcd屏幕吗)

  • 打印机没有网络可以打印吗(打印机没有网络怎么连接手机打印)

    打印机没有网络可以打印吗(打印机没有网络怎么连接手机打印)

  • v30和30区别(v30p30对比)

    v30和30区别(v30p30对比)

  • 驱动总裁可以卸载吗(驱动总裁卸载了,对电脑有影响吗?)

    驱动总裁可以卸载吗(驱动总裁卸载了,对电脑有影响吗?)

  • 视频保存失败怎么回事(视频保存失败怎么解决)

    视频保存失败怎么回事(视频保存失败怎么解决)

  • 抖音卸载了视频还在吗(抖音卸载了视频怎么复原)

    抖音卸载了视频还在吗(抖音卸载了视频怎么复原)

  • 淘宝可以进行第二次换货不(淘宝怎么第二天直达)

    淘宝可以进行第二次换货不(淘宝怎么第二天直达)

  • iqoo有多少个型号(iqoo一共有几种机型)

    iqoo有多少个型号(iqoo一共有几种机型)

  • 小米8为什么越充越少(小米8为什么好)

    小米8为什么越充越少(小米8为什么好)

  • ps如何将选中的区域抠出来(ps如何将选中的区域新建为一个图层)

    ps如何将选中的区域抠出来(ps如何将选中的区域新建为一个图层)

  • r7 240相当于什么n卡(r7 240相当于什么卡)

    r7 240相当于什么n卡(r7 240相当于什么卡)

  • ie兼容性设置在哪里(ie兼容性设置在哪里找不到)

    ie兼容性设置在哪里(ie兼容性设置在哪里找不到)

  • 抖音搞笑配音在哪找(抖音里面搞笑配音)

    抖音搞笑配音在哪找(抖音里面搞笑配音)

  • 6sp耳机模式怎么取消(6sp耳机模式怎么关闭)

    6sp耳机模式怎么取消(6sp耳机模式怎么关闭)

  • 华为手机怎么剪辑视频(华为手机怎么剪辑音乐)

    华为手机怎么剪辑视频(华为手机怎么剪辑音乐)

  • 硬盘序列号在哪个位置(硬盘序列号在哪看 不用cmd)

    硬盘序列号在哪个位置(硬盘序列号在哪看 不用cmd)

  • 刷宝看视频怎么没有元宝了(刷宝视频怎么用自己的音乐)

    刷宝看视频怎么没有元宝了(刷宝视频怎么用自己的音乐)

  • qq音乐怎么单曲购买(qq音乐怎么单曲购买不了)

    qq音乐怎么单曲购买(qq音乐怎么单曲购买不了)

  • 三星s10怎么调出呼吸灯(三星s10界面怎样调整啊)

    三星s10怎么调出呼吸灯(三星s10界面怎样调整啊)

  • inotifywait命令  异步文件系统监控(inotify_event)

    inotifywait命令 异步文件系统监控(inotify_event)

  • 帝国cms怎么加广告(帝国cms使用手册)

    帝国cms怎么加广告(帝国cms使用手册)

  • 收取境外服务费收入如何开票
  • 商铺属于固定资产还是无形资产
  • 出口港杂费是什么费用
  • 资产项目有
  • 互联网公司如何盈利
  • 进项税加计扣除账务处理
  • 应收账款占用资金的应计利息公式
  • 停用的厂房折旧吗
  • 预缴增值税是否适用一般计税方法
  • 土地罚款可以计入成本吗?
  • 合伙企业需要缴纳什么税
  • 去税务局领用发票要多久
  • 企业为员工缴付养老保险
  • 工资表是放在计提还是发放
  • 跨年度错账更正方法
  • 增值税有留底怎么申请退税
  • 怎么判断企业是一般纳税人还是小规模
  • 发票金额小于之前的金额
  • 在windows7的
  • 属于项目的一个实例
  • window10主题的颜色浅了
  • 跨年度增值税发票作废怎么退税
  • 辅助生产成本包含哪些
  • 工程预付款抵扣是什么意思
  • win7系统配置服务哪些启用
  • 赊销分期付款
  • 企业所得税税前扣除和不扣除的区别
  • re.findall()用法
  • php批量替换
  • 比利牛斯山作为天然界限
  • 设置cmd命令
  • ssh命令用法
  • gparted 命令行
  • 帝国cms添加栏目前台不显示
  • 营业外收入的会计科目编码
  • 国际货运代理可以分哪几类?
  • 建筑企业营改增之前计税方法
  • 报表怎么报送
  • microsoft SQL server 2014可以删吗
  • 执行企业会计制度是什么意思
  • 留抵进项税额怎么做分录
  • 发票的开具流程一般是?
  • 成品油办法废止后,加油站还需办理成品油许可证吗
  • 混合销售举例说明
  • 高工资的工资
  • 去年所得税汇算清缴报表填错了今年可以改吗
  • 涉外收入申报单怎么填
  • 存货报废如何做账
  • 跨年暂估成本会计分录
  • 其他应收款如何做坏账处理
  • 企业清算状态还要报税吗
  • 营业收入怎么确定
  • 环保局罚款记什么科目
  • 费用设置的明细科目
  • 谈一谈有关阅读的
  • docker untagged
  • win7系统怎么连接
  • ubuntu搭建tftp服务器
  • win7用户在哪
  • u盘启动安装xp系统教程
  • winxp 证书错误
  • 电脑ip地址设置在哪里
  • win7c盘winsxs
  • unity shader editor
  • android游戏开发用什么语言
  • 常用的批处理文件
  • angularjs2
  • node.js最新版
  • javascript 数字类型
  • shell动态显示
  • javascript sort方法排序
  • android 属性动画原理
  • java教程 视
  • python运行时间的几种方法
  • 黄金税率是多少
  • 广东省行业税负率表
  • 粮食储备库储备管理自评报告
  • 增值税发票打印机怎么调整打印位置
  • 税务总局纪律作风
  • 年度关联业务往来报告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设