aip表格识别 baidu python_Python「人体分析」预警人群拥挤警告!(一)

前言

在一个地区,人流密度过大很容易造成踩踏事故,人流量统计动态版可以统计图像中的人体个数和流动趋势,与监控技术结合起来,可以提前预警,进而避免悲剧的发生。

1.平台接入

界面如下图所示:

8d4dd95994d082d15020e165cf523184.png

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

a5d853ab05c433e87866af9c66928d3b.png

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

7f02c3fdfbef5a42c9371b793f6162b1.png

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

  • 首先认证授权:

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

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

具体Python3代码如下:

# -*- coding: utf-8 -*-#!/usr/bin/env pythonimport urllibimport base64import json#client_id 为官网获取的AK, client_secret 为官网获取的SKclient_id =【百度云应用的AK】client_secret =【百度云应用的SK】#获取tokendef 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() if token_content: token_info = json.loads(token_content) token_key = token_info['access_token'] return token_key
  • 人流量统计动态版分析接口调用:

详细说明请参考:http://ai.baidu.com/docs#/Body-API/1a6628be

接口描述

对于输入的一张图片(可正常解码,且长宽比适宜),识别和统计图像当中的人体个数(静态统计,不支持追踪和去重)。

适用于3米以上的中远距离俯拍,以头部为主要识别目标统计人数,无需正脸、全身照,适应各类人流密集场景(如:机场、车展、景区、广场等);默认识别整图中的人数,支持指定不规则区域的人数统计,同时可输出渲染图片。

摄像头硬件选型无特殊要求,分辨率建议720p以上,更低分辨率的图片也能识别,只是效果可能有差异。暂不适用夜间红外监控图片,后续会考虑扩展。

请求说明

HTTP 方法:POST

请求URL:https://aip.baidubce.com/rest/2.0/image-classify/v1/body_num

URL参数:

access_token: 通过API Key和Secret Key获取的access_token,参考”Access Token获取”

Header:

Content-Type: application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

2537843ea06cdd45244b2a84b6481197.png

返回说明

c53eef2c875ebc79587889259f381604.png

Python3调用代码如下:

#保存图片def save_base_image(img_str,filename): img_data = base64.b64decode(img_str) with open(filename, 'wb') as f: f.write(img_data) #人流量统计#filename:原图片名(本地存储包括路径);resultfilename:处理后的文件保存名称(每个人打标)def body_num(filename,resultfilename): request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_num"  # 二进制方式打开图片文件 f = open(filename, 'rb') img = base64.b64encode(f.read())  params = dict() params['image'] = img params['show'] = 'true' 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: #print(content) content=content.decode('utf-8') #print(content) data = json.loads(content) #print(data) person_num=data['person_num'] print ('person_num',person_num) img_str=data['image'] save_base_image(img_str,resultfilename) body_num('crowd1.jpg','crowd1_num.jpg')

(上篇完)

下篇预告:

接下来会写出Python处理效果展现对比,以及使用方案。另外小编有一套自学资料,需要的朋友可以回复【01】获取。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值