1. 项目简介

SmartJavaAI 是一个专为 Java 开发者设计的轻量级深度学习算法库,旨在帮助开发者快速集成各种智能算法,无需安装 Python 环境。它支持多种深度学习引擎,包括 PyTorch、TensorFlow、MXNet 和 ONNX Runtime。目前,SmartJavaAI 主要支持人脸检测、人脸比对、目标检测等功能。

2. 安装步骤

在 Maven 项目的 pom.xml 文件中添加以下依赖:

<dependencies>
    <dependency>
        <groupId>ink.numberone</groupId>
        <artifactId>smartjavaai-face</artifactId>
        <version>1.0.6</version>
    </dependency>
</dependencies>
3. 示例用法代码
3.1 人脸检测

使用默认的人脸检测算法(RetinaFace):

// 创建人脸算法
FaceAlgorithm currentAlgorithm = FaceAlgorithmFactory.createFaceAlgorithm();
// 使用图片路径检测
FaceDetectedResult result = currentAlgorithm.detect("src/main/resources/largest_selfie.jpg");
3.2 轻量人脸检测

使用轻量级人脸检测算法(Ultra-Light-Fast-Generic-Face-Detector):

// 创建人脸算法
FaceAlgorithm currentAlgorithm = FaceAlgorithmFactory.createLightFaceAlgorithm();
// 使用图片路径检测
FaceDetectedResult result = currentAlgorithm.detect("src/main/resources/largest_selfie.jpg");
3.3 使用图片输入流检测
// 支持各种输入流方式检测图片
File input = new File("src/main/resources/largest_selfie.jpg");
FaceDetectedResult result = currentAlgorithm.detect(new FileInputStream(input));
3.4 人脸比对(1:1)
// 初始化配置
ModelConfig config = new ModelConfig();
config.setAlgorithmName("seetaface6"); // 目前支持人脸比对的算法只有:seetaface6
config.setFaceDbPath("C:/Users/Administrator/Downloads/faces-data.db"); // 人脸库路径
config.setModelPath("/opt/sf3.0_models"); // 模型存放路径

// 创建人脸算法
FaceAlgorithm currentAlgorithm = FaceAlgorithmFactory.createFaceAlgorithm(config);

// 自动裁剪人脸并比对人脸特征
float similar = currentAlgorithm.featureComparison("src/main/resources/kana1.jpg", "src/main/resources/kana2.jpg");
log.info("相似度:{}", similar);
4. 离线使用方法

如果需要在无网络环境下使用,可以手动下载模型并指定本地模型路径。例如:

// 初始化配置
ModelConfig config = new ModelConfig();
config.setAlgorithmName("retinaface");
config.setModelPath("/path/to/local/retinaface.pt"); // 指定本地模型路径

// 创建人脸算法
FaceAlgorithm currentAlgorithm = FaceAlgorithmFactory.createFaceAlgorithm(config);
5. 目标检测

目标检测功能的示例代码可以参考以下内容:

// 创建目标检测算法
ObjectDetectionAlgorithm objectDetectionAlgorithm = ObjectDetectionAlgorithmFactory.createObjectDetectionAlgorithm();

// 使用图片路径进行目标检测
ObjectDetectionResult result = objectDetectionAlgorithm.detect("src/main/resources/image.jpg");

项目地址

通过这些示例代码和配置,开发者可以快速上手使用 SmartJavaAI 实现各种 AI 功能。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐