基于TensorFlow的開源JS庫的網(wǎng)頁前端人物動作捕捉的實現(xiàn)-創(chuàng)新互聯(lián)

前言

隨著前端生態(tài)的發(fā)展,Java已經(jīng)不僅僅局限于作為網(wǎng)頁開發(fā),也越來越活躍于服務器端,移動端小程序等應用開發(fā)中。甚至通過Electron等打包工具,甚至能夠開發(fā)多系統(tǒng)的桌面應用。其涉足的領域?qū)挿阂彩沟媚軌驅(qū)崿F(xiàn)的功能也不再是簡單的UI控件制作和內(nèi)容的展示,在互動娛樂,小領域也有著極大的發(fā)展前景。本文以通過Java開發(fā)一個基于瀏覽器攝像頭的實時人物動作捕捉小程序為例,介紹一下前端在這一領域的可行性。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站建設、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的長壽網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

什么是TensorFlow

TensorFlow 最初是由Google大腦小組的研究員和工程師們開發(fā)出來,采用數(shù)據(jù)流圖(Data Flow Graphs)用于機器學習和深度神經(jīng)網(wǎng)絡方面數(shù)值計算的開源軟件庫。其高度的可移植性和多語言性使得它可以通過各種常用編程語言編寫,輕松的運行在多種平臺的設備上。是一個集性能,可靠性,通用性,易用性為一體的強大開源庫。

本文所使用的開源Java模型庫:

l tfjs-models/posenet: 一個機器學習模型,功能為對圖像或者視頻中的人物進行動作捕捉,輸出人體各個部位的keypoints(坐標集)。具有單一人物分析和多人物分析的特點。

l tfjs-models/body-pix: 一個機器學習模型,功能為對圖像或者視頻中人物和背景進行分析,將人物從背景中剝離出來,輸出結(jié)果為人體24個部位在畫面中的像素位置。具有將人物與背景分離的功能。

實現(xiàn)原理

本文所介紹的基于瀏覽器和網(wǎng)絡攝像頭的人物實時動作捕捉方法,其實現(xiàn)原理是通過Java調(diào)用<video/>元素,通過瀏覽器呼叫網(wǎng)絡攝像頭,將網(wǎng)絡攝像頭獲取到的視頻流的每一幀數(shù)據(jù)通過TensorFlow 的JS模型庫(tfjs-models/posenet或tfjs-models/body-pix)對圖像進行分析,輸出攝像頭所拍攝對象的人體各keypoint數(shù)據(jù)分析結(jié)果的同時,對HTML5的<canvas/>元素進行渲染。開發(fā)者可以根據(jù)項目需求,對獲得到的人體各keypoint數(shù)據(jù)進行分析處理,實現(xiàn)程序功能。

*在基本的原理中<canvas/>并不是必須的組成部分,但在下文中會簡單介紹一種通過<canvas/>的圖像繪制功能,提升人物捕捉精度的方法。

通過tfjs-models/posenet模型庫實現(xiàn)人物動作捕捉

l?基本配置

· 導入JS

基于TensorFlow的開源JS庫的網(wǎng)頁前端人物動作捕捉的實現(xiàn)

· HTML

基于TensorFlow的開源JS庫的網(wǎng)頁前端人物動作捕捉的實現(xiàn)

· 初始化網(wǎng)絡攝像頭

基于TensorFlow的開源JS庫的網(wǎng)頁前端人物動作捕捉的實現(xiàn)

· 生成posenet對象

基于TensorFlow的開源JS庫的網(wǎng)頁前端人物動作捕捉的實現(xiàn)

參數(shù)說明:

architecture:分為MobileNetV1和ResNet50兩個體系,其中ResNet50精度更高但處理速度較慢。

outputStride:輸出結(jié)果每個像素占用字節(jié)數(shù),數(shù)字越小結(jié)果越精確,但處理的成本和時間更多。

inputResolution:輸入圖像壓縮后的尺寸,數(shù)字越大越精確,但處理的成本和時間更多。

multiplier:僅在MobileNetV1體系中使用,卷積運算的深度(通道數(shù)),數(shù)字越大層數(shù)越多越精確,但處理的成本和時間更多。

l?執(zhí)行實時分析

基于TensorFlow的開源JS庫的網(wǎng)頁前端人物動作捕捉的實現(xiàn)

l?結(jié)果

· 多人捕捉:多人捕捉時能夠獲得畫面中人物的keypoints,互相之間有一定的干擾但影響并不是特別大。

· 單人捕捉:很容易被背景及身邊人物干擾,導致人體keypoint定位不準確。

l?缺點

通過實際的效果可以看到,該模型可以在多人物的時候準確捕捉到各個人物的動作和身體部位的keypoints,雖然存在若干干擾和不穩(wěn)定但基本能夠接受,實時性效果好,但是無法區(qū)分主要人物和次要人物,需要開發(fā)者對結(jié)果數(shù)據(jù)進行處理。

其score的生成是根據(jù)形狀準確度來計算,沒有場景深度的分析,因此無法判斷人物前后位置關(guān)系。http://u48582907.b2bname.com/

由于以上的問題,該方法在單一人物動作捕捉時被周圍環(huán)境干擾的影響極大。在背景存在其他人物時會因無法判斷主次人物關(guān)系,極大的降低準確率。對單一人物動作捕效果非常的不理想,需要進行改進。

改進方案

單一人物的動作捕捉被外界干擾的影響太大導致結(jié)果并不理想,因此首先要考慮的就是屏蔽掉周圍干擾物體,突出主體人物。由此引入了tfjs-models/body-pix模型庫。

**tfjs-models/body-pix模型庫的主要功能:**實時分析人物結(jié)構(gòu),將人物從背景中剝離。其作用對象為單一捕捉對象,正好適用于上述單人捕捉結(jié)果不理想的情況。

l?基本配置

· 導入JS

基于TensorFlow的開源JS庫的網(wǎng)頁前端人物動作捕捉的實現(xiàn)

· 生成bodyPixNet對象

基于TensorFlow的開源JS庫的網(wǎng)頁前端人物動作捕捉的實現(xiàn)

l?tfjs-models/body-pix與tfjs-models/posenet的混合使用

基于TensorFlow的開源JS庫的網(wǎng)頁前端人物動作捕捉的實現(xiàn)

l?結(jié)果

tfjs-models/body-pix與tfjs-models/posenet的混合使用,雖然加大了canvas處理的負擔,加大了描繪和圖像處理的次數(shù),但是由于tfjs-models/body-pix已經(jīng)先將人物與背景剝離,在tfjs-models/posenet只使用用最高效但低準確度的參數(shù)配置下,也能夠產(chǎn)生遠高于使用高精確度但消耗處理性能極大的配置所不能達到的準確度。從而實現(xiàn)了高效,高準確度,流暢的實時單人動作捕捉功能。

結(jié)論

通過TensorFlow的開源庫,能夠輕松的在瀏覽器上通過網(wǎng)絡攝像頭實現(xiàn)人物動作的實時捕捉。鄭州不孕不育醫(yī)院有哪些:http://wapyyk.39.net/zz3/zonghe/1d427.html

由于基于圖像分析,因此表現(xiàn)能力極大的依賴于對canvas的描繪性能,移動端由于瀏覽器canvas描繪能力以及硬件性能限制的原因,表現(xiàn)并不出色,無法做到長時間實時捕捉。甚至部分瀏覽器限制了網(wǎng)絡攝像頭的調(diào)用。在移動端的表現(xiàn)并不出色。

在單一人物的動作捕捉時,tfjs-models/body-pix與tfjs-models/posenet的混合使用能夠使精確度大大提升。

由于需要對canvas進行描繪,結(jié)合其他canvas的JS庫可以進行交互UI,交互小等不同場合APP的開發(fā)。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。

當前名稱:基于TensorFlow的開源JS庫的網(wǎng)頁前端人物動作捕捉的實現(xiàn)-創(chuàng)新互聯(lián)
URL地址:http://bm7419.com/article8/ddhiip.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、動態(tài)網(wǎng)站、網(wǎng)站營銷、App設計面包屑導航、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名