阿里云服务器3折开售(点此直达)
本文的说的是针对于 PHP的
坑1
百度V3版本人脸识别-活体检测官方文档
活体检测,第一步是获取Token
百度自己写的,用普通的http协议就可以,屁吧。必须得用https。
用它提供的获取活体检测的代码就好了。提供的获取token的PHP代码不行。
坑2
返回错误代码
222200 request body should be json format
该接口需使用 application/json 的格式进行请求
请修改接口格式为:application/json
拿到token之后,调用活体检测的接口。又特么坑了。不行啊
原因在于
- "bodys必须用json格式化" --- 它总给我报这个错。
其它语言的我没试,看了几篇帖子,java版本的,得先把数据塞到map,再塞到list里面,然后,请求头里面设置一下content-type:application/json,文档有这些。不这样搞,看他们的依然不行。
好了,继续说php v3版本的。 - 必须在bodys数组,外面用数组包上。
就像这样$payload = 'xxxxxx这部分是base64的数据'; $bodys = '[{"image":"'.$payload.'","image_type":"BASE64","face_field":"age,beauty,expression"}]';
坑3
222203 image check fail 无法解析人脸 检查图片质量
必须得把base64编码过的,把含有编码信息的头信息去掉。说句人话,啥意思呢。
就是,,,,,看示例吧. i will show you the code
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAgAElEQVR4Xo........
只包含数据部分,不包含,"xxxxbase64,"这个头。。。
我日你个仙人板板……你的文档明明写的base64啊……
我用人家face++的都没事啊~ 相同的操作都可以的哇~~~~
来来来,给你们瞅瞅人家 旷视的。人家虽然不标,可能识别啊。。。
其实也怪我咯~~~~ 没认真看到这句话~~ 可你能不能给加粗一下啊。。。这么容易犯得错误。
我是如何发现的呢?
哈哈~~~看的代码。
突然,意识到,它是不是只有照片的 payload部分额~~一对比源base64数据,果然啊~~
不过,细想了一下,估计写这个文档的人员,开发的时候,直接使用的是 PHP base64_encode 的这种方式,对文件本身进行编码。可我的使用场景,是从前端 通过