paddle - crowdHuman数据集训练人体识别模型

  • 数据集annotation
    • crowdhuman的odgt文件各项意义
    • 转换为paddle yolo的格式
      • 输入哪些数据?
  • 输出模型

数据集annotation

使用paddle paddle yolo v3的模型,将这个数据集的json内容转换为xml格式。

crowdhuman的odgt文件各项意义

参考官网:http://www.crowdhuman.org/download.html
但说得并不明确,这里对照图片总结了一下:

JSON{"ID" : image_filename,  ---> filename"gtboxes" : [gtbox],  ---> gtbox框列表
}gtbox{"tag" : "person" or "mask",  ---> mask表示是人群,或者反光,或者像人的东西,需要被忽略的数据,此时extra中的ignore = 1"vbox": [x, y, w, h], ---> visible box,可看见的部分的检测框,框坐标为左上角x,y + weight, height"fbox": [x, y, w, h], ---> full box,预测的全部的检测框,当extra的occ == 0时, 这个值和vbox相等"hbox": [x, y, w, h], ---> head box,预测头的部分的检测框"extra" : extra, ---> person额外描述"head_attr" : head_attr, ---> head额外描述
}extra{ ---> 内容均为可选项"ignore": 0 or 1, ---> 对应上述mask,ignore = 1"box_id": int, ---> 当前gtbox的id"occ": int, ---> 图像是否有遮挡, =1有遮挡
}head_attr{ ---> 内容均为可选项"ignore": 0 or 1, ---> 未知?"unsure": int, ---> 图像是否不确定(置信度低)"occ": int, ---> 同上
}

转换为paddle yolo的格式

输入哪些数据?

一开始:

  1. box分为三类,只用于摄像头采集的场景
  2. ignore = 1,unsure = 1时, 不使用这个box
  3. 遮挡:一开始occ = 1也输入,发现效果不好,loss不下降,不使用
  4. 分辨率:数据集中很多人群图片,box像素太少的,不使用

发现loss一直不下降,怀疑是数据集问题。再看了下这个odgt文件中的数据,发现occ为0时,fbox和vbox相等。

于是:

  1. 分为两类,head and body,只输入vbox和hbox
  2. ignore/ unsure == 1时,对应的vbox/hbox忽略
  3. head_attr的occ==1时,忽略hbox
  4. 图片先缩放为XXX*480的大小,再根据缩放后的box,过滤较小尺寸的box。
  5. 发现剩下的图片里,有很多人体重合度高的情形,因此再过滤次小尺寸,且occ==1的vbox
  6. 调整尺寸过滤的阈值,使最终的总boxes里,两类样本数量接近。

剔除后,验证集acc在85左右就不能提升了,loss也很高。另外一个使用项目场景的图片训练的人脸识别模型,效果就非常好,实际使用到项目时,还是以项目场景的图片作训练效果最好,同时要剔除那些可能存在干扰的项。

输出模型

yolo模型的输入图片像素需要为32的倍数。采用192*192,384*384等分辨率freeze模型。较小的输入图像速度会快很多,相较之下会损失检测框精度,最主要的是画面中较小目标的识别能力。因此输入图像分辨率也是根据实际情况来权衡。

paddle - crowdHuman数据集训练人体识别模型相关推荐

  1. tensorflow精进之路(二十五)——Object Detection API目标检测(下)(VOC数据集训练自己的模型进行目标检测)

    1.概述 上一讲,我们使用了别人根据COCO数据集训练好的模型来做目标检测,这一讲,我们就来训练自己的模型. 2.下载数据集 为了方便学习,我们先使用别人整理好的数据集来训练---VOC 2012数据 ...

  2. Win10+YOLOv4/v3用yolo_mark标记数据集 训练自己的模型

    Win10+Yolov4用yolo_mark标记数据集 训练自己的模型 文章目录 1. 前言 2. darknet 3. yolo_mark 3.1 yolo_mark和opencv的下载 3.2 y ...

  3. Keras之DNN:利用DNN算法【Input(8)→12+8(relu)→O(sigmoid)】利用糖尿病数据集训练、评估模型(利用糖尿病数据集中的八个参数特征预测一个0或1结果)

    Keras之DNN:利用DNN算法[Input(8)→12+8(relu)→O(sigmoid)]利用糖尿病数据集训练.评估模型(利用糖尿病数据集中的八个参数特征预测一个0或1结果) 目录 输出结果 ...

  4. MSCOCO数据集转VOC数据集训练目标检测模型

    MSCOCO数据集转VOC数据集训练目标检测模型 Images 2014 Train images [83K/13GB] 2014 Val images [41K/6GB] 2014 Test ima ...

  5. 基于TensorFlow训练花朵识别模型的源码和Demo

    基于TensorFlow训练花朵识别模型的源码和Demo 转发来源: https://blog.csdn.net/Anymake_ren/article/details/80550684 下面就通过对 ...

  6. 利用PaddleOCR训练车牌识别模型

    目录 1--前言 2--生成车牌数据集 3--构建车牌数据集标签 4--自定义字典 5--训练模型 6--模型转换和推理 7--模型转换为onnx模型 8--参考 1--前言 ①系统:Ubuntu18 ...

  7. Python+OpenCV实现AI人脸识别身份认证系统(3)—训练人脸识别模型

    目录 案例引入 本节项目 最近有小伙伴们一直在催本项目的进度,好吧,今晚熬夜加班编写,在上一节中,实现了人脸数据的采集,在本节中将对采集的人脸数据进行训练,生成识别模型. 案例引入 首先简要讲解数据集 ...

  8. python实现人脸检测及识别(2)---- 利用keras库训练人脸识别模型

    前面已经采集好数据集boss文件夹存放需要识别的对象照片,other存放其他人的训练集照片,现在,我们终于可以尝试训练我们自己的卷积神经网络模型了.CNN擅长图像处理,keras库的tensorflo ...

  9. 利用COCO API测试自己数据集训练的YOLOv3模型的mAP(VOC格式数据集)

    目录 工具 前言 生成标注集的json文件 数据集准备 将voc注解格式数据集的注解转换成txt注解格式 自定义数据集的注解转换成coco的注解格式 生成结果集的json文件 安装darknet 获取 ...

最新文章

  1. 2021年大数据Kafka(二):❤️Kafka特点总结和架构❤️
  2. 关于Enterprise Library 两个网占.
  3. 爱立信将在加拿大建立人工智能实验室
  4. java swt webkit_使用Java和Webkit的HTML编辑器 – SWT浏览器
  5. mysql中怎么删除表中的一列数据_mysql如何删除表中一行数据?
  6. 【数据结构与算法】之深入解析“排列硬币”的求解思路与算法示例
  7. 自下而上归并排序 数组实现
  8. python学习笔记(四):函数
  9. 解决cc1plus.exe: out of memory allocating bytes
  10. spark 上游rdd的缓存
  11. 轻量级数据交换格式JSON
  12. 简单的NLPIR分词 JAVA 实现
  13. chrome没有注册类解决
  14. 从等待顾客注册会员到寻找潜在会员,会员管理系统是如何治愈“守株待兔”
  15. PATA 1093 有几个PAT
  16. 拥有多重人格的他,可能是个裂脑人
  17. 【收藏】HUE配置HDFS报错Cannot access: /. The HDFS REST service is not available. “ ““
  18. git常用操作及原理--本地
  19. 谁说菜鸟不会数据分析-入门篇
  20. windows相关命令

热门文章

  1. 《PostgreSQL 开发指南》第 07 篇 管理表空间
  2. Python 之条件表达式
  3. pytorch一直安装失败?
  4. ESP8266开发之旅 网络篇⑦ TCP Server TCP Client
  5. linux 批量更改文件名后缀,批量修改文件名及扩展名
  6. 浅谈PE(私募股权)业务及系统建设:02. 系统建设
  7. access游戏库不显示 ea_EA/Origin Access免费游戏库新增八款游戏
  8. 栈及其python实现
  9. 【MySQL】C语言连接数据库
  10. 西门子阀门定位器选型注意事项