[ML]Human Activity Recognition人體動(dòng)作/姿態(tài)識(shí)別-文獻(xiàn)綜述

1. 數(shù)據(jù)集

UCI: Human Activity Recognition Using Smartphones Data Set
手機(jī)傳感器陀螺儀數(shù)據(jù),數(shù)據(jù)集.
本例的數(shù)據(jù)來(lái)源于UCI(即UC Irvine,加州大學(xué)歐文分校)。數(shù)據(jù)由年齡在19-48歲之間的30位志愿者,智能手機(jī)固定于他們的腰部,執(zhí)行六項(xiàng)動(dòng)作,即行走、上樓梯、下樓梯、坐、站立、躺下,同時(shí)在手機(jī)中存儲(chǔ)傳感器(加速度傳感器和陀螺儀)的三維(XYZ軸)數(shù)據(jù)。傳感器的頻率被設(shè)置為50HZ(即每秒50次記錄)。對(duì)于所輸出傳感器的維度數(shù)據(jù),進(jìn)行噪聲過(guò)濾(Noise Filter),以2.56秒的固定窗口滑動(dòng),同時(shí)窗口之間包含50%的重疊,即每個(gè)窗口的數(shù)據(jù)維度是128(2.56*50)維,根據(jù)不同的運(yùn)動(dòng)類(lèi)別,將數(shù)據(jù)進(jìn)行標(biāo)注。傳感器含有三類(lèi):身體(Body)的加速度傳感器、整體(Total)的加速度傳感器、陀螺儀。

公開(kāi)數(shù)據(jù)集整理 (Public datasets for activity recognition)
非常詳細(xì)的一個(gè)行為識(shí)別相關(guān)的數(shù)據(jù)集集合,包括描述與下載地址,以及引用該數(shù)據(jù)集的文章等,如果需要數(shù)據(jù)集先從這里掃一掃看看有沒(méi)需要的。

2. 人體動(dòng)作識(shí)別 (HAR) - 基于視頻

2.1 人體動(dòng)作識(shí)別架構(gòu)圖

Human Activity Recognition:

  • Single-layered approaches
    • Spatical-temporal approaches
      • Spatial-temporal volume
      • Trajectories
      • Spatial-temporal features
    • Sequential approaches
      • Exemplar-based
      • State-based
  • Hierarchal approaches
    • Statistical
    • Syntactic
    • Description-based

源自2011年 Aggarwal and Ryoo的建議。相對(duì)來(lái)說(shuō),已經(jīng)很老舊了,僅供了解參考
另,本來(lái)有個(gè)架構(gòu)圖的,簡(jiǎn)書(shū)的圖片上傳功能瓦特了, 只能簡(jiǎn)單手寫(xiě)了。

2.2 目標(biāo)跟蹤

目標(biāo)跟蹤綜述
視覺(jué)目標(biāo)(單目標(biāo))跟蹤任務(wù)就是在給定某視頻序列初始幀的目標(biāo)大小與位置的情況下,預(yù)測(cè)后續(xù)幀中該目標(biāo)的大小與位置。這一基本任務(wù)流程可以按如下的框架劃分:
輸入初始化目標(biāo)框,在下一幀中產(chǎn)生眾多候選框(Motion Model),提取這些候選框的特征(Feature Extractor),然后對(duì)這些候選框評(píng)分(Observation Model),最后在這些評(píng)分中找一個(gè)得分最高的候選框作為預(yù)測(cè)的目標(biāo)(Prediction A),或者對(duì)多個(gè)預(yù)測(cè)值進(jìn)行融合(Ensemble)得到更優(yōu)的預(yù)測(cè)目標(biāo)...

Polen: 最全面的一篇視覺(jué)跟蹤的綜述,雖然很多是參照其他文章的,但是整個(gè)視覺(jué)跟蹤的前因后果,發(fā)展歷程都有涉及,很詳細(xì),很全面

機(jī)器之心:從傳統(tǒng)方法到深度學(xué)習(xí),目標(biāo)跟蹤方法的發(fā)展概述,陳正華,清華
目標(biāo)跟蹤是計(jì)算機(jī)視覺(jué)研究領(lǐng)域的熱點(diǎn)之一,過(guò)去幾十年以來(lái),目標(biāo)跟蹤的研究取得了長(zhǎng)足的發(fā)展。從 Meanshift、粒子濾波(Particle Filter)和 Kalman Filter 等經(jīng)典跟蹤方法,到基于檢測(cè)(Track By Detection)或相關(guān)濾波(Correlation Filter)的方法,到最近三年來(lái)出現(xiàn)的深度學(xué)習(xí)相關(guān)方法。每年在幾個(gè)主要跟蹤數(shù)據(jù)集上的競(jìng)賽非常激烈,方法也越來(lái)越多。本期閱面科技資深研究員陳正華將以「目標(biāo)跟蹤方法的發(fā)展概述」為主題給大家分享更多的內(nèi)容。

  • 通用目標(biāo)的跟蹤

    • 經(jīng)典目標(biāo)跟蹤方法(產(chǎn)生式模型的方法)
      2010 年以前,目標(biāo)跟蹤領(lǐng)域大部分采用一些經(jīng)典的跟蹤方法,比如 Meanshift、Particle Filter 和 Kalman Filter,以及基于特征點(diǎn)的光流算法等。在深度學(xué)習(xí)和相關(guān)濾波的跟蹤方法出現(xiàn)后,經(jīng)典的跟蹤方法都被舍棄,這主要是因?yàn)檫@些經(jīng)典方法無(wú)法處理和適應(yīng)復(fù)雜的跟蹤變化,它們的魯棒性和準(zhǔn)確度都被前沿的算法所超越。

    • 檢測(cè)與跟蹤相結(jié)合的方法(基于鑒別式模型的方法)
      而基于鑒別式模型的方法是指利用分類(lèi)來(lái)做跟蹤的方法,即把跟蹤的目標(biāo)作為前景,利用在線(xiàn)學(xué)習(xí)或離線(xiàn)訓(xùn)練的檢測(cè)器來(lái)區(qū)分前景目標(biāo)和背景,從而得到前景目標(biāo)的位置。雖然此時(shí)通用物體的檢測(cè)率還非常低(ImageNet 的檢測(cè)率不超過(guò) 20%),因?yàn)槲矬w檢測(cè)主要基于手工設(shè)計(jì)的特征,但是,通過(guò)在新更新檢測(cè)器的模型和各種底層特征的提出,鑒別式跟蹤方法更能適應(yīng)跟蹤過(guò)程中的復(fù)雜變化,所以利用檢測(cè)來(lái)做跟蹤(Tracking By Detection)逐漸成為主流。

      • Surrey 大學(xué)博士生 Z.Kalal 提出的一種長(zhǎng)效跟蹤的 TLD(Tracking-Learning-Detection)方法
      • 2013年VOT競(jìng)賽的冠軍 Struck,利用結(jié)構(gòu)化 SVM 方法在線(xiàn)學(xué)習(xí)的一個(gè)分類(lèi)器
      • 2014年VOT競(jìng)賽的冠軍 DSST,一種改進(jìn)的基于相關(guān)濾波的多尺度跟蹤方法
    • 基于相關(guān)濾波的跟蹤算法

      • 2012 年 P.Martins 提出的 CSK 方法(一種基于循環(huán)矩陣的核跟蹤方法,并且從數(shù)學(xué)上完美解決了密集采樣(Dense Sampling)的問(wèn)題,利用傅立葉變換快速實(shí)現(xiàn)了檢測(cè)的過(guò)程)
      • 基于 HOG 特征的 KCF 方法
      • 考慮多尺度或顏色特征(Color Name 表)的方法
    • 基于深度學(xué)習(xí)的跟蹤方法

      • GOTURN 方法利用 ALOV300+視頻序列集和 ImageNet 檢測(cè)數(shù)據(jù)集訓(xùn)練了一個(gè)基于圖像對(duì)輸入的卷積網(wǎng)絡(luò),輸出在搜索區(qū)域內(nèi)相對(duì)于上一幀位置的變化,從而得到目標(biāo)在當(dāng)前幀上的位置
      • 牛津大學(xué)的 Luca Bertinetto 提出的端到端的跟蹤框架,從 SiameseFC 到今年的 CFNet
  • 特定目標(biāo)的跟蹤
    特定物體的跟蹤與前面介紹的方法不同,它更多地依賴(lài)對(duì)物體訓(xùn)練特定的檢測(cè)器。人臉跟蹤由于它的明顯特征,它的跟蹤就主要由檢測(cè)來(lái)實(shí)現(xiàn),比如早期的 Viola-Jones 檢測(cè)框架和當(dāng)前利用深度學(xué)習(xí)的人臉檢測(cè)或人臉特征點(diǎn)檢測(cè)模型。手勢(shì)跟蹤在應(yīng)用主要集中在跟蹤特定的手型,比如跟蹤手掌或者拳頭。設(shè)定特定的手型可以方便地訓(xùn)練手掌或拳頭的檢測(cè)器。

2.3 HAR + 機(jī)器學(xué)習(xí)

CNN: Deep Learning for Human Activity Recognition,2018
源碼: Github
數(shù)據(jù)集:UCI: Human Activity Recognition Using Smartphones Data Set
簡(jiǎn)單使用cnn實(shí)現(xiàn)了對(duì)UCI數(shù)據(jù)集的分析, 基于Tensorflow and Pytorch.
That dataset contains 9 channels of the inputs: (acc_body, acc_total and acc_gyro) on x-y-z. So the input channel is 9.
Dataset providers have clipped the dataset using sliding window, so every 128 in .txt can be considered as an input. In real life, you need to first clipped the input using sliding window.
So in the end, we reformatted the inputs from 9 inputs files to 1 file, the shape of that file is [n_sample,128,9], that is, every windows has 9 channels with each channel has length 128. When feeding it to Tensorflow, it has to be reshaped to [n_sample,9,1,128] as we expect there is 128 X 1 signals for every channel.

知乎:基于深度學(xué)習(xí)的人體動(dòng)作識(shí)別算法總結(jié),桑燊
文章主要列出了一些相關(guān)的數(shù)據(jù)集以及深度學(xué)習(xí)的方法包括基于無(wú)監(jiān)督學(xué)習(xí)的行為識(shí)別、基于卷積神經(jīng)網(wǎng)絡(luò)的行為識(shí)別、基于循環(huán)神經(jīng)網(wǎng)絡(luò)以及一些拓展模型的方法。當(dāng)然,這里面提到的很多模型都不是最新的技術(shù),還有很多最新的模型和技術(shù)都沒(méi)有包含進(jìn)來(lái)。

本文首先提出一共17個(gè)人體姿態(tài)識(shí)別相關(guān)的數(shù)據(jù)集及其鏈接,然后給出9個(gè)深度學(xué)習(xí)在人體姿態(tài)識(shí)別領(lǐng)域的應(yīng)用模型,包括其論文提出的思路、模型結(jié)構(gòu)、實(shí)驗(yàn)數(shù)據(jù)集和使用的加速硬件(如果有的話(huà)),本文不提供相關(guān)的實(shí)現(xiàn)方法。

  • 基于無(wú)監(jiān)督學(xué)習(xí)的行為識(shí)別

  • 基于卷積神經(jīng)網(wǎng)絡(luò)的行為識(shí)別

    • P-CNN: pose-based CNN features for action recognition
      將傳統(tǒng)的CNN拓展到具有時(shí)間信息的3D-CNN,在視頻數(shù)據(jù)的時(shí)間維度和空間維度上進(jìn)行特征計(jì)算,在卷積過(guò)程中的特征圖與多個(gè)連續(xù)幀中的數(shù)據(jù)進(jìn)行連接。簡(jiǎn)單來(lái)說(shuō),3D-CNN就是將連續(xù)的視頻幀看作一個(gè)盒子,使用一個(gè)三維的卷積核進(jìn)行卷積,通過(guò)這種結(jié)構(gòu),就能捕獲動(dòng)作信息,使用7幀[公式]大小幀序列作為輸入,第一層為硬編碼的卷積核,然后進(jìn)行兩次卷積和下采樣,最后得到一個(gè)128維的特征集合。
    • Two-stream convolutional networks for action recognition in videos
      提出一種稱(chēng)為P-CNN的模型,使用單幀數(shù)據(jù)和光流數(shù)據(jù),從而捕獲運(yùn)動(dòng)信息。
      首先,要對(duì)視頻序列計(jì)算光流數(shù)據(jù)并且存儲(chǔ)為圖片的形式,對(duì)于給定的視頻信息和相對(duì)應(yīng)的骨骼位置,將RGB圖片和光流圖片分割為5類(lèi)(左手、右手、上部分身體、下部分身體和整張圖片),將其大小均初始化為[公式],然后使用兩個(gè)不同的卷積網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)都含有5個(gè)卷積層和3個(gè)全連層,然后通過(guò)聚合和歸一化,最后整合為一個(gè)P-CNN的特征集合,最后使用線(xiàn)性SVM進(jìn)行訓(xùn)練。
    • Large-scale video classification with convolutional neural networks
      提出一種稱(chēng)為L(zhǎng)ong-term Temporal Convolutions(LTC-CNN)的網(wǎng)絡(luò),在定長(zhǎng)時(shí)間的視頻內(nèi)使用三維的CNN。
      相比于其他的將視頻切分為短時(shí)間的序列,該模型最大限度的保留了視頻的時(shí)空信息,網(wǎng)絡(luò)有5個(gè)時(shí)空卷積層和3個(gè)全連層,對(duì)于每個(gè)時(shí)空卷積核尺寸都為[公式],都采用ReLU函數(shù)和最大值池化層(max pooling,除了第一層為[公式],其他尺寸均為 [公式]),并且在卷積時(shí)采用1像素的邊緣填充。
  • 循環(huán)神經(jīng)網(wǎng)絡(luò)及擴(kuò)展模型
    • Beyond short snippets: deep networks for video classification, 對(duì)應(yīng)有個(gè)PPT
      使用在imageNet上預(yù)訓(xùn)練過(guò)的CNN(AlexNet或者GoogleLeNet)提取幀級(jí)特征,再將幀級(jí)特征和提取到的光流特征輸入到池化框架或者LSTM進(jìn)行訓(xùn)練,得到分類(lèi)結(jié)果。 就是說(shuō)使用LSTM對(duì)視頻進(jìn)行建模,LSTM將底層CNN的輸出連接起來(lái)作為下一時(shí)刻的輸入,在UCF101數(shù)據(jù)庫(kù)上獲得了82.6% 的識(shí)別率。主要貢獻(xiàn):
      1. 提出采用CNN來(lái)得到視頻級(jí)的全局描述,并且證明增大幀數(shù)能夠顯著提高分類(lèi)性能。
      2. 通過(guò)在時(shí)序上共享參數(shù),參數(shù)的數(shù)量在特征聚合和LSTM架構(gòu)中都作為視頻長(zhǎng)度的函數(shù)保持不變。
      3. 證明了光流圖像能夠提升分類(lèi)性能并用實(shí)驗(yàn)結(jié)果說(shuō)明即使在光流圖像本身存在大量噪聲的情況下(如在Sports-1M數(shù)據(jù)集中),與LSTM結(jié)合后仍然對(duì)分類(lèi)有很大幫助
    • Long-term recurrent convolutional networks for visual recognition and description
      提出了長(zhǎng)時(shí)遞歸卷積神經(jīng)網(wǎng)絡(luò)(Long-term recurrent convolutional network,LRCN),這個(gè)網(wǎng)絡(luò)將CNN和LSTM結(jié)合在一起對(duì)視頻數(shù)據(jù)進(jìn)行特征提取,單幀的圖像信息通過(guò)CNN獲取特征,然后將CNN的輸出按時(shí)間順序通過(guò)LSTM,這樣最終將視頻數(shù)據(jù)在空間和時(shí)間維度上進(jìn)行特征表征,在UCF101數(shù)據(jù)庫(kù)上得到了82.92% 的平均識(shí)別率。
      該模型將卷積神經(jīng)網(wǎng)絡(luò)和LSTM相結(jié)合,輸入可以是一個(gè)單獨(dú)的圖片或者是一個(gè)視頻的一幀,將該輸入進(jìn)行死絕特征提取,可以得到一個(gè)用來(lái)表示數(shù)據(jù)特征的定長(zhǎng)向量,然后將其輸入到LSTM中學(xué)習(xí)到其中時(shí)間相關(guān)的信息,最后做出預(yù)測(cè)。
      該模型的特點(diǎn)是可以根據(jù)不同的輸入實(shí)現(xiàn)不同的的任務(wù):
      • 動(dòng)作識(shí)別:序列輸入,固定輸出
      • 圖片描述:固定輸入,序列輸出
      • 視頻描述:輸入和輸入均是序列
    • NTU RGB+D: A Large Scale Dataset for 3D Human Activity Analysis
      提出一種稱(chēng)為Part-Aware LSTM的模型,該模型主要是在針對(duì)使用Kinect采集的骨骼數(shù)據(jù)進(jìn)行人體的姿態(tài)識(shí)別。
      該模型在LSTM的基礎(chǔ)上,允許有多個(gè)i、g和f門(mén),但是只有一個(gè)o門(mén),主要是將下圖所示的25個(gè)人體骨骼根據(jù)動(dòng)作的相關(guān)性分成5個(gè)組:軀干、雙手和雙腿。讓這個(gè)5個(gè)組分別通過(guò)自己的i、g和f門(mén),但是卻共享一個(gè)o門(mén),即每一個(gè)時(shí)間序列上,豆?jié){這5個(gè)組各自的狀態(tài)存在細(xì)胞狀態(tài)中,這樣不僅可以得到人體關(guān)節(jié)在時(shí)間序列上的關(guān)聯(lián),也可以通過(guò)分組更好獲取人體運(yùn)動(dòng)的特征。

HMM Adaptation for Improving a Human Activity Recognition System
使用HMM,優(yōu)化HAR問(wèn)題

IJCAI 2018 | ??低昈ral論文:分層式共現(xiàn)網(wǎng)絡(luò),實(shí)現(xiàn)更好的動(dòng)作識(shí)別和檢測(cè)
官方論文:Co-occurrence Feature Learning from Skeleton Data for Action Recognition and Detection with Hierarchical Aggregation
動(dòng)作識(shí)別和檢測(cè)正得到計(jì)算機(jī)視覺(jué)領(lǐng)域越來(lái)越多的關(guān)注。近日,??低曉?arXiv 發(fā)布了在這方面的一項(xiàng)實(shí)現(xiàn)了新的最佳表現(xiàn)的研究成果,該論文也是 IJCAI 2018 Oral 論文。
本論文關(guān)注的是基于骨架的人體動(dòng)作識(shí)別和檢測(cè)問(wèn)題(圖 1)。骨架的相互作用和組合在描述動(dòng)作特征上共同發(fā)揮了關(guān)鍵性作用。有很多早期研究都曾試圖根據(jù)骨架序列來(lái)設(shè)計(jì)和提取共現(xiàn)特征(co-occurrence feature),比如每個(gè)關(guān)節(jié)的配對(duì)的相對(duì)位置 [Wang et al., 2014]、配對(duì)關(guān)節(jié)的空間方向 [Jin and Choi, 2012]、Cov3DJ [Hussein et al., 2013] 和 HOJ3D [Xia et al., 2012] 等基于統(tǒng)計(jì)的特征。另一方面,帶有長(zhǎng)短期記憶(LSTM)神經(jīng)元的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)也常被用于建模骨架的時(shí)間序列 [Shahroudy et al., 2016; Song et al., 2017; Liu et al., 2016]。盡管 LSTM 網(wǎng)絡(luò)就是為建模長(zhǎng)期的時(shí)間依賴(lài)關(guān)系而設(shè)計(jì)的,但由于時(shí)間建模是在原始輸入空間上完成的,所以它們難以直接從骨架上學(xué)習(xí)到高層面的特征 [Sainath et al., 2015]。而全連接層則有能力聚合所有輸入神經(jīng)元的全局信息,進(jìn)而可以學(xué)習(xí)到共現(xiàn)特征。[Zhu et al., 2016] 提出了一種端到端的全連接深度 LSTM 網(wǎng)絡(luò)來(lái)根據(jù)骨架數(shù)據(jù)學(xué)習(xí)共現(xiàn)特征。

Deep Progressive Reinforcement Learning for Skeleton-based Action Recognition, CVPR2018 
來(lái)自清華的增強(qiáng)學(xué)習(xí)
這篇文章開(kāi)篇就指出,我們的模型是要從人體動(dòng)作的序列中選取出最informative的那些幀,而丟棄掉用處不大的部分。但是由于對(duì)于不同的視頻序列,挑出最有代表性的幀的方法是不同的,因此,本文提出用深度增強(qiáng)學(xué)習(xí)來(lái)將幀的選擇模擬為一個(gè)不斷進(jìn)步的progressive process。

這篇文章處理的問(wèn)題是skeleton based action recognition
可以看出整個(gè)模型大體分為兩個(gè)部分,F(xiàn)DNet和GCNN。其中FDNet指的是frame distillation network,幀蒸餾網(wǎng)絡(luò),形象的將選取最有用的幀的過(guò)程用蒸餾來(lái)形容。FDNet得到有用的幀之后就要輸入到GCNN,也就是graph convolutional neural network里面進(jìn)行g(shù)raph convolution,完成動(dòng)作識(shí)別。

強(qiáng)化學(xué)習(xí)是通過(guò)優(yōu)化選擇actions的policy來(lái)最大化agent從environment所獲得的rewards。文章中說(shuō)至今為止,在動(dòng)作識(shí)別領(lǐng)域,增強(qiáng)學(xué)習(xí)的應(yīng)用還不多。

...
最后作者講了如何將FDNet和GCNN結(jié)合起來(lái),首先,從graph的序列中均勻的選出一些frames,用它們來(lái)訓(xùn)練GCNN,之后將GCNN的參數(shù)固定,再來(lái)訓(xùn)練FDNet,而訓(xùn)練過(guò)的FDNet又能夠精細(xì)調(diào)節(jié)GCNN, 就這樣兩者互幫互助。

A New Representation of Skeleton Sequences for 3D Action Recognition CVPR2017
骨架動(dòng)作識(shí)別, 參考博客,本文的主要思想是將3d骨架坐標(biāo)轉(zhuǎn)換成圖片,然后再用卷積網(wǎng)絡(luò)提取特征,時(shí)域上的特征通過(guò)特殊的卷積核來(lái)提取,以達(dá)到時(shí)序記憶的目的。

Investigation of Different Skeleton Features for CNN-based 3D Action Recognition 2017
3D骨架識(shí)別問(wèn)題。
將節(jié)點(diǎn)之間的距離變成圖片,將線(xiàn)和線(xiàn)之間的夾角變成圖片,再送入CNN網(wǎng)絡(luò)提取特征

基于深度學(xué)習(xí)的Action Recognition(行為識(shí)別)文檔整理
Action Recognition的研究方向(發(fā)論文的方向)分為三大類(lèi)。

  • Structure
    這里的結(jié)構(gòu)主要指網(wǎng)絡(luò)結(jié)構(gòu)。目前,主流的結(jié)構(gòu)都是基于 Two-Stream Convolutional Networks 和 C3D 發(fā)展而來(lái),所以這一塊內(nèi)容也主要討論這兩種結(jié)構(gòu)的各種演化中作為benchmark的一些結(jié)構(gòu)

    • Temporal Segment Networks: Towards Good Practices for Deep Action Recognition【ECCV2016】
      該論文繼承了雙流網(wǎng)絡(luò)的結(jié)構(gòu),但為了解決long-term的問(wèn)題,作者提出使用多個(gè)雙流網(wǎng)絡(luò),分別捕捉不同時(shí)序位置的short-term信息,然后進(jìn)行融合,得到最后結(jié)果。
    • Deep Local Video Feature for Action Recognition 【CVPR2017】
      TSN改進(jìn)版本之一。改進(jìn)的地方主要在于fusion部分,不同的片段的應(yīng)該有不同的權(quán)重,而這部分由網(wǎng)絡(luò)學(xué)習(xí)而得,最后由SVM分類(lèi)得到結(jié)果。
    • Temporal Relational Reasoning in Videos
      TSN改進(jìn)版本二。
      這篇是MIT周博磊大神的論文,作者是也是最近提出的數(shù)據(jù)集 Moments in time 的作者之一。
      該論文關(guān)注時(shí)序關(guān)系推理。對(duì)于哪些僅靠關(guān)鍵幀(單幀RGB圖像)無(wú)法辨別的動(dòng)作,如摔倒,其實(shí)可以通過(guò)時(shí)序推理進(jìn)行分類(lèi)。
      除了兩幀之間時(shí)序推理,還可以拓展到更多幀之間的時(shí)序推理。
      通過(guò)對(duì)不同長(zhǎng)度視頻幀的時(shí)序推理,最后進(jìn)行融合得到結(jié)果。
    • I3D-DeepMind
      即基于inception-V1模型,將2D卷積擴(kuò)展到3D卷積。
    • T3D
      該論文值得注意的,一方面是采用了3D densenet,區(qū)別于之前的inception和Resnet結(jié)構(gòu);另一方面,TTL層,即使用不同尺度的卷積(inception思想)來(lái)捕捉訊息。
    • P3D-MSRA
      改進(jìn)ResNet內(nèi)部連接中的卷積形式。然后,超深網(wǎng)絡(luò),一般人顯然只能空有想法,望而卻步。
    • Temporal Pyramid Pooling:End-to-end Video-level Representation Learning for Action Recognition
      Pooling。時(shí)空上都進(jìn)行這種pooling操作,旨在捕捉不同長(zhǎng)度的訊息。
    • TLE: Deep Temporal Linear Encoding Networks
      TLE這篇文章認(rèn)為,在一段視頻中,連續(xù)幀之間的移動(dòng)通常很微小,然后參考到IDT算法中對(duì)特征點(diǎn)密集采樣并且使用光流來(lái)跟蹤它們能夠得到比較好的video representation,因此提出需要有一個(gè)對(duì)所有的幀進(jìn)行綜合編碼而得到的video representation,從而才能夠捕捉到長(zhǎng)時(shí)間的動(dòng)態(tài)過(guò)程。
      也就是說(shuō),TLE首先對(duì)一段視頻,切割成K段,然后對(duì)每一段,讓它通過(guò)一個(gè)CNN提取到CNN features,當(dāng)然這K個(gè)CNN是權(quán)值共享的,然后對(duì)這K段的CNN features,首先用一個(gè)融合操作把它們糅合成一個(gè)features,然后對(duì)這融合后的features進(jìn)行編碼從而得到最終的video representation。
      該模型建立TSN基礎(chǔ)上,在輸入的特征圖上進(jìn)行時(shí)序推理。增加三層全連接層學(xué)習(xí)不同長(zhǎng)度視頻幀的權(quán)重,及上圖中的函數(shù)g和h。
  • Inputs
    輸入一方面指輸入的數(shù)據(jù)類(lèi)型和格式,也包括數(shù)據(jù)增強(qiáng)的相關(guān)操作。
    雙流網(wǎng)絡(luò)中,空間網(wǎng)絡(luò)通道的輸入格式通常為單RGB圖像或者是多幀RGB堆疊。而空間網(wǎng)絡(luò)一般是直接對(duì)ImageNet上經(jīng)典的網(wǎng)絡(luò)進(jìn)行finetune。雖然近年來(lái)對(duì)motion信息的關(guān)注逐漸上升,指責(zé)行為識(shí)別過(guò)度依賴(lài)背景和外貌特征,而缺少對(duì)運(yùn)動(dòng)本身的建模,但是,事實(shí)上,運(yùn)動(dòng)既不是名詞,也不應(yīng)該是動(dòng)詞,而應(yīng)該是動(dòng)詞+名詞的形式,例如:play+basketball,也可以是play+football。所以,個(gè)人認(rèn)為,雖然應(yīng)該加大的時(shí)間信息的關(guān)注,但不可否認(rèn)空間特征的重要作用。
    空間網(wǎng)絡(luò)主要捕捉視頻幀中重要的物體特征。目前大部分公開(kāi)數(shù)據(jù)集其實(shí)可以?xún)H僅依賴(lài)單圖像幀就可以完成對(duì)視頻的分類(lèi),而且往往不需要分割,那么,在這種情況下,空間網(wǎng)絡(luò)的輸入就存在著很大的冗余,并且可能引入額外的噪聲。

    • A Key Volume Mining Deep Framework for Action Recognition 【CVPR2016】
      雖然上面的方法可以集成到一個(gè)網(wǎng)絡(luò)中訓(xùn)練,但是思路是按照?qǐng)D像分類(lèi)算法RCNN中需要分步先提出候選框,挑選出關(guān)鍵幀。既然挑選前需要輸入整個(gè)視頻,可不可以省略挑選這個(gè)步驟,直接在卷積/池化操作時(shí),重點(diǎn)關(guān)注那些關(guān)鍵幀,而忽視那些冗余幀呢?去年就有人提出這樣的解決方法。

    • AdaScan: Adaptive Scan Pooling in Deep Convolutional Neural Networks for Human Action Recognition in Videos 【CVPR2017】
      注:AdaScan的效果一般,關(guān)鍵幀的質(zhì)量比上面的Key Volume Mining效果要差一點(diǎn)。不過(guò)模型整體比較簡(jiǎn)單。
      輸入方面,空間網(wǎng)絡(luò)目前主要集中在關(guān)鍵幀的研究上。而對(duì)于temporal通道而言,則是更多人的關(guān)注焦點(diǎn)。首先,光流的提取需要消耗大量的計(jì)算力和時(shí)間(有論文中提到幾乎占據(jù)整個(gè)訓(xùn)練時(shí)間的90%);其次,光流包含的未必是最優(yōu)的的運(yùn)動(dòng)特征。

    • Hidden Two-Stream Convolutional Networks for Action Recognition
      該論文主要參考了flownet,即使用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)生成光流圖,然后作為temporal網(wǎng)絡(luò)的輸入。該方法提升了光流的質(zhì)量,而且模型大小也比f(wàn)lownet小很多。有論文證明,光流質(zhì)量的提高,尤其是對(duì)于邊緣微小運(yùn)動(dòng)光流的提升,對(duì)分類(lèi)有關(guān)鍵作用。
      另一方面,該論文中也比較了其余的輸入格式,如RGB diff。但效果沒(méi)有光流好。

  • Connection
    這里連接主要是指雙流網(wǎng)絡(luò)中時(shí)空信息的交互。一種是單個(gè)網(wǎng)絡(luò)內(nèi)部各層之間的交互,如ResNet/Inception;一種是雙流網(wǎng)絡(luò)之間的交互,包括不同fusion方式的探索,目前值得考慮的是參照ResNet的結(jié)構(gòu),連接雙流網(wǎng)絡(luò)。
    這里主要討論雙流的交互。
    • Spatiotemporal Multiplier Networks for Video Action Recognition【CVPR2017】
      網(wǎng)絡(luò)的結(jié)構(gòu)如上圖。空間和時(shí)序網(wǎng)絡(luò)的主體都是ResNet,增加了從Motion Stream到Spatial Stream的交互。論文還探索多種方式。
    • Spatiotemporal Pyramid Network for Video Action Recognition 【CVPR2017】
      論文作者認(rèn)為,行為識(shí)別的關(guān)鍵就在于如何很好的融合空間和時(shí)序上的特征。作者發(fā)現(xiàn),傳統(tǒng)雙流網(wǎng)絡(luò)雖然在最后有fusion的過(guò)程,但訓(xùn)練中確實(shí)單獨(dú)訓(xùn)練的,最終結(jié)果的失誤預(yù)測(cè)往往僅來(lái)源于某一網(wǎng)絡(luò),并且空間/時(shí)序網(wǎng)絡(luò)各有所長(zhǎng)。論文分析了錯(cuò)誤分類(lèi)的原因:空間網(wǎng)絡(luò)在視頻背景相似度高的時(shí)候容易失誤,時(shí)序網(wǎng)絡(luò)在long-term行為中因?yàn)閟nippets length的長(zhǎng)度限制容易失誤。那么能否通過(guò)交互,實(shí)現(xiàn)兩個(gè)網(wǎng)絡(luò)的互補(bǔ)呢?
      該論文重點(diǎn)在于STCB模塊,詳情請(qǐng)參閱論文。交互方面,在保留空間、時(shí)序流的同時(shí),對(duì)時(shí)空信息進(jìn)行了一次融合,最后三路融合,得出最后結(jié)果。
    • Attentional pooling for action recognition 【NIPS2017】
    • ActionVLAD for video action classification 【CVPR2017】
      這兩篇論文從pooling的層面提高了雙流的交互能力,這兩篇筆者還在看,有興趣的讀者請(qǐng)自行參閱論文。后期會(huì)附上論文的解讀。
    • Deep Convolutional Neural Networks with Merge-and-Run Mappings
      這篇論文也是基于ResNet的結(jié)構(gòu)探索新的雙流連接方式。

TURN TAP: Temporal Unit Regression Network for Temporal Action Proposals
有一篇該論文的讀書(shū)筆記:Model for Video Understanding
模型結(jié)果不復(fù)雜,最大亮點(diǎn)是:Unit-level Regression。模型結(jié)構(gòu)見(jiàn)下圖,雖然我覺(jué)得看圖并不直觀。
前的工作集中在frame-level上,即直接回歸得到邊界的屬性,例如直接得到起/終點(diǎn)的frame index,不過(guò)主流的普遍是center frame以及l(fā)ength。本文提供了一種新的思路,relax回歸的精度,在unit-level上回歸,結(jié)果發(fā)現(xiàn),unit-level上不僅更容易訓(xùn)練,效果也更好。Unit-level其實(shí)也很簡(jiǎn)單,就是連續(xù)幀,本文里Unit length設(shè)置為{16,32}。

Cascaded Boundary Regression for Temporal Action Detection
有一篇該論文的讀書(shū)筆記:Model for Video Understanding
這篇文章主要是前一篇文章的改進(jìn),思路很簡(jiǎn)單,既然回歸網(wǎng)絡(luò)可以修正邊界,那么級(jí)聯(lián)的回歸網(wǎng)絡(luò)應(yīng)該會(huì)有更好的效果,即進(jìn)行多次回歸修正。
模型的主要結(jié)構(gòu)還是兩部分,action proposal和action classification。在每一個(gè)部分中,增加級(jí)聯(lián)邊界回歸網(wǎng)絡(luò)。

3. 人體動(dòng)作識(shí)別 (HAR) - 基于傳感器

3.1 移動(dòng)端傳感器信息

CoreMotion (加速儀與陀螺儀)
CoreMotion (加速儀與陀螺儀),加速儀可以檢測(cè)三維空間中的加速度 ,坐標(biāo)對(duì)應(yīng)如下
deviceMotion
包含下面四種數(shù)據(jù):

  • attitude(類(lèi)型:CMAttitude)
    • 返回設(shè)備的方位信息,包含roll 、pitch、yaw三個(gè)歐拉角的值
    • roll: 設(shè)備繞 Z 軸轉(zhuǎn)過(guò)的角度
    • pitch: 設(shè)備繞 X 軸轉(zhuǎn)過(guò)的角度
    • yaw: 設(shè)備繞 Y 軸轉(zhuǎn)過(guò)的角度
  • rotationRate(類(lèi)型:CMRotationRate)
    • 經(jīng)過(guò)濾波操作之后的陀螺儀數(shù)據(jù),即 靜止時(shí),三個(gè)方向的轉(zhuǎn)動(dòng)速度接近于0;
  • gravity(類(lèi)型:CMAcceleration)
    • 返回重力對(duì)設(shè)備在三個(gè)方向上的加速度
    • 即重力加速度矢量在當(dāng)前設(shè)備的參考坐標(biāo)系中的表達(dá),開(kāi)發(fā)中不再需要通過(guò)濾波來(lái)提取這個(gè)信息
  • userAcceleration(類(lèi)型:CMAcceleration)
    • 返回用戶(hù)對(duì)設(shè)備在三個(gè)方向上的加速度
    • 不再需要濾波,但根據(jù)程序需求而加的濾波算法可以保留
  • magneticField:該屬性返回校準(zhǔn)后的磁場(chǎng)信息
    • 該屬性值是一個(gè)CMCalibr atedMagneticField結(jié)構(gòu)體變量
    • CMCalibratedMagneticField類(lèi)型的變量包括field和accuracy兩個(gè)字段
    • 其中field代表X、Y、Z、軸上的磁場(chǎng)強(qiáng)度,accuracy則代表磁場(chǎng)強(qiáng)度的精度;

CoreMotion框架(一)—— 基礎(chǔ)理論
CoreMotion框架, iOS參數(shù)介紹
iOS中的一個(gè)核心運(yùn)動(dòng)框架CoreMotion.framework。這個(gè)框架,主要是為了訪(fǎng)問(wèn)加速度計(jì)和陀螺儀的相關(guān)數(shù)據(jù)。 它不僅僅提供給你獲得實(shí)時(shí)的加速度值和旋轉(zhuǎn)速度值,更重要的是,蘋(píng)果在其中集成了很多算法,可以直接給你輸出把重力加速度分量剝離的加速度,省去你的高通濾波操作,以及提供給你一個(gè)專(zhuān)門(mén)的設(shè)備的三維位置信息。

cocoachina:詳說(shuō)CMDeviceMotion
基礎(chǔ)的接口API介紹,算是比較全面,但是深度一般

3.2 行為序列的特征提取

行為識(shí)別(時(shí)間序列)特征提取代碼
語(yǔ)言: matlab + C語(yǔ)言
多種傳感器可以用于行為識(shí)別,如最常用的加速度計(jì)、陀螺儀、藍(lán)牙與WiFi等。針對(duì)藍(lán)牙與WiFi的特征提取,要根據(jù)具體的問(wèn)題情況來(lái)進(jìn)行。通常來(lái)說(shuō),加速度和陀螺儀的數(shù)據(jù)是最常用的。因此,我們就以這兩種信號(hào)為例,提供針對(duì)它們的特征提取代碼。

加速度和陀螺儀都是典型的時(shí)間序列信號(hào),在行為識(shí)別中,通常我們都會(huì)提取一些統(tǒng)計(jì)信息(又稱(chēng)為時(shí)域)和頻率信息(又稱(chēng)為頻域)。兩部分合起來(lái),就可以用于行為識(shí)別了。從經(jīng)驗(yàn)出發(fā),能夠識(shí)別人體常見(jiàn)的大多數(shù)運(yùn)動(dòng)行為。

也可以用本代碼進(jìn)行一些時(shí)間序列的特征提取,用法是一樣的

關(guān)于時(shí)域和頻域具體特征的計(jì)算方法請(qǐng)見(jiàn)在知乎的這個(gè)回答:https://www.zhihu.com/question/41068341/answer/89926233

行為識(shí)別常用的特征提取方法
提取加速度:

  • 滑動(dòng)窗口
    窗口大小,滑動(dòng)步長(zhǎng)
  • 合成加速度
    常規(guī)采集的都是三個(gè)方向的加速度,在處理過(guò)程中,會(huì)用到三軸加速度合成一個(gè)加速度(為了減少計(jì)算性)
  • 時(shí)域特征
    均值,標(biāo)準(zhǔn)差,眾數(shù),MAX/MIN, Range,相關(guān)系數(shù),信號(hào)幅值面積SMA
  • 頻域特征
    直流分量,幅度,功率譜密度PSD

3.3 卡爾曼濾波(Kalman Filter)

官方論文:A New Approach to Linear Filtering and Prediction Problems
卡爾曼全名Rudolf Emil Kalman,匈牙利數(shù)學(xué)家,1930年出生于匈牙利首都布達(dá)佩斯。1953,1954年于麻省理工學(xué)院分別獲得電機(jī)工程學(xué)士及碩士學(xué)位。1957年于哥倫比亞大學(xué)獲得博士學(xué)位。
我們現(xiàn)在要學(xué)習(xí)的卡爾曼濾波器,正是源于他的博士論文和1960年發(fā)表的論文《A New Approach to Linear Filtering and Prediction Problems》(線(xiàn)性濾波與預(yù)測(cè)問(wèn)題的新方法)

理解Kalman濾波的使用
Kalman濾波是一種線(xiàn)性濾波與預(yù)測(cè)方法,原文為:A New Approach to Linear Filtering and Prediction Problems。文章推導(dǎo)很復(fù)雜,看了一半就看不下去了,既然不能透徹理解其原理,但總可以通過(guò)實(shí)驗(yàn)來(lái)理解其具體的使用方法。
  Kalman濾波分為2個(gè)步驟,預(yù)測(cè)(predict)和校正(correct)。預(yù)測(cè)是基于上一時(shí)刻狀態(tài)估計(jì)當(dāng)前時(shí)刻狀態(tài),而校正則是綜合當(dāng)前時(shí)刻的估計(jì)狀態(tài)與觀測(cè)狀態(tài),估計(jì)出最優(yōu)的狀態(tài)。

function filter = Kalman(filter)
    %predict
    predict_x = filter.A * filter.x + filter.B * filter.u;
    filter.P = filter.A * filter.P * filter.A' + filter.Q;

    %correct
    filter.K = filter.P * filter.H' / (filter.H * filter.P * filter.H' + filter.R);
    filter.x = predict_x + filter.K * (filter.z - filter.H * predict_x);
    filter.P = filter.P - filter.K * filter.H * filter.P;
end

在matlab中,kalman濾波實(shí)際上就是上面那5個(gè)公式,而難點(diǎn)卻是在測(cè)試代碼中針對(duì)不同問(wèn)題各個(gè)變量的初始化上。

...

根據(jù)上面的實(shí)驗(yàn)結(jié)果,可以看出Kalman濾波應(yīng)用中的幾個(gè)問(wèn)題:

  1. 模型建立的正確性從根本上決定了濾波效果的正確性。
    上面使用物體靜止模型進(jìn)行濾波,結(jié)果完全不對(duì),而使用勻速運(yùn)動(dòng)模型則能達(dá)到較好的效果。從根本上講,上面的數(shù)據(jù)也不是勻速運(yùn)動(dòng)的,為何結(jié)果會(huì)基本正確?看看第一個(gè)使用靜止模型的濾波結(jié)果,雖然我們假定了物體是靜止的,但由于觀測(cè)數(shù)據(jù)的作用,kalman濾波結(jié)果也會(huì)有相應(yīng)的運(yùn)動(dòng)而不是完全靜止,也就是說(shuō)濾波器在不停地修正這個(gè)狀態(tài),而在勻速運(yùn)動(dòng)模型中,物體的速度我們認(rèn)為不變,但同樣地kalman濾波器也會(huì)不停地修正這個(gè)速度,濾波器中計(jì)算的速度實(shí)質(zhì)的偏離了真實(shí)速度的,因此最終也會(huì)有相應(yīng)的偏差,不過(guò)這個(gè)偏差在我們?nèi)菰S范圍內(nèi),也就可以大膽使用了。
    如果能確定物體是勻變速直線(xiàn)運(yùn)動(dòng),使用相應(yīng)帶加速度的模型會(huì)得到更準(zhǔn)確的效果。但是越嚴(yán)格的模型其適用范圍也相應(yīng)越小。
  2. 影響濾波結(jié)果平滑性的因素是cR/cQ
    影響濾波結(jié)果平滑性的因素是cR/cQ,這個(gè)值反映了我們對(duì)于預(yù)測(cè)和觀測(cè)值的信任程度;其值越大則越相信預(yù)測(cè)結(jié)果,濾波結(jié)果平滑性好;反之則越相信觀測(cè)結(jié)果,濾波結(jié)果越偏向于觀測(cè)值。一般我們使用kalman濾波器是為了能平滑數(shù)據(jù)的波動(dòng),因此應(yīng)盡量保證cR/cQ稍大,上面的測(cè)試結(jié)果該值在1e4以上數(shù)據(jù)較為平滑

我所理解的卡爾曼濾波,羅杰,簡(jiǎn)書(shū)

Polen: 非常透徹的講解, 偏教學(xué)引導(dǎo)性的講解,包括一些數(shù)學(xué)推到和matlab實(shí)現(xiàn)

卡爾曼濾波在我當(dāng)學(xué)生的時(shí)候就用過(guò),但是當(dāng)年我似乎就是套公式,沒(méi)有理解其精髓,加之時(shí)間久了有點(diǎn)模糊,突然需要指導(dǎo)學(xué)生使用,有了強(qiáng)烈的陌生感覺(jué),不得不逼自己再一次撿起。自己學(xué)會(huì)和教會(huì)別人是學(xué)習(xí)的兩個(gè)層次,為了自我提高,也為了更好得指導(dǎo)學(xué)生。于是,我又翻出自己當(dāng)年寫(xiě)的算法以及在網(wǎng)上找了些大神寫(xiě)的資料,進(jìn)行融會(huì)貫通,總結(jié)提煉,希望稍微有點(diǎn)大學(xué)概率論的人能夠看懂此文并熟練使用。

講解了隨機(jī)變量和概率,那么為啥要引入卡爾曼濾波呢??柭鼮V波適用于估計(jì)一個(gè)由隨機(jī)變量組成的動(dòng)態(tài)系統(tǒng)的最優(yōu)狀態(tài)。即便是觀測(cè)到的系統(tǒng)狀態(tài)參數(shù)含有噪聲,觀測(cè)值不準(zhǔn)確,卡爾曼濾波也能夠完成對(duì)狀態(tài)真實(shí)值的最優(yōu)估計(jì)。

kalman濾波(一)---對(duì)各參數(shù)的理解

這篇文章從編程的角度,定義了kalman濾波的各項(xiàng)參數(shù),并基于C實(shí)現(xiàn)了一個(gè)demo版本。

  1. 卡爾曼濾波中的真實(shí)值,測(cè)量值,預(yù)測(cè)值,估計(jì)值怎么區(qū)分?
  2. 卡爾曼濾波遞歸過(guò)程
  3. 卡爾曼濾波器的工作過(guò)程
    //標(biāo)量卡爾曼濾波
typedef struct {
    float x;  // 系統(tǒng)的狀態(tài)量
    float A;  // x(n)=A*x(n-1)+u(n),u(n)~N(0,q)
    float H;  // z(n)=H*x(n)+w(n),w(n)~N(0,r)
    float q;  // 預(yù)測(cè)過(guò)程噪聲協(xié)方差
    float r;  // 測(cè)量過(guò)程噪聲協(xié)方差
    float p;  // 估計(jì)誤差協(xié)方差
    float gain;//卡爾曼增益
}KalmanStructTypedef;

Discrete Kalman Optimal Estimator,2013
對(duì)應(yīng)的github: Kalman.scala

polen: 這是書(shū) <Scala For Mahine Learning> 的上的內(nèi)容,此章節(jié)是基于kalman 實(shí)現(xiàn)預(yù)測(cè)的scala 代碼,但是運(yùn)行有bug,跑不起來(lái)

This post is an introduction to the Kalman optimal filter using the Scala programming language as implementation. The Kalman filter is widely used in signal processing and statistical analysis to quantify or estimate noise created by a process and noise generated by measurement devices.

Kalman Filter at the age of big data: programming in Spark/Scala,2017
Scala實(shí)現(xiàn)Kalman濾波
在大數(shù)據(jù)時(shí)代如何通過(guò)kalman filter進(jìn)行星際導(dǎo)航. 先介紹了下kalmanfilter是什么,然后將在導(dǎo)航系統(tǒng)中根據(jù)觀察值和觀察狀態(tài)使用kalmanfilter。偏向于科普文為主,沒(méi)有太多數(shù)學(xué)推到,大部分假設(shè)以高斯分布為主。

Kalman-and-Bayesian-Filters-in-Python
卡爾曼貝葉斯濾波器的系統(tǒng)介紹,基于python notebook實(shí)現(xiàn)

Multidimensional Kalman Filter for a Constant Acceleration Model (CA)
基于卡爾曼濾波,計(jì)算乒乓球的運(yùn)動(dòng)軌跡,和波爾打乒乓

Effective Adaptive Kalman Filter for MEMS-IMU/Magnetometers Integrated Attitude and Heading Reference Systems
西工大的幾個(gè)學(xué)生寫(xiě)的基于卡爾曼濾波進(jìn)行姿態(tài)識(shí)別, 大部分以數(shù)學(xué)推到為主。

3.4 姿態(tài)識(shí)別/姿態(tài)解算

官方:Open source IMU and AHRS
開(kāi)源:AHRS的官方源碼(c,c#,matlab)

Pixhawk 源碼分析系列-姿態(tài)解算,創(chuàng)客制造
經(jīng)過(guò)近一段時(shí)間的研究,主要是關(guān)于多旋翼無(wú)人機(jī)姿態(tài)解算算法的研究,開(kāi)源PX4源代碼里面默認(rèn)使用的是基于mahony的互補(bǔ)濾波算法(explicit complement filter)進(jìn)行姿態(tài)解算的;還有一套備用姿態(tài)解算算法是基于kalman的EKF(extended kalman filter);然后呢,其實(shí)還有一套PX4源代碼中尚未涉及的基于madgwick的梯度下降算法(gradient descent)。

A Python implementation of Madgwick's IMU and AHRS algorithm
python實(shí)現(xiàn)的AHRS算法版本,主要是四元數(shù)的計(jì)算

Indirect Kalman Filter for 3D Attitude Estimation
純粹數(shù)學(xué)推導(dǎo)
Indirect Kalman Filter for 3D Attitude Estimation
Nikolas Trawny and Stergios I. Roumeliotis Department of Computer Science & Engineering University of Minnesota
Multiple Autonomous Robotic Systems Laboratory, TR-2005-002
March 2005

Python Attitude Heading and Reference System,2014-07-23
一個(gè)python的ahrs的源代碼,沒(méi)仔細(xì)看,感覺(jué)啥都有一點(diǎn)

IMU Data Fusing: Complementary, Kalman, and Mahony Filter
姿態(tài)識(shí)別常用的幾種方法對(duì)比
在IMU數(shù)據(jù)融合來(lái)得到準(zhǔn)確姿態(tài)方面的工作已經(jīng)有很多大牛研究過(guò),主要有:Colton,Bizard,Starlino,Lauszus,Mahony,Madgwick。他們的研究成果已經(jīng)成為了標(biāo)準(zhǔn)的參考。這么多的算法中有相似也有不同之處,容易給人造成混亂。這里就以6軸傳感器的IMU來(lái)討論他們之間的區(qū)別和相似。
這里討論三個(gè)最基本的濾波器方法,互補(bǔ)濾波器,卡爾曼濾波器(線(xiàn)性的),Mahony&Madgwick 濾波器。分為五塊部分來(lái)敘述,第一部分是關(guān)于基本的知識(shí),第二部分是關(guān)于1維IMU數(shù)據(jù)融合(1階,沒(méi)有估計(jì)陀螺儀誤差);第三部分是關(guān)于1維IMU數(shù)據(jù)融合(2階,帶有陀螺儀誤差估計(jì));第四部分帶有Mahony濾波器的3維IMU數(shù)據(jù)融合;第五部分是關(guān)于3維濾波器的展望。最后附帶一些算法的實(shí)現(xiàn)步驟。

3.5 傳感器 + 機(jī)器學(xué)習(xí)

3.5.1 移動(dòng)端 + 機(jī)器學(xué)習(xí)

用智能手機(jī)做行為識(shí)別文章總結(jié)
列舉了13年到15年用手機(jī)做行為識(shí)別相關(guān)的論文

Motion Gesture Detection Using Tensorflow on Android
基于android的傳感器+tensorflow神經(jīng)網(wǎng)絡(luò),識(shí)別用戶(hù)是左滑還是右滑動(dòng)作
這里有中文翻譯版本,其對(duì)應(yīng)android的代碼, 其中tensorflow訓(xùn)練的jupyter notebook

對(duì)于我們的目標(biāo),我們可以將其描述為希望手機(jī)能夠識(shí)別左右的快速動(dòng)作。
我們希望能夠在一個(gè)單獨(dú)的Android庫(kù)中完成這一實(shí)現(xiàn),以便它能夠容易地集成到任何其他應(yīng)用程序中。
這些動(dòng)作可以通過(guò)手機(jī)上的幾個(gè)傳感器進(jìn)行捕獲:加速度計(jì)、陀螺儀、磁力計(jì)等等。隨后,這些批量動(dòng)作可以用于機(jī)器學(xué)習(xí)算法,以便進(jìn)行訓(xùn)練和后續(xù)識(shí)別。
為了捕捉數(shù)據(jù),我們將開(kāi)發(fā)一個(gè)Android應(yīng)用程序。預(yù)處理和訓(xùn)練過(guò)程將在Jupyter Notebook環(huán)境的PC上使用Python和TensorFlow庫(kù)執(zhí)行。手勢(shì)識(shí)別將在一個(gè)Android應(yīng)用程序演示中執(zhí)行,并生成訓(xùn)練數(shù)據(jù)。最后,我們將開(kāi)發(fā)一個(gè)即時(shí)可用的Android庫(kù),用于手勢(shì)識(shí)別,而且可以很容易地集成到其他應(yīng)用程序中
讀取的原始數(shù)據(jù)為:600.000000,2.464342,0.030081,-1.655362
對(duì)應(yīng): column_names = ['timestamp', 'x-axis', 'y-axis', 'z-axis']
監(jiān)督學(xué)習(xí)的標(biāo)簽:green/red (表明左滑或者右滑)

Machine-Learning powered Gesture Recognition on iOS
iOS上集成手勢(shì)識(shí)別的toolkit, 對(duì)應(yīng)源碼
作者實(shí)現(xiàn)了一個(gè)訓(xùn)練ViewController和一個(gè)預(yù)測(cè)ViewController。訓(xùn)練ViewController用于你做指定的動(dòng)作,來(lái)添加訓(xùn)練數(shù)據(jù)。具體的算法是用C++寫(xiě)的隨機(jī)森林的一個(gè)分類(lèi)器。相對(duì)比較簡(jiǎn)單,準(zhǔn)確性姑且不論,至少這一套完整做下來(lái),后續(xù)有其他類(lèi)似項(xiàng)目,可以作為啟動(dòng)的demo參考。

基于DeepConvLSTM的傳感器信號(hào)分類(lèi),美圖,2018
源碼: Github
數(shù)據(jù)集:UCI: Human Activity Recognition Using Smartphones Data Set
本文主要根據(jù)手機(jī)的傳感器數(shù)據(jù),訓(xùn)練深度學(xué)習(xí)模型,用于預(yù)測(cè)用戶(hù)的運(yùn)動(dòng)模式,如行走、上樓梯、下樓梯、坐、站立、躺下等六種動(dòng)作.
模型是基于深度學(xué)習(xí)的DeepConvLSTM算法,算法融合了卷積(Convolution)和LSTM操作,既可以學(xué)習(xí)樣本的空間屬性,也可以學(xué)習(xí)時(shí)間屬性。在卷積操作中,通過(guò)將信號(hào)與卷積核相乘,過(guò)濾波形信號(hào),保留高層信息。在LSTM操作中,通過(guò)記憶或遺忘前序信息,發(fā)現(xiàn)信號(hào)之間的時(shí)序關(guān)系。
, 代碼基于keras實(shí)現(xiàn)
最終效果,在測(cè)試集中,準(zhǔn)確率約為95%左右:

loss: 0.0131 - acc: 0.9962 - val_loss: 0.1332 - val_acc: 0.9535
val_f1:  0.953794 — val_precision:  0.958533 — val_recall  0.949101

Deep, Convolutional, and Recurrent Models for Human Activity Recognition Using Wearables 好不容易找到一個(gè)有github鏈接的,
分別對(duì)DNN,CNN,RNN實(shí)現(xiàn)一波人體姿態(tài)識(shí)別,然后對(duì)比實(shí)驗(yàn)看結(jié)果。從結(jié)果來(lái)看,CNN和LSTM的效果更好一些。
代碼上是基于Lua寫(xiě)的,實(shí)現(xiàn)方式是基于CNN/DNN/RNN都有實(shí)現(xiàn),但是可以調(diào)試/測(cè)試的只有RNN。不過(guò)既然代碼都不能調(diào)試,其論文的可驗(yàn)證性打個(gè)問(wèn)號(hào)吧。

3.5.2 傳感器 + 機(jī)器學(xué)習(xí)

知乎:近幾年國(guó)際會(huì)議關(guān)于傳感器行為識(shí)別的文章整理
匯總了11年到15年各大平臺(tái)的行為識(shí)別的論文,主要以手機(jī)或者傳感器為原始數(shù)據(jù)。列舉的很詳細(xì),匯總了幾十篇論文。

深度學(xué)習(xí)用于行為識(shí)別文章總結(jié) (Deep learning for activity recognition)
深度學(xué)習(xí)用于行為識(shí)別代碼 (Deep learning codes)
傳感器識(shí)別 + 深度學(xué)習(xí)

遷移學(xué)習(xí)用于行為識(shí)別 (Transfer learning for activity recognition)
傳感器識(shí)別 + 遷移學(xué)習(xí)

與位置相關(guān)的傳感器行為識(shí)別文章
傳感器在身體的不同位置 + 機(jī)器學(xué)習(xí)

基于加速度傳感器的連續(xù)動(dòng)態(tài)手勢(shì)識(shí)別,陳鵬展 羅漫 李杰 華東交通大學(xué)電氣與電子工程學(xué)院 南昌
摘要:針對(duì)個(gè)體手勢(shì)動(dòng)作信號(hào)的差異性和不穩(wěn)定性,提出了一種基于加速度傳感器的連續(xù)動(dòng)態(tài)手勢(shì)識(shí) 別方法。通過(guò) MEMS 加速度傳感器采集手勢(shì)動(dòng)作信號(hào),并結(jié)合手勢(shì)信號(hào)的動(dòng)作特征,對(duì)單個(gè)手勢(shì)的有效 數(shù)據(jù)進(jìn)行自動(dòng)定位截取,經(jīng)預(yù)處理和特征提取后,構(gòu)建隱馬爾可夫模型( HMM) 以實(shí)現(xiàn)對(duì)特定手勢(shì)的實(shí)時(shí) 識(shí)別。通過(guò)設(shè)計(jì)實(shí)現(xiàn)了一種可穿戴手勢(shì)信號(hào)采集硬件原型系統(tǒng),對(duì) 10 類(lèi)手勢(shì)的 1000 個(gè)手勢(shì)數(shù)據(jù)進(jìn)行識(shí) 別對(duì)比實(shí)驗(yàn),統(tǒng)計(jì)結(jié)果表明: 該方法可以對(duì)連續(xù)手勢(shì)進(jìn)行實(shí)時(shí)有效的識(shí)別。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容