前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >✿送你一朵小红花✿【人脸关键点检测】

✿送你一朵小红花✿【人脸关键点检测】

作者头像
小帅丶
发布2021-12-28 13:16:58
3430
发布2021-12-28 13:16:58
举报
文章被收录于专栏:XAIXAI

基于百度AI人脸检测实现。https://ai.baidu.com/ai-doc/FACE/yk37c1u4

效果演示

人脸检测

代码语言:javascript
复制
 public static void main(String[] args) throws Exception {
        
        AipFace client = new AipFace("", "", "");//替换成自己的应用信息。SDK自行Maven引入即可
        HashMap<String,String> options = new HashMap<>();
        options.put("max_face_num", "10");
        options.put("face_field", "landmark150");//只需要150个人脸关键点
        String filePath = "F:\\testimg\\demo-card-2.jpg";//人脸图片
        byte [] image = FileUtil.readFileByBytes(filePath);
        String base64 = Base64Util.encode(image);
        JSONObject object = client.detect(base64, "BASE64",options);
        System.out.println(object.toString(2));
        FaceLandMark150Bean bean = JSON.parseObject(object.toString(), FaceLandMark150Bean.class);
      
    }

FaceLandMark150Bean.java

代码有点多。150个关键点呢

代码语言:javascript
复制
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
 * @author 小帅丶
 * @className FaceLandMark150Bean
 * @Description 150关键点
 * @Date 2021-01-15-17:22
 **/
@NoArgsConstructor
@Data
public class FaceLandMark150Bean {

    private ResultBean result;
    private long log_id;
    private String error_msg;
    private int cached;
    private int error_code;
    private int timestamp;
    //增加小红花的图片
    private String deal_image;

    @NoArgsConstructor
    @Data
    public static class ResultBean {

        private int face_num;
        private List<FaceListBean> face_list;

        @NoArgsConstructor
        @Data
        public static class FaceListBean {

            private Landmark150Bean landmark150;
            private AngleBean angle;
            private String face_token;
            private LocationBean location;
            private int face_probability;

            @NoArgsConstructor
            @Data
            public static class Landmark150Bean {

                private EyeRightEyeballRightBean eye_right_eyeball_right;
                private MouthCornerRightInnerBean mouth_corner_right_inner;
                private CheekRight1Bean cheek_right_1;
                private CheekRight2Bean cheek_right_2;
                private CheekRight3Bean cheek_right_3;
                private CheekRight8Bean cheek_right_8;
                private CheekRight9Bean cheek_right_9;
                private CheekRight4Bean cheek_right_4;
                private CheekRight5Bean cheek_right_5;
                private CheekRight6Bean cheek_right_6;
                private CheekRight7Bean cheek_right_7;
                private MouthLipLowerOuter1Bean mouth_lip_lower_outer_1;
                private MouthLipLowerOuter2Bean mouth_lip_lower_outer_2;
                private MouthLipLowerOuter3Bean mouth_lip_lower_outer_3;
                private MouthLipLowerOuter4Bean mouth_lip_lower_outer_4;
                private EyeRightCornerLeftBean eye_right_corner_left;
                private MouthLipLowerOuter5Bean mouth_lip_lower_outer_5;
                private MouthCornerLeftOuterBean mouth_corner_left_outer;
                private EyebrowLeftCornerLeftBean eyebrow_left_corner_left;
                private NoseLeftContour7Bean nose_left_contour_7;
                private CheekRight11Bean cheek_right_11;
                private NoseLeftContour6Bean nose_left_contour_6;
                private EyeRightEyeballCenterBean eye_right_eyeball_center;
                private NoseLeftContour5Bean nose_left_contour_5;
                private NoseLeftContour4Bean nose_left_contour_4;
                private CheekLeft8Bean cheek_left_8;
                private CheekLeft7Bean cheek_left_7;
                private NoseLeftContour3Bean nose_left_contour_3;
                private CheekRight10Bean cheek_right_10;
                private NoseLeftContour2Bean nose_left_contour_2;
                private CheekLeft9Bean cheek_left_9;
                private NoseLeftContour1Bean nose_left_contour_1;
                private MouthLipLowerOuter6Bean mouth_lip_lower_outer_6;
                private CheekLeft4Bean cheek_left_4;
                private CheekLeft3Bean cheek_left_3;
                private MouthLipLowerOuter7Bean mouth_lip_lower_outer_7;
                private CheekLeft6Bean cheek_left_6;
                private MouthLipLowerOuter8Bean mouth_lip_lower_outer_8;
                private CheekLeft5Bean cheek_left_5;
                private MouthLipLowerOuter9Bean mouth_lip_lower_outer_9;
                private CheekLeft2Bean cheek_left_2;
                private CheekLeft1Bean cheek_left_1;
                private MouthLipUpperInner2Bean mouth_lip_upper_inner_2;
                private MouthLipUpperInner3Bean mouth_lip_upper_inner_3;
                private MouthLipUpperInner4Bean mouth_lip_upper_inner_4;
                private MouthLipUpperInner5Bean mouth_lip_upper_inner_5;
                private MouthCornerRightOuterBean mouth_corner_right_outer;
                private MouthLipUpperInner6Bean mouth_lip_upper_inner_6;
                private MouthLipUpperInner7Bean mouth_lip_upper_inner_7;
                private MouthLipUpperInner8Bean mouth_lip_upper_inner_8;
                private MouthLipUpperInner9Bean mouth_lip_upper_inner_9;
                private EyebrowLeftUpper1Bean eyebrow_left_upper_1;
                private EyebrowLeftUpper2Bean eyebrow_left_upper_2;
                private EyebrowLeftUpper5Bean eyebrow_left_upper_5;
                private EyebrowLeftUpper3Bean eyebrow_left_upper_3;
                private EyeLeftEyeballRightBean eye_left_eyeball_right;
                private EyebrowLeftUpper4Bean eyebrow_left_upper_4;
                private MouthLipUpperInner1Bean mouth_lip_upper_inner_1;
                private MouthLipUpperOuter11Bean mouth_lip_upper_outer_11;
                private MouthLipLowerInner7Bean mouth_lip_lower_inner_7;
                private MouthLipUpperOuter10Bean mouth_lip_upper_outer_10;
                private MouthLipLowerInner8Bean mouth_lip_lower_inner_8;
                private MouthLipLowerInner9Bean mouth_lip_lower_inner_9;
                private MouthLipLowerInner3Bean mouth_lip_lower_inner_3;
                private MouthLipLowerInner4Bean mouth_lip_lower_inner_4;
                private MouthLipLowerInner5Bean mouth_lip_lower_inner_5;
                private MouthLipLowerInner6Bean mouth_lip_lower_inner_6;
                private EyeLeftEyeballCenterBean eye_left_eyeball_center;
                private MouthLipLowerInner1Bean mouth_lip_lower_inner_1;
                private MouthLipLowerInner2Bean mouth_lip_lower_inner_2;
                private EyeRightCornerRightBean eye_right_corner_right;
                private MouthLipLowerOuter11Bean mouth_lip_lower_outer_11;
                private MouthLipLowerOuter10Bean mouth_lip_lower_outer_10;
                private EyeRightEyeballLeftBean eye_right_eyeball_left;
                private EyebrowRightLower2Bean eyebrow_right_lower_2;
                private EyebrowRightLower1Bean eyebrow_right_lower_1;
                private EyebrowRightLower3Bean eyebrow_right_lower_3;
                private MouthLipUpperOuter9Bean mouth_lip_upper_outer_9;
                private EyeLeftCornerRightBean eye_left_corner_right;
                private MouthLipUpperOuter5Bean mouth_lip_upper_outer_5;
                private MouthLipUpperOuter6Bean mouth_lip_upper_outer_6;
                private MouthLipUpperOuter7Bean mouth_lip_upper_outer_7;
                private MouthLipUpperOuter8Bean mouth_lip_upper_outer_8;
                private EyeLeftEyelidLower4Bean eye_left_eyelid_lower_4;
                private NoseRightContour6Bean nose_right_contour_6;
                private EyeLeftEyelidUpper5Bean eye_left_eyelid_upper_5;
                private EyeLeftEyelidUpper4Bean eye_left_eyelid_upper_4;
                private EyeLeftEyelidLower3Bean eye_left_eyelid_lower_3;
                private NoseRightContour7Bean nose_right_contour_7;
                private EyeLeftEyelidLower2Bean eye_left_eyelid_lower_2;
                private NoseRightContour4Bean nose_right_contour_4;
                private EyeLeftEyelidUpper7Bean eye_left_eyelid_upper_7;
                private EyeLeftEyelidUpper6Bean eye_left_eyelid_upper_6;
                private EyeLeftEyelidLower1Bean eye_left_eyelid_lower_1;
                private NoseRightContour5Bean nose_right_contour_5;
                private EyeLeftEyelidUpper1Bean eye_left_eyelid_upper_1;
                private MouthLipUpperOuter1Bean mouth_lip_upper_outer_1;
                private EyeLeftEyelidLower7Bean eye_left_eyelid_lower_7;
                private MouthLipUpperOuter2Bean mouth_lip_upper_outer_2;
                private EyebrowRightCornerLeftBean eyebrow_right_corner_left;
                private EyeLeftEyelidLower6Bean eye_left_eyelid_lower_6;
                private MouthLipUpperOuter3Bean mouth_lip_upper_outer_3;
                private EyeLeftEyelidUpper3Bean eye_left_eyelid_upper_3;
                private EyeLeftEyeballLeftBean eye_left_eyeball_left;
                private EyeLeftEyelidUpper2Bean eye_left_eyelid_upper_2;
                private EyeLeftEyelidLower5Bean eye_left_eyelid_lower_5;
                private MouthLipUpperOuter4Bean mouth_lip_upper_outer_4;
                private NoseTipBean nose_tip;
                private Chin3Bean chin_3;
                private Chin1Bean chin_1;
                private Chin2Bean chin_2;
                private EyebrowRightUpper1Bean eyebrow_right_upper_1;
                private EyeRightEyelidLower7Bean eye_right_eyelid_lower_7;
                private EyeRightEyelidLower6Bean eye_right_eyelid_lower_6;
                private EyebrowRightUpper5Bean eyebrow_right_upper_5;
                private EyebrowRightUpper4Bean eyebrow_right_upper_4;
                private EyebrowRightUpper3Bean eyebrow_right_upper_3;
                private EyebrowRightUpper2Bean eyebrow_right_upper_2;
                private MouthCornerLeftInnerBean mouth_corner_left_inner;
                private EyeRightEyelidUpper2Bean eye_right_eyelid_upper_2;
                private EyeRightEyelidUpper1Bean eye_right_eyelid_upper_1;
                private EyeRightEyelidUpper4Bean eye_right_eyelid_upper_4;
                private EyeRightEyelidUpper3Bean eye_right_eyelid_upper_3;
                private EyeRightEyelidLower1Bean eye_right_eyelid_lower_1;
                private EyeLeftCornerLeftBean eye_left_corner_left;
                private EyebrowLeftCornerRightBean eyebrow_left_corner_right;
                private EyeRightEyelidLower5Bean eye_right_eyelid_lower_5;
                private MouthLipUpperInner11Bean mouth_lip_upper_inner_11;
                private EyeRightEyelidLower4Bean eye_right_eyelid_lower_4;
                private EyeRightEyelidLower3Bean eye_right_eyelid_lower_3;
                private EyeRightEyelidLower2Bean eye_right_eyelid_lower_2;
                private MouthLipUpperInner10Bean mouth_lip_upper_inner_10;
                private MouthLipLowerInner10Bean mouth_lip_lower_inner_10;
                private MouthLipLowerInner11Bean mouth_lip_lower_inner_11;
                private EyebrowLeftLower3Bean eyebrow_left_lower_3;
                private CheekLeft10Bean cheek_left_10;
                private CheekLeft11Bean cheek_left_11;
                private EyebrowLeftLower2Bean eyebrow_left_lower_2;
                private EyebrowLeftLower1Bean eyebrow_left_lower_1;
                private NoseBridge1Bean nose_bridge_1;
                private NoseRightContour2Bean nose_right_contour_2;
                private NoseRightContour3Bean nose_right_contour_3;
                private NoseRightContour1Bean nose_right_contour_1;
                private NoseBridge2Bean nose_bridge_2;
                private NoseBridge3Bean nose_bridge_3;
                private EyebrowRightCornerRightBean eyebrow_right_corner_right;
                private NoseMiddleContourBean nose_middle_contour;
                private EyeRightEyelidUpper6Bean eye_right_eyelid_upper_6;
                private EyeRightEyelidUpper5Bean eye_right_eyelid_upper_5;
                private EyeRightEyelidUpper7Bean eye_right_eyelid_upper_7;

                @NoArgsConstructor
                @Data
                public static class EyeRightEyeballRightBean {
                    /**
                     * x : 138
                     * y : 239.55
                     */

                    private int x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthCornerRightInnerBean {
                    /**
                     * x : 164.09
                     * y : 336.51
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekRight1Bean {
                    /**
                     * x : 99.64
                     * y : 233.79
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekRight2Bean {
                    /**
                     * x : 100.68
                     * y : 247.63
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekRight3Bean {
                    /**
                     * x : 102.32
                     * y : 261.23
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekRight8Bean {
                    /**
                     * x : 127.24
                     * y : 330.89
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekRight9Bean {
                    /**
                     * x : 136.44
                     * y : 344.01
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekRight4Bean {
                    /**
                     * x : 105.09
                     * y : 275.38
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekRight5Bean {
                    /**
                     * x : 108.97
                     * y : 288.87
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekRight6Bean {
                    /**
                     * x : 113.8
                     * y : 303.02
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekRight7Bean {
                    /**
                     * x : 119.28
                     * y : 316.44
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerOuter1Bean {
                    /**
                     * x : 165.24
                     * y : 341.2
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerOuter2Bean {
                    /**
                     * x : 168.16
                     * y : 346.19
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerOuter3Bean {
                    /**
                     * x : 172.25
                     * y : 349.92
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerOuter4Bean {
                    /**
                     * x : 176.47
                     * y : 353.85
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightCornerLeftBean {
                    /**
                     * x : 162.62
                     * y : 246.55
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerOuter5Bean {
                    /**
                     * x : 182.08
                     * y : 355.92
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthCornerLeftOuterBean {
                    /**
                     * x : 215.9
                     * y : 334.73
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowLeftCornerLeftBean {
                    /**
                     * x : 267.54
                     * y : 214.74
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseLeftContour7Bean {
                    /**
                     * x : 200.24
                     * y : 304.08
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekRight11Bean {
                    /**
                     * x : 161.12
                     * y : 370.53
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseLeftContour6Bean {
                    /**
                     * x : 199.74
                     * y : 307.98
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyeballCenterBean {
                    /**
                     * x : 147.72
                     * y : 239.37
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseLeftContour5Bean {
                    /**
                     * x : 204.63
                     * y : 310.47
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseLeftContour4Bean {
                    /**
                     * x : 211.05
                     * y : 304.15
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekLeft8Bean {
                    /**
                     * x : 254.17
                     * y : 330.69
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekLeft7Bean {
                    /**
                     * x : 262.56
                     * y : 315.45
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseLeftContour3Bean {
                    /**
                     * x : 205.38
                     * y : 285.55
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekRight10Bean {
                    /**
                     * x : 148.49
                     * y : 357.53
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseLeftContour2Bean {
                    /**
                     * x : 201.87
                     * y : 266.01
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekLeft9Bean {
                    /**
                     * x : 244.54
                     * y : 344.64
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseLeftContour1Bean {
                    /**
                     * x : 198.29
                     * y : 246.47
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerOuter6Bean {
                    /**
                     * x : 187.95
                     * y : 355.61
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekLeft4Bean {
                    /**
                     * x : 276.5
                     * y : 271.53
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekLeft3Bean {
                    /**
                     * x : 279.26
                     * y : 256.54
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerOuter7Bean {
                    /**
                     * x : 194.08
                     * y : 355.89
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekLeft6Bean {
                    /**
                     * x : 268.15
                     * y : 301.03
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerOuter8Bean {
                    /**
                     * x : 200.02
                     * y : 353.58
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekLeft5Bean {
                    /**
                     * x : 273.24
                     * y : 285.84
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerOuter9Bean {
                    /**
                     * x : 204.72
                     * y : 349.49
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekLeft2Bean {
                    /**
                     * x : 280.73
                     * y : 242.11
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekLeft1Bean {
                    /**
                     * x : 281.65
                     * y : 227.2
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperInner2Bean {
                    /**
                     * x : 170.97
                     * y : 336.84
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperInner3Bean {
                    /**
                     * x : 175.18
                     * y : 337.32
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperInner4Bean {
                    /**
                     * x : 179.54
                     * y : 337.63
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperInner5Bean {
                    /**
                     * x : 183.61
                     * y : 338.18
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthCornerRightOuterBean {
                    /**
                     * x : 162.6
                     * y : 336.15
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperInner6Bean {
                    /**
                     * x : 187.65
                     * y : 338.91
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperInner7Bean {
                    /**
                     * x : 192.23
                     * y : 338.12
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperInner8Bean {
                    /**
                     * x : 196.59
                     * y : 337.41
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperInner9Bean {
                    /**
                     * x : 201.22
                     * y : 336.84
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowLeftUpper1Bean {
                    /**
                     * x : 205.43
                     * y : 215.18
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowLeftUpper2Bean {
                    /**
                     * x : 220.02
                     * y : 206.81
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowLeftUpper5Bean {
                    /**
                     * x : 267.54
                     * y : 212.99
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowLeftUpper3Bean {
                    /**
                     * x : 235.49
                     * y : 202.3
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyeballRightBean {
                    /**
                     * x : 225.79
                     * y : 237.57
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowLeftUpper4Bean {
                    /**
                     * x : 252.73
                     * y : 202.75
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperInner1Bean {
                    /**
                     * x : 167
                     * y : 336.52
                     */

                    private int x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperOuter11Bean {
                    /**
                     * x : 211.5
                     * y : 333.19
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerInner7Bean {
                    /**
                     * x : 192.38
                     * y : 341.27
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperOuter10Bean {
                    /**
                     * x : 206.66
                     * y : 332.02
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerInner8Bean {
                    /**
                     * x : 196.66
                     * y : 340.6
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerInner9Bean {
                    /**
                     * x : 201.27
                     * y : 340.05
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerInner3Bean {
                    /**
                     * x : 175.35
                     * y : 340.57
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerInner4Bean {
                    /**
                     * x : 179.52
                     * y : 340.98
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerInner5Bean {
                    /**
                     * x : 183.55
                     * y : 341.48
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerInner6Bean {
                    /**
                     * x : 187.81
                     * y : 342.19
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyeballCenterBean {
                    /**
                     * x : 235.31
                     * y : 236.06
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerInner1Bean {
                    /**
                     * x : 166.98
                     * y : 338.09
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerInner2Bean {
                    /**
                     * x : 171.01
                     * y : 339.19
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightCornerRightBean {
                    /**
                     * x : 122.26
                     * y : 241.18
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerOuter11Bean {
                    /**
                     * x : 212.83
                     * y : 340.22
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerOuter10Bean {
                    /**
                     * x : 209.29
                     * y : 345.52
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyeballLeftBean {
                    /**
                     * x : 156.39
                     * y : 240.51
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowRightLower2Bean {
                    /**
                     * x : 133.83
                     * y : 215.1
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowRightLower1Bean {
                    /**
                     * x : 119.81
                     * y : 215.79
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowRightLower3Bean {
                    /**
                     * x : 147.83
                     * y : 217.2
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperOuter9Bean {
                    /**
                     * x : 201.43
                     * y : 331.42
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftCornerRightBean {
                    /**
                     * x : 212.46
                     * y : 244.64
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperOuter5Bean {
                    /**
                     * x : 183.17
                     * y : 331.24
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperOuter6Bean {
                    /**
                     * x : 187.42
                     * y : 331.99
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperOuter7Bean {
                    /**
                     * x : 192.19
                     * y : 330.77
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperOuter8Bean {
                    /**
                     * x : 196.74
                     * y : 330.36
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidLower4Bean {
                    /**
                     * x : 235.52
                     * y : 246.06
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseRightContour6Bean {
                    /**
                     * x : 174.5
                     * y : 308.55
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidUpper5Bean {
                    /**
                     * x : 239.12
                     * y : 228.2
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidUpper4Bean {
                    /**
                     * x : 232.9
                     * y : 228.35
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidLower3Bean {
                    /**
                     * x : 229.46
                     * y : 246.07
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseRightContour7Bean {
                    /**
                     * x : 173.61
                     * y : 304.69
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidLower2Bean {
                    /**
                     * x : 223.32
                     * y : 245.8
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseRightContour4Bean {
                    /**
                     * x : 164.68
                     * y : 305.09
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidUpper7Bean {
                    /**
                     * x : 250.13
                     * y : 232.58
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidUpper6Bean {
                    /**
                     * x : 244.73
                     * y : 229.55
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidLower1Bean {
                    /**
                     * x : 218.15
                     * y : 244.6
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseRightContour5Bean {
                    /**
                     * x : 170.47
                     * y : 311.28
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidUpper1Bean {
                    /**
                     * x : 216.68
                     * y : 238.35
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperOuter1Bean {
                    /**
                     * x : 166.18
                     * y : 334.29
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidLower7Bean {
                    /**
                     * x : 250.5
                     * y : 239.28
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperOuter2Bean {
                    /**
                     * x : 170.17
                     * y : 332.85
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowRightCornerLeftBean {
                    /**
                     * x : 162.31
                     * y : 219.18
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidLower6Bean {
                    /**
                     * x : 246.76
                     * y : 242.25
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperOuter3Bean {
                    /**
                     * x : 174.61
                     * y : 331.96
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidUpper3Bean {
                    /**
                     * x : 226.82
                     * y : 230.05
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyeballLeftBean {
                    /**
                     * x : 244.53
                     * y : 235.8
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidUpper2Bean {
                    /**
                     * x : 221.48
                     * y : 233.32
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftEyelidLower5Bean {
                    /**
                     * x : 241.38
                     * y : 244.48
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperOuter4Bean {
                    /**
                     * x : 178.9
                     * y : 330.9
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseTipBean {
                    /**
                     * x : 186.21
                     * y : 300.31
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class Chin3Bean {
                    /**
                     * x : 204.13
                     * y : 379.33
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class Chin1Bean {
                    /**
                     * x : 173.77
                     * y : 378.94
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class Chin2Bean {
                    /**
                     * x : 188.39
                     * y : 382.25
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowRightUpper1Bean {
                    /**
                     * x : 107.18
                     * y : 217.93
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidLower7Bean {
                    /**
                     * x : 157.57
                     * y : 246.99
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidLower6Bean {
                    /**
                     * x : 152.76
                     * y : 248.48
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowRightUpper5Bean {
                    /**
                     * x : 162.5
                     * y : 215.64
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowRightUpper4Bean {
                    /**
                     * x : 148.95
                     * y : 208.55
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowRightUpper3Bean {
                    /**
                     * x : 134.3
                     * y : 205.34
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowRightUpper2Bean {
                    /**
                     * x : 118.8
                     * y : 207.25
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthCornerLeftInnerBean {
                    /**
                     * x : 214.29
                     * y : 335.16
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidUpper2Bean {
                    /**
                     * x : 131.62
                     * y : 233.55
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidUpper1Bean {
                    /**
                     * x : 126.73
                     * y : 237.04
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidUpper4Bean {
                    /**
                     * x : 142.77
                     * y : 231.17
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidUpper3Bean {
                    /**
                     * x : 137
                     * y : 231.79
                     */

                    private int x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidLower1Bean {
                    /**
                     * x : 126.7
                     * y : 243.65
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeLeftCornerLeftBean {
                    /**
                     * x : 254.65
                     * y : 236.48
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowLeftCornerRightBean {
                    /**
                     * x : 206.12
                     * y : 218.93
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidLower5Bean {
                    /**
                     * x : 146.93
                     * y : 249.12
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperInner11Bean {
                    /**
                     * x : 210.8
                     * y : 335.36
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidLower4Bean {
                    /**
                     * x : 141.01
                     * y : 249.49
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidLower3Bean {
                    /**
                     * x : 135.61
                     * y : 248.2
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidLower2Bean {
                    /**
                     * x : 130.2
                     * y : 246.49
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipUpperInner10Bean {
                    /**
                     * x : 206.2
                     * y : 336.03
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerInner10Bean {
                    /**
                     * x : 206.27
                     * y : 338.54
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class MouthLipLowerInner11Bean {
                    /**
                     * x : 211.05
                     * y : 337.22
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowLeftLower3Bean {
                    /**
                     * x : 252.55
                     * y : 211.56
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekLeft10Bean {
                    /**
                     * x : 231.79
                     * y : 358.56
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class CheekLeft11Bean {
                    /**
                     * x : 218.1
                     * y : 371.4
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowLeftLower2Bean {
                    /**
                     * x : 237.05
                     * y : 212.37
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowLeftLower1Bean {
                    /**
                     * x : 221.84
                     * y : 215.94
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseBridge1Bean {
                    /**
                     * x : 186.06
                     * y : 247.21
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseRightContour2Bean {
                    /**
                     * x : 171.9
                     * y : 266.8
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseRightContour3Bean {
                    /**
                     * x : 169.15
                     * y : 286.41
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseRightContour1Bean {
                    /**
                     * x : 174.57
                     * y : 247.2
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseBridge2Bean {
                    /**
                     * x : 186.19
                     * y : 266.64
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseBridge3Bean {
                    /**
                     * x : 186.29
                     * y : 286.21
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyebrowRightCornerRightBean {
                    /**
                     * x : 107.21
                     * y : 220.13
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class NoseMiddleContourBean {
                    /**
                     * x : 187.22
                     * y : 314.81
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidUpper6Bean {
                    /**
                     * x : 154.39
                     * y : 234.91
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidUpper5Bean {
                    /**
                     * x : 148.98
                     * y : 232.26
                     */

                    private double x;
                    private double y;
                }

                @NoArgsConstructor
                @Data
                public static class EyeRightEyelidUpper7Bean {
                    /**
                     * x : 159.09
                     * y : 239.99
                     */

                    private double x;
                    private double y;
                }
            }

            @NoArgsConstructor
            @Data
            public static class AngleBean {
                /**
                 * roll : -4.84
                 * pitch : 15.83
                 * yaw : 0.05
                 */

                private double roll;
                private double pitch;
                private double yaw;
            }

            @NoArgsConstructor
            @Data
            public static class LocationBean {
                /**
                 * top : 206.46
                 * left : 100.03
                 * rotation : -2
                 * width : 178
                 * height : 179
                 */

                private double top;
                private double left;
                private int rotation;
                private int width;
                private int height;
            }
        }
    }
}

小红花融合到人脸图片中

代码语言:javascript
复制
/**
     * @Description 给人脸检测图片增加小红花-左脸
     * @param bytes               原图
     * @param faceLandMark150Bean 150关键点
     * @param huaBI 小红花图片
     * @param flowersByte 小红花图片bytes
     * @param imageNew 处理后保存的图片对象
     * @param flowerBIZoom 小红花缩放后的
     * @param faceBI 原始人脸图片
     * @return void
     * @Author 小帅丶
     * @Date 2021-01-16 12:12
     **/
    public static void leftFaceFlower(byte[] bytes, FaceLandMark150Bean faceLandMark150Bean,
                                BufferedImage huaBI, byte[] flowersByte,
                                BufferedImage imageNew, BufferedImage flowerBIZoom,
                                BufferedImage faceBI) throws Exception {
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < faceLandMark150Bean.getResult().getFace_list().size(); i++) {
            FaceLandMark150Bean.ResultBean.FaceListBean.Landmark150Bean landmark150 = faceLandMark150Bean
                    .getResult()
                    .getFace_list()
                    .get(i)
                    .getLandmark150();
            int cheekRightX = (int) landmark150.getCheek_right_5().getX();
            int cheekRightY = (int) landmark150.getCheek_right_5().getY();
            int noseRightX = (int) landmark150.getNose_right_contour_4().getX();
            int noseRightY = (int) landmark150.getNose_right_contour_4().getY();
            //计算中间X
            int x = (cheekRightX + noseRightX) / 2;
            //计算中间横向距离 图片宽度可能不能超过
            int xRange = noseRightX - cheekRightX;
            int widthHua = huaBI.getWidth();
            if (widthHua > xRange) {
                //对小红花进行缩放
                ZoomUtil zoomUtil = new ZoomUtil(xRange/2,xRange/2);
                flowerBIZoom = zoomUtil.resizeByWidth(xRange/2,flowersByte,"png");
            }
            int width = flowerBIZoom.getWidth();
            int newX = x - (width / 2);
            int newY = cheekRightY - (width / 2);
            imageNew = MergeImageUtil.mergePendant(faceBI, flowerBIZoom, newX, newY, 1);
        }
        long endTime = System.currentTimeMillis();
        //保存图片
        File file = new File("F:\\testimg\\hua\\202101161200left.jpg");
        ImageIO.write(imageNew, "jpg", file);
        faceLandMark150Bean.setDeal_image("左脸");
        System.out.println("增加小红花左脸耗时{}"+(endTime - startTime));
    }

小红花icon

其它代码

小帅自己封装的图片处理工具类 https://gitee.com/xshuai/imagetool

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果演示
  • 人脸检测
  • 小红花融合到人脸图片中
    • 小红花icon
      • 其它代码
      相关产品与服务
      人脸识别
      腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档