Files
SmartJavaAI/README.md

288 lines
12 KiB
Markdown
Raw Normal View History

2025-04-13 20:33:15 +08:00
<p align="center">
<a href="https://gitee.com/dengwenjie/SmartJavaAI"><img src="https://cdn.jsdelivr.net/gh/geekwenjie/SmartJavaAI-Site/images/logo.png?v=2025-04-13T07:48:42.197Z" width="45%"></a>
</p>
<p align="center">
<strong>🍬JAVA轻量级深度学习算法库该库致力于构建Java生态与AI模型之间的高效桥梁</strong>
</p>
2025-04-17 20:58:10 +08:00
<p align="center">
<a target="_blank" href="https://central.sonatype.com/artifact/ink.numberone/smartjavaai-all">
<img src="https://img.shields.io/maven-central/v/ink.numberone/smartjavaai-all.svg?label=Maven%20Central" />
</a>
<a target="_blank" href="https://license.coscl.org.cn/MulanPSL2">
<img src="https://img.shields.io/:license-MulanPSL2-blue.svg" />
</a>
<a target="_blank" href="https://www.oracle.com/java/technologies/javase/javase-jdk11-downloads.html">
<img src="https://img.shields.io/badge/JDK-11+-green.svg" />
</a>
<a target="_blank" href='https://gitee.com/dengwenjie/SmartJavaAI/stargazers'>
<img src='https://gitee.com/dengwenjie/SmartJavaAI/badge/star.svg?theme=gvp' alt='star'/>
</a>
<a target="_blank" href='https://github.com/geekwenjie/SmartJavaAI'>
<img src="https://img.shields.io/github/stars/geekwenjie/SmartJavaAI.svg?style=social" alt="github star"/>
</a>
<a target="_blank" href='https://gitcode.com/geekwenjie/SmartJavaAI'>
<img src="https://gitcode.com/geekwenjie/SmartJavaAI/star/badge.svg" alt="gitcode star"/>
</a>
2025-04-17 20:58:10 +08:00
</p>
-------------------------------------------------------------------------------
2025-04-25 08:45:59 +08:00
[**开发文档**](http://doc.smartjavaai.cn)
2025-04-17 20:58:10 +08:00
-------------------------------------------------------------------------------
2025-04-13 20:35:55 +08:00
2025-04-13 20:33:15 +08:00
## 📚简介
2025-02-23 12:56:50 +08:00
2025-04-13 20:33:15 +08:00
`SmartJavaAI`是专为Java 开发者打造的一个功能丰富、开箱即用的 Java 算法工具包致力于帮助Java开发者高效集成各类智能算法。SmartJavaAI通过对多种主流算法的统一封装开发者无需深入了解底层实现即可轻松在 Java 代码中调用人脸识别、目标检测、OCR 等功能。目前已支持部分人脸识别与目标检测算法,底层实现涵盖了 C++、Python 等语言的深度学习模型。后续将持续扩展更多算法,最终将构建一个面向 Java 开发者的通用智能工具库。
2025-03-08 16:22:46 +08:00
2025-04-22 21:33:09 +08:00
## 🚀 能力展示
<div align="center">
<table>
<tr>
<td>
<div align="left">
<p>人脸检测</p>
- 5点人脸关键点定位 <br>
2025-04-22 21:33:09 +08:00
</div>
</td>
<td>
<div align="center">
<img src="https://cdn.jsdelivr.net/gh/geekwenjie/SmartJavaAI-Site/images/face5point.png" width = "500px"/>
2025-04-22 21:33:09 +08:00
</div>
</td>
</tr>
<tr>
<td>
<div align="left">
<p>人脸比对11</p>
- 人脸对齐 <br>
2025-04-22 21:33:09 +08:00
</div>
</td>
<td>
<div align="center">
<img src="https://cdn.jsdelivr.net/gh/geekwenjie/SmartJavaAI-Site/images/face1-1.jpg" width = "500px"/>
</div>
</td>
</tr>
<tr>
<td>
<div align="left">
<p>人证核验</p>
</div>
</td>
<td>
<div align="center">
<img src="https://cdn.jsdelivr.net/gh/geekwenjie/SmartJavaAI-Site/images/idcard.png" width = "500px"/>
</div>
</td>
</tr>
<tr>
<td>
<div align="left">
<p>人脸比对1N</p>
- 人脸对齐 <br>
2025-04-22 21:33:09 +08:00
- 人脸注册 <br>
- 人脸库查询<br>
- 人脸库删除<br>
</div>
</td>
<td>
<div align="center">
<img src="https://cdn.jsdelivr.net/gh/geekwenjie/SmartJavaAI-Site/images/face1-n.png" width = "500px"/>
</div>
</td>
</tr>
<tr>
<td>
<div align="left">
<p>人脸属性检测</p>
- 性别检测 <br>
- 年龄检测 <br>
- 口罩检测<br>
- 眼睛状态检测<br>
- 脸部姿态检测<br>
</div>
</td>
<td>
<div align="center">
<img src="https://cdn.jsdelivr.net/gh/geekwenjie/SmartJavaAI-Site/images/face_attribute.jpg" width = "500px"/>
</div>
</td>
</tr>
<tr>
<td>
<div align="left">
<p>活体检测</p>
- 图片和视频活体检测 <br>
</div>
</td>
<td>
<div align="center">
<img src="https://cdn.jsdelivr.net/gh/geekwenjie/SmartJavaAI-Site/images/liveness.jpg" width = "500px"/>
</div>
</td>
</tr>
2025-04-22 21:33:09 +08:00
<tr>
<td>
<div align="left">
<p>目标检测</p>
</div>
</td>
<td>
<div align="center">
<img src="https://cdn.jsdelivr.net/gh/geekwenjie/SmartJavaAI-Site/images/object_detection_detected.png" width = "500px"/>
</div>
</td>
</tr>
</table>
</div>
2025-03-08 16:22:46 +08:00
2025-04-17 20:58:10 +08:00
2025-04-13 20:33:15 +08:00
## 🚀 核心亮点
2025-03-08 16:22:46 +08:00
2025-04-13 20:33:15 +08:00
针对 Java 开发者在集成智能算法时常见的两大痛点:
2025-03-08 16:22:46 +08:00
2025-04-13 20:33:15 +08:00
- 🐍 主流AI深度学习框架PyTorch/TensorFlow的Python生态与Java工程体系割裂
2025-02-23 12:56:50 +08:00
2025-04-13 20:33:15 +08:00
- ⚙️ 现有算法方案分散杂乱,封装不统一,使用门槛高,不易直接服务于 Java 业务开发
2025-02-23 12:56:50 +08:00
我们实现了:
2025-04-13 20:33:15 +08:00
**开箱即用** - 两行代码即可调用算法
**支持多种深度学习引擎** - Pytorch、Tensorflow、MXNet、ONNX Runtime
**功能丰富** - 当前支持人脸识别与目标检测,未来将陆续支持 OCR、图像分类、NLP 等多个 AI 领域任务,构建全面的智能算法体系。
**跨平台兼容** - 支持Windows/Linux/macOS系统x86 & ARM架构
2025-02-23 12:56:50 +08:00
2025-03-08 16:22:46 +08:00
2025-04-13 20:33:15 +08:00
## 📌 支持功能
2025-02-23 12:56:50 +08:00
2025-04-13 20:35:55 +08:00
### ✅ 已实现功能
2025-02-23 12:56:50 +08:00
- **人脸识别**
- 人脸检测、人脸识别、人脸比对1:1、人脸比对1:N、人脸库注册、人脸库、人脸库删除
- 5点人脸关键点定位
- 人脸属性检测(性别、年龄、口罩、眼睛状态、脸部姿态)
- 人脸活体检测:图片、视频活体检测
2025-04-13 20:33:15 +08:00
- **目标检测**
- 支持YOLO、resnet50、VGG16等目标检测模型
- 支持通用目标检测,能够识别图像中的多种物体类别,返回物体位置与类别信息
2025-02-23 12:56:50 +08:00
2025-04-13 20:35:55 +08:00
### ⌛ 规划中功能
2025-02-23 12:56:50 +08:00
- **OCR文字识别**
2025-04-13 20:33:15 +08:00
即将支持身份证/银行卡/车牌等关键信息提取
2025-04-22 21:33:09 +08:00
- **图像分割**
2025-02-23 12:56:50 +08:00
- **语音识别**
基于Transformer的语音转文本引擎支持中文/英文多语种识别
2025-04-22 21:33:09 +08:00
## 🌟 AI集成方式对比
| 方案 | 技术特点 | 优点 | 缺点 |
|---------------------|--------------------------------------------------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------|
| **OpenCV** | 传统图像处理方案 | ✅ 提供java接口<br>✅ 轻量级部署<br>✅ 社区资源丰富 | ❌ 基于传统算法精度低(60%-75%)<br>❌ 需本地安装环境 |
| &zwnj;**虹软SDK**&zwnj; | 商业级闭源解决方案 | ✅ 开箱即用<br>✅ 提供完整文档和SDK<br>✅ 支持离线活体检测 | ❌ 免费版需年度授权更新<br>❌ 商业授权费用高<br>❌ 代码不可控 |
| &zwnj;**云API(阿里云)**&zwnj; | SaaS化云端服务 | ✅ 零部署成本<br>✅ 支持高并发<br>✅ 自带模型迭代 | ❌ 网络延迟风险(200-800ms)<br>❌ 按调用量计费<br>❌ 有数据安全风险 |
| &zwnj;**Python混合调用**&zwnj; | 跨语言调用方案 | ✅ 可集成PyTorch/TF等框架<br>✅ 支持自定义算法<br>✅ 识别精度高 | ❌ 需维护双语言环境<br>❌ 进程通信性能损耗(30%+)<br>❌ 异常处理复杂度翻倍 |
| &zwnj;**DJL框架**&zwnj; | 深度学习框架 | ✅ 纯Java实现<br>✅ 支持主流深度学习框架<br>✅ 可加载预训练模型(99%+) | ❌ 需掌握DL知识<br>❌ 需处理模型加载、预处理、后处理等复杂技术细节 |
| &zwnj;**SmartJavaAI**&zwnj; | java深度学习工具包 | ✅ 支持主流深度学习框架<br>✅ 提供丰富、开箱即用API<br> ✅ 上手简单单一Jar包集成 | ❌要求JDK版本11及以上 |
2025-02-23 12:56:50 +08:00
2025-04-13 20:33:15 +08:00
## 🛠️包含组件
2025-03-26 17:09:22 +08:00
2025-04-13 21:12:48 +08:00
| 模块 | 介绍 |
|-----------------------------|---------------------------------------------------------------------------------- |
| smartjavaai-common | 基础通用模块,封装了公共功能,供各算法模块共享使用 |
| smartjavaai-face | 人脸功能模块 |
2025-04-13 20:33:15 +08:00
| smartjavaai-objectdetection | 目标检测模块 |
2025-03-26 17:09:22 +08:00
2025-04-13 21:12:48 +08:00
可以根据需求对每个模块单独引入,也可以通过引入`smartjavaai-all`方式引入所有模块。
2025-02-23 12:56:50 +08:00
2025-04-13 20:33:15 +08:00
-------------------------------------------------------------------------------
2025-02-23 12:56:50 +08:00
2025-04-13 20:33:15 +08:00
## 📦 安装
2025-02-23 12:56:50 +08:00
2025-04-17 20:58:10 +08:00
2025-04-13 20:35:55 +08:00
### 1、环境要求
2025-02-23 12:56:50 +08:00
2025-04-13 20:33:15 +08:00
- Java 版本:**JDK 11或更高版本**
- 操作系统:不同模型支持的系统不一样,具体请查看文档
2025-04-13 20:35:55 +08:00
### 2、Maven
2025-04-13 20:33:15 +08:00
在项目的pom.xml的dependencies中加入以下内容全部功能也可以根据需求对每个模块单独引入:
2025-02-23 12:56:50 +08:00
```xml
2025-04-13 20:33:15 +08:00
<dependency>
<groupId>cn.smartjavaai</groupId>
2025-04-13 20:33:15 +08:00
<artifactId>smartjavaai-all</artifactId>
<version>1.0.12</version>
2025-04-13 20:33:15 +08:00
</dependency>
2025-02-23 12:56:50 +08:00
```
2025-04-17 20:58:10 +08:00
### 3、完整示例代码
2025-04-14 14:02:59 +08:00
2025-05-10 07:37:13 +08:00
[示例代码](https://gitee.com/dengwenjie/SmartJavaAI/tree/master/examples)
2025-04-13 20:33:15 +08:00
### 4、文档地址
[开发文档](http://doc.smartjavaai.cn)
2025-03-08 16:08:50 +08:00
2025-03-26 17:09:22 +08:00
## 🙏 鸣谢
2025-03-08 16:08:50 +08:00
2025-03-26 17:09:22 +08:00
本项目在开发过程中借鉴或使用了以下优秀开源项目,特此致谢:
2025-02-26 11:23:39 +08:00
2025-03-26 17:09:22 +08:00
- **[Seetaface6JNI](https://gitee.com/cnsugar/seetaface6JNI)**
2025-04-13 20:33:15 +08:00
- **[Deep Java Library](https://docs.djl.ai)**
- **[AIAS](https://gitee.com/mymagicpower/AIAS)**
2025-04-13 20:33:15 +08:00
2025-02-26 11:46:44 +08:00
## 联系方式
2025-04-14 09:23:13 +08:00
如您在使用过程中有任何问题或建议,欢迎添加微信,与我们交流并加入用户交流群
2025-02-26 11:46:44 +08:00
- **微信**: deng775747758 请备注SmartJavaAI
- **Email**: 775747758@qq.com
2025-03-27 09:03:12 +08:00
2025-04-25 09:04:01 +08:00
🚀 **如果这个项目对你有帮助,别忘了点个 Star ⭐!你的支持是我持续优化升级的动力!** ❤️
## 更新日志
## [v1.0.12] - 2025-05-09
- 新增图片与视频活体检测
- 新增人脸属性识别(性别、年龄、口罩、姿态、眼睛状态)
- 优化检测返回与包结构
- 新增 dependencyManagement 统一依赖版本管理
## [v1.0.11] - 2025-04-28
- FaceNet 特征提取新增人脸对齐
- 人脸检测新5点人脸关键点定位
- 特征提取接口支持多人脸和最佳人脸提取
- 修复人脸框边界精度问题
- 更新 Maven 发布的 groupId
## [v1.0.10] - 2025-04-19
- 兼容 SeetaFace6 在 Linux 系统下的运行
- 新增全局缓存路径设置功能
- 优化若干功能细节,提升稳定性与性能
2025-04-13 20:33:15 +08:00
## [v1.0.8] - 2025-04-13
- 新增目标检测功能
- 模型调用接口统一封装
- 修复若干已知问题
- 支持自定义选择使用 GPU 或 CPU 运算
- 人脸识别模块新增多种接口,功能更加完善
## [v1.0.6] - 2025-04-01
- 修复人脸识别算法facenet-pytorch实现方式
- 优化Seetaface6算法兼容jdk高版本
2025-03-27 09:03:12 +08:00