Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            // 设置APPID/AK/SK
            string APP_ID     = "16639806";
            string API_KEY    = "7GLoNSeBYpVq5XYALtcF4e2E";
            string SECRET_KEY = "N8xZQGf8GgMqDQXorbeLSr4YBQfoRgAp";

            Face client = new Face(API_KEY, SECRET_KEY);

            client.Timeout = 60000;

            JObject             jsonObjectResult = DetectDemo(client);
            JsonFaceRequestData jFRD             = JsonConvert.DeserializeObject <JsonFaceRequestData>(jsonObjectResult.ToString());

            JObject jAllPosition = jFRD.result.face_list[0].landmark150;

            //通过嘴唇距离判断

            //60
            double   mouth_lip_upper_outer_6_x = Convert.ToDouble(jAllPosition["mouth_lip_upper_outer_6"]["x"]);
            double   mouth_lip_upper_outer_6_y = Convert.ToDouble(jAllPosition["mouth_lip_upper_outer_6"]["y"]);
            Position mouth_lip_upper_outer_6   = new Position(mouth_lip_upper_outer_6_x, mouth_lip_upper_outer_6_y);

            //67
            double   mouth_lip_upper_inner_6_x = Convert.ToDouble(jAllPosition["mouth_lip_upper_inner_6"]["x"]);
            double   mouth_lip_upper_inner_6_y = Convert.ToDouble(jAllPosition["mouth_lip_upper_inner_6"]["y"]);
            Position mouth_lip_upper_inner_6   = new Position(mouth_lip_upper_inner_6_x, mouth_lip_upper_inner_6_y);

            //70
            double   mouth_lip_lower_inner_6_x = Convert.ToDouble(jAllPosition["mouth_lip_lower_inner_6"]["x"]);
            double   mouth_lip_lower_inner_6_y = Convert.ToDouble(jAllPosition["mouth_lip_lower_inner_6"]["y"]);
            Position mouth_lip_lower_inner_6   = new Position(mouth_lip_lower_inner_6_x, mouth_lip_lower_inner_6_y);

            //64
            double   mouth_lip_lower_outer_6_x = Convert.ToDouble(jAllPosition["mouth_lip_lower_outer_6"]["x"]);
            double   mouth_lip_lower_outer_6_y = Convert.ToDouble(jAllPosition["mouth_lip_lower_outer_6"]["y"]);
            Position mouth_lip_lower_outer_6   = new Position(mouth_lip_lower_outer_6_x, mouth_lip_lower_outer_6_y);

            //取平均值
            double y_AverageOf60and67 = (mouth_lip_upper_outer_6.y + mouth_lip_upper_inner_6.y) / 2;
            double y_AverageOf70and64 = (mouth_lip_lower_inner_6.y + mouth_lip_lower_outer_6.y) / 2;
            double distanceOfPixel    = y_AverageOf70and64 - y_AverageOf60and67;

            Console.WriteLine("上嘴唇中部与下嘴唇中部的像素距离是:{0}", distanceOfPixel);
            Console.WriteLine("上嘴唇下部与下嘴唇上部的像素距离是:{0}", mouth_lip_lower_inner_6.y - mouth_lip_upper_inner_6.y);



            Console.ReadKey();
        }
Ejemplo n.º 2
0
    public static string GetEyeStatus(byte[] bytes)
    {
        SetAccessToken();
        string base64String      = Convert.ToBase64String(bytes);
        string jsonStringResult  = DetectDemo(base64String);
        JsonFaceRequestData jFRD = JsonConvert.DeserializeObject <JsonFaceRequestData>(jsonStringResult);

        try
        {
            double left_eye  = jFRD.result.face_list[0].eye_status.left_eye;
            double right_eye = jFRD.result.face_list[0].eye_status.right_eye;

            return(left_eye.ToString() + "|" + right_eye.ToString());
        }
        catch (Exception)
        {
            return(null);
        }
    }
    public static string GetEyeStatus(byte[] bytes)
    {
        client.AppId   = APP_ID;
        client.Timeout = 5000;  // 修改超时时间

        base64String     = Convert.ToBase64String(bytes);
        jsonObjectResult = DetectDemo(client, base64String);
        if (jsonObjectResult == null)
        {
            return(null);
        }

        try
        {
            jFRD       = JsonConvert.DeserializeObject <JsonFaceRequestData>(jsonObjectResult.ToString());
            eye_Status = jFRD.result.face_list[0].eye_status;
            left_eye   = eye_Status.left_eye;
            right_eye  = eye_Status.right_eye;

            return(left_eye.ToString() + "||" + right_eye.ToString());
        }
        catch (Exception e)
        {
            Debug.Log(e);
            return(null);
        }


        /*
         * 通过嘴唇距离判断
         *
         *
         * JObject jAllPosition = jFRD.result.face_list[0].landmark150;
         *
         * //60
         * double mouth_lip_upper_outer_6_x = Convert.ToDouble(jAllPosition["mouth_lip_upper_outer_6"]["x"]);
         * double mouth_lip_upper_outer_6_y = Convert.ToDouble(jAllPosition["mouth_lip_upper_outer_6"]["y"]);
         * Position mouth_lip_upper_outer_6 = new Position(mouth_lip_upper_outer_6_x, mouth_lip_upper_outer_6_y);
         *
         * //67
         * double mouth_lip_upper_inner_6_x = Convert.ToDouble(jAllPosition["mouth_lip_upper_inner_6"]["x"]);
         * double mouth_lip_upper_inner_6_y = Convert.ToDouble(jAllPosition["mouth_lip_upper_inner_6"]["y"]);
         * Position mouth_lip_upper_inner_6 = new Position(mouth_lip_upper_inner_6_x, mouth_lip_upper_inner_6_y);
         *
         * //70
         * double mouth_lip_lower_inner_6_x = Convert.ToDouble(jAllPosition["mouth_lip_lower_inner_6"]["x"]);
         * double mouth_lip_lower_inner_6_y = Convert.ToDouble(jAllPosition["mouth_lip_lower_inner_6"]["y"]);
         * Position mouth_lip_lower_inner_6 = new Position(mouth_lip_lower_inner_6_x, mouth_lip_lower_inner_6_y);
         *
         * //64
         * double mouth_lip_lower_outer_6_x = Convert.ToDouble(jAllPosition["mouth_lip_lower_outer_6"]["x"]);
         * double mouth_lip_lower_outer_6_y = Convert.ToDouble(jAllPosition["mouth_lip_lower_outer_6"]["y"]);
         * Position mouth_lip_lower_outer_6 = new Position(mouth_lip_lower_outer_6_x, mouth_lip_lower_outer_6_y);
         *
         * //取平均值
         * double y_AverageOf60and67 = (mouth_lip_upper_outer_6.y + mouth_lip_upper_inner_6.y) / 2;
         * double y_AverageOf70and64 = (mouth_lip_lower_inner_6.y + mouth_lip_lower_outer_6.y) / 2;
         * double distanceOfPixel = y_AverageOf70and64 - y_AverageOf60and67;
         * Console.WriteLine("上嘴唇中部与下嘴唇中部的像素距离是:{0}", distanceOfPixel);
         * Console.WriteLine("上嘴唇下部与下嘴唇上部的像素距离是:{0}", mouth_lip_lower_inner_6.y - mouth_lip_upper_inner_6.y);
         */
    }