YMIR-人脸检测-深度学习模型一站式开发

人脸检测-深度学习模型一站式开发

YMIR-人脸检测-深度学习模型一站式开发_第1张图片

随着社会经济的不断发展,对安全技术的要求也不断提高。生物识别技术是一种前景广阔的识别技术,有着识别准确率高、安全性强、识别速率高等优点一一而其中最受欢迎的技术之一即人脸识别技术。2022 年,人脸识别技术已经被部署在社会安防、安全交易、健康检测等生产生活活动的方方面面。深度学习人脸识别技术分为人脸检测、人脸识别和比对等多个任务。其中,人脸识别的任务目标的和通用的目标检测任务类似,就是对于给定的一张图片框选出具有人脸特征的区域。

为了得到一个能够进行检测的模型,需要进行数据处理、模型训练、数据挖掘、模型迭代、开发板部署等多种任务。通用的深度学习框架包括Tensorflow、Pytorch等——其灵活性强,却需要一定的基础。这次,我们则尝试使用一个更为方便的平台,YMIR,来进行人脸识别算法的一站式训练和部署。

YMIR-人脸检测-深度学习模型一站式开发_第2张图片

论文:[2111.10046v2] YMIR: A Rapid Data-centric Development Platform for Vision Applications (arxiv.org)

github仓库:ymir/README_zh-CN.md at master · IndustryEssentials/ymir (github.com)

操作说明:操作说明 · IndustryEssentials/ymir Wiki (github.com)

试用地址: http://ymir.intellif.com:12001/1

1. 新建项目

进行注册并登录后,可以进入到如图所示的界面。第一次进入,我们点击项目管理->创建项目进行项目的创建。

YMIR-人脸检测-深度学习模型一站式开发_第3张图片

YMIR-人脸检测-深度学习模型一站式开发_第4张图片

输入项目名称,填写任务中所包含的类别并点击创建项目即可。对于本项目,只涉及人脸的识别定位,因此类别填“脸”即可。

2. 数据集导入

点击数据集管理,选择添加数据集。填写数据集名称和添加类型。这里我们采用“本地导入不带标签数据集”+“手工标注”的形式。也可也采用导入公共数据集或带标签的数据集,但要注意标签必须整理成VOC格式。

YMIR-人脸检测-深度学习模型一站式开发_第5张图片

YMIR-人脸检测-深度学习模型一站式开发_第6张图片

注意数据集压缩包必须为zip,且内部一定要整理成如图要求的格式

YMIR-人脸检测-深度学习模型一站式开发_第7张图片

上传提交成功后如上图所示,请耐心等待数据集上传。

3. 数据集标注

YMIR-人脸检测-深度学习模型一站式开发_第8张图片

等待上传完毕后,显示信息如上。此时我们点击标注,进入下图的界面。

YMIR-人脸检测-深度学习模型一站式开发_第9张图片

选择标注的目标类别,然后即可前往标注平台LableFree标注。

YMIR-人脸检测-深度学习模型一站式开发_第10张图片

在标注平台注册账号后,点击刚刚在YMIR平台提交的任务。然后点击“去标注”,即可进入如下的标注界面。

YMIR-人脸检测-深度学习模型一站式开发_第11张图片

标注平台的使用比较简单,框选目标区域并指定对应类别即可。

要进入训练步骤,至少需要上传两个数据集,要么手动整理成VOC格式的标签,要么使用标注平台自行标注。对于人脸检测这种只有少数类别的任务,且所选数据集图片中的示例并不密集,因此我们选择手动标注。

4. 模型训练

依次选择训练镜像、训练数据集、训练目标、验证数据集。最后点击训练,即可提交训练任务。

例如,训练镜像这里选择ymir2.0.0-yolov7-cu111-tmi。训练数据集选择先前导入并标注的训练集,验证数据集同理。GPU个数和预训练模型是可选的,这里我们选择单卡训练并导入先前已经训练过的模型。

YMIR-人脸检测-深度学习模型一站式开发_第12张图片

另外,点击超参数配置还可以手动修改训练超参数,这里我们尝试将batch_size从16提升至64。

YMIR-人脸检测-深度学习模型一站式开发_第13张图片

YMIR-人脸检测-深度学习模型一站式开发_第14张图片

如图所示,在模型训练过程中,点击训练过程可以进入Tensorborad界面观察模型训练的可视化信息。包括loss, accuracy, mAP等指标的变化曲线,以及网络内部参数的可视化。Tensorborad的功能可参考TensorBoard | TensorFlow (google.cn),这里不做详细介绍。

YMIR-人脸检测-深度学习模型一站式开发_第15张图片

训练流程完成之后,可点击模型管理进入此界面,浏览生成的已训练模型。本次笔者共训练了两个模型,一个yolov5,batch_size为16,最终验证集mAP为92.74%;一个yolov7,btach_size为64,最终验证集mAP为42.87%。可以看出前一种配置对于这个任务更加合适。

YMIR-人脸检测-深度学习模型一站式开发_第16张图片

5. 数据挖掘

在训练集上的训练完成之后,可以再进行数据挖掘步骤,额外获取一些有潜在训练价值的图片,进而进一步提升模型精度。需要注意的是,获取到的图片一般是没有标签的,仍然需要进行手工标注。

YMIR-人脸检测-深度学习模型一站式开发_第17张图片

这里我们首先复制一个公共数据集生成V1,然后,再点击挖掘即可提交挖掘任务。稍等片刻,可以看到挖掘生成了50张有价值的图片,即图中V7。我们重复之前的步骤,前往标注平台进行标注即可。

YMIR-人脸检测-深度学习模型一站式开发_第18张图片

可以看到,相比于专门的人脸数据集(一般是大头照),通用的目标监测数据集(如:VOC、COCO)中人的全身照更多。因此,在通用数据集上进行挖掘,能够提升人脸检测的小目标识别率。

YMIR-人脸检测-深度学习模型一站式开发_第19张图片

标注完成后得到V8。这里我们采用挖掘得到的图片和原训练集合并的形式,勾选公共数据集的V8和先前上传的face_train的V2,点击批量合并以合并两个数据集。

YMIR-人脸检测-深度学习模型一站式开发_第20张图片

这里我们勾选在原数据集上生成新的版本,并选择数据重复时的处理模式为“采用更新的”。最后,点击确定。

YMIR-人脸检测-深度学习模型一站式开发_第21张图片

静候片刻后,得到face_train的V3版本,可以看到数据来源是合并。此时我们点击训练,即可使用合并后的数据集进行模型训练。

YMIR-人脸检测-深度学习模型一站式开发_第22张图片

这次我们选用先前mAP为92.74%的模型作为预训练模型,并选择对应的yolov5镜像,在此基础上继续微调。注意到此时数据集中存在23%的负样本,这是因为挖掘到的图片中有些并不包含目标类别(人脸)的示例,而是包含一些动物的脸,我们此时放弃对这种图片的标注,这些样本对于提高模型的鲁棒性也有帮助。

YMIR-人脸检测-深度学习模型一站式开发_第23张图片

静候片刻,可见在新训练集上训练得到的模型在原测试集上的mAP为92.77%,对比原来有少许提升。可见模型迭代的有效性。

YMIR-人脸检测-深度学习模型一站式开发_第24张图片

5. 模型推理

YMIR-人脸检测-深度学习模型一站式开发_第25张图片

紧接着4步中迭代得到的新模型,我们点击相应的验证按钮,即可进入如下的推理步骤。这里笔者上传了一张自己的照片,可见模型自动将人脸部分框选出来,置信度为74.60%,高于设置的阈值20%。模型的效果还是不错的。

YMIR-人脸检测-深度学习模型一站式开发_第26张图片

6. 算法发布

紧接着4步中迭代得到的新模型,我们点击相应的发布按钮,系统会提示正在发布,可移步至“我的算法”进行下一步操作。

YMIR-人脸检测-深度学习模型一站式开发_第27张图片

点击左侧导航栏“我的算法”,在右侧的操作一栏找到“发布到公共算法”,单击。

YMIR-人脸检测-深度学习模型一站式开发_第28张图片

填写如下信息,并点击发布按钮。

YMIR-人脸检测-深度学习模型一站式开发_第29张图片

发布后,即可在我的算法中查看已发布/待审核的算法。

YMIR-人脸检测-深度学习模型一站式开发_第30张图片

7. 部署到嵌入式开发板

未完待续

8. 小结

YMIR(You Mine In Recursion)是一个简化的模型开发产品,专注于AI SUITE开源系列中的数据集版本和模型迭代。相较于基于主流的深度学习框架,YMIR独树一帜地提供了GUI操作界面,这大大降低了非专业人士进行算法开发的难度,同时也缩短了专业人士进行开发的时间。对于想要完成毕业设计和课程作业的学生而言,或许是一个不错的选择。

ion)是一个简化的模型开发产品,专注于AI SUITE开源系列中的数据集版本和模型迭代。相较于基于主流的深度学习框架,YMIR独树一帜地提供了GUI操作界面,这大大降低了非专业人士进行算法开发的难度,同时也缩短了专业人士进行开发的时间。对于想要完成毕业设计和课程作业的学生而言,或许是一个不错的选择。

简单地使用过后,笔者也为使用YMIR进行开发的效率而感叹。那么接下来我个人比较关注的问题是,使用YMIR生成的模型,能否转换为通用深度学习框架支持的state_dict的形式?如果可以,那么在训练迭代产生的模型的基础之上,还能够应用一些剪枝、量化之类的加速算法,或者使用FPGA设计专门的硬件实现。如果这一过程也比较方便,那么我也会选择在我个人的毕业设计过程中借助YMIR平台。

你可能感兴趣的:(深度学习,人工智能)