java傻瓜ai框架,无需任何算法知识,通过简单的api调用就可以实现 常用的图像内物体的识别,定位等图像ai服务,及自然语言分类处理服务。面向java开发程序员,不依赖任何第三方库,第三方接口,独立包。
目前拥有的功能是
- 对单张图片单物体进行识别
- 对单张图片多物体进行识别与定位
- 对中文语言进行分类语义识别,判断用户说话的语义是什么,要做什么
控制台输出演示
- 演示都是输出结果,详情请看具体视频教程,上有链接,这里就是展示一下控制台输出截图。
- 单物体识别效果:
- 多物体识别效果:
- 中文语言分类效果:
精准模式和速度模式的优劣
- 速度模式学习很快,但是检测速度慢,双核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有些吃不住)。
项目地址:https://gitee.com/ldp_dpsmax/easyAi