資料介紹
結(jié)構(gòu)概述

這里的組件:
- 一個(gè)簡(jiǎn)單的 Web 應(yīng)用程序,它使用 Generic Sensor API 提供的線性加速度計(jì)檢測(cè)人的運(yùn)動(dòng);
- 谷歌云平臺(tái),提供:Cloud IoT core、Cloud Pub/Sub 、Firebase Cloud Functions、Firestore數(shù)據(jù)庫(kù);
- 簡(jiǎn)單的 REST Web 儀表板;
如圖所示,即使 HAR 模型可以在手機(jī)上或云端(firebase 功能),兩種情況下的主要結(jié)構(gòu)都保持不變。
顯然有更簡(jiǎn)單的結(jié)構(gòu)來(lái)實(shí)現(xiàn)服務(wù),但是通過(guò)這種方式,我可以在之前開發(fā)的組件之上構(gòu)建,并嘗試不同的技術(shù)。
注意:我的 G ithub上提供的代碼用于我的個(gè)人 google 帳戶上的憑據(jù)。我沒有上傳密鑰,如果你想運(yùn)行它,你需要自己設(shè)置。
移動(dòng)人群感應(yīng)
人群感知是一種技術(shù),其中一大群擁有能夠感知和計(jì)算的移動(dòng)設(shè)備(如智能手機(jī)、平板電腦、可穿戴設(shè)備)的個(gè)人集體共享數(shù)據(jù)并提取信息以測(cè)量、映射、分析、估計(jì)或推斷(預(yù)測(cè))任何過(guò)程共同利益。簡(jiǎn)而言之,這意味著從移動(dòng)設(shè)備眾包傳感器數(shù)據(jù)。

移動(dòng)眾測(cè)潛力受到能量、帶寬和計(jì)算能力等約束的限制。此外,在這種情況下,隱私成為一個(gè)重要問題。這里有一些可能的(部分)解決方案:
- 匿名化,在將數(shù)據(jù)發(fā)送給第三方之前從數(shù)據(jù)中刪除識(shí)別信息。但是,此方法不會(huì)阻止根據(jù)數(shù)據(jù)中保留的詳細(xì)信息進(jìn)行推斷。
- 安全的多方計(jì)算,使用加密技術(shù)轉(zhuǎn)換數(shù)據(jù)。這種方法不可擴(kuò)展,需要生成和維護(hù)多個(gè)密鑰,這反過(guò)來(lái)需要更多的能量。
- 數(shù)據(jù)擾動(dòng),在與社區(qū)共享之前向傳感器數(shù)據(jù)添加噪聲。可以在不影響數(shù)據(jù)準(zhǔn)確性的情況下將噪聲添加到數(shù)據(jù)中。
通用傳感器 API
通用傳感器 API是一組將傳感器設(shè)備暴露給 Web 平臺(tái)的接口。API 由基本的 Sensor 接口和在其上構(gòu)建的一組具體的傳感器類組成,例如Accelerometer、LinearAccelerationSensor、Gyroscope、AbsoluteOrientationSensor和RelativeOrientationSensor。

通用傳感器 API 的目標(biāo)是促進(jìn)傳感器 API 之間的一致性,通過(guò)高性能的低級(jí) API 實(shí)現(xiàn)高級(jí)用例,并通過(guò)簡(jiǎn)化規(guī)范和實(shí)施過(guò)程來(lái)加快新傳感器向網(wǎng)絡(luò)公開的速度。
該項(xiàng)目實(shí)現(xiàn)了 LinearAccelerationSensor 接口,在每次讀數(shù)時(shí)提供沿所有三個(gè)軸應(yīng)用于設(shè)備的加速度,但沒有重力的影響(如加速度計(jì))。

哈爾模型
人類活動(dòng)識(shí)別 (HAR) 旨在通過(guò)對(duì)他/她自己和周圍環(huán)境的一組觀察來(lái)識(shí)別一個(gè)人所執(zhí)行的動(dòng)作。在網(wǎng)絡(luò)上,可以找到許多提到這個(gè)問題的出版物,甚至使用機(jī)器學(xué)習(xí)模型。但是,該分配所需的實(shí)現(xiàn)并不要求很高的準(zhǔn)確性,而響應(yīng)時(shí)間和簡(jiǎn)單性具有更高的優(yōu)先級(jí)。因此,我在這個(gè)項(xiàng)目中使用的模型,取向量 [x, y, z] 的長(zhǎng)度,并將結(jié)果向量計(jì)算為 sqrt(x*x+y*y+z*z),然后決定是否根據(jù)給定的閾值,人是靜止還是行走。
model = Math.sqrt(x*x + y*y + z*z);
if (model > 0.6) {
walking = 1
$('#status').html('walking');
} else {
walking = 0
$('#status').html('Still');
}
網(wǎng)絡(luò)應(yīng)用程序
它由一個(gè)簡(jiǎn)單的 node.js 應(yīng)用程序?qū)崿F(xiàn),在前端擁有所有邏輯,并使用后端作為網(wǎng)關(guān)(將遙測(cè)數(shù)據(jù)轉(zhuǎn)發(fā)到 Google Cloud IoT Core)。
大部分后端代碼與第一次作業(yè)中實(shí)現(xiàn)的虛擬設(shè)備非常相似,加上快遞作業(yè)提供的一些必要組件(使部署更容易)。但是,在這種情況下,發(fā)布原語(yǔ)由socket.io消息觸發(fā),而不是由計(jì)時(shí)器觸發(fā)。
前端有兩個(gè)版本,取決于采用的部署類型:
- 云化:HAR模型部署在云端;因此應(yīng)用程序只需要收集LinearAccelerationSensor參數(shù)并將它們發(fā)送到云端進(jìn)行分析;
- 基于邊緣:HAR模型部署在手機(jī)上;因此,模型現(xiàn)在在本地執(zhí)行,為用戶的狀態(tài)提供狀態(tài)。在這種情況下,應(yīng)用程序?qū)⒔Y(jié)果和參數(shù)都發(fā)送到云端;
accelerometer.addEventListener('reading', () => {
var now = parseInt(Date.now());
let x = accelerometer.x;
let y = accelerometer.y;
let z = accelerometer.z
$('#accelerometerX').html(x);
$('#accelerometerY').html(y);
$('#accelerometerZ').html(z);
data = {
date: now,
status: 2,
accx: x,
accy: y,
accz: z
}
socket.emit('accelerometer', data);
});
圖為基于云的版本所使用的代碼,與上一節(jié)中的 HAR 模型混合給出了基于邊緣的版本。status:2
用作一個(gè)幻數(shù),告訴 Firebase 云函數(shù)該模型尚未應(yīng)用。
為了托管它并使其可以從移動(dòng)設(shè)備訪問,我使用了眾所周知的Heroku.com。不幸的是,由于我在谷歌云平臺(tái)上可以免費(fèi)交換的消息數(shù)量有限制,所以我不會(huì)提供鏈接,但這里有一張圖片。

第一個(gè)和第二個(gè)作業(yè)中解釋了將設(shè)備連接到 Google 云平臺(tái)的過(guò)程。
Firebase 云功能
據(jù)我了解,F(xiàn)irebase 服務(wù)主要用于移動(dòng)應(yīng)用程序。但是,考慮到任務(wù)的性質(zhì),以及我以前從未使用過(guò)它們的事實(shí),我想試一試。
Cloud Functions for Firebase 是一個(gè)無(wú)服務(wù)器框架,可讓您自動(dòng)運(yùn)行后端代碼以響應(yīng)由 Firebase 功能和 HTTPS 請(qǐng)求觸發(fā)的事件。此外,鑒于 GCP 和 Firebase 之間的出色互操作性,它使 Pub/Sub 和 Firestore 之間的消息交換變得超級(jí)容易。

該片段顯示了負(fù)責(zé)交互的函數(shù)。基于邊緣或基于云的版本都是相同的。實(shí)際上,它會(huì)自動(dòng)檢測(cè)狀態(tài)編號(hào)使用的 Web 應(yīng)用程序。
如果消息來(lái)自基于邊緣的應(yīng)用程序版本,它只會(huì)將所有內(nèi)容轉(zhuǎn)發(fā)到 Firestore 數(shù)據(jù)庫(kù),在另一種情況下,它會(huì)執(zhí)行模型,然后才完成交換。

部署后,它也可以在項(xiàng)目頁(yè)面上看到。
在 Github 上只有我寫的用于交流的 Typescript 函數(shù)。但是,您還需要?jiǎng)?chuàng)建一個(gè)連接到 Google 的 Firebase 項(xiàng)目。這里怎么做:https ://firebase.google.com/docs/functions/get-started
Cloud Firestore 和儀表板
Cloud Firestore 是一個(gè)靈活、可擴(kuò)展的數(shù)據(jù)庫(kù),用于 Firebase 和 Google Cloud Platform 的移動(dòng)、Web 和服務(wù)器開發(fā)。
Cloud Firestore 的 NoSQL 數(shù)據(jù)模型將數(shù)據(jù)存儲(chǔ)在包含映射到值的字段的文檔中。這些文檔存儲(chǔ)在容器、集合中,可用于組織數(shù)據(jù)和構(gòu)建查詢。它們支持許多不同的數(shù)據(jù)類型,從簡(jiǎn)單的字符串和數(shù)字到復(fù)雜的嵌套對(duì)象。此外,它還允許在文檔中創(chuàng)建子集合并構(gòu)建隨著數(shù)據(jù)庫(kù)增長(zhǎng)而擴(kuò)展的分層數(shù)據(jù)結(jié)構(gòu)。

對(duì)于儀表板,我選擇了無(wú)服務(wù)器方法,正如 Firebase 所教導(dǎo)的那樣。事實(shí)上,這一次我有一個(gè)簡(jiǎn)單的 HTML,帶有一些 Javascript。
db.collection('telemetries').onSnapshot((snapshot) => {
snapshot.docChanges().forEach(element => {
renderValue(element.doc);
})
});
由于這個(gè)簡(jiǎn)單的腳本,每次出現(xiàn)新值時(shí),頁(yè)面刷新和表格都會(huì)更新。

結(jié)論
最后,我們可以輕松地決定是否要使用基于云或基于邊緣的應(yīng)用程序版本,兩者各有利弊。事實(shí)上,使用 Google 和 Firebase 生態(tài)系統(tǒng),我們可以輕松地在服務(wù)的兩個(gè)版本之間切換,擁有一個(gè)奇妙的模塊化系統(tǒng)。
- 使用通用傳感器API和Google進(jìn)行用戶活動(dòng)識(shí)別
- 物聯(lián)網(wǎng)人類活動(dòng)識(shí)別網(wǎng)絡(luò)應(yīng)用
- 使用GY 91多傳感器模塊創(chuàng)建API
- 人體行為識(shí)別API接口aip-php-sdk-4.15.4 3次下載
- 基于Kinect傳感器的動(dòng)態(tài)手勢(shì)識(shí)別方法 20次下載
- 光電傳感器的連續(xù)路徑識(shí)別算法及實(shí)現(xiàn) 6次下載
- 基于慣性傳感器融合控制算法的手語(yǔ)識(shí)別方案 4次下載
- 如何安裝和運(yùn)行osxMotionAR活動(dòng)識(shí)別庫(kù) 1次下載
- API-Shop-OCR-營(yíng)業(yè)執(zhí)照識(shí)別API接口Python調(diào)用示例代碼說(shuō)明 6次下載
- 超高頻射頻識(shí)別閱讀器固件和應(yīng)用編程接口(API)考量 11次下載
- 基于多傳感器的人體行為識(shí)別系統(tǒng)_周林 2次下載
- 現(xiàn)代傳感器集成電路:通用傳感器電路 52次下載
- TGS傳感器通用資料
- 通用傳感器電路
- 現(xiàn)代傳感器技術(shù)基礎(chǔ) 0次下載
- 陀螺儀在人體活動(dòng)識(shí)別系統(tǒng)中的應(yīng)用 2285次閱讀
- 如何使用移動(dòng)傳感器產(chǎn)生的原始數(shù)據(jù)來(lái)識(shí)別人類活動(dòng) 1231次閱讀
- 如何識(shí)別和使用NPN傳感器 7190次閱讀
- 顏色識(shí)別傳感器的類型及原理解析 1.6w次閱讀
- 角位移傳感器原理_角位移傳感器應(yīng)用 3499次閱讀
- 數(shù)字傳感器和模擬傳感器的區(qū)別 2.5w次閱讀
- 指紋識(shí)別傳感器技術(shù)的演變歷程 3180次閱讀
- 服務(wù)器端發(fā)票識(shí)別api接口 2686次閱讀
- 傳感器給人類生活帶來(lái)哪些好處 1w次閱讀
- 軍用電量傳感器有什么特點(diǎn)_軍用電量傳感器的特點(diǎn)介紹 2629次閱讀
- 顏色識(shí)別傳感器原理與應(yīng)用詳解 6.9w次閱讀
- 色彩傳感器的選型_色彩傳感器工作原理介紹 1.5w次閱讀
- 電容式濕度傳感器_電容式濕度傳感器工作原理 2.6w次閱讀
- 濕度傳感器的原理、分類、特點(diǎn)特性、參數(shù)及其應(yīng)用 2.1w次閱讀
- DNA生物傳感器的原理與應(yīng)用 8801次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論