基于MXNET实现的年龄性别识别
年龄性别识别,基于 insightface 功能模块开发的,支持多张人脸同时检测和识别。
年龄性别识别,基于 insightface 功能模块开发的,支持多张人脸同时检测和识别。
本项目是 PaddlePaddle 2.0 动态图实现的 CRNN 文字识别模型,可支持长短不一的图片输入。CRNN 是一种端到端的识别模式,不需要通过分割图片即可完成图片中全部的文字识别。CRNN 的结构主要是 CNN+RNN+CTC,它们分别的作用是,使用深度 CNN,对输入图像提取特征,得到特征图。使用双向 RNN(BLSTM)对特征序列进行预测,对序列中的每个特征向量进行学习,并输出预测标签(真实值)分布。使用 CTC Loss,把从循环层获取的一系列标签分布转换成最终的标签序列。
这个模型类型 CRNN,前面使用卷积层提前图像特征,后面用一个 GRU,他是 LSTM 的变种,最后的全连接层,输出的大小为词汇表 +1,因为还有一个空格字符,这个是 CTC 需要的。
MTCNN,Multi-task convolutional neural network(多任务卷积神经网络),将人脸区域检测与人脸关键点检测放在了一起,总体可分为 P-Net、R-Net、和 O-Net 三层网络结构。它是 2016 年中国科学院深圳研究院提出的用于人脸检测任务的多任务神经网络模型,该模型主要采用了三个级联的网络,采用候选框加分类器的思想,进行快速高效的人脸检测。这三个级联的网络分别是快速生成候选窗口的 P-Net、进行高精度候选窗口过滤选择的 R-Net 和生成最终边界框与人脸关键点的 O-Net。和很多处理图像问题的卷积神经网络模型,该模型也用到了图像金字塔、边框回归、非最大值抑制等技术。
TNN:由腾讯优图实验室打造,移动端高性能、轻量级推理框架,同时拥有跨平台、高性能、模型压缩、代码裁剪等众多突出优势。TNN 框架在原有 Rapidnet、ncnn 框架的基础上进一步加强了移动端设备的支持以及性能优化,同时也借鉴了业界主流开源框架高性能和良好拓展性的优点。
MNN 是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN 已经在阿里巴巴的手机淘宝、手机天猫、优酷等 20 多个 App 中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT 等场景下也有若干应用。
下面就介绍如何使用 MNN 在 Android 设备上实现图像分类。
然后开始编写人脸识别和人脸注册工具类,使用 insightface.app.FaceAnalysis()
可以获取模型对象,这里包含了三个模型,首先是人脸检测模型,然后是人脸特征提取模型,和最后的性别年龄识别模型。使用 model.prepare()
可以配置 ctx_id
指定使用哪一块 GPU,如果是负数则是使用 CPU 执行预测,nms
配置的是人脸检测的阈值。load_faces()
函数是加载人脸库中的人脸,用于之后的人脸识别对比。
PP-YOLO 是 PaddleDetection 优化和改进的 YOLOv3 的模型,其精度(COCO 数据集 mAP)和推理速度均优于 YOLOv4 模型,PP-YOLO 在 COCO test-dev2017 数据集上精度达到 45.9%,在单卡 V100 上 FP32 推理速度为 72.9 FPS, V100 上开启 TensorRT 下 FP16 推理速度为 155.6 FPS。
Paddle Lite 是飞桨基于 Paddle Mobile 全新升级推出的端侧推理引擎,在多硬件、多平台以及硬件混合调度的支持上更加完备,为包括手机在内的端侧场景的 AI 应用提供高效轻量的推理能力,有效解决手机算力和内存限制等问题,致力于推动 AI 应用更广泛的落地。
MASR 使用的是门控卷积神经网络(Gated Convolutional Network),网络结构类似于 Facebook 在 2016 年提出的 Wav2letter,只使用卷积神经网络(CNN)实现的语音识别。但是使用的激活函数不是 ReLU
或者是 HardTanh
,而是 GLU
(门控线性单元)。因此称作门控卷积网络。根据我的实验,使用 GLU
的收敛速度比 HardTanh
要快。
本教程是教程是介绍如何使用 Tensorflow 实现的 MTCNN 和 MobileFaceNet 实现的人脸识别,并不介绍如何训练模型。关于如何训练 MTCNN 和 MobileFaceNet,请阅读这两篇教程 MTCNN-Tensorflow 和 MobileFaceNet_TF ,这两个模型都是比较轻量的模型,所以就算这两个模型在 CPU 环境下也有比较好的预测速度,众所周知,笔者比较喜欢轻量级的模型,如何让我从准确率和预测速度上选择,我会更倾向于速度,因本人主要是研究深度学习在移动设备等嵌入式设备上的的部署。好了,下面就来介绍如何实现这两个模型实现三种人脸识别,使用路径进行人脸注册和人脸识别,使用摄像头实现人脸注册和人脸识别,通过 HTTP 实现人脸注册和人脸识别。
本项目是基于 VGG-Speaker-Recognition 开发的,本项目主要是用于声纹识别,也有人称为说话人识别。本项目包括了自定义数据集的训练,声纹对比,和声纹识别。
今天来水一片文章,基于开源的 Pyramidbox 大规模人脸检测编写的 PaddlePaddle 教程,为了方便训练预测,本教程做了一定的修改。这个模型虽然大,但是符合大规模人群中也可以准确地检测到人脸,就是遮挡比较严重也能正确检测。
PyramidBox 是一种基于 SSD 的单阶段人脸检测器,它利用上下文信息解决困难人脸的检测问题。如下图所示,PyramidBox 在六个尺度的特征图上进行不同层级的预测。该工作主要包括以下模块:LFPN、Pyramid Anchors、CPM、Data-anchor-sampling。
这些年来,ML 的使用正日益增加。ML 为他们带来的一系列机会给企业留下了深刻的印象。但是,由于过程的持续时间长且复杂,他们仍在努力部署 ML 模型。
创建预测模型时,重要的是要测量准确性,以便能够清楚地表述模型的质量。本文讨论了在测量这些精度值时常犯的两个错误。
循环神经网络(RNN) 是一类神经网络,其中节点之间的连接形成沿着时间序列的有向图的。这使其能够表现出时间动态行为,使其非常适合时间序列分析,语音识别,语法学习,文字构成等。
CrowdNet 模型是 2016 年提出的人流密度估计模型,论文为《CrowdNet: A Deep Convolutional Network for DenseCrowd Counting》,CrowdNet 模型主要有深层卷积神经网络和浅层卷积神经组成,通过输入原始图像和高斯滤波器得到的密度图进行训练,最终得到的模型估计图像中的行人的数量。当然这不仅仅可以用于人流密度估计,理论上其他的动物等等的密度估计应该也可以。
本项目是一个简单的图像分类应用程序,演示了如何使用 PyTorch Android API。此应用程序在静态图像上运行 TorchScript 序列化的 TorchVision 预训练的 resnet18 模型,该模型作为 Android 资产打包在应用程序内部。
Pytorch 迁移学习。在实践中,很少有人从头开始训练整个卷积网络(使用随机初始化),因为拥有足够大小的数据集相对很少。取而代之的是,通常在非常大的数据集上对 ConvNet 进行预训练(例如 ImageNet,其中包含 120 万个图像,具有 1000 个类别),然后将 ConvNet 用作初始化或固定特征提取器以完成感兴趣的任务。