您现在的位置是:首页 >技术教程 >编程实现人脸识别网站首页技术教程

编程实现人脸识别

可乐鸡翅` 2024-09-08 12:01:03
简介编程实现人脸识别

1.更改url

用翔云平台下的人脸识别的API文档
在这里插入图片描述
把他贴到url中:
在这里插入图片描述

2.定义参数 (根据平台给定的这些串口接收参数来定义)

在这里插入图片描述
key和secret在这里找:

在这里插入图片描述
在这里插入图片描述

3.指定post内容

在这里插入图片描述
把这部分定义成一个postString
在这里插入图片描述

4.字符串的拼接

在这里插入图片描述

sprintf函数调用的主要用途就是把一个字符串放在一个已知的字符数组里去

5.cookie先不动,最终进行请求,然后打印下请求的结果

在这里插入图片描述

6.思路:main函数进来,posturl(不传参了,没啥意义)

在这里插入图片描述
sprintf拼接字符串
然后curl_easy_init()初始化
设置cookie; 要上传的字段;人脸识别的网址;数据回来后去读数据;请求,打印请求结果。

并且把真正有效的字符打出来
在这里插入图片描述

编译运行

结果-1代表失败了,没有和翔云后台接通正常来说应该是200。

在这里插入图片描述
原因是电脑没有装OpenSSL.
解决办法:编译时加一个环境变量,指定Openssl的位置,编译时加这个选项(with ssl)
因为HTTPS协议是由SSL+HTTP协议构建的一种协议
ssl的作用:
由于接口是https开头的(人脸识别走的是http通信),https协议是在http和tcp之间多加的一层,进行身份验证和数据加密。身份验证就是key和secret。
但我们编译出来的仅支持http不支持https。

所以:
打开 docs/INSTALL.md (这个库的说明书),知道了想编译需要加ssl
在这里插入图片描述
加ssl编译:
在这里插入图片描述
但提示编译错误,因为没有OpenSSL库

安装openssl库

安装openssl库指令:wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz

解压:tar xvf openssl…
得到:
在这里插入图片描述
一般也是先看一下READ.ME
然后make
在这里插入图片描述
接着,sudo make install
编译成功后,回到curl下,继续编译:
在这里插入图片描述
(这样 系统里就有ssl了)

再make
在这里插入图片描述
再make_install

再回到handler下
在这里插入图片描述
在这里插入图片描述
编译运行:
在这里插入图片描述
但是说产品类型错误,因为我们写demo2的时候没上传图片

如何上传图片

1.首先:平台规定img1和img2是要以字符串(base64流的形式)上传的。
在这里插入图片描述
2.平时的图片一般是以jpg形式(压缩过的)存在的。bmp形式的是没压缩过的。
一张图片由很多个小的颜色色块组成,每种颜色的色块都有对应的字符串,可以把这些字串转成base64的编码

3.找两张人物图片复制到linux下
(先放到共享文件夹里,在这里输入指令sudo cp lhc.jpg /home/jmh/ 和
sudo cp lhc2.jpg /home/jmh/ 给他俩复制到工作目录下)

4.linux下自带的把jpg形式的图片转换成base64流的指令:base 64
在这里插入图片描述
回到httpHandler文件夹下
把两张图片贴过来:
在这里插入图片描述
调用system函数,把这张图生成的数据导入到tmpFile里
在这里插入图片描述
然后编译运行,生成了这个tmpFile文件。然后就可以通过读文件的形式来操作了

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。