Skip to content

🔥🔥🔥Java免费离线AI算法工具箱,支持人脸识别,人脸属性检测,活体检测,人脸表情识别、目标检测(支持 YOLO,SSD、自训练模型)、OCR文字识别、车牌识别、表格识别、语音识别、机器翻译等功能,Maven 引用即可使用。已集成 InsightFace、SeetaFace6、YOLOv8、PaddleOCR (PPOCRv5)、Whisper、Vosk等主流模型

License

Notifications You must be signed in to change notification settings

geekwenjie/SmartJavaAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍬Java轻量级、免费、离线AI工具箱,致力于帮助Java开发者零门槛使用AI算法模型
像Hutool一样简单易用的Java AI工具箱

👉 http://smartjavaai.cn/ 👈

star github star gitcode star


开发文档


📚简介

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
(Face Recognition)

- 人脸对齐

人证核验
(Face ID Verification)

人脸比对1:N
(Face Recognition)

- 人脸对齐
- 人脸注册
- 人脸库查询
- 人脸库删除

人脸属性检测

- 性别检测(GenderDetection)
- 年龄检测(AgeDetection)
- 口罩检测(Face Mask Detection)
- 眼睛状态检测(EyeClosenessDetection)
- 脸部姿态检测(FacePoseEstimation)

活体检测
(FaceLivenessDetection)

- 图片和视频活体检测

人脸表情识别
(FacialExpressionRecognition)

- 7种表情检测

目标检测(Object Detection)

- 视频流目标检测:rtsp、摄像头、视频文件等

语义分割
(Semantic Segmentation)

实例分割
(Instance Segmentation)

自定义目标训练+检测
(Object Detection)

行人检测(Person Detection)

人类动作识别
(Action Recognition)

OBB旋转框检测
(Oriented Bounding Boxes Object Detection)

姿态估计
(Pose Estimation)

OCR文字识别
(Text Recognition)

- 支持任意角度文字识别
- 支持印刷体识别
- 支持手写字识别

OCR文字识别

- 表格识别
(Table Structure Recognition)

车牌识别
(License Plate Recognition)

- 单层/双层检测
- 车牌颜色识别

机器翻译
(Machine Translation)

- 200多种语言互相翻译

语音识别
(Speech Recognition)

- 支持100种语言
- 支持实时语音识别

🚀 SmartJavaAI 解决了什么问题?

针对 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语音识别

🌟 AI集成方式对比

方案 技术特点 优点 缺点
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方式引入所有模块。


SmartJavaAI 架构图


📦 安装

1、环境要求

  • Java 版本:JDK 8或更高版本
  • 操作系统:不同模型支持的系统不一样,具体请查看文档

2、Maven

在项目的 pom.xmldependencies 中可以一次性引入全部功能(如下所示)。 ⚠️ 注意:不推荐直接引入全部依赖,更推荐根据实际需求,按功能模块单独引入,避免引入不必要的包。

详细引入方式请查看 文档、或查看示例代码

<dependency>
    <groupId>cn.smartjavaai</groupId>
    <artifactId>smartjavaai-all</artifactId>
    <version>1.0.24</version>
</dependency>

3、完整示例代码

示例代码

4、文档地址

开发文档

5、模型简介及下载

模型下载

人脸模块

人脸检测模型(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 是一种在目标检测基础上,同时为每个物体生成像素级分割区域的深度学习模型

OBB旋转框目标检测模型

模型名称 引擎 模型简介 模型开源网站
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

OCR 模型

支持功能:

  • 支持简体中文、繁体中文、英文、日文四种主要语言
  • 手写、竖版、拼音、生僻字
  • 方向矫正

文本检测模型

模型名称 模型简介 模型开源网站
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

🙏 鸣谢

本项目在开发过程中借鉴或使用了以下优秀开源项目,特此致谢:

联系方式

如您在使用过程中有任何问题或建议,欢迎添加微信,与我们交流并加入用户交流群

🚀 如果这个项目对你有帮助,别忘了点个 Star ⭐!你的支持是我持续优化升级的动力! ❤️

献代码的步骤

1、在Gitee或者Github/Gitcode上fork项目到自己的repo

2、把fork过去的项目也就是你的项目clone到你的本地

3、修改代码(记得一定要修改dev分支)

4、commit后push到自己的库(dev分支)

5、登录Gitee或Github/Gitcode在你首页可以看到一个 pull request 按钮,点击它,填写一些说明信息,然后提交即可。

6、等待维护者合并

近期更新日志

[v1.0.24] - 2025-09-07

  • 【人脸检测】新增6个模型(MTCNN、YOLOV5、RetinaFace小尺寸版),大幅提升性能
  • 【人脸识别】新增Seetaface6轻量模型
  • 【目标检测】支持视频流目标检测(rtsp、视频文件等)
  • 【目标检测】支持tensorflow2目标检测模型
  • 【目标检测】新增行人检测模型(yolo-person)
  • 【通用视觉】新增4个动作识别模型
  • 【通用视觉】新增语义分割模型
  • 【通用视觉】新增5个实例分割模型(含yolov8-seg、yolov11-seg)
  • 【通用视觉】新增yolo-obb11旋转框检测(含yolov11-obb)
  • 【通用视觉】新增5个姿态估计模型(含yolov8-pose、yolov11-pose)

[v1.0.23] - 2025-08-09

  • 新增 语音识别模块,集成 OpenAI 开源的 Whisper 和 Vosk
  • 修复 质量评估模型的 Bug
  • 修复 OCR 模块 recognizeAndDraw 方法的 Bug
  • 修复 车牌识别在未检测到车牌时的报错问题
  • 优化 OCR 表格识别功能,新增导出方式

[v1.0.22] - 2025-07-28

  • 新增 Milvus 身份验证支持
  • 集成车牌识别模型,支持车牌检测与识别
  • 目标检测功能升级:可指定类别及topk
  • 支持自定义线程池线程数量

[v1.0.20] - 2025-07-18

  • OCR:新增表格识别模型
  • OCR:新增9个通用模型
  • OCR:支持批量检测识别
  • OCR:新增更多参数,使用更加灵活
  • 人脸识别:支持ID查询及分页获取人脸信息
  • 活体检测:视频检测支持设置最大帧数

About

🔥🔥🔥Java免费离线AI算法工具箱,支持人脸识别,人脸属性检测,活体检测,人脸表情识别、目标检测(支持 YOLO,SSD、自训练模型)、OCR文字识别、车牌识别、表格识别、语音识别、机器翻译等功能,Maven 引用即可使用。已集成 InsightFace、SeetaFace6、YOLOv8、PaddleOCR (PPOCRv5)、Whisper、Vosk等主流模型

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages