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

前言

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

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

什么是TensorFlow

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

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

l tfjs-models/posenet: 一個(gè)機(jī)器學(xué)習(xí)模型,功能為對圖像或者視頻中的人物進(jìn)行動作捕捉,輸出人體各個(gè)部位的keypoints(坐標(biāo)集)。具有單一人物分析和多人物分析的特點(diǎn)。

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

實(shí)現(xiàn)原理

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

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

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

l?基本配置

· 導(dǎo)入JS

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

· HTML

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

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

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

· 生成posenet對象

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

參數(shù)說明:

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

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

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

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

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

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

l?結(jié)果

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

· 單人捕捉:很容易被背景及身邊人物干擾,導(dǎo)致人體keypoint定位不準(zhǔn)確。

l?缺點(diǎn)

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

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

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

改進(jìn)方案

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

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

l?基本配置

· 導(dǎo)入JS

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

· 生成bodyPixNet對象

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

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

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

l?結(jié)果

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

結(jié)論

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

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

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

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

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

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

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

廣告

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

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