# 快速入门
# 📚简介
SmartJavaAI
是专为JAVA 开发者打造的一个功能丰富、开箱即用的 JAVA AI算法工具包,致力于帮助JAVA开发者零门槛使用各种AI算法模型,开发者无需深入了解底层实现,即可轻松在 Java 代码中调用人脸识别、目标检测、OCR 等功能。底层实现涵盖了 C++、Python 等语言的深度学习模型。后续将持续扩展更多算法,目标是构建一个“像 Hutool 一样简单易用”的 JAVA AI 通用工具箱
# 📌 支持功能
# ✅ 已实现功能
- 人脸识别
- 人脸检测、人脸识别、人脸比对1:1、人脸比对1:N、人脸库注册、人脸库、人脸库删除
- 5点人脸关键点定位
- 人脸属性检测(性别、年龄、口罩、眼睛状态、脸部姿态)
- 人脸活体检测:图片、视频活体检测
- 目标检测
- 支持YOLO、resnet50、VGG16等目标检测模型
- 支持通用目标检测,能够识别图像中的多种物体类别,返回物体位置与类别信息
# ⌛ 规划中功能
图像分类(Image classification)
万物分割 (Segment Anything)
实例分割(Instance Segmentation)
语义分割(Semantic Segmentation)
姿态识别(Pose Estimation)
动作识别(Action Recognition)
使用 BigGAN 的图像生成
图像增强
基于 BERT 的问答
语音识别示例(Speech Recognition)
# 🛠️包含组件
模块 | 介绍 |
---|---|
smartjavaai-common | 基础通用模块,封装了公共功能,供各算法模块共享使用 |
smartjavaai-face | 人脸功能模块 |
smartjavaai-objectdetection | 目标检测模块 |
可以根据需求对每个模块单独引入,也可以通过引入smartjavaai-all
方式引入所有模块。
# 📦 安装
# 1、环境要求
- Java 版本:JDK 11或更高版本
- 操作系统:不同模型支持的系统不一样,具体请查看文档
# 2、Maven
# 全量引入(适合快速体验)
如果你希望直接引入所有功能模块,那就"无脑"引入smartjavaai-all:
<dependency>
<groupId>cn.smartjavaai</groupId>
<artifactId>smartjavaai-all</artifactId>
<version>1.0.12</version>
</dependency>
# 按需引入(推荐)
如果你想像SpringBoot一样引入SmartJavaAI,再由子模块决定用到哪些模块,你可以在父模块中加入:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>cn.smartjavaai</groupId>
<artifactId>smartjavaai-bom</artifactId>
<version>${smartjavaai.version}</version>
<type>pom</type>
<!-- 注意这里是import -->
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在子模块中就可以引入自己需要的模块了:
<!--人脸识别模块-->
<dependency>
<groupId>cn.smartjavaai</groupId>
<artifactId>smartjavaai-face</artifactId>
</dependency>
<!--目标检测模块-->
<dependency>
<groupId>cn.smartjavaai</groupId>
<artifactId>smartjavaai-objectdetection</artifactId>
</dependency>
注意事项:
1、若选择“按需引入模块”方式,你必须同时手动引入平台原生依赖(如 OpenCV、FFmpeg 等),否则运行时将因缺失 native 库而抛出异常。
2、使用 smartjavaai-all 则会自动引入所有平台依赖,无需手动配置。
平台原生依赖(按平台选择,减小包体积),建议根据目标平台引入对应原生依赖(通过 classifier 控制平台版本):
(1)预设平台属性
<properties>
<javacv.platform.macosx-arm64>macosx-arm64</javacv.platform.macosx-arm64>
<javacv.platform.linux-x86_64>linux-x86_64</javacv.platform.linux-x86_64>
<javacv.platform.linux-arm64>linux-arm64</javacv.platform.linux-arm64>
<javacv.platform.windows-x86_64>windows-x86_64</javacv.platform.windows-x86_64>
</properties>
(2)引入原生依赖(示例:Windows x86_64)
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacpp</artifactId>
<version>${javacv.version}</version>
<classifier>${javacv.platform.windows-x86_64}</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>ffmpeg</artifactId>
<version>6.1.1-1.5.10</version>
<classifier>${javacv.platform.windows-x86_64}</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>openblas</artifactId>
<version>0.3.26-1.5.10</version>
<classifier>${javacv.platform.windows-x86_64}</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>opencv</artifactId>
<version>4.9.0-1.5.10</version>
<classifier>${javacv.platform.windows-x86_64}</classifier>
</dependency>
# 3、完整示例代码
# 4、文档地址
# 🙏 鸣谢
本项目在开发过程中借鉴或使用了以下优秀开源项目,特此致谢:
# 联系方式
如您在使用过程中有任何问题或建议,欢迎添加微信,与我们交流并加入用户交流群
- 微信: deng775747758 (请备注:SmartJavaAI)
- Email: 775747758@qq.com
🚀 如果这个项目对你有帮助,别忘了点个 Star ⭐!你的支持是我持续优化升级的动力! ❤️
人脸识别 →