夜雨飘零 标签

基于PaddlePaddle 2.0动态图实现的CRNN文字识别模型

  |   0 评论   |   0 浏览   |   夜雨飘零

本项目是PaddlePaddle 2.0动态图实现的CRNN文字识别模型,可支持长短不一的图片输入。CRNN是一种端到端的识别模式,不需要通过分割图片即可完成图片中全部的文字识别。CRNN的结构主要是CNN+RNN+CTC,它们分别的作用是,使用深度CNN,对输入图像提取特征,得到特征图。使用双向RNN(BLSTM)对特征序列进行预测,对序列中的每个特征向量进行学习,并输出预测标签(真实值)分布。使用 CTC Loss,把从循环层获取的一系列标签分布转换成最终的标签序列。

使用MTCNN实现人脸检测

  |   0 评论   |   0 浏览   |   夜雨飘零

MTCNN,Multi-task convolutional neural network(多任务卷积神经网络),将人脸区域检测与人脸关键点检测放在了一起,总体可分为P-Net、R-Net、和O-Net三层网络结构。它是2016年中国科学院深圳研究院提出的用于人脸检测任务的多任务神经网络模型,该模型主要采用了三个级联的网络,采用候选框加分类器的思想,进行快速高效的人脸检测。这三个级联的网络分别是快速生成候选窗口的P-Net、进行高精度候选窗口过滤选择的R-Net和生成最终边界框与人脸关键点的O-Net。和很多处理图像问题的卷积神经网络模型,该模型也用到了图像金字塔、边框回归、非最大值抑制等技术。

PPASR语音识别(入门级)

  |   0 评论   |   0 浏览   |   夜雨飘零

在数据预处理方便,本项目主要是将音频执行梅尔频率倒谱系数(MFCCs)处理,然后在使用出来的数据进行训练,在读取音频时,使用 librosa.load(wav_path, sr=16000)函数读取音频文件,再使用 librosa.feature.mfcc()执行数据处理。MFCC全称梅尔频率倒谱系数。梅尔频率是基于人耳听觉特性提出来的, 它与Hz频率成非线性对应关系。梅尔频率倒谱系数(MFCC)则是利用它们之间的这种关系,计算得到的Hz频谱特征,主要计算方式分别是预加重,分帧,加窗,快速傅里叶变换(FFT),梅尔滤波器组,离散余弦变换(DCT),最后提取语音数据特征和降低运算维度。本项目使用的全部音频的采样率都是16000Hz,如果其他采样率的音频都需要转为16000Hz,create_manifest.py程序也提供了把音频转为16000Hz。

在Android中使用Netty-Socket互相发送图片和文字

  |   0 评论   |   0 浏览   |   夜雨飘零

在Android中使用Netty-Socket互相发送图片和文字,

首先是服务端,服务端的应用在server下,其中最重要的是 NettyServerUtil.java,这里包含了服务的启动和发送数据,这数据包括文字和图像。

这段代码是启动Netty服务的,其中非常重要的是 ch.pipeline().addLast(new ByteArrayEncoder());ch.pipeline().addLast(new ByteArrayDecoder());,因为我们要传输的都是基于byte[] 的,同时还要 LineBasedFrameDecoder设置最大包的长度。

Android使用CameraX实现相机快速实现对焦和放大缩小

  |   0 评论   |   0 浏览   |   夜雨飘零

Android使用CameraX实现相机快速实现对焦和放大缩小,本教程介绍如何使用CameraX实现相机点击对焦和放大缩小,单击对焦指定位置,使用双指放大缩小图像。下面是页面代码,使用PreviewView预览相机图像,然后使用FocusImageView自定义View来显示对焦框。CameraXPreviewViewTouchListener.kt点监听事件,用于监听屏幕的点击监听动作。

Android使用CameraX快速预览和拍照

  |   0 评论   |   0 浏览   |   夜雨飘零

CameraX是谷歌提供的相机框架,这个框架非常强大,可以实现很方便点击对焦,放大缩小,保存优质的图像等等。最重要的是 androidx.camera.view.PreviewView控件,这个可以实现预览图像,点击监听事件等操作都可以在这里完成。不过这里只介绍预览图像和拍照保存。startCamera()方法可以实现预览操作,代码都有注释。CameraX提供了 imageCapture.takePicture()接口用于保存图像。

Android使用CameraKit快速使用相机

  |   0 评论   |   0 浏览   |   夜雨飘零

CameraKit框架是一款极其简单的Android相机框架,代码量比使用原生的少很多。本章教程我们就来使用CameraKit搭建一个简单的相机,并实现点击保存图像。

java代码就简单很多了,其中要在Activity生命周期中也添加CameraKitView的什么周期。CameraKit也提供了动态权限申请接口,使用 cameraKitView.onRequestPermissionsResult()接口实现动态权限申请,这样就完成了相机预览功能。拍照保存也很简单,使用 cameraKitView.captureImage()就可以保存图像到本地了。这也太简单了。

基于TNN在Android手机上实现图像分类

  |   0 评论   |   0 浏览   |   夜雨飘零

TNN:由腾讯优图实验室打造,移动端高性能、轻量级推理框架,同时拥有跨平台、高性能、模型压缩、代码裁剪等众多突出优势。TNN框架在原有Rapidnet、ncnn框架的基础上进一步加强了移动端设备的支持以及性能优化,同时也借鉴了业界主流开源框架高性能和良好拓展性的优点。

基于MNN在Android手机上实现图像分类

  |   0 评论   |   0 浏览   |   夜雨飘零

MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。

下面就介绍如何使用MNN在Android设备上实现图像分类。

一行代码Android上实现人脸检测、关键点检测、口罩检测

  |   0 评论   |   0 浏览   |   夜雨飘零

一行代码实现人脸检测,人脸关键点检测和戴口罩检测。

本项目是使用Paddle Lite 的C++实现的人脸检测,人脸关键点检测和戴口罩检测,并将编译好的动态库和静态库部署在Android应用上,在Android设备上实现人脸检测,人脸关键点检测和戴口罩检测,所以本应不会使用到C++开发,可以只使用笔者提供的JNI接口实现这些功能。在 ai这个module是笔者在开发时使用到的,读者在使用这个项目时,完全可以删除掉,如果是看C++实现,也可以看这个module的源码。

基于insightface实现的人脸识别和人脸注册

  |   0 评论   |   0 浏览   |   夜雨飘零

然后开始编写人脸识别和人脸注册工具类,使用 insightface.app.FaceAnalysis()可以获取模型对象,这里包含了三个模型,首先是人脸检测模型,然后是人脸特征提取模型,和最后的性别年龄识别模型。使用 model.prepare()可以配置 ctx_id指定使用哪一块GPU,如果是负数则是使用CPU执行预测,nms配置的是人脸检测的阈值。load_faces()函数是加载人脸库中的人脸,用于之后的人脸识别对比。

Android基于图像语义分割实现人物背景更换

  |   0 评论   |   0 浏览   |   夜雨飘零

本教程是通过PaddlePaddle的PaddleSeg实现的,该开源库的地址为:http://github.com/PaddlPaddle/PaddleSeg ,使用开源库提供的预训练模型实现人物的图像语义分割,最终部署到Android应用上。关于如何在Android应用上使用PaddlePaddle模型,可以参考笔者的这篇文章《基于Paddle Lite在Android手机上实现图像分类》

本教程开源代码地址:https://github.com/yeyupiaoling/ChangeHumanBackground

基于PaddlePaddle实现的目标检测模型PP-YOLO

  |   1 评论   |   0 浏览   |   夜雨飘零

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。

本教程源码地址:https://github.com/yeyupiaoling/PP-YOLO

基于Paddle Lite在Android手机上实现图像分类

  |   1 评论   |   0 浏览   |   夜雨飘零

Paddle Lite是飞桨基于Paddle Mobile全新升级推出的端侧推理引擎,在多硬件、多平台以及硬件混合调度的支持上更加完备,为包括手机在内的端侧场景的AI应用提供高效轻量的推理能力,有效解决手机算力和内存限制等问题,致力于推动AI应用更广泛的落地。

基于Pytorch实现的MASR中文语音识别

  |   0 评论   |   0 浏览   |   夜雨飘零

MASR使用的是门控卷积神经网络(Gated Convolutional Network),网络结构类似于Facebook在2016年提出的Wav2letter,只使用卷积神经网络(CNN)实现的语音识别。但是使用的激活函数不是 ReLU或者是 HardTanh,而是 GLU(门控线性单元)。因此称作门控卷积网络。根据我的实验,使用 GLU的收敛速度比 HardTanh要快。

  • 以下用字错误率CER来衡量模型的表现,CER = 编辑距离 / 句子长度,越低越好,大致可以理解为 1 - CER 就是识别准确率。

基于Tensorflow2 Lite在Android手机上实现图像分类

  |   2 评论   |   0 浏览   |   夜雨飘零

Tensorflow2之后,训练保存的模型也有所变化,基于Keras接口搭建的网络模型默认保存的模型是h5格式的,而之前的模型格式是pb。Tensorflow2的h5格式的模型转换成tflite格式模型非常方便。本教程就是介绍如何使用Tensorflow2的Keras接口训练分类模型并使用Tensorflow Lite部署到Android设备上。

基于MTCNN和MobileFaceNet实现的人脸识别

  |   0 评论   |   0 浏览   |   夜雨飘零

本教程是教程是介绍如何使用Tensorflow实现的MTCNN和MobileFaceNet实现的人脸识别,并不介绍如何训练模型。关于如何训练MTCNN和MobileFaceNet,请阅读这两篇教程 MTCNN-TensorflowMobileFaceNet_TF ,这两个模型都是比较轻量的模型,所以就算这两个模型在CPU环境下也有比较好的预测速度,众所周知,笔者比较喜欢轻量级的模型,如何让我从准确率和预测速度上选择,我会更倾向于速度,因本人主要是研究深度学习在移动设备等嵌入式设备上的的部署。好了,下面就来介绍如何实现这两个模型实现三种人脸识别,使用路径进行人脸注册和人脸识别,使用摄像头实现人脸注册和人脸识别,通过HTTP实现人脸注册和人脸识别。