Android打造圆形相机并实现人脸识别(三)

这里就主要讲下整个人脸识别模块的接入及使用。

百度AI SDK

首先我们要去百度官网申请一个帐号,接而进入这个网址:

https://console.bce.baidu.com/ai/#/ai/face/overview/index

填完创建信息,就可以去管理应用那儿查看APP_ID和SERECT_KEY,这两个key到时候需要保存到工程内。

然后在这里找到人脸识别的SDK

https://ai.baidu.com/sdk

将压缩包解压后导入工程并引入为lib即可。示例代码(在app.gradle中):

dependencies {
    // ... 省略
    implementation files('libs/aip-java-sdk-4.11.1.jar')
    implementation files('libs/json-20160810.jar')
    implementation files('libs/slf4j-api-1.7.25.jar')
}

接下来就是Code Time 根据SDK说明文档 先配置一个单例的AipFaceObject

class AipFaceObject private constructor() {

    companion object {
        private var mClient: AipFace? = null

        @Synchronized
        fun getClient(): AipFace {
            if (mClient == null) {
                mClient = AipFace(Const.BAIDU_APP_ID, Const.BAIDU_API_KEY, Const.BAIDU_SECRET_KEY)
                mClient?.setConnectionTimeoutInMillis(2000)
            }
            return mClient!!
        }
    }
}

对于检测人脸的API而言,可以在上一章所说的在onImageAvailable方法中对Image Captured后,通过onPreview方法回调给业务进行预览拍好的照片,然后将byteArray通过格式转换成Base64的图片,上传至百度AI服务器进行检测,具体可配置参数可以去上面一开始所说的官网去查找。这里是我写得sample:

private fun detectFace(postImage: String): Boolean {
    var bSuccess = false
    // 人脸检测
    val detectOptions = HashMap<String, String>()
    detectOptions["face_field"] = "age,gender,race,expression,beauty"
    detectOptions["face_type"] = "LIVE"
    val detectRes = AipFaceObject.getClient().detect(postImage, "BASE64", detectOptions)

    val mText: String
    val mShadowText: String

    if (detectRes.getInt("error_code") == 0) {
        // 检测成功
        bSuccess = true
        val detectBean = Gson().fromJson<DetectFaceBean>(
            detectRes.getJSONObject("result").toString(), DetectFaceBean::class.java)
        mShadowText = "成功检测到人脸"
    } else {
        mText = "检测失败 请点击取景框重试"
        mShadowText = "检测失败"
    }

    mFragment?.activity?.runOnUiThread {
        switchText(mText, mShadowText)
    }
    return bSuccess
}

最终的效果如最开始的预览图所示。

至于项目相关demo的代码,我过会儿会上传到github,到时会更新这个博客的~

总结

这次是毕业设计的项目,所以做的还比较粗糙,这里是给自己做一下学习记录~欢迎指出不足之处 感谢大佬阅读

 

更新

项目地址在:https://github.com/CarsonWoo/FaceDetectDemo 

这里单独抽了这个组件出来做成了一个小demo

Java版资源链接

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值