笔尖笔帽检测1:笔尖笔帽检测数据集(含下载链接)

笔尖笔帽检测1:笔尖笔帽检测数据集(含下载链接)

目录

笔尖笔帽检测1:笔尖笔帽检测数据集(含下载链接)

[1. 前言](#1. 前言)

[2. 手笔检测数据集](#2. 手笔检测数据集)

(1)Hand-voc1

(2)Hand-voc2

(3)Hand-voc3

(4)Hand-Pen-voc手笔检测数据集

(5)手笔目标框可视化效果

[3. 笔尖笔帽关键点检测数据集](#3. 笔尖笔帽关键点检测数据集)

(1)dataset-pen2

(2)笔尖笔帽关键点可视化效果

[4. 数据集下载](#4. 数据集下载)

[5. 笔尖笔帽关键点检测(Python/C++/Android)](#5. 笔尖笔帽关键点检测(Python/C++/Android))

[6.特别版: 笔尖指尖检测](#6.特别版: 笔尖指尖检测)


1. 前言

目前在AI智慧教育领域,有一个比较火热的教育产品,即指尖点读 或者笔尖点读 功能,其核心算法就是通过深度学习的方法获得笔尖或者指尖的位置,在通过OCR识别文本,最后通过TTS(TextToSpeech)将文本转为语音;其中OCR和TTS算法都已经研究非常成熟了,而指尖或者笔尖检测的方法也有一些开源的项目可以参考实现。本项目将实现笔尖笔帽关键点检测算法,其中使用YOLOv5模型实现手部检测(手握着笔目标检测),使用HRNet,LiteHRNet和Mobilenet-v2模型实现笔尖笔帽关键点检测。项目分为数据标注,模型训练和Android部署等多个章节,本篇是项目《笔尖笔帽检测》系列文章之笔尖笔帽检测数据集说明;

项目收集了手笔检测数据集和笔尖笔帽关键点检测数据集:

  • 手笔检测数据集(Hand-Pen Detection Dataset):共收集了四个:Hand-voc1,Hand-voc2和Hand-voc3,Hand-Pen-voc手笔检测数据集总共约7万张图片;标注格式统一转换为VOC数据格式,手部目标框标注为hand,手握着笔的目标框标注为hand_pen,可用于深度学习手部目标检测模型算法开发
  • 笔尖笔帽关键点检测数据集 (Pen-tip Keypoints Dataset):收集了1个数据集:dataset-pen2,标注了手握笔(hand_pen)的目标区域和笔的两端(笔尖和笔帽);数据集分为测试集Test和训练集Train,其中Test数据集有1075张图片,Train数据集有28603张图片;标注格式统一转换为COCO数据格式,可用于深度学习笔尖笔帽关键点检测模型训练
  • 数据收集和标注是一件十分繁杂且又费时费力的工作,请尊重我的劳动成果。

【尊重原则,转载请注明出处】 https://blog.csdn.net/guyuealian/article/details/134070255

Android笔尖笔帽关键点检测APP Demo体验:


更多项目《笔尖笔帽检测》系列文章请参考:


2. 手笔检测数据集

项目已经收集了四个手笔检测数据集(Hand-Pen Detection Dataset):Hand-voc1,Hand-voc2和Hand-voc3和Hand-Pen-voc,总共约7万张图片

(1)Hand-voc1

Hand-voc1手部检测数据集 ,该数据来源于国外开源数据集,大部分数据是室内摄像头摆拍的手部数据,不包含人体部分,每张图只含有一只手,分为两个子集:训练集(Train)和测试集(Test);其中训练集(Train)总数超过30000张图片,测试集(Test)总数2560张​​​​;图片已经使用labelme标注了手部区域目标框box,标注名称为hand,标注格式统一转换为VOC数据格式,可直接用于深度学习目标检测模型训练。

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| | |

(2)Hand-voc2

Hand-voc2手部检测数据集 ,该数据来源于国内开源数据集,包含人体部分和多人的情况,每张图含有一只或者多只手,比较符合家庭书桌读写场景的业务数据集,数据集目前只收集了980张图片​​​;图片已经使用labelme标注了手部区域目标框box,标注名称为hand,标注格式统一转换为VOC数据格式,可直接用于深度学习目标检测模型训练。

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |

(3)Hand-voc3

Hand-voc3手部检测数据集 来源于国外​HaGRID手势识别数据集;原始HaGRID数据集 十分庞大,约有55万张图片,包含了18种常见的通用手势;Hand-voc3数据集是从HaGRID数据集中,每种手势随机抽取2000张图片,总共包含18x2000=36000张图片数据​​​;标注格式统一转换为VOC数据格式,标注名称为hand,可直接用于深度学习目标检测模型训练。

关于HaGRID数据集 请参考文章:HaGRID手势识别数据集使用说明和下载

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| | |

(4)Hand-Pen-voc手笔检测数据集

Hand-Pen-voc手笔检测数据集 ,该数据是项目专门收集含有手部和书写工具笔的数据,大部分图片数据都含有一只手,并且是手握着笔练习写字的情况,其中书写工具笔的种类包含钢笔、铅笔、中性笔、记号笔等,十分符合学生写字/写作/做笔记/做作业 的场景数据。数据集目前共收集了16457张图片​​​;图片已经使用labelme标注了两个目标框hand和hand_pen,标注格式统一转换为VOC数据格式,可直接用于深度学习目标检测模型训练。

  1. 目标框**hand:**手部目标框,仅当只有手且没有握着笔的情况下才标注为hand
  2. 目标框**hand_pen:**手握笔目标框,手握着笔正常书写的目标框;由于手握着笔写字,为了囊括笔的区域,标注手部区域目标框box,会比实际的手部要大点点

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| | |

(5)手笔目标框可视化效果

需要pip安装pybaseutils工具包,然后使用parser_voc显示手部目标框的绘图效果

pip install pybaseutils

python 复制代码
import os
from pybaseutils.dataloader import parser_voc

if __name__ == "__main__":
    # 修改为自己数据集的路径
    filename = "/path/to/dataset/Hand-voc3/train.txt"
    class_name = ['hand','hand_pen']
    dataset = parser_voc.VOCDataset(filename=filename,
                                    data_root=None,
                                    anno_dir=None,
                                    image_dir=None,
                                    class_name=class_name,
                                    transform=None,
                                    use_rgb=False,
                                    check=False,
                                    shuffle=False)
    print("have num:{}".format(len(dataset)))
    class_name = dataset.class_name
    for i in range(len(dataset)):
        data = dataset.__getitem__(i)
        image, targets, image_id = data["image"], data["target"], data["image_id"]
        print(image_id)
        bboxes, labels = targets[:, 0:4], targets[:, 4:5]
        parser_voc.show_target_image(image, bboxes, labels, normal=False, transpose=False,
                                     class_name=class_name, use_rgb=False, thickness=3, fontScale=1.2)

3. 笔尖笔帽关键点检测数据集

笔的种类繁多,材质颜色不一,但笔的外形基本是长条形状;项目没有直接标注笔的外接矩形框,而是将笔分为笔尖(笔头)和笔帽(笔尾)两个端点,这两个端点连接线,则表示整个笔身长度:

  • 笔尖/笔头关键点:位于笔尖突出尖端点位置,index=0
  • 笔帽/笔尾关键点:位于笔末端点中心点位置,index=1
  • 手握笔标注框: box包含笔和手的区域,一般出现在手握着笔书写的情况,不考虑单独出现笔的情况,标注名称为hand_pen

(1)dataset-pen2

dataset-pen2笔尖笔帽关键点检测数据集 ,改数据由Hand-Pen-voc手笔检测数据集扩充采集获得,标注了手握笔(hand_pen)的目标区域和笔的两端(笔尖和笔帽);大部分图片数据都含有一只手,并且是手握着笔练习写字的情况,其中书写工具笔的种类包含钢笔、铅笔、中性笔、记号笔等,十分符合学生写字/写作/做笔记/做作业 的场景数据。数据集分为测试集Test和训练集Train,其中Test数据集有1075张图片,Train数据集有28603张图片;标注格式统一转换为COCO数据格式,可用于深度学习笔尖笔帽关键点检测模型训练

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| | |

(2)笔尖笔帽关键点可视化效果

需要pip安装pybaseutils工具包,然后使用parser_coco_kps显示手部和笔尖关键点的绘图效果

pip install pybaseutils

python 复制代码
import os
from pybaseutils.dataloader import parser_coco_kps

if __name__ == "__main__":
    # 修改为自己数据集json文件路径
    anno_file = "/path/to/dataset/dataset-pen2/train/coco_kps.json"
    class_name = []
    dataset = parser_coco_kps.CocoKeypoints(anno_file, image_dir="", class_name=class_name,shuffle=False)
    bones = dataset.bones
    for i in range(len(dataset)):
        data = dataset.__getitem__(i)
        image, boxes, labels, keypoints = data['image'], data["boxes"], data["label"], data["keypoints"]
        print("i={},image_id={}".format(i, data["image_id"]))
        parser_coco_kps.show_target_image(image, keypoints, boxes, colors=bones["colors"],
                                          skeleton=bones["skeleton"],thickness=1)

4. 数据集下载

数据集下载地址:笔尖笔帽检测数据集(含下载链接)

数据集内容包含:

  • **手笔检测数据集:**包含Hand-voc1,Hand-voc2和Hand-voc3,Hand-Pen-voc手笔检测数据集总共约7万张图片;标注格式统一转换为VOC数据格式,手部目标框标注为hand,手握着笔的目标框标注为hand_pen,可用于深度学习手部目标检测模型算法开发。

  • 笔尖笔帽关键点检测数据集dataset-pen2 ,标注了手握笔(hand_pen)的目标区域和笔的两端(笔尖和笔帽);数据集分为测试集Test和训练集Train,其中Test数据集有1075张图片,Train数据集有28603张图片;标注格式统一转换为COCO数据格式,可用于深度学习笔尖笔帽关键点检测模型训练

  • 数据收集和标注是一件十分繁杂且又费时费力的工作,请尊重我的劳动成果


5. 笔尖笔帽关键点检测(Python/C++/Android)

本项目基于Pytorch深度学习框架,实现手写工具笔端(笔尖和笔帽)关键点检测,其中手笔检测采用YOLOv5模型,手写工具笔端(笔尖和笔帽)关键点检测是基于开源的HRNet进行改进,构建了整套笔尖笔帽关键点检测的训练和测试流程;为了方便后续模型工程化和Android平台部署,项目支持轻量化模型LiteHRNet和Mobilenet模型训练和测试,并提供Python/C++/Android多个版本

Android笔尖笔帽关键点检测APP Demo体验:


6.特别版: 笔尖指尖检测

碍于篇幅,本文章只实现了笔尖笔帽关键点检测;实质上,要实现指尖点读 或者笔尖点读功能,我们可能并不需要笔帽检测,而是需要实现笔尖+指尖检测功能;其实现方法与笔尖笔帽关键点检测类似。

下面是成功产品落地应用的笔尖+指尖检测算法Demo,其检测精度和速度性能都比笔尖笔帽检测的效果要好。

相关推荐
AI吃大瓜1 年前
笔尖笔帽检测4:C++实现笔尖笔帽检测算法(含源码 可是实时检测)
c++·笔尖笔帽·笔尖检测·指尖笔尖·笔尖关键点检测