🍬Java轻量级、免费、离线AI工具箱,致力于帮助Java开发者零门槛使用AI算法模型
像Hutool一样简单易用的Java AI工具箱
SmartJavaAI是专为JAVA 开发者打造的一个功能丰富、开箱即用的 JAVA AI算法工具包,致力于帮助JAVA开发者零门槛使用各种AI算法模型,开发者无需深入了解底层实现,即可轻松在 Java 代码中调用人脸识别、目标检测、OCR 等功能。底层支持包括基于 DJL (Deep Java Library) 封装的深度学习模型,以及通过 JNI 接入的 C++/Python 算法,兼容多种主流深度学习框架如 PyTorch、TensorFlow、ONNX、Paddle 等,屏蔽复杂的模型部署与调用细节,开发者无需了解 AI 底层实现即可直接在 Java 项目中集成使用,后续将持续扩展更多算法,目标是构建一个“像 Hutool 一样简单易用”的 JAVA AI 通用工具箱
人脸检测(Face Detection) - 5点人脸关键点定位 |
||
人脸比对1:1 |
||
人证核验 |
||
人脸比对1:N - 人脸注册 - 人脸库查询 - 人脸库删除 |
||
人脸属性检测 - 性别检测(GenderDetection)- 年龄检测(AgeDetection) - 口罩检测(Face Mask Detection) - 眼睛状态检测(EyeClosenessDetection) - 脸部姿态检测(FacePoseEstimation) |
||
活体检测 |
||
人脸表情识别 |
||
目标检测(Object Detection) - 视频流目标检测:rtsp、摄像头、视频文件等 |
||
语义分割 |
||
实例分割 |
||
自定义目标训练+检测 |
||
行人检测(Person Detection) |
||
人类动作识别 |
||
OBB旋转框检测 |
||
姿态估计 |
||
OCR文字识别 - 支持印刷体识别 - 支持手写字识别 |
||
OCR文字识别 - 表格识别(Table Structure Recognition) |
||
车牌识别 - 车牌颜色识别 |
||
机器翻译 |
||
语音识别 - 支持实时语音识别 |
针对 Java 开发者在集成智能算法时常见的两大痛点:
-
🐍 主流AI深度学习框架(PyTorch/TensorFlow)的Python生态与Java工程体系割裂
-
⚙️ 现有AI集成方案分散杂乱,封装不统一,使用门槛高,不易直接服务于 Java 业务开发
我们实现了:
✅ 开箱即用 - 两行代码即可调用算法
✅ 支持多种深度学习引擎 - Pytorch、Tensorflow、MXNet、ONNX Runtime
✅ 功能丰富 - 当前支持人脸识别、目标检测、OCR、NLP 等多个 AI 领域任务,构建全面的智能算法体系。
✅ 跨平台兼容 - 支持Windows/Linux/macOS系统(x86 & ARM架构)
- 人脸识别
- 人脸检测:人脸区域检测、5点人脸关键点定位
- 人脸识别:人脸512维特征提取、人脸对齐、1:1 人脸比对、1:N 人脸识别
- 人脸库:人脸注册、更新、查询、删除(支持向量数据库milvus/sqlite)
- 人脸属性检测:性别、年龄、口罩、眼睛状态、脸部姿态
- 静默活体检测:图片、视频活体检测
- 人脸表情识别:7种表情识别
- 人脸质量评估:亮度评估、清晰度评估、完整度评估、姿态评估、遮挡评估
- 目标检测
- 支持多种主流模型:集成 YOLOv5、YOLOv8、YOLOv11、YOLOv12、Tensorflow Object Detection 等目标检测算法
- 支持自定义模型加载:可无缝加载并部署用户自行训练的目标检测模型
- 集成行人检测模型
- 语义分割
- 集成DeepLabV3模型
- 实例分割
- 集成YOLOv8-seg、YOLOv11-seg、Mask R-CNN等模型
- OBB旋转框目标检测
- 集成YOLOv11-obb模型
- 动作识别
- 支持KINETICS400数据集中400个人类动作识别
- 姿态估计
- 集成YOLOv8-pose、YOLOv11-pose等模型
- OCR文字识别
- 支持PaddleOCR 3.0模型:集成最新PP-OCRv5、PP-OCRv4、表格结构识别模型(SLANet_plus)、文本行方向分类模型
- 支持任意角度识别,方向校准
- 支持通用文字识别,通用手写字识别
- 支持表格识别
- 支持中文车牌识别:单层/双层检测,颜色识别,支持12种中文车牌
- 机器翻译
- 集成NLLB-200模型:支持200+语言互相翻译
- 语音识别
- 集成openai的whisper模型:支持100种语言
- 集成vosk语音识别
方案 | 技术特点 | 优点 | 缺点 |
---|---|---|---|
OpenCV | 传统图像处理方案 | ✅ 提供java接口 ✅ 轻量级部署 ✅ 社区资源丰富 |
❌ 基于传统算法精度低(60%-75%) ❌ 需本地安装环境 |
商业闭源SDK(如虹软等) | 商业级闭源解决方案 | ✅ 开箱即用 ✅ 提供完整文档和SDK ✅ 支持离线活体检测 |
❌ 免费版需年度授权更新 ❌ 商业授权费用高 ❌ 代码不可控 |
云API(阿里云) | SaaS化云端服务 | ✅ 零部署成本 ✅ 支持高并发 ✅ 自带模型迭代 |
❌ 网络延迟风险(200-800ms) ❌ 按调用量计费 ❌ 有数据安全风险 |
Python混合调用 | 跨语言调用方案 | ✅ 可集成PyTorch/TF等框架 ✅ 支持自定义算法 ✅ 识别精度高 |
❌ 需维护双语言环境 ❌ 进程通信性能损耗(30%+) ❌ 异常处理复杂度翻倍 |
JNI/JNA | 跨语言底层调用方案 | ✅ 直接调用 C/C++ 高性能算法库 ✅ 支持调用各种原生成熟库 ✅ 可封装成通用工具Jar |
❌ 开发成本高,JNI更复杂 ❌ 跨平台兼容性差 |
DJL框架 | 深度学习框架 | ✅ 纯Java实现 ✅ 支持主流深度学习框架 ✅ 可加载预训练模型(99%+) |
❌ 需掌握DL知识 ❌ 需处理模型加载、预处理、后处理等复杂技术细节 |
SmartJavaAI | java深度学习工具包 | ✅ 支持主流深度学习框架 ✅ 提供丰富、开箱即用API ✅ 上手简单,单一Jar包集成 |
无 |
模块 | 介绍 |
---|---|
common | 基础通用模块,封装了公共功能,供各算法模块共享使用 |
bom | 依赖管理模块 |
face | 人脸功能模块 |
vision | 通用视觉模块(目标检测等功能) |
ocr | OCR文字识别模块 |
translate | 机器翻译模块 |
speech | 语音功能模块,包含 ASR 和 TTS |
可以根据需求对每个模块单独引入,也可以通过引入smartjavaai-all
方式引入所有模块。
- Java 版本:JDK 8或更高版本
- 操作系统:不同模型支持的系统不一样,具体请查看文档
在项目的 pom.xml
的 dependencies
中可以一次性引入全部功能(如下所示)。
<dependency>
<groupId>cn.smartjavaai</groupId>
<artifactId>smartjavaai-all</artifactId>
<version>1.0.24</version>
</dependency>
人脸检测模型(FaceDetection、FaceLandmarkExtraction)
模型名称 | 引擎 | 模型简介 | 模型开源网站 |
---|---|---|---|
MTCNN(均衡) | PyTorch | 使用最广泛的模型之一,经典多阶段人脸检测,速度与精度均衡 | Github |
SeetaFace6(均衡模型) | C++ | 中科视拓最新开放的开源免费的全栈人脸识别工具包 | Github |
RetinaFace(高精度) | PyTorch | 基于单阶段检测的多尺度人脸检测 | Github |
RetinaFace_1080x720(高精度) | OnnxRuntime | 针对高分辨率图像优化的 RetinaFace 模型 | Github |
RetinaFace_640x640(高精度) | OnnxRuntime | 针对低分辨率图像优化的 RetinaFace 模型 | Github |
yolov5face_n_0.5_320x320(极速) | OnnxRuntime | YOLOv5 小型人脸检测模型,设计轻量,适合快速推理 | 无 |
yolov5face_m_640x640(极速) | OnnxRuntime | YOLOv5 中型人脸检测模型 | 无 |
UltraLightFastGenericFace(极速) | PyTorch | 针对边缘计算设备设计的轻量人脸检测模型 | Github |
人脸识别模型(FaceRecognition)
模型名称 | 引擎 | 模型简介 | 模型开源网站 |
---|---|---|---|
InsightFace_IR-SE50(高精度) | PyTorch | 这是对 ArcFace(论文)和 InsightFace(GitHub)的 PyTorch 重新实现 | Github |
InsightFace_Mobilefacenet(极速) | PyTorch | (轻量级)这是对 ArcFace(论文)和 InsightFace(GitHub)的 PyTorch 重新实现 | Github |
FaceNet(均衡) | PyTorch | 基于 PyTorch 的 Inception ResNet(V1)模型仓库 | Github |
ElasticFace(高精度) | PyTorch | 基于 CVPRW2022 论文《ElasticFace: Elastic Margin Loss for Deep Face Recognition》实现的人脸识别模型 | Github |
SeetaFace6(均衡) | C++ | 中科视拓最新开放的开源免费的全栈人脸识别工具包 | Github |
静态活体检测(RGB)模型(Silent face-anti-spoofing、FaceLivenessDetection)
模型名称 | 引擎 | 模型简介 | 模型开源网站 |
---|---|---|---|
MiniVision | OnnxRuntime | 小视科技的静默活体检测 | Github |
IIC_FL(cv_manual_face-liveness_flrgb) | OnnxRuntime | 阿里通义工作室人脸活体检测模型-RGB | 魔塔 |
SeetaFace6 | C++ | 中科视拓最新开放的开源免费的全栈人脸识别工具包 | Github |
人脸表情识别模型(FacialExpressionRecognition、fer)
支持功能:
- 支持识别7种表情:neutral(中性)、happy(高兴)、sad(悲伤)、surprise(惊讶)、fear(恐惧)、disgust(厌恶)、anger(愤怒)
模型名称 | 引擎 | 模型简介 | 模型开源网站 |
---|---|---|---|
DensNet121 | PyTorch | FaceLib的densnet121表情识别模型 | Github |
FrEmotion | OnnxRuntime | FaceRecognition-LivenessDetection-Javascript | Github |
人脸属性识别模型(GenderDetection、AgeDetection、EyeClosenessDetection、FacePoseEstimation)
支持功能:
- 性别检测
- 年龄检测
- 闭眼检测
- 人脸姿态检测
- 戴口罩检测
模型名称 | 模型简介 | 模型开源网站 |
---|---|---|
SeetaFace6 | 中科视拓最新开放的开源免费的全栈人脸识别工具包 | Github |
人脸质量评估模型(FaceQualityAssessment)
支持功能:
- 亮度评估
- 清晰度评估
- 完整度评估
- 姿态评估
- 遮挡评估
模型名称 | 模型简介 | 模型开源网站 |
---|---|---|
SeetaFace6 | 中科视拓最新开放的开源免费的全栈人脸识别工具包 | Github |
YOLO 系列
模型名称 | 引擎 | 模型简介 | 模型开源网站 |
---|---|---|---|
YOLOV12 | OnnxRuntime | 最流行的目标检测模型 | Github |
YOLOV11 | OnnxRuntime | 最流行的目标检测模型 | Github |
YOLOV8 | OnnxRuntime | 最流行的目标检测模型 | Github |
Tensorflow系列
仅测试了以下Tensorflow目标检测模型
模型名称 | 引擎 | 模型简介 | 模型开源网站 |
---|---|---|---|
EfficientDet | Tensorflow | Tensorflow目标检测 | Github |
SSD MobileNet V2 | Tensorflow | Tensorflow目标检测 | Github |
Faster RCNN Inception Resnet V2 | Tensorflow | Tensorflow目标检测 | Github |
SSD 系列
模型名称 | 引擎 | 骨干网络 | 输入尺寸 | 训练数据集 |
精度(mAP) | 推理速度 |
适用场景 |
---|---|---|---|---|---|---|---|
SSD_300_RESNET5 | PyTorch | ResNet‑50 | 300×300 | COCO | 中等 | 快 | 精度需求一般 |
SSD_512_RESNET50_V1_VOC | PyTorch | ResNet‑50 | 512×512 | Pascal VOC | 稍高 | 中等 | 精度优先、可接受略低速度的场景 |
SSD_512_VGG16_ATROUS_COCO | MXNet | VGG‑16 | 512×512 | COCO | 较高 | 中等 | 通用场景;对小目标有一定提升 |
SSD_300_VGG16_ATROUS_VOC | MXNet | VGG‑16 | 300×300 | Pascal VOC | 中等偏上 | 快 | VOC 数据集同类任务;资源受限时使用 |
SSD_512_MOBILENET1_VOC | MXNet | MobileNet‑1.0 | 512×512 | Pascal VOC | 中等 | 快 | 嵌入式/移动端设备;算力和内存都很有限 |
模型名称 | 引擎 | 模型简介 | 模型开源网站 |
---|---|---|---|
DeepLabv3 | PyTorch | DeepLabv3 是一种图像分割模型,可以把图片里的每个像素分类出来 | 无 |
模型名称 | 引擎 | 模型简介 | 模型开源网站 |
---|---|---|---|
YOLOV8-SEG | OnnxRuntime | Ultralytics在COCO 数据集 上训练的模型 | Github |
YOLOV11-SEG | OnnxRuntime | Ultralytics在COCO 数据集 上训练的模型 | Github |
Mask R-CNN | MXNet | Mask R-CNN 是一种在目标检测基础上,同时为每个物体生成像素级分割区域的深度学习模型 | 无 |
模型名称 | 引擎 | 模型简介 | 模型开源网站 |
---|---|---|---|
YOLOV11-OBB | OnnxRuntime | Ultralytics在DOTAv1 数据集 上训练的模型、通过引入一个额外的角度来更准确地定位图像中的对象 | Github |
模型名称 | 引擎 | 模型开源网站 |
---|---|---|
YOLOV8_PERSON | OnnxRuntime | Github |
模型名称 | 引擎 |
---|---|
VIT_BASE_PATCH16 | PyTorch |
INCEPTIONV3_KINETICS400 | OnnxRuntime |
INCEPTIONV1_KINETICS400 | OnnxRuntime |
RESNET_V1B_KINETICS400 | OnnxRuntime |
模型名称 | 引擎 | 模型开源网站 |
---|---|---|
YOLO11N-POSE | OnnxRuntime | Github |
YOLO8N-POSE | OnnxRuntime | Github |
SIMPLE_POSE | MXNet | 无 |
支持功能:
- 支持简体中文、繁体中文、英文、日文四种主要语言
- 手写、竖版、拼音、生僻字
- 方向矫正
文本检测模型
模型名称 | 模型简介 | 模型开源网站 |
---|---|---|
PP-OCRv5_server_det | 服务端文本检测模型,精度更高,适合在性能较好的服务器上部署 | Github |
PP-OCRv5_mobile_det | 轻量文本检测模型,效率更高,适合在端侧设备部署 | Github |
PP-OCRv4_server_det | 服务端文本检测模型,精度更高,适合在性能较好的服务器上部署 | Github |
PP-OCRv4_mobile_det | 轻量文本检测模型,效率更高,适合在端侧设备部署 | Github |
文本识别模型
模型名称 | 模型简介 | 模型开源网站 |
---|---|---|
PP-OCRv5_server_rec | (服务端)致力于以单一模型高效、精准地支持简体中文、繁体中文、英文、日文四种主要语言,以及手写、竖版、拼音、生僻字等复杂文本场景的识别。在保持识别效果的同时,兼顾推理速度和模型鲁棒性,为各种场景下的文档理解提供高效、精准的技术支撑。 | Github |
PP-OCRv5_mobile_rec | (轻量)致力于以单一模型高效、精准地支持简体中文、繁体中文、英文、日文四种主要语言,以及手写、竖版、拼音、生僻字等复杂文本场景的识别。在保持识别效果的同时,兼顾推理速度和模型鲁棒性,为各种场景下的文档理解提供高效、精准的技术支撑。 | Github |
PP-OCRv4_server_rec | (服务端)推理精度高,可以部署在多种不同的服务器上 | Github |
PP-OCRv4_mobile_rec | (轻量) 效率更高,适合在端侧设备部署 | Github |
文本方向分类模型(cls)
模型名称 | 模型简介 | 模型开源网站 |
---|---|---|
ch_ppocr_mobile_v2.0_cls | 原始分类器模型,对检测到的文本行文字角度分类 | Github |
PP_LCNET_X0_25 | (轻量)基于PP-LCNet_x0_25的文本行分类模型 | Github |
PP_LCNET_X1_0 | 基于PP-LCNet_x1_0的文本行分类模型 | Github |
表格结构识别(Table Structure Recognition)
模型名称 | 模型简介 | 模型开源网站 |
---|---|---|
SLANet | 该模型通过轻量级骨干 PP-LCNet、CSP-PAN 融合与 SLA Head 解码,有效提升表格结构识别的精度与速度。 | Github |
SLANet_plus | (增强版)该模型通过轻量级骨干 PP-LCNet、CSP-PAN 融合与 SLA Head 解码,有效提升表格结构识别的精度与速度。 | Github |
车牌检测模型(License Plate Detection)
模型名称 | 模型简介 | 模型开源网站 |
---|---|---|
YOLOV5 | 基于YOLOV5训练,支持12种中文车牌 | Github |
yolov7-lite-t | (超小型模型)YOLOv7-Lite 架构的轻量级车牌检测模型 | Github |
yolov7-lite-s | YOLOv7-Lite 架构的轻量级车牌检测模型 | Github |
车牌识别模型(License Plate Recognition)
模型名称 | 模型简介 | 模型开源网站 |
---|---|---|
PLATE_REC_CRNN | CRNN中文字符识别 | Github |
支持功能
- 200多语言互相翻译
模型名称 | 模型简介 | 模型官网 |
---|---|---|
NLLB-200 | Meta AI 开发的一个先进的单一多语言机器翻译模型 | Github |
OPUS_MT_ZH_EN | Helsinki-NLP团队开发的中英翻译模型,基于Transformer架构 | huggingface |
OPUS_MT_EN_ZH | Helsinki-NLP团队开发的英中翻译模型,基于Transformer架构 | huggingface |
这里仅介绍模型的开源项目,每个开源项目通常包含多个具体模型,本文不逐一列出。
模型名称 | 模型简介 | 模型官网 |
---|---|---|
Whisper | OpenAI 开源的通用语音识别(ASR)模型,支持多语言转写和翻译,具有较高的识别精度,尤其在嘈杂环境中表现良好,适合离线和批量音频处理。 | Github |
Vosk | 一个轻量级离线语音识别工具包,支持多种语言和平台(包括移动端与嵌入式设备),可在低资源环境中运行,适合实时语音识别场景。 | Github |
本项目在开发过程中借鉴或使用了以下优秀开源项目,特此致谢:
如您在使用过程中有任何问题或建议,欢迎添加微信,与我们交流并加入用户交流群
- 微信: deng775747758 (请备注:SmartJavaAI)
- Email: 775747758@qq.com
🚀 如果这个项目对你有帮助,别忘了点个 Star ⭐!你的支持是我持续优化升级的动力! ❤️
1、在Gitee或者Github/Gitcode上fork项目到自己的repo
2、把fork过去的项目也就是你的项目clone到你的本地
3、修改代码(记得一定要修改dev分支)
4、commit后push到自己的库(dev分支)
5、登录Gitee或Github/Gitcode在你首页可以看到一个 pull request 按钮,点击它,填写一些说明信息,然后提交即可。
6、等待维护者合并
- 【人脸检测】新增6个模型(MTCNN、YOLOV5、RetinaFace小尺寸版),大幅提升性能
- 【人脸识别】新增Seetaface6轻量模型
- 【目标检测】支持视频流目标检测(rtsp、视频文件等)
- 【目标检测】支持tensorflow2目标检测模型
- 【目标检测】新增行人检测模型(yolo-person)
- 【通用视觉】新增4个动作识别模型
- 【通用视觉】新增语义分割模型
- 【通用视觉】新增5个实例分割模型(含yolov8-seg、yolov11-seg)
- 【通用视觉】新增yolo-obb11旋转框检测(含yolov11-obb)
- 【通用视觉】新增5个姿态估计模型(含yolov8-pose、yolov11-pose)
- 新增 语音识别模块,集成 OpenAI 开源的 Whisper 和 Vosk
- 修复 质量评估模型的 Bug
- 修复 OCR 模块 recognizeAndDraw 方法的 Bug
- 修复 车牌识别在未检测到车牌时的报错问题
- 优化 OCR 表格识别功能,新增导出方式
- 新增 Milvus 身份验证支持
- 集成车牌识别模型,支持车牌检测与识别
- 目标检测功能升级:可指定类别及topk
- 支持自定义线程池线程数量
- OCR:新增表格识别模型
- OCR:新增9个通用模型
- OCR:支持批量检测识别
- OCR:新增更多参数,使用更加灵活
- 人脸识别:支持ID查询及分页获取人脸信息
- 活体检测:视频检测支持设置最大帧数