|
java傻瓜ai框架图像内物体的识别,定位等图像ai服务,及自然语言分类处理服务
java傻瓜ai框架,无需任何算法知识,通过简单的api调用就可以实现 常用的图像内物体的识别,定位等图像ai服务,及自然语言分类处理服务。面向java开发程序员,不依赖任何第三方库,第三方接口,独立包。
软件说明:- 本软件对物体在图像中进行训练及识别,切割,定位的轻量级,面向小白的框架。
- 本软件对中文输入语句,对输入语句的类别进行分类,关键词抓取,词延伸,以及集成智能客服功能在逐渐扩展中
- 若有想扩充的功能请进微信群提意见,若是通用场景我会陆续补充,微信群信息在文档下方。
- 本软件永久免费商业使用,但作者已拥有本软件相关的知识产权,任何个人与集体不可擅自申请本软件内的技术与代码的知识产权。
详细视频教程地址:框架效果演示结果:- 因为是框架没有图像化界面,演示结果就是控制台输出的数据,只能用视频展示,想看演示结果请看教学视频
目前拥有的核心功能(若对您的学习或生产有帮助,请留下您的STAR)- 对图片中得物体进行识别。
- 对中文语言进行分类语义识别,判断用户说话的语义是什么,关键词抓取,以及要做什么
- 游戏内交互策略机器人
目前市场上的AI应用的问题- 高门槛: 现在随着人工智能技术的兴起,很多场景需要开发人员添加相应的功能,但是大多是JAVA开发程序员,JAVA却在AI领域的开源比较匮乏。 现在比较火的大模型的应用只能帮助人去提高工作效率,而不能帮助业务系统,去自定义用户自己的业务来内嵌进系统进而帮助业务系统的智能化。
- 高成本: 人工智能往往要求大算力,大训练样本,使得大多数中小企业和个人开发者自定义AI入手成本非常高昂。
AI要怎么解决- 百分之百Java代码编写,并且无任何依赖,开箱即用,对广大JAVA程序员排除掉任何环境配置依赖问题,做到最友善。
- 并不是对主流算法JAVA的无差别重新实现,而是根据应用场景对主流算法进行优化与魔改,让用户即便使用一台普通的电脑,就可开箱直接跑起来。并且保证普通服务器或个人电脑CPU下依然达到可用性能的流畅运行。 所以我的“easy”并不是只是指的简单,而是对算法进行了廉价,低成本方向的优化。如果我没有办法对某种算法做到廉价优化的算法实现。
- 只通过最简单的API调用,就可以实现部分人工智能应用,并面向覆盖面最广的JAVA程序员使用的,且能满足大部分AI业务场景实现的算法引擎。
- 部署简单: 本引擎所有底层函数及数学库都是作者JAVA手写,不依赖任何第三方库,所以开发者只需要将本包下载到本地后,打成JAR包 引入到自己的POM文件中,就可以独立使用所有功能。
- 功能还在扩展: 本项目现在的功能还在逐步扩展中
图像学习部分最简API 说明:
- ///////////////训练部分
- YoloConfig yoloConfig = new YoloConfig();//创建配置参数类
- //配置类内的配置参数,根据实际情况修改
- private int windowWidth = 90;//检测窗口宽
- private int windowHeight = 140;//检测窗口高
- private int typeNub = 10;//需要识别的种类数
- private int hiddenNerveNub = 16;//线性层隐层神经元数量
- private double lineStudy = 0.01;//线性层学习率
- private int kernelSize = 3;//卷积核尺寸
- private boolean showLog = false;//是否打印学习过程中的log
- private double convStudy = 0.01;//卷积层学习率
- private int enhance = 800;//训练样本过少时增强效果,如果有足够训练数据量,请将其设置为1
- private double iouTh = 0.05;//NMS合并框交并比阈值
- private double containIouTh = 0.15;//训练时是否包含样本判断交并比阈值
- FastYolo yolo = new FastYolo(yoloConfig); //初始化图像识别类
- List<YoloSample> data//目标标注类集合
- YoloSample data;//标注类
- //标注类属性
- private String locationURL;//标注图片的本地url
- private List<YoloBody> yoloBodies;//该图片的内部标注
- YoloBody yoloBody;//内部标注类
- //内部标注类属性
- private int x;//目标左上角x的值
- private int y;//目标左上角得y的值
- private int width;//目标的宽度
- private int height;//目标的高度
- private int typeID;//标注类别id
- //开始训练
- yolo.toStudy(data);
- //训练结束将模型写出
- YoloModel yoloModel = yolo.getModel();
- writeModel(JSON.toJSONString(yoloModel), "D:\\lesson/yoloModel.json");
- /////////////////////初始化部分(单例且只初始化一次)
- FastYolo yolo = new FastYolo(yoloConfig); //初始化图像识别类
- YoloModel yoloModel = readModelParameter();//从训练的模型中JSON反序列化读取模型
- yolo.insertModel(yoloModel);//识别类注入模型
- //////////////////////识别部分
- long eventID;//需要生成一个唯一线程id来保证并发时的线程安全问题,可直接用雪花算法id
- Picture picture = new Picture();//初始化图像解析类
- ThreeChannelMatrix th = picture.getThreeMatrix("D:\\lesson/number.png");//将图像解析为矩阵
- List<OutBox> list = yolo.look(th,eventID);//对该图像矩阵进行识别,并返回识别结果
- List<OutBox> list;//识别结果集合
- ////识别结果类
- OutBox outBox;
- private int x;//检测到物体在该图片中的横坐标
- private int y;//检测到物体在该图片中的纵坐标
- private int width;//检测到物体在该图片中的宽度
- private int height;//检测到物体在该图片中的高度
- private int typeID;//检测到物体在该图片中的类别id
[color=rgb(51, 102, 153) !important]复制代码
图像识别结果展示
通过给图片生成摘要id进行快速相似度对比
- //参数分别为:
- //第一个参数:threeChannelMatrix,图片矩阵(图片矩阵如何提取,上文有讲不在阐述)
- //第二个参数:boxSize,将一张图片横纵各分为几个区域提取特征
- 参数说明:该值越大,摘要id敏感度越高,该参数有最大值。最大值为图片:图片最小边长/5,超过会报错数组越界
- //第三个参数:regionSize,相似特征区域分区种类数量
- 参数说明:该值越大,摘要id敏感度越高
- //返回name 即为该图片摘要id,通过id逐位对比即可对比相似程度
- //什么是id敏感度:
- //id敏感度越高,对图片变化越敏感,越适合越大的检索区域匹配,即特征越细致,但缺点id长度越长。
- //id敏感度越低,对图片变化越不敏感,越适合越小的检索区域匹配,特征越粗,优点是id长度越短。
- FastPictureExcerpt fastPictureExcerpt = new FastPictureExcerpt();
- String name = fastPictureExcerpt.creatImageName(threeChannelMatrix, 5, 10);
[color=rgb(51, 102, 153) !important]复制代码
使用此引擎的示例源码:基于引擎的JAVA高性能,低成本,轻量级智能客服。可与用户自动对话,自动捕捉订单信息,分辨用户需求,自动生成订单
以下内容需要积分高于 2 才可浏览
链接:https://pan.baidu.com/s/1y7WNuzz8pwLp6Pxr8CIorA
提取码下载:
|
|
|