added experimental body segmentation module

pull/134/head
Vladimir Mandic 2021-06-04 13:52:40 -04:00
parent 0deb783bc7
commit 2967f6fca1
17 changed files with 4496 additions and 206312 deletions

View File

@ -11,6 +11,9 @@ Repository: **<git+https://github.com/vladmandic/human.git>**
### **HEAD -> main** 2021/06/04 mandic00@live.com ### **HEAD -> main** 2021/06/04 mandic00@live.com
### **update for tfjs 3.7.0** 2021/06/04 mandic00@live.com
- add live hints to demo - add live hints to demo
- switch worker from module to iife importscripts - switch worker from module to iife importscripts
- release candidate - release candidate

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

69323
dist/human.esm.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

69329
dist/human.js vendored

File diff suppressed because one or more lines are too long

61054
dist/tfjs.esm.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,21 +1,21 @@
2021-06-04 09:18:36 INFO:  @vladmandic/human version 2.0.0 2021-06-04 13:51:15 INFO:  @vladmandic/human version 2.0.0
2021-06-04 09:18:36 INFO:  User: vlado Platform: linux Arch: x64 Node: v16.0.0 2021-06-04 13:51:15 INFO:  User: vlado Platform: linux Arch: x64 Node: v16.0.0
2021-06-04 09:18:36 INFO:  Toolchain: tfjs: 3.7.0 esbuild 0.12.6; typescript 4.2.4; typedoc: 0.20.36 eslint: 7.27.0 2021-06-04 13:51:15 INFO:  Toolchain: tfjs: 3.7.0 esbuild 0.12.6; typescript 4.2.4; typedoc: 0.20.36 eslint: 7.27.0
2021-06-04 09:18:36 INFO:  Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true} 2021-06-04 13:51:15 INFO:  Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true}
2021-06-04 09:18:36 STATE: Build for: node type: tfjs: {"imports":1,"importBytes":102,"outputBytes":1292,"outputFiles":"dist/tfjs.esm.js"} 2021-06-04 13:51:15 STATE: Build for: node type: tfjs: {"imports":1,"importBytes":102,"outputBytes":1292,"outputFiles":"dist/tfjs.esm.js"}
2021-06-04 09:18:36 STATE: Build for: node type: node: {"imports":40,"importBytes":420809,"outputBytes":371791,"outputFiles":"dist/human.node.js"} 2021-06-04 13:51:15 STATE: Build for: node type: node: {"imports":41,"importBytes":424847,"outputBytes":373624,"outputFiles":"dist/human.node.js"}
2021-06-04 09:18:36 STATE: Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":110,"outputBytes":1300,"outputFiles":"dist/tfjs.esm.js"} 2021-06-04 13:51:15 STATE: Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":110,"outputBytes":1300,"outputFiles":"dist/tfjs.esm.js"}
2021-06-04 09:18:36 STATE: Build for: nodeGPU type: node: {"imports":40,"importBytes":420817,"outputBytes":371795,"outputFiles":"dist/human.node-gpu.js"} 2021-06-04 13:51:15 STATE: Build for: nodeGPU type: node: {"imports":41,"importBytes":424855,"outputBytes":373628,"outputFiles":"dist/human.node-gpu.js"}
2021-06-04 09:18:36 STATE: Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":149,"outputBytes":1367,"outputFiles":"dist/tfjs.esm.js"} 2021-06-04 13:51:15 STATE: Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":149,"outputBytes":1367,"outputFiles":"dist/tfjs.esm.js"}
2021-06-04 09:18:36 STATE: Build for: nodeWASM type: node: {"imports":40,"importBytes":420884,"outputBytes":371867,"outputFiles":"dist/human.node-wasm.js"} 2021-06-04 13:51:15 STATE: Build for: nodeWASM type: node: {"imports":41,"importBytes":424922,"outputBytes":373700,"outputFiles":"dist/human.node-wasm.js"}
2021-06-04 09:18:36 STATE: Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2478,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"} 2021-06-04 13:51:15 STATE: Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2478,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"}
2021-06-04 09:18:36 STATE: Build for: browserNoBundle type: esm: {"imports":40,"importBytes":420911,"outputBytes":245059,"outputFiles":"dist/human.esm-nobundle.js"} 2021-06-04 13:51:15 STATE: Build for: browserNoBundle type: esm: {"imports":41,"importBytes":424949,"outputBytes":246353,"outputFiles":"dist/human.esm-nobundle.js"}
2021-06-04 09:18:37 STATE: Build for: browserBundle type: tfjs: {"modules":1299,"moduleBytes":4230827,"imports":7,"importBytes":2478,"outputBytes":1140320,"outputFiles":"dist/tfjs.esm.js"} 2021-06-04 13:51:16 STATE: Build for: browserBundle type: tfjs: {"modules":1299,"moduleBytes":4230827,"imports":7,"importBytes":2478,"outputBytes":1140320,"outputFiles":"dist/tfjs.esm.js"}
2021-06-04 09:18:37 STATE: Build for: browserBundle type: iife: {"imports":40,"importBytes":1559837,"outputBytes":1381446,"outputFiles":"dist/human.js"} 2021-06-04 13:51:16 STATE: Build for: browserBundle type: iife: {"imports":41,"importBytes":1563875,"outputBytes":1382597,"outputFiles":"dist/human.js"}
2021-06-04 09:18:37 STATE: Build for: browserBundle type: esm: {"imports":40,"importBytes":1559837,"outputBytes":1381438,"outputFiles":"dist/human.esm.js"} 2021-06-04 13:51:17 STATE: Build for: browserBundle type: esm: {"imports":41,"importBytes":1563875,"outputBytes":1382589,"outputFiles":"dist/human.esm.js"}
2021-06-04 09:18:37 INFO:  Running Linter: ["server/","demo/","src/","test/"] 2021-06-04 13:51:17 INFO:  Running Linter: ["server/","demo/","src/","test/"]
2021-06-04 09:19:05 INFO:  Linter complete: files: 67 errors: 0 warnings: 0 2021-06-04 13:51:45 INFO:  Linter complete: files: 69 errors: 0 warnings: 0
2021-06-04 09:19:05 INFO:  Generate types: ["src/human.ts"] 2021-06-04 13:51:45 INFO:  Generate types: ["src/human.ts"]
2021-06-04 09:19:10 INFO:  Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"] 2021-06-04 13:51:50 INFO:  Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"]
2021-06-04 09:19:10 INFO:  Generate TypeDocs: ["src/human.ts"] 2021-06-04 13:51:50 INFO:  Generate TypeDocs: ["src/human.ts"]
2021-06-04 09:19:28 INFO:  Documentation generated at /home/vlado/dev/human/typedoc 1 2021-06-04 13:52:08 INFO:  Documentation generated at /home/vlado/dev/human/typedoc 1

File diff suppressed because one or more lines are too long

View File

@ -102,7 +102,6 @@
<section class="tsd-index-section "> <section class="tsd-index-section ">
<h3>Properties</h3> <h3>Properties</h3>
<ul class="tsd-index-list"> <ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-class"><a href="human.html#classes" class="tsd-kind-icon">classes</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="human.html#config" class="tsd-kind-icon">config</a></li> <li class="tsd-kind-property tsd-parent-kind-class"><a href="human.html#config" class="tsd-kind-icon">config</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="human.html#draw" class="tsd-kind-icon">draw</a></li> <li class="tsd-kind-property tsd-parent-kind-class"><a href="human.html#draw" class="tsd-kind-icon">draw</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="human.html#facetriangulation" class="tsd-kind-icon">face<wbr>Triangulation</a></li> <li class="tsd-kind-property tsd-parent-kind-class"><a href="human.html#facetriangulation" class="tsd-kind-icon">face<wbr>Triangulation</a></li>
@ -162,46 +161,6 @@
</section> </section>
<section class="tsd-panel-group tsd-member-group "> <section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2> <h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="classes" class="tsd-anchor"></a>
<h3>classes</h3>
<div class="tsd-signature tsd-kind-icon">classes<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol">; </span>centernet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol">; </span>emotion<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol">; </span>facemesh<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol">; </span>faceres<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol">; </span>hand<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol">; </span>nanodet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol"> }</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<dl class="tsd-comment-tags">
<dt>internal:</dt>
<dd><p>Currently loaded classes</p>
</dd>
</dl>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">__module</span></h5>
</li>
<li class="tsd-parameter">
<h5>centernet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span></h5>
</li>
<li class="tsd-parameter">
<h5>emotion<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span></h5>
</li>
<li class="tsd-parameter">
<h5>facemesh<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span></h5>
</li>
<li class="tsd-parameter">
<h5>faceres<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span></h5>
</li>
<li class="tsd-parameter">
<h5>hand<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span></h5>
</li>
<li class="tsd-parameter">
<h5>nanodet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span></h5>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class"> <section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="config" class="tsd-anchor"></a> <a name="config" class="tsd-anchor"></a>
<h3>config</h3> <h3>config</h3>
@ -456,7 +415,7 @@
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class"> <section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="models" class="tsd-anchor"></a> <a name="models" class="tsd-anchor"></a>
<h3>models</h3> <h3>models</h3>
<div class="tsd-signature tsd-kind-icon">models<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>age<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>blazepose<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>centernet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>efficientpose<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>embedding<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>emotion<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>face<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">; </span>faceres<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>gender<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>handpose<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">; </span>movenet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>nanodet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>posenet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol"> }</span></div> <div class="tsd-signature tsd-kind-icon">models<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>age<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>blazepose<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>centernet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>efficientpose<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>embedding<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>emotion<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>face<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">; </span>faceres<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>gender<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>handpose<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">; </span>movenet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>nanodet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>posenet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">; </span>segmentation<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol"> }</span></div>
<aside class="tsd-sources"> <aside class="tsd-sources">
</aside> </aside>
<div class="tsd-comment tsd-typography"> <div class="tsd-comment tsd-typography">
@ -508,6 +467,9 @@
<li class="tsd-parameter"> <li class="tsd-parameter">
<h5>posenet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span></h5> <h5>posenet<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span></h5>
</li> </li>
<li class="tsd-parameter">
<h5>segmentation<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span></h5>
</li>
</ul> </ul>
</div> </div>
</section> </section>
@ -855,9 +817,6 @@
<li class=" tsd-kind-constructor tsd-parent-kind-class"> <li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="human.html#constructor" class="tsd-kind-icon">constructor</a> <a href="human.html#constructor" class="tsd-kind-icon">constructor</a>
</li> </li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="human.html#classes" class="tsd-kind-icon">classes</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class"> <li class=" tsd-kind-property tsd-parent-kind-class">
<a href="human.html#config" class="tsd-kind-icon">config</a> <a href="human.html#config" class="tsd-kind-icon">config</a>
</li> </li>

View File

@ -97,6 +97,7 @@
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#hand" class="tsd-kind-icon">hand</a></li> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#hand" class="tsd-kind-icon">hand</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#modelbasepath" class="tsd-kind-icon">model<wbr>Base<wbr>Path</a></li> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#modelbasepath" class="tsd-kind-icon">model<wbr>Base<wbr>Path</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#object" class="tsd-kind-icon">object</a></li> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#object" class="tsd-kind-icon">object</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#segmentation" class="tsd-kind-icon">segmentation</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#skipframe" class="tsd-kind-icon">skip<wbr>Frame</a></li> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#skipframe" class="tsd-kind-icon">skip<wbr>Frame</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#warmup" class="tsd-kind-icon">warmup</a></li> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#warmup" class="tsd-kind-icon">warmup</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#wasmpath" class="tsd-kind-icon">wasm<wbr>Path</a></li> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="config.html#wasmpath" class="tsd-kind-icon">wasm<wbr>Path</a></li>
@ -619,6 +620,33 @@
</ul> </ul>
</div> </div>
</section> </section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="segmentation" class="tsd-anchor"></a>
<h3>segmentation</h3>
<div class="tsd-signature tsd-kind-icon">segmentation<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>enabled<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>modelPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Controlls and configures all body segmentation module</p>
<ul>
<li>enabled: true/false</li>
<li>modelPath: object detection model, can be absolute path or relative to modelBasePath</li>
</ul>
</div>
</div>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5>enabled<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></h5>
</li>
<li class="tsd-parameter">
<h5>model<wbr>Path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"> <section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="skipframe" class="tsd-anchor"></a> <a name="skipframe" class="tsd-anchor"></a>
<h3>skip<wbr>Frame</h3> <h3>skip<wbr>Frame</h3>
@ -722,6 +750,9 @@
<li class=" tsd-kind-property tsd-parent-kind-interface"> <li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="config.html#object" class="tsd-kind-icon">object</a> <a href="config.html#object" class="tsd-kind-icon">object</a>
</li> </li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="config.html#segmentation" class="tsd-kind-icon">segmentation</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface"> <li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="config.html#skipframe" class="tsd-kind-icon">skip<wbr>Frame</a> <a href="config.html#skipframe" class="tsd-kind-icon">skip<wbr>Frame</a>
</li> </li>

View File

@ -116,7 +116,7 @@
</section> </section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"> <section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="canvas" class="tsd-anchor"></a> <a name="canvas" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> canvas</h3> <h3><span class="tsd-flag ts-flagOptional">Optional</span> canvas</h3>
<div class="tsd-signature tsd-kind-icon">canvas<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">HTMLCanvasElement</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">OffscreenCanvas</span></div> <div class="tsd-signature tsd-kind-icon">canvas<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">HTMLCanvasElement</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">OffscreenCanvas</span></div>
<aside class="tsd-sources"> <aside class="tsd-sources">
</aside> </aside>

8
types/config.d.ts vendored
View File

@ -179,6 +179,14 @@ export interface Config {
maxDetected: number; maxDetected: number;
skipFrames: number; skipFrames: number;
}; };
/** Controlls and configures all body segmentation module
* - enabled: true/false
* - modelPath: object detection model, can be absolute path or relative to modelBasePath
*/
segmentation: {
enabled: boolean;
modelPath: string;
};
} }
declare const config: Config; declare const config: Config;
export { config as defaults }; export { config as defaults };

19
types/human.d.ts vendored
View File

@ -5,14 +5,6 @@ import { Config } from './config';
import { Result } from './result'; import { Result } from './result';
import * as tf from '../dist/tfjs.esm.js'; import * as tf from '../dist/tfjs.esm.js';
import * as facemesh from './blazeface/facemesh'; import * as facemesh from './blazeface/facemesh';
import * as faceres from './faceres/faceres';
import * as emotion from './emotion/emotion';
import * as posenet from './posenet/posenet';
import * as handpose from './handpose/handpose';
import * as blazepose from './blazepose/blazepose';
import * as movenet from './movenet/movenet';
import * as nanodet from './object/nanodet';
import * as centernet from './object/centernet';
import * as draw from './draw/draw'; import * as draw from './draw/draw';
import { Tensor } from './tfjs/types'; import { Tensor } from './tfjs/types';
export type { Config } from './config'; export type { Config } from './config';
@ -101,16 +93,7 @@ export declare class Human {
nanodet: Model | null; nanodet: Model | null;
centernet: Model | null; centernet: Model | null;
faceres: Model | null; faceres: Model | null;
}; segmentation: Model | null;
/** @internal: Currently loaded classes */
classes: {
facemesh: typeof facemesh;
emotion: typeof emotion;
body: typeof posenet | typeof blazepose | typeof movenet;
hand: typeof handpose;
nanodet: typeof nanodet;
centernet: typeof centernet;
faceres: typeof faceres;
}; };
/** Reference face triangualtion array of 468 points, used for triangle references between points */ /** Reference face triangualtion array of 468 points, used for triangle references between points */
faceTriangulation: typeof facemesh.triangulation; faceTriangulation: typeof facemesh.triangulation;

2
types/result.d.ts vendored
View File

@ -189,7 +189,7 @@ export interface Result {
/** global performance object with timing values for each operation */ /** global performance object with timing values for each operation */
performance: Record<string, unknown>; performance: Record<string, unknown>;
/** optional processed canvas that can be used to draw input on screen */ /** optional processed canvas that can be used to draw input on screen */
readonly canvas?: OffscreenCanvas | HTMLCanvasElement; canvas?: OffscreenCanvas | HTMLCanvasElement;
/** timestamp of detection representing the milliseconds elapsed since the UNIX epoch */ /** timestamp of detection representing the milliseconds elapsed since the UNIX epoch */
readonly timestamp: number; readonly timestamp: number;
/** getter property that returns unified persons object */ /** getter property that returns unified persons object */

11
types/segmentation/segmentation.d.ts vendored Normal file
View File

@ -0,0 +1,11 @@
/**
* EfficientPose Module
*/
import { GraphModel, Tensor } from '../tfjs/types';
import { Config } from '../config';
export declare type Segmentation = boolean;
export declare function load(config: Config): Promise<GraphModel>;
export declare function predict(input: {
tensor: Tensor | null;
canvas: OffscreenCanvas | HTMLCanvasElement;
}, config: Config): Promise<Segmentation>;