开发环境

  • 数据标注:label studio :https://labelstud.io/
  • 模型训练:tensorflow 附完整的训练源码和数据
  • 部署开发:Android studio + tensorflow ...

端侧小模型开发总结

端侧小模型应用就是针对不以AI为卖点的互联网产品,所提出的带有AI概念的低成本方案。端侧小模型的生成方式有三种:

  • 1、依照大模型生成的路数,后续转化为端侧小模型。
  • 2、训练时,直接生成在客户端部署的端侧小模型。
  • 3、

不管是直接生成,还是间接转化,端侧小模型都是由开发框架产生的。因此在选择框架上,要考虑多平台支持。目前谷歌有TensorFlow Lite,Facebook 有 PyTorch Mobile,它们都支持客户端AI;Keras 作为 TensorFlow 中的高级 API。

选择模型

搞端侧小模型是为了解决很具体的业务需求,不用选最新的或所谓跑分最高的,要结合硬件环境,部署方便,技术栈等选最适合自己的,表现最好的。这就如同你家离单位1公里,你要选择通勤工具,雅阁和雅迪的性能差距不大,但是成本却明显不同。

现在很多成熟的方案可以选择,加上有Transformers库的存在,国外各大开源的方案都能相互转化,非常的透明友善,就看谁能快速高效低成本的解决问题;加上迁移学习的途径,很多的工程师掌握基本的原理后就可以快速上手进行工程化应用。

PyTorch:PyTorch 的未来可能会专注于增强其易用性和灵活性,使其对研究和开发更具吸引力。预期的进步包括更好地与云和边缘计算平台集成、改进对分布式训练的支持以及自然语言处理和计算机视觉等领域的进步。这些发展可以使 PyTorch 更适合那些寻求允许快速迭代和实验的框架的初学者。

TensorFlow:TensorFlow的发展轨迹预计将强调对生产环境的进一步优化。这包括模型部署的增强,尤其是边缘计算和移动设备方面的增强,以及大规模工业应用的性能和可扩展性的改进。TensorFlow 还可能专注于整合更先进的人工智能技术,例如强化学习和生成模型,这可能会影响初学者寻找适合学习和生产的综合框架。Keras 作为 TensorFlow 中的高级 API 的引入,以其用户友好的界面为初学者提供了一个更简单的入门点。

对于初学者来说,PyTorch 与 TensorFlow 之间的选择可能会受到这些未来趋势的影响。那些优先考虑易于学习且适合原型设计的框架的人可能会倾向于 PyTorch,而那些预见需要大规模、优化的生产模型的人可能更喜欢 TensorFlow。本文是在生产环境部署的移动端侧AI应用口罩识别,因此后文都是使用TensorFlow。

数据标注

请按照label studio官方网站说明本地部署好后,参考说明使用,只是一个标注的工具,你有其他的工具也可以用。

收集的数据一定要根据业务情况进行筛选处理,数据增强等操作,不然垃圾训练数据只会产出垃圾模型。

模型训练

模型训练工程中已经包含收集的部分训练数据,用来演示足够了,需要更多更精细的数据请自行收集 标注后

替换工程中的已有训练数据。

训练完成后转化为端侧App 能使用的模型格式 .tflite,更多细节参考文章最后附的源码

模型部署效果

模型训练完成后会导出一个tflite 格式的模型文件,恭喜你已经完成了50%+ 的工作。接下来你需要完成模型在移动端侧部署运行,借助tensorflow lite/mediapipe 能很好的完成部署运行

体验APK 下载

https://www.pgyer.com/mask_detection

下载完成后默认开启后置摄像头,你可以在电脑上打开几张戴口罩的人脸图看看是否正确识别,由于训练素材比较少,可能部分口罩不能识别的可以自行标注数据训练后再重新部署打包App 看看运行情况

GitHub 源码下载

https://github.com/AnyLifeZLB/MaskDetection

完整的训练数据托管在百度:链接: https://pan.baidu.com/s/1to2hKZ-wue3eJ5Cq3aUOTg 密码: re0i

解压后请打开train_image 文件夹

下一篇:FaceAI SDK接入源码

FaceAI SDK人脸识别接入源码 点击这里

References

  1. 2024最详细的AI框架对比指南—PyTorch与TensorFlow到底选谁?
  2. PyTorch、TensorFlow和Keras,深度學習的全面比較與選擇指南

超详细移动端侧AI口罩识别实现与部署(含源码)的更多相关文章

  1. 超详细的php用户注册页面填写信息完整实例(附源码)

    这篇文章主要介绍了一个超详细的php用户注册页面填写信息完整实例,内容包括邮箱自动匹配.密码强度验证以及防止表单重复等,小编特别喜欢这篇文章,推荐给大家. 注册页面是大多数网站必备的页面,所以很有必要 ...

  2. GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮 ...

  3. 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...

  4. 移动端触摸、点击事件优化(fastclick源码学习)

    移动端触摸.点击事件优化(fastclick源码学习) 最近在做一些微信移动端的页面,在此记录关于移动端触摸和点击事件的学习优化过程,主要内容围绕fastclick展开.fastclick githu ...

  5. 图书管理系统(Java实现,十个数据表,含源码、ER图,超详细报告解释,2020.7.11更新)

    图书管理系统数据库设计实验报告 文章目录 更新日志 1.概述 2.需求分析 2.1需要实现的功能 2.2业务流程图 2.2.1学生流程图 2.2.2管理员流程图 2.2.3超级管理员流程图 2.3功能 ...

  6. 【YOLOv5】手把手教你使用LabVIEW ONNX Runtime部署 TensorRT加速,实现YOLOv5实时物体识别(含源码)

    前言 上一篇博客给大家介绍了LabVIEW开放神经网络交互工具包[ONNX],今天我们就一起来看一下如何使用LabVIEW开放神经网络交互工具包实现TensorRT加速YOLOv5. 以下是YOLOv ...

  7. 手把手教你使用LabVIEW OpenCV dnn实现物体识别(Object Detection)含源码

    前言 今天和大家一起分享如何使用LabVIEW调用pb模型实现物体识别,本博客中使用的智能工具包可到主页置顶博客LabVIEW AI视觉工具包(非NI Vision)下载与安装教程中下载 一.物体识别 ...

  8. 【YOLOv5】LabVIEW+YOLOv5快速实现实时物体识别(Object Detection)含源码

    前言 前面我们给大家介绍了基于LabVIEW+YOLOv3/YOLOv4的物体识别(对象检测),今天接着上次的内容再来看看YOLOv5.本次主要是和大家分享使用LabVIEW快速实现yolov5的物体 ...

  9. 千呼万唤始出来!—— GG(高仿QQ)终于有移动端了!(技术原理、实现、源码)

    首先要感谢大家一直以来对于GG的关注和支持!GG的不断完善与大家的支持分不开! 从2013年最初的GG1.0,到后来陆续增加了网盘功能.远程协助功能.离线文件功能.群聊功能.语音聊天功能.视频聊天功能 ...

  10. GGTalk即时通讯系统(支持广域网)终于有移动端了!(技术原理、实现、源码)

    首先要感谢大家一直以来对于GGTalk即时通讯系统的关注和支持!GGTalk即时通讯系统的不断完善与大家的支持分不开! 从2013年最初的GG1.0开放源码以来,到后来陆续增加了网盘功能.远程协助功能 ...

随机推荐

  1. 解决SSH免密登录配置成功后不生效问题

    今天配置SSH免密登录时,使用 ssh-keygen 命令成功生成了公钥和私钥,并且也执行了 ssh-copy-id 机器地址 将公钥添加到了服务器的authorized_keys文件中.紧接着用 s ...

  2. Vetur can't find `tsconfig.json` or `jsconfig.json` in XXX

    vue界面启动项目 visual code报错 如下图,找到 Ignore Project Warning 前边打上对勾

  3. blip2代码解析

    请你作为一个代码翻译解释生成器,下面我会发送一个github链接给你,请你详细解析与介绍这个链接下代码 好的,请发送链接. https://github.com/huggingface/transfo ...

  4. WPFMediaKit --WPF项目中 调用摄像头拍照

    <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/200 ...

  5. 节点和IP节点和IP

    先说一下我们的IP分配和服务的规划信息 节点和IP 节点 IP ha01 11.53.103.50 ha02 11.53.103.49 ha03 11.53.103.48 ha04 11.53.103 ...

  6. w3cschool-MyBatis-Plus 插件

    https://www.w3cschool.cn/mybatis_plus/mybatis_plus-udwn3mgc.html MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具 ...

  7. 京东从 OpenStack 改用 Kubernetes 的始末

    构建集群的历史 物理机器的时代(2004年-2014年) 在2014年之前,我们公司的应用程序都部署在物理机器上.在物理机器时代,为了给即将上线的应用程序分配物理机器,我们平均需要等上一周的时间.由于 ...

  8. DCT实现水印嵌入与提取(带攻击)

    问题: 想要用DCT技术,在Matlib上实现水印的隐藏和提取(带GUI界面),且加上一些攻击(噪声.旋转.裁剪),以及用NC值评判! 流程 选择载体 [filename,pathname]=uige ...

  9. SQL server 更改计算机名后造成未找到或无法访问服务器解决方法

    默认的计算机名较长且不易辨识,我在更改完计算机名之后却发现每次登陆SQL server都需要更改计算机名并重启计算机,否则便会出现以下错误提示: 此时我们需要再次更改计算机名(最终你想给计算机起的名字 ...

  10. 载誉而归!天翼云荣获第23届中国IT用户满意度大会多项殊荣

    10月25日,2024第23届中国IT用户满意度大会暨首届工业产品满意度交流会在北京举行.现场揭晓"2024中国IT用户满意度征集结果",天翼云凭借领先的产品技术.完善的客户服务以 ...