@vominhmanh/etik_ai_edge_tool
v1.0.2
Published
Tool 2FA bằng khuôn mặt của dự án ETIK
Downloads
237
Readme
getting started
version
- Node version: 20.11.1
install
- clone etik_ai_edge_tool về, đặt ngang hàng với project của bạn.
cd etik_ai_edge_tool
-->npm run typescript
andnpm install
- đi đến project của bạn:
cd /path/to/your-project
- đi đến project của bạn:
- cài đặt project bằng
npm install ../etik_ai_edge_tool
hoặcyarn add ../etik_ai_edge_tool
- cài đặt project bằng
- copy model_tfjs từ thư viện và cho vào public folder của project của bạn:
etik_ai_edge_tool/src/model_tfjs
>>>public folder of project
- copy model_tfjs từ thư viện và cho vào public folder của project của bạn:
disable fs, path, crypto
- Để sử dụng được etik_ai_edge_tool (cụ thể là dùng opencv) trên trình duyệt, cần phải tắt fs, path, crypto. Nguồn: https://www.npmjs.com/package/@techstark/opencv-js#webpack-configuration-for-browser-usage
Đối với projects vuejs
- chỉnh sửa cài đặt trong
webpack.config.js
như sau:
module.exports = {
resolve: {
modules: [...],
fallback: {
fs: false,
path: false,
crypto: false
}
}
};
Đối với projects reactjs
- ReactJS không có file
webpack.config.js
tại root folder. Vì vậy, cần cài bổ sung react-app-rewired để ghi đè webpack.config.js. - Install react-app-rewired:
npm install react-app-rewired
- Install react-app-rewired:
- Create a file named
config-overrides.js
in the ROOT of your client/React project. NOT SRC the ROOT.
- Create a file named
- Add the following code, which ignores fs if it's not found in any of the dependencies you are using.
module.exports = function override(config, env) {
console.log("React app rewired works!")
config.resolve.fallback = {
fs: false,
path: false,
crypto: false
};
return config;
};
- Replace react-scripts in the scripts section of package.json with react-app-rewired. Example:
// Other stuff above such as dependencies section
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
},
// Other stuff below such as eslintConfig or browserslist section
- Run it and enjoy!
- Nguồn: https://stackoverflow.com/a/73661388/15850495
Usage
B0:
import * as moocAiTool from "etik_ai_edge_tool"
B1: khởi tạo và load model
- gọi hàm
moocAiTool.initialFace(videoElm)
để khởi tạo tool face - gọi hàm
moocAiTool.initialCard(videoElm)
để khởi tạo tool card. - trong đó videoElm là HTMLVideoElement của webcam
- gọi hàm
B2: executeLoop: gọi hàm
output = moocAiTool.executeFace(poseThreshold)
hoặcoutput = moocAiTool.executeCard()
để lấy output predict từ video
Example
- Xem proj ví dụ tại:
etik_ai_edge_tool/example
Output
output face có dạng
{
"codes": [
0
],
"messages": [
"Phát hiện khuôn mặt thành công."
],
"pose": {
"yaw": "center" | "right" | "left",
"pitch": "center" | "up" | "down"
},
"pose_estimation_number": {
"yaw": -15.622733828311134,
"pitch": -6.149055266655619,
"roll": -3.7043146585367506
}
}
tham khảo định nghĩa yaw, pitch, roll:
https://github.com/Mostafa-Nafie/Head-Pose-Estimation
code output
- 0: thành công
- 12: Có nhiều hơn một khuôn mặt
- 14: Khuôn mặt quá nhỏ so với khung hình
- 15:: Khuôn mặt quá to so với khung hình
mã lỗi khi phát hiện:
Nếu có lỗi thì pose và pose estimation sẽ có giá trị null
- 1: lỗi tay che
- 2: lỗi khẩu trang
- 3: lỗi kính râm
- 4: lỗi vật che phủ
- 10: lỗi đầu vào không hợp lệ
- 11: LỗiKhông tìm thấy khuôn mặt
- 13: Lỗi Khuôn mặt không thẳng.
output card có dạng
{
"code": 0
"message: "thành công.",
"label_id": 0->25,
"label_text": string tương ứng,
}
list output card:
- [ 'invalid_background', 'valid_front_CCCD', 'valid_back_CCCD', 'valid_front_CMND', 'valid_back_CMND', 'invalid_hand_cover_CCCD_front', 'invalid_hand_cover_CCCD_back', 'invalid_cut_edge_CCCD_front', 'invalid_cut_edge_CCCD_back', 'invalid_spotlight_CCCD_front', 'invalid_spotlight_CCCD_back', 'invalid_hand_cover_CMND_front', 'invalid_hand_cover_CMND_back', 'invalid_cut_edge_CMND_front', 'invalid_cut_edge_CMND_back', 'invalid_spotlight_CMND_front', 'invalid_spotlight_CMND_back', 'valid_front_chip', 'valid_back_chip', 'invalid_spotlight_CHIP_front', 'invalid_spotlight_CHIP_back', 'invalid_hand_cover_CHIP_front', 'invalid_hand_cover_CHIP_back', 'invalid_cut_edge_CHIP_front', 'invalid_cut_edge_CHIP_back', 'valid_PASSPORT' ]
output body có dạng
{
"code": 0
"message: "thành công.",
}
list body code:
- 0: thành công
- 16: Error: không phát hiện người
docs model card-validation:
https://docs.google.com/spreadsheets/d/1Rk562r-z2ZKQ6VJ8dMiy2oxtQRzH7xOnMvqKS4P5VH8/edit?pli=1&gid=1456191172#gid=1456191172