狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

前端JS實(shí)現(xiàn)人類(lèi)動(dòng)作捕捉,怎么辦?幾十行代碼輕松搞定!

freeflydom
2024年7月24日 16:48 本文熱度 1178

01:什么是 HandtrackJS

HandtrackJS 是一個(gè)基于 JavaScript 的開(kāi)源庫(kù),用于實(shí)時(shí)手部檢測(cè)和手勢(shì)識(shí)別。它利用了機(jī)器學(xué)習(xí)模型來(lái)檢測(cè)手的位置和姿勢(shì),使得開(kāi)發(fā)者可以在網(wǎng)頁(yè)和其他 JavaScript 環(huán)境中輕松地實(shí)現(xiàn)手勢(shì)控制和交互功能。

HandtrackJS 提供了對(duì)應(yīng)的案例,我們可以一起來(lái)看下對(duì)應(yīng)的效果:

 

根據(jù)示例 DEMO 我們可以發(fā)現(xiàn),利用 HandtrackJS 可以直接捕獲到人像與手勢(shì),同時(shí)還可以根據(jù)不同的手勢(shì)進(jìn)行識(shí)別,如下圖所示:

整個(gè)手勢(shì)的狀態(tài)被識(shí)別并分為了:open、pinch、closed 三種不同的狀態(tài)

02:實(shí)現(xiàn)一個(gè)動(dòng)作捕捉功能

整個(gè) HandtrackJS 使用也非常方便,根據(jù)官方文檔所示,我們可以分別通過(guò) npm 或 cdn 的形式直接進(jìn)行安裝,這里為了方便,直接通過(guò) cdn 的形式引入:

html 部分

<body class="bx--body p20">

 <div class="mb10">

  <button

   id="trackbutton"

   class="bx--btn bx--btn--secondary"

   type="button"

   disabled

  >

   點(diǎn)擊啟動(dòng)

  </button>

 </div>

 <!-- 捕捉和展示實(shí)時(shí)視頻流 -->

 <video

  class="videobox canvasbox"

  autoplay="autoplay"

  id="myvideo"

  style="display: none"

 ></video>

 <!-- 視頻流渲染到 canvas 之中 -->

 <canvas id="canvas" class="border canvasbox"></canvas>

 <!-- cdn 引入 handtrack -->

 <script src="lib/handtrack.min.js"></script>

 <script src="js/index.js"></script>

</body>

在上面代碼中,核心有兩個(gè)標(biāo)簽:

video:它的主要作用是開(kāi)啟一個(gè)視頻流,用來(lái)捕獲攝像頭圖像的。但是真正的展示并不是通過(guò)它來(lái)做,所以這里直接 display: none 隱藏即可

canvas:這是真正用來(lái)展示捕獲內(nèi)容的界面

JS 部分

搞定了 html 之后,接下來(lái)我們來(lái)處理 js 的內(nèi)容

1:利用 handTrack 加載模型

handTrack 是 HandtrackJS 的核心類(lèi),可以利用它的 load 方法加載配置、模型:

let model = null // 存儲(chǔ)加載的模型

let trackButton = document.getElementById('trackbutton') // 獲取按鈕元素

// 模型參數(shù)配置

const modelParams = {

 maxNumBoxes: 20, // 最大檢測(cè)框數(shù)量

 iouThreshold: 0.5, // IOU閾值

 scoreThreshold: 0.6 // 分?jǐn)?shù)閾值

}

// 加載模型

handTrack.load(modelParams).then((lmodel) => {

 model = lmodel // 保存加載的模型

 trackButton.disabled = false // 啟用按鈕

})

2:按鈕按下,開(kāi)啟視頻捕捉

監(jiān)聽(tīng) trackButton 按鈕的點(diǎn)擊行為,利用 video 開(kāi)啟攝像頭

// 獲取HTML中的video和canvas元素

const video = document.getElementById('myvideo')

const canvas = document.getElementById('canvas')

const context = canvas.getContext('2d') // 獲取canvas的2D繪圖上下文

let isVideo = false // 標(biāo)記視頻是否正在播放


// 開(kāi)始視頻捕捉

function startVideo() {

 handTrack.startVideo(video).then(function (status) {

  if (status) {

   // 如果視頻啟動(dòng)成功

   isVideo = true // 設(shè)置視頻狀態(tài)為正在播放

   runDetection() // 開(kāi)始檢測(cè)

  } else {

   // 視頻啟動(dòng)失敗處理(未實(shí)現(xiàn))

  }

 })

}


// 運(yùn)行檢測(cè)

function runDetection() {

 model.detect(video).then((predictions) => {

  model.renderPredictions(predictions, canvas, context, video) // 在canvas上繪制檢測(cè)結(jié)果

  if (isVideo) {

   requestAnimationFrame(runDetection) // 如果視頻正在播放,繼續(xù)檢測(cè)

  }

 })

}


// 切換視頻播放狀態(tài)

function toggleVideo() {

 if (!isVideo) {

  startVideo() // 如果視頻未播放,則啟動(dòng)視頻

 } else {

  handTrack.stopVideo(video) // 停止視頻

  isVideo = false // 設(shè)置視頻狀態(tài)為未播放

 }

}


// 按鈕點(diǎn)擊事件監(jiān)聽(tīng),點(diǎn)擊按鈕時(shí)切換視頻狀態(tài)

trackButton.addEventListener('click', function () {

 toggleVideo()

})

至此整個(gè)的檢測(cè)就已經(jīng)全部完成了,是不是還是挺簡(jiǎn)單的。咱們來(lái)看看效果!

 

轉(zhuǎn)自公眾號(hào)程序員Sunday


該文章在 2024/7/24 16:53:33 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved