訊飛-人臉識別,人臉屬性的檢測


去訊飛開發平台將人臉識別的代碼和sdk下下來,它包括在線識別,離線識別(這兩種都是調用相冊或者拍完照根據圖片來驗證的),還一種視頻流識別(只幫我們實現了檢測與聚焦,不過前面兩種已經實現了識別功能,拿到圖片的字節數組去注冊和驗證就ok了)

訊飛給我們采集到的一幀的格式是NV21的,並不是RGB或者ARGB,所以我們就需要進行轉換了

關鍵代碼: 在官方提供的VideoDemo.java代碼中的添加

 //得到預覽的一幀圖片
  mCamera.setPreviewCallback(new PreviewCallback() {
            
        @Override
        public void onPreviewFrame(byte[] data, Camera camera) {
              System.arraycopy(data, 0, nv21, 0, data.length);
              //檢測到圖片
              Bitmap b3 = decodeToBitMap(nv21,camera);
              imageview.setImageBitmap(b3);
              //拿到該圖片的字節數組去注冊驗證就行了,代碼可以拷貝他們給的離線或者在線驗證的代碼
        }
   });


  /**
     * NV21格式(所有相機都支持的格式)轉換為bitmap
     */
    public Bitmap decodeToBitMap(byte[] data, Camera mCamera) {
        Size size = mCamera.getParameters().getPreviewSize();
        try {
            YuvImage image = new YuvImage(data, ImageFormat.NV21, size.width,
                    size.height, null);
            if (image != null) {
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                image.compressToJpeg(new Rect(0, 0, size.width, size.height),
                        80, stream);
                Bitmap bmp = BitmapFactory.decodeByteArray(
                        stream.toByteArray(), 0, stream.size());
                stream.close();
                Matrix matrix = new Matrix();
                matrix.postRotate(270);
                //上面得到的圖片旋轉了270度,下面將圖片旋轉回來,前置攝像頭270度,后置只需要90度
                Bitmap nbmp = Bitmap.createBitmap(bmp,
                0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
                return nbmp;
            }
        } catch (Exception ex) {
            Log.e("tag", "Error:" + ex.getMessage());
        }
        return null;
    }

拿到圖片就簡單了...

 效果:(代碼中對使用后置還是前置沒判斷,設置使用后置將旋轉設置為90度的效果)

 

人臉屬性的檢測使用的Face++:https://www.faceplusplus.com.cn/

創建APPkey,請求他們網址提交圖片就能拿到數據:

代碼如下:拍照裁剪提交圖片         注意:這里沒有對圖片壓縮

/**
 * 人臉檢測測試
 */
public class MainActivity extends Activity {

    /**
     * 裁剪好的圖片的輸出路徑
     */
    private File photoZoomOutFile;

    /**
     * 拍照的圖片的url
     */
    private Uri pictureOutUri;

    private ProgressDialog dialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dialog = new ProgressDialog(this);
        dialog.setMessage("正在提交...");
    }

    //點擊事件
    public void btn(View view){
        //1.拍照
        camera();
    }
    public void btn2(View view){
        //重新提交
        if(photoZoomOutFile != null){
            getFaceInfo(photoZoomOutFile.getName(),photoZoomOutFile);
        }else{
            Toast.makeText(getApplicationContext(),"還沒有圖片,請先拍照",Toast.LENGTH_SHORT).show();
        }
    }

    /**
     * 拍照
     */
    private void camera() {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            File icon_file = new File(Environment.getExternalStorageDirectory().getPath() + "/shch/icon");
            if (!icon_file.exists()) {
                icon_file.mkdirs();
            }
            pictureOutUri = Uri.fromFile(new File(icon_file, System.currentTimeMillis() + ".jpg"));
            intent.putExtra(MediaStore.EXTRA_OUTPUT, pictureOutUri);
        }
        startActivityForResult(intent, 1);
    }

    /**
     * 裁剪
     * @param uri 被裁剪的圖片
     */
    private void startPhotoZoom(Uri uri) {
        File file = new File(Environment.getExternalStorageDirectory().getPath() + "/shch/icon");
        if (!file.exists()) {
            file.mkdirs();
        }
        photoZoomOutFile = new File(file, System.currentTimeMillis() + ".jpg");//裁剪的圖片保存路徑
        Uri outUri = Uri.fromFile(photoZoomOutFile);
        Intent intent = new Intent("com.android.camera.action.CROP");
        intent.setDataAndType(uri, "image/*");
        intent.putExtra("crop", "true");
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        //intent.putExtra("outputX", 480);
        //intent.putExtra("outputY", 480);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, outUri);
        intent.putExtra("return-data", false);
        intent.putExtra("noFaceDetection", true);
        startActivityForResult(intent, 3);
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case 1://拍照
                if (resultCode == RESULT_OK) {
                    startPhotoZoom(pictureOutUri);//裁剪
                }
                break;
            case 2://圖庫
                if (resultCode == RESULT_OK) {
                    Uri uri = data.getData();
                    if (uri == null) {
                        //選擇圖片失敗
                        return;
                    }

                }
                break;
            case 3://裁剪
                if (resultCode == RESULT_OK) {
                    Log.e("tag2","文件名="+photoZoomOutFile.getName());
                    getFaceInfo(photoZoomOutFile.getName(),photoZoomOutFile);
                }
                break;
        }
    }

    /**
     * 獲取人臉信息
     */
    public void getFaceInfo(String name,File file){
        dialog.show();
        //請求接口拿到數據
        OkHttpUtils.post()
                .url("https://api-cn.faceplusplus.com/facepp/v3/detect") //請求數據的接口
                .addParams("api_key","IYBMBAX6moez1pirP_J6jLGsrUfLn3YY")
                .addParams("api_secret","kS0Otv3e9G20nS8UpZn3_8DcuAo8cjJq")
                .addFile("image_file",name,file) //提交圖片
                .addParams("return_attributes","gender,age,smiling,headpose,facequality,blur,eyestatus,ethnicity")//需要的數據
                //.addParams("return_landmark","1")
                .build()
                .execute(new StringCallback() {
                    @Override
                    public void onError(Call call, Exception e, int id) {
                        Log.e("tag2","onError="+e.getMessage());
                        dialog.dismiss();
                        if(e.getMessage().contains("403")){
                            Toast.makeText(getApplicationContext(),"服務器繁忙,請重試",Toast.LENGTH_SHORT).show();
                        }else{
                            Toast.makeText(getApplicationContext(),"提交錯誤",Toast.LENGTH_SHORT).show();
                        }
                    }

                    @Override
                    public void onResponse(String response, int id) {
                        Log.i("tag2","response="+response);
                        dialog.dismiss();
                        //Toast.makeText(getApplicationContext(),"成功了",Toast.LENGTH_SHORT).show();
                        DataBean dataBean = new Gson().fromJson(response, DataBean.class);
                        if(dataBean == null){
                            Toast.makeText(getApplicationContext(),"獲取的數據為空",Toast.LENGTH_SHORT).show();
                            return;
                        }
                        List<DataBean.Faces> faces = dataBean.getFaces();
                        String age = "未知";//年齡
                        String ethnicity = "未知";//人種
                        String facequality = "未知";//人臉質量
                        String gender = "未知";//性別
                        String smile = "未知";//笑容分析

                        if(faces!=null && faces.size()>0 && faces.get(0).getAttributes()!=null){
                            DataBean.Attributes attributes = faces.get(0).getAttributes();

                            if(attributes.getAge()!=null){
                                age = attributes.getAge().getValue()+"";
                            }

                            if(!TextUtils.isEmpty(attributes.getEthnicity().getValue())){
                                switch (attributes.getEthnicity().getValue()){
                                    case "Asian":
                                        ethnicity = "亞洲人";
                                        break;
                                    case "White":
                                        ethnicity = "白種人";
                                        break;
                                    case "Black":
                                        ethnicity = "黑種人";
                                        break;

                                }
                            }
                            //人臉質量
                            if(attributes.getFacequality()!=null){
                                facequality = attributes.getFacequality().getValue()+"";//0-100
                            }

                            if(attributes.getGender()!=null && !TextUtils.isEmpty(attributes.getGender().getValue())){
                                switch (attributes.getGender().getValue()){
                                    case "Male":
                                        gender = "男性";
                                        break;
                                    case "Female":
                                        gender = "女性";
                                        break;
                                }
                            }

                            //笑容度
                            if(attributes.getSmile()!=null){
                                smile = attributes.getSmile().getValue() + "";
                            }

                        }


                        TextView tv = (TextView) findViewById(R.id.tv);
                        tv.setText("年齡="+ age +
                                ",人種=" + ethnicity +
                                ",人臉質量=" + facequality +
                                ",性別=" + gender +
                                ",笑容度=" + smile);
                    }
                });
    }


}

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:onClick="btn"
        android:text="拍照檢測"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <Button
        android:onClick="btn2"
        android:text="重新提交圖片"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/tv"
        android:textSize="12sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</LinearLayout>
View Code

實體類如下:

/**
 * 人臉屬性值
 */
public class DataBean {
    private List<Faces> faces;

    private String image_id;

    private String request_id;

    private int time_used;

    public void setFaces(List<Faces> faces){
        this.faces = faces;
    }
    public List<Faces> getFaces(){
        return this.faces;
    }
    public void setImage_id(String image_id){
        this.image_id = image_id;
    }
    public String getImage_id(){
        return this.image_id;
    }
    public void setRequest_id(String request_id){
        this.request_id = request_id;
    }
    public String getRequest_id(){
        return this.request_id;
    }
    public void setTime_used(int time_used){
        this.time_used = time_used;
    }
    public int getTime_used(){
        return this.time_used;
    }

    public class Age
    {
        private int value;

        public void setValue(int value){
            this.value = value;
        }
        public int getValue(){
            return this.value;
        }

        @Override
        public String toString() {
            return "年齡=" +
                     value
                ;
        }
    }

    
    public class Blurness
    {
        private int threshold;

        private double value;

        public void setThreshold(int threshold){
            this.threshold = threshold;
        }
        public int getThreshold(){
            return this.threshold;
        }
        public void setValue(double value){
            this.value = value;
        }
        public double getValue(){
            return this.value;
        }
    }

    
            
    public class Gaussianblur
    {
        private int threshold;

        private double value;

        public void setThreshold(int threshold){
            this.threshold = threshold;
        }
        public int getThreshold(){
            return this.threshold;
        }
        public void setValue(double value){
            this.value = value;
        }
        public double getValue(){
            return this.value;
        }
    }

    
            
    public class Motionblur
    {
        private int threshold;

        private double value;

        public void setThreshold(int threshold){
            this.threshold = threshold;
        }
        public int getThreshold(){
            return this.threshold;
        }
        public void setValue(double value){
            this.value = value;
        }
        public double getValue(){
            return this.value;
        }
    }

    
            
    public class Blur
    {
        private Blurness blurness;

        private Gaussianblur gaussianblur;

        private Motionblur motionblur;

        public void setBlurness(Blurness blurness){
            this.blurness = blurness;
        }
        public Blurness getBlurness(){
            return this.blurness;
        }
        public void setGaussianblur(Gaussianblur gaussianblur){
            this.gaussianblur = gaussianblur;
        }
        public Gaussianblur getGaussianblur(){
            return this.gaussianblur;
        }
        public void setMotionblur(Motionblur motionblur){
            this.motionblur = motionblur;
        }
        public Motionblur getMotionblur(){
            return this.motionblur;
        }
    }

    
            
    public class Ethnicity
    {
        private String value;

        public void setValue(String value){
            this.value = value;
        }
        public String getValue(){
            return this.value;
        }

        @Override
        public String toString() {
            return "人種{" +
                    "value='" + value + '\'' +
                    '}';
        }
    }

    
            
    public class Left_eye_status
    {
        private int dark_glasses;

        private int no_glass_eye_close;

        private double no_glass_eye_open;

        private int normal_glass_eye_close;

        private double normal_glass_eye_open;

        private int occlusion;

        public void setDark_glasses(int dark_glasses){
            this.dark_glasses = dark_glasses;
        }
        public int getDark_glasses(){
            return this.dark_glasses;
        }
        public void setNo_glass_eye_close(int no_glass_eye_close){
            this.no_glass_eye_close = no_glass_eye_close;
        }
        public int getNo_glass_eye_close(){
            return this.no_glass_eye_close;
        }
        public void setNo_glass_eye_open(double no_glass_eye_open){
            this.no_glass_eye_open = no_glass_eye_open;
        }
        public double getNo_glass_eye_open(){
            return this.no_glass_eye_open;
        }
        public void setNormal_glass_eye_close(int normal_glass_eye_close){
            this.normal_glass_eye_close = normal_glass_eye_close;
        }
        public int getNormal_glass_eye_close(){
            return this.normal_glass_eye_close;
        }
        public void setNormal_glass_eye_open(double normal_glass_eye_open){
            this.normal_glass_eye_open = normal_glass_eye_open;
        }
        public double getNormal_glass_eye_open(){
            return this.normal_glass_eye_open;
        }
        public void setOcclusion(int occlusion){
            this.occlusion = occlusion;
        }
        public int getOcclusion(){
            return this.occlusion;
        }
    }

    
            
    public class Right_eye_status
    {
        private int dark_glasses;

        private int no_glass_eye_close;

        private double no_glass_eye_open;

        private int normal_glass_eye_close;

        private double normal_glass_eye_open;

        private double occlusion;

        public void setDark_glasses(int dark_glasses){
            this.dark_glasses = dark_glasses;
        }
        public int getDark_glasses(){
            return this.dark_glasses;
        }
        public void setNo_glass_eye_close(int no_glass_eye_close){
            this.no_glass_eye_close = no_glass_eye_close;
        }
        public int getNo_glass_eye_close(){
            return this.no_glass_eye_close;
        }
        public void setNo_glass_eye_open(double no_glass_eye_open){
            this.no_glass_eye_open = no_glass_eye_open;
        }
        public double getNo_glass_eye_open(){
            return this.no_glass_eye_open;
        }
        public void setNormal_glass_eye_close(int normal_glass_eye_close){
            this.normal_glass_eye_close = normal_glass_eye_close;
        }
        public int getNormal_glass_eye_close(){
            return this.normal_glass_eye_close;
        }
        public void setNormal_glass_eye_open(double normal_glass_eye_open){
            this.normal_glass_eye_open = normal_glass_eye_open;
        }
        public double getNormal_glass_eye_open(){
            return this.normal_glass_eye_open;
        }
        public void setOcclusion(double occlusion){
            this.occlusion = occlusion;
        }
        public double getOcclusion(){
            return this.occlusion;
        }
    }

    
            
    public class Eyestatus
    {
        private Left_eye_status left_eye_status;

        private Right_eye_status right_eye_status;

        public void setLeft_eye_status(Left_eye_status left_eye_status){
            this.left_eye_status = left_eye_status;
        }
        public Left_eye_status getLeft_eye_status(){
            return this.left_eye_status;
        }
        public void setRight_eye_status(Right_eye_status right_eye_status){
            this.right_eye_status = right_eye_status;
        }
        public Right_eye_status getRight_eye_status(){
            return this.right_eye_status;
        }
    }

    
            
    public class Facequality
    {
        private double threshold;

        private double value;

        public void setThreshold(double threshold){
            this.threshold = threshold;
        }
        public double getThreshold(){
            return this.threshold;
        }
        public void setValue(double value){
            this.value = value;
        }
        public double getValue(){
            return this.value;
        }

        @Override
        public String toString() {
            return "人臉質量{" +
                    "threshold=" + threshold +
                    ", value=" + value +
                    '}';
        }
    }

    
            
    public class Gender
    {
        private String value;

        public void setValue(String value){
            this.value = value;
        }
        public String getValue(){
            return this.value;
        }

        @Override
        public String toString() {
            return "性別{" +
                    "value='" + value + '\'' +
                    '}';
        }
    }

    
            
    public class Glass
    {
        private String value;

        public void setValue(String value){
            this.value = value;
        }
        public String getValue(){
            return this.value;
        }
    }

    
            
    public class Headpose
    {
        private double pitch_angle;

        private double roll_angle;

        private double yaw_angle;

        public void setPitch_angle(double pitch_angle){
            this.pitch_angle = pitch_angle;
        }
        public double getPitch_angle(){
            return this.pitch_angle;
        }
        public void setRoll_angle(double roll_angle){
            this.roll_angle = roll_angle;
        }
        public double getRoll_angle(){
            return this.roll_angle;
        }
        public void setYaw_angle(double yaw_angle){
            this.yaw_angle = yaw_angle;
        }
        public double getYaw_angle(){
            return this.yaw_angle;
        }
    }

    
            
    public class Smile
    {
        private double threshold;

        private double value;

        public void setThreshold(double threshold){
            this.threshold = threshold;
        }
        public double getThreshold(){
            return this.threshold;
        }
        public void setValue(double value){
            this.value = value;
        }
        public double getValue(){
            return this.value;
        }

        @Override
        public String toString() {
            return "笑容分享{" +
                    "threshold=" + threshold +
                    ", value=" + value +
                    '}';
        }
    }

    
            
    public class Attributes
    {
        private Age age;//年齡

        private Blur blur;

        /**
         * ethnicity: 人種分析結果,value的值為Asian/White/Black。Asian代表亞洲人,White代表白人,Black代表黑人。
         */
        private Ethnicity ethnicity;

        private Eyestatus eyestatus;// 眼睛狀態信息 包括 le

        /**
         * facequality: 人臉質量判斷結果,value值為人臉的質量判斷的分數,是一個浮點數,范圍[0,100], 小數點后3位有效數字。threshold表示人臉質量基本合格的一個閾值,超過該閾值的人臉適合用於人臉比對。
         */
        private Facequality facequality;

        /**
         * gender:性別分析結果,value的值為Male/Female。Male 代表男性,Female代表女性。
         */
        private Gender gender;

        /**
         * 是否佩戴眼鏡的分析結果,value的值為None/Dark/Normal。None代表不佩戴眼鏡,Dark代表佩戴墨鏡,Normal代表佩戴普通眼鏡。(請注意,motionblur 和 gaussianblur 將於2017-4-30日停止返回,請盡快停用)
         headpose:人臉姿勢分析結果,包括pitch_angle, roll_angle, yaw_angle,分別對應抬頭,旋轉(平面旋轉),搖頭。單位為角度。
         */
        private Glass glass;

        private Headpose headpose;

        /**
         * smiling:笑容分析結果,value的值為一個[0,100]的浮點數,小數點后3位有效數字,數值大表示笑程度高。threshold代表笑容的閾值,超過該閾值認為有笑容。
         */
        private Smile smile;

        public void setAge(Age age){
            this.age = age;
        }
        public Age getAge(){
            return this.age;
        }
        public void setBlur(Blur blur){
            this.blur = blur;
        }
        public Blur getBlur(){
            return this.blur;
        }
        public void setEthnicity(Ethnicity ethnicity){
            this.ethnicity = ethnicity;
        }
        public Ethnicity getEthnicity(){
            return this.ethnicity;
        }
        public void setEyestatus(Eyestatus eyestatus){
            this.eyestatus = eyestatus;
        }
        public Eyestatus getEyestatus(){
            return this.eyestatus;
        }
        public void setFacequality(Facequality facequality){
            this.facequality = facequality;
        }
        public Facequality getFacequality(){
            return this.facequality;
        }
        public void setGender(Gender gender){
            this.gender = gender;
        }
        public Gender getGender(){
            return this.gender;
        }
        public void setGlass(Glass glass){
            this.glass = glass;
        }
        public Glass getGlass(){
            return this.glass;
        }
        public void setHeadpose(Headpose headpose){
            this.headpose = headpose;
        }
        public Headpose getHeadpose(){
            return this.headpose;
        }
        public void setSmile(Smile smile){
            this.smile = smile;
        }
        public Smile getSmile(){
            return this.smile;
        }

        @Override
        public String toString() {
            return "Attributes{" +
                    "age=" + age +
                    ", blur=" + blur +
                    ", ethnicity=" + ethnicity +
                    ", eyestatus=" + eyestatus +
                    ", facequality=" + facequality +
                    ", gender=" + gender +
                    ", glass=" + glass +
                    ", headpose=" + headpose +
                    ", smile=" + smile +
                    '}';
        }
    }

    
            
    public class Face_rectangle
    {
        private int height;

        private int left;

        private int top;

        private int width;

        public void setHeight(int height){
            this.height = height;
        }
        public int getHeight(){
            return this.height;
        }
        public void setLeft(int left){
            this.left = left;
        }
        public int getLeft(){
            return this.left;
        }
        public void setTop(int top){
            this.top = top;
        }
        public int getTop(){
            return this.top;
        }
        public void setWidth(int width){
            this.width = width;
        }
        public int getWidth(){
            return this.width;
        }
    }

    
            
    public class Contour_chin
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_left1
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_left2
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_left3
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_left4
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_left5
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_left6
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_left7
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_left8
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_left9
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_right1
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_right2
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_right3
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_right4
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_right5
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_right6
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_right7
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_right8
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Contour_right9
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eye_bottom
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eye_center
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eye_left_corner
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eye_lower_left_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eye_lower_right_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eye_pupil
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eye_right_corner
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eye_top
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eye_upper_left_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eye_upper_right_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eyebrow_left_corner
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eyebrow_lower_left_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eyebrow_lower_middle
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eyebrow_lower_right_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eyebrow_right_corner
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eyebrow_upper_left_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eyebrow_upper_middle
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Left_eyebrow_upper_right_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_left_corner
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_lower_lip_bottom
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_lower_lip_left_contour1
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_lower_lip_left_contour2
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_lower_lip_left_contour3
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_lower_lip_right_contour1
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_lower_lip_right_contour2
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_lower_lip_right_contour3
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_lower_lip_top
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_right_corner
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_upper_lip_bottom
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_upper_lip_left_contour1
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_upper_lip_left_contour2
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_upper_lip_left_contour3
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_upper_lip_right_contour1
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_upper_lip_right_contour2
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_upper_lip_right_contour3
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Mouth_upper_lip_top
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Nose_contour_left1
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Nose_contour_left2
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Nose_contour_left3
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Nose_contour_lower_middle
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Nose_contour_right1
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Nose_contour_right2
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Nose_contour_right3
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Nose_left
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Nose_right
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    public class Nose_tip
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    public class Right_eye_bottom
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    public class Right_eye_center
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eye_left_corner
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eye_lower_left_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eye_lower_right_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eye_pupil
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eye_right_corner
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eye_top
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eye_upper_left_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eye_upper_right_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eyebrow_left_corner
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eyebrow_lower_left_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eyebrow_lower_middle
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eyebrow_lower_right_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eyebrow_right_corner
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Right_eyebrow_upper_left_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    public class Right_eyebrow_upper_middle
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    public class Right_eyebrow_upper_right_quarter
    {
        private int x;

        private int y;

        public void setX(int x){
            this.x = x;
        }
        public int getX(){
            return this.x;
        }
        public void setY(int y){
            this.y = y;
        }
        public int getY(){
            return this.y;
        }
    }

    
            
    public class Landmark
    {
        private Contour_chin contour_chin;

        private Contour_left1 contour_left1;

        private Contour_left2 contour_left2;

        private Contour_left3 contour_left3;

        private Contour_left4 contour_left4;

        private Contour_left5 contour_left5;

        private Contour_left6 contour_left6;

        private Contour_left7 contour_left7;

        private Contour_left8 contour_left8;

        private Contour_left9 contour_left9;

        private Contour_right1 contour_right1;

        private Contour_right2 contour_right2;

        private Contour_right3 contour_right3;

        private Contour_right4 contour_right4;

        private Contour_right5 contour_right5;

        private Contour_right6 contour_right6;

        private Contour_right7 contour_right7;

        private Contour_right8 contour_right8;

        private Contour_right9 contour_right9;

        private Left_eye_bottom left_eye_bottom;

        private Left_eye_center left_eye_center;

        private Left_eye_left_corner left_eye_left_corner;

        private Left_eye_lower_left_quarter left_eye_lower_left_quarter;

        private Left_eye_lower_right_quarter left_eye_lower_right_quarter;

        private Left_eye_pupil left_eye_pupil;

        private Left_eye_right_corner left_eye_right_corner;

        private Left_eye_top left_eye_top;

        private Left_eye_upper_left_quarter left_eye_upper_left_quarter;

        private Left_eye_upper_right_quarter left_eye_upper_right_quarter;

        private Left_eyebrow_left_corner left_eyebrow_left_corner;

        private Left_eyebrow_lower_left_quarter left_eyebrow_lower_left_quarter;

        private Left_eyebrow_lower_middle left_eyebrow_lower_middle;

        private Left_eyebrow_lower_right_quarter left_eyebrow_lower_right_quarter;

        private Left_eyebrow_right_corner left_eyebrow_right_corner;

        private Left_eyebrow_upper_left_quarter left_eyebrow_upper_left_quarter;

        private Left_eyebrow_upper_middle left_eyebrow_upper_middle;

        private Left_eyebrow_upper_right_quarter left_eyebrow_upper_right_quarter;

        private Mouth_left_corner mouth_left_corner;

        private Mouth_lower_lip_bottom mouth_lower_lip_bottom;

        private Mouth_lower_lip_left_contour1 mouth_lower_lip_left_contour1;

        private Mouth_lower_lip_left_contour2 mouth_lower_lip_left_contour2;

        private Mouth_lower_lip_left_contour3 mouth_lower_lip_left_contour3;

        private Mouth_lower_lip_right_contour1 mouth_lower_lip_right_contour1;

        private Mouth_lower_lip_right_contour2 mouth_lower_lip_right_contour2;

        private Mouth_lower_lip_right_contour3 mouth_lower_lip_right_contour3;

        private Mouth_lower_lip_top mouth_lower_lip_top;

        private Mouth_right_corner mouth_right_corner;

        private Mouth_upper_lip_bottom mouth_upper_lip_bottom;

        private Mouth_upper_lip_left_contour1 mouth_upper_lip_left_contour1;

        private Mouth_upper_lip_left_contour2 mouth_upper_lip_left_contour2;

        private Mouth_upper_lip_left_contour3 mouth_upper_lip_left_contour3;

        private Mouth_upper_lip_right_contour1 mouth_upper_lip_right_contour1;

        private Mouth_upper_lip_right_contour2 mouth_upper_lip_right_contour2;

        private Mouth_upper_lip_right_contour3 mouth_upper_lip_right_contour3;

        private Mouth_upper_lip_top mouth_upper_lip_top;

        private Nose_contour_left1 nose_contour_left1;

        private Nose_contour_left2 nose_contour_left2;

        private Nose_contour_left3 nose_contour_left3;

        private Nose_contour_lower_middle nose_contour_lower_middle;

        private Nose_contour_right1 nose_contour_right1;

        private Nose_contour_right2 nose_contour_right2;

        private Nose_contour_right3 nose_contour_right3;

        private Nose_left nose_left;

        private Nose_right nose_right;

        private Nose_tip nose_tip;

        private Right_eye_bottom right_eye_bottom;

        private Right_eye_center right_eye_center;

        private Right_eye_left_corner right_eye_left_corner;

        private Right_eye_lower_left_quarter right_eye_lower_left_quarter;

        private Right_eye_lower_right_quarter right_eye_lower_right_quarter;

        private Right_eye_pupil right_eye_pupil;

        private Right_eye_right_corner right_eye_right_corner;

        private Right_eye_top right_eye_top;

        private Right_eye_upper_left_quarter right_eye_upper_left_quarter;

        private Right_eye_upper_right_quarter right_eye_upper_right_quarter;

        private Right_eyebrow_left_corner right_eyebrow_left_corner;

        private Right_eyebrow_lower_left_quarter right_eyebrow_lower_left_quarter;

        private Right_eyebrow_lower_middle right_eyebrow_lower_middle;

        private Right_eyebrow_lower_right_quarter right_eyebrow_lower_right_quarter;

        private Right_eyebrow_right_corner right_eyebrow_right_corner;

        private Right_eyebrow_upper_left_quarter right_eyebrow_upper_left_quarter;

        private Right_eyebrow_upper_middle right_eyebrow_upper_middle;

        private Right_eyebrow_upper_right_quarter right_eyebrow_upper_right_quarter;

        public void setContour_chin(Contour_chin contour_chin){
            this.contour_chin = contour_chin;
        }
        public Contour_chin getContour_chin(){
            return this.contour_chin;
        }
        public void setContour_left1(Contour_left1 contour_left1){
            this.contour_left1 = contour_left1;
        }
        public Contour_left1 getContour_left1(){
            return this.contour_left1;
        }
        public void setContour_left2(Contour_left2 contour_left2){
            this.contour_left2 = contour_left2;
        }
        public Contour_left2 getContour_left2(){
            return this.contour_left2;
        }
        public void setContour_left3(Contour_left3 contour_left3){
            this.contour_left3 = contour_left3;
        }
        public Contour_left3 getContour_left3(){
            return this.contour_left3;
        }
        public void setContour_left4(Contour_left4 contour_left4){
            this.contour_left4 = contour_left4;
        }
        public Contour_left4 getContour_left4(){
            return this.contour_left4;
        }
        public void setContour_left5(Contour_left5 contour_left5){
            this.contour_left5 = contour_left5;
        }
        public Contour_left5 getContour_left5(){
            return this.contour_left5;
        }
        public void setContour_left6(Contour_left6 contour_left6){
            this.contour_left6 = contour_left6;
        }
        public Contour_left6 getContour_left6(){
            return this.contour_left6;
        }
        public void setContour_left7(Contour_left7 contour_left7){
            this.contour_left7 = contour_left7;
        }
        public Contour_left7 getContour_left7(){
            return this.contour_left7;
        }
        public void setContour_left8(Contour_left8 contour_left8){
            this.contour_left8 = contour_left8;
        }
        public Contour_left8 getContour_left8(){
            return this.contour_left8;
        }
        public void setContour_left9(Contour_left9 contour_left9){
            this.contour_left9 = contour_left9;
        }
        public Contour_left9 getContour_left9(){
            return this.contour_left9;
        }
        public void setContour_right1(Contour_right1 contour_right1){
            this.contour_right1 = contour_right1;
        }
        public Contour_right1 getContour_right1(){
            return this.contour_right1;
        }
        public void setContour_right2(Contour_right2 contour_right2){
            this.contour_right2 = contour_right2;
        }
        public Contour_right2 getContour_right2(){
            return this.contour_right2;
        }
        public void setContour_right3(Contour_right3 contour_right3){
            this.contour_right3 = contour_right3;
        }
        public Contour_right3 getContour_right3(){
            return this.contour_right3;
        }
        public void setContour_right4(Contour_right4 contour_right4){
            this.contour_right4 = contour_right4;
        }
        public Contour_right4 getContour_right4(){
            return this.contour_right4;
        }
        public void setContour_right5(Contour_right5 contour_right5){
            this.contour_right5 = contour_right5;
        }
        public Contour_right5 getContour_right5(){
            return this.contour_right5;
        }
        public void setContour_right6(Contour_right6 contour_right6){
            this.contour_right6 = contour_right6;
        }
        public Contour_right6 getContour_right6(){
            return this.contour_right6;
        }
        public void setContour_right7(Contour_right7 contour_right7){
            this.contour_right7 = contour_right7;
        }
        public Contour_right7 getContour_right7(){
            return this.contour_right7;
        }
        public void setContour_right8(Contour_right8 contour_right8){
            this.contour_right8 = contour_right8;
        }
        public Contour_right8 getContour_right8(){
            return this.contour_right8;
        }
        public void setContour_right9(Contour_right9 contour_right9){
            this.contour_right9 = contour_right9;
        }
        public Contour_right9 getContour_right9(){
            return this.contour_right9;
        }
        public void setLeft_eye_bottom(Left_eye_bottom left_eye_bottom){
            this.left_eye_bottom = left_eye_bottom;
        }
        public Left_eye_bottom getLeft_eye_bottom(){
            return this.left_eye_bottom;
        }
        public void setLeft_eye_center(Left_eye_center left_eye_center){
            this.left_eye_center = left_eye_center;
        }
        public Left_eye_center getLeft_eye_center(){
            return this.left_eye_center;
        }
        public void setLeft_eye_left_corner(Left_eye_left_corner left_eye_left_corner){
            this.left_eye_left_corner = left_eye_left_corner;
        }
        public Left_eye_left_corner getLeft_eye_left_corner(){
            return this.left_eye_left_corner;
        }
        public void setLeft_eye_lower_left_quarter(Left_eye_lower_left_quarter left_eye_lower_left_quarter){
            this.left_eye_lower_left_quarter = left_eye_lower_left_quarter;
        }
        public Left_eye_lower_left_quarter getLeft_eye_lower_left_quarter(){
            return this.left_eye_lower_left_quarter;
        }
        public void setLeft_eye_lower_right_quarter(Left_eye_lower_right_quarter left_eye_lower_right_quarter){
            this.left_eye_lower_right_quarter = left_eye_lower_right_quarter;
        }
        public Left_eye_lower_right_quarter getLeft_eye_lower_right_quarter(){
            return this.left_eye_lower_right_quarter;
        }
        public void setLeft_eye_pupil(Left_eye_pupil left_eye_pupil){
            this.left_eye_pupil = left_eye_pupil;
        }
        public Left_eye_pupil getLeft_eye_pupil(){
            return this.left_eye_pupil;
        }
        public void setLeft_eye_right_corner(Left_eye_right_corner left_eye_right_corner){
            this.left_eye_right_corner = left_eye_right_corner;
        }
        public Left_eye_right_corner getLeft_eye_right_corner(){
            return this.left_eye_right_corner;
        }
        public void setLeft_eye_top(Left_eye_top left_eye_top){
            this.left_eye_top = left_eye_top;
        }
        public Left_eye_top getLeft_eye_top(){
            return this.left_eye_top;
        }
        public void setLeft_eye_upper_left_quarter(Left_eye_upper_left_quarter left_eye_upper_left_quarter){
            this.left_eye_upper_left_quarter = left_eye_upper_left_quarter;
        }
        public Left_eye_upper_left_quarter getLeft_eye_upper_left_quarter(){
            return this.left_eye_upper_left_quarter;
        }
        public void setLeft_eye_upper_right_quarter(Left_eye_upper_right_quarter left_eye_upper_right_quarter){
            this.left_eye_upper_right_quarter = left_eye_upper_right_quarter;
        }
        public Left_eye_upper_right_quarter getLeft_eye_upper_right_quarter(){
            return this.left_eye_upper_right_quarter;
        }
        public void setLeft_eyebrow_left_corner(Left_eyebrow_left_corner left_eyebrow_left_corner){
            this.left_eyebrow_left_corner = left_eyebrow_left_corner;
        }
        public Left_eyebrow_left_corner getLeft_eyebrow_left_corner(){
            return this.left_eyebrow_left_corner;
        }
        public void setLeft_eyebrow_lower_left_quarter(Left_eyebrow_lower_left_quarter left_eyebrow_lower_left_quarter){
            this.left_eyebrow_lower_left_quarter = left_eyebrow_lower_left_quarter;
        }
        public Left_eyebrow_lower_left_quarter getLeft_eyebrow_lower_left_quarter(){
            return this.left_eyebrow_lower_left_quarter;
        }
        public void setLeft_eyebrow_lower_middle(Left_eyebrow_lower_middle left_eyebrow_lower_middle){
            this.left_eyebrow_lower_middle = left_eyebrow_lower_middle;
        }
        public Left_eyebrow_lower_middle getLeft_eyebrow_lower_middle(){
            return this.left_eyebrow_lower_middle;
        }
        public void setLeft_eyebrow_lower_right_quarter(Left_eyebrow_lower_right_quarter left_eyebrow_lower_right_quarter){
            this.left_eyebrow_lower_right_quarter = left_eyebrow_lower_right_quarter;
        }
        public Left_eyebrow_lower_right_quarter getLeft_eyebrow_lower_right_quarter(){
            return this.left_eyebrow_lower_right_quarter;
        }
        public void setLeft_eyebrow_right_corner(Left_eyebrow_right_corner left_eyebrow_right_corner){
            this.left_eyebrow_right_corner = left_eyebrow_right_corner;
        }
        public Left_eyebrow_right_corner getLeft_eyebrow_right_corner(){
            return this.left_eyebrow_right_corner;
        }
        public void setLeft_eyebrow_upper_left_quarter(Left_eyebrow_upper_left_quarter left_eyebrow_upper_left_quarter){
            this.left_eyebrow_upper_left_quarter = left_eyebrow_upper_left_quarter;
        }
        public Left_eyebrow_upper_left_quarter getLeft_eyebrow_upper_left_quarter(){
            return this.left_eyebrow_upper_left_quarter;
        }
        public void setLeft_eyebrow_upper_middle(Left_eyebrow_upper_middle left_eyebrow_upper_middle){
            this.left_eyebrow_upper_middle = left_eyebrow_upper_middle;
        }
        public Left_eyebrow_upper_middle getLeft_eyebrow_upper_middle(){
            return this.left_eyebrow_upper_middle;
        }
        public void setLeft_eyebrow_upper_right_quarter(Left_eyebrow_upper_right_quarter left_eyebrow_upper_right_quarter){
            this.left_eyebrow_upper_right_quarter = left_eyebrow_upper_right_quarter;
        }
        public Left_eyebrow_upper_right_quarter getLeft_eyebrow_upper_right_quarter(){
            return this.left_eyebrow_upper_right_quarter;
        }
        public void setMouth_left_corner(Mouth_left_corner mouth_left_corner){
            this.mouth_left_corner = mouth_left_corner;
        }
        public Mouth_left_corner getMouth_left_corner(){
            return this.mouth_left_corner;
        }
        public void setMouth_lower_lip_bottom(Mouth_lower_lip_bottom mouth_lower_lip_bottom){
            this.mouth_lower_lip_bottom = mouth_lower_lip_bottom;
        }
        public Mouth_lower_lip_bottom getMouth_lower_lip_bottom(){
            return this.mouth_lower_lip_bottom;
        }
        public void setMouth_lower_lip_left_contour1(Mouth_lower_lip_left_contour1 mouth_lower_lip_left_contour1){
            this.mouth_lower_lip_left_contour1 = mouth_lower_lip_left_contour1;
        }
        public Mouth_lower_lip_left_contour1 getMouth_lower_lip_left_contour1(){
            return this.mouth_lower_lip_left_contour1;
        }
        public void setMouth_lower_lip_left_contour2(Mouth_lower_lip_left_contour2 mouth_lower_lip_left_contour2){
            this.mouth_lower_lip_left_contour2 = mouth_lower_lip_left_contour2;
        }
        public Mouth_lower_lip_left_contour2 getMouth_lower_lip_left_contour2(){
            return this.mouth_lower_lip_left_contour2;
        }
        public void setMouth_lower_lip_left_contour3(Mouth_lower_lip_left_contour3 mouth_lower_lip_left_contour3){
            this.mouth_lower_lip_left_contour3 = mouth_lower_lip_left_contour3;
        }
        public Mouth_lower_lip_left_contour3 getMouth_lower_lip_left_contour3(){
            return this.mouth_lower_lip_left_contour3;
        }
        public void setMouth_lower_lip_right_contour1(Mouth_lower_lip_right_contour1 mouth_lower_lip_right_contour1){
            this.mouth_lower_lip_right_contour1 = mouth_lower_lip_right_contour1;
        }
        public Mouth_lower_lip_right_contour1 getMouth_lower_lip_right_contour1(){
            return this.mouth_lower_lip_right_contour1;
        }
        public void setMouth_lower_lip_right_contour2(Mouth_lower_lip_right_contour2 mouth_lower_lip_right_contour2){
            this.mouth_lower_lip_right_contour2 = mouth_lower_lip_right_contour2;
        }
        public Mouth_lower_lip_right_contour2 getMouth_lower_lip_right_contour2(){
            return this.mouth_lower_lip_right_contour2;
        }
        public void setMouth_lower_lip_right_contour3(Mouth_lower_lip_right_contour3 mouth_lower_lip_right_contour3){
            this.mouth_lower_lip_right_contour3 = mouth_lower_lip_right_contour3;
        }
        public Mouth_lower_lip_right_contour3 getMouth_lower_lip_right_contour3(){
            return this.mouth_lower_lip_right_contour3;
        }
        public void setMouth_lower_lip_top(Mouth_lower_lip_top mouth_lower_lip_top){
            this.mouth_lower_lip_top = mouth_lower_lip_top;
        }
        public Mouth_lower_lip_top getMouth_lower_lip_top(){
            return this.mouth_lower_lip_top;
        }
        public void setMouth_right_corner(Mouth_right_corner mouth_right_corner){
            this.mouth_right_corner = mouth_right_corner;
        }
        public Mouth_right_corner getMouth_right_corner(){
            return this.mouth_right_corner;
        }
        public void setMouth_upper_lip_bottom(Mouth_upper_lip_bottom mouth_upper_lip_bottom){
            this.mouth_upper_lip_bottom = mouth_upper_lip_bottom;
        }
        public Mouth_upper_lip_bottom getMouth_upper_lip_bottom(){
            return this.mouth_upper_lip_bottom;
        }
        public void setMouth_upper_lip_left_contour1(Mouth_upper_lip_left_contour1 mouth_upper_lip_left_contour1){
            this.mouth_upper_lip_left_contour1 = mouth_upper_lip_left_contour1;
        }
        public Mouth_upper_lip_left_contour1 getMouth_upper_lip_left_contour1(){
            return this.mouth_upper_lip_left_contour1;
        }
        public void setMouth_upper_lip_left_contour2(Mouth_upper_lip_left_contour2 mouth_upper_lip_left_contour2){
            this.mouth_upper_lip_left_contour2 = mouth_upper_lip_left_contour2;
        }
        public Mouth_upper_lip_left_contour2 getMouth_upper_lip_left_contour2(){
            return this.mouth_upper_lip_left_contour2;
        }
        public void setMouth_upper_lip_left_contour3(Mouth_upper_lip_left_contour3 mouth_upper_lip_left_contour3){
            this.mouth_upper_lip_left_contour3 = mouth_upper_lip_left_contour3;
        }
        public Mouth_upper_lip_left_contour3 getMouth_upper_lip_left_contour3(){
            return this.mouth_upper_lip_left_contour3;
        }
        public void setMouth_upper_lip_right_contour1(Mouth_upper_lip_right_contour1 mouth_upper_lip_right_contour1){
            this.mouth_upper_lip_right_contour1 = mouth_upper_lip_right_contour1;
        }
        public Mouth_upper_lip_right_contour1 getMouth_upper_lip_right_contour1(){
            return this.mouth_upper_lip_right_contour1;
        }
        public void setMouth_upper_lip_right_contour2(Mouth_upper_lip_right_contour2 mouth_upper_lip_right_contour2){
            this.mouth_upper_lip_right_contour2 = mouth_upper_lip_right_contour2;
        }
        public Mouth_upper_lip_right_contour2 getMouth_upper_lip_right_contour2(){
            return this.mouth_upper_lip_right_contour2;
        }
        public void setMouth_upper_lip_right_contour3(Mouth_upper_lip_right_contour3 mouth_upper_lip_right_contour3){
            this.mouth_upper_lip_right_contour3 = mouth_upper_lip_right_contour3;
        }
        public Mouth_upper_lip_right_contour3 getMouth_upper_lip_right_contour3(){
            return this.mouth_upper_lip_right_contour3;
        }
        public void setMouth_upper_lip_top(Mouth_upper_lip_top mouth_upper_lip_top){
            this.mouth_upper_lip_top = mouth_upper_lip_top;
        }
        public Mouth_upper_lip_top getMouth_upper_lip_top(){
            return this.mouth_upper_lip_top;
        }
        public void setNose_contour_left1(Nose_contour_left1 nose_contour_left1){
            this.nose_contour_left1 = nose_contour_left1;
        }
        public Nose_contour_left1 getNose_contour_left1(){
            return this.nose_contour_left1;
        }
        public void setNose_contour_left2(Nose_contour_left2 nose_contour_left2){
            this.nose_contour_left2 = nose_contour_left2;
        }
        public Nose_contour_left2 getNose_contour_left2(){
            return this.nose_contour_left2;
        }
        public void setNose_contour_left3(Nose_contour_left3 nose_contour_left3){
            this.nose_contour_left3 = nose_contour_left3;
        }
        public Nose_contour_left3 getNose_contour_left3(){
            return this.nose_contour_left3;
        }
        public void setNose_contour_lower_middle(Nose_contour_lower_middle nose_contour_lower_middle){
            this.nose_contour_lower_middle = nose_contour_lower_middle;
        }
        public Nose_contour_lower_middle getNose_contour_lower_middle(){
            return this.nose_contour_lower_middle;
        }
        public void setNose_contour_right1(Nose_contour_right1 nose_contour_right1){
            this.nose_contour_right1 = nose_contour_right1;
        }
        public Nose_contour_right1 getNose_contour_right1(){
            return this.nose_contour_right1;
        }
        public void setNose_contour_right2(Nose_contour_right2 nose_contour_right2){
            this.nose_contour_right2 = nose_contour_right2;
        }
        public Nose_contour_right2 getNose_contour_right2(){
            return this.nose_contour_right2;
        }
        public void setNose_contour_right3(Nose_contour_right3 nose_contour_right3){
            this.nose_contour_right3 = nose_contour_right3;
        }
        public Nose_contour_right3 getNose_contour_right3(){
            return this.nose_contour_right3;
        }
        public void setNose_left(Nose_left nose_left){
            this.nose_left = nose_left;
        }
        public Nose_left getNose_left(){
            return this.nose_left;
        }
        public void setNose_right(Nose_right nose_right){
            this.nose_right = nose_right;
        }
        public Nose_right getNose_right(){
            return this.nose_right;
        }
        public void setNose_tip(Nose_tip nose_tip){
            this.nose_tip = nose_tip;
        }
        public Nose_tip getNose_tip(){
            return this.nose_tip;
        }
        public void setRight_eye_bottom(Right_eye_bottom right_eye_bottom){
            this.right_eye_bottom = right_eye_bottom;
        }
        public Right_eye_bottom getRight_eye_bottom(){
            return this.right_eye_bottom;
        }
        public void setRight_eye_center(Right_eye_center right_eye_center){
            this.right_eye_center = right_eye_center;
        }
        public Right_eye_center getRight_eye_center(){
            return this.right_eye_center;
        }
        public void setRight_eye_left_corner(Right_eye_left_corner right_eye_left_corner){
            this.right_eye_left_corner = right_eye_left_corner;
        }
        public Right_eye_left_corner getRight_eye_left_corner(){
            return this.right_eye_left_corner;
        }
        public void setRight_eye_lower_left_quarter(Right_eye_lower_left_quarter right_eye_lower_left_quarter){
            this.right_eye_lower_left_quarter = right_eye_lower_left_quarter;
        }
        public Right_eye_lower_left_quarter getRight_eye_lower_left_quarter(){
            return this.right_eye_lower_left_quarter;
        }
        public void setRight_eye_lower_right_quarter(Right_eye_lower_right_quarter right_eye_lower_right_quarter){
            this.right_eye_lower_right_quarter = right_eye_lower_right_quarter;
        }
        public Right_eye_lower_right_quarter getRight_eye_lower_right_quarter(){
            return this.right_eye_lower_right_quarter;
        }
        public void setRight_eye_pupil(Right_eye_pupil right_eye_pupil){
            this.right_eye_pupil = right_eye_pupil;
        }
        public Right_eye_pupil getRight_eye_pupil(){
            return this.right_eye_pupil;
        }
        public void setRight_eye_right_corner(Right_eye_right_corner right_eye_right_corner){
            this.right_eye_right_corner = right_eye_right_corner;
        }
        public Right_eye_right_corner getRight_eye_right_corner(){
            return this.right_eye_right_corner;
        }
        public void setRight_eye_top(Right_eye_top right_eye_top){
            this.right_eye_top = right_eye_top;
        }
        public Right_eye_top getRight_eye_top(){
            return this.right_eye_top;
        }
        public void setRight_eye_upper_left_quarter(Right_eye_upper_left_quarter right_eye_upper_left_quarter){
            this.right_eye_upper_left_quarter = right_eye_upper_left_quarter;
        }
        public Right_eye_upper_left_quarter getRight_eye_upper_left_quarter(){
            return this.right_eye_upper_left_quarter;
        }
        public void setRight_eye_upper_right_quarter(Right_eye_upper_right_quarter right_eye_upper_right_quarter){
            this.right_eye_upper_right_quarter = right_eye_upper_right_quarter;
        }
        public Right_eye_upper_right_quarter getRight_eye_upper_right_quarter(){
            return this.right_eye_upper_right_quarter;
        }
        public void setRight_eyebrow_left_corner(Right_eyebrow_left_corner right_eyebrow_left_corner){
            this.right_eyebrow_left_corner = right_eyebrow_left_corner;
        }
        public Right_eyebrow_left_corner getRight_eyebrow_left_corner(){
            return this.right_eyebrow_left_corner;
        }
        public void setRight_eyebrow_lower_left_quarter(Right_eyebrow_lower_left_quarter right_eyebrow_lower_left_quarter){
            this.right_eyebrow_lower_left_quarter = right_eyebrow_lower_left_quarter;
        }
        public Right_eyebrow_lower_left_quarter getRight_eyebrow_lower_left_quarter(){
            return this.right_eyebrow_lower_left_quarter;
        }
        public void setRight_eyebrow_lower_middle(Right_eyebrow_lower_middle right_eyebrow_lower_middle){
            this.right_eyebrow_lower_middle = right_eyebrow_lower_middle;
        }
        public Right_eyebrow_lower_middle getRight_eyebrow_lower_middle(){
            return this.right_eyebrow_lower_middle;
        }
        public void setRight_eyebrow_lower_right_quarter(Right_eyebrow_lower_right_quarter right_eyebrow_lower_right_quarter){
            this.right_eyebrow_lower_right_quarter = right_eyebrow_lower_right_quarter;
        }
        public Right_eyebrow_lower_right_quarter getRight_eyebrow_lower_right_quarter(){
            return this.right_eyebrow_lower_right_quarter;
        }
        public void setRight_eyebrow_right_corner(Right_eyebrow_right_corner right_eyebrow_right_corner){
            this.right_eyebrow_right_corner = right_eyebrow_right_corner;
        }
        public Right_eyebrow_right_corner getRight_eyebrow_right_corner(){
            return this.right_eyebrow_right_corner;
        }
        public void setRight_eyebrow_upper_left_quarter(Right_eyebrow_upper_left_quarter right_eyebrow_upper_left_quarter){
            this.right_eyebrow_upper_left_quarter = right_eyebrow_upper_left_quarter;
        }
        public Right_eyebrow_upper_left_quarter getRight_eyebrow_upper_left_quarter(){
            return this.right_eyebrow_upper_left_quarter;
        }
        public void setRight_eyebrow_upper_middle(Right_eyebrow_upper_middle right_eyebrow_upper_middle){
            this.right_eyebrow_upper_middle = right_eyebrow_upper_middle;
        }
        public Right_eyebrow_upper_middle getRight_eyebrow_upper_middle(){
            return this.right_eyebrow_upper_middle;
        }
        public void setRight_eyebrow_upper_right_quarter(Right_eyebrow_upper_right_quarter right_eyebrow_upper_right_quarter){
            this.right_eyebrow_upper_right_quarter = right_eyebrow_upper_right_quarter;
        }
        public Right_eyebrow_upper_right_quarter getRight_eyebrow_upper_right_quarter(){
            return this.right_eyebrow_upper_right_quarter;
        }
    }

    public class Faces
    {
        private Attributes attributes;

        private Face_rectangle face_rectangle;

        private String face_token;

        private Landmark landmark;

        public void setAttributes(Attributes attributes){
            this.attributes = attributes;
        }
        public Attributes getAttributes(){
            return this.attributes;
        }
        public void setFace_rectangle(Face_rectangle face_rectangle){
            this.face_rectangle = face_rectangle;
        }
        public Face_rectangle getFace_rectangle(){
            return this.face_rectangle;
        }
        public void setFace_token(String face_token){
            this.face_token = face_token;
        }
        public String getFace_token(){
            return this.face_token;
        }
        public void setLandmark(Landmark landmark){
            this.landmark = landmark;
        }
        public Landmark getLandmark(){
            return this.landmark;
        }

        @Override
        public String toString() {
            return "Faces{" +
                    "attributes=" + attributes +
                    ", face_rectangle=" + face_rectangle +
                    ", face_token='" + face_token + '\'' +
                    ", landmark=" + landmark +
                    '}';
        }
    }
}
View Code

如果不需要檢測出來的點,可以使用該實體類:

import java.util.List;

/**
 * 人臉屬性值
 */
public class DataBean {
    private List<Faces> faces;

    private String image_id;

    private String request_id;

    private int time_used;

    public void setFaces(List<Faces> faces){
        this.faces = faces;
    }
    public List<Faces> getFaces(){
        return this.faces;
    }
    public void setImage_id(String image_id){
        this.image_id = image_id;
    }
    public String getImage_id(){
        return this.image_id;
    }
    public void setRequest_id(String request_id){
        this.request_id = request_id;
    }
    public String getRequest_id(){
        return this.request_id;
    }
    public void setTime_used(int time_used){
        this.time_used = time_used;
    }
    public int getTime_used(){
        return this.time_used;
    }

    public class Age
    {
        private int value;

        public void setValue(int value){
            this.value = value;
        }
        public int getValue(){
            return this.value;
        }

        @Override
        public String toString() {
            return "年齡=" +
                     value
                ;
        }
    }

    
    public class Blurness
    {
        private int threshold;

        private double value;

        public void setThreshold(int threshold){
            this.threshold = threshold;
        }
        public int getThreshold(){
            return this.threshold;
        }
        public void setValue(double value){
            this.value = value;
        }
        public double getValue(){
            return this.value;
        }
    }

    
            
    public class Gaussianblur
    {
        private int threshold;

        private double value;

        public void setThreshold(int threshold){
            this.threshold = threshold;
        }
        public int getThreshold(){
            return this.threshold;
        }
        public void setValue(double value){
            this.value = value;
        }
        public double getValue(){
            return this.value;
        }
    }

    
            
    public class Motionblur
    {
        private int threshold;

        private double value;

        public void setThreshold(int threshold){
            this.threshold = threshold;
        }
        public int getThreshold(){
            return this.threshold;
        }
        public void setValue(double value){
            this.value = value;
        }
        public double getValue(){
            return this.value;
        }
    }

    
            
    public class Blur
    {
        private Blurness blurness;

        private Gaussianblur gaussianblur;

        private Motionblur motionblur;

        public void setBlurness(Blurness blurness){
            this.blurness = blurness;
        }
        public Blurness getBlurness(){
            return this.blurness;
        }
        public void setGaussianblur(Gaussianblur gaussianblur){
            this.gaussianblur = gaussianblur;
        }
        public Gaussianblur getGaussianblur(){
            return this.gaussianblur;
        }
        public void setMotionblur(Motionblur motionblur){
            this.motionblur = motionblur;
        }
        public Motionblur getMotionblur(){
            return this.motionblur;
        }
    }

    
            
    public class Ethnicity
    {
        private String value;

        public void setValue(String value){
            this.value = value;
        }
        public String getValue(){
            return this.value;
        }

        @Override
        public String toString() {
            return "人種{" +
                    "value='" + value + '\'' +
                    '}';
        }
    }

    
            


    
            

    


    
            
    public class Facequality
    {
        private double threshold;

        private double value;

        public void setThreshold(double threshold){
            this.threshold = threshold;
        }
        public double getThreshold(){
            return this.threshold;
        }
        public void setValue(double value){
            this.value = value;
        }
        public double getValue(){
            return this.value;
        }

        @Override
        public String toString() {
            return "人臉質量{" +
                    "threshold=" + threshold +
                    ", value=" + value +
                    '}';
        }
    }

    
            
    public class Gender
    {
        private String value;

        public void setValue(String value){
            this.value = value;
        }
        public String getValue(){
            return this.value;
        }

        @Override
        public String toString() {
            return "性別{" +
                    "value='" + value + '\'' +
                    '}';
        }
    }

    
            
    public class Glass
    {
        private String value;

        public void setValue(String value){
            this.value = value;
        }
        public String getValue(){
            return this.value;
        }
    }
    public class Smile
    {
        private double threshold;

        private double value;

        public void setThreshold(double threshold){
            this.threshold = threshold;
        }
        public double getThreshold(){
            return this.threshold;
        }
        public void setValue(double value){
            this.value = value;
        }
        public double getValue(){
            return this.value;
        }

        @Override
        public String toString() {
            return "笑容分享{" +
                    "threshold=" + threshold +
                    ", value=" + value +
                    '}';
        }
    }

    
            
    public class Attributes
    {
        private Age age;//年齡

        private Blur blur;

        /**
         * ethnicity: 人種分析結果,value的值為Asian/White/Black。Asian代表亞洲人,White代表白人,Black代表黑人。
         */
        private Ethnicity ethnicity;

        //private Eyestatus eyestatus;// 眼睛狀態信息 包括 le

        /**
         * facequality: 人臉質量判斷結果,value值為人臉的質量判斷的分數,是一個浮點數,范圍[0,100], 小數點后3位有效數字。threshold表示人臉質量基本合格的一個閾值,超過該閾值的人臉適合用於人臉比對。
         */
        private Facequality facequality;

        /**
         * gender:性別分析結果,value的值為Male/Female。Male 代表男性,Female代表女性。
         */
        private Gender gender;

        /**
         * 是否佩戴眼鏡的分析結果,value的值為None/Dark/Normal。None代表不佩戴眼鏡,Dark代表佩戴墨鏡,Normal代表佩戴普通眼鏡。(請注意,motionblur 和 gaussianblur 將於2017-4-30日停止返回,請盡快停用)
         headpose:人臉姿勢分析結果,包括pitch_angle, roll_angle, yaw_angle,分別對應抬頭,旋轉(平面旋轉),搖頭。單位為角度。
         */
        private Glass glass;


        /**
         * smiling:笑容分析結果,value的值為一個[0,100]的浮點數,小數點后3位有效數字,數值大表示笑程度高。threshold代表笑容的閾值,超過該閾值認為有笑容。
         */
        private Smile smile;

        public void setAge(Age age){
            this.age = age;
        }
        public Age getAge(){
            return this.age;
        }
        public void setBlur(Blur blur){
            this.blur = blur;
        }
        public Blur getBlur(){
            return this.blur;
        }
        public void setEthnicity(Ethnicity ethnicity){
            this.ethnicity = ethnicity;
        }
        public Ethnicity getEthnicity(){
            return this.ethnicity;
        }
        public void setFacequality(Facequality facequality){
            this.facequality = facequality;
        }
        public Facequality getFacequality(){
            return this.facequality;
        }
        public void setGender(Gender gender){
            this.gender = gender;
        }
        public Gender getGender(){
            return this.gender;
        }
        public void setGlass(Glass glass){
            this.glass = glass;
        }
        public Glass getGlass(){
            return this.glass;
        }
        public void setSmile(Smile smile){
            this.smile = smile;
        }
        public Smile getSmile(){
            return this.smile;
        }

        @Override
        public String toString() {
            return "Attributes{" +
                    "age=" + age +
                    ", blur=" + blur +
                    ", ethnicity=" + ethnicity +
                    ", facequality=" + facequality +
                    ", gender=" + gender +
                    ", glass=" + glass +
                    ", smile=" + smile +
                    '}';
        }
    }

    public class Face_rectangle
    {
        private int height;

        private int left;

        private int top;

        private int width;

        public void setHeight(int height){
            this.height = height;
        }
        public int getHeight(){
            return this.height;
        }
        public void setLeft(int left){
            this.left = left;
        }
        public int getLeft(){
            return this.left;
        }
        public void setTop(int top){
            this.top = top;
        }
        public int getTop(){
            return this.top;
        }
        public void setWidth(int width){
            this.width = width;
        }
        public int getWidth(){
            return this.width;
        }
    }

    
            


    public class Faces
    {
        private Attributes attributes;

        private Face_rectangle face_rectangle;

        private String face_token;


        public void setAttributes(Attributes attributes){
            this.attributes = attributes;
        }
        public Attributes getAttributes(){
            return this.attributes;
        }
        public void setFace_rectangle(Face_rectangle face_rectangle){
            this.face_rectangle = face_rectangle;
        }
        public Face_rectangle getFace_rectangle(){
            return this.face_rectangle;
        }
        public void setFace_token(String face_token){
            this.face_token = face_token;
        }
        public String getFace_token(){
            return this.face_token;
        }

        @Override
        public String toString() {
            return "Faces{" +
                    "attributes=" + attributes +
                    ", face_rectangle=" + face_rectangle +
                    ", face_token='" + face_token + '\'' +
                    '}';
        }
    }
}
View Code

添加權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.CAMERA" />

效果圖

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM