基于树莓派(C语音)实现人脸识别(翔云平台)
1.树莓派中安装摄像头并测试摄像头
1.1、安装mjpg-streamer
在CRT中依次输入一下指令
sudo apt-get update #更新软件列表
sudo apt-get upgrade #更新软件
sudo apt-get install subversion #Subversion是一个自由开源的版本控制系统
sudo apt-get install libjpeg8-dev #JPEG支持库
sudo apt-get install imagemagick
sudo apt-get install libv4l-dev #4l是小写"L"
sudo apt-get install cmake #下载编译工具
sudo apt-get install git
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental //进入该目录
make all //编译
sudo make install//安装
编译与安装完之后,修改start.sh 文件
vi start.sh
将原本的
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
修改为
./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so -w ./www"
然后打开摄像头功能
sudo rasp-config
选择第5项,按下回车键
选择P1按下回车键
打开摄像头功能之后,运行start.sh可执行文件
./start.sh
通过网页访问http://IP地址:8080,可查看摄像头拍摄内容
2.安装支持ssl的curl库
3.人脸识别demo
#include <stdio.h>
#include <curl/curl.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>#define true 1
#define false 2typedef unsigned int bool;char buf[1024] = {'\0'};char *pictureTrangeBase64(char *fileName)
{char cmd[128] = {'\0'};char *img;int f_size;int fd;sprintf(cmd,"base64 %s > tmpzhp",fileName);system(cmd);fd = open("./tmpzhp",O_RDWR);f_size = lseek(fd,0,SEEK_END);lseek(fd,0,SEEK_SET);img = (char *)malloc(f_size+2);memset(img,0,f_size+2);read(fd,img,f_size);close(fd);return img;
}size_t readData( void *ptr, size_t size, size_t nmemb, void *stream)
{strncpy(buf,ptr,1024);
}bool postUrl()
{CURL *curl;CURLcode res;char *img1;char *img2;char *key = "Youself Key";//在翔云平台购买人脸识别,会给你提供char *secret = "Youself secret";int typeId = 21;char *format = "xml";char *postString;int len;int num;printf("Do you want to go home? if yes please input 1:\n");scanf("%d",&num);if(num == 1){printf("Please display you face.\n");system("raspistill -o zhp2.jpg -q 5"); }img1 = pictureTrangeBase64("./zhp1.jpg"); //将图片转为64流img2 = pictureTrangeBase64("./zhp2.jpg"); len = strlen(key)+strlen(secret)+strlen(img1)+strlen(img2)+128; postString = (char *)malloc(len);memset(postString,'\0',len);sprintf(postString,"&img1=%s&img2=%s&key=%s&secret=%s&typeId=%d&format=%s",img1,img2,key,secret,21,format); free(img1);free(img2);curl = curl_easy_init();if (curl){curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "/tmp/cookie.txt"); // 指定cookie文件curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postString); // 指定post内容curl_easy_setopt(curl, CURLOPT_URL, "https://netocr.com/api/faceliu.do"); // 指定urlcurl_easy_setopt(curl, CURLOPT_WRITEFUNCTION ,readData);res = curl_easy_perform(curl);printf("OK ,%d\n",res);if(strstr(buf ,"是") != NULL){printf("the same people.\n");}else{printf("differ people.\n");}}free(postString);return true;
}
int main(void)
{postUrl();
}
总结:一开始我对这条命令并不是很理解raspistill -o zhp2.jpg -q 5
就通过命令
raspistill --help//查询这个命令的具体用法
“raspisstill”是摄像头应用程序,在特定时间内运行相机,并在需要时进行JPG捕捉
图像参数的命令:
-q:设置图片的大小,取值范围为(0,100);从翔云平台可以得知,识别图片不能够过大。
-0:输出文件名<文件名>(要写入标准输出,使用’-o -’)。如果未指定,则不保存任何文件
-t:拍照前及关机时间(如未指定,设为5s)
基于树莓派(C语音)实现人脸识别(翔云平台)相关推荐
- 智能家居(7) —— 人脸识别 翔云平台编程使用(编译openSSL支持libcurl的https访问、安装SSL依赖库openSSL)
目录 一.祥云人工智能开放平台 二.编译openSSL支持libcurl的https访问 安装SSL依赖库openSSL(使用工具wget) curl库重新配置,编译,安装 三.编程实现人脸识别 翔云 ...
- 智能家居(七) —— 人脸识别 翔云平台编程使用(编译openSSL支持libcurl的https访问、安装SSL依赖库openSSL)
人工智能OCR识别平台介绍 OCR (Optical Character Recognition,光学字符识别) 百度搜索OCR识别,可以发现有很多大厂都在做这个项目,比如百度OCR,腾讯OCR,科大 ...
- 智能家居——人脸识别 翔云平台(配置ssl和下载OpenSSL)
文章目录 一.祥云人工智能开放平台 二.编译openSSL支持libcurl的https访问 (1)libcurl的https访问问题 (2)安装SSL依赖库openSSL(使用工具wget) (3) ...
- 基于树莓派和OpenCV的人脸识别
前提准备 树莓派(Raspberry Pi)一个 安装好系统(Raspbian) 树莓派摄像头模块(PiCam) 树莓派和摄像头安装好长这样 安装OpenCV 树莓派(Raspbian Buster) ...
- 人脸识别--翔云API
目录 一.购买人脸识别接口 二.了解base64编码 三.通过post实现人脸识别 一.购买人脸识别接口 进入翔云官网购买人脸识别的接口,得到一个key和secret,我们要用到这两个参数才能访问到人 ...
- C语言人脸识别——翔云平台调用(含wget安装)
人脸识别 准备安装的东西 使用mjpg-streamer获得人脸识别比对照片 用处功能 实际问题处理 准备安装的东西 1.安装mjpg-streamer 链接: 树莓派3代 B型 Cortex-A53 ...
- C语言实现基于翔云平台的人脸识别demo2(树莓派)
C语言实现基于翔云平台的人脸识别demo2(树莓派3B) 实现目标 树莓派安装mjpg-streamer 在树莓派下依次执行以下指令 修改start.sh文件(用来开启摄像头进行监控) A:树莓派摄像 ...
- C语言实现基于翔云平台的人脸识别demo1(linux)
C语言实现基于翔云平台的人脸识别demo1(linux) 实现的目标 安装openssl第三方的库 安装libcurl第三方的库 购买使用翔云平台人脸识别的次数 libcurl的使用 **参考以下博文 ...
- 语音控制+人脸识别——二次开发 Parrot 无人机!
继"如何用100美元和 TensorFlow 来造一个能'看'东西的机器人" 之后,Lukas 又一最新力作. 在"造"出能进行物体识别的机器人后,下一步就很清 ...
最新文章
- 做转录组测序前需要知道的那些事
- 怎样不让Dreamweaver中HTML源代码不自动换行??
- 后台excel导出(单sheet 多sheet)
- [入门]理想的小白程序员成长曲线
- 前端面试---Vue部分考点梳理
- 机器学习实践四--正则化线性回归 和 偏差vs方差
- 余弦信号频谱表达式_信号傅里叶变换系列文章(1):傅里叶级数、傅里叶系数以及傅里叶变换...
- word打开wps文件乱码_word文档打开是乱码解决方法
- Win10 Qt5安装
- TImage、TPaintBox、TPicture、TBitmap、TCanvas、TGraphic 的关系与区别
- sort()函数——C++
- Atiitt uke兼wag集团2017年度成果报告总结 attilax著 1. 组织机构进一步完善 8大首席部门	1 2. 事业部进一步完善,以及一百多个事业部了	1 3. 企业文化进一步完善	1
- 前端开发项目——企业员工管理系统(前后端分离)
- OPNsense用户手册中文版
- 应用加密大师计算机,Windows文件夹加密大师
- 校园网多拨网速叠加思路
- Centos如何设置ip黑名单,防止被攻击
- 在学习少儿编程中体会AI乐趣
- typora+picgo+smms图床配置(亲测成功)
- 局域网win7计算机如何互访,局域网Win7与WinXP电脑不能互访怎么办?
热门文章
- 什么是ZYNQ?ZYNQ简介
- php.c drcom,[2018-10-11]【DrCOM/dr.com校园网路由器】使用教程 c语言单文件 dogcom 不需python...
- OpenCV中的5种平滑滤波操作
- uniapp实现将图片保存到手机相册
- html 中 TabIndex 属性 的含义
- C++STL中string的头文件中的常用函数
- 基于语义网的智能医疗助手
- linux6.5开启远程,CentOS 6.5 开启Xmanger远程桌面登录(XDMCP和Xstart)
- oracle建库建表基础代码,oracle手工代码建库
- PPT爱好者应该知道的网站