微信日志开发之人脸识别开发

这节我们将简单介绍在微信日志中如何实现人脸识别功能

人脸识别我们将会使用Face++提供的api。

需要使用的id以及AppKey请到官网首页注册获取。

(一)实现步骤

1.将用户发送信息获取并提交到服务器

2.服务器端处理信息并返回处理结果

3.将信息返还给用户

(二)实现代码

1.信息提取

在微信日志的主函数中我们有用户输入信息获取的函数,人脸识别的相关信息也可以在其中实现

public function __construct() {
        global $wpdb;

        if(isset($_GET[‘echostr‘]))
            $this->valid();//第一次验证

        $postStr = (isset($GLOBALS["HTTP_RAW_POST_DATA"]))?$GLOBALS["HTTP_RAW_POST_DATA"]:‘‘;
        if($_POST["test"]){
            $postStr = @$_POST["HTTP_RAW_POST_DATA"];
        }
        //$xml = file_get_contents(‘php://input‘);
        //$postStr = unicode_encode($postStr);
        $postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
        $RX_TYPE = trim($postObj->MsgType);
        if($RX_TYPE == ‘image‘)//该处为我们人脸识别函数的添加部分
        {
            $wpdb->postStr = $postStr;
            $wpdb->postArray = wxlog_xml_to_array($postStr);
            $this->wxlog_log_id = $this->insert_wxlog_log($wpdb->postArray,$wpdb->postStr);
            $result = $this->receiveImage($postObj);
            exit($result);
        }

2.信息提交到服务器并处理

    $faceObj = new FacePlusPlus();
    $detect = $faceObj->face_detect($url);
    $numbers = isset($detect->face)? count($detect->face):0;
    if($numbers == 1)
    {

    }
    if (($detect->face[0]->attribute->gender->value != $detect->face[1]->attribute->gender->value) && $numbers == 2){
        $compare = $faceObj->recognition_compare($detect->face[0]->face_id,$detect->face[1]->face_id);
        $result = getCoupleComment($compare->component_similarity->eye, $compare->component_similarity->mouth, $compare->component_similarity->nose, $compare->component_similarity->eyebrow, $compare->similarity);
        return $result;
    }
    else{
        return "请发送一男一女的图片";
    }

该过程中需要使用到face++的相关api(具体使用方法请参考官网或私信联系)

    //人脸检测
    public function face_detect($urls = null)
    {
        return $this->call("detection/detect", array("url"=>$urls));
    }

    //人脸比较
    public function recognition_compare($face_id1, $face_id2)
    {
        return $this->call("recognition/compare", array("face_id1"=>$face_id1, "face_id2"=>$face_id2));
    }

(三)信息返回给用户

由于我们使用了微信日志作为平台,所以输出函数我们也不用写,直接使用微信日志的相关函数就可以

如果希望自己完成也很简单

    private function receiveImage($object)
    {
        require_once(‘faceplusplus.php‘);
        $content = getImageInfo((string)$object->PicUrl);
        $result = $this->transmitText($object, $content);
        return $result;
    }

    private function transmitText($object, $content)
    {
        $textTpl = "<xml>
        <ToUserName><![CDATA[%s]]></ToUserName>
        <FromUserName><![CDATA[%s]]></FromUserName>
        <CreateTime>%s</CreateTime>
        <MsgType><![CDATA[text]]></MsgType>
        <Content><![CDATA[%s]]></Content>
        </xml>";
        $result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content);
        return $result;
    }

通过以上相关函数就可以完成函数的返回。

(四)实现效果

大家可以通过扫描一下二维码体验上述效果,如果对于实现方法有什么不清楚的地方请加微信(dinghinh154)讨论。

时间: 2024-10-08 20:50:33

微信日志开发之人脸识别开发的相关文章

【Win10 应用开发】人脸识别

原文:[Win10 应用开发]人脸识别 可能你会认为人脸识别用起来会很复杂,老周当初也这么想,但通过实际操作后,我发现非然. 经过微软封装的东西,向来都是复杂问题简单化,只要用得舒心,代码越少越好,用最少的代码做最多的事情,此为大师境界也. 好,屁话不说,先介绍一下如何完成人脸识别(或者叫人脸检测,随你怎么翻译,反正知道是怎么一回事就行).核心的类是FaceDetector,不要问我这个类在哪里,自己打开对象浏览器搜索. 第一步,访问静态属性IsSupported,看看当前平台是不是支持人脸识别

[深度应用]&#183;实战掌握Dlib人脸识别开发教程

[深度应用]·实战掌握Dlib人脸识别开发教程 个人网站--> http://www.yansongsong.cn/ 项目GitHub地址--> https://github.com/xiaosongshine/dlib_face_recognition 1.背景介绍 Dlib是一个深度学习开源工具,基于C++开发,也支持Python开发接口,功能类似于TensorFlow与PyTorch.但是由于Dlib对于人脸特征提取支持很好,有很多训练好的人脸特征提取模型供开发者使用,所以Dlib人脸识

实战 | 如何用最快的速度学会Dlib人脸识别开发?

项目GitHub地址:https://github.com/xiaosongshine/dlib_face_recognition 1.背景介绍 Dlib是一个深度学习开源工具,基于C++开发,也支持Python开发接口,功能类似于TensorFlow与PyTorch.但是由于Dlib对于人脸特征提取支持很好,有很多训练好的人脸特征提取模型供开发者使用,所以Dlib人脸识别开发很适合做人脸项目开发.上面所说的人脸识别开发,主要是指人脸验证,就是输入两张人脸照片,系统会对比输出0或者1,代表判断是

c# 利用AForge和百度AI开发实时人脸识别

baiduAIFaceIdentify项目是C#语言,集成百度AI的SDK利用AForge开发的实时人脸识别的小demo,里边包含了人脸检测识别,人脸注册,人脸登录等功能 人脸实时检测识别功能 思路是利用AForge打开摄像头,通过摄像头获取到的图像显示在winform窗体中AForge的控件中,利用AForge控件中的NewFrame事件获取要显示的每一帧的图像,获取图像传输到百度AI平台进行人脸检测,并且将检测结果反馈到界面显示的图像中.在这个过程中有两个问题,获取图像上传到百度AI平台进行

人脸识别开发套件中的在线版本与离线版人脸识别的区别及详解

关于什么是在线版人脸识别与离线版人脸识别想便是一直困扰着大家的,他们的区别是,如何收费的,采用哪种更为合适今天宁远电子就将为你详细说明. 在线版人脸识别技术是指在联网状态下,用户上传人脸图像至人脸识别系统供应商公有云服务器中完成图像识别工作,然后服务器再将人脸识别结果返回给用户,此时人脸图像一般会自动存储在公有云服务器中.目前企业选择在线API或在线SDK接口方式接入人脸识别系统,其实就是在线人脸识别技术. 离线人脸识别技术是指在离线状态下,用户上传的人脸图像不需要传输至人脸识别系统供应商公有云

C#实现基于ffmpeg加虹软Arcface的人脸识别demo

对开发库的C#封装,屏蔽使用细节,可以快速安全的调用人脸识别相关API.具体见github地址.新增对.NET Core的支持,在Linux(Ubuntu下)测试通过.具体的使用例子和Demo详解,参见博客地址. 更新: 增加对V1.1两个新功能的支持. 关于人脸识别 目前的人脸识别已经相对成熟,有各种收费免费的商业方案和开源方案,其中OpenCV很早就支持了人脸识别,在我选择人脸识别开发库时,也横向对比了三种库,包括在线识别的百度.开源的OpenCV和商业库虹软(中小型规模免费). 百度的人脸

C#实现基于ffmpeg加虹软的人脸识别

关于人脸识别 目前的人脸识别已经相对成熟,有各种收费免费的商业方案和开源方案,其中OpenCV很早就支持了人脸识别,在我选择人脸 识别开发库时,也横向对比了三种库,包括在线识别的百度.开源的OpenCV和商业库虹软(中小型规模免费). 百度的人脸识别,才上线不久,文档不太完善,之前联系百度,官方也给了我基于Android的Example,但是不太符合我的需 求,一是照片需要上传至百度服务器(这个是最大的问题),其次,人脸的定位需要自行去实现(捕获到人脸后上传进行识别). OpenCV很早以前就用

人脸识别的深度学习

深度学习只不过是机器学习的标准范例,更准确地说 - 是其算法之一.在最大程度上,它基于人脑的概念和神经元的相互作用.如果你开始谷歌搜索深度学习是什么,你会发现今天这个超级热门词远远不是新的.为什么这样?该术语本身出现在20世纪80年代,但到2012年,没有足够的力量来实施这项技术,几乎没有人关注它. 在着名科学家的一系列文章,科学期刊上的出版物之后,这项技术迅速成为病毒.今天,它有各种各样的应用程序,其中重要的地方是人脸识别.首先,深度学习提供了构建识别生物识别软件的能力,该软件能够唯一地识别或

全栈工程师带你开发 ,node开发人脸识别门禁系统

效果图:   知识点: 人脸识别SKD部署,  webRTC视频流处理,URL构建blob对象,Canvas映射截图,ajax数据交互,Node图像处理,跨域与413处理,base64解码,post响应,JavaScript开发经验分享等 人脸识别系统的源码项目和视频文末有领取地址 人脸识别系统开发的部分源码示意图: <!doctype html> <html lang="en"> <head> <!--声明当前页面的编码格式 国际编码 UTF