目录

  • 1 数据集的获取途径
    • 1.1 Kaggle有趣比较火热的数据集
    • 1.2 天池
    • 1.3 DataFountain
    • 1.4 其他常用的数据集官网
  • 2 数据处理与标注
    • 2.1 官方数据处理成VOC或者COCO
      • 2.1.1COCO2017数据集介绍
      • 2.1.2 Object Keypoint 类型的标注格式
      • 2.1.3 categories字段
      • 2.1.4 数据集统计信息
    • 2.2 自定义数据集训练
      • 2.2.1 常见标注工具
      • 2.2.2 制作VOC格式与CoCo格式数据集并划分
  • 3 数据预处理方法
  • 4 模型训练评估
    • mAP:

1 数据集的获取途径

通常,数据来源于各个比赛平台,如百度AI Studio ,Kaggle、天池、讯飞等平台,或者是Github。

1.1 Kaggle有趣比较火热的数据集

House Prices-Advanced Regression Techniques      预测销售价格
Cat and Dog                        猫狗分类
Machine Learning from Disaster              预测泰坦尼克号的生存情况并熟悉机器学习基础知识

1.2 天池

Barley Remote Sensing Dataset大麦遥感检测数据集    遥感影像分割
耶鲁人脸数据库                          目标检测任务(人脸检测)

1.3 DataFountain

花卉分类数据集                        图像分类

1.4 其他常用的数据集官网

科大讯飞官网

COCO数据集

2 数据处理与标注

2.1 官方数据处理成VOC或者COCO

2.1.1COCO2017数据集介绍

   COCO数据集是Microsoft制作收集用于Detection + Segmentation + Localization + Captioning的数据集,作者收集了其2017年的版本,一共有25G左右的图片和600M左右的标签文件。
COCO数据集共有小类80个,分别为:

[‘person’, ‘bicycle’, ‘car’, ‘motorcycle’, ‘airplane’, ‘bus’, ‘train’, ‘truck’, ‘boat’, ‘traffic light’, ‘fire hydrant’, ‘stop sign’, ‘parking meter’, ‘bench’, ‘bird’, ‘cat’, ‘dog’, ‘horse’, ‘sheep’, ‘cow’, ‘elephant’, ‘bear’, ‘zebra’, ‘giraffe’, ‘backpack’, ‘umbrella’, ‘handbag’, ‘tie’, ‘suitcase’, ‘frisbee’, ‘skis’, ‘snowboard’, ‘sports ball’, ‘kite’, ‘baseball bat’, ‘baseball glove’, ‘skateboard’, ‘surfboard’, ‘tennis racket’, ‘bottle’, ‘wine glass’, ‘cup’, ‘fork’, ‘knife’, ‘spoon’, ‘bowl’, ‘banana’, ‘apple’, ‘sandwich’, ‘orange’, ‘broccoli’, ‘carrot’, ‘hot dog’, ‘pizza’, ‘donut’, ‘cake’, ‘chair’, ‘couch’, ‘potted plant’, ‘bed’, ‘dining table’, ‘toilet’, ‘tv’, ‘laptop’, ‘mouse’, ‘remote’, ‘keyboard’, ‘cell phone’, ‘microwave’, ‘oven’, ‘toaster’, ‘sink’, ‘refrigerator’, ‘book’, ‘clock’, ‘vase’, ‘scissors’, ‘teddy bear’, ‘hair drier’, ‘toothbrush’]

大类12个,分别为

[‘appliance’, ‘food’, ‘indoor’, ‘accessory’, ‘electronic’, ‘furniture’, ‘vehicle’, ‘sports’, ‘animal’, ‘kitchen’, ‘person’, ‘outdoor’]

COCO格式,文件夹路径样式:

 COCO_2017/├── val2017     # 总的验证集├── train2017    # 总的训练集├── annotations    # COCO标注│   ├── instances_train2017.json     # object instances(目标实例) ---目标实例的训练集标注 │   ├── instances_val2017.json        # object instances(目标实例) ---目标实例的验证集标注│   ├── person_keypoints_train2017.json     # object keypoints(目标上的关键点) ---关键点检测的训练集标注│   ├── person_keypoints_val2017.json       # object keypoints(目标上的关键点) ---关键点检测的验证集标注│   ├── captions_train2017.json    # image captions(看图说话) ---看图说话的训练集标注│   ├── captions_val2017.json      # image captions(看图说话) ---看图说话的验证集标注

VOC格式,文件夹路径样式:

  VOC_2017/├── Annotations   # 每张图片相关的标注信息,xml格式├── ImageSets│   ├── Main    # 各个类别所在图片的文件名├── JPEGImages    # 包括训练验证测试用到的所有图片  ├── label_list.txt   # 标签的类别数├── train_val.txt   #训练集 ├── val.txt    # 验证集

2.1.2 Object Keypoint 类型的标注格式

{"info": info,"licenses": [license],"images": [image],"annotations": [annotation],"categories": [category]
}

   其中,info、licenses、images这三个结构体/类型,在不同的JSON文件中这三个类型是一样的,定义是共享的(object instances(目标实例), object keypoints(目标上的关键点), image captions(看图说话))。不共享的是annotation和category这两种结构体,他们在不同类型的JSON文件中是不一样的。 新增的keypoints是一个长度为3 X k的数组,其中k是category中keypoints的总数量。每一个keypoint是一个长度为3的数组,第一和第二个元素分别是x和y坐标值,第三个元素是个标志位v,v为0时表示这个关键点没有标注(这种情况下x=y=v=0),v为1时表示这个关键点标注了但是不可见(被遮挡了),v为2时表示这个关键点标注了同时也可见。
um_keypoints表示这个目标上被标注的关键点的数量(v>0),比较小的目标上可能就无法标注关键点。

annotation{
"keypoints": [x1,y1,v1,...],
"num_keypoints": int,
"id": int,
"image_id": int,
"category_id": int,
"segmentation": RLE or [polygon],
"area": float,
"bbox": [x,y,width,height],
"iscrowd": 0 or 1,
}
示例:
{
"segmentation": [[125.12,539.69,140.94,522.43,100.67,496.54,84.85,469.21,73.35,450.52,104.99,342.65,168.27,290.88,179.78,288,189.84,286.56,191.28,260.67,202.79,240.54,221.48,237.66,248.81,243.42,257.44,256.36,253.12,262.11,253.12,275.06,299.15,233.35,329.35,207.46,355.24,206.02,363.87,206.02,365.3,210.34,373.93,221.84,363.87,226.16,363.87,237.66,350.92,237.66,332.22,234.79,314.97,249.17,271.82,313.89,253.12,326.83,227.24,352.72,214.29,357.03,212.85,372.85,208.54,395.87,228.67,414.56,245.93,421.75,266.07,424.63,276.13,437.57,266.07,450.52,284.76,464.9,286.2,479.28,291.96,489.35,310.65,512.36,284.76,549.75,244.49,522.43,215.73,546.88,199.91,558.38,204.22,565.57,189.84,568.45,184.09,575.64,172.58,578.52,145.26,567.01,117.93,551.19,133.75,532.49]],
"num_keypoints": 10,
"area": 47803.27955,
"iscrowd": 0,
"keypoints": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142,309,1,177,320,2,191,398,2,237,317,2,233,426,2,306,233,2,92,452,2,123,468,2,0,0,0,251,469,2,0,0,0,162,551,2],
"image_id": 425226,"bbox": [73.35,206.02,300.58,372.5],"category_id": 1,
"id": 183126},

2.1.3 categories字段

   最后,对于每一个category结构体,相比Object Instance中的category新增了2个额外的字段,keypoints是一个长度为k的数组,包含了每个关键点的名字;skeleton定义了各个关键点之间的连接性(比如人的左手腕和左肘就是连接的,但是左手腕和右手腕就不是)。
目前,COCO的keypoints只标注了person category (分类为人)。

{
"id": int,
"name": str,
"supercategory": str,
"keypoints": [str],
"skeleton": [edge]
}
示例:
{
"supercategory": "person",
"id": 1,
"name": "person",
"keypoints": ["nose","left_eye","right_eye","left_ear","right_ear","left_shoulder","right_shoulder","left_elbow","right_elbow","left_wrist","right_wrist","left_hip","right_hip","left_knee","right_knee","left_ankle","right_ankle"],
"skeleton": [[16,14],[14,12],[17,15],[15,13],[12,13],[6,12],[7,13],[6,7],[6,8],[7,9],[8,10],[9,11],[2,3],[1,2],[1,3],[2,4],[3,5],[4,6],[5,7]]
}

2.1.4 数据集统计信息

   人体关键点标注,每个人体关键点个数的分布情况,其中11-15这个范围的人体是最多的,有接近70000人,6-10其次,超过40000人,后面依次为16-17,2-5,…

2.2 自定义数据集训练

2.2.1 常见标注工具

  对于图像分类任务,我们只要将对应的图片是哪个类别划分好即可。对于检测任务和分割任务,目前比较流行的数据标注工具是labelimg、labelme,分别用于检测任务与分割任务的标注。

标注工具Github地址:

          labelimg

          labelme

          PPOCRLabel

2.2.2 制作VOC格式与CoCo格式数据集并划分

3 数据预处理方法

图像增强:RGB->BGR/Gray, resize, 锐化, 亮度变换, 提高对比度, rotate, 注入噪声等

4 模型训练评估

mAP:

在机器学习领域中,用于评价一个模型的性能有多种指标,其中几项就是FP、FN、TP、TN、精确率(Precision)、召回率(Recall)、准确率(Accuracy)。

mean Average Precision, 即各类别AP的平均值,是AP:PR 曲线下面积。

此前先了解一下IOU评判标准:

TP、FP、FN、TN

常见的评判方式,第一位的T,F代表正确或者错误。第二位的P和N代表判断的正确或者错误

  • True Positive (TP): IoU>IOUthreshold \mathrm{IoU}>I O U_{\text {threshold }}IoU>IOUthreshold ​ (IOU的阈值一般取0.5)的所有检测框数量(同一Ground Truth只计算一次),可以理解为真实框,或者标准答案

  • False Positive (FP): IoU<IOUthreshold \mathrm{IoU}<I O U_{\text {threshold }}IoU<IOUthreshold ​ 的所有检测框数量

  • False Negative (FN): 没有检测到的 GT 的数量

  • True Negative (TN): mAP中无用到

查准率(Precision): Precision =TPTP+FP=TPall detections =\frac{T P}{T P+F P}=\frac{T P}{\text { all detections }}=TP+FPTP​= all detections TP​

查全率(Recall): Recall =TPTP+FN=TPall ground truths =\frac{T P}{T P+F N}=\frac{T P}{\text { all ground truths }}=TP+FNTP​= all ground truths TP​

二者绘制的曲线称为 P-R 曲线:
查准率:P 为纵轴y 查全率:R 为横轴x轴,如下图

mAP值即为,PR曲线下的面积。

飞桨领航团AI达人创造营课程笔记Lesson_2:数据集的获取与处理(CV方向)相关推荐

  1. 飞桨领航团AI达人创造营0726笔记

    飞桨领航团AI达人创造营0726笔记 1.创意:将现有想法进行某种组合 (1)游戏复刻 (2)特效复刻 采用分割模型 (3)效果复刻 多帧人物叠加到一张动图,时间域的叠加 (4)表情机器人 框架: 2 ...

  2. 飞桨领航团AI达人创造营学习笔记1

    令人拍案叫绝的创意都是怎么产生的? 第一讲回放链接:https://www.bilibili.com/video/BV1qq4y1X7uZ 1 韩磊/ninetailskim:令人拍案叫绝的创意都是怎 ...

  3. 飞桨领航团AI达人创造营第一课2021.7.26

    系列文章目录 第一章.让人拍案叫绝的创意都是如何诞生的 文章目录 系列文章目录 前言 一.课程表 二.课程内容 总结 前言 暑期充电季,百度飞桨领航团全新推出"AI达人创造营",十 ...

  4. 飞桨领航团AI达人创造营1-让人拍案叫绝的创意都是如何诞生的?(创意课程)

    让人拍案叫绝的创意都是如何诞生的?(创意课程) 本课程介绍如何写一篇精品项目,如何启发创意,如何获取数据集,如何调优.以及多个平台的部署方案,如何构建项目,如何进行思考: 第一位韩磊讲师(趣味互联网创 ...

  5. 飞桨领航团AI达人创造营4-地平线部署(硬件部署)

    飞 桨 模 型 在 地 平 线 开 发 板 的 部 署-硬件部署 本次教程,使用飞桨高阶API训练mobilenet模型,三分钟即可搭建一个网络,进行训练. 部署使用地平线的天工开物工具链,模型快速转 ...

  6. 飞桨领航团AI达人创造营第三课笔记

    第三课笔记目录 课后感慨 作业完成记录 制作数据集 训练模型 参考案例 代码解读 unzip git 数据集划分解读 文件选择 问题解决 链接指引 课后感慨 课程是越来越难了,有点难跟上了.但得益于群 ...

  7. 飞桨领航团AI达人创造营第一课

    @百度飞浆 今天的第一课是由四位飞浆的PPDE(飞浆技术开发专家)给大家带来的让人拍案叫绝的创意都是怎么产生的? AI Studio作为国内第一的开源社区已经被很多小伙伴所认识了 文章目录 前言 一. ...

  8. 飞桨领航团AI达人创造营4-在Jetson Nano上基于python部署Paddle Inference(硬件部署)

    在Jetson Nano上基于python部署Paddle Inference(硬件部署) 一.准备好一块新鲜出炉的Jetson nano,并配好基础的开发环境 1.基础配置方法 直接参考我多年来总结 ...

  9. 飞桨领航团AI达人创造营7.27

    波士顿房价预测是一个经典的机器学习任务,类似于程序员世界的"Hello World".和大家对房价的普遍认知相同,波士顿地区的房价受诸多因素影响.该数据集统计了13种可能影响房价的 ...

最新文章

  1. 阿里二面:main 方法可以继承吗
  2. harmonyos developer,HarmonyOS 基本控件的实现
  3. libevent源码学习----io多路复用的封装和使用
  4. 使用subgit进行svn迁移至git(branch,tags)
  5. Subset POJ - 3977(折半枚举+二分+二进制枚举)
  6. 前端学习(477):前端简介1
  7. 蓝牙强势整合UWB/wifi/zigbee
  8. php执行sql内存溢出_SQL Server 2017:SQL排序,溢出,内存和自适应内存授予反馈
  9. 仿百篮应用市场(已开源)
  10. 分布式锁没那么难,手把手教你实现 Redis 分布锁!|保姆级教程
  11. Atitit Major island groups and archipelagos 主要的岛群和群岛目录资料目录1. 岛群 波利尼西亚(Polynesia, 美拉尼西亚(Melanesia,
  12. Unity调用打印机
  13. IT服务管理(一)服务的演变与整体观
  14. 如何将计算机网络连接打印机,电脑怎样连接打印机,教您电脑如何连接网络打印机...
  15. 双硬盘双系统ArchLinux安装备忘录
  16. bat批处理笔记(一)
  17. 怎么使用计算机播放音乐,怎么给电脑设置默认音乐播放器
  18. hibernate一对一主键唯一外键关联(一)
  19. ubuntu挂载U盘
  20. 共享白板程序源代码_OMCS Demo -- 电子白板的课件功能展现(附源码) - 傲瑞科技 - 官方博客...

热门文章

  1. php tiaozh,php 拼音转换的实现方法
  2. 【听】实验室女孩,热爱到至爱的科学狂人
  3. 弘辽科技:打造爆款的三大核心。
  4. 信号幅度单位/功率单位 及其换算 Layout长度单位
  5. 100天精通Python(基础篇)——第8天:名片管理系统
  6. oracle leg函数,Hive中的leg和lead函数简单使用
  7. 市场贡献超千亿,单身人口养活了几十个行业
  8. java农业银行面试题
  9. 帆软参数为空查询全部
  10. 应届实习生 北京短租租房记