人体识别

  • 一、调用百度api
    • 1.1、调用百度api
    • 1.2、框出一个行人
    • 1.3、框出全部行人
  • 二、创建Django
    • 2.1、创建虚拟环境
    • 2.2、创建jango项目
    • 2.3、创建jango应用
    • 2.4、运行jango应用
    • 2.5、编写第一个页面
    • 2.6、创建数据库
    • 2.7、使用shell数据交互
    • 2.8、Django 管理页面
  • 3、添加字段

一、调用百度api

1.1、调用百度api

注册百度ai开放平台

import requests
import base64'''
人体检测和属性识别
'''request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_attr"# 二进制方式打开图片文件f = open('333.jpg', 'rb')
img = base64.b64encode(f.read())params = {"image":img}
access_token = '24.36e88ef07a6d15e9465a2040fe318157.2592000.1611302059.282335-23260441'
# access_token 一个月需一换
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:print (response.json())

333.jpg原图为:

运行代码后返回结果:

可以看出,有四个人被检测出来了,还有坐标信息等

可以看到,其中一个坐标为,177,1040,219,430
219,430分别代表物体检测出的高于宽
177,与1040,代表与左上角坐标(0,0)的距离值

1.2、框出一个行人

我们刚刚知道了其中一个行人的坐标
现在使用opencv把他先框出
框出一个行人的源码:

import cv2
img = cv2.imread('333.jpg')
# 起点和终点的坐标
ptStart = (1040, 177)
ptEnd = (1040+219, 177)
point_color = (0, 255, 0) # BGR
thickness = 2
lineType = 4
cv2.line(img, ptStart, ptEnd, point_color, thickness, lineType)ptStart = (1040, 177)
ptEnd = (1040, 177+430)
point_color = (0, 255, 0) # BGR
thickness = 2
lineType = 4
cv2.line(img, ptStart, ptEnd, point_color, thickness, lineType)ptStart = (1040, 177+430)
ptEnd = (1040+219, 177+430)
point_color = (0, 255, 0) # BGR
thickness = 2
lineType = 4
cv2.line(img, ptStart, ptEnd, point_color, thickness, lineType)ptStart = (1040+219, 177)
ptEnd = (1040+219, 177+430)
point_color = (0, 255, 0) # BGR
thickness = 2
lineType = 4
cv2.line(img, ptStart, ptEnd, point_color, thickness, lineType)cv2.imshow('demo', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果:

1.3、框出全部行人

这里我们对1.2和1.1的代码合并,并稍作修改

# encoding:utf-8
import requests
import base64
import cv2
'''
人体检测和属性识别
'''# 调用百度api获取数据
def acquire(img_url):request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_attr"# 二进制方式打开图片文件f = open(img_url, 'rb')img = base64.b64encode(f.read())params = {"image": img}access_token = '24.36e88ef07a6d15e9465a2040fe318157.2592000.1611302059.282335-23260441'# access_token 需一个月一换request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/x-www-form-urlencoded'}response = requests.post(request_url, data=params, headers=headers)data = response.json()  # 保存获取到的json数据return datadef drawline(data, img):  # 把图片框出来num = data["person_num"]for k in range(num):local = data["person_info"][k]['location']  # 图片的位置信息ptStart = [(local["left"], local["top"]),   # 起点和终点的坐标 4个点 画四条线, 相当于一个正方形(local["left"], local["top"]),(local["left"], local["top"] + local["height"]),(local["left"] + local["width"], local["top"])]ptEnd = [(local["left"] + local["width"], local["top"]),(local["left"], local["top"] + local["height"]),(local["left"] + local["width"], local["top"] + local["height"]),(local["left"] + local["width"], local["top"] + local["height"])]point_color = (0, 255, 0)  # BGRthickness = 2lineType = 4for i in range(4):cv2.line(img, ptStart[i], ptEnd[i], point_color, thickness, lineType)print (num)# print(data["person_info"][0]['location']["top"])# print(data["person_info"][0]['location'])if __name__ == '__main__':img_url = '333.jpg'data = acquire(img_url)  # 调用百度api获取数据img = cv2.imread(img_url)  # 加载图片drawline(data, img)cv2.imshow('demo', img)cv2.waitKey(0)cv2.destroyAllWindows()

实验效果:

这里需要注意的是 access_token 可能会过期,大家需要到百度ai平台上自行获取

二、创建Django

参考官方文档
jango菜鸟教程

2.1、创建虚拟环境

首先安装虚拟环境,命令如下:

pip3 install virtualenv #安装虚拟环境

接下来还要安装虚拟环境扩展包,命令如下:

pip3 install virtualenvwrapper

创建虚拟环境的命令如下:

mkvirtualenv  虚拟环境名称 # mkvirtualenv -p python3 虚拟环境名字
例:
mkvirtualenv  django_1

查看安装已安装的包

pip list
pip freeze

安装jango
指定清华镜像源,下载速度更快。

sudo pip3 install Django==2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

退出虚拟环境的命令如下:

deactivate

使用虚拟环境的命令如下:

写出名称的前部分后,可以使用tab键补齐

workon 虚拟环境名称
例:
workon django_1

删除虚拟环境命令如下:

rmvirtualenv 虚拟环境名称
例:
先退出: deactivate
再删除: rmvirtualenv django_1

查看jango安装是否成功

输入 django-admin


如上图表示安装成功

如果没有出现,则需自己配置环境变量

2.2、创建jango项目

django-admin startproject demo1

jango目录结构:

2.3、创建jango应用

创建一个名为peopletest的应用

cd demo1
python manage.py startapp peopletest

目录结构:

2.4、运行jango应用

修改demo1/settings.py,
在INSTALLED_APPS目录中添加 ‘peopletest’

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','peopletest'
]

运行jango

python manage.py runserver

在浏览器访问127.0.0.1:8000

2.5、编写第一个页面

peopletest/view.py

from django.http import HttpResponsedef index(request):return HttpResponse("Hello, world. You're at the polls index.")

在peopletest 目录里新建一个 urls.py 文件

from django.urls import pathfrom . import viewsurlpatterns = [path('', views.index, name='index'),
]

修改demo1/url.py

from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('peopletest/', include('peopletest.urls')),
]

运行

python manage.py runserver

访问http://127.0.0.1:8000/peopletest/
显示页面如下:

2.6、创建数据库

创建question表和choice表
其中question表包含question_text 字段和 pub_date字段
choice表包含 question,choice_text,votes 字段

from django.db import modelsclass Question(models.Model):question_text = models.CharField(max_length=200)pub_date = models.DateTimeField('date published')class Choice(models.Model):question = models.ForeignKey(Question, on_delete=models.CASCADE)choice_text = models.CharField(max_length=200)votes = models.IntegerField(default=0)

修改demo1/settings.py文件
添加’peopletest.apps.PeopletestConfig’

INSTALLED_APPS = ['peopletest.apps.PeopletestConfig','django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',# 'peopletest'
]

使用以下命令创建数据库

 python manage.py makemigrations peopletestpython manage.py migrate

用navicat打开sqllite导入刚刚创建的db.sqlite3


导入后发现db.sqlite3的表结构如下图所示

2.7、使用shell数据交互

这里建议参考官方文档

 python manage.py shell                           #进入shellfrom peopletest.models import Choice, Questionfrom django.utils import timezoneq = Question(question_text="What's new?", pub_date=timezone.now())   #插入数据q.save()                                                                                                        #保存q.id                              # 查询 q.question_text q.pub_date


2.8、Django 管理页面

 python manage.py createsuperuserUsername: adminEmail address: admin@example.com最后一步是输入密码。你会被要求输入两次密码,第二次的目的是为了确认第一次输入的确实是你想要的密码。Password: **********Password (again): *********

运行

 python manage.py runserver


修改peopletest/admin.py,添加引用

from django.contrib import adminfrom .models import Questionadmin.site.register(Question)


可以发现多出了一个列表

3、添加字段

class User(models.Model):name = models.CharField(verbose_name='姓名', max_length=10)avator = models.ImageField(verbose_name='头像', upload_to='upload/%Y/%m/%d')sex = models.CharField(verbose_name='性别', max_length=10)age = models.CharField(verbose_name='年龄', max_length=10)upper_wear = models.CharField(verbose_name='上装', max_length=10)lower_wear = models.CharField(verbose_name='下装', max_length=10)

Django人体识别相关推荐

  1. CV之API:利用Face++的人体识别接口,实现摄像头实时手势识别

    CV之API:利用Face++的人体识别接口,实现摄像头实时手势识别 目录 测试图片 实现代码(部分) 测试图片 实现代码(部分) #利用Face++的人体识别接口,实现摄像头实时手势识别 impor ...

  2. unity接入百度人体识别

    unity接入百度人体识别 1.去百度下载SDK 复制AipSdk.dll到工程 复制Newtonsoft.Json.dll到工程 自己按照unity版本,选择2.0,3.5,还是4.0的dll 2. ...

  3. 关于百度AI 图像识别 人体识别 调用API的简单实践

    title: 关于百度AI 图像识别 人体识别 调用API的简单实践 author: HardyDragon tags: 图像识别 有关图像识别 来到控制台创建相关应用,有一些API每天有免费的调用次 ...

  4. paddle - crowdHuman数据集训练人体识别模型

    paddle - crowdHuman数据集训练人体识别模型 数据集annotation crowdhuman的odgt文件各项意义 转换为paddle yolo的格式 输入哪些数据? 输出模型 数据 ...

  5. 人体识别智能监控系统

    人体识别智能监控系统         上传时间: 2003-12-12 20:53:06 作者: 吴瑜 浅析人脸识别技术 摘要:在我们的项目人体识别智能监控系统中,虽然预期目标只需实现人体的检测的定位 ...

  6. 使用OPENCV进行人体识别

    使用OPENCV进行人体识别 使用OpenCV人体识别,可以点官网示例链接,也可以往下看. 安装OpenCV 具体步骤有点...各位可以参考官网的安装 教程. 代码部分 如果帧数极低, 可以在代码中修 ...

  7. 人体识别_深度学习资讯 | 用于人体动作识别的26层卷积神经网络

    诸如卷积神经网络(CNN)之类的深度学习算法已在各种任务上取得了显著成果,包括那些涉及识别图像中特定人物或物体的任务.基于视觉的人类动作识别(HAR)是计算机科学家经常尝试使用深度学习解决的任务,它特 ...

  8. java人体识别_用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍...

    items = results.getAnalyseList(); // 开发者根据需要处理识别结果,例如,在此方法中进行相似度计算,从而在检测到特定姿势后进行拍照等操作. // 需要注意,这里只对检 ...

  9. 人体识别_电子皮肤用于人体状态识别的柔性集成传感器

    研究背景 实时监测人体状态对人体健康非常重要,身体状态的识别可以帮助提醒疲惫的人休息,避免危险的行为,开发健身游戏和其他娱乐项目,评估运动训练强度等.柔性传感器是在日常生活的持续健康监测中提取各种身体 ...

最新文章

  1. 自己动手重新实现LINQ to Objects: 9 - SelectMany
  2. QString与std::string的相互转换
  3. 如何利用vw+rem进行移动端布局
  4. 洛谷P1650:田忌赛马(贪心)
  5. python整数加法计算器_Python应用实例赏析2.1简单计算
  6. mysql的char和varchar_MySQL的char和varchar
  7. 打开mysql的远程连接_开启mysql的远程访问权限
  8. h3csyslog_H3C Syslog简单配置
  9. 荣禄[róng lù]
  10. [RMAN]数据库全部介质恢复
  11. 开源GIS(三)——openlayers地图基本框架与天地图加载
  12. wordpress无法建立目录 是否上级目录没有写权限?解决办法
  13. 【分享】“飞鹅打印机“ 在集简云平台集成应用的常见问题与解决方案
  14. 德尔福和Mobileye强强联手,将展示双方共同开发的CSLP系统
  15. Python爬虫入门案例
  16. axd与ashx区别
  17. 超实用!XRD块状和粉末状样品的制备方法
  18. call forwarding
  19. 带通滤波器幅频特性曲线图_滤波器和对讲机技术解析!
  20. Loss——Focal Loss

热门文章

  1. 什么是UI,什么又是Web UI 工程师?
  2. PB的DataWindow的38个技巧(转)
  3. c语言单链表输出26英文字母,C语言单链表的实现
  4. IEDA超实用插件,开启这些功能,提高工作效率、提高code容错 ❤️【建议收藏】
  5. 《调色师手册:电影和视频调色专业技法(第2版)》——挑选监视器
  6. iPhone全球实时监控软件下载-CTU Camera Pro下载地址
  7. 关于使用电脑的打字技巧
  8. 输入一个字符串,判断到底有几个大写字母,小写字母,以及数字
  9. [转]细数重度玩家的16条强迫症
  10. 小影服务器维修,轩辕传奇2月27日所有服务器停服更新公告