1、要接入百度云,肯定得去注册一个百度智能云的账号,并且在里面创建一个人脸识别的应用
在产品服务-人脸识别-里面有创建应用的地方-根据指引创建人脸库
百度智能云里面还提供了技术文档,也可以对照着自己操作
然后还要下载百度智能云C++的SDK开发库aip-cpp-sdk-0.8.1,并把它放入linux文件里面
2、我的软件为ubuntu18.4 使用的是openCV 3.4.13
使用的是C++语言
Linux 安装 openCV库3.4.13 可以看我前几篇文档
Linux要接入百度智能云,需要在Linux安装几个工具:
安装依赖库libcurl(需要支持https) openssl jsoncpp(>1.6.2版本,0.x版本将不被支持)
1、sudo apt-get install libcurl4-openssl-dev
2、sudo apt-get libjsoncpp-dev
3、sudo apt-get libssl-dev
这几个工具是用来配合百度智能云SDK的,所以必须得有
在main.cpp里面记得加上SDk的头文件和命名空间,如果编译时提示头文件路径有问题,像我一样 #include "jsoncpp/json/json.h" 给头文件加上正确的路径
3、关键代码
#include "face.h"
using namespace aip;
Json::Value result; //定义容器,下面有用到
string Base64face;
// 设置APPID/AK/SK 下面这三个就是你创建百度智能云应用时会给你的那三个账号和密钥
std::string app_id = "你的 App ID";
std::string api_key = "你的 Api key";
std::string secret_key = "你的 Secret Key";
aip::Face client(app_id, api_key, secret_key); //执行这一步接入智能云
。。。。这里省略一些代码步骤,都是图片处理的代码,大概就是把图片转成.jpg格式,在另一个文章里面有写这些代码
Base64face= base64_encode((char *)Jpgface.data(), Jpgface.size()); //这一步是把.jpg 照片转换成 base64 格式,string Base64face;
result = client.search(Base64face, "BASE64","A001",aip::null); //这一步是上传照片到智能云,然后把结果放入 result容器,Json::Value result;
识别后返回的结果就会放在result容器里面,数据是json格式
cout << result["result"]["user_list"][0]["user_id"] <<endl;//打印一下结果
4编译的时候
使用这个命令:g++ opencv.cpp -o opencv `pkg-config --cflags --libs opencv` -std=c++11 -lcurl -lcrypto -ljsoncpp