diff --git a/examples/src/main/resources/kana1.jpg b/examples/src/main/resources/kana1.jpg new file mode 100644 index 0000000..ef364e0 Binary files /dev/null and b/examples/src/main/resources/kana1.jpg differ diff --git a/examples/src/main/resources/kana2.jpg b/examples/src/main/resources/kana2.jpg new file mode 100644 index 0000000..59c9e52 Binary files /dev/null and b/examples/src/main/resources/kana2.jpg differ diff --git a/output.jpg b/output.jpg deleted file mode 100644 index 974fd32..0000000 Binary files a/output.jpg and /dev/null differ diff --git a/smartjavaai-common/src/main/java/cn/smartjavaai/common/entity/Point.java b/smartjavaai-common/src/main/java/cn/smartjavaai/common/entity/Point.java index 0dbe960..e2f519d 100644 --- a/smartjavaai-common/src/main/java/cn/smartjavaai/common/entity/Point.java +++ b/smartjavaai-common/src/main/java/cn/smartjavaai/common/entity/Point.java @@ -7,7 +7,6 @@ import java.io.Serializable; /** * 点 * @author dwj - * @date 2025/2/19 */ public class Point implements Serializable { private static final long serialVersionUID = 1L; diff --git a/smartjavaai-common/src/main/java/cn/smartjavaai/common/entity/Rectangle.java b/smartjavaai-common/src/main/java/cn/smartjavaai/common/entity/Rectangle.java index f5a8655..dad5e90 100644 --- a/smartjavaai-common/src/main/java/cn/smartjavaai/common/entity/Rectangle.java +++ b/smartjavaai-common/src/main/java/cn/smartjavaai/common/entity/Rectangle.java @@ -5,7 +5,6 @@ import java.util.List; /** * 矩形区域 * @author dwj - * @date 2025/2/19 */ public class Rectangle { diff --git a/smartjavaai-face/pom.xml b/smartjavaai-face/pom.xml index 5abae2d..cf369b0 100644 --- a/smartjavaai-face/pom.xml +++ b/smartjavaai-face/pom.xml @@ -10,10 +10,20 @@ smartjavaai-face + 1.0.0 + smartjavaai-face + SmartJavaAI + https://github.com/geekwenjie/SmartJavaAI + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + - 8 - 8 + 11 + 11 UTF-8 @@ -27,7 +37,4 @@ - - - diff --git a/smartjavaai-face/src/main/java/cn/smartjavaai/face/AbstractFaceAlgorithm.java b/smartjavaai-face/src/main/java/cn/smartjavaai/face/AbstractFaceAlgorithm.java index 366cfe4..01d3feb 100644 --- a/smartjavaai-face/src/main/java/cn/smartjavaai/face/AbstractFaceAlgorithm.java +++ b/smartjavaai-face/src/main/java/cn/smartjavaai/face/AbstractFaceAlgorithm.java @@ -5,7 +5,6 @@ import java.io.InputStream; /** * 人脸识别算法 * @author dwj - * @date 2025/2/20 */ public abstract class AbstractFaceAlgorithm implements FaceAlgorithm{ @Override diff --git a/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceAlgorithm.java b/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceAlgorithm.java index 7bff051..cb86889 100644 --- a/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceAlgorithm.java +++ b/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceAlgorithm.java @@ -10,7 +10,6 @@ import java.io.InputStream; /** * 人脸识别算法 * @author dwj - * @date 2025/2/19 */ public interface FaceAlgorithm { diff --git a/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceAlgorithmFactory.java b/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceAlgorithmFactory.java index 0051830..a491c0f 100644 --- a/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceAlgorithmFactory.java +++ b/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceAlgorithmFactory.java @@ -9,7 +9,6 @@ import java.util.concurrent.ConcurrentHashMap; /** * 人脸算法工厂 * @author dwj - * @date 2025/2/19 */ public class FaceAlgorithmFactory { diff --git a/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceConfig.java b/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceConfig.java index eabcc6c..ef6b92f 100644 --- a/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceConfig.java +++ b/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceConfig.java @@ -2,7 +2,6 @@ package cn.smartjavaai.face; /** * @author dwj - * @date 2025/2/20 */ public class FaceConfig { diff --git a/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceDetectedResult.java b/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceDetectedResult.java index 24f80ad..e04d0c3 100644 --- a/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceDetectedResult.java +++ b/smartjavaai-face/src/main/java/cn/smartjavaai/face/FaceDetectedResult.java @@ -8,7 +8,6 @@ import java.util.List; /** * 人脸检测结果 * @author dwj - * @date 2025/2/19 */ public class FaceDetectedResult { diff --git a/smartjavaai-face/src/main/java/cn/smartjavaai/face/ModelConfig.java b/smartjavaai-face/src/main/java/cn/smartjavaai/face/ModelConfig.java index c378987..8b03c2f 100644 --- a/smartjavaai-face/src/main/java/cn/smartjavaai/face/ModelConfig.java +++ b/smartjavaai-face/src/main/java/cn/smartjavaai/face/ModelConfig.java @@ -3,7 +3,6 @@ package cn.smartjavaai.face; /** * 模型配置 * @author dwj - * @date 2025/2/19 */ public class ModelConfig { diff --git a/smartjavaai-face/src/main/java/cn/smartjavaai/face/Test.java b/smartjavaai-face/src/main/java/cn/smartjavaai/face/Test.java deleted file mode 100644 index 286cfcb..0000000 --- a/smartjavaai-face/src/main/java/cn/smartjavaai/face/Test.java +++ /dev/null @@ -1,62 +0,0 @@ -package cn.smartjavaai.face; - -import cn.smartjavaai.common.entity.Rectangle; - -import javax.imageio.ImageIO; -import java.awt.*; -import java.awt.image.BufferedImage; -import java.io.File; -import java.io.FileInputStream; - -/** - * @author dwj - * @date 2025/2/19 - */ -public class Test { - - public static void main(String[] args) throws Exception { - // 初始化配置 - ModelConfig config = new ModelConfig(); - config.setAlgorithmName("retinaface"); - //config.setAlgorithmName("ultralightfastgenericface"); - //config.setModelPath("/Users/wenjie/Documents/idea_workplace/SmartJavaAI/models/retinaface.pt"); - config.setConfidenceThreshold(0.85f); - config.setMaxFaceCount(100); - config.setNmsThresh(0.45f); - - FaceAlgorithm currentAlgorithm = FaceAlgorithmFactory.createFaceAlgorithm(config); - File imageFile = new File("/Users/wenjie/Downloads/djl-master/examples/src/test/resources/largest_selfie.jpg"); - FaceDetectedResult result = currentAlgorithm.detect("/Users/wenjie/Downloads/djl-master/examples/src/test/resources/largest_selfie.jpg"); - //FaceDetectedResult result = currentAlgorithm.detect(new FileInputStream(imageFile)); - - - // 1. 加载原始图片 - File input = new File("/Users/wenjie/Downloads/djl-master/examples/src/test/resources/largest_selfie.jpg"); - BufferedImage image = ImageIO.read(input); - - // 2. 创建绘图上下文 - Graphics2D graphics = image.createGraphics(); - - // 3. 配置绘制参数 - graphics.setColor(Color.RED); // 边框颜色 - graphics.setStroke(new BasicStroke(2)); // 线宽2像素 - graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); // 抗锯齿 - - for(Rectangle rectangle : result.getRectangles()){ - // 4. 绘制矩形(左上角坐标x=50,y=100,宽200,高150) - graphics.drawRect(rectangle.getPointList().get(0).getX(), - rectangle.getPointList().get(0).getY(), rectangle.getWidth(), rectangle.getHeight()); - } - - - - // 5. 释放资源并保存 - graphics.dispose(); - ImageIO.write(image, "jpg", new File("output.jpg")); - - - System.out.println("111111"); - } - -} diff --git a/smartjavaai-face/src/main/java/cn/smartjavaai/face/algo/RetinaFace.java b/smartjavaai-face/src/main/java/cn/smartjavaai/face/algo/RetinaFace.java index 951214f..cc0bc5d 100644 --- a/smartjavaai-face/src/main/java/cn/smartjavaai/face/algo/RetinaFace.java +++ b/smartjavaai-face/src/main/java/cn/smartjavaai/face/algo/RetinaFace.java @@ -31,7 +31,6 @@ import java.util.stream.StreamSupport; /** * RetinaFace实现 * @author dwj - * @date 2025/2/19 */ public class RetinaFace extends AbstractFaceAlgorithm { diff --git a/smartjavaai-face/src/main/java/cn/smartjavaai/face/algo/UltraLightFastGenericFace.java b/smartjavaai-face/src/main/java/cn/smartjavaai/face/algo/UltraLightFastGenericFace.java index 169c291..3240993 100644 --- a/smartjavaai-face/src/main/java/cn/smartjavaai/face/algo/UltraLightFastGenericFace.java +++ b/smartjavaai-face/src/main/java/cn/smartjavaai/face/algo/UltraLightFastGenericFace.java @@ -22,7 +22,6 @@ import java.util.stream.Collectors; /** * @author dwj - * @date 2025/2/19 */ public class UltraLightFastGenericFace extends AbstractFaceAlgorithm {