Code Monkey home page Code Monkey logo

-mern-facial-recognition-website's Introduction

XÂY DỰNG WEB CLIENT CHO HỆ THỐNG AI NHẬN DIỆN KHUÔN MẶT

Tên đề tài: Xây dựng Web Client cho hệ thống AI nhận diện khuôn mặt
Công nghệ: MERN Stack
MERN Stack

Yêu cầu:

Thành viên:

  • Phan Thanh Tài MSSV: 19110452
  • Nguyễn Hiếu Đan MSSV: 19110345
  • Dương Đức Thắng MSSV: 19110461

Tìm hiểu lý thuyết về công nghệ sử dụng

1. Serveside

1.1. NodeJS

NodeJS là một môi trường runtime chạy JavaScript đa nền tảng và có mã nguồn mở, được sử dụng để chạy các ứng dụng web bên ngoài trình duyệt của client. Nền tảng này được phát triển bởi Ryan Dahl vào năm 2009, được xem là một giải pháp hoàn hảo cho các ứng dụng sử dụng nhiều dữ liệu nhờ vào mô hình hướng sự kiện (event-driven) không đồng bộ.
Ưu điểm

  • IO hướng sự kiện không đồng bộ, cho phép xử lý nhiều yêu cầu đồng thời.
  • Sử dụng JavaScript – một ngôn ngữ lập trình dễ học.
  • Chia sẻ cùng code ở cả phía client và server.
  • NPM(Node Package Manager) và module Node đang ngày càng phát triển mạnh mẽ.
  • Cộng đồng hỗ trợ tích cực.
  • Cho phép stream các file có kích thước lớn.
    Nhược điểm
  • Không có khả năng mở rộng, vì vậy không thể tận dụng lợi thế mô hình đa lõi trong các phần cứng cấp server hiện nay.
  • Khó thao tác với cơ sử dữ liệu quan hệ.
  • Mỗi callback sẽ đi kèm với rất nhiều callback lồng nhau khác.
  • Cần có kiến thức tốt về JavaScript.
  • Không phù hợp với các tác vụ đòi hỏi nhiều CPU.

1.2. Expressjs

Expressjs hay còn được viết là Express js, Express.js. Đây là một framework mã nguồn mở miễn phí cho Node.js. Express.js được sử dụng trong thiết kế và xây dựng các ứng dụng web một cách đơn giản và nhanh chóng. Vì Express js chỉ yêu cầu ngôn ngữ lập trình Javascript nên việc xây dựng các ứng dụng web và API trở nên đơn giản hơn với các lập trình viên và nhà phát triển.Expressjs cũng là một khuôn khổ của Node.js do đó hầu hết các mã code đã được viết sẵn cho các lập trình viên có thể làm việc.

2. Clientside

2.1. ReactJs

ReactJS là một opensource được phát triển bởi Facebook, ra mắt vào năm 2013, bản thân nó là một thư viện Javascript được dùng để để xây dựng các tương tác với các thành phần trên website. Một trong những điểm nổi bật nhất của ReactJS đó là việc render dữ liệu không chỉ thực hiện được trên tầng Server mà còn ở dưới Client nữa.

2.2. Chakra-ui

Chakra UI là một bộ công cụ thành phần giúp các nhà phát triển nhanh chóng xây dựng các thành phần giao diện người dùng có thể truy cập và tái sử dụng cho các ứng dụng web của họ. Nó được xây dựng dựa trên React và sử dụng hệ thống được tạo kiểu cho công cụ chủ đề của nó. Mục tiêu của Chakra UI là giúp các lập trình viên dễ dàng tạo ra các giao diện người dùng đẹp, đáp ứng và dễ tiếp cận với nỗ lực tối thiểu. Bộ công cụ bao gồm nhiều thành phần sẵn sàng sử dụng được thiết kế để có thể dễ dàng kết hợp và mở rộng. Chakra UI là mã nguồn mở và sự phát triển của nó được tài trợ bởi Segment.

Set up

  • Clientside
    Install dependencies

    yarn install

  • Serverside

    Variable name Obligatory Description Default
    PORT Port to listen to (listen) server api 5000
    MONGO_URI Connection string to connect to MongoDb
    JWT_ACCESS_KEY Secret key, used in Json Web token (accessToken)
    JWT_REFRESH_KEY Secret key, used in Json Web token (refreshToken)

List API

  • POST: api/user/login -- [content-type: application/json]
    Request:

    params type require
    email string true
    password string true

    Response:

"data": {
  "_id": "637a764d1436136c37a2badb",  
  "fullName": "ThanggDuongg",  
  "email": "[email protected]",  
  "image": "https://api.cloudinary.com/v1_1/thangduong/image/upload",  
  "role": "USER",  
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MzdhNzY0ZDE0MzYxMzZjMzdhMmJhZGIiLCJmdWxsTmFtZSI6IlRoYW5nZ0R1b25nZyIsImVtYWlsIjoidGhhbmdkdWMuZHVvbmcxNEBnbWFpbC5jb20iLCJpbWFnZSI6Imh0dHBzOi8vYXBpLmNsb3VkaW5hcnkuY29tL3YxXzEvdGhhbmdkdW9uZy9pbWFnZS91cGxvYWQiLCJyb2xlIjoiVVNFUiIsImlhdCI6MTY3MDQ4ODI4OCwiZXhwIjoxNjcwNDg4ODg4fQ.etEoHH_daMn0Ix1-r6EGToARB5FixCaoFeaJSSBaXMo",  
  "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRoYW5nZHVjLmR1b25nMTRAZ21haWwuY29tIiwiaWF0IjoxNjcwNDg4Mjg4LCJleHAiOjE2NzMwODAyODh9.zFayb3soc9sVl9oG1rtUjTJzmwESza0Ad1i47CfsncY"  
},  
"message": "successfully"  
  • POST: api/user/register -- [content-type: application/json]
    Request:

    params type require
    fullName string true
    email string true
    password string true
    image string true
    role string default user

    Response:

"data": {
  "_id": "637a764d1436136c37a2badb",  
  "fullName": "ThanggDuongg",  
  "email": "[email protected]",  
  "image": "https://api.cloudinary.com/v1_1/thangduong/image/upload",  
  "role": "USER",  
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MzdhNzY0ZDE0MzYxMzZjMzdhMmJhZGIiLCJmdWxsTmFtZSI6IlRoYW5nZ0R1b25nZyIsImVtYWlsIjoidGhhbmdkdWMuZHVvbmcxNEBnbWFpbC5jb20iLCJpbWFnZSI6Imh0dHBzOi8vYXBpLmNsb3VkaW5hcnkuY29tL3YxXzEvdGhhbmdkdW9uZy9pbWFnZS91cGxvYWQiLCJyb2xlIjoiVVNFUiIsImlhdCI6MTY3MDQ4ODI4OCwiZXhwIjoxNjcwNDg4ODg4fQ.etEoHH_daMn0Ix1-r6EGToARB5FixCaoFeaJSSBaXMo",  
  "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRoYW5nZHVjLmR1b25nMTRAZ21haWwuY29tIiwiaWF0IjoxNjcwNDg4Mjg4LCJleHAiOjE2NzMwODAyODh9.zFayb3soc9sVl9oG1rtUjTJzmwESza0Ad1i47CfsncY"  
},  
"message": "successfully"  
  • GET: api/user/confirmation/:token -- [content-type: application/json]
  • POST: api/user/reset-password -- [content-type: application/json]
  • GET: api/user/renew-password/:email -- [content-type: application/json]
  • POST: api/user/refresh-token -- [content-type: application/json]
  • POST: api/iamge/detect-one-face -- [content-type: application/json]

Implement AI

Clarifai

Face-api

Tensorflowjs

library: react-use-face-detection

Authentication with FaceIO

Services

  • Nhận diện đơn khuôn mặt từ url ảnh
  • Nhận diện nhiều khuôn mặt từ ảnh upload
  • Nhận diện, vẽ mask, detect emotion live camera
  • Nhận diện nhiều khuôn mặt, đếm khuôn mặt live camera
  • Đăng ký, đăng nhập bằng mặt
  • Nhận diện, vẽ mask, detect emotion từ url hoặc upload

Phân công công việc

  • Nguyễn Hiếu Đan: Xử lý backend Nodejs, research train model Clarifai, tìm hiểu sử dụng Clarifai clientside và serverside
  • Dương Đức Thắng: Research, implement auth với face, integrate API nhận diện Clarifai, research tensorflowjs, xử lý nhận diện hình ảnh webcam
  • Phan Thanh Tài: Hoàn thiện UI/interface, integrate API đăng nhập đăng kí, tìm hiểu train model face-api.js, xử lý hình ảnh nhận diện từ URL

Một vài kết quả thu được

  • Auth Face
    login

  • Clarifai Clarifai

  • Multiple Faces Mul

  • Face api fapi

-mern-facial-recognition-website's People

Contributors

hieudan26 avatar taiwd123 avatar thanggduongg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.