【百度大脑新品体验】戴口罩无感智能检测
才能我浪费99 发布于2020-04-20 22:14 浏览:188 回复:6
2
收藏
最后编辑于2020-07-06

疫情后期,出入公共场所仍需佩戴口罩。为减少接触、避免人员过密,通过人体分析的口罩检测能力可实现无现场工作人员的智能识别,提高企事业单位管理能力、提高通行效率、降低人工检查导致交叉感染的可能性。

1.功能描述:

人体检测和属性识别新增“是否戴口罩”属性,适合室内外的监控场景,正面、侧面角度抓拍识别效果优。可用于判断人员佩戴口罩情况,适用于疫情期间公共场所口罩佩戴情况检查,各类工厂安全生产规范着装检测。

支持云服务API、私有化部署多种服务形态。

2.平台接入

人流量统计动态版接入网址:

https://console.bce.baidu.com/ai/?fromai=1#/ai/body/overview/index

界面如下图所示:

点击创建应用,输入应用名,点击确认。

点击管理应用,查看APIKEY和SecretKey,在后续的代码中替换对应的内容即可执行。

3.调用攻略(Python3)及评测

3.1首先认证授权:

在开始调用任何API之前需要先进行认证授权,具体的说明请参考:

http://ai.baidu.com/docs#/Auth/top

具体Python3代码如下:

# -*- coding: utf-8 -*-
#!/usr/bin/env python

import urllib
import base64
import json
#client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id =【百度云应用的AK】
client_secret =【百度云应用的SK】

#获取token
def get_token():
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret
request = urllib.request.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
token_content = response.read()
#print (token_content)
if token_content:
token_info = json.loads(token_content)
token_key = token_info['access_token']
return token_key

3.2百度人体检测接口调用:

详细说明请参考: https://ai.baidu.com/ai-doc/BODY/Ak3cpyx6v

说明的比较清晰,这里就不重复了。

大家需要注意的是:
API访问URL:https://aip.baidubce.com/rest/2.0/image-classify/v1/body_attr
因为本次主要为检测人员是否佩戴口罩,所以设置Type=face_mask

Python3调用代码如下:

#佩戴口罩检测
def body_mask(filename):
    request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_attr"
    
    # 二进制方式打开图片文件
    f = open(filename, 'rb')
    img = base64.b64encode(f.read())
    
    params = dict()
    params['image'] = img
    params['type'] = 'face_mask'
    params = urllib.parse.urlencode(params).encode("utf-8")
    #params = json.dumps(params).encode('utf-8')
    
    access_token = get_token()
    request_url = request_url + "?access_token=" + access_token
    request = urllib.request.Request(url=request_url, data=params)
    request.add_header('Content-Type', 'application/x-www-form-urlencoded')
    response = urllib.request.urlopen(request)
    content = response.read()
    if content:
        content=content.decode('utf-8')
        #print(content)
        data = json.loads(content)
        print(data)
        for body in data['person_info']:
            if body['attributes']['face_mask']['name']=='无口罩':
                print("无口罩,不准进入")
            elif body['attributes']['face_mask']['name']=='戴口罩':
                print("戴口罩,可以进入")
            else:
                print("请重新检测")


4.功能评测:

具体效果如下:

戴口罩,可以进入

无口罩,不准进入

5.测试结论和建议
经过测试发现人体检测对于是否佩戴口罩的检测效果非常好,可以放在公共场所的入口对人员进行检测。甚至可以与闸机等设备联动,自动控制,加快效率。

收藏
点赞
2
个赞
共6条回复 最后由大手拉小手0123编辑于2020-07-06 16:24
#7大手拉小手0123回复于2020-06-30 22:52:18

现在来看很实用,很不错

0
#5才能我浪费99回复于2020-06-12 11:13:05

可以对进入办公楼的人进行检测

0
#4才能我浪费99回复于2020-06-12 11:12:35

可以放在建筑的入口

0
#3才能我浪费99回复于2020-04-24 08:54:37

应该会有很不错的应用前景

1
#2才能我浪费99回复于2020-04-24 08:54:21

测试效果很好

1
TOP
切换版块