摘要:反饋檢測(cè)到的每個(gè)人的置信度值以及檢測(cè)到的每個(gè)姿勢(shì)關(guān)鍵點(diǎn)。姿勢(shì)置信度這決定了姿勢(shì)判斷的整體置信度。在較高級(jí)別,這將控制回饋的姿勢(shì)較低置信度分?jǐn)?shù)。只有在調(diào)整姿勢(shì)置信度得分不夠好的情況下,為了過(guò)濾掉不太準(zhǔn)確的姿勢(shì),該數(shù)值應(yīng)該增加或減少。
文 / Dan Oved,Google Creative Lab 的自由創(chuàng)意技術(shù)專家,紐約大學(xué) ITP 的研究生。
編輯和插圖 / 創(chuàng)意技術(shù)專家 Irene Alvarado 和 Google Creative Lab 的自由平面設(shè)計(jì)師 Alexis Gallo
通過(guò)與 Google 創(chuàng)意實(shí)驗(yàn)室的合作,我很高興地宣布 TensorFlow.js 版本的 PoseNet1,2 發(fā)布了,這是一個(gè)允許在瀏覽器中進(jìn)行實(shí)時(shí)人體姿勢(shì)判斷的機(jī)器學(xué)習(xí)模型。 訪問(wèn) 這里 嘗試一下在線演示吧。
注:這里鏈接
https://storage.googleapis.com/tfjs-models/demos/posenet/camera.html
PoseNet 可以使用單一姿勢(shì)或多種姿勢(shì)算法檢測(cè)到圖像和視頻中的人物 - 所有這些均來(lái)自瀏覽器
?
那么究竟什么是姿勢(shì)判斷呢? 姿勢(shì)判斷是指在圖像和視頻中檢測(cè)人物形象的計(jì)算機(jī)視覺(jué)技術(shù),比如可以確定某個(gè)人的肘部出現(xiàn)在圖像中的位置。 需要澄清的是,這項(xiàng)技術(shù)無(wú)法識(shí)別圖像中的人物到底是誰(shuí) – 因?yàn)闆](méi)有任何與識(shí)別身份相關(guān)的個(gè)人身份信息。 該運(yùn)算法則僅僅是判斷人體主要關(guān)節(jié)的位置。
?
好吧,知道為什么這是一個(gè)令人興奮的開(kāi)始? 姿勢(shì)判斷有許多用途,從對(duì)身體做出反應(yīng)的交互式裝置到增強(qiáng)現(xiàn)實(shí),動(dòng)畫,健身用途等等。 我們希望此模型的可訪問(wèn)性能夠激發(fā)更多開(kāi)發(fā)人員和制造商嘗試將姿態(tài)檢測(cè)應(yīng)用到他們自己的項(xiàng)目中去。 雖然許多可選的姿勢(shì)檢測(cè)系統(tǒng)都已開(kāi)源,但都需要配備專門的硬件和/或攝像頭,以及繁復(fù)的系統(tǒng)設(shè)置。?
PensNet 在 TensorFlow.js 上運(yùn)行后,只要配備適合網(wǎng)絡(luò)攝像頭的 PC 或手機(jī),任何人可以在網(wǎng)絡(luò)瀏覽器中體驗(yàn)這項(xiàng)技術(shù)。 由于我們已經(jīng)開(kāi)源了該模型,因此 Javascript 開(kāi)發(fā)人員只要通過(guò)幾行代碼就能修補(bǔ)和使用這項(xiàng)技術(shù)。更重要的是,這實(shí)際上還能有助保護(hù)用戶隱私。由于 TensorFlow.js 上的 PoseNet 是在瀏覽器中運(yùn)行,因此任何姿勢(shì)數(shù)據(jù)都不會(huì)留在用戶的計(jì)算機(jī)上。
?
在深入研究該如何使用這個(gè)模型之前,對(duì)于那些將該項(xiàng)目付諸實(shí)現(xiàn)的人們,讓我們大聲歡呼向他們致敬:發(fā)布在 Wild and PersonLab 上有關(guān)于準(zhǔn)確的多人姿勢(shì)判斷的文章《自下而上,基于部分的幾何嵌入模型進(jìn)行人物姿勢(shì)判斷及實(shí)例分割》背后的谷歌研發(fā)人員 George Papandreou 和 Tyler Zhu, 以及 TensorFlow.js 庫(kù)背后的 Google Brain 團(tuán)隊(duì)的工程師 Nikhil Thorat 和 Daniel Smilkov。
PoseNet 入門
PoseNet 可用于判斷單一姿勢(shì)或多個(gè)姿勢(shì), 這就意味著會(huì)有一個(gè)檢測(cè)圖像/視頻中單人算法版本以及另一個(gè)可以檢測(cè)圖像/視頻中多個(gè)人的版本。 為什么有兩個(gè)版本? 單人姿勢(shì)檢測(cè)器更快更簡(jiǎn)單,但是需要圖像中只有一個(gè)主體(稍后會(huì)深入探討)。 我們首先來(lái)講一講簡(jiǎn)單易用的單一姿勢(shì)版本。
?
姿勢(shì)判斷在上層會(huì)分成兩個(gè)階段進(jìn)行:
1. 輸入 RGB 圖像通過(guò)卷積神經(jīng)網(wǎng)絡(luò)饋送。
2. 單一姿勢(shì)或多姿勢(shì)解碼算法用于從模型輸出解碼姿勢(shì),姿勢(shì)置信度得分,關(guān)鍵點(diǎn)位置和關(guān)鍵點(diǎn)置信度得分。
?
稍等一下,這些關(guān)鍵字的含義是什么? 讓我們回顧一下最重要的內(nèi)容:
姿勢(shì) - 在別,PoseNet 將每個(gè)檢測(cè)到的人的關(guān)鍵點(diǎn)列表和實(shí)例級(jí)置信度分?jǐn)?shù)反饋給一個(gè)姿勢(shì)對(duì)象。
PoseNet 反饋檢測(cè)到的每個(gè)人的置信度值以及檢測(cè)到的每個(gè)姿勢(shì)關(guān)鍵點(diǎn)。 Image Credit:“Microsoft Coco:Context Dataset 中的公共對(duì)象”,https://cocodataset.org。
姿勢(shì)置信度 – 這決定了姿勢(shì)判斷的整體置信度。 范圍介于 0.0 到 1.0 之間。 它可以用來(lái)隱藏那些幅度不夠大的姿勢(shì)。
?
關(guān)鍵點(diǎn) – 它是判斷人體姿勢(shì)的一部分,例如鼻子,右耳,左膝,右腳等。它包含了位置和關(guān)鍵點(diǎn)置信度分?jǐn)?shù)。 PoseNet 目前可檢測(cè)到下圖所示的 17 個(gè)關(guān)鍵點(diǎn):
PoseNet 檢測(cè)到的 17 個(gè)姿勢(shì)關(guān)鍵點(diǎn)
關(guān)鍵點(diǎn)置信度得分 - 這決定了估計(jì)關(guān)鍵點(diǎn)位置準(zhǔn)確的置信度。 范圍在 0.0 到 1.0 之間。 它可用于隱藏那些不夠強(qiáng)大的關(guān)鍵點(diǎn)。
?
關(guān)鍵點(diǎn)位置 – 檢測(cè)到的關(guān)鍵單在原始輸入圖像中的 ?x 和 y 二維坐標(biāo)。
第1步:導(dǎo)入 TensorFlow.js 和 PoseNet 庫(kù)
將模型的復(fù)雜性抽象化并將功能封裝為易于使用的方法,這方面已經(jīng)做了很多的工作。 讓我們回顧一下如何設(shè)置 PoseNet 項(xiàng)目的基礎(chǔ)知識(shí)。
該庫(kù)可以使用 npm 安裝:
npm install @tensorflow-models/posenet
并使用 es6 模塊導(dǎo)入:
import * as posenet from "@tensorflow-models/posenet";
const net = await posenet.load();
或通過(guò)頁(yè)面中的 bundle:
? ?
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
? ? ?
第 2a 步:?jiǎn)稳俗藨B(tài)判斷
應(yīng)用于圖像的單人姿勢(shì)判斷算法示例
Image Credit:“Microsoft Coco:Context Dataset 中的通用對(duì)象”,https://cocodataset.org
如前所述,兩個(gè)版本中,單一姿勢(shì)判斷算法更簡(jiǎn)單,更快速。 它的理想場(chǎng)景是只有一個(gè)人居于輸入圖像或視頻中間。 缺點(diǎn)是,如果圖像中有多個(gè)人,那么來(lái)自兩個(gè)人的關(guān)鍵點(diǎn)可能被判斷為同一個(gè)單一姿勢(shì)的一部分 – 意思就是,例如,第 1 個(gè)人的左臂和第 2 個(gè)人的右膝通過(guò)算法被判斷屬于相同的姿勢(shì)而被混淆。 如果輸入圖像中包含多人,則應(yīng)該使用多姿勢(shì)判斷的算法。
?
讓我們回顧一下單一姿勢(shì)判斷算法的輸入:?
輸入圖像元素 - 包含用于預(yù)測(cè)姿勢(shì)的圖像的 html 元素,例如視頻或圖像標(biāo)簽。 重要的一點(diǎn)是,輸入的圖像或視頻元素必須是方形的。
?
圖像比例系數(shù) – 是介于 0.2 和 1 之間的數(shù)字。默認(rèn)為 0.50。 在輸入到網(wǎng)絡(luò)之前的縮放圖像比例。 將此數(shù)值設(shè)置得較低可以縮小圖像,以犧牲精度為代價(jià)從而提高速度。
?
水平翻轉(zhuǎn) - 默認(rèn)為 false。 姿勢(shì)應(yīng)該是水平翻轉(zhuǎn)/鏡像。 對(duì)于視頻默認(rèn)水平翻轉(zhuǎn)的視頻(即網(wǎng)絡(luò)攝像頭),如果您希望姿勢(shì)得以正確的方向回饋,應(yīng)將此設(shè)置為 true。
?
輸出步幅 - 必須為 32,16 或 8。默認(rèn)值為 16。在內(nèi)部,此參數(shù)會(huì)影響神經(jīng)網(wǎng)絡(luò)中圖層的高度和寬度。 在上層來(lái)看,它會(huì)影響姿勢(shì)判斷的精度和速度。 輸出值越低,精度越高但速度越慢;輸出值越高,速度越快但精度越低。 查看輸出步幅對(duì)輸出質(zhì)量影響的較佳方法是嘗試使用這個(gè)單一姿勢(shì)判斷的實(shí)例。
?
現(xiàn)在讓我們回顧一下單一姿勢(shì)判斷算法的輸出:
包含姿勢(shì)置信度得分和 17 個(gè)關(guān)鍵點(diǎn)數(shù)組的姿勢(shì)。
?
每個(gè)關(guān)鍵點(diǎn)包含關(guān)鍵點(diǎn)位置和關(guān)鍵點(diǎn)置信度得分。 同樣,所有關(guān)鍵點(diǎn)位置在輸入圖像空間中都有 x 和 y 坐標(biāo),并且可以直接映射到圖像上。
?
這個(gè)簡(jiǎn)短的代碼塊展示了如何使用單一姿勢(shì)判斷算法:
const imageScaleFactor = 0.50;
const flipHorizontal = false;
const outputStride = 16;
const imageElement = document.getElementById("cat");
// load the posenet model
const net = await posenet.load();
const pose = await net.estimateSinglePose(imageElement, scaleFactor, flipHorizontal, outputStride)
示例輸出姿勢(shì)如下所示:
{
?"score": 0.32371445304906,
?"keypoints": [
? ?{ // nose
? ? ?"position": {
? ? ? ?"x": 301.42237830162,
? ? ? ?"y": 177.69162777066
? ? ?},
? ? ?"score": 0.99799561500549
? ?},
? ?{ // left eye
? ? ?"position": {
? ? ? ?"x": 326.05302262306,
? ? ? ?"y": 122.9596464932
? ? ?},
? ? ?"score": 0.99766051769257
? ?},
? ?{ // right eye
? ? ?"position": {
? ? ? ?"x": 258.72196650505,
? ? ? ?"y": 127.51624706388
? ? ?},
? ? ?"score": 0.99926537275314
? ?},
? ?...
?]
}
第 2b 步: 多人姿勢(shì)判斷
應(yīng)用于圖像的示例多人姿勢(shì)判斷算法
Image Credit: “Microsoft Coco: Common Objects in Context Dataset”,?https://cocodataset.org
多人姿勢(shì)判斷算法可以判斷圖像中許多的姿勢(shì)/人。 它比單一姿勢(shì)算法更為復(fù)雜,且速度稍慢,不過(guò)它的優(yōu)點(diǎn)是,如果圖片中出現(xiàn)多個(gè)人,他們檢測(cè)到的關(guān)鍵點(diǎn)不太可能與錯(cuò)誤的姿勢(shì)相關(guān)聯(lián)。 因此,即使用例是檢測(cè)單個(gè)人的姿勢(shì),這個(gè)算法可能更合乎需要。
?
此外,該運(yùn)算法則一個(gè)引人入勝的特性是其性能不會(huì)因輸入圖像中的人數(shù)多少而受到影響。 不管是檢測(cè) 15 個(gè)人或 5 個(gè)人,計(jì)算的時(shí)間是相同的。
?
我們來(lái)看一下輸入:
輸入圖像元素 - 與單一姿勢(shì)判斷相同
圖像比例系數(shù) - 與單一姿勢(shì)判斷相同
水平翻轉(zhuǎn) - 與單一姿勢(shì)判斷相同
輸出步幅 - 與單一姿勢(shì)判斷相同?
幅度較大的姿勢(shì)檢測(cè) - 整數(shù)。 默認(rèn)為 5. 要檢測(cè)的幅度較大的姿勢(shì)數(shù)值。
姿勢(shì)置信度得分閾值 - 0.0 到 1.0。 默認(rèn)為 0.5。 在較高級(jí)別,這將控制回饋的姿勢(shì)較低置信度分?jǐn)?shù)。?
非較大抑制(NMS)半徑 – 這是一個(gè)以像素為單位的數(shù)字。在上層,它會(huì)控制返回姿勢(shì)之間的最小距離。其默認(rèn)值為 20,這在大多數(shù)情況下均表現(xiàn)良好。只有在調(diào)整姿勢(shì)置信度得分不夠好的情況下,為了過(guò)濾掉不太準(zhǔn)確的姿勢(shì),該數(shù)值應(yīng)該增加或減少。
?
查看這些參數(shù)影響的較佳方法是嘗試一下多姿勢(shì)判斷的演示。
?
讓我們?cè)倏匆幌螺敵觯?/p>
一個(gè)通過(guò)一系列姿勢(shì)來(lái)解決的承諾。
每個(gè)姿勢(shì)包含與單人判斷算法中相同描述的信息。
?
這個(gè)短代碼塊展示了如何使用多姿勢(shì)判斷算法:
const imageScaleFactor = 0.50;
const flipHorizontal = false;
const outputStride = 16;
// get up to 5 poses
const maxPoseDetections = 5;
// minimum confidence of the root part of a pose
const scoreThreshold = 0.5;
// minimum distance in pixels between the root parts of poses
const nmsRadius = 20;
const imageElement = document.getElementById("cat");
// load posenet
const net = await posenet.load();
const poses = await net.estimateMultiplePoses(
? ? ?imageElement, imageScaleFactor, flipHorizontal, outputStride, ? ?
? ? ?maxPoseDetections, scoreThreshold, nmsRadius);
姿勢(shì)的示例輸出數(shù)組如下所示:
// array of poses/persons
[?
?{ // pose #1
? ?"score": 0.42985695206067,
? ?"keypoints": [
? ? ?{ // nose
? ? ? ?"position": {
? ? ? ? ?"x": 126.09371757507,
? ? ? ? ?"y": 97.861720561981
? ? ? ? },
? ? ? ?"score": 0.99710708856583
? ? ?},
? ? ?...?
? ?]
?},
?{ // pose #2
? ?"score": 0.13461434583673,
? ?"keypositions": [
? ? ?{ // nose
? ? ? ?"position": {
? ? ? ? ?"x": 116.58444058895,
? ? ? ? ?"y": 99.772533416748
? ? ? ?},
? ? ?"score": 0.9978438615799
? ? ?},
? ? ?...
? ?]
?},
?...?
]
如果您已經(jīng)閱讀過(guò)這篇文章,那么您就已經(jīng)了解了 PoseNet 演示的全部?jī)?nèi)容。 這也許是一個(gè)很好的停止點(diǎn)。 如果您想深入了解有關(guān)模型和實(shí)施的技術(shù)細(xì)節(jié)的更多信息,我們邀請(qǐng)您繼續(xù)閱讀下文。
致孜孜不倦的鉆研者:技術(shù)深潛
在本節(jié)中,我們將詳細(xì)介紹單一姿勢(shì)判斷算法。在上層,該過(guò)程如下所示:
使用 PoseNet 的單人姿勢(shì)探測(cè)器通道
需要注意的一個(gè)重要細(xì)節(jié)是,研究人員同時(shí)訓(xùn)練了 PoseNet 上的一個(gè) ResNet 模型和一個(gè) MobileNet 模型。 雖然 ResNet 模型具有更高的準(zhǔn)確性,但對(duì)于實(shí)時(shí)應(yīng)用程序來(lái)說(shuō),其大尺寸和多層面使頁(yè)面加載時(shí)間和推理時(shí)間變得不太理想。我們使用 MobileNet 模型,因?yàn)樗菍橐苿?dòng)設(shè)備上運(yùn)行而設(shè)計(jì)的。
注: ResNet 模型鏈接
https://arxiv.org/abs/1512.03385
MobileNet 模型鏈接
https://arxiv.org/abs/1704.04861
再看一下單一姿勢(shì)判斷算法
處理模型輸入:輸出步幅的解釋
首先,我們將討論如何通過(guò)輸出步幅來(lái)獲得 PoseNet 模型輸出(主要是熱圖和偏移矢量)。
?
PoseNet 模型可以方便地保持圖像大小恒定,意思是不管圖像是否縮小,它能夠以與原始圖像相同的比例預(yù)測(cè)姿勢(shì)位置。 這就意味著通過(guò)設(shè)置我們?cè)谶\(yùn)行上面提到的輸出步幅時(shí),在犧牲了性能的情況下,可以將 PoseNet 配置成更高的精度。
?
輸出步幅決定了我們相對(duì)于輸入圖像大小縮小輸出的程度。 它會(huì)影響圖層的大小和模型輸出。 輸出步幅越高,網(wǎng)絡(luò)中的層的分辨率和輸出越小,相應(yīng)地它們的精度也越高。 在此應(yīng)用中,輸出步幅可以取值 8,16 或 32。換句話說(shuō),在輸出步幅為 32 的情況下,能夠取得最快的表現(xiàn)但是精度卻是較低,而 8 則相反,精度較高但表現(xiàn)最慢。 我們建議從 16 開(kāi)始。
輸出步幅決定了我們相對(duì)于輸入圖像大小縮小輸出的程度。 輸出步幅更高,表現(xiàn)更快,但精度更低
在后臺(tái)中,當(dāng)輸出步幅設(shè)置為 8 或 16 時(shí),減少層中步幅的輸入量就能創(chuàng)建更大的輸出分辨率。 然后使用帶孔卷積核使后續(xù)層中的卷積濾波器具有更寬的視場(chǎng)(當(dāng)輸出步幅為 32 時(shí)不適用帶孔卷積核)。 雖然 Tensorflow 支持帶孔卷積核,但 TensorFlow.js 卻不支持,為此我們添加了一個(gè) PR 來(lái)包含它。
模型輸出: 熱圖和偏移矢量
當(dāng) PoseNet 處理圖像時(shí),實(shí)際上反饋的是熱圖以及偏移矢量,可以對(duì)其進(jìn)行解碼,用以在圖像中找到與姿勢(shì)關(guān)鍵點(diǎn)對(duì)應(yīng)的高置信度區(qū)域。 我們可以快速討論其中每一個(gè)意味著什么,但眼下我們?cè)诟呒?jí)別情況下捕獲的如下圖演示了每個(gè)姿勢(shì)關(guān)鍵點(diǎn)如何與一個(gè)熱圖張量和偏移矢量張量相關(guān)聯(lián)。
PoseNet 反饋的 17 個(gè)姿勢(shì)關(guān)鍵點(diǎn)中的每一個(gè)都與一個(gè)熱圖張量和一個(gè)偏移矢量張量相關(guān)聯(lián),用于確定關(guān)鍵點(diǎn)的確切位置
這兩個(gè)輸出都是具有高度和寬度的 3D 張量,我們將其稱為分辨率。 分辨率根據(jù)以下公式由輸入圖像大小和輸出步幅決定:
Resolution = ((InputImageSize - 1) / OutputStride) + 1
// Example: an input image with a width of 225 pixels and an output
// stride of 16 results in an output resolution of 15
// 15 = ((225 - 1) / 16) + 1
熱圖
每個(gè)熱圖是尺寸為分辨率 x 分辨率 x 17 的 3D 張量,因?yàn)?17 是 PoseNet 檢測(cè)到的關(guān)鍵點(diǎn)的數(shù)量。 例如,圖像大小為 225,輸出步幅為 16,那么就是 15x15x17。 第三維(17)中的每個(gè)切片與特定關(guān)鍵點(diǎn)的熱圖對(duì)應(yīng)。 該熱圖中的每個(gè)位置都有一個(gè)置信度分?jǐn)?shù),即該關(guān)鍵點(diǎn)類型的一部分存在于該位置的概率。 可以視作原始圖像被分解成 15x15 網(wǎng)格,而熱圖分?jǐn)?shù)將對(duì)每個(gè)網(wǎng)格方塊中每個(gè)關(guān)鍵點(diǎn)存在的可能性進(jìn)行分類。
偏移矢量
每個(gè)偏移矢量是尺寸分辨率 x 分辨率 x 34 的 3D 張量,其中 34 是關(guān)鍵點(diǎn)的數(shù)量 * 2。圖像尺寸為 225,輸出步幅為 16,那么就是 15x15x34。 由于熱圖是關(guān)鍵點(diǎn)所在的近似值,因此偏移矢量在位置上對(duì)應(yīng)于熱圖點(diǎn),并用于通過(guò)沿相應(yīng)熱圖點(diǎn)的矢量行進(jìn)來(lái)預(yù)測(cè)關(guān)鍵點(diǎn)的確切位置。 偏移矢量的前 17 個(gè)切片包含矢量的 x,最后的 17 個(gè) y。 偏移矢量大小與原始圖像的比例相同。
從模型的輸出判斷姿勢(shì)
圖像通過(guò)模型后,我們會(huì)執(zhí)行一系列計(jì)算來(lái)判斷輸出的姿勢(shì)。 例如,單一姿勢(shì)判斷算法會(huì)回饋?zhàn)藙?shì)置信度得分,其本身包含關(guān)鍵點(diǎn)陣列(由部件 ID 索引),每個(gè)關(guān)鍵點(diǎn)具有置信度得分和 x,y 位置。
?
要獲得姿勢(shì)的關(guān)鍵點(diǎn):
在熱圖上進(jìn)行 S 形激活以獲得分?jǐn)?shù)。得分= heatmap.sigmoid()
argmax2d 在關(guān)鍵點(diǎn)置信度得分上完成,以獲得熱圖中的x和y索引,每個(gè)部分的得分較高,這實(shí)際上是該部分最可能存在的位置。這會(huì)產(chǎn)生一個(gè)大小為 17x2 的張量,每一行都是熱圖中的 y 和 x 索引,每個(gè)部分的得分較高。heatmapPositions = scores.argmax(y,x)
通過(guò)從對(duì)應(yīng)于該部件的熱圖中的 x 和 y 索引的偏移量獲取 x 和 y 來(lái)檢索每個(gè)部件的偏移矢量。這會(huì)產(chǎn)生一個(gè)大小為 17x2 的張量,每行是相應(yīng)關(guān)鍵點(diǎn)的偏移量。例如,對(duì)于索引 k 處的部分,當(dāng)熱圖位置為 y 和 d 時(shí),偏移矢量為:offsetVector = [offsets.get(y,x,k),offsets.get(y,x,17 + k)]
為了得到關(guān)鍵點(diǎn),每個(gè)部件的熱圖 x 和 y 乘以輸出步幅,然后加到它們相應(yīng)的偏移矢量,該矢量與原始圖像的比例相同。keypointPositions = heatmapPositions * outputStride + offsetVectors
最后,每個(gè)關(guān)鍵點(diǎn)置信度得分是其熱圖位置的置信度得分。姿勢(shì)置信度得分是關(guān)鍵點(diǎn)得分的平均值。
多人姿勢(shì)判斷
多姿勢(shì)判斷運(yùn)算法則的詳細(xì)內(nèi)容就不在本文中一一贅述。 大體來(lái)說(shuō),該運(yùn)算法則的不同之處在于它使用了貪婪過(guò)程,通過(guò)沿著基于部分的圖形來(lái)跟隨位移矢量來(lái)將關(guān)鍵點(diǎn)分組成姿勢(shì)。 確切地說(shuō),就是它使用了研究論文 PersonLab 中的快速貪婪解碼算法:人物姿勢(shì)判斷和實(shí)例分割與自下而上,基于部分的幾何嵌入模型。 有關(guān)多姿勢(shì)運(yùn)算法則的更多信息,請(qǐng)閱讀完整的研究論文或查看 代碼。
注:代碼鏈接
https://github.com/tensorflow/tfjs-models/tree/master/posenet/src
最后
我們希望隨著越來(lái)越多的模型被移植導(dǎo)入到 TensorFlow.js,機(jī)器學(xué)習(xí)的世界變得對(duì)新的編碼員和制造者來(lái)說(shuō)更容易接近,更受歡迎,更有趣。 TensorFlow.js 上的 PoseNet 是一個(gè)小嘗試,使之成為可能。 我們將很樂(lè)意看到你的制作 - 并且不要忘記使用 #tensorflowjs 和 #posenet 來(lái)分享你的精彩項(xiàng)目!
聲明:文章收集于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系小編及時(shí)處理,謝謝!
歡迎加入本站公開(kāi)興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/4801.html
摘要:文和,創(chuàng)意實(shí)驗(yàn)室創(chuàng)意技術(shù)專家在機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺(jué)領(lǐng)域,姿勢(shì)預(yù)測(cè)或根據(jù)圖像數(shù)據(jù)探測(cè)人體及其姿勢(shì)的能力,堪稱最令人興奮而又最棘手的一個(gè)話題。使用,用戶可以直接在瀏覽器中運(yùn)行機(jī)器學(xué)習(xí)模型,無(wú)需服務(wù)器。 文 / ?Jane Friedhoff 和 Irene Alvarado,Google 創(chuàng)意實(shí)驗(yàn)室創(chuàng)意技術(shù)專家在機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺(jué)領(lǐng)域,姿勢(shì)預(yù)測(cè)或根據(jù)圖像數(shù)據(jù)探測(cè)人體及其姿勢(shì)的能力,堪稱最令人興...
摘要:而另一款網(wǎng)紅產(chǎn)品抖音,也在去年底上線過(guò)一個(gè)尬舞機(jī)的音樂(lè)體感游戲現(xiàn)在成了隱藏功能游戲開(kāi)始后,隨著音樂(lè)會(huì)給出不同的動(dòng)作提示,用戶按照提示擺出正確動(dòng)作即可得分。 如今說(shuō)到體感游戲,大家一定都不陌生,比如微軟的 Kinect、任天堂的 Switch,都曾是游戲業(yè)的革命性產(chǎn)品。而另一款網(wǎng)紅產(chǎn)品—抖音,也在去年底上線過(guò)一個(gè)尬舞機(jī)的音樂(lè)體感游戲(現(xiàn)在成了隱藏功能): showImg(https://...
摘要:萬(wàn)萬(wàn)沒(méi)想到,在圣誕節(jié)前夕,女神居然答應(yīng)了在下的約會(huì)請(qǐng)求。想在下正如在座的一些看官一樣,雖玉樹(shù)臨風(fēng)風(fēng)流倜儻,卻總因猜不透女孩的心思,一不留神就落得個(gè)母胎單身。在內(nèi)部將張量表示為基本數(shù)據(jù)類型的維數(shù)組。 showImg(https://segmentfault.com/img/remote/1460000017498745); 本文將結(jié)合移動(dòng)設(shè)備攝像能力與 TensorFlow.js,在瀏覽...
閱讀 3605·2021-11-23 09:51
閱讀 2812·2021-11-23 09:51
閱讀 689·2021-10-11 10:59
閱讀 1685·2021-09-08 10:43
閱讀 3239·2021-09-08 09:36
閱讀 3301·2021-09-03 10:30
閱讀 3306·2021-08-21 14:08
閱讀 2212·2021-08-05 09:59