跌倒识别 摔倒识别 -lightweight_openpose
最近做了一個跌倒檢測demo,使用的是lightweight_openpose+fullconnection,這篇文章是以應用為主,已經在GitHub上開源啦,
源碼openpose_fall_detect
為什么使用lightweight_openpose,在此之前跑了很多模型哈,包括C3D、R3D、R(2+1)D、yolo、alphapose、STGCN、openpose等,以上模型有時間了再和大家分享,綜合來說,lightweight_openpose速度快(比以上提到的模型都快),精度也很不錯,接下來談一談這個項目的模型及怎么實現的。
lightweight_openpose VS openpose
這個輕量級的openpose相比openpose有哪些改進呢,先看看openpose的原始結構
接下來談談對openpose的改進
改進一:backbone:VGG19 to mobilev1
改進二:把生成keypoints和PAFs的兩個網絡合并成一個
改進三:把7x7的卷積換成3x3和1x1的卷積塊,為保持視野,使用dil=2的空洞卷積
經過以上改進,速度相比原openpose快了很多,精度和原openpose相差很小
大致知道了如何改進的openpose,理論不多說,接下來談談怎么利用lightweight_openpose+fullconnection實現跌倒識別
一、
lightweight_openpose用來識別骨骼
二、
把骨骼圖片傳入全連接層,全連接層對骨骼進行判斷,輸出骨骼狀態(fall or normal),發現精度還可以進一步提高,就是使用寬高比進行輔助判斷,跑出來的效果確實好了很多。
關于lightweight_openpose可以參考其論文Lightweight OpenPose
及其github相關代碼
關于全連接層的訓練,很簡單,首先生成訓練集和測試集,直接利用lightweight_openpose生成后保存就好,我已經對源碼做了部分修改,在pose.py文件中添加了保存功能,在demo文件調用時可以設置is_save = True
骨骼生成完后,創建test與train文件夾作為訓練集與測試集,在test和train文件夾下創建fall與normal文件夾,把相應的骨骼圖片放進去就好,如下圖
之后訓練就可以啦,幾個小時就可以訓練好
以下附幾張效果圖
為了方便操作,項目中添加了一個簡單的GUI操作界面,入口文件為fall_down_detector.py
權重文件下載地址:
鏈接:https://pan.baidu.com/s/1QB8j7bXsmpEpfc4d3HkUIg
提取碼:5d6o
任何程序錯誤,以及技術疑問或需要解答的,請掃碼添加作者VX
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的跌倒识别 摔倒识别 -lightweight_openpose的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET MVC从数据库读取、存入
- 下一篇: 带有emplace开头的STL为何优于其