favicon

master

README
Others

🍬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种表情检测

图像分类
(Image Classification)

目标检测(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种语言
- 支持实时语音识别

语音合成(ASR)

CLIP

- 文搜图
- 图搜图
- 图搜文

🚀 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种表情识别
    • 人脸质量评估:亮度评估、清晰度评估、完整度评估、姿态评估、遮挡评估
  • 图像分类
    • 支持多种主流模型:集成 YOLOv8、YOLOv11 等分类模型
    • 支持自定义模型加载:可无缝加载并部署用户自行训练的分类模型
  • 目标检测
    • 支持多种主流模型:集成 YOLOv5、YOLOv8、YOLOv11、YOLOv12、Tensorflow Object Detection 等目标检测模型
    • 支持自定义模型加载:可无缝加载并部署用户自行训练的目标检测模型
    • 集成行人检测模型
  • 语义分割
    • 集成DeepLabV3模型
  • 实例分割
    • 集成YOLOv8-seg、YOLOv11-seg、Mask R-CNN等模型
  • OBB旋转框目标检测
    • 集成YOLOv11-obb模型
  • 动作识别
    • 支持KINETICS400数据集中400个人类动作识别
  • 姿态估计
    • 集成YOLOv8-pose、YOLOv11-pose等模型
  • CLIP
    • 支持提取图片及文本特征
    • 支持文搜图、图搜文、图搜图
  • OCR文字识别
    • 支持PaddleOCR 3.0模型:集成最新PP-OCRv5、PP-OCRv4、表格结构识别模型(SLANet_plus)、文本行方向分类模型
    • 支持任意角度识别,方向校准
    • 支持通用文字识别,通用手写字识别
    • 支持表格识别
    • 支持中文车牌识别:单层/双层检测,颜色识别,支持12种中文车牌
  • 机器翻译
    • 集成NLLB-200模型:支持200+语言互相翻译
  • 语音识别(ASR)
    • 集成openai的whisper模型:支持100种语言
    • 集成vosk语音识别
    • 集成sherpa-onnx语音识别
  • 语音合成(TTS)
    • 集成sherpa-onnx:支持中文、方言、粤语、英文、德语等多种语言

🌟 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知识
❌ 需处理模型加载、预处理、后处理等复杂技术细节
SmartJavaAIjava深度学习工具包✅ 支持主流深度学习框架
✅ 提供丰富、开箱即用API
✅ 上手简单,单一Jar包集成

🛠️包含组件

模块介绍
common基础通用模块,封装了公共功能,供各算法模块共享使用
bom依赖管理模块
face人脸功能模块
vision通用视觉模块(目标检测等功能)
ocrOCR文字识别模块
translate机器翻译模块
speech语音功能模块,包含 ASR 和 TTS

可以根据需求对每个模块单独引入,也可以通过引入all方式引入所有模块。


SmartJavaAI 架构图


📦 安装

1、环境要求

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

2、Maven

在项目的 pom.xmldependencies 中可以一次性引入全部功能(如下所示)。

⚠️ 注意:不推荐直接引入全部依赖,更推荐根据实际需求,按功能模块单独引入,避免引入不必要的包。

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

<dependency> <groupId>cn.smartjavaai</groupId> <artifactId>all</artifactId> <version>1.0.27</version></dependency>

3、完整示例代码

示例代码

本项目在 examples 文件夹下提供了多个示例工程,用于演示各功能模块的使用方法:

  • face-example:人脸检测、人脸识别等功能示例
  • vision-example:通用视觉检测示例:目标检测、目标分割、图像分类等
  • ocr-example:OCR文字识别、车牌识别等功能示例
  • translate-example:机器翻译功能示例
  • speech-example:语音识别、语音合成功能示例

运行方式

如果你只想运行某个示例,请按以下方式操作:

  1. 打开 IDEA(或你喜欢的 IDE)

  2. 选择 “Open”,然后仅导入 examples 目录下对应的示例项目,例如:

    examples/face-example
  3. IDEA 会自动识别并加载依赖。若首次导入,请等待 Maven 下载依赖完成。

  4. 请从我们提供的 百度网盘 中下载模型及其附带文件,并在示例代码中将模型路径修改为您本地的实际路径。

  5. 可通过查看每个 Java 文件顶部的注释了解对应功能,或参考 README 文件中对各 Java 文件功能的说明,运行相应的测试方法进行体验。

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(极速)OnnxRuntimeYOLOv5 小型人脸检测模型,设计轻量,适合快速推理
yolov5face_m_640x640(极速)OnnxRuntimeYOLOv5 中型人脸检测模型
UltraLightFastGenericFace(极速)PyTorch针对边缘计算设备设计的轻量人脸检测模型Github

人脸识别模型(FaceRecognition)

模型名称引擎模型简介模型开源网站
InsightFace_IR-SE50(高精度)PyTorch这是对 ArcFace(论文)和 InsightFace(GitHub)的 PyTorch 重新实现Github
InsightFace_Mobilefacenet(极速)PyTorch(轻量级)这是对 ArcFace(论文)和 InsightFace(GitHub)的 PyTorch 重新实现Github
FaceNetPyTorch基于 PyTorch 的 Inception ResNet(V1)模型仓库Github
ElasticFacePyTorch基于 CVPRW2022 论文《ElasticFace: Elastic Margin Loss for Deep Face Recognition》实现的人脸识别模型Github
SeetaFace6C++中科视拓最新开放的开源免费的全栈人脸识别工具包Github
SphereFace-20APyTorch+OnnxRuntimeSphereFace:Deep Hypersphere Embedding for Face RecognitionGithub
DREAM_IJBA_RES18OnnxRuntimeDREAM block for Pose-Robust Face RecognitionGithub
face.evoLVePyTorchHigh-Performance Face Recognition Library based on PaddlePaddle & PyTorchGithub
VGGFace2PyTorchPyTorch Face Recognizer based on 'VGGFace2: A dataset for recognising faces across pose and age'.Github

静态活体检测(RGB)模型(Silent face-anti-spoofing、FaceLivenessDetection)

模型名称引擎模型简介模型开源网站
MiniVisionOnnxRuntime小视科技的静默活体检测Github
IIC_FL(cv_manual_face-liveness_flrgb)OnnxRuntime阿里通义工作室人脸活体检测模型-RGB魔塔
SeetaFace6C++中科视拓最新开放的开源免费的全栈人脸识别工具包Github

人脸表情识别模型(FacialExpressionRecognition、fer)

支持功能:

  • 支持识别7种表情:neutral(中性)、happy(高兴)、sad(悲伤)、surprise(惊讶)、fear(恐惧)、disgust(厌恶)、anger(愤怒)
模型名称引擎模型简介模型开源网站
DensNet121PyTorchFaceLib的densnet121表情识别模型Github
FrEmotionOnnxRuntimeFaceRecognition-LivenessDetection-JavascriptGithub

人脸属性识别模型(GenderDetection、AgeDetection、EyeClosenessDetection、FacePoseEstimation)

支持功能:

  • 性别检测
  • 年龄检测
  • 闭眼检测
  • 人脸姿态检测
  • 戴口罩检测
模型名称模型简介模型开源网站
SeetaFace6中科视拓最新开放的开源免费的全栈人脸识别工具包Github

人脸质量评估模型(FaceQualityAssessment)

支持功能:

  • 亮度评估
  • 清晰度评估
  • 完整度评估
  • 姿态评估
  • 遮挡评估
模型名称模型简介模型开源网站
SeetaFace6中科视拓最新开放的开源免费的全栈人脸识别工具包Github

图像分类模型(CLS)

YOLO 系列

模型名称引擎模型简介模型开源网站
YOLOV11-clsOnnxRuntime最流行的图像分类模型Github
YOLOV8-clsOnnxRuntime最流行的图像分类模型Github

目标检测模型

YOLO 系列

模型名称引擎模型简介模型开源网站
YOLOV12OnnxRuntime最流行的目标检测模型Github
YOLOV11OnnxRuntime最流行的目标检测模型Github
YOLOV8OnnxRuntime最流行的目标检测模型Github

Tensorflow系列

仅测试了以下Tensorflow目标检测模型

模型名称引擎模型简介模型开源网站
EfficientDetTensorflowTensorflow目标检测Github
SSD MobileNet V2TensorflowTensorflow目标检测Github
Faster RCNN Inception Resnet V2TensorflowTensorflow目标检测Github

SSD 系列

模型名称引擎骨干网络输入尺寸
训练数据集
精度(mAP)
推理速度
适用场景
SSD_300_RESNET5PyTorchResNet‑50300×300COCO中等精度需求一般
SSD_512_RESNET50_V1_VOCPyTorchResNet‑50512×512Pascal VOC稍高中等精度优先、可接受略低速度的场景
SSD_512_VGG16_ATROUS_COCOMXNetVGG‑16512×512COCO较高中等通用场景;对小目标有一定提升
SSD_300_VGG16_ATROUS_VOCMXNetVGG‑16300×300Pascal VOC中等偏上VOC 数据集同类任务;资源受限时使用
SSD_512_MOBILENET1_VOCMXNetMobileNet‑1.0512×512Pascal VOC中等嵌入式/移动端设备;算力和内存都很有限

语义分割模型

模型名称引擎模型简介模型开源网站
DeepLabv3PyTorchDeepLabv3 是一种图像分割模型,可以把图片里的每个像素分类出来

实例分割模型

模型名称引擎模型简介模型开源网站
YOLOV8-SEGOnnxRuntimeUltralytics在COCO 数据集 上训练的模型Github
YOLOV11-SEGOnnxRuntimeUltralytics在COCO 数据集 上训练的模型Github
Mask R-CNNMXNetMask R-CNN 是一种在目标检测基础上,同时为每个物体生成像素级分割区域的深度学习模型

CLIP模型(Connecting text and images)

模型名称引擎模型简介模型开源网站
clip-vit-base-patch32PyTorchopenai的图片及文本特征提取模型Github

OBB旋转框目标检测模型

模型名称引擎模型简介模型开源网站
YOLOV11-OBBOnnxRuntimeUltralytics在DOTAv1 数据集 上训练的模型、通过引入一个额外的角度来更准确地定位图像中的对象Github

行人检测模型

模型名称引擎模型开源网站
YOLOV8_PERSONOnnxRuntimeGithub

人类动作识别模型

模型名称引擎
VIT_BASE_PATCH16PyTorch
INCEPTIONV3_KINETICS400OnnxRuntime
INCEPTIONV1_KINETICS400OnnxRuntime
RESNET_V1B_KINETICS400OnnxRuntime

姿态估计模型

模型名称引擎模型开源网站
YOLO11N-POSEOnnxRuntimeGithub
YOLO8N-POSEOnnxRuntimeGithub
SIMPLE_POSEMXNet

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-sYOLOv7-Lite 架构的轻量级车牌检测模型Github

车牌识别模型(License Plate Recognition)

模型名称模型简介模型开源网站
PLATE_REC_CRNNCRNN中文字符识别Github

机器翻译模型

支持功能

  • 200多语言互相翻译
模型名称模型简介模型官网
NLLB-200Meta AI 开发的一个先进的单一多语言机器翻译模型Github
OPUS_MT_ZH_ENHelsinki-NLP团队开发的中英翻译模型,基于Transformer架构huggingface
OPUS_MT_EN_ZHHelsinki-NLP团队开发的英中翻译模型,基于Transformer架构huggingface

语音识别模型(ASR)

这里仅介绍模型的开源项目,每个开源项目通常包含多个具体模型,本文不逐一列出。

模型名称模型简介模型官网
WhisperOpenAI 开源的通用语音识别(ASR)模型,支持多语言转写和翻译,具有较高的识别精度,尤其在嘈杂环境中表现良好,适合离线和批量音频处理。Github
Vosk一个轻量级离线语音识别工具包,支持多种语言和平台(包括移动端与嵌入式设备),可在低资源环境中运行,适合实时语音识别场景。Github
sherpa-onnxSherpa-ONNX 是一个基于 ONNX Runtime 的ASR 及 TTS 推理框架Github

语音合成模型(TTS)

这里仅介绍模型的开源项目,每个开源项目通常包含多个具体模型,本文不逐一列出。

模型名称模型简介模型官网
sherpa-onnxSherpa-ONNX 是一个基于 ONNX Runtime 的ASR 及 TTS 推理框架Github

🙏 鸣谢

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

联系方式

如您在使用过程中有任何问题、建议,或希望进行技术交流与合作,欢迎添加微信与我联系,并加入用户交流群。

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

献代码的步骤

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

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

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

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

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

6、等待维护者合并

下载使用量

905

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新

发行版

暂无数据

语言类型

Java
99.98%
SQL
0.02%