人脸识别 – 百度智能云

进入百度智能云:https://console.bce.baidu.com/

首先我先说明一下,我之前遇到一个面试官,他问我对百度人脸识别的了解:有那些产品。如果使用线上的人脸库,不安全。那我们就需要使用离线的SDK服务了。不会依赖与百度的人脸库存储形式。所以我们要对百度智能云的产品有一定的了解,更多内容 还是去人家官网看吧!

人脸对比API:

人脸离线识别SDK:

私有化部署:

正文

自己去申请 应用账号、密钥,然后创建人脸库、库中组、组中用户、上传自己的照片

创建好了 ,开始去尝试吧。

去看下人家的技术文档:https://cloud.baidu.com/doc/FACE/index.html

这里 我们看 人脸对比 。对比成功 我们就可以判定是本人了。

错误代码 查看:

http://baidu.netnic.com.cn/doc/face/face-java-sdk/24.5c.e9.94.99.e8.af.af.e4.bf.a1.e6.81.af.html

行了 废话不多说了,直接上代码吧!

Maven 这里 我也忘记需要那些了,最后 我会奉上 我测试代码。

<dependency>
            <groupId>com.baidu.aip</groupId>
            <artifactId>java-sdk</artifactId>
            <version>4.15.3</version>
        </dependency>
        <dependency>
            <groupId>org.openclover</groupId>
            <artifactId>clover</artifactId>
            <version>4.3.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.10</version>
            <scope>test</scope>
        </dependency>

添加配置类

import com.baidu.aip.face.AipFace;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author : zanglikun
 * @date : 2021/2/5 9:22
 * @Version: 1.0
 * @Desc : 费劲,没啥好说的
 */
@Configuration
public class AipFaceConfig {


    // 这里说一个事情 打死你都获取不了,static是干嘛的?此关键字修饰的内容优先加载,final是干嘛的?自己去了解,都会导致你无法获取值,切记,切记 不能加static 也不能加final 更不能同时加
    @Value("${face.appid}")
    private String appId = "";
    @Value("${face.apikey}")
    private String apiKey = "";
    @Value("${face.secretkey}")
    private String secretKey = "";

    @Bean
    public AipFace AipFace() {
        AipFace aipFace = new AipFace(appId, apiKey, secretKey);
        return aipFace;
    }
}

我把实际请求的API交由Spring管理了,以后要调用,直接@Autowired

   @Autowired
    public AipFace aipFace; // 交由SpringBoot管理

创建用户组

/**
     * 创建人脸组
     */
    @ResponseBody
    @RequestMapping("/createGroup")
    public String createGroup(){
        HashMap<String,String> options = new HashMap<>();
        String groupname = "TesrGorupname"; // 仅支持 数字、字母、下划线组成,长度限制128kb
        String s = aipFace.groupAdd(groupname, options).toString();
        Map jsonmap = (Map) JSON.parse(s);

        // 错误码为0 就是成功  其他就是失败
        String error_code = jsonmap.get("error_code").toString();
        // 错误信息 如果 error_code 不是 0 才会有这个返回的参数    成功会是 SUCCESS 失败是:group already exist
        String error_msg = jsonmap.get("error_msg").toString();
        // 请求识别码,随机数字,唯一  好像没啥大用
        String log_id = jsonmap.get("log_id").toString();

        return error_msg;
    }

返回内容是SUCCESS

再次执行就会看到:group already exist

删除用户组

/**
     * 删除人脸组
     */
    @ResponseBody
    @RequestMapping("/deleteGroup")
    public String deleteGroup(){
        HashMap<String,String> options = new HashMap<>();
        String groupname = "TesrGorupname"; // 仅支持 数字、字母、下划线组成,长度限制128kb
        String s = aipFace.groupDelete(groupname, options).toString();
        Map jsonmap = (Map) JSON.parse(s);

        // 错误码为0 就是成功  其他就是失败
        String error_code = jsonmap.get("error_code").toString();
        // 错误信息 如果 error_code 不是 0 才会有这个返回的参数    成功会是 SUCCESS 失败是:group already exist
        String error_msg = jsonmap.get("error_msg").toString();
        // 请求识别码,随机数字,唯一  好像没啥大用
        String log_id = jsonmap.get("log_id").toString();

        return error_msg;
    }

返回内容是SUCCESS

再次执行就会看到:group not exist

源代码

项目启动后,请访问:http://127.0.0.1:8086/

随便输入 一个 用户名

人脸识别成功 会有下图提示

没有 检测到人脸 会有下图提示

还是那句话,你只看到了大佬轻松解决问题的光鲜,却不记得当初人家死磕Bug的痛苦。

万物皆入轮回,谁也躲不掉!

以上文章,均是我实际体验,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,支持下原创,请勿直接盗用,有条件的可以开通个会员支持下,谢谢!!!

Java Code Study » 人脸识别 – 百度智能云

招聘、单纯问问题,都可以联系我

加我QQ 公司缺人,拉我入伙