Python+Django的毕业设计-基于深度学习的人体摔倒识别方法与实现系统项目实战(附源码+论文)
大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。
💞当前专栏:Python毕业设计
精彩专栏推荐👇🏻👇🏻👇🏻
开发环境
- 开发语言:Python
- 框架:django
- Python版本:python3.7.7
- 数据库:mysql 5.7(一定要5.7版本)
- 数据库工具:Navicat11
- 开发软件:PyCharm
- 浏览器:谷歌浏览器
演示视频
python279基于深度学习的人体摔倒识别方法研究演示
论文目录
【如需全文或源码请按文末获取联系】

一、项目简介
本文提出了一种基于深度学习的人体摔倒识别方法。首先,我们利用YOLO算法,首先去画一些摔倒的样本,然后把它们送进模型训练,最后我们将训练好的模型应用到实际场景中,实现对人体摔倒的识别。在系统架构方面,我们采用了浏览器/服务器(BS)架构进行开发,使用Python语言和Django框架搭建了后台服务,并使用MySQL数据库进行数据存储和管理。这种架构具有良好的可扩展性和易维护性,能够满足大规模用户的需求。
为了验证所提方法的有效性,我们在多个公开数据集上进行了实验。实验结果表明,与其他基于深度学习的方法相比,本文提出的方法在人体摔倒识别任务上具有更高的准确率和适应性。此外,我们还分析了所提方法在不同场景和光照条件下的表现,证明了其在实际应用中的可行性。
二、系统设计
2.1软件功能模块设计

三、系统项目部分截图
3.1系统首页
首页整体分为侧边栏和主界面两部分,在侧边栏中有对功能的展示,可以快速定位相应的功能,除首页之外还有图片识别、批量识别、图片管理、日志管理、个人信息、用户管理、路径设置以及注销等功能,方便用户进行操作。在主界面部分也对功能进行了模块化的划分,包括用户名、最新的数据统计、用户七天使用量的柱状图分析表等。其中,数据统计这一块又包含了四项内容,分别是总用户数、总图片数、当前年份以及当前月份的信息等,方便用户进行管理和查看。
3.2注册登陆
在会员注册界面,保持简约、时尚的界面,功能主要集中于屏幕中间部分,包含左右两个模块,左边用户用户的登陆,右边用于用户的注册。其中用户注册包括了用户的姓名、手机号以及密码信息的填写。登陆时只需要输入用户的账号以及密码即可实现用户或者管理员的登陆。在进行会员注册和用户登陆时,左右两边展示的内容是不同的,当进行会员注册,左边会显示欢迎回来;当进行会员登陆时,右边会显示欢迎你,朋友,这样可以给我们的用户带来一个不同的感受。

3.3图片识别
在图片识别界面中,分为上中下三个部分。在顶部主要是显示当前的功能模块以及当前的位置。在中间是我们图片检测的核心模块。在这里,我们可以上传图片,对图片进行摔倒检测。我们的检测界面会在我们的下方列表中进行展示,包括编号以及检测结果。如果检测到有摔倒的行为,我们会对其进行标注、方便用户明确的观察。如图6所示。我们也可以对检测后的图片进行预览,如图7所示。在图片预览窗口中,如果我们觉得目前图片的比例不符合我们当前的要求,我们可以对图片进行放大或缩小来满足我们的需求。
四、部分核心代码
import time
from django.contrib.auth import authenticate, login
from django.shortcuts import render
from .models import User
from django.http import JsonResponse, HttpResponseRedirect
from django.core.paginator import Paginator
from utils.common import login_request
from utils import common
def verif_has_username(id, name):
# 判断是否用重复的用户名
user = User.objects.exclude(id=id).filter(username=name)
return True if len(user) > 0 else False
def register(request):
"""
注册账号
:return:
"""
username = request.POST.get('username')
sign = verif_has_username(None, username)
password = request.POST.get('password')
phone = request.POST.get('phone')
email = request.POST.get('email', '1@qq.com')
if sign:
return JsonResponse({"statusCode": '500', "msg": "用户名重复!"})
response_data = {
"statusCode": '200',
"msg": "用户" + request.POST["username"] + "新增成功!",
}
if password == "" or username == "":
response_data["statusCode"] = '403'
response_data["msg"] = "用户名或密码为空,注册失败!"
# 新增用户
try:
User.objects.create_user(
username=username,
password=password,
is_superuser='f',
is_active='t',
email=email,
phone=phone
)
common.create_log(request, '新增', '创建用户', username, 1)
except Exception as e:
print(e)
common.create_log(request, '新增', '创建用户失败', '', 0)
response_data["statusCode"] = '500'
response_data["msg"] = "用户新增失败"
return JsonResponse(response_data)
@login_request
def password(request):
return render(request, 'modify_password.html', locals())
def get_user(request):
"""
获取用户列表信息 | 模糊查询
:param request:
:return:
"""
page = request.GET.get("page", '')
keyword = request.GET.get("name", '')
limit = request.GET.get("limit", '')
response_data = {}
response_data['code'] = 0
response_data['msg'] = ''
data = []
if keyword is None:
results_obj = User.objects.all()
else:
results_obj = User.objects.filter(username__contains=keyword).all()
paginator = Paginator(results_obj, limit)
results = paginator.page(page)
if results:
for result in results:
record = {
"id": result.id,
"name": result.username,
"password": result.password,
"email": result.email,
"phone": result.phone,
'create_time': result.date_joined.strftime('%Y-%m-%d %H:%m:%S'),
"desc": result.description,
}
data.append(record)
response_data['count'] = len(results_obj)
response_data['data'] = data
return JsonResponse(response_data)
@login_request
def user(request):
"""
跳转用户页面
"""
return render(request, 'user.html', locals())
def login_check(request):
"""
登录校验
"""
response_data = {}
username = request.POST.get('username')
password = request.POST.get('password')
user_obj = authenticate(username=username, password=password)
if user_obj:
# 将用户名存入session中
response_data['msg'] = '登录成功'
common.create_log(request, '登录', '登录系统', '', 1)
login(request, user_obj)
return JsonResponse(response_data, status=201)
else:
common.create_log(request, '登录', '登录系统', username, 0)
return JsonResponse({'message': '用户名或者密码不正确'}, status=401)
def edit_user(request):
"""
修改用户
"""
response_data = {}
user_id = request.POST.get('id')
username = request.POST.get('username', '')
phone = request.POST.get('phone', '')
email = request.POST.get('email', '')
description=request.POST.get('desc')
User.objects.filter(id=user_id).update(
username=username,
email=email,
description=description,
phone=phone)
response_data['msg'] = '编辑成功!'
response_data['error'] = 0
common.create_log(request, '修改', '修改用户', username, 1)
return JsonResponse(response_data, status=201)
def del_user(request):
"""
删除用户
"""
user_id = request.POST.get('id')
result = User.objects.filter(id=user_id).first()
try:
if not result:
response_data = {'error': '删除失败!', 'message': '找不到id为%s' % user_id}
return JsonResponse(response_data, status=403)
common.create_log(request, '删除', '删除用户', result.username, 1)
result.delete()
response_data = {'message': '删除成功!'}
return JsonResponse(response_data, status=201)
except Exception as e:
common.create_log(request, '删除', '删除用户', result.username, 0)
response_data = {'message': '删除失败!'}
return JsonResponse(response_data, status=403)
def change_password(request):
"""
修改密码
"""
current_user = User.objects.filter(username=request.session["username"]).first()
if current_user.password == request.POST.get('password'):
# 修改的密码与原密码重复不予修改
return JsonResponse({"msg": "修改密码与原密码重复"}), 406
else:
# 不重复,予以修改
current_user.set_password(request.POST.get('password'))
current_user.save()
# 清除session回到login界面
logout(request)
return JsonResponse({"msg": "success"})
获取源码或论文
如需对应的论文或源码,以及其他定制需求,也可以下方微❤联系。
更多推荐

所有评论(0)