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
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
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.
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 :
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
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%
和图片比较一下,还是比较一致的
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 = 'http://apicn.faceplusplus.com/v2'; #var $server = 'https://apicn.faceplusplus.com/v2'; #var $server = 'http://apius.faceplusplus.com/v2'; #var $server = 'https://apius.faceplusplus.com/v2'; ############################################# ### set your api key and api secret here. ### ############################################# var $api_key = '{your API KEY}'; var $api_secret = '{your API SECRET}'; 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 {'http_code':'Http Status Code', 'request_url':'Http Request URL','body':' JSON Response'} **/ public function execute($method,$params){ if(empty($params)){ $params=array(); } $params['api_key'] = $this->api_key; $params['api_secret'] = $this->api_secret; return $this->request("{$this->server}{$method}",$params); } private function request($request_url , $request_body){ $useragent = 'Faceplusplus PHP SDK/1.0'; $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('zlib')){ curl_setopt($curl_handle, CURLOPT_ENCODING, ''); } curl_setopt($curl_handle, CURLOPT_POST, TRUE); if(array_key_exists('img',$request_body)){ $request_body['img'] = '@'.$request_body['img']; }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('http_code'=>$reponse_header['http_code'],'request_url'=>$request_url,'body'=>$response_text); } }
在微信中再将结果整理成文本消息就可以了。
下面是实际使用结果:
漂亮/帅气指数鉴定技术
近亲及亲子鉴定技术
男人味/女人味鉴定技术
更多Linterface de messagerie de la plateforme publique WeChat développe la reconnaissance dimages et la reconnaissance faciale相关文章请关注PHP中文网!