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

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

目录

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

1. 前言

2. 手笔检测数据集

(1)Hand-voc1

(2)Hand-voc2

(3)Hand-voc3

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

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

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

(1)dataset-pen2

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

4. 数据集下载

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

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体验:

  


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

  • 笔尖笔帽检测1:笔尖笔帽检测数据集(含下载链接)https://blog.csdn.net/guyuealian/article/details/134070255
  • 笔尖笔帽检测2:Pytorch实现笔尖笔帽检测算法(含训练代码和数据集)https://blog.csdn.net/guyuealian/article/details/134070483
  • 笔尖笔帽检测3:Android实现笔尖笔帽检测算法(含源码 可是实时检测)https://blog.csdn.net/guyuealian/article/details/134070497
  • 笔尖笔帽检测4:C++实现笔尖笔帽检测算法(含源码 可是实时检测)https://blog.csdn.net/guyuealian/article/details/134070516


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

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

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,其检测精度和速度性能都比笔尖笔帽检测的效果要好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/139869.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Allegro层叠中的Etch Factor-铜皮的腐蚀因子如何计算

Allegro层叠中的Etch Factor-铜皮的腐蚀因子如何计算 在用Allegro进行PCB设计的时候,Cross-section中需要填入对应的信息,一般填入每层的厚度即可,如下图 当PCB需要进行仿真分析的时候,Etch-Factor这个值是必须要填写的,如下图 目前看到的都是90这个值,这是一个理论值。 …

iOS群控手机App的开发难点是什么?

随着智能手机的普及,手机App已经成为我们生活中不可或缺的一部分,在众多手机操作系统中,iOS系统因其封闭性、安全性和流畅性而备受用户青睐,然而,开发一款针对iOS系统的手机App却并非易事。 一、开发语言与框架 iOS系…

【IDE】【实战系列】掌握这些技巧发现阅读源码不过如此简单

文章目录 IDE 版本前言IDE Debug主界面介绍字段断点(field breakpoints)使用方式配置EnabledSuspendLog 行断点(line breakpoints)使用方式配置方式 方法断点(method breakpoints)使用方式配置方式 异常断点…

datax 搭建使用

文章目录 datax 环境搭建使用一、解压文件二、配置 json 文件三、执行命令 datax 环境搭建使用 用于全量同步 一、解压文件 将包上传至服务器 输入命令: tar -zxvf datax.tar.gz -C /opt/module/ 将包 解压到 /opt/module 目录 解压完之后,不需要任何…

在线教育与跨境电商:数字时代的知识传播

随着数字技术的不断发展和全球互联网的普及,在线教育和跨境电商在数字时代崭露头角,共同推动了知识的全球传播。 这两个领域的结合为学生、教育者和知识提供者创造了新的机遇和可能性,同时也带来了一系列有趣的挑战。本文将深入探讨在线教育…

【01】Istio-1.17 部署

1.1 部署Istio控制平面 部署方法 istioctl istio的专用管理工具,支持定制控制平面和数据平面通过命令行的选项支持完整的IstioOperator API命令行各选项可用于单独设置,以及接收包含IstioOperator自定义资源(CR)的yaml文件 Istio Operator Istio相关的自…

linux 安装 mini conda,linux下安装 Miniconda

下载地址 https://docs.conda.io/projects/miniconda/en/latest/index.html 安装conda mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda.sh -b -u -p ~/mini…

数据结构上机实验——图的实现(以无向邻接表为例)、图的深度优先搜索(DFS)、图的广度优先搜索(BFS)

文章目录 数据结构上机实验1.要求2.图的实现(以无向邻接表为例)2.1创建图2.1.1定义图的顶点、边及类定义2.1.2创建无向图和查找2.1.3插入边2.1.4打印函数 2.2图的深度优先搜索(DFS)2.3图的广度优先搜索(BFS&#xff09…

C/C++ #define与编译器的预处理

文章目录 预处理#define新版本特性旧版本特性#define除了定义明示常量的其他用途 #define的组成#define本身:预处理指令宏替换列表或替换体宏展开 参考资料 预处理 在预处理之前,编译器必须对该程序进行一些翻译处理。首先,编译器 把源代码中…

WampServer下载安装并结合内网穿透实现本地服务的公网访问

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站,…

【Kettle实战】数据分批处理及参数化传递子作业任务

对于大表操作,本来离线数据需要分批处理,刚开始只会用具体日期去做,通过复制多分转换和作业来处理。当日期范围大了后,这是个苦力活儿,kettle里面有参数化传递功能,多动手实操,懂得灵活变通自然…

宝塔开心版hostcli的广告去除

首先感谢hostcli把宝塔7.6剥离了,直接安装我这里是缺少pyenv的包。 直接进入正题吧。 定位到页面左下方的广告位于 /www/server/panel/BTPanel/templates/default/layout.html “退出”按钮下方有条线开始去掉 去掉之前的忘了截图了,就这样吧&#xff…

力扣每日一道系列 --- LeetCode 160. 相交链表

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构探索 ✅LeetCode每日一道 🌅 有航道的人,再渺小也不会迷途。 文章目录 LeetCode 160. 相交链表 思路: 首先计算两个链表的长度,然后判…

日本it培训班,如何选择靠谱的赴日IT培训班?

随着科技的发展,信息技术行业在全球范围内迅速发展,并呈现出蓬勃的发展态势,在日本,IT行业也成为一种极为热门的职业选择。日本专门学校在这个领域内培养了许多IT从业者,成为了众多IT公司的培养基地。如果你对IT产业感…

【前端异常】JavaScript错误处理:分析 Uncaught(in promise) error

这里写目录标题 一、Promise是什么二、什么是 Uncaught(in promise) error三、解决方案3.1 使用catch方法处理Promise的错误3.2 使用 async/await 处理Promise的错误3.3 全局异常处理 四、结论 在开发过程中,JavaScript的错误处理是一个老生常谈的话题。当应用程序发…

高效筛选的秘密武器:JVS智能BI的‘and’与‘or’逻辑

在这个信息爆炸的时代,数据被誉为新时代的黄金和石油,蕴含着无尽的价值和潜力。然而,随着数据的爆炸式增长,如何高效、准确地从海量数据中提取出真正有价值的信息,成为摆在我们面前的一大挑战。我们需要用数据筛选工具…

虚拟仪器软件结构VISA

1、什么是VISA VISA是虚拟仪器软件结构(Virtual Instrument Software Architectuere)的简称,是由VXI plug & play系统联盟所统一制定的I/O接口软件标准及其相关规范的总称。一般称这个I/O函数库为VISA库(用于仪器编程的标准I/O函数库)。…

链动2+1模式系统开发之区域代理深度解析

区域代理的保护机制:在链动商城系统里设定的代理有唯一性,每个省只有一个省代,每个市只有一个市代,每个区县只有一个区县代。这样也是保护每个代理的收益权益。 区域代理包含的权益类别:购物奖励折扣;区域实…

OpenAI DALL·E 3文生图模型技术揭秘(建议收藏)

欢迎来到魔法宝库,传递AIGC的前沿知识,做有格调的分享❗ 喜欢的话记得点个关注吧! DALLE 3是OpenAI发布的一款文生成图AI系统,它无缝接入ChatGPT,通过接受文本提示作为输入,生成相应的图像作为输出。先来看…

字典管理怎么使用,vue3项目使用若依的的字典管理模块

若依框架数据字典的使用_若依数据字典_哈哈水水水水的博客-CSDN博客 【精选】关于数据字典的理解与设计_数据字典怎么设计-CSDN博客 若依的字典值如何使用(超详细图文教程)_若依字典管理_丿BAIKAL巛的博客-CSDN博客 Vue3组合式API:getCurr…