基于PaddleDetecion的跌倒检测


该项目基于PaddleDetection2.0的YOLOv3(mobilenetv3主干)实现跌倒检测,可部署于医疗机构等场景。背景源于生活中常见跌倒场景。使用aistudio开源VOC格式跌倒检测数据集,通过PaddleX切分数据集。流程包括克隆仓库、安装依赖、配置文件、训练模型,还涉及错误图片处理,可进行评估与预测,结果存于work目录。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

【PaddleDetection2.0】

本项目通过使用PaddleDetection2.0中的YOLOv3(主干网络为mobilenetv3的轻量化模型),实现目标检测用于检测人体跌倒姿态,完善模型训练之后可以部署于医疗机构、社区监督或者家里有老人需要的场景需求,都可以进行使用。

【项目背景】

在我喜欢的B站UP主--《虫哥说电影》,讲解国产宫斗剧中经常发生的名场面:啊~我跌倒了,在生活中,老人摔倒受伤的情况常常发生,在野球场打球时,遇到被强有力防守盖帽摔倒,跌倒的场景无处不在,于是小白打算尝试做一个基于PaddleDetection的跌倒检测的项目(demo)

       

【数据集简介】

使用了aistudio上的开源数据集,跌倒检测数据集Fall detection Datase,该数据集为VOC格式,由作者Niki_173制作,感谢大佬的数据集,利于同我一样的小白学习使用,可以通过调用PaddleX一键切分出自己想要的训练集、测试集、验证集,当然这也可以用PaddleX的全流程开发使用,感兴趣的xdm也可以试试

【快速上手】

1.克隆PaddleDetection仓库

In [ ]
#从gitee上克隆PaddleDetection! git clone https://gitee.com/paddlepaddle/PaddleDetection.git
    In [ ]
#安装paddlex!pip install paddlex
   

解压数据集,解压到PaddleDetection文件目录dataset的voc路径下(方便后面的config配置),如果不放在目录下会出现无法读取数据且无法识别数据类型的报错(先手动删除原来文件夹里的几个文件)

In [ ]
#用于解压数据集!unzip -oq /home/aistudio/data/data94809/pp_fall.zip -d PaddleDetection/dataset/voc
   

安装相关依赖包(不过我并没有使用,如果有别的构思的可以安装,然后编写自己的想法)

In [ ]
! pip install paddledet==2.0.1 -i https://mirror.baidu.com/pypi/simple
   

调用PaddleX切分数据集,下面是按7:2:1分解数据集、验证集、测试集

In [20]
#此处移动是满足VOC格式需求%cd ~
!mv PaddleDetection/dataset/voc/images PaddleDetection/dataset/voc/JPEGImages#更改下面的val/test的比例可以更改数据集划分的比例!paddlex --split_dataset --format VOC --dataset_dir PaddleDetection/dataset/voc --val_value 0.2 --test_value 0.1
       
/home/aistudio
mv: cannot stat 'PaddleDetection/dataset/voc/images': No such file or directory
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/setuptools/depends.py:2: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp
Dataset Split Done.
Train samples: 1001
Eval samples: 285
Test samples: 142
Split files saved in PaddleDetection/dataset/voc
       

数据集是作者Niki_173自己制作的(作者的说明中表示有些图片的标签信息PD识别shape会有错误),感谢大佬精心的数据集,这也是在执行train.py文件后会报大概有10张图片有问题的原因,通过下面代码删除文件

如果执行训练时遇到类似)如下错误,不要慌张,就是报错图片未移除        

In [ ]
import os# 把错误图片的数字依次删除。jpg/xml文件后,再次运行Paddlex的切分数据集命令#在模型训练时会出现报错,可以看到那些图片识别shape会报错file_name = "PaddleDetection/dataset/voc/JPEGImages/fall_137.jpg"if os.path.exists(file_name):
    os.remove(file_name)    print('成功删除文件:', file_name)else:    print('未找到此文件:', file_name)

file_name = "PaddleDetection/dataset/voc/Annotations/fall_137.xml"if os.path.exists(file_name):
    os.remove(file_name)    print('成功删除文件:', file_name)else:    print('未找到此文件:', file_name)
       
成功删除文件: PaddleDetection/dataset/voc/JPEGImages/fall_137.jpg
成功删除文件: PaddleDetection/dataset/voc/Annotations/fall_137.xml
       

'base/optimizer_270e.yml',主要说明了学习率和优化器的配置,以及设置epochs。在其他的训练的配置中,学习率和优化器是放在了一个新的配置文件中。

'../datasets/voc.yml'主要说明了训练数据和验证数据的路径,包括数据格式(coco、voc等)

'base/yolov3_reader.yml', 主要说明了读取后的预处理操作,比如resize、数据增强等等

'base/yolov3_mobilenet_v3_large.yml',主要说明模型、和主干网络的情况说明。

'../runtime.yml',主要说明了公共的运行状态,比如说是否使用GPU、迭代轮数等等

配置voc.yml文件,PaddleDetection/configs/datasets/voc.yml

metric: VOCmap_type: 11pointnum_classes: 1TrainDataset:
  !VOCDataSet
    dataset_dir: dataset/voc
    anno_path: train_list.txt
    label_list: labels.txt
    data_fields: ['image', 'gt_bbox', 'gt_class', 'difficult']EvalDataset:
  !VOCDataSet
    dataset_dir: dataset/voc
    anno_path: val_list.txt
    label_list: labels.txt
    data_fields: ['image', 'gt_bbox', 'gt_class', 'difficult']TestDataset:
  !ImageFolder
    anno_path: dataset/voc/labels.txt
       

配置optimizer_270e.yml文件,PaddleDetection/configs/yolov3/base/optimizer_270e.yml

epoch: 200LearningRate:
  base_lr: 0.001
  schedulers:
  - !PiecewiseDecay
    gamma: 0.1
    milestones:
    - 216
    - 243
  - !LinearWarmup
    start_factor: 0.
    steps: 4000OptimizerBuilder:
  optimizer:
    momentum: 0.9
    type: Momentum
  regularizer:
    factor: 0.0005
    type: L2
       

配置完成后便可以开始训练

模型训练

In [18]
#如果报错就进入PaddleDetection目录再运行%cd PaddleDetection#如果还是出现无法找到文件错误,进入终端依次执行命令即可,或者直接把相对路径改为绝对路径就可以!python tools/train.py -c configs/yolov3/yolov3_mobilenet_v1_ssld_270e_voc.yml
       
/home/aistudio/PaddleDetection
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/setuptools/depends.py:2: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp
/home/aistudio/PaddleDetection/ppdet/data/reader.py:190: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
  logger.warn("Shared memory size is less than 1G, "
[08/15 11:08:00] reader WARNING: Shared memory size is less than 1G, disable shared_memory in DataLoader
[08/15 11:08:01] ppdet.utils.checkpoint INFO: Finish loading model weights: /home/aistudio/.cache/paddle/weights/MobileNetV1_ssld_pretrained.pdparams
[08/15 11:08:10] ppdet.engine INFO: Epoch: [0] [  0/125] learning_rate: 0.000000 loss_xy: 2.628794 loss_wh: 4.712801 loss_obj: 4569.814453 loss_cls: 0.650645 loss: 4577.807129 eta: 3 days, 13:27:54 batch_cost: 9.1163 data_cost: 0.3383 ips: 0.8776 images/s
       

模型评估测试

In [ ]
%cd PaddleDetection
!export CUDA_VISIBLE_DEVICES=0!python  tools/eval.py -c configs/yolov3/yolov3_mobilenet_v1_ssld_270e_voc.yml
   

模型预测

预测结果在Paddledetdction目录下的work文件中

可以自己更改预测文件目录在测试集中任选其一预测

In [ ]
!export CUDA_VISIBLE_DEVICES=0!python tools/infer.py -c configs/yolov3/yolov3_mobilenet_v1_ssld_270e_voc.yml \
                    --infer_img=dataset/voc/JPEGImages/fall_1193.jpg \
                    --output_dir=work/ \
                    --draw_threshold=0.5 \
                    -o weights=output/yolov3_mobilenet_v1_ssld_270e_voc/model_final \
                    --use_vdl=False
   

模型预测结果

       


# 报错  # 配置文件  # 开源  # 医疗机构  # 会报  # 这也  # 放在  # 大佬  # 说明了  # python  # 切分  # 数据类型  # igs  # red  # cos  # ai  # b站  # git 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化91478 】 【 技术知识72672 】 【 云计算0 】 【 GEO优化84317 】 【 优选文章0 】 【 营销推广36048 】 【 网络运营41350 】 【 案例网站102563 】 【 AI智能45237


相关推荐: ROBLOX Brookhaven:惊悚友谊与校园秘密(2025版)  如何用AI一键生成求职简历?AI简历优化与制作工具推荐【干货】  解锁 Gemini Gems 高级用法:打造专属 AI 专家助手  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  数据集中化:提升AI效率,节省企业时间与成本的终极指南  如何用AI一键生成手机壁纸?4K高清AI壁纸生成关键词【分享】  暖心“小艺通话”:让语障人士告别沟通困境,拥抱平等生活  随机故事生成器:激发创意,轻松创作精彩故事  ChatGPT一键生成PPT怎么加动画_ChatGPTPPT动画添加【指南】  使用AI配乐:ElevenLabs Music音乐生成器终极指南  LogMeIn Resolve:IT 运维知识库的 AI 赋能实践  Xeon E5-2667 V2性能评测:老平台焕发新生,游戏与工作负载表现分析  AI动画制作终极指南:让你的图片和人物栩栩如生  AI Lead Generation: 解锁未来增长引擎,营销新纪元  AI助手高效获取谷歌评论:提升本地商家曝光率的终极指南  稿定设计AI抠图怎样处理复杂边缘_稿定设计AI复杂边缘细化技巧【技巧】  兔展AI排版如何批量生成多尺寸图_兔展AI排版多尺寸批量生成步骤【实操】  动漫肌肉美学:盘点最佳动漫肌肉男体格  探索古希腊之美:AI打造的绝|美女|神形象赏析  电脑硬件升级指南:旧电脑的回收利用与性能提升  通义千问怎么找新功能入口_通义千问新功能查找【攻略】  Mermaid Playground: AI驱动的图表秒速创建指南  Feelin网页版在线使用 Feelin官网登录入口  即梦AI怎样生成产品描述_即梦AI产品描述生成与卖点提炼【实操】  AI绘图软件怎么用_AI绘图软件使用方法详细指南【教程】  tofai入口官方网站 tofai网页版入口地址  文心一言如何做本地生活探店文案 文心一言内容种草指南  DeepSeek辅助撰写专利申请 DeepSeek技术创新文档写作  ChatGPT 处理非结构化数据并转换为 JSON 格式  如何用 ChatGPT 快速生成短视频分镜脚本  快手本地生活AI如何预约景区火车票_快手AI本地生活抢票步骤【步骤】  通义千问怎样写小红书文案_通义千问文案写作步骤【步骤】  零成本AI营销机构:2025年自动化运营,颠覆传统营销模式  豆包AI的发现页面有什么功能_探索热门智能体与话题  CharSnap AI:终极角色扮演与群聊平台指南  构建卓越AI代理:端到端Agentic RAG解决方案详解  AI视频生成终极指南:免费为店铺打造引流爆款  Claude怎么用新功能故事创作_Claude故事创作使用【方法】  P&ID图完全解析:符号、应用及绘制指南  AI Vibe Coding: 快速打造落地页,低代码平台实战教程  AI聊天机器人:朋友还是谄媚者?深度解析与实用建议  AIPPT:AI驱动的PPT制作工具,高效便捷演示文稿方案  定价3499炒到1.2万,豆包AI手机遭“封杀”,变革之路何去何从?  2025数据科学学习指南:技能、工具和学习路线图  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  Jarvis AI终极指南:用AI快速撰写畅销亚马逊书籍  腾讯混元图像3.0上线LiblibAI,80B参数助力创作者高效出图  批改网AI检测工具怎么生成评分报告_批改网AI检测工具报告生成与维度解读【指南】  怎么用AI帮你解读复杂的学术论文?快速抓住核心论点和证据  百度ai助手怎么设置不显示 百度ai助手界面净化设置 

 2025-07-22

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

南京市珐之弘网络技术有限公司


南京市珐之弘网络技术有限公司

南京市珐之弘网络技术有限公司专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 87067657

 13565296790

 87067657@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.