本包说明:

  • 本包原名imageMarket,因为开始加入自然语言模块,所以之后更名为easyAi
  • 本包对物体在图像中进行训练及识别,切割,定位的轻量级,面向小白的框架,功能在逐渐扩展中
  • 本包对中文输入语句,对输入语句的类别进行分类,功能在逐渐扩展中
  • 若有想扩充的功能请进群提意见,若是通用场景我会陆续补充,技术交流群:561433236

详细视频教程地址:

  • 视频教程地址:https://www.bilibili.com/video/av89134035

测试素材下载

链接:https://pan.baidu.com/s/1Vzwn3iMPBI-FAXBDrCSglg
密码:7juj

框架效果演示结果:

  • 因为是框架没有图像化界面,演示结果就是控制台输出的数据,只能用视频展示,想看演示结果请看教学视频

控制台输出演示

  • 演示都是输出结果,详情请看具体视频教程,上有链接,这里就是展示一下控制台输出截图。
  • 单物体识别效果:点击查看
  • 多物体识别效果:点击查看
  • 中文语言分类效果:点击查看

目前拥有的功能是

  • 对单张图片单物体进行识别
  • 对单张图片多物体进行识别与定位
  • 对中文语言进行分类语义识别,判断用户说话的语义是什么,要做什么
  • 若有想扩充的功能请进群提意见,若是通用场景我会陆续补充,技术交流群:561433236

目的是

  • 低硬件成本,CPU可快速学习运行,面向jAVA开发的程序员,经过简单API调用就可实现物体在图像中的识别,定位及中文语言分类等功能
  • 努力为中小企业提供AI场景解决技术方案
  • 技术交流群:561433236

特点是

入手门槛低,简单配置,快速上手

为什么做这个包

  • 低门槛化: 现在随着人工智能技术的兴起,很多场景需要开发人员添加相应的功能,但是在二三线城市算法人才匮乏。 并且大多是JAVA开发程序员,业务做的更多,因为作者本人就是三线城市程序员,所以深知这一点。 所以我本人认为需要一款部署简单,不需要学习任何算法知识, 只通过最简单的API调用,就可以实现部分人工智能应用,并面向覆盖面最广的JAVA程序员使用的,且 能满足大部分AI业务场景实现的技术包。
  • 面向用户:广大没接触过算法知识,人才相对匮乏的二三线JAVA业务开发程序员,实现人工智能应用
  • 部署简单: 本包所有底层函数及数学库都是作者JAVA手写,不依赖任何第三方库,所以开发者只需要将本包下载到本地后,打成JAR包 引入到自己的POM文件中,就可以独立使用所有功能。
  • 功能还在扩展: 本包现在的功能还在逐步扩展中
  • 抛错捕获暂时还没有做全,若有抛错请进群交流:561433236,我来做一下错误定位

HELLO WORLD说明:

  • 以下为最简API文档,所有非必设参数都使用本引擎默认值
  • 要注意的是使用最简API,及参数默认值准确度远不能达到最佳状态

图像学习部分最简API 说明:

单物体图像识别部分最简API 说明:

物体图像识别服务启动初始化API 说明:

自然语言分类最简API 说明:

神经网络最简API说明

随机森林最简API说明

如何提升精准度

  • 将模板类设置为不忽略精度

使用TempleConfig()有参构造,第一个参数目前依然固定传false(因为有功能还没完成),第二个参数是一个布尔值是否忽略精度。
众所周知JAVA计算浮点是有精度损失的,如果选择true则使用大数计算类即无精度损失(默认为FALSE),但是这是以速度变慢十倍以上为代价的。
忽略精度和使用精度准确度上差距,平均在5-6个百分点之间,所以用户按照自己的需求来判断是否使用精度计算。

优点:准确度提升5-6个百分点,配合DNN分类器可达99%以上的准确率

缺点:运算速度变慢十倍以上,从百毫秒变为一至两秒

  • 根据业务情景选择使用分类器

在TempleConfig类调用init()方法前选择使用的分类器setClassifier()

目前easyAi提供三种分类器,即用户选择一种参数设置进配置模板类

这三种分类器的特点

  1. LVQ:若用户训练图片量较少,比如一个种类只有一两百张图片,则使用此分类器达到当前条件下最大识别成功率
  2. VAvg:若用户训练图片较少,同时分类数量也很少,比如只训练两三种物体识别,则VAvg达到当前最大识别成功率
  3. DNN:若用户训练图片较多,每种分类1500张训练图片,则使用此分类器,准确率98%+。
  4. 若不设置分类器,则框架默认使用VAvg分类器

使用DNN的话,API略有区别

大家可以看到如果使用DNN,在一阶段学习和二阶段学习之间多了一段代码即:

  • 增加DNN神经网络深度

若不设置默认深度为2,设置的深度越深则意味着准确率也越高,但同时也意味着你需要更多的训练图片去训练
增加一层深度,训练图片的数量至少乘以3,否则准确度不仅不会增加,反而会下降

优点:更深的深度准确率可以无限接近100%,我们只要训练量足够大,我们就可以更深,越深越无敌

缺点:增加深度意味着成几何倍数提升的训练量,同时也意味着过拟合的风险

  • 修改可调参数

什么样的图片会严重影响准确率

  • 训练图片或者识别图片有,比较大片的遮盖,暗光,阴影,或者使图片模糊的情况,识别和训练都会有严重的干扰
  • 训练图片要求会比较高,要求若物体无背景则扣干净,有背景的话使用统一背景不要变动,不要一个训练一个物体有很多种背景
  • 训练物体图片若有背景最好垫张白纸,纯白和纯色的背景干扰度最小,纯白最优
  • 识别图片的拍摄设备最好有补光灯,不要让拍摄物体有大片阴暗。除非你同时也训练阴暗图片,当然那样的话训练量太大不推荐,也没必要
  • 若使用定位与多物体识别功能,请将训练物体的图片背景扣干净,或保证RGB纯白色号背景即0XFFFFFF
  • 某两种物体的图片太过相似即长的几乎一模一样,区别点特别小或者微弱,识别不出来,就好比同卵双胞胎你也很难做出区分

常见抛错

  • error:Wrong size setting of image in templateConfig
  • 原因是模版配置类图片宽高设置相差太大 templeConfig.init(StudyPattern.Accuracy_Pattern, true, width, height, 1);

最终说明

  • TempleConfig():配置模版类,一定要静态在内存中长期持有,检测的时候不要每次都NEW, 一直就使用一个配置类就可以了。
  • Operation():运算类,除了学习可以使用一个以外,用户每检测一次都要NEW一次。 因为学习是单线程无所谓,而检测是多线程,如果使用一个运算类,可能会造成线程安全问题

精准模式和速度模式的优劣

  • 速度模式学习很快,但是检测速度慢,双核i3检测单张图片(1200万像素)单物体检测速度约800ms. 学习1200万像素的照片物体,1000张需耗时1-2小时。
  • 精准模式学习很慢,但是检测速度快,双核i3检测单张图片(1200万像素)单物体检测速度约100ms. 学习1200万像素的照片物体,1000张需耗时5-7个小时。

本包为性能优化而对AI算法的修改

  • 本包的自然语言是通过内置分词器进行语句分词,然后再通过不同分词的时序进行编号成离散特征,最后进入随机森林分类
  • 本包对图像AI算法进行了修改,为应对CPU部署。
  • 卷积层不再使用权重做最终输出,而是将特征矩阵作出明显分层的结果。
  • 卷积神经网络后的全连接层直接替换成了LVQ算法进行特征向量量化学习聚类,通过卷积结果与LVQ原型向量欧式距离来进行判定。
  • 物体的边框检测通过卷积后的特征向量进行多元线性回归获得,检测边框的候选区并没有使用图像分割(cpu对图像分割算法真是超慢), 而是通过Frame类让用户自定义先验图框大小和先验图框每次移动的检测步长,然后再通过多次检测的IOU来确定是否为同一物体。
  • 所以添加定位模式,用户要确定Frame的大小和步长,来替代基于图像分割的候选区推荐算法。
  • 速度模式是使用固定的边缘算子进行多次卷积核,然后使用BP的多层神经网络进行强行拟合给出的结果(它之所以学习快,就是因为速度模式学习的是 全连接层的权重及阈值,而没有对卷积核进行学习)
  • 本包检测使用的是灰度单通道,即对RGB进行降纬变成灰度图像来进行检测(RGB三通道都算的话,CPU有些吃不住)。
  • 若使用本包还有疑问可自行看测试包内的HelloWorld测试案例类,提出问题

AI-人工智能 easyAi开发技术相关推荐

  1. ai人工智能python开发_Python才是人工智能AI的首选编程语言,你值得拥有……

    在所有编程语言里,Python并不算萌新,从1991年发布第一个版本,至今已经快30年了. 最近几年,随着人工智能概念的火爆,Python迅速升温,成为众多AI从业者的首选语言. 根据数据平台 Kag ...

  2. AI 入行那些事儿(13)人工智能的三类技术岗位

    2021 巨献 -- 系列文章<AI 入行那些事儿>,为您讲述: 人工智能的基础原理.发展历程.当前应用 成为 AI 技术人员所需的入门技能和学习途径 以及求职.面试的全过程 人工智能技术 ...

  3. AI人工智能实践技术

    郁磊[副教授] :长期从事Python.Matlab机器学习及深度学习等研究工作,具备良好的数学及信号处理基础,熟悉如神经网络.支持向量机.决策树.随机森林等,以及群优 化算法,如遗传算法.蚁群算法. ...

  4. (不定期更新)《人工智能AI资讯》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+人工智能+AlphaGo+神经网络+深度学习+机器学习+自动驾驶+图像识别+立钻哥哥+==)

    <人工智能AI资讯> 人工智能(Artificial Intelligence) 人工智能简称AI,是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学. ...

  5. 基于“数字孪生”和YoLoV5的AI药物开发(技术理论实践部分)

            阿尔茨海默病已经是威胁老年人健康最严重的疾病之一.如今我国正处在人口老龄化上升期,预防和治愈它是当下棘手问题.所以我团队基于"数字孪生"模拟大脑电场,用YoLoV5 ...

  6. 【AI 人工智能】大型语言模型的实现技术原理与应用

    文章目录 大型语言模型的实现技术原理与应用 大模型发展历史 1.大模型的起源 2.代表性大模型 3.大模型背后的关键技术 4.大模型的影响 5.展望未来 技术原理及概念 一.概述 二.大型预训练语言模 ...

  7. 产品读书《AI人工智能:发展简史+技术案例+商业应用》

    读后总结: 作为AI产品经理入门书籍,本书算不上深入,但是的确是从多个维度为初入AI领域的小白绘制了大概的框图,揭秘人工智能的发展史.技术状况.产品案例.盈利模式.因此奥厂家.实战应用等方面,特别是人 ...

  8. ai人工智能开发_如何以及为什么将AI整合到Web开发中

    ai人工智能开发 Top tech industry giants are leveraging AI technology in multiple ways. Companies like Amaz ...

  9. 《AI人工智能的未来》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+机器学习+人机交互+计算机视觉+生物特征识别+立钻哥哥+==)

    <AI人工智能的未来> <AI人工智能的未来> 版本 作者 参与者 完成日期 备注 YanlzAI_Future_V01_1.0 严立钻 2020.01.09 ##<AI ...

最新文章

  1. HDU 2157 How many ways?? 矩阵
  2. 百度网络监控实战:NetRadar横空出世(上)
  3. rxjava获取异步请求的结果_我为什么不再推荐用 RxJava
  4. hdu-4704 sum(费马小定理)
  5. python loads_python dumps和loads区别详解
  6. 监督学习 | ID3 决策树原理及Python实现
  7. 【转载】别了,摩托罗拉(十一):小高尔文“新政”
  8. 使用win7超级终端连接华为交换机并配置端口镜像
  9. delphi源码分析
  10. PMP课程笔记:第9章 项目资源管理
  11. 互联网人必看的免费引流方法:十八种免费引流小技巧
  12. python数据可视化常用工具推荐
  13. Android反射系统截图Api
  14. linux 批量监控软件,Linux/Unix/Windows批量管理监控服务器软件
  15. 电信网通证实台湾地震影响内地访问国际网站(12月27日)
  16. 数组(Arry)几个常用方法的详解
  17. 杜邦分析法拆解三种商业模式
  18. MySQL limit 1,1的含义
  19. MySQL最佳基友之PHP入坑指南—白俊遥
  20. python怎么取小数点_Python如何取小数点位数

热门文章

  1. 如何才能成为一名优秀的设计师?
  2. 软件工程 软件质量模型(ISO/IEC 9126)
  3. midl会议_医学图像分析相关的会议
  4. mybatis sql 改写
  5. 海洋测绘各种数据考点
  6. linux 深度定制,基于ubuntu发行版的安装界面的深度定制过程
  7. XP sp3 安装Step7 V5.5和WinCC V7.0记录(仅用于个人)
  8. 趋势里的“生意经”,抖音电商服饰行业如何引爆春夏新品?
  9. POJ 1463 入门树dp Strategic game
  10. Deepin 使用教程:前言