# easyAi
本包说明:
* 本包原名imageMarket,因为开始加入自然语言模块,所以之后更名为easyAi
* 本包对物体在图像中进行训练及识别,切割,定位的轻量级,面向小白的框架,功能在逐渐扩展中
* 本包对中文输入语句,对输入语句的类别进行分类,功能在逐渐扩展中
* 若有想扩充的功能请进群提意见,若是通用场景我会陆续补充,技术交流群:561433236
## 详细视频教程地址:
* 视频教程地址:https://www.bilibili.com/video/av89134035
## 测试素材下载
链接:https://pan.baidu.com/s/1Vzwn3iMPBI-FAXBDrCSglg
密码:7juj
## 框架效果演示结果:
* 因为是框架没有图像化界面,演示结果就是控制台输出的数据,只能用视频展示,想看演示结果请看教学视频
## 控制台输出演示
* 演示都是输出结果,详情请看具体视频教程,上有链接,这里就是展示一下控制台输出截图。
* 单物体识别效果:[点击查看](./src/test/image/end1.png)
* 多物体识别效果:[点击查看](./src/test/image/end2.png)
* 中文语言分类效果:[点击查看](./src/test/image/end3.png)
### 目前拥有的功能是
* 对单张图片单物体进行识别
* 对单张图片多物体进行识别与定位
* 对中文语言进行分类语义识别,判断用户说话的语义是什么,要做什么
* 若有想扩充的功能请进群提意见,若是通用场景我会陆续补充,技术交流群:561433236
### 目的是
* 低硬件成本,CPU可快速学习运行,面向jAVA开发的程序员,经过简单API调用就可实现物体在图像中的识别,定位及中文语言分类等功能
* 努力为中小企业提供AI场景解决技术方案
* 技术交流群:561433236
### 特点是
入手门槛低,简单配置,快速上手
#### 为什么做这个包
* 低门槛化:
现在随着人工智能技术的兴起,很多场景需要开发人员添加相应的功能,但是在二三线城市算法人才匮乏。
并且大多是JAVA开发程序员,业务做的更多,因为作者本人就是三线城市程序员,所以深知这一点。
所以我本人认为需要一款部署简单,不需要学习任何算法知识,
只通过最简单的API调用,就可以实现部分人工智能应用,并面向覆盖面最广的JAVA程序员使用的,且
能满足大部分AI业务场景实现的技术包。
* 面向用户:广大没接触过算法知识,人才相对匮乏的二三线JAVA业务开发程序员,实现人工智能应用
* 部署简单:
本包所有底层函数及数学库都是作者JAVA手写,不依赖任何第三方库,所以开发者只需要将本包下载到本地后,打成JAR包
引入到自己的POM文件中,就可以独立使用所有功能。
* 功能还在扩展:
本包现在的功能还在逐步扩展中
* 抛错捕获暂时还没有做全,若有抛错请进群交流:561433236,我来做一下错误定位
## HELLO WORLD说明:
* 以下为最简API文档,所有非必设参数都使用本引擎默认值
* 要注意的是使用最简API,及参数默认值准确度远不能达到最佳状态
### 图像学习部分最简API 说明:
``` java
//创建图片解析类
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);
```
### 单物体图像识别部分最简API 说明:
``` java
//读取一张图片,并将其转化为矩阵
Matrix a = picture.getImageMatrixByLocal(fileURL);
//返回此图片的分类ID
int an = operation.toSee(a);
```
### 物体图像识别服务启动初始化API 说明:
``` java
//创建一个静态单例配置模板类
static TempleConfig templeConfig = new TempleConfig();
//初始化配置模板
templeConfig.init(StudyPattern.Accuracy_Pattern, true, 640, 640, 2);
//将配置模板类作为构造塞入计算类
Operation operation = new Operation(templeConfig);
//从数据库中读取学习的模型结果,反序列为ModelParameter
ModelParameter modelParameter = JSON.parseObject(ModelData.DATA2, ModelParameter.class);
//将模型数据注入配置模板类
templeConfig.insertModel(modelParameter);
```
### 自然语言分类最简API 说明:
``` java
//创建模板读取类
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,则意味不能理解该语义,即分类失败
//通常原因是模板量不足,或者用户说的话的语义,不在你的语义分类训练范围内
```
### 神经网络最简API说明
``` java
//创建一个DNN神经网络管理器
NerveManager nerveManager = new NerveManager(...);
//构造参数
//sensoryNerveNub 感知神经元数量 即输入特征数量
//hiddenNerverNub 每一层隐层神经元的数量
//outNerveNub 输出神经元数量 即分类的类别
//hiddenDepth 隐层神经元深度,即学习深度
//activeFunction 激活函数
//isDynamic 是否启用动态神经元数量(没有特殊需求建议为静态,动态需要专业知识)
public NerveManager(int sensoryNerveNub, int hiddenNerverNub, int outNerveNub, int hiddenDepth, ActiveFunction activeFunction, boolean isDynamic)
nerveManager.getSensoryNerves()获取感知神经元集合
//eventId:事件ID
//parameter:输入特征值
//isStudy:是否是学习
//E:特征标注
//OutBack 回调类
SensoryNerv.postMessage(long eventId, double parameter, boolean isStudy, Map<Integer, Double> E, OutBack outBack)
//每一次输出结果�
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
easyAi傻瓜式Java AI框架 v1.0.zip (96个子文件)
easyAi傻瓜式Java AI框架 v1.0
pom.xml 2KB
src
test
image
end3.png 304KB
end2.png 363KB
end1.png 264KB
java
coverTest
PicTest.java 15KB
FoodTest.java 9KB
CoverTest.java 6KB
org
wlld
HelloWorld.java 7KB
LangTest.java 3KB
Ma.java 619B
Back.java 417B
NerveDemo1.java 5KB
ModelData.java 980B
Food.java 873B
Student.java 1KB
main
resources
log4j2.xml 5KB
java
org
wlld
imageRecognition
MeanClustering.java 3KB
RGBSort.java 358B
Convolution.java 16KB
CoverBody.java 906B
MatrixBack.java 626B
segmentation
Specifications.java 827B
Watershed.java 12KB
RegionBody.java 2KB
modelEntity
MatrixModel.java 525B
RegressionBody.java 2KB
KBorder.java 1KB
LvqModel.java 812B
BoxList.java 573B
TempleConfig.java 28KB
Operation.java 40KB
ThreeChannelMatrix.java 916B
XYBody.java 641B
border
Box.java 597B
FrameBody.java 2KB
KClustering.java 6KB
Knn.java 4KB
MatrixBody.java 526B
Border.java 2KB
Frame.java 1KB
LVQ.java 5KB
RGBNorm.java 2KB
VectorK.java 2KB
ImageBack.java 607B
MaxPoint.java 835B
Picture.java 4KB
nerveCenter
NerveManager.java 14KB
Normalization.java 689B
tools
ArithUtil.java 1KB
Frequency.java 3KB
IdCreator.java 2KB
param
Food.java 489B
Cutting.java 730B
randomForest
DataTable.java 2KB
TreeWithTrust.java 501B
RfModel.java 359B
Node.java 566B
Tree.java 12KB
RandomForest.java 4KB
naturalLanguage
WordConst.java 364B
Tokenizer.java 11KB
Sentence.java 2KB
LangBody.java 1KB
WordTemple.java 2KB
WordModel.java 2KB
TemplateReader.java 3KB
Talk.java 6KB
WorldBody.java 943B
KeyWord.java 392B
Word.java 727B
IOConst.java 264B
i
ActiveFunction.java 257B
OutBack.java 409B
nerveEntity
DymNerveStudy.java 635B
SensoryNerve.java 1KB
NerveStudy.java 688B
HiddenNerve.java 2KB
Nerve.java 13KB
SoftMax.java 2KB
BodyList.java 425B
ModelParameter.java 3KB
OutNerve.java 5KB
function
Sigmod.java 479B
Tanh.java 528B
ReLu.java 483B
MatrixTools
Matrix.java 12KB
MatrixOperation.java 18KB
graph
UndirectedGraph.java 322B
config
RZ.java 249B
Classifier.java 456B
Kernel.java 1KB
StudyPattern.java 346B
LICENSE 11KB
.gitignore 1KB
easyAi.iml 935B
README.md 18KB
共 96 条
- 1
资源评论
阿星先森
- 粉丝: 147
- 资源: 1453
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- oracle 触发器语法及 for each row 详细说明
- 微信小程序-豆瓣图书源码
- Fragment - Unknow animation name objectAnimator 问题解决及源码分析
- 词向量-中文文本相似度计算-采用text2vec词向量工具进行计算对比.zip
- 521293804316625base(1).apk
- ARP IP地址分类及特殊IP
- 【MySQL补丁】vcredist-x64xz MySQL必备插件
- 基于SG3525芯片PWM控制推挽隔离DCDC电源模块AD09设计硬件(原理图+PCB)工程文件.zip
- Word_20240428_092324.docx
- cloudcc_v1.1.10-release_sign.apk
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功