本期推荐的是一个基于Java开发的AI识别框架——easyAi。
easyAi是一个面向JAVA程序员使用的AI识别框架,无需任何算法知识,通过简单的api调用就可以实现常用的图像内物体的识别,定位等图像AI服务及自然语言分类处理服务,不依赖任何第三方库。
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,第三个参数是第一次学习固定falseoperation.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 模式 进行第二次学习//第二次学习的时候,第三个参数必须是 trueoperation.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,则意味不能理解该语义,即分类失败//通常原因是模板量不足,或者用户说的话的语义,不在你的语义分类训练范围内
示例:
- 单物体识别效果
- 多物体识别效果
- 中文语言分类效果
更多内容大家可自行前往阅读。