justadudewhohacks / face-api.js

JavaScript API for face detection and face recognition in the browser and nodejs with tensorflow.js
MIT License
16.7k stars 3.71k forks source link

Is this package available for Angular? #161

Open mustafa-qamaruddin opened 5 years ago

mustafa-qamaruddin commented 5 years ago

I'm trying to include this package in Angular 7 via npm i face-api.js, but I'm always getting:

error TS2304: Cannot find name 'faceapi'.

Any hints or quick steps to include it correctly in Angular?

mustafa-qamaruddin commented 5 years ago

import * as faceapi from 'face-api.js';

seems to solve the issue

mustafa-qamaruddin commented 5 years ago

I am getting these warnings:

client:154 ./node_modules/@tensorflow/tfjs-core/dist/tf-core.esm.js Module not found: Error: Can't resolve 'crypto' in '/home/qamaruddin/eclipse-workspace/imgproc-frontend-angular/node_modules/@tensorflow/tfjs-core/dist' warnings @ client:154 onmessage @ socket.js:41 EventTarget.dispatchEvent @ sockjs.js:170 (anonymous) @ sockjs.js:887 SockJS._transportMessage @ sockjs.js:885 EventEmitter.emit @ sockjs.js:86 WebSocketTransport.ws.onmessage @ sockjs.js:2961 wrapFn @ zone.js:1188 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:421 push../node_modules/zone.js/dist/zone.js.Zone.runTask @ zone.js:188 push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask @ zone.js:496 invokeTask @ zone.js:1540 globalZoneAwareCallback @ zone.js:1566 client:154 ./node_modules/tfjs-image-recognition-base/build/es6/env/initialize.js Module not found: Error: Can't resolve 'fs' in '/home/qamaruddin/eclipse-workspace/imgproc-frontend-angular/node_modules/tfjs-image-recognition-base/build/es6/env'

The camera opens but no face tracking overlay :(

mustafa-qamaruddin commented 5 years ago

Including the js doesn't seem to resolve it either:

mustafa-qamaruddin commented 5 years ago

It seems there are plenty of complaints which I have no clue how to solve:

ERROR in src/app/logger.service.ts(29,30): error TS2339: Property 'stack' does not exist on type '{}'.
src/face/face.component.ts(120,42): error TS2345: Argument of type 'FaceDetectionWithLandmarks<FaceLandmarks68>[]' is not assignable to parameter of type 'FaceLandmarks | FaceLandmarks[]'.
  Type 'FaceDetectionWithLandmarks<FaceLandmarks68>[]' is not assignable to type 'FaceLandmarks[]'.
    Type 'FaceDetectionWithLandmarks<FaceLandmarks68>' is not assignable to type 'FaceLandmarks'.
      Property '_shift' is missing in type 'FaceDetectionWithLandmarks<FaceLandmarks68>'.
justadudewhohacks commented 5 years ago

What typescript version are you using, maybe there is a mismatch between the tfjs-core version you installed and the version of face-api.js (should be 0.13.8)?

sjamesexamsoft commented 5 years ago

I am seeing this same problem with the latest clean build of an angular 7 application. For reference, here is the package.json for a minimal app I created just to test this error. { "name": "ang-face", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/animations": "~7.2.0", "@angular/common": "~7.2.0", "@angular/compiler": "~7.2.0", "@angular/core": "~7.2.0", "@angular/forms": "~7.2.0", "@angular/platform-browser": "~7.2.0", "@angular/platform-browser-dynamic": "~7.2.0", "@angular/router": "~7.2.0", "core-js": "^2.5.4", "face-api.js": "^0.18.0", "rxjs": "~6.3.3", "tslib": "^1.9.0", "zone.js": "~0.8.26" }, "devDependencies": { "@angular-devkit/build-angular": "~0.13.0", "@angular/cli": "~7.3.3", "@angular/compiler-cli": "~7.2.0", "@angular/language-service": "~7.2.0", "@types/node": "~8.9.4", "@types/jasmine": "~2.8.8", "@types/jasminewd2": "~2.0.3", "codelyzer": "~4.5.0", "jasmine-core": "~2.99.1", "jasmine-spec-reporter": "~4.2.1", "karma": "~4.0.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.1", "karma-jasmine": "~1.1.2", "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~5.4.0", "ts-node": "~7.0.0", "tslint": "~5.11.0", "typescript": "~3.2.2" } }

janainafortunato commented 5 years ago

Boa noite pessoal.

Alguém saber o que é isso ? Estou tentando criar a pasta dist com o comando ng build --prod

ERROR in src/app/components/camera/face-detection.1.ts(1,26): error TS2307: Cannot find module './js/face-api'.

Obrigada por ter respondido a minha outra pergunta pessoal, ajudou bastante ! grata !!!!

jeffreytgilbert commented 5 years ago

The typescript version that google use to build typescript ends in .2222 i think, or something along those lines. If you try that version and it works, let us know on the ticket so it can be closed out :)

janainafortunato commented 5 years ago

Thank you, my doubt has been resolved. The project I was studying was without the dist folder and the main.js file was missing, it was an upgrade in the gitignore file. But thank you so much for having responded. Thankful !

jeffreytgilbert commented 5 years ago

@justadudewhohacks this can be closed.