女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于TensorFlow的開源JS庫的網頁前端人物動作捕捉的實現

張康康 ? 2019-08-13 20:07 ? 次閱讀

作者:極鏈科技 曾啟澔


前言


隨著前端生態的發展,Java已經不僅僅局限于作為網頁開發,也越來越活躍于服務器端,移動端小程序等應用開發中。甚至通過Electron等打包工具,甚至能夠開發多系統的桌面應用。其涉足的領域寬泛也使得能夠實現的功能也不再是簡單的UI控件制作和內容的展示,在互動娛樂,小游戲領域也有著極大的發展前景。本文以通過Java開發一個基于瀏覽器攝像頭的實時人物動作捕捉小程序為例,介紹一下前端在這一領域的可行性。

什么是TensorFlow

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

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

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

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

實現原理

本文所介紹的基于瀏覽器和網絡攝像頭的人物實時動作捕捉方法,其實現原理是通過Java調用

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

通過tfjs-models/posenet模型庫實現人物動作捕捉

l基本配置

· 導入JS

7675f2c6ea9e411eb9c9f4a422b25b54.png

· HTML

df7c716bcb814e79b1bb2ce4d48390d3.png

· 初始化網絡攝像頭

3daaf70911944b1982171be31591868f.png

· 生成posenet對象

1c91cb128c464aa1b19d50ccc7471fdf.png

參數說明:

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

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

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

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

l執行實時分析

2833e7c75f6e4c68a1248417a053378a.png

l結果

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

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

l缺點

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

其score的生成是根據形狀準確度來計算,沒有場景深度的分析,因此無法判斷人物前后位置關系。

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

改進方案

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

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

l基本配置

· 導入JS

f97f879121b0461b9654597f91a20dd5.png

· 生成bodyPixNet對象

dca1c4f005984c13b5dc878a7d3c88bd.png

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

298fe16954534859a253e6fb7c148c89.png

l結果

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

結論

通過TensorFlow的開源庫,能夠輕松的在瀏覽器上通過網絡攝像頭實現人物動作的實時捕捉。

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

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

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


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    AI開源模型有什么用

    AI開源模型作為推動AI技術發展的重要力量,正深刻改變著我們的生產生活方式。接下來,AI部落小編帶您了解AI開源模型有什么用。
    的頭像 發表于 02-24 11:50 ?318次閱讀

    Bun 1.2震撼發布:全力挑戰Node.js生態的JavaScript運行時新星

    了與 Node.js 的兼容性,還為開發者帶來了內置的數據支持和云服務集成能力,進一步強化了其“全能工具包”的定位。Node.js 兼容性獲得突破性進展在此次更新中,最引人注目的是 Bun 在 Node.
    的頭像 發表于 01-24 10:42 ?603次閱讀
    Bun 1.2震撼發布:全力挑戰Node.<b class='flag-5'>js</b>生態的JavaScript運行時新星

    開源AI模型是干嘛的

    開源AI模型是指那些公開源代碼、允許自由訪問和使用的AI模型集合。這些模型通常經過訓練,能夠執行特定的任務。以下,是對開源AI模型的詳細
    的頭像 發表于 12-14 10:33 ?700次閱讀

    PNI高精度低功耗3D動作捕捉手柄方案

    SpacePoint3D動作捕捉手柄方案被虛擬現實(VR)廠商PICO選入PICOTrackingkit產品。虛擬現實和游戲類手柄的設計師們非常清楚地了解,用消費類慣性傳感器想做到高精準度的動作
    的頭像 發表于 11-05 08:06 ?393次閱讀
    PNI高精度低功耗3D<b class='flag-5'>動作</b><b class='flag-5'>捕捉</b>手柄方案

    分享一個嵌入式通用FIFO環形緩沖區實現

    開源項目ringbuff ,是一款通用FIFO環形緩沖區實現開源,作者MaJerle,遵循 MIT 開源許可協議。
    的頭像 發表于 10-23 16:20 ?1013次閱讀
    分享一個嵌入式通用FIFO環形緩沖區<b class='flag-5'>實現</b><b class='flag-5'>庫</b>

    鴻蒙跨端實踐-JS虛擬機架構實現

    類似的框架,我們需要自行實現以確保核心基礎能力的完整。 鴻蒙虛擬機的開發經歷了從最初 ArkTs2V8 到 JSVM + Roma新架構方案 。在此過程中,我們實現了完整的鴻蒙版的“J2V8”和 基于系統JSVM的JS虛擬機框架
    的頭像 發表于 09-30 14:42 ?2888次閱讀
    鴻蒙跨端實踐-<b class='flag-5'>JS</b>虛擬機架構<b class='flag-5'>實現</b>

    第四章:在 PC 交叉編譯 aarch64 的 tensorflow 開發環境并測試

    本文介紹了在 PC 端交叉編譯 aarch64 平臺的 tensorflow 而非 tensorflow lite 的心酸過程。
    的頭像 發表于 08-25 11:38 ?2222次閱讀
    第四章:在 PC 交叉編譯 aarch64 的 <b class='flag-5'>tensorflow</b> 開發環境并測試

    如何在Tensorflow實現反卷積

    TensorFlow實現反卷積(也稱為轉置卷積或分數步長卷積)是一個涉及多個概念和步驟的過程。反卷積在深度學習領域,特別是在圖像分割、圖像超分辨率、以及生成模型(如生成對抗網絡GANs)等任務中
    的頭像 發表于 07-14 10:46 ?1026次閱讀

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發的一個開源深度學習框架,它允許開發者方便地構建、訓練和部署各種復雜的機器學習模型。TensorFlow憑借其高效的計算性能、靈活的架構以及豐富的工具和
    的頭像 發表于 07-12 16:38 ?1192次閱讀

    tensorflow和pytorch哪個更簡單?

    TensorFlow和PyTorch都是用于深度學習和機器學習的開源框架。TensorFlow由Google Brain團隊開發,而PyTorch由Facebook的AI研究團隊開發。 易用性:
    的頭像 發表于 07-05 09:45 ?1356次閱讀

    tensorflow簡單的模型訓練

    在本文中,我們將詳細介紹如何使用TensorFlow進行簡單的模型訓練。TensorFlow是一個開源的機器學習,廣泛用于各種機器學習任務,包括圖像識別、自然語言處理等。我們將從安裝
    的頭像 發表于 07-05 09:38 ?1199次閱讀

    keras模型轉tensorflow session

    和訓練深度學習模型。Keras是基于TensorFlow、Theano或CNTK等底層計算框架構建的。TensorFlow是一個開源的機器學習框架,由Google Brain團隊開發。它提供了一種靈活
    的頭像 發表于 07-05 09:36 ?803次閱讀

    如何使用Tensorflow保存或加載模型

    TensorFlow是一個廣泛使用的開源機器學習,它提供了豐富的API來構建和訓練各種深度學習模型。在模型訓練完成后,保存模型以便將來使用或部署是一項常見的需求。同樣,加載已保存的模型進行預測或
    的頭像 發表于 07-04 13:07 ?2515次閱讀

    TensorFlow的定義和使用方法

    TensorFlow是一個由谷歌人工智能團隊谷歌大腦(Google Brain)開發和維護的開源機器學習。它基于數據流編程(dataflow programming)的概念,將復雜的數學運算表示為
    的頭像 發表于 07-02 14:14 ?1324次閱讀

    解鎖未來,無線姿態傳感器如何革新動作捕捉與VR體驗

    隨著科技的飛速發展,動作捕捉和虛擬現實(VR)技術成為我們生活中的一部分,它們為我們帶來了前所未有的沉浸式體驗。而在這個變革之中,無線傳感器憑借其獨特的優勢,推動這一技術革新的關鍵力量。 無線
    的頭像 發表于 06-27 10:02 ?517次閱讀