Maison >Applet WeChat >Développement WeChat >L'interface de messagerie de la plateforme publique WeChat développe la reconnaissance d'images et la reconnaissance faciale

L'interface de messagerie de la plateforme publique WeChat développe la reconnaissance d'images et la reconnaissance faciale

高洛峰
高洛峰original
2017-03-01 09:35:575763parcourir

1. Avant-propos

Les premières petites applications semblent faibles et la réponse est tiède. Il semble que personne ne soit intéressé. Aujourd'hui, je vais en présenter une plus accrocheuse. vous : la plateforme publique WeChat.

J'ai vu il y a quelque temps un rapport sur Internet selon lequel Wei Xiaoyong, professeur agrégé et directeur du département d'informatique de l'Université du Sichuan, avait développé un système de présence en classe basé sur l'image. « faites glisser votre visage » pendant l'appel nominal en classe. Voir l'image ci-dessous

Linterface de messagerie de la plateforme publique WeChat développe la reconnaissance dimages et la reconnaissance faciale

Pendant l'appel nominal, il vous suffit de prendre des photos des élèves dans la classe sous plusieurs angles. , puis téléchargez les photos sur le serveur et assemblez-les automatiquement en une image entière, et le système traitera ensuite les photos. Les avatars des étudiants sont automatiquement numérotés et identifiés, et les informations personnelles de l'étudiant apparaissent à la fin, avec deux options : "Il 'sme" et "notme" à côté. De cette façon, vous pouvez immédiatement savoir qui est en classe et qui saute

Ce qui est encore plus étonnant, c'est la signification statistique de cette chose : elle peut même analyser les relations interpersonnelles des élèves et même les intérêts de la personnalité. aimez-vous vous asseoir en classe et à côté de qui aimez-vous vous asseoir ? Obtenez les données brutes après un certain temps, analysez-les à nouveau et vous pourrez découvrir qui est amoureux de qui, et qui est avec qui après. rupture. Qui aime toujours s'asseoir seul dans un coin (autisme) ? Un certain garçon et un certain garçon sont assis ensemble à chaque fois depuis six mois (amis gays ???). . grand. . . . . .

Passons aux choses sérieuses :

Tout d'abord, jetons un coup d'œil à ce qu'est la reconnaissance faciale et regardons la définition de l'encyclopédie Baidu : la reconnaissance faciale en particulier fait référence à l'utilisation de l'analyse et de la comparaison de la technologie informatique de la vision du visage pour l'identification à l'aide d'informations caractéristiques. La reconnaissance faciale est un domaine populaire de recherche en technologie informatique. Elle peut détecter la lumière et l'obscurité du visage, ajuster automatiquement la compensation d'exposition dynamique, suivre et détecter le visage et ajuster automatiquement le grossissement de l'image, elle appartient à la technologie d'identification biométrique et est ; un outil d'identification biologique. Désigne généralement les caractéristiques biologiques de la personne elle-même pour distinguer les organismes individuels.

Le processus technique de reconnaissance faciale (extrait de l'Encyclopédie Baidu)

Il est généralement divisé en trois étapes :
(1) Créez d'abord un fichier d'image faciale du visage. Autrement dit, une caméra est utilisée pour collecter des fichiers d'images faciales des visages du personnel de l'unité ou prendre leurs photos pour former des fichiers d'images faciales, et ces fichiers d'images faciales sont générés dans des codes d'impression faciale (Faceprint) et stockés.
(2) Obtenez l'image actuelle du visage humain. Autrement dit, utilisez un appareil photo pour capturer l'image du visage de la personne actuelle qui entre et sort, ou prenez une photo à saisir et générez un code de motif facial à partir du fichier d'image faciale actuel.
(3) Comparez le code actuel du motif facial avec l'inventaire des archives. Autrement dit, le code de motif facial de l'image faciale actuelle est récupéré et comparé au code de motif facial dans l'inventaire des archives. La méthode de « codage des motifs du visage » mentionnée ci-dessus fonctionne sur la base des caractéristiques essentielles et des débuts du visage humain. Ce codage de motifs faciaux est résistant aux changements de lumière, de teint, de pilosité faciale, de coiffure, de lunettes, d'expression et de posture, ce qui lui permet d'identifier avec précision un individu parmi des millions d'autres. Le processus de reconnaissance faciale peut être effectué automatiquement, en continu et en temps réel à l’aide d’un équipement de traitement d’image ordinaire.

2. Reconnaissance faciale sur la plateforme publique WeChat

1. Acquisition d'images

Tout d'abord, vous devez obtenir les photos envoyées par les utilisateurs. , Plateforme publique WeChat Prend en charge la réception d'images,

Une image envoyée par l'utilisateur est la suivante :

Linterface de messagerie de la plateforme publique WeChat développe la reconnaissance dimages et la reconnaissance faciale

Le format du message image est le suivant :

<xml>
    <ToUserName><![CDATA[gh_13d1a3a7x46a]]></ToUserName>
    <FromUserName><![CDATA[oKaHDjt60aAyPvQmUX3ddyix_zG8]]></FromUserName>
    <CreateTime>1357543196</CreateTime>
    <MsgType><![CDATA[image]]></MsgType>
    <PicUrl><![CDATA[http://www.php.cn/]]></PicUrl>
    <MsgId>5830603629728080261</MsgId></xml>

ToUserName WeChat ID du destinataire du message, généralement le compte public de la plateforme WeChat ID
FromUserName WeChat ID de l'expéditeur du message
CreateTime Heure de création du message
MsgType Type de message ; Le message image est une image
PicUrl, adresse du lien image
MsgId, numéro d'identification du message

2. >

Face fournit une interface de reconnaissance faciale,

Détecte les positions de tous les visages (Face) dans une image donnée (Image) et l'adresse de l'interface d'attribut facial correspondante est la suivante :

http:// apicn.faceplusplus.com/v2/detection/detect

Paramètre

Est-ce nécessaire

Signification

api_key

Obligatoire

Clé API Face de l'application

api_secret

Obligatoire

Secret de l'API Face de l'APP

url ou img[POST]

doit

URL de l'image à détecter Ou pour les données binaires téléchargées via la méthode POST, la taille de l'image originale doit être inférieure à 3M

mode

Facultatif

检测模式可以是normal(默认) 或者 oneface 。在oneface模式中,检测器仅找出图片中最大的一张脸。

attribute

可选

可以是none或者由逗号分割的属性列表。默认为gender, age, race, smiling。目前支持的属性包括:gender, age, race, smiling, glass, pose

tag

可选

可以为图片中检测出的每一张Face指定一个不包含^@,&=*'"等非法字符且不超过255字节的字符串作为tag,tag信息可以通过 /info/get_face 查询

async

可选

如果置为true,该API将会以异步方式被调用;也就是立即返回一个session id,稍后可通过/info/get_session查询结果。默认值为false。


返回如下

{
    "face": [
        {
            "attribute": {
                "age": {
                    "range": 5,
                    "value": 17
                },
                "gender": {
                    "confidence": 99.9781,
                    "value": "Female"
                },
                "glass": {
                    "confidence": 99.9815,
                    "value": "None"
                },
                "pose": {
                    "pitch_angle": {
                        "value": 0.000019753399999999996
                    },
                    "roll_angle": {
                        "value": 1.75177
                    },
                    "yaw_angle": {
                        "value": 4
                    }
                },
                "race": {
                    "confidence": 99.471,
                    "value": "Asian"
                },
                "smiling": {
                    "value": 87.1365
                }
            },
            "face_id": "c772b4b66c00d46b15344eff74b56e48"
        }
    ],
    "img_height": 293,
    "img_id": "3005132383841edd08c9b500fb1fe2c4",
    "img_width": 440,
    "session_id": "4e64c73fec19442cbefde3cf9bd6b53d",
    "url": ""
}

参数:

gender

object

包含性别分析结果,value的值为Male/Female, confidence表示置信度

age

object

包含年龄分析结果,value的值为一个非负整数表示估计的年龄, range表示估计年龄的正负区间

race

object

包含人种分析结果,value的值为Asian/White/Black, confidence表示置信度

smiling

object

包含微笑程度分析结果,value的值为0-100的实数,越大表示微笑程度越高

实现方法

取结果参数中的gender,age,race,smiling等参数 ,如

"attribute": {
                "age": {
                    "range": 5,
                    "value": 17
                },
                "gender": {
                    "confidence": 99.9781,
                    "value": "Female"
                },
                "glass": {
                    "confidence": 99.9815,
                    "value": "None"
                },
                "pose": {
                    "pitch_angle": {
                        "value": 0.000019753399999999996
                    },
                    "roll_angle": {
                        "value": 1.75177
                    },
                    "yaw_angle": {
                        "value": 4
                    }
                },
                "race": {
                    "confidence": 99.471,
                    "value": "Asian"
                },
                "smiling": {
                    "value": 87.1365
                }

上述结果中,

年龄age为17,误差在5岁
性别为female,表示女,置信度为99%
种族为亚洲Asian,
微笑度 87%

和图片比较一下,还是比较一致的

Linterface de messagerie de la plateforme publique WeChat développe la reconnaissance dimages et la reconnaissance faciale

 

3. 程序实现

SDK如下:

"attribute": {
                "age": {
                    "range": 5,
                    "value": 17
                },
                "gender": {
                    "confidence": 99.9781,
                    "value": "Female"
                },
                "glass": {
                    "confidence": 99.9815,
                    "value": "None"
                },
                "pose": {
                    "pitch_angle": {
                        "value": 0.000019753399999999996
                    },
                    "roll_angle": {
                        "value": 1.75177
                    },
                    "yaw_angle": {
                        "value": 4
                    }
                },
                "race": {
                    "confidence": 99.471,
                    "value": "Asian"
                },
                "smiling": {
                    "value": 87.1365
                }

调用方式如下:

<?PHP
/**
* Face++ PHP SDK
* author: Tianye
* since:  2013-12-11
**/
class Facepp{
    ######################################################
    ### If you choose Amazon(US) server,please use the ###
    ### http://apius.faceplusplus.com/v2               ###
    ### or                                             ###
    ### https://apius.faceplusplus.com/v2              ###
    ######################################################
    var $server = &#39;http://apicn.faceplusplus.com/v2&#39;;
    #var $server = &#39;https://apicn.faceplusplus.com/v2&#39;;
    #var $server = &#39;http://apius.faceplusplus.com/v2&#39;;
    #var $server = &#39;https://apius.faceplusplus.com/v2&#39;;

    #############################################
    ### set your api key and api secret here. ###
    #############################################
    var $api_key = &#39;{your API KEY}&#39;;
    var $api_secret = &#39;{your API SECRET}&#39;;

    public function __construct($api_key=NULL, $api_secret=NULL, $server=NULL){
        if($api_key){
            $this->api_key = $api_key;
        }
        if($api_secret){
            $this->api_secret = $api_secret;
        }
        if($server){
            $this->server = $server;
        }
    }

    /**
    * @param $method : The Face++ API 
    * @param $params : Request Parameters
    * @return : Array {&#39;http_code&#39;:&#39;Http Status Code&#39;, &#39;request_url&#39;:&#39;Http Request URL&#39;,&#39;body&#39;:&#39; JSON Response&#39;}
    **/
    public function execute($method,$params){
        if(empty($params)){
            $params=array();
        }
        $params[&#39;api_key&#39;] = $this->api_key;
        $params[&#39;api_secret&#39;] = $this->api_secret;

        return $this->request("{$this->server}{$method}",$params);
    }

    private function request($request_url , $request_body){
        $useragent = &#39;Faceplusplus PHP SDK/1.0&#39;;
        $curl_handle = curl_init();
        curl_setopt($curl_handle, CURLOPT_URL, $request_url);
        curl_setopt($curl_handle, CURLOPT_FILETIME, TRUE);
        curl_setopt($curl_handle, CURLOPT_FRESH_CONNECT, FALSE);
        curl_setopt($curl_handle, CURLOPT_CLOSEPOLICY, CURLCLOSEPOLICY_LEAST_RECENTLY_USED);
        curl_setopt($curl_handle, CURLOPT_MAXREDIRS, 5);
        curl_setopt($curl_handle, CURLOPT_HEADER, FALSE);
        curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($curl_handle, CURLOPT_TIMEOUT, 5184000);
        curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 120);
        curl_setopt($curl_handle, CURLOPT_NOSIGNAL, TRUE);
        curl_setopt($curl_handle, CURLOPT_REFERER, $request_url);
        curl_setopt($curl_handle, CURLOPT_USERAGENT, $useragent);
        if (extension_loaded(&#39;zlib&#39;)){
            curl_setopt($curl_handle, CURLOPT_ENCODING, &#39;&#39;);
        }
        curl_setopt($curl_handle, CURLOPT_POST, TRUE);
        if(array_key_exists(&#39;img&#39;,$request_body)){
            $request_body[&#39;img&#39;] = &#39;@&#39;.$request_body[&#39;img&#39;];
        }else{
            $request_body=http_build_query($request_body);
        }
        curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $request_body);
        $response_text = curl_exec($curl_handle);
        $reponse_header = curl_getinfo($curl_handle);
        curl_close($curl_handle);
        return array(&#39;http_code&#39;=>$reponse_header[&#39;http_code&#39;],&#39;request_url&#39;=>$request_url,&#39;body&#39;=>$response_text);
    }
}

在微信中再将结果整理成文本消息就可以了。

 

4. 效果展示

下面是实际使用结果:

漂亮/帅气指数鉴定技术

Linterface de messagerie de la plateforme publique WeChat développe la reconnaissance dimages et la reconnaissance facialeLinterface de messagerie de la plateforme publique WeChat développe la reconnaissance dimages et la reconnaissance faciale

近亲及亲子鉴定技术

Linterface de messagerie de la plateforme publique WeChat développe la reconnaissance dimages et la reconnaissance facialeLinterface de messagerie de la plateforme publique WeChat développe la reconnaissance dimages et la reconnaissance faciale

男人味/女人味鉴定技术

Linterface de messagerie de la plateforme publique WeChat développe la reconnaissance dimages et la reconnaissance facialeLinterface de messagerie de la plateforme publique WeChat développe la reconnaissance dimages et la reconnaissance faciale

更多Linterface de messagerie de la plateforme publique WeChat développe la reconnaissance dimages et la reconnaissance faciale相关文章请关注PHP中文网!


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn