1 文档

https://ai.baidu.com/ai-doc/BODY/6k3cpymz1

python使用百度api识别口罩-_json

 

 

 

2 开启服务

python使用百度api识别口罩-_带参数_02

 

 

 

python使用百度api识别口罩-_python_03

 

 

 

 

python使用百度api识别口罩-_python_04

 

 

 

 

 

 python使用百度api识别口罩-_带参数_05

 

 

  注意需要30分钟最有生效

python使用百度api识别口罩-_python_06

 

 

 

 

python使用百度api识别口罩-_json_07

 

 

 

 

 

 python使用百度api识别口罩-_json_08

 

 

 

python使用百度api识别口罩-_python_09

 

 

 下载SDK

https://ai.baidu.com/sdk#body

python使用百度api识别口罩-_python_10

 

 

 

python使用百度api识别口罩-_json_11

 

 

 

 

 

python使用百度api识别口罩-_可选值_12

 

安装使用Python SDK有如下方式:

  • 如果已安装pip,执行pip install baidu-aip即可。
  • 如果已安装setuptools,执行python setup.py install即可。
使用文档

https://ai.baidu.com/ai-doc/BODY/Rk3cpyo93

 

python使用百度api识别口罩-_python_13

 

 

查看应用详情

 

 

python使用百度api识别口罩-_json_14

 

 测试代码

 

#!/usr/bin/python
# -*- coding: UTF-8 -*-
from aip import AipBodyAnalysis
import json



#个人注册的信息
APP_ID="24719363"
API_KEY="ynnpcyBSQ5eyiNso67TIsfqs"
SECRET_KEY="rax12T8k8EPztYyG5C976O3oCxy9lG64"
  
client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)



""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

image = get_file_content('example.png')

""" 调用人体检测与属性识别 """
client.bodyAttr(image);

""" 如果有可选参数 """
options = {}
options["type"] = "face_mask"

'''
1)可选值说明:
gender-性别,
age-年龄阶段,
lower_wear-下身服饰,
upper_wear-上身服饰,
headwear-是否戴帽子,
face_mask-是否戴口罩,
glasses-是否戴眼镜,
upper_color-上身服饰颜色,
lower_color-下身服饰颜色,
cellphone-是否使用手机,
upper_wear_fg-上身服饰细分类,
upper_wear_texture-上身服饰纹理,
orientation-身体朝向,
umbrella-是否撑伞,
bag-背包,
smoke-是否吸烟,
vehicle-交通工具,
carrying_item-是否有手提物,
upper_cut-上方截断,
lower_cut-下方截断,
occlusion-遮挡,
is_human-是否正常人体
2)type 参数值可以是可选值的组合,用逗号分隔;如果无此参数默认输出全部22个属性
'''


""" 带参数调用人体检测与属性识别 """
result_http=client.bodyAttr(image, options)
#print(result_http)
#{'person_num': 1, 'person_info': [{'attributes': {'face_mask': {'score': 0.9999989867210388, 'name': '戴口罩'}},
#'location': {'score': 0.9544383883476257, 'top': 46, 'left': 72, 'width': 400, 'height': 442}}],
#'log_id': 1427995178237228183}
#result_http=json.loads(str(result_http))


if result_http["person_num"]>0:
    
    #print(result_http["person_num"])#检测到有人
   
    #print(result_http["person_info"][0]["attributes"]["face_mask"]["name"])

    kouhzao=result_http["person_info"][0]["attributes"]["face_mask"]["name"]
    print(kouhzao)

  

  

函数封装调用

#!/usr/bin/python
# -*- coding: UTF-8 -*-
from aip import AipBodyAnalysis
import json


def API_fingMask(picname='example.png'):

    #个人注册的信息
    APP_ID="24719363"
    API_KEY="ynnpcyBSQ5eyiNso67TIsfqs"
    SECRET_KEY="rax12T8k8EPztYyG5C976O3oCxy9lG64"
      
    client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)



    """ 读取图片 """
    def get_file_content(filePath):
        with open(filePath, 'rb') as fp:
            return fp.read()

    image = get_file_content(picname)

    """ 调用人体检测与属性识别 """
    client.bodyAttr(image);

    """ 如果有可选参数 """
    options = {}
    options["type"] = "face_mask"

    '''
    1)可选值说明:
    gender-性别,
    age-年龄阶段,
    lower_wear-下身服饰,
    upper_wear-上身服饰,
    headwear-是否戴帽子,
    face_mask-是否戴口罩,
    glasses-是否戴眼镜,
    upper_color-上身服饰颜色,
    lower_color-下身服饰颜色,
    cellphone-是否使用手机,
    upper_wear_fg-上身服饰细分类,
    upper_wear_texture-上身服饰纹理,
    orientation-身体朝向,
    umbrella-是否撑伞,
    bag-背包,
    smoke-是否吸烟,
    vehicle-交通工具,
    carrying_item-是否有手提物,
    upper_cut-上方截断,
    lower_cut-下方截断,
    occlusion-遮挡,
    is_human-是否正常人体
    2)type 参数值可以是可选值的组合,用逗号分隔;如果无此参数默认输出全部22个属性
    '''


    """ 带参数调用人体检测与属性识别 """
    result_http=client.bodyAttr(image, options)
    #print(result_http)
    #{'person_num': 1, 'person_info': [{'attributes': {'face_mask': {'score': 0.9999989867210388, 'name': '戴口罩'}},
    #'location': {'score': 0.9544383883476257, 'top': 46, 'left': 72, 'width': 400, 'height': 442}}],
    #'log_id': 1427995178237228183}
    #result_http=json.loads(str(result_http))

    kouhzao="等待识别..."

    if result_http["person_num"]>0:
        
        #print(result_http["person_num"])#检测到有人
       
        #print(result_http["person_info"][0]["attributes"]["face_mask"]["name"])

        kouhzao=result_http["person_info"][0]["attributes"]["face_mask"]["name"]
        #print(kouhzao)#有口罩  没口罩

        
    else:
        kouhzao="没有检测到人,请对准相机重新识别"
    print(kouhzao)    
    return kouhzao


#主函数调用测试
API_fingMask()

  

 

 

 python使用百度api识别口罩-_python_15

 

 代表没有开通服务,要么领取的免费还没开通,要么付费的还没出来。

这里领取的是免费的,说30分钟起效。

 python使用百度api识别口罩-_python_16

 

 

 

 

测试结果1-没有检测到人,所以也没有检测口罩,务必要保证能检测出来是个人

 python使用百度api识别口罩-_可选值_17

 

 python使用百度api识别口罩-_5e_18

 

 

测试结果2-检测人成功-戴口罩

python使用百度api识别口罩-_可选值_19

 

 python使用百度api识别口罩-_python_20