mirror of https://github.com/vladmandic/human
update changelog
parent
3fa66a05e4
commit
e90969cc72
14
CHANGELOG.md
14
CHANGELOG.md
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
# @vladmandic/human
|
# @vladmandic/human
|
||||||
|
|
||||||
Version: **0.6.1**
|
Version: **0.6.2**
|
||||||
Description: **human: 3D Face Detection, Iris Tracking and Age & Gender Prediction**
|
Description: **human: 3D Face Detection, Iris Tracking and Age & Gender Prediction**
|
||||||
|
|
||||||
Author: **Vladimir Mandic <mandic00@live.com>**
|
Author: **Vladimir Mandic <mandic00@live.com>**
|
||||||
|
@ -10,13 +10,21 @@ Repository: **<git+https://github.com/vladmandic/human.git>**
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
|
### **HEAD -> main** 2020/11/03 mandic00@live.com
|
||||||
|
- fix pause restart
|
||||||
|
- complete model refactoring
|
||||||
|
- fixed typo
|
||||||
|
|
||||||
|
### **0.6.2** 2020/11/02 mandic00@live.com
|
||||||
|
- optimized demo
|
||||||
|
- package update
|
||||||
|
|
||||||
### **0.6.1** 2020/11/02 mandic00@live.com
|
### **0.6.1** 2020/11/02 mandic00@live.com
|
||||||
- major performance improvements for all models
|
- major performance improvements for all models
|
||||||
- revert "optimized canvas handling"
|
- revert "optimized canvas handling"
|
||||||
- optimized canvas handling
|
- optimized canvas handling
|
||||||
- minor optimization to imagefx
|
- minor optimization to imagefx
|
||||||
|
- fix demo image sample
|
||||||
### **origin/main, origin/HEAD** 2020/11/01 mandic00@live.com
|
|
||||||
- added tfjs-vis to distribution
|
- added tfjs-vis to distribution
|
||||||
|
|
||||||
### **0.5.5** 2020/11/01 mandic00@live.com
|
### **0.5.5** 2020/11/01 mandic00@live.com
|
||||||
|
|
|
@ -126,10 +126,10 @@ function drawResults(input, result, canvas) {
|
||||||
// update log
|
// update log
|
||||||
const engine = human.tf.engine();
|
const engine = human.tf.engine();
|
||||||
const gpu = engine.backendInstance ? `gpu: ${(engine.backendInstance.numBytesInGPU ? engine.backendInstance.numBytesInGPU : 0).toLocaleString()} bytes` : '';
|
const gpu = engine.backendInstance ? `gpu: ${(engine.backendInstance.numBytesInGPU ? engine.backendInstance.numBytesInGPU : 0).toLocaleString()} bytes` : '';
|
||||||
const memory = `system: ${engine.state.numBytes.toLocaleString()} bytes ${gpu} tensors: ${engine.state.numTensors.toLocaleString()}`;
|
const memory = `system: ${engine.state.numBytes.toLocaleString()} bytes ${gpu} | tensors: ${engine.state.numTensors.toLocaleString()}`;
|
||||||
const processing = result.canvas ? `processing: ${result.canvas.width} x ${result.canvas.height}` : '';
|
const processing = result.canvas ? `processing: ${result.canvas.width} x ${result.canvas.height}` : '';
|
||||||
document.getElementById('log').innerText = `
|
document.getElementById('log').innerText = `
|
||||||
video: ${camera.name} facing: ${camera.facing} resolution: ${camera.width} x ${camera.height} ${processing}
|
video: ${camera.name} | facing: ${camera.facing} | resolution: ${camera.width} x ${camera.height} ${processing}
|
||||||
backend: ${human.tf.getBackend()} | ${memory} | object size: ${(str(result)).length.toLocaleString()} bytes
|
backend: ${human.tf.getBackend()} | ${memory} | object size: ${(str(result)).length.toLocaleString()} bytes
|
||||||
performance: ${str(result.performance)}
|
performance: ${str(result.performance)}
|
||||||
`;
|
`;
|
||||||
|
@ -306,7 +306,7 @@ function setupMenu() {
|
||||||
menu.addHTML('<hr style="min-width: 200px; border-style: inset; border-color: dimgray">');
|
menu.addHTML('<hr style="min-width: 200px; border-style: inset; border-color: dimgray">');
|
||||||
menu.addList('Backend', ['cpu', 'webgl', 'wasm', 'webgpu'], config.backend, (val) => config.backend = val);
|
menu.addList('Backend', ['cpu', 'webgl', 'wasm', 'webgpu'], config.backend, (val) => config.backend = val);
|
||||||
menu.addBool('Enable Profiler', config, 'profile');
|
menu.addBool('Enable Profiler', config, 'profile');
|
||||||
menu.addBool('Memory Deallocator', config, 'deallocate');
|
menu.addBool('Memory Shield', config, 'deallocate');
|
||||||
menu.addBool('Use Web Worker', ui, 'useWorker');
|
menu.addBool('Use Web Worker', ui, 'useWorker');
|
||||||
menu.addHTML('<hr style="min-width: 200px; border-style: inset; border-color: dimgray">');
|
menu.addHTML('<hr style="min-width: 200px; border-style: inset; border-color: dimgray">');
|
||||||
menu.addLabel('Enabled Models');
|
menu.addLabel('Enabled Models');
|
||||||
|
@ -359,7 +359,7 @@ function setupMenu() {
|
||||||
menuFX.addBool('Draw Polygons', ui, 'drawPolygons');
|
menuFX.addBool('Draw Polygons', ui, 'drawPolygons');
|
||||||
menuFX.addBool('Fill Polygons', ui, 'fillPolygons');
|
menuFX.addBool('Fill Polygons', ui, 'fillPolygons');
|
||||||
menuFX.addHTML('<hr style="min-width: 200px; border-style: inset; border-color: dimgray">');
|
menuFX.addHTML('<hr style="min-width: 200px; border-style: inset; border-color: dimgray">');
|
||||||
menuFX.addLabel('Image Filters');
|
menuFX.addLabel('Image Processing');
|
||||||
menuFX.addBool('Enabled', config.filter, 'enabled');
|
menuFX.addBool('Enabled', config.filter, 'enabled');
|
||||||
menuFX.addRange('Image width', config.filter, 'width', 0, 3840, 10, (val) => config.filter.width = parseInt(val));
|
menuFX.addRange('Image width', config.filter, 'width', 0, 3840, 10, (val) => config.filter.width = parseInt(val));
|
||||||
menuFX.addRange('Image height', config.filter, 'height', 0, 2160, 10, (val) => config.filter.height = parseInt(val));
|
menuFX.addRange('Image height', config.filter, 'height', 0, 2160, 10, (val) => config.filter.height = parseInt(val));
|
||||||
|
@ -381,7 +381,7 @@ function setupMenu() {
|
||||||
async function main() {
|
async function main() {
|
||||||
log('Human: demo starting ...');
|
log('Human: demo starting ...');
|
||||||
setupMenu();
|
setupMenu();
|
||||||
document.getElementById('log').innerText = `Human: version: ${human.version} TensorFlow/JS version: ${human.tf.version_core}`;
|
document.getElementById('log').innerText = `Human: version ${human.version} TensorFlow/JS: version ${human.tf.version_core}`;
|
||||||
// this is not required, just pre-warms the library
|
// this is not required, just pre-warms the library
|
||||||
status('loading');
|
status('loading');
|
||||||
await human.load();
|
await human.load();
|
||||||
|
|
|
@ -50,8 +50,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="loader" class="loader"></div>
|
<div id="loader" class="loader"></div>
|
||||||
<div id="status" class="status"></div>
|
<div id="status" class="status"></div>
|
||||||
<video id="video" playsinline class="video"></video>
|
|
||||||
<canvas id="canvas" class="canvas"></canvas>
|
<canvas id="canvas" class="canvas"></canvas>
|
||||||
|
<video id="video" playsinline class="video"></video>
|
||||||
<div id="samples-container" class="samples-container"></div>
|
<div id="samples-container" class="samples-container"></div>
|
||||||
<div id="log" class="log"></div>
|
<div id="log" class="log"></div>
|
||||||
</body>
|
</body>
|
||||||
|
|
Loading…
Reference in New Issue