From 7b3426f231d1fbe311c523759a30edc33a57c2df Mon Sep 17 00:00:00 2001
From: dengwenjie <775747758@qq.com>
Date: Wed, 24 Dec 2025 11:23:04 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9EDockerfile=E5=8F=8A=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81=E7=A4=BA=E4=BE=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
examples/face-example/Dockerfile | 35 +++++++++
examples/face-example/pom.xml | 2 +-
.../java/smartai/examples/face/FaceDemo.java | 73 +++++++++++++++++++
examples/ocr-examples/Dockerfile | 35 +++++++++
examples/speech-examples/Dockerfile | 35 +++++++++
examples/translation-example/Dockerfile | 35 +++++++++
examples/vision-example/Dockerfile | 35 +++++++++
7 files changed, 249 insertions(+), 1 deletion(-)
create mode 100644 examples/face-example/Dockerfile
create mode 100644 examples/face-example/src/main/java/smartai/examples/face/FaceDemo.java
create mode 100644 examples/ocr-examples/Dockerfile
create mode 100644 examples/speech-examples/Dockerfile
create mode 100644 examples/translation-example/Dockerfile
create mode 100644 examples/vision-example/Dockerfile
diff --git a/examples/face-example/Dockerfile b/examples/face-example/Dockerfile
new file mode 100644
index 0000000..45829d4
--- /dev/null
+++ b/examples/face-example/Dockerfile
@@ -0,0 +1,35 @@
+# 使用官方 Ubuntu 22.04 作为基础
+FROM ubuntu:22.04
+
+# 设置工作目录(可选,但推荐)
+WORKDIR /app
+
+# 更新 apt 仓库并安装 OpenJDK 11
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends openjdk-11-jdk && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
+
+
+# (可选) 验证 Java 安装 (可以选择添加你的应用程序,并编译运行,或者只是执行 java -version)
+RUN java -version
+
+# 设置默认的模型路径环境变量
+ENV SMART_MODEL_PATH=/app/models
+
+# 创建该目录
+RUN mkdir -p /app/models
+
+# 挂载
+VOLUME ["/app/models"]
+
+# UTF-8
+ENV LANG=zh_CN.UTF-8
+ENV LC_ALL=zh_CN.UTF-8
+
+
+# 声明服务运行在8080端口
+EXPOSE 8080
+
+# 指定docker容器启动时运行jar包
+ENTRYPOINT ["java", "-Dfile.encoding=UTF-8", "-jar", "app.jar"]
diff --git a/examples/face-example/pom.xml b/examples/face-example/pom.xml
index 38a2725..4b34106 100644
--- a/examples/face-example/pom.xml
+++ b/examples/face-example/pom.xml
@@ -14,7 +14,7 @@
UTF-8
1.1.0
- smartai.examples.face.facedet.FaceDetDemo
+ smartai.examples.face.FaceDemo
1.5.10
diff --git a/examples/face-example/src/main/java/smartai/examples/face/FaceDemo.java b/examples/face-example/src/main/java/smartai/examples/face/FaceDemo.java
new file mode 100644
index 0000000..e3f6e1d
--- /dev/null
+++ b/examples/face-example/src/main/java/smartai/examples/face/FaceDemo.java
@@ -0,0 +1,73 @@
+package smartai.examples.face;
+
+import ai.djl.modality.cv.Image;
+import cn.smartjavaai.common.config.Config;
+import cn.smartjavaai.common.cv.SmartImageFactory;
+import cn.smartjavaai.common.entity.DetectionInfo;
+import cn.smartjavaai.common.entity.DetectionResponse;
+import cn.smartjavaai.common.entity.R;
+import cn.smartjavaai.common.utils.ImageUtils;
+import cn.smartjavaai.face.config.FaceDetConfig;
+import cn.smartjavaai.face.constant.FaceDetectConstant;
+import cn.smartjavaai.face.enums.FaceDetModelEnum;
+import cn.smartjavaai.face.factory.FaceDetModelFactory;
+import cn.smartjavaai.face.model.facedect.FaceDetModel;
+import cn.smartjavaai.face.utils.FaceUtils;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.InputStream;
+
+/**
+ * @author dwj
+ * @date 2025/12/23
+ */
+@Slf4j
+public class FaceDemo {
+
+ public static String MODEL_PATH = "";
+
+ /**
+ * 获取人脸检测模型
+ * 注意事项:极速模型,识别准确度低,速度快
+ * @return
+ */
+ public static FaceDetModel getFaceDetModel(){
+ FaceDetConfig config = new FaceDetConfig();
+ //人脸检测模型,SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
+ config.setModelEnum(FaceDetModelEnum.YOLOV5_FACE_320);
+ //下载模型并替换本地路径,下载地址:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234
+ config.setModelPath(MODEL_PATH + "/face_model/yolo-face/yolov5face-n-0.5-320x320.onnx");
+ //只返回相似度大于该值的人脸,需要根据实际情况调整,分值越大越严格容易漏检,分值越小越宽松容易误识别
+ config.setConfidenceThreshold(0.5f);
+ //用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
+ config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);
+ return FaceDetModelFactory.getInstance().getModel(config);
+ }
+
+
+ public static void main(String[] args) {
+ try {
+ MODEL_PATH = System.getenv("SMART_MODEL_PATH");
+ log.info("MODEL_PATH:" + MODEL_PATH);
+ Config.setCachePath("/app/smartjavaai_cache");
+
+ FaceDetModel faceModel = getFaceDetModel();
+ InputStream is = FaceDemo.class
+ .getClassLoader()
+ .getResourceAsStream("iu_1.jpg");
+ //创建Image对象,可以从文件、url、InputStream创建、BufferedImage、Base64创建,具体使用方法可以查看文档
+ Image image = SmartImageFactory.getInstance().fromInputStream(is);
+ R detectedResult = faceModel.detect(image);
+ if(detectedResult.isSuccess()){
+ log.info("人脸检测结果:{}", JSONObject.toJSONString(detectedResult.getData()));
+ }else{
+ log.info("人脸检测失败:{}", detectedResult.getMessage());
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+
+}
diff --git a/examples/ocr-examples/Dockerfile b/examples/ocr-examples/Dockerfile
new file mode 100644
index 0000000..45829d4
--- /dev/null
+++ b/examples/ocr-examples/Dockerfile
@@ -0,0 +1,35 @@
+# 使用官方 Ubuntu 22.04 作为基础
+FROM ubuntu:22.04
+
+# 设置工作目录(可选,但推荐)
+WORKDIR /app
+
+# 更新 apt 仓库并安装 OpenJDK 11
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends openjdk-11-jdk && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
+
+
+# (可选) 验证 Java 安装 (可以选择添加你的应用程序,并编译运行,或者只是执行 java -version)
+RUN java -version
+
+# 设置默认的模型路径环境变量
+ENV SMART_MODEL_PATH=/app/models
+
+# 创建该目录
+RUN mkdir -p /app/models
+
+# 挂载
+VOLUME ["/app/models"]
+
+# UTF-8
+ENV LANG=zh_CN.UTF-8
+ENV LC_ALL=zh_CN.UTF-8
+
+
+# 声明服务运行在8080端口
+EXPOSE 8080
+
+# 指定docker容器启动时运行jar包
+ENTRYPOINT ["java", "-Dfile.encoding=UTF-8", "-jar", "app.jar"]
diff --git a/examples/speech-examples/Dockerfile b/examples/speech-examples/Dockerfile
new file mode 100644
index 0000000..45829d4
--- /dev/null
+++ b/examples/speech-examples/Dockerfile
@@ -0,0 +1,35 @@
+# 使用官方 Ubuntu 22.04 作为基础
+FROM ubuntu:22.04
+
+# 设置工作目录(可选,但推荐)
+WORKDIR /app
+
+# 更新 apt 仓库并安装 OpenJDK 11
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends openjdk-11-jdk && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
+
+
+# (可选) 验证 Java 安装 (可以选择添加你的应用程序,并编译运行,或者只是执行 java -version)
+RUN java -version
+
+# 设置默认的模型路径环境变量
+ENV SMART_MODEL_PATH=/app/models
+
+# 创建该目录
+RUN mkdir -p /app/models
+
+# 挂载
+VOLUME ["/app/models"]
+
+# UTF-8
+ENV LANG=zh_CN.UTF-8
+ENV LC_ALL=zh_CN.UTF-8
+
+
+# 声明服务运行在8080端口
+EXPOSE 8080
+
+# 指定docker容器启动时运行jar包
+ENTRYPOINT ["java", "-Dfile.encoding=UTF-8", "-jar", "app.jar"]
diff --git a/examples/translation-example/Dockerfile b/examples/translation-example/Dockerfile
new file mode 100644
index 0000000..45829d4
--- /dev/null
+++ b/examples/translation-example/Dockerfile
@@ -0,0 +1,35 @@
+# 使用官方 Ubuntu 22.04 作为基础
+FROM ubuntu:22.04
+
+# 设置工作目录(可选,但推荐)
+WORKDIR /app
+
+# 更新 apt 仓库并安装 OpenJDK 11
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends openjdk-11-jdk && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
+
+
+# (可选) 验证 Java 安装 (可以选择添加你的应用程序,并编译运行,或者只是执行 java -version)
+RUN java -version
+
+# 设置默认的模型路径环境变量
+ENV SMART_MODEL_PATH=/app/models
+
+# 创建该目录
+RUN mkdir -p /app/models
+
+# 挂载
+VOLUME ["/app/models"]
+
+# UTF-8
+ENV LANG=zh_CN.UTF-8
+ENV LC_ALL=zh_CN.UTF-8
+
+
+# 声明服务运行在8080端口
+EXPOSE 8080
+
+# 指定docker容器启动时运行jar包
+ENTRYPOINT ["java", "-Dfile.encoding=UTF-8", "-jar", "app.jar"]
diff --git a/examples/vision-example/Dockerfile b/examples/vision-example/Dockerfile
new file mode 100644
index 0000000..45829d4
--- /dev/null
+++ b/examples/vision-example/Dockerfile
@@ -0,0 +1,35 @@
+# 使用官方 Ubuntu 22.04 作为基础
+FROM ubuntu:22.04
+
+# 设置工作目录(可选,但推荐)
+WORKDIR /app
+
+# 更新 apt 仓库并安装 OpenJDK 11
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends openjdk-11-jdk && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
+
+
+# (可选) 验证 Java 安装 (可以选择添加你的应用程序,并编译运行,或者只是执行 java -version)
+RUN java -version
+
+# 设置默认的模型路径环境变量
+ENV SMART_MODEL_PATH=/app/models
+
+# 创建该目录
+RUN mkdir -p /app/models
+
+# 挂载
+VOLUME ["/app/models"]
+
+# UTF-8
+ENV LANG=zh_CN.UTF-8
+ENV LC_ALL=zh_CN.UTF-8
+
+
+# 声明服务运行在8080端口
+EXPOSE 8080
+
+# 指定docker容器启动时运行jar包
+ENTRYPOINT ["java", "-Dfile.encoding=UTF-8", "-jar", "app.jar"]