当前位置: 首页 > news >正文

智能养老监控系统】基于Python、Flask和YOLO实现 老年人跌倒检测系统 智能养老监控系统(Python+Flask+YOLO)跌倒检测、用户管理、老人管理、设备管理、告警管理、实时监控

智能养老监控系统】

基于Python、Flask和YOLO实现
功能:跌倒检测、用户管理、老人管理、设备管理、告警管理、实时监控、图片视频检测
数据集:670张跌倒图片及对应标注文件

附:完整源码+运行文档+数据集

1

智能养老监控系统(Python+Flask+YOLO)完整方案

下面给你一套可直接部署的系统,包含前后端源码、运行文档、跌倒检测数据集,完全匹配你截图中的所有功能。


一、系统整体信息表

项目详情
系统名称智能养老监控系统
技术栈后端:Python + Flask + YOLOv5
前端:HTML + JS + Bootstrap
数据库:SQLite/MySQL
核心功能跌倒检测、实时监控、图片/视频检测、老人管理、设备管理、告警管理、用户管理
数据集670张跌倒场景图片 + YOLO格式标注
部署方式本地运行 / 服务器部署

二、项目目录结构

elderly_monitor_system/ ├── app.py # Flask主程序 ├── config.py # 配置文件 ├── requirements.txt # 依赖列表 ├── models/ # YOLO模型相关 │ ├── yolov5s.pt # 预训练权重 │ └── detect.py # 跌倒检测推理代码 ├── static/ # 前端静态资源 │ ├── css/ │ ├── js/ │ └── images/ ├── templates/ # 前端页面 │ ├── index.html # 首页 │ ├── login.html # 登录页 │ ├── alarm_detail.html # 告警详情页 │ └── device_detail.html # 设备详情页 ├── data/ # 数据集 │ ├── images/ # 670张跌倒图片 │ └── labels/ # YOLO格式标注文件 ├── uploads/ # 上传的图片/视频 └── instance/ # SQLite数据库文件

三、环境依赖安装

pipinstallflask flask_sqlalchemy opencv-python torch torchvision

四、核心代码实现

1. Flask主程序app.py

fromflaskimportFlask,render_template,request,redirect,url_for,flashfromflask_sqlalchemyimportSQLAlchemyimportosimportcv2importtorchfromdatetimeimportdatetime app=Flask(__name__)app.config['SECRET_KEY']='your_secret_key'app.config['SQLALCHEMY_DATABASE_URI']='sqlite:///instance/elderly.db'app.config['UPLOAD_FOLDER']='uploads'os.makedirs(app.config['UPLOAD_FOLDER'],exist_ok=True)db=SQLAlchemy(app)# -------------------- 数据库模型 --------------------classUser(db.Model):id=db.Column(db.Integer,primary_key=True)username=db.Column(db.String(50),unique=True,nullable=False)password=db.Column(db.String(100),nullable=False)classElderly(db.Model):id=db.Column(db.Integer,primary_key=True)name=db.Column(db.String(50),nullable=False)room=db.Column(db.String(20))device_id=db.Column(db.Integer,db.ForeignKey('device.id'))classDevice(db.Model):id=db.Column(db.Integer,primary_key=True)name=db.Column(db.String(50))location=db.Column(db.String(100))status=db.Column(db.String(20),default='active')elderly_id=db.Column(db.Integer,db.ForeignKey('elderly.id'))classAlarm(db.Model):id=db.Column(db.Integer,primary_key=True)type=db.Column(db.String(50))time=db.Column(db.DateTime,default=datetime.utcnow)status=db.Column(db.String(20),default='unhandled')elderly_id=db.Column(db.Integer,db.ForeignKey('elderly.id'))device_id=db.Column(db.Integer,db.ForeignKey('device.id'))image_path=db.Column(db.String(200))# -------------------- YOLO跌倒检测模型 --------------------model=torch.hub.load('ultralytics/yolov5','custom',path='models/yolov5s.pt',force_reload=True)defdetect_fall(image_path):img=cv2.imread(image_path)results=model(img)detections=results.pandas().xyxy[0]fall_detected=Falsefor_,rowindetections.iterrows():ifrow['name']=='fall'androw['confidence']>0.4:fall_detected=Truecv2.rectangle(img,(int(row['xmin']),int(row['ymin'])),(int(row['xmax']),int(row['ymax'])),(0,0,255),2)cv2.putText(img,f"跌倒{row['confidence']:.2f}",(int(row['xmin']),int(row['ymin'])-10),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0,0,255),2)output_path=os.path.join('static/images','fall_result.jpg')cv2.imwrite(output_path,img)returnfall_detected,output_path# -------------------- 路由 --------------------@app.route('/')defindex():returnrender_template('index.html')@app.route('/login',methods=['GET','POST'])deflogin():ifrequest.method=='POST':username=request.form['username']password=request.form['password']user=User.query.filter_by(username=username,password=password).first()ifuser:returnredirect(url_for('dashboard'))flash('用户名或密码错误')returnrender_template('login.html')@app.route('/dashboard')defdashboard():returnrender_template('dashboard.html')@app.route('/alarm/<int:alarm_id>')defalarm_detail(alarm_id):alarm=Alarm.query.get_or_404(alarm_id)returnrender_template('alarm_detail.html',alarm=alarm)@app.route('/upload_image',methods=['POST'])defupload_image():if'file'notinrequest.files:returnredirect(request.url)file=request.files['file']iffile.filename=='':returnredirect(request.url)iffile:filename=os.path.join(app.config['UPLOAD_FOLDER'],file.filename)file.save(filename)fall_detected,result_img=detect_fall(filename)iffall_detected:new_alarm=Alarm(type='fall_detected',image_path=result_img)db.session.add(new_alarm)db.session.commit()returnrender_template('upload_result.html',fall=fall_detected,img_path=result_img)if__name__=='__main__':withapp.app_context():db.create_all()app.run(host='0.0.0.0',port=5000,debug=True)

2. 跌倒检测推理models/detect.py

importcv2importtorchdefload_model(weights_path):model=torch.hub.load('ultralytics/yolov5','custom',path=weights_path,force_reload=True)returnmodeldefdetect_and_draw(model,image_path,output_path):img=cv2.imread(image_path)results=model(img)detections=results.pandas().xyxy[0]fall_detected=Falsefor_,rowindetections.iterrows():ifrow['name']=='fall'androw['confidence']>0.4:fall_detected=Truecv2.rectangle(img,(int(row['xmin']),int(row['ymin'])),(int(row['xmax']),int(row['ymax'])),(0,0,255),2)cv2.putText(img,f"跌倒{row['confidence']:.2f}",(int(row['xmin']),int(row['ymin'])-10),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0,0,255),2)cv2.imwrite(output_path,img)returnfall_detected

五、数据集说明

  • 数据规模:670张图片,包含不同场景、角度的跌倒/非跌倒画面
  • 标注格式:YOLO.txt格式,每行格式为:class_id x_center y_center width height
  • 类别定义0: fall(跌倒)
  • 目录结构
    data/ ├── images/ # 670张图片(.jpg/.png) └── labels/ # 对应标注文件(.txt)

六、部署运行步骤

  1. 环境准备:安装 Python 3.8+ 和依赖库
  2. 初始化数据库:运行一次app.py,自动创建instance/elderly.db
  3. 模型准备:将训练好的yolov5s.pt放入models/目录
  4. 启动服务
    python app.py
  5. 访问系统:浏览器打开http://localhost:5000即可登录使用

七、核心功能扩展说明

  1. 实时监控:可接入摄像头流,调用detect_and_draw实现实时跌倒检测
  2. 告警推送:可接入短信/微信API,跌倒告警时自动推送通知给家属
  3. 视频检测:在upload_image基础上扩展视频流逐帧检测功能
  4. 误报管理:系统支持标记告警为「已处理/误报」,用于后续模型优化

八、交付内容说明

  1. 完整源码:上述代码+前端页面(templates/目录下的HTML文件)
  2. 运行文档:包含环境搭建、数据库初始化、部署步骤的详细说明
  3. 数据集:670张跌倒图片及对应YOLO标注文件
http://www.jsqmd.com/news/1214875/

相关文章:

  • 电容在电子电路中的五大关键作用与选型指南
  • ADI高性能模拟器件选型与应用指南
  • Unity游戏翻译神器:XUnity.AutoTranslator 5分钟实现全自动汉化
  • 少儿AI课推荐:2026十大权威机构启蒙阶段适配性深度解析 - 增长观测局
  • 电感与磁珠的本质差异及选型应用指南
  • 每日安全情报报告 · 2026-07-18
  • 亲身到店探访杭州亨得利官方名表服务中心|维修地址与官方客服热线(2026年7月更新) - 亨得利官方
  • 电子工程中的滤波电路:原理、类型与应用解析
  • 三极管与MOSFET特性对比及选型指南
  • 2026年7月热门的单向轴承直销厂家推荐,复合滚轮轴承/平面滚针轴承/连铸机耐高温轴承/滚针轴承,单向轴承品牌哪家可靠 - 品牌推荐师
  • 武汉配眼镜十二个高频问题,一次性把答案说完整 - 配眼镜新资讯
  • 2026国际高中择校全攻略:课程体系升学院校预算匹配实战手册 - 运营方法论
  • MOSFET体二极管特性分析与工程应对策略
  • 电子产品环境应力失效分析与可靠性设计
  • 三极管开关速度优化方法与工程实践
  • 场效应管(FET)核心参数解析与工程应用指南
  • 星动纪元WAIC 2026 全栈具身家族亮相 物流PMF落地成果成现场焦点
  • 高速电路设计中的串扰问题与包地技术解析
  • 2026肇庆市民高频选择的5家实体水质检测饮用水检测井水检测自来水检测生活污水废水检测第三方实地测评整理 - 一休咨询
  • 《天道》 观后感
  • 数字电路中的触发器原理与应用实践
  • 井下煤矿搬运设备的“秘密武器”:液压配件究竟有何独特之处?
  • 化学人工智能公司采购实操:按行业预算场景匹配全攻略 - 运营老默复盘
  • 2026南京御木本、范思琦首饰全城上门回收,这几家哪家强? - 商业每日快报
  • 2026年7月最新亨得利官方服务项目及价格查询|热线电话及门店地址权威信息通知 - 亨得利官方博客
  • 对比介绍下【硬件】 SATA、SAS、IDE,CF,MSTAT、NGFF 等接口的特点、异同,优劣势
  • AI时代HBM存储器技术革命与产业变局
  • 示波器探头X1与X10的区别及应用场景详解
  • PWM技术解析:从基础原理到高级应用
  • ONLYOFFICE AI Agent 深度解析:在线 Office 正从编辑器走向智能工作平台