位置: IT常识 - 正文

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

发布时间:2024-01-17
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登录页面)

  • 为什么有的网站文章很差,却能排在首页?(为什么有的网站安卓可以打开,苹果打不开)

    为什么有的网站文章很差,却能排在首页?(为什么有的网站安卓可以打开,苹果打不开)

  • word思维导图模板在哪(word思维导图模糊)

    word思维导图模板在哪(word思维导图模糊)

  • 全民k歌可以撤回私信吗(全民k歌撤销访问记录)

    全民k歌可以撤回私信吗(全民k歌撤销访问记录)

  • iphone7p ios13发烫解决办法(iphone7 13.5.1发烫)

    iphone7p ios13发烫解决办法(iphone7 13.5.1发烫)

  • 快手评论怎么突然没了(快手评论怎么突然出现自己的图片)

    快手评论怎么突然没了(快手评论怎么突然出现自己的图片)

  • 芒果TV为什么没有开启弹幕的标志(芒果TV为什么没有湖南卫视)

    芒果TV为什么没有开启弹幕的标志(芒果TV为什么没有湖南卫视)

  • oppo触摸屏校准在哪里(oppo触摸屏校准在哪里视频)

    oppo触摸屏校准在哪里(oppo触摸屏校准在哪里视频)

  • 苹果提示充电口有水(苹果提示充电口有水继续充电会怎么样)

    苹果提示充电口有水(苹果提示充电口有水继续充电会怎么样)

  • iphone11电池寿命(iPhone11电池寿命79)

    iphone11电池寿命(iPhone11电池寿命79)

  • r33200g相当于i几(r33100相当于i几)

    r33200g相当于i几(r33100相当于i几)

  • 华为p40pro卡槽怎么放卡(华为p40pro卡槽怎么取)

    华为p40pro卡槽怎么放卡(华为p40pro卡槽怎么取)

  • qc3.0对充电线有要求吗(qc3.0和普通充电器区别)

    qc3.0对充电线有要求吗(qc3.0和普通充电器区别)

  • 打印机黄灯一直亮(打印机黄灯一直闪烁不能打印)

    打印机黄灯一直亮(打印机黄灯一直闪烁不能打印)

  • 在快手上把别人加入黑名单别人会知道吗(在快手上把别人的身份证发上去并骂人)

    在快手上把别人加入黑名单别人会知道吗(在快手上把别人的身份证发上去并骂人)

  • 为什么sim卡插在手机里读取不了(为什么sim卡插在别的手机里正常)

    为什么sim卡插在手机里读取不了(为什么sim卡插在别的手机里正常)

  • 华为手机原相机曝光怎么开(华为手机原相机怎么关美颜)

    华为手机原相机曝光怎么开(华为手机原相机怎么关美颜)

  • 手机开发者模式怎么关闭(手机开发者模式在哪里找)

    手机开发者模式怎么关闭(手机开发者模式在哪里找)

  • oppo r11st是什么型号(oppo r11是什么手机)

    oppo r11st是什么型号(oppo r11是什么手机)

  • 苹果11怎么截图(苹果11怎么截图全屏长图)

    苹果11怎么截图(苹果11怎么截图全屏长图)

  • 荣耀手环4怎么连手机(荣耀手环4怎么连接手机)

    荣耀手环4怎么连手机(荣耀手环4怎么连接手机)

  • 全民k歌约唱动态怎么发(全民k歌的约歌在哪里找)

    全民k歌约唱动态怎么发(全民k歌的约歌在哪里找)

  • 蘑菇街如何延长收货(蘑菇街怎么延迟收货)

    蘑菇街如何延长收货(蘑菇街怎么延迟收货)

  • 微视怎么解绑身份证(微视怎么解绑身份证号)

    微视怎么解绑身份证(微视怎么解绑身份证号)

  • 腾讯手游助手怎么卸载游戏?(腾讯手游助手怎么卸载)

    腾讯手游助手怎么卸载游戏?(腾讯手游助手怎么卸载)

  • 分享20个 Unix/Linux 命令技巧(linix unix)

    分享20个 Unix/Linux 命令技巧(linix unix)

  • 发票开具就能做账了吗
  • 物业公司物业费收入会计分录
  • 鉴证服务的税率有哪些
  • 私人企业利润怎么分配?
  • 汽车按揭费用收合法吗?
  • 折让方式
  • 一般企业和行政事业单位的资产负债表是否一样
  • 公司购买宿舍楼申请书
  • 写着个人的发票能下账吗
  • 电子账本excel模板
  • 进口设备属于货物贸易吗
  • 进口材料怎么做账
  • 钢结构施工速度快吗
  • 所得税纳税调增调减怎么理解
  • 材料的盘点包括
  • 通过拍卖取得的车牌号,过期了怎么办
  • 如何以快捷方式打印文件
  • windows11开始菜单点击没反应
  • 系统日志在哪里打开
  • safari浏览器开发者模式
  • 怎么注销win10系统
  • 社保公积金代缴
  • 腾讯手游助手闪屏怎么办
  • win10如何关闭windows安全中心图标
  • 基于php代码实现数据库
  • 溢缴退费是什么意思
  • 租入固定资产改良支出属于资本性支出吗
  • 收到采购专用发票
  • sap abap入门
  • 圣米歇尔山法语介
  • 餐饮专用发票可抵扣吗
  • 游戏的系统架构
  • ps橡皮擦怎么擦的跟背景色一样
  • 融资租赁后续会计处理
  • 个人借款利息收入缴纳个税吗
  • 织梦网站停止使用了还侵权吗
  • 织梦cms怎么样
  • mongodb主从同步速度
  • vue安装插件
  • 三方协议是什么意思?
  • 合作社分红计入什么科目
  • 代缴职工社保是啥意思
  • 捐赠做公益
  • 委托收款和托收承付结算流程图
  • 2020年混凝土增值税税率是多少
  • 差旅费会计科目怎么做
  • 外购的商品赠送客人是否销售吗
  • 建筑安装业经营范围
  • 企业被列入经营异常名录可以注销吗
  • 直接私募如何纳税
  • 帮别人维修东西怎么开票
  • 当月预交增值税时所属期选了上期怎么办
  • 食品企业产品
  • 固定资产大修理支出摊销年限
  • 怎样查企业注册地址
  • 长期待摊费用的摊销期限应该是
  • 小规模减半征收房产税文件
  • 私营企业固定资产法律制度
  • win10自动
  • 如何使用u盘安装软件
  • 两台mac怎么同步
  • 如何在vmware虚拟机中安装macos11.0
  • fsma32.exe进程是什么文件 fsma32是什么进程
  • win8.1技巧
  • 在Linux系统中安装MySQL
  • linux ftp创建文件夹命令
  • 安卓获取设备信息
  • javascript教程完整版
  • angular nz
  • android的edittext在哪
  • Python中http请求方法库汇总
  • Optimizing Unity Games for Mobile Platforms
  • js对象属性值
  • 简述activity的生命周期中有哪几种状态
  • 河北省2021城乡居民医保优惠新政策
  • 工会经费网上怎么申报
  • 湖南低保查询网上查询
  • 陈列费发票能抵扣吗
  • 贵州银行短信服务怎么开通
  • 2014年房产税征收标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号