百度AI人脸识别、活体检测的坑

阿里云服务器3折开售(点此直达)

百度AI人脸识别、活体检测的坑_第1张图片
image

本文的说的是针对于 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++的都没事啊~ 相同的操作都可以的哇~~~~
来来来,给你们瞅瞅人家 旷视的。人家虽然不标,可能识别啊。。。


百度AI人脸识别、活体检测的坑_第2张图片
旷视的文档

其实也怪我咯~~~~ 没认真看到这句话~~ 可你能不能给加粗一下啊。。。这么容易犯得错误。


百度的文档.png

我是如何发现的呢?
哈哈~~~看的代码。

百度AI人脸识别、活体检测的坑_第3张图片
baidu的.png

突然,意识到,它是不是只有照片的 payload部分额~~一对比源base64数据,果然啊~~

不过,细想了一下,估计写这个文档的人员,开发的时候,直接使用的是 PHP base64_encode 的这种方式,对文件本身进行编码。可我的使用场景,是从前端 通过 标签,然后 toDataURL 进行编码啊~是有头信息的。。。
标清楚了好不好嘛~耗了我好半天的时间才发现问题。。。

你可能感兴趣的:(百度AI人脸识别、活体检测的坑)