哈工大ai开源框架 (Java开源框架)

《GitHub精选》是我们分享Github中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个基于Java开发的AI识别框架——easyAi。

easyAi是一个面向JAVA程序员使用的AI识别框架,无需任何算法知识,通过简单的api调用就可以实现常用的图像内物体的识别,定位等图像AI服务及自然语言分类处理服务,不依赖任何第三方库。

Java开源框架,java开源bi框架哪个好

easyAi目前具有三个功能:

  • 对单张图片单物体进行识别
  • 对单张图片多物体进行识别与定位
  • 对中文语言进行分类语义识别,判断用户说话的语义是什么,要做什么

部分API说明:

  • 图像学习
//创建图片解析类

Picture picture = new Picture();

//创建一个静态单例配置模板

static TempleConfig templeConfig = new TempleConfig();

//第三个参数和第四个参数分别是训练图片的宽和高,为保证训练的稳定性请保证训练图片大小的一致性

templeConfig.init(StudyPattern.Accuracy_Pattern, true, 640, 640, 2);

//将配置模板类作为构造塞入计算类

Operation operation = new Operation(templeConfig);

//一阶段 循环读取不同的图片

for (int i = 1; i < 1900; i++) {

//读取本地URL地址图片,并转化成矩阵

Matrix a = picture.getImageMatrixByLocal("/Users/lidapeng/Desktop/myDocment/picture/a" + i + ".jpg");

Matrix c = picture.getImageMatrixByLocal("/Users/lidapeng/Desktop/myDocment/picture/c" + i + ".jpg");

//矩阵塞入运算类进行学习,第一个参数是图片矩阵,第二个参数是图片分类标注ID,第三个参数是第一次学习固定false

operation.learning(a, 1, false);

operation.learning(c, 2, false);

}

for (int i = 1; i < 1900; i++) {

//读取本地URL地址图片,并转化成矩阵

Matrix a = picture.getImageMatrixByLocal("D:\\share\\picture/a" + i + ".jpg");

Matrix c = picture.getImageMatrixByLocal("D:\\share\\picture/c" + i + ".jpg");

//将图像矩阵和标注加入进行学习,Accuracy_Pattern 模式 进行第二次学习

//第二次学习的时候,第三个参数必须是 true

operation.learning(a, 1, true);

operation.learning(c, 2, true);

}

templeConfig.finishStudy();//结束学习

//获取学习结束的模型参数,并将model保存数据库

ModelParameter modelParameter = templeConfig.getModel();

String model = JSON.toJSONString(modelParameter);
  • 自然语言分类
//创建模板读取类

TemplateReader templateReader = new TemplateReader();

//读取语言模板,第一个参数是模版地址,第二个参数是文本编码方式

//同时也是学习过程

templateReader.read("/Users/lidapeng/Desktop/myDocment/a1.txt", "UTF-8");

//学习结束获取模型参数

//WordModel wordModel = WordTemple.get().getModel();

//不用学习注入模型参数

//WordTemple.get().insertModel(wordModel);

Talk talk = new Talk();

//输入语句进行识别,若有标点符号会形成LIST中的每个元素

//返回的集合中每个值代表了输入语句,每个标点符号前语句的分类

List<Integer> list = talk.talk("帮我配把锁");

System.out.println(list);

//这里做一个特别说明,语义分类的分类id不要使用"0",本框架约定如果类别返回数字0,则意味不能理解该语义,即分类失败

//通常原因是模板量不足,或者用户说的话的语义,不在你的语义分类训练范围内

示例:

  • 单物体识别效果

Java开源框架,java开源bi框架哪个好

  • 多物体识别效果

Java开源框架,java开源bi框架哪个好

  • 中文语言分类效果

Java开源框架,java开源bi框架哪个好

更多内容大家可自行前往阅读。

开源地址: https://gitee.com/ldp_dpsmax/easyAi