diff --git a/CHANGELOG.md b/CHANGELOG.md index 35ae384..45784ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,12 +9,13 @@ ## Changelog +### **HEAD -> master** 2021/09/29 mandic00@live.com + +- fix face matcher + ### **1.5.4** 2021/09/29 mandic00@live.com -### **origin/master** 2021/09/18 mandic00@live.com - - ### **1.5.3** 2021/09/16 mandic00@live.com - simplify tfjs imports diff --git a/demo/index.js b/demo/index.js index 887016c..27281fe 100644 --- a/demo/index.js +++ b/demo/index.js @@ -9,12 +9,7 @@ const maxResults = 10; // maximum number of results to return const samples = ['sample1.jpg', 'sample2.jpg', 'sample3.jpg', 'sample4.jpg', 'sample5.jpg', 'sample6.jpg']; // sample images to be loaded using http // helper function to pretty-print json object to string -function str(json) { - let text = ''; - text += json ? JSON.stringify(json).replace(/{|}|"|\[|\]/g, '').replace(/,/g, ', ') : ''; - text += ''; - return text; -} +const str = (json) => (json ? JSON.stringify(json).replace(/{|}|"|\[|\]/g, '').replace(/,/g, ', ') : ''); // helper function to print strings to html document as a log function log(...txt) { @@ -110,12 +105,17 @@ async function main() { // initialize tfjs log('FaceAPI Test'); - // if you want to use wasm backend location for wasm binaries must be specified - // await faceapi.tf.setWasmPaths('../node_modules/@tensorflow/tfjs-backend-wasm/dist/'); - // await faceapi.tf.setBackend('wasm'); - - // default is webgl backend - await faceapi.tf.setBackend('webgl'); + const params = new URLSearchParams(location.search); + log('url options:', params.toString()); + if (params.has('backend')) { + const backend = params.get('backend'); + await faceapi.tf.setWasmPaths('https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@3.9.0/dist/'); + log('overriding backend:', backend); + await faceapi.tf.setBackend(backend); + } else { + // default is webgl backend + await faceapi.tf.setBackend('webgl'); + } await faceapi.tf.enableProdMode(); await faceapi.tf.ENV.set('DEBUG', false); @@ -163,7 +163,7 @@ async function main() { .withFaceDescriptors() .withAgeAndGender(); // print results to screen - print('TinyFace Detector', img, dataTinyYolo); + print('TinyFace:', img, dataTinyYolo); // actual model execution const dataSSDMobileNet = await faceapi .detectAllFaces(canvas, optionsSSDMobileNet) @@ -172,7 +172,7 @@ async function main() { .withFaceDescriptors() .withAgeAndGender(); // print results to screen - print('SSD MobileNet', img, dataSSDMobileNet); + print('SSDMobileNet:', img, dataSSDMobileNet); } catch (err) { log(`Image: ${img} Error during processing ${str(err)}`); // eslint-disable-next-line no-console diff --git a/package.json b/package.json index 87e96ca..df5f453 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@tensorflow/tfjs-layers": "^3.9.0", "@tensorflow/tfjs-node": "^3.9.0", "@tensorflow/tfjs-node-gpu": "^3.9.0", - "@types/node": "^16.10.1", + "@types/node": "^16.10.2", "@typescript-eslint/eslint-plugin": "^4.32.0", "@typescript-eslint/parser": "^4.32.0", "@vladmandic/build": "^0.5.3", @@ -70,7 +70,7 @@ "node-fetch": "^3.0.0", "rimraf": "^3.0.2", "seedrandom": "^3.0.5", - "simple-git": "^2.45.1", + "simple-git": "^2.46.0", "tslib": "^2.3.1", "typedoc": "^0.22.4", "typescript": "4.4.3"