疫情后期,出入公共场所仍需佩戴口罩。为减少接触、避免人员过密,通过人体分析的口罩检测能力可实现无现场工作人员的智能识别,提高企事业单位管理能力、提高通行效率、降低人工检查导致交叉感染的可能性。
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.测试结论和建议
经过测试发现人体检测对于是否佩戴口罩的检测效果非常好,可以放在公共场所的入口对人员进行检测。甚至可以与闸机等设备联动,自动控制,加快效率。
已经有很多了
感觉穿戴设备要发力
应该会越来越多
期待有更多的新产品出现
还没有手机部署
估计应该快了吧
现在戴口罩能解锁吗
应用在哪个方面
现在的确是用这个功能的时候
看效果识别的非常准确
功能非常强大
现在正好用得上
现在来看很实用,很不错
可以对进入办公楼的人进行检测
可以放在建筑的入口
应该会有很不错的应用前景
测试效果很好