├── .gitignore ├── .htaccess ├── .vscode ├── jsconfig.json ├── main.js └── settings.json ├── 404.html ├── CODE_OF_CONDUCT.md ├── README.md ├── backend └── server.js ├── database ├── db.js ├── dump.js └── model │ └── schema.js ├── package-lock.json ├── package.json └── public ├── base.ejs ├── contact.ejs ├── css ├── button.css ├── contact.css ├── error.css ├── faq.css ├── index.css ├── swiper-bundle.min.css ├── testimonial.css └── translate.css ├── faq.ejs ├── images ├── bugError.svg ├── contact.png ├── face1.jpeg ├── face2.jpeg ├── face3.jpeg ├── face4.jpeg ├── face5.jpeg ├── face6.jpeg ├── face7.jpeg ├── face8.jpeg ├── face9.jpeg ├── favicon.ico └── pow-button.png ├── js ├── contact.js ├── darkMode.js ├── error.js ├── face-api.min.js ├── landing.js ├── script.js ├── scrollreveal.min.js ├── similarity.js ├── swiper-bundle.min.js ├── testimonial.js ├── translate.js └── uploadPic.js ├── landing.html ├── models ├── face_expression_model-shard1 ├── face_expression_model-weights_manifest.json ├── face_landmark_68_model-shard1 ├── face_landmark_68_model-weights_manifest.json ├── face_landmark_68_tiny_model-shard1 ├── face_landmark_68_tiny_model-weights_manifest.json ├── face_recognition_model-shard1 ├── face_recognition_model-shard2 ├── face_recognition_model-weights_manifest.json ├── tiny_face_detector_model-shard1 └── tiny_face_detector_model-weights_manifest.json ├── similarity.ejs ├── testimonial.ejs ├── uploadPic.ejs └── weights ├── age_gender_model-shard1 ├── age_gender_model-weights_manifest.json ├── face_expression_model-shard1 ├── face_expression_model-weights_manifest.json ├── face_landmark_68_model-shard1 ├── face_landmark_68_model-weights_manifest.json ├── face_landmark_68_tiny_model-shard1 ├── face_landmark_68_tiny_model-weights_manifest.json ├── face_recognition_model-shard1 ├── face_recognition_model-shard2 ├── face_recognition_model-weights_manifest.json ├── mtcnn_model-shard1 ├── mtcnn_model-weights_manifest.json ├── ssd_mobilenetv1_model-shard1 ├── ssd_mobilenetv1_model-shard2 ├── ssd_mobilenetv1_model-weights_manifest.json ├── tiny_face_detector_model-shard1 └── tiny_face_detector_model-weights_manifest.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* 131 | -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | ErrorDocument 404 /404.html -------------------------------------------------------------------------------- /.vscode/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "lib": [ 5 | "esnext" 6 | ] 7 | } 8 | } -------------------------------------------------------------------------------- /.vscode/main.js: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | // @ts-check 4 | // API: https://code.visualstudio.com/api/references/vscode-api 5 | 6 | function activate(_context) { 7 | window.showInformationMessage('Hello, World!'); 8 | } 9 | 10 | function deactivate() {} 11 | 12 | module.exports = { activate, deactivate } 13 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "liveServer.settings.port": 5501 3 | } -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Error 404 8 | 9 | 10 | 11 |
12 |
13 |
14 |
15 | Oops! Something went wrong... 16 |

Error 404

17 |

18 | Hey buddy, sorry for the inconvenience!!!!
19 | But you've found a page that doesn't exist. 20 |

21 | 22 | Go Home 23 | 24 |
25 | 26 |
27 | 28 |
29 |
30 |
31 | 32 | 37 |
38 |
39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## :memo: Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## :scroll: Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## :rocket: Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | Kishan Rajput. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning :warning: 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Emotion Detection Using JS 3 | 4 | 5 | ![68747470733a2f2f63646e352e766563746f7273746f636b2e636f6d2f692f3130303078313030302f39362f39342f766964656f2d7765622d63616d2d636861742d63616d6572612d69636f6e2d77656263616d2d766563746f722d32323932393639342e6a7067](https://user-images.githubusercontent.com/55338588/219953534-e379c4a1-7367-42a2-bd75-50c71f5a8144.jpg) 6 | 7 | 8 | 9 | ## About The Project 10 |
11 | 12 |
13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | ## 💥 Features 27 | 28 | - Light/dark mode toggle 29 | 30 | 31 | 32 | ## 📌 Tech Stack 33 | 34 | ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) 35 | ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) 36 | ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) 37 | ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white) 38 | 39 | ## 🚀 PENDING WORK: To Be Done 40 | 41 | 1. Make a small input form which takes name age gender as input below the video tag. 42 | 43 | 2. Improving the UI using HTML CSS JS for a greater attractive LOOK. 44 | 45 | 3. Make sure to raise the issues and then make the contributions. 46 | 47 | **Let's make it A GREAT UI** 48 | 49 | 50 | ## 🕸 IMPORTANT: Bug Fixes 51 | 52 | 1. **`navigator.getUserMedia`** 53 | 54 | `navigator.getUserMedia` is now deprecated and is replaced by `navigator.mediaDevices.getUserMedia`. To fix this bug replace all versions of `navigator.getUserMedia` with `navigator.mediaDevices.getUserMedia`. 55 | 56 | 2. **`Low-end Devices Bug`** 57 | 58 | The video eventListener for `play` fires up too early on low-end machines, before the video is fully loaded, which causes errors to pop up from the Face API and terminates the script (tested on Debian [Firefox] and Windows [Chrome, Firefox]). Replaced by `playing` event, which fires up when the media has enough data to start playing. 59 | 60 | 61 | 62 | ## 📸 Screenshots Of The Project 63 | 64 | 65 | ![ss1](https://user-images.githubusercontent.com/91181981/222946613-4ede0f58-9026-40ca-8d59-46ea74de6702.png) 66 | 67 | 68 | ![ss2](https://user-images.githubusercontent.com/91181981/222946635-0d6be4a6-c3a7-406c-a38f-3ccb9da2a405.png) 69 | 70 | 71 | ![ss3](https://user-images.githubusercontent.com/91181981/222946638-8932d674-0215-4250-b829-b18995ad7095.png) 72 | 73 | ![ss5](https://user-images.githubusercontent.com/91181981/222946643-544d35ee-ed7e-4a3f-98c2-215a5b1eb23b.png) 74 | ![ss6](https://user-images.githubusercontent.com/91181981/222946906-ff01f2c5-30dd-4330-ae7c-805d0db779a2.png) 75 | 76 | ![ss4](https://user-images.githubusercontent.com/91181981/222946645-11017788-23da-44b8-afb8-9e7bdc5ff60c.png) 77 | 78 | 79 | 80 | ## 📑 Contribution Guidelines 81 | 82 | 1. Issues will be assigned on a First-Come-First-Serve basis and are applicable only when they are opted through GitHub. 83 | 84 | 2. Each issue needs to be completed within a specific time limit according to its difficulty level (Easy: 1 day, Medium: 2-3 days and Hard: 4 days). 85 | 86 | 3. If a mentee is unable to solve the allotted issue within the given period, the issue will be passed to other contenders on the discretion of the mentor. 87 | 88 | 4. For any doubts feel free to ask your queries to the mentors or peer mentees in the discord. 89 | 90 | 91 | ## 🤝 How To Contribute ? 92 | 93 | If you think that you can add a new feature or want to fix a bug, we invite you to contribute to Emotion-detection-using-JS and make this project better. To start contributing, follow the below instructions: 94 | 95 | 1. Create a folder at your desire location (usually at your desktop). 96 | 97 | 2. Open Git Bash Here 98 | 99 | 3. Create a Git repository. 100 | 101 | Run command `git init` 102 | 103 | 4. Fork this [Repository](https://github.com/mrsparkle-70/Emotion-detection-using-JS). 104 | 105 | 5. Clone the forked repository in your local system. 106 | 107 | ```bash 108 | git clone https://github.com//Emotion-detection-using-JS 109 | ``` 110 | 111 | 6. Run the following commands in the root directory 112 | ```bash 113 | # Install NodeJS modules 114 | npm install 115 | 116 | # Start the development server 117 | npm start 118 | 119 | # This will start dev server at localhost:3000 120 | ``` 121 | 122 | 7. Raise an issue if you find a bug or add a feature. 123 | 124 | 8. Wait for the issue to be assigned and proceed only after the issue is assigned to you. 125 | 126 | 9. Navigate to the project directory. 127 | 128 | ```bash 129 | cd Emotion-detection-using-JS 130 | ``` 131 | 132 | 10. Add a reference(remote) to the original repository. 133 | 134 | ```bash 135 | git remote add upstream https://github.com/mrsparkle-70/Emotion-detection-using-JS.git 136 | ``` 137 | 138 | 11. Check the remotes for this repository. 139 | 140 | ```bash 141 | git remote -v 142 | ``` 143 | 144 | 12. Always take a pull from the upstream repository to your main branch to keep it updated as per the main project repository. 145 | 146 | ```bash 147 | git pull upstream main 148 | ``` 149 | 150 | 13. Create a new branch for your feature. 151 | 152 | ```bash 153 | git checkout -b 154 | ``` 155 | 156 | 14. Perfom your desired changes to the code base. 157 | 158 | 159 | 15. Track and stage your changes. 160 | 161 | ```bash 162 | # Track the changes 163 | git status 164 | 165 | # Add changes to Index 166 | git add . 167 | ``` 168 | 169 | 16. Commit your changes. 170 | 171 | ```bash 172 | git commit -m "your_commit_message" 173 | ``` 174 | 175 | 17. Push your committed changes to the remote repo. 176 | 177 | ```bash 178 | git push origin 179 | ``` 180 | 181 | 18. Go to your forked repository on GitHub and click on `Compare & pull request`. 182 | 183 | 19. Add an appropriate title and description to your pull request explaining your changes and efforts done. 184 | 185 | 20. Click on `Create pull request`. 186 | 187 | 188 | ### Congrats! 🥳 You've made your first pull request to this project repo. 189 | 190 | Wait for your pull request to be reviewed and if required suggestions would be provided to improve it. 191 | 192 | Celebrate 🥳 your success after your pull request is merged successfully. 193 | 194 | 195 | ## 📑 Code Of Conduct 196 | 197 | To maintain a safe and inclusive space for everyone to learn and grow, contributors are advised to follow the 198 | [Code Of Conduct](https://github.com/mrsparkle-70/Emotion-detection-using-JS/blob/main/CODE_OF_CONDUCT.md) 199 | 200 | 201 | ## 👨‍💻 GitHub Beginner's Guide 202 | 203 | **Are you a beginner in using Github?** 204 | 205 | You can refer to the following articles on the basics of Git and Github and also contact me, in case you are stuck: 206 | 207 | - [**Forking a Repo**](https://docs.github.com/en/get-started/quickstart/fork-a-repo) 208 | 209 | - [**Cloning a Repo**](https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/working-with-your-remote-repository-on-github-or-github-enterprise/creating-an-issue-or-pull-request) 210 | 211 | - [**How to create a Pull Request ?**](https://opensource.com/article/19/7/create-pull-request-github) 212 | 213 | - [**Getting started with Git and GitHub**](https://towardsdatascience.com/getting-started-with-git-and-github-6fcd0f2d4ac6) 214 | 215 | 216 | 217 | ## 🤵 Project Admin 218 | 219 | 220 | 221 | 222 | 223 | ## 😍 Our Valuable Contributors 224 | 225 | Thanks to these wonderful people ✨ 226 | 227 | 228 | 229 | 230 | 231 | 💙 Happy Contributions !! 💙 232 | 233 | 234 | ## 📝 Feedback 235 | 236 | If you have any feedback, please reach out to us at edsubham@gmail.com 237 | 238 | ## 📜 License 239 | 240 | Distributed under the MIT License. 241 | [MIT](https://choosealicense.com/licenses/mit/) 242 | 243 | [![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/) 244 | -------------------------------------------------------------------------------- /backend/server.js: -------------------------------------------------------------------------------- 1 | import express from 'express' 2 | import cors from 'cors' 3 | import Connection from '../database/db.js' 4 | import bp from 'body-parser' 5 | import User from '../database/model/schema.js'; 6 | 7 | const app = express(); 8 | app.use(cors()); 9 | 10 | const PORT = 3000; 11 | 12 | //setting up viewport for ejs 13 | app.set('view engine', 'ejs'); 14 | 15 | //loading static asssets 16 | app.use(express.static("./public")) 17 | 18 | app.use(bp.json()); 19 | app.use(bp.urlencoded({extended: false})) 20 | 21 | // Home route 22 | app.get('/', (req, res) => { 23 | res.render('../public/base'); 24 | }) 25 | 26 | // Contact route 27 | app.get('/contact', (req, res) => { 28 | res.render('../public/contact'); 29 | }) 30 | 31 | // faq route 32 | app.get('/faq', (req, res) => { 33 | res.render('../public/faq'); 34 | }) 35 | 36 | // similarity route 37 | app.get('/similarity', (req, res) => { 38 | res.render('../public/similarity'); 39 | }) 40 | 41 | // Testimonial route 42 | app.get('/testimonial', (req, res) => { 43 | res.render('../public/testimonial'); 44 | }) 45 | 46 | // UploadPic route 47 | app.get('/uploadPic', (req, res) => { 48 | res.render('../public/uploadPic'); 49 | }) 50 | 51 | 52 | 53 | //Database route 54 | app.post('/savetodb', (req, res) => { 55 | const name = req.body.name 56 | const age = req.body.age 57 | var gender = req.body.gender 58 | 59 | if (gender == "1") { 60 | gender = "Male" 61 | } 62 | else if (gender == "2") { 63 | gender = "Female" 64 | } 65 | else { 66 | gender == "Prefer Not to say" 67 | } 68 | const newUser = new User({ 69 | name: name, 70 | age: age, 71 | gender: gender 72 | }) 73 | try { 74 | newUser.save() 75 | res.status(201).send("Voila! Data saved Successfully !!!"); 76 | } 77 | catch { 78 | console.log("Couldnot save data to Database") 79 | } 80 | }) 81 | 82 | app.listen(PORT, () => { 83 | console.log("App listening at port " + PORT) 84 | // try{ 85 | // Connection(); 86 | // } 87 | // catch{ 88 | // console.log("Couldnot Connect to Database") 89 | // } 90 | }) 91 | 92 | -------------------------------------------------------------------------------- /database/db.js: -------------------------------------------------------------------------------- 1 | import mongoose from "mongoose"; 2 | 3 | const Connection = () => { 4 | const MONGODB_URI = "mongodb://127.0.0.1:27017/EmotionDetectionJS" 5 | 6 | mongoose.set('strictQuery', false); 7 | mongoose.connect(MONGODB_URI); 8 | 9 | mongoose.connection.on('connected', () => { 10 | console.log("Database connected successfully"); 11 | }) 12 | mongoose.connection.on('disconnected', () => { 13 | console.log("Database Disconnected"); 14 | }) 15 | 16 | mongoose.connection.on('error', () => { 17 | console.log('Error connecting the database'); 18 | }) 19 | } 20 | 21 | export default Connection; -------------------------------------------------------------------------------- /database/dump.js: -------------------------------------------------------------------------------- 1 | // NOTE : To execute this script "mongodb-database-tools" must be installed and setup Environment into the system 2 | 3 | import { exec } from 'child_process'; 4 | 5 | // Database Name 6 | const dbName = 'EmotionDetectionJS'; 7 | 8 | // Output Directory 9 | const outputDir = './database/dump'; 10 | 11 | // Dump Command 12 | const command = `mongodump --db ${dbName} --out ${outputDir}`; 13 | 14 | exec(command, (error, stdout, stderr) => { 15 | if (error) { 16 | console.error(`Error: ${error.message}`); 17 | return; 18 | } 19 | if (stderr) { 20 | console.error(`stderr: ${stderr}`); 21 | return; 22 | } 23 | console.log(`Database dump saved to ${outputDir}`); 24 | }); 25 | -------------------------------------------------------------------------------- /database/model/schema.js: -------------------------------------------------------------------------------- 1 | import mongoose from "mongoose"; 2 | const { Schema } = mongoose; 3 | 4 | const userSchema = new Schema({ 5 | name: String, 6 | age: Number, 7 | gender: String 8 | }); 9 | 10 | const User = mongoose.model('user', userSchema); 11 | 12 | export default User; -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "emotion-detection-using-js", 3 | "version": "1.0.0", 4 | "description": "A JS application used to detect face emotions", 5 | "main": "backend/server.js", 6 | "type": "module", 7 | "scripts": { 8 | "start": "nodemon `backend/server.js`", 9 | "dump": "node database/dump.js" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/mrsparkle-70/Emotion-detection-using-JS.git" 14 | }, 15 | "keywords": [ 16 | "emotions.", 17 | "machine-learning" 18 | ], 19 | "author": "Subham Sinha", 20 | "license": "ISC", 21 | "bugs": { 22 | "url": "https://github.com/mrsparkle-70/Emotion-detection-using-JS/issues" 23 | }, 24 | "homepage": "https://github.com/mrsparkle-70/Emotion-detection-using-JS#readme", 25 | "dependencies": { 26 | "body-parser": "^1.20.2", 27 | "cors": "^2.8.5", 28 | "ejs": "^3.1.9", 29 | "express": "^4.18.2", 30 | "mongoose": "^7.0.1", 31 | "nodemon": "^2.0.21" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /public/base.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Emotion Detector 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 32 |
33 | 109 | 110 | 111 |
112 |

The Cam is currently Off..

113 | 114 |
115 | 116 |
117 |
118 | 119 |
120 |
121 | 122 |
123 |
124 | 130 |
131 |
132 | 133 |
134 |
135 | 136 | 179 | 180 | 188 | 189 | 190 | -------------------------------------------------------------------------------- /public/contact.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Emotion Detector - Contact Us 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 108 |
109 |
110 |

Contact Us

111 |

We would love to hear from you

112 |
113 |
114 | 115 |
116 |
117 |

We're here to help!

118 |

Submit your information and we will get back to you as soon as possible.

119 |
120 |
121 |
122 |
123 |
124 | 125 | 126 | 127 | 128 | 129 | 131 | 132 | 133 |
134 | 135 | 136 |
137 |
138 |
139 |
140 | 141 | 142 | 143 | 144 | 145 | 188 | 189 | 197 | -------------------------------------------------------------------------------- /public/css/button.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* CSS */ 4 | .button-85 { 5 | padding: 0.6em 2em; 6 | border: none; 7 | outline: none; 8 | color: rgb(255, 255, 255); 9 | background: #111; 10 | cursor: pointer; 11 | position: relative; 12 | z-index: 0; 13 | border-radius: 10px; 14 | user-select: none; 15 | -webkit-user-select: none; 16 | touch-action: manipulation; 17 | } 18 | 19 | .button-85:before { 20 | content: ""; 21 | background: linear-gradient( 22 | 45deg, 23 | #ff0000, 24 | #ff7300, 25 | #fffb00, 26 | #48ff00, 27 | #00ffd5, 28 | #002bff, 29 | #7a00ff, 30 | #ff00c8, 31 | #ff0000 32 | ); 33 | position: absolute; 34 | top: -2px; 35 | left: -2px; 36 | background-size: 400%; 37 | z-index: -1; 38 | filter: blur(5px); 39 | -webkit-filter: blur(5px); 40 | width: calc(100% + 4px); 41 | height: calc(100% + 4px); 42 | animation: glowing-button-85 20s linear infinite; 43 | transition: opacity 0.3s ease-in-out; 44 | border-radius: 10px; 45 | } 46 | 47 | @keyframes glowing-button-85 { 48 | 0% { 49 | background-position: 0 0; 50 | } 51 | 50% { 52 | background-position: 400% 0; 53 | } 54 | 100% { 55 | background-position: 0 0; 56 | } 57 | } 58 | 59 | .button-85:after { 60 | z-index: -1; 61 | content: ""; 62 | position: absolute; 63 | width: 100%; 64 | height: 100%; 65 | background: #222; 66 | left: 0; 67 | top: 0; 68 | border-radius: 10px; 69 | } -------------------------------------------------------------------------------- /public/css/contact.css: -------------------------------------------------------------------------------- 1 | input[type=text],input[type=number], select, textarea { 2 | width: 100%; 3 | padding: 12px; 4 | border: 3px solid rgb(91, 91, 240); 5 | border-radius: 5px; 6 | margin-top: 6px; 7 | margin-bottom: 16px; 8 | resize: vertical; 9 | } 10 | 11 | input[type=submit] { 12 | background-color:#3586ff; 13 | color: white; 14 | padding: 12px 20px; 15 | border: none; 16 | cursor: pointer; 17 | font-weight: bold; 18 | letter-spacing: 2px; 19 | border-radius: 10px; 20 | margin-top: 15px; 21 | font-size: 12px; 22 | text-transform: uppercase; 23 | } 24 | 25 | form{ 26 | color: black; 27 | } 28 | 29 | .herocontainer{ 30 | text-align: center; 31 | } 32 | .herocontainer h1{ 33 | margin-top: 100px; 34 | color: maroon; 35 | text-transform: uppercase; 36 | font-size: 3rem; 37 | letter-spacing: 3px; 38 | } 39 | 40 | .herocontainer h4{ 41 | color: rgba(0,0,0,0.85); 42 | letter-spacing: 3.5px; 43 | } 44 | input[type=submit]:hover { 45 | background-color: white; 46 | color: black; 47 | border: 3px solid rgb(91,91,240); 48 | 49 | } 50 | .row{ 51 | display: flex; 52 | flex-direction: row !important; 53 | padding: 100px; 54 | overflow-x: hidden !important; 55 | } 56 | 57 | textarea{ 58 | height: 160px !important; 59 | } 60 | 61 | .column { 62 | width: 50% !important; 63 | padding: 20px; 64 | overflow: hidden; 65 | } 66 | #comping{ 67 | float: left; 68 | } 69 | 70 | .column h3{ 71 | font-weight: bold; 72 | font-size: 1.6rem; 73 | letter-spacing: 1.5px; 74 | color: maroon; 75 | 76 | } 77 | 78 | .column p{ 79 | font-size: 1.1rem; 80 | color: black; 81 | } 82 | .row:after { 83 | content: ""; 84 | display: table; 85 | clear: both; 86 | } 87 | 88 | .bubblescontainer1 { 89 | position: relative; 90 | width: 100%; 91 | height: 60vh; 92 | overflow: hidden; 93 | } 94 | 95 | @media screen and (max-width:1280px) { 96 | .column h3{ 97 | font-size: 130%; 98 | } 99 | input[type=text],input[type=number], select, textarea { 100 | padding: 5px; 101 | margin-top: 2px; 102 | margin-bottom: 4px; 103 | resize: vertical; 104 | } 105 | textarea{ 106 | height:124px !important; 107 | } 108 | .herocontainer h1{ 109 | font-size: 130%; 110 | } 111 | .herocontainer p{ 112 | font-size: 80%; 113 | } 114 | 115 | } 116 | @media screen and (max-width:1120px) and (min-width:880px) { 117 | .column h3{ 118 | font-size: 130%; 119 | } 120 | input[type=text],input[type=number], select, textarea { 121 | padding: 3px; 122 | margin-top: 2px; 123 | margin-bottom: 4px; 124 | resize: vertical; 125 | } 126 | textarea{ 127 | height:80px !important; 128 | } 129 | 130 | } 131 | @media screen and (max-width:880px) and (min-width:740px) { 132 | .column h3{ 133 | font-size: 110%; 134 | } 135 | .column p{ 136 | font-size: 100%; 137 | } 138 | input[type=text],input[type=number], select, textarea { 139 | padding: 3px; 140 | margin-top: 1px; 141 | margin-bottom: 2px; 142 | resize: vertical; 143 | } 144 | textarea{ 145 | height:40px !important; 146 | } 147 | 148 | } 149 | @media screen and (max-width:740px) and (min-width:0px) { 150 | .row{ 151 | flex-direction: column !important; 152 | margin: auto 0 !important; 153 | align-items: center; 154 | padding: 0; 155 | } 156 | .column{ 157 | float: none !important; 158 | width: 100%; 159 | text-align: center; 160 | /* padding: 0 60px 60px 60px; */ 161 | margin: auto 0 !important; 162 | } 163 | .column h3{ 164 | font-size: 100%; 165 | } 166 | .column p{ 167 | font-size:85%; 168 | text-align: center; 169 | } 170 | input[type=text],input[type=number], select, textarea { 171 | width: 100%; 172 | padding: 3px; 173 | margin-top: 2px; 174 | margin-bottom: 4px; 175 | resize: vertical; 176 | } 177 | textarea{ 178 | height:80px !important; 179 | } 180 | .herocontainer h4{ 181 | font-size: 90%; 182 | } 183 | .herocontainer{ 184 | margin-bottom: 20px; 185 | } 186 | 187 | } 188 | -------------------------------------------------------------------------------- /public/css/error.css: -------------------------------------------------------------------------------- 1 | /*=============== GOOGLE FONTS ===============*/ 2 | @import url('https://fonts.googleapis.com/css2?family=Maven+Pro:wght@400;500;600;700;800;900&display=swap'); 3 | 4 | /*=============== VARIABLES CSS ===============*/ 5 | :root { 6 | --first-color: #ffffcc; 7 | --text-color: hsl(36, 2%, 44%); 8 | --body-font: 'Maven Pro', sans-serif; 9 | --biggest-font-size: 2.375rem; 10 | --normal-font-size: .938rem; 11 | --smaller-font-size: .75rem; 12 | } 13 | 14 | @media screen and (min-width: 1024px) { 15 | :root { 16 | --biggest-font-size: 5rem; 17 | --normal-font-size: 1rem; 18 | --smaller-font-size: .813rem; 19 | } 20 | } 21 | 22 | /*=============== BASE ===============*/ 23 | * { 24 | box-sizing: border-box; 25 | padding: 0; 26 | margin: 0; 27 | } 28 | 29 | body { 30 | font-family: var(--body-font); 31 | font-size: var(--normal-font-size); 32 | font-weight: 500; 33 | color: var(--text-color); 34 | } 35 | 36 | a { 37 | text-decoration: none; 38 | } 39 | 40 | img { 41 | max-width: 100%; 42 | height: auto; 43 | } 44 | 45 | /*=============== REUSABLE CSS CLASSES ===============*/ 46 | .container { 47 | max-width: 1024px; 48 | margin-left: 1.5rem; 49 | margin-right: 1.5rem; 50 | } 51 | 52 | .main { 53 | overflow: hidden; /* For the animations ScrollReveal */ 54 | } 55 | 56 | /*=============== HOME ===============*/ 57 | .home { 58 | background-color: var(--first-color); 59 | padding: 9rem 0 2rem; 60 | height: 100vh; 61 | display: grid; 62 | } 63 | 64 | .home__container { 65 | display: grid; 66 | align-content: center; 67 | row-gap: 2.5rem; 68 | } 69 | 70 | .home__data { 71 | text-align: center; 72 | } 73 | 74 | .home__title { 75 | font-size: var(--biggest-font-size); 76 | margin: .75rem 0; 77 | } 78 | 79 | .home__button { 80 | margin-top: 2rem; 81 | display: inline-block; 82 | background-color: var(--text-color); 83 | color: #fff; 84 | padding: .80rem 1.5rem; 85 | border-radius: 3rem; 86 | transition: .4s; 87 | } 88 | 89 | .home__button:hover { 90 | box-shadow: 0 4px 12px hsla(38, 69%, 8%, .2); 91 | scale: 1.2; 92 | } 93 | 94 | .home__img img { 95 | width: 300px !important; 96 | margin-bottom: 2rem; 97 | animation: floaty 1.8s infinite alternate; 98 | } 99 | 100 | .home__img { 101 | justify-self: center; 102 | } 103 | 104 | .home__shadow { 105 | width: 130px; 106 | height: 24px; 107 | background-color: hsla(37, 22%, 19%, 0.347); 108 | margin: 0 auto; 109 | border-radius: 50%; 110 | filter: blur(7px); 111 | animation: shadow 1.8s infinite alternate; 112 | } 113 | 114 | /*=============== FOOTER ===============*/ 115 | .home__footer { 116 | display: flex; 117 | justify-content: center; 118 | column-gap: .5rem; 119 | font-size: var(--smaller-font-size); 120 | align-self: flex-end; 121 | } 122 | 123 | .home__footer span a{ 124 | color: var(--text-color); 125 | } 126 | 127 | .home__footer span a:hover{ 128 | color: rgb(0, 0, 0); 129 | } 130 | 131 | @keyframes floaty { 132 | 0% { 133 | transform: translateY(0); 134 | } 135 | 100% { 136 | transform: translateY(15px); 137 | } 138 | } 139 | 140 | @keyframes shadow { 141 | 0% { 142 | transform: scale(1, 1); 143 | } 144 | 100% { 145 | transform: scale(.85, .85); 146 | } 147 | } 148 | 149 | /*=============== BREAKPOINTS ===============*/ 150 | /* For small devices */ 151 | @media screen and (max-width: 320px) { 152 | .home { 153 | padding-top: 7rem; 154 | } 155 | } 156 | 157 | /* For large devices */ 158 | @media screen and (min-width: 1024px) { 159 | .home__container { 160 | grid-template-columns: repeat(2, 1fr); 161 | align-items: center; 162 | column-gap: 2rem; 163 | } 164 | .home__data { 165 | text-align: initial; 166 | } 167 | .home__img img { 168 | width: 400px; 169 | } 170 | .home__shadow { 171 | width: 250px; 172 | height: 40px; 173 | } 174 | } 175 | 176 | @media screen and (min-width: 1048px) { 177 | .container { 178 | margin-left: auto; 179 | margin-right: auto; 180 | } 181 | } 182 | 183 | /* For 2K resolutions (2048 x 1152, 2048 x 1536) */ 184 | @media screen and (min-width: 2048px) { 185 | body { 186 | zoom: 1.7; 187 | } 188 | 189 | .home { 190 | height: initial; 191 | row-gap: 4rem; 192 | } 193 | } 194 | 195 | /* For 4K resolutions (3840 x 2160, 4096 x 2160) */ 196 | @media screen and (min-width: 3840px) { 197 | body { 198 | zoom: 3.1; 199 | } 200 | } -------------------------------------------------------------------------------- /public/css/faq.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background-color: rgb(255, 255, 204) !important; 3 | } 4 | 5 | .containerf { 6 | max-width: 800px; 7 | margin: 0 auto; 8 | padding: 20px; 9 | margin-top: 110px; 10 | margin-bottom: 80px; 11 | } 12 | 13 | h1 { 14 | text-align: center; 15 | font-size: 36px; 16 | margin-bottom: 70px !important; 17 | color: maroon; 18 | } 19 | 20 | .question { 21 | font-size: 20px; 22 | margin-top: 40px; 23 | margin-bottom: 30px; 24 | cursor: pointer; 25 | color: black; 26 | 27 | } 28 | .question:after { 29 | content: '\02795'; 30 | /* Unicode character for "plus" sign (+) */ 31 | font-size: 20px; 32 | color: #777; 33 | float: right; 34 | margin-left: 80px; 35 | margin-bottom: 20px; 36 | } 37 | hr{ 38 | margin-top: 50px; 39 | border-top: 3px solid maroon !important; 40 | 41 | } 42 | 43 | .answer { 44 | margin-bottom: 20px; 45 | display: none; 46 | font-size: 16px; 47 | color: maroon; 48 | letter-spacing: 1.5px; 49 | } 50 | 51 | .answer p { 52 | margin: 0; 53 | line-height: 1.5; 54 | } 55 | 56 | .answer.active { 57 | display: block; 58 | } 59 | -------------------------------------------------------------------------------- /public/css/index.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | body { 4 | margin: 0; 5 | padding: 0; 6 | display: flex; 7 | width: 100%; 8 | flex-direction: column; 9 | justify-content: center; 10 | align-items: center; 11 | background-color: rgb(255, 255, 204); 12 | color: hsl(0 100% 100% /85%); 13 | transition: 0.6s ease; 14 | } 15 | 16 | 17 | canvas { 18 | position: absolute; 19 | } 20 | 21 | body.dark { 22 | background-color: rgb(34, 34, 43); 23 | color: rgb(34, 34, 43); 24 | } 25 | 26 | .container { 27 | display: flex; 28 | justify-content: center; 29 | align-items: center; 30 | border: 4px solid green; 31 | margin-top: 50px; 32 | width: 800px; 33 | height: 600px; 34 | } 35 | 36 | .c1 { 37 | font-size: 10rem !important; 38 | } 39 | 40 | .darkmode { 41 | display: flex; 42 | flex-direction: row; 43 | } 44 | 45 | .offcanvasNavbar{ 46 | background-color: #07f070; 47 | } 48 | 49 | .toggle { 50 | background-color: rgb(59, 59, 57); 51 | width: 3.5rem; 52 | height: 2rem; 53 | border-radius: 20rem; 54 | cursor: pointer; 55 | position: absolute; 56 | } 57 | 58 | .toggle.active { 59 | background-color: rgb(59, 59, 57); 60 | } 61 | 62 | .indicator { 63 | position: absolute; 64 | top: 0; 65 | left: 0; 66 | width: 2rem; 67 | height: 2rem; 68 | border-radius: 50%; 69 | background: white; 70 | transition: all 0.18s ease-in; 71 | } 72 | 73 | .toggle.active .indicator { 74 | transition: all 0.18s ease-in; 75 | left: 2rem; 76 | background: linear-gradient(to bottom right, #434343 0% black 100%); 77 | box-shadow: 0 8px 40px rgba(0, 0, 0, 0.1), 78 | inset 0 4px 10px rgba(250, 250, 250, 0.1), 79 | inset 0 -4px 10px rgba(250, 250, 250, 0.1); 80 | } 81 | .menu { 82 | width: 98%; 83 | height: 40px; 84 | } 85 | 86 | .title { 87 | font-family: cursive; 88 | font-weight: bold; 89 | } 90 | 91 | #footer { 92 | height: 3rem; 93 | display: flex; 94 | position: relative; 95 | width: 100%; 96 | bottom: 0; 97 | text-align: center; 98 | justify-content: center; 99 | background-color: rgb(25,135,84); 100 | color: white; 101 | } 102 | 103 | #footer span { 104 | text-transform: uppercase; 105 | letter-spacing: 2px; 106 | font-size: 0.9rem; 107 | font-weight: bold; 108 | text-align: center; 109 | line-height: 3rem; 110 | 111 | } 112 | 113 | .loader { 114 | margin: 0; 115 | position: fixed; 116 | background: black; 117 | display: flex; 118 | align-items: center; 119 | justify-content: center; 120 | padding: 0; 121 | width: 100%; 122 | height: 130%; 123 | } 124 | 125 | .disappear { 126 | animation: vanish 3s forwards; 127 | } 128 | 129 | @keyframes vanish { 130 | 100% { 131 | opacity: 0; 132 | visibility: hidden; 133 | } 134 | } 135 | 136 | .navitems{ 137 | font-size: 1.3rem; 138 | padding-bottom: 2rem; 139 | color: white; 140 | } 141 | 142 | #themeText{ 143 | padding-left: 5rem; 144 | } 145 | 146 | #icon { 147 | height: 3rem; 148 | background-color: #f00707; 149 | border-radius: 50%; 150 | margin: 1rem; 151 | } 152 | 153 | .switch { 154 | display: none; 155 | } 156 | 157 | #cam-notice { 158 | position: absolute; 159 | z-index: -1; 160 | color: #434343; 161 | } 162 | 163 | a{ 164 | color: white; 165 | text-decoration: none; 166 | } 167 | a:hover{ 168 | color: white; 169 | } 170 | 171 | video{ 172 | width: 720px; 173 | height: 560px; 174 | } 175 | .foot { 176 | display: flex; 177 | flex-direction: column; 178 | align-items: center; 179 | margin-top: -4px !important; 180 | } 181 | .foot h3{ 182 | color:brown; 183 | font-weight: bold; 184 | margin-bottom: 10px; 185 | font-size: 25px; 186 | text-transform: uppercase; 187 | } 188 | .subscribe-form{ 189 | text-align: center; 190 | } 191 | .subscribe-form h3{ 192 | color:brown; 193 | font-weight: bold; 194 | margin-bottom: 28px; 195 | font-size: 25px; 196 | text-transform: uppercase; 197 | } 198 | .icons { 199 | padding: 1rem; 200 | display: flex; 201 | flex-direction: row; 202 | } 203 | .icons a{ 204 | text-decoration: none; 205 | } 206 | .icons i { 207 | width: 40px; 208 | height: 40px; 209 | line-height: 40px; 210 | margin-bottom: 6px !important; 211 | margin-right: 10px; 212 | border-radius: 100%; 213 | background-color: #33353d; 214 | color: white; 215 | display: flex; 216 | flex-direction: row !important; 217 | text-align: center; 218 | transition: all 0.2s linear; 219 | padding-left: 12px; 220 | } 221 | .msg i { 222 | width: 35px; 223 | height: 35px; 224 | line-height: 35px; 225 | border-radius: 100%; 226 | background-color: #33353d; 227 | color: white !important; 228 | display: flex; 229 | flex-direction: row !important; 230 | text-align: center; 231 | transition: all 0.2s linear; 232 | padding-left: 9px; 233 | } 234 | button{ 235 | border: none ; 236 | background: transparent; 237 | } 238 | .twitter :hover { 239 | background-color: #00aced; 240 | color: #fff; 241 | } 242 | 243 | .linkedin :hover { 244 | background-color: #007bb6; 245 | color: #fff; 246 | } 247 | 248 | .instagram :hover { 249 | background-color: #ea2c59; 250 | color: #fff; 251 | } 252 | .email :hover { 253 | background-color:#623005; 254 | color: white; 255 | } 256 | 257 | .footer1 { 258 | /* background-color: rgb(25,135,84); */ 259 | background-image: linear-gradient(#4dbfac,#168270,#13662f); 260 | display: flex; 261 | color: black; 262 | padding-left: 70px; 263 | padding-right: 70px; 264 | padding-top: 30px; 265 | padding-bottom: 30px; 266 | display: flex; 267 | flex-direction: row; 268 | justify-content: space-around; 269 | } 270 | 271 | .left{ 272 | text-align: center; 273 | width: 40%; 274 | } 275 | .left p{ 276 | text-align: center; 277 | font-size: 16px; 278 | font-weight: 400; 279 | color: black !important; 280 | } 281 | 282 | .left h4{ 283 | margin-top: 10px; 284 | font-weight: bolder; 285 | text-transform: uppercase; 286 | color:white; 287 | letter-spacing: 2px; 288 | } 289 | .footer-content h3{ 290 | color:brown; 291 | font-weight: bold; 292 | margin-bottom: 10px; 293 | font-size: 25px; 294 | text-transform: uppercase; 295 | } 296 | 297 | .footer-content h2{ 298 | color:brown; 299 | font-size: 1.2rem; 300 | } 301 | 302 | @media screen and (max-width: 700px){ 303 | .container{ 304 | height: 400px !important; 305 | width: 400px !important; 306 | } 307 | 308 | video{ 309 | width: 400px !important; 310 | height: 400px !important; 311 | } 312 | 313 | #dbform{ 314 | display: flex !important; 315 | flex-direction: column !important; 316 | } 317 | 318 | #footer span{ 319 | font-size: 70%; 320 | } 321 | .footer1{ 322 | flex-direction: column; 323 | } 324 | .footer1 h3{ 325 | font-size: 120%; 326 | } 327 | .footer1 p{ 328 | font-size: 90%; 329 | } 330 | .left{ 331 | width: 100%; 332 | } 333 | .foot h3{ 334 | margin-bottom: -5px; 335 | } 336 | .subscribe-form h3{ 337 | margin-bottom: 10px !important; 338 | } 339 | .subscribe-form{ 340 | padding-bottom: 40px; 341 | } 342 | }@media screen and (max-width: 500px){ 343 | #footer span{ 344 | font-size: 9px; 345 | line-height: 1rem; 346 | } 347 | 348 | .container{ 349 | margin-top: 7rem !important; 350 | } 351 | } 352 | @media screen and (max-width: 400px){ 353 | .container{ 354 | height: 270px !important; 355 | width: 270px !important; 356 | } 357 | 358 | video{ 359 | width: 270px !important; 360 | height: 270px !important; 361 | } 362 | #cam-notice{ 363 | font-size: small; 364 | } 365 | } 366 | 367 | #footer span{ 368 | font-size: small; 369 | } 370 | 371 | ::-webkit-scrollbar{ 372 | width: 10px; 373 | } 374 | 375 | ::-webkit-scrollbar-thumb{ 376 | background-color: green; 377 | background-clip: content-box; 378 | border: 2px solid transparent; 379 | border-radius: 15px; 380 | } 381 | 382 | ::-webkit-scrollbar-track{ 383 | background-color: white; 384 | } 385 | 386 | -------------------------------------------------------------------------------- /public/css/swiper-bundle.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Swiper 9.1.0 3 | * Most modern mobile touch slider and framework with hardware accelerated transitions 4 | * https://swiperjs.com 5 | * 6 | * Copyright 2014-2023 Vladimir Kharlampidi 7 | * 8 | * Released under the MIT License 9 | * 10 | * Released on: February 28, 2023 11 | */ 12 | 13 | @font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper,swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide,swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,swiper-container:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,:host(.swiper-horizontal.swiper-rtl) .swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;-ms-touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification,swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} -------------------------------------------------------------------------------- /public/css/testimonial.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap'); 2 | 3 | *{ 4 | margin: 0; 5 | padding:0; 6 | box-sizing: border-box; 7 | font-family: 'Poppins',sans-serif; 8 | } 9 | 10 | body{ 11 | display: flex; 12 | align-items: center; 13 | justify-content: center; 14 | background-color: honeydew; 15 | } 16 | 17 | .slide-container{ 18 | margin-top: 100px; 19 | margin-bottom: 100px; 20 | max-width: 1200px; 21 | /* max-height: 520px; */ 22 | background-color: #42b174; 23 | width:100%; 24 | padding-top: 10px; 25 | padding-bottom: 25px; 26 | border-radius: .9rem; 27 | } 28 | 29 | .slide-container h3{ 30 | color:black; 31 | text-align: center; 32 | font-size: 1.5rem; 33 | text-shadow: 2px 2px 10px white; 34 | letter-spacing: 3px; 35 | font-weight: bold; 36 | text-transform: uppercase; 37 | } 38 | 39 | .slide-container h2{ 40 | color:black; 41 | font-size: 1.2rem; 42 | text-align: center; 43 | letter-spacing: 3px; 44 | color: rgb(165,42,42); 45 | } 46 | 47 | .slide-content{ 48 | margin:0 40px; 49 | background-color: #fff; 50 | overflow: hidden; 51 | border-radius: 25px; 52 | } 53 | 54 | .card{ 55 | margin:2px 2px 2px 2px; 56 | border-radius: 27px; 57 | background-color: #fff; 58 | border:2px solid green; 59 | } 60 | 61 | .image-content, 62 | .card-content{ 63 | padding: 10px 14px; 64 | display: flex; 65 | flex-direction:column; 66 | align-items: center; 67 | padding: 10px 14px ; 68 | } 69 | 70 | .card-image{ 71 | position: relative; 72 | height: 150px; 73 | width:150px; 74 | border-radius: 50%; 75 | background-color: #fff; 76 | padding: 3px; 77 | } 78 | 79 | .card-image .card-img{ 80 | height:100%; 81 | width: 100%; 82 | object-fit: cover; 83 | border-radius:50%; 84 | border: 4px solid green; 85 | } 86 | 87 | .name{ 88 | font-size: 18px; 89 | font-weight: 500; 90 | color:#333; 91 | } 92 | 93 | .description{ 94 | font-size: 14px; 95 | color: #707070; 96 | text-align: center; 97 | } 98 | 99 | .image-content{ 100 | row-gap: 5px; 101 | position: relative; 102 | border-radius: 25px 25px 0 25px; 103 | padding: 25px 0; 104 | } 105 | 106 | .overlay{ 107 | position: absolute; 108 | left:0; 109 | top:0; 110 | height: 100%; 111 | width: 100%; 112 | background-color: #7dd9a7 ; 113 | border-radius: 25px 25px 25px 0; 114 | } 115 | 116 | .overlay::before, 117 | .overlay::after{ 118 | content: ''; 119 | position: absolute; 120 | height: 40px; 121 | width: 40px; 122 | background-color: #7dd9a7; 123 | bottom: -40px; 124 | } 125 | 126 | .overlay::after{ 127 | border-radius: 25px 0 0 0; 128 | background-color: #fff; 129 | } 130 | 131 | .button{ 132 | border: none; 133 | font-size: 16px; 134 | color:#fff; 135 | padding: 8px 16px; 136 | background-color:#42b174; 137 | border-radius: 6px; 138 | margin: 14px; 139 | cursor: pointer; 140 | transition: transform .2s; 141 | letter-spacing: 1.5px; 142 | } 143 | 144 | .button:hover{ 145 | background-color: green; 146 | transform: scale(1.15); 147 | font-weight: bold; 148 | } 149 | 150 | .swiper-navBtn{ 151 | color:black; 152 | transition: color 0.3s ease; 153 | } 154 | 155 | .swiper-navBtn:hover{ 156 | color:green; 157 | } 158 | 159 | .swiper-navBtn::before, 160 | .swiper-navBtn::after{ 161 | font-size: 40px; 162 | } 163 | 164 | .swiper-button-next{ 165 | right:0; 166 | } 167 | 168 | .swiper-button-prev{ 169 | left:0; 170 | } 171 | 172 | .swiper-pagination-bullet{ 173 | background-color: black; 174 | opacity:1; 175 | } 176 | 177 | .swiper-pagination-bullet-active{ 178 | background-color: green; 179 | } 180 | 181 | @media screen and (max-width:1336px) { 182 | 183 | .slide-content{ 184 | margin:0px 35px; 185 | } 186 | .card-content p{ 187 | font-size: 90%; 188 | } 189 | .swiper{ 190 | width: 85%; 191 | } 192 | .card{ 193 | width: 80%; 194 | } 195 | .button{ 196 | font-size: 80%; 197 | } 198 | 199 | } 200 | 201 | -------------------------------------------------------------------------------- /public/css/translate.css: -------------------------------------------------------------------------------- 1 | #google_translate_element select{ 2 | background:#f6edfd; 3 | color:black; 4 | border: none; 5 | border-radius:3px; 6 | padding:6px 8px; 7 | } 8 | 9 | /*google translate link | logo */ 10 | .goog-logo-link,.goog-te-gadget span,div#goog-gt-{ 11 | display:none!important; 12 | } 13 | .goog-te-gadget{ 14 | color:transparent!important; 15 | font-size:0; 16 | } 17 | 18 | /* google translate banner-frame */ 19 | 20 | .goog-te-banner-frame{ 21 | display:none !important; 22 | } 23 | 24 | #goog-gt-tt, .goog-te-balloon-frame{display: none !important;} 25 | .goog-text-highlight { background: none !important; box-shadow: none !important;} 26 | -------------------------------------------------------------------------------- /public/faq.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | FAQ's 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | rel="stylesheet"> 27 | 28 | 29 | 30 | 31 | 32 | 108 |
109 |

Frequently Asked Questions

110 |
111 |
Q: What is this website all about?
112 |
A:Emotion Detector is a website that allows reading the emotions on a human face using advanced image processing. 113 |
114 |
115 |
Q: What are its features?
116 |
A: This web application provides an option to detect face, detect similarity and uploading an image. Advanced feautures like dark mode theme and page translation are also included in this website.
117 |
118 |
Q: Do I need any special software to use it?
119 |
A: No, the only requirement is any web browser.
120 |
121 |
Q: What all technologies it uses?
122 |
A: For frontend, it uses HTML5, CSS3, JavaScript and Bootstrap. For face detection , it uses face-api.js (JS face recognition library). For database, it uses MongoDb
123 |
124 |
Q: Why should I prefer Emotion Detector using JS over any other website?
125 |
A: Applications build using Face-api are super easy to use. Face-api has a powerful API that exposes only the necessary configuration, hiding all the underlying layers, such as actually writing neural nets. Apart from different models of recognition, it also comes with pre-built drawing functions so we don’t have to mess around with a canvas.
126 |
127 |
Q: What if I still have queries?
128 |
A: Write us a message or mail us at contact.jwoc@gmail.com
129 |
130 |
131 | 175 | 176 | 191 | 192 | -------------------------------------------------------------------------------- /public/images/bugError.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/contact.png -------------------------------------------------------------------------------- /public/images/face1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/face1.jpeg -------------------------------------------------------------------------------- /public/images/face2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/face2.jpeg -------------------------------------------------------------------------------- /public/images/face3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/face3.jpeg -------------------------------------------------------------------------------- /public/images/face4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/face4.jpeg -------------------------------------------------------------------------------- /public/images/face5.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/face5.jpeg -------------------------------------------------------------------------------- /public/images/face6.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/face6.jpeg -------------------------------------------------------------------------------- /public/images/face7.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/face7.jpeg -------------------------------------------------------------------------------- /public/images/face8.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/face8.jpeg -------------------------------------------------------------------------------- /public/images/face9.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/face9.jpeg -------------------------------------------------------------------------------- /public/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/favicon.ico -------------------------------------------------------------------------------- /public/images/pow-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/images/pow-button.png -------------------------------------------------------------------------------- /public/js/contact.js: -------------------------------------------------------------------------------- 1 | function checkname() { 2 | var name_in = document.querySelector("#fname") 3 | console.log(name_in.value) 4 | if (name_in.value.length > 10) { 5 | name_in.setCustomValidity("Name is too long! Kindly verify") 6 | } 7 | else { 8 | name_in.setCustomValidity("") 9 | } 10 | } 11 | function checkemail() { 12 | var em = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; 13 | var email_in = document.querySelector("#email"); 14 | if (!(email_in.value.match(em))) { 15 | email_in.setCustomValidity("Entered Email is invalid! Kindly verify"); 16 | } 17 | else { 18 | email_in.setCustomValidity(""); 19 | } 20 | } 21 | function checkcontact() { 22 | var phoneno = /^\d{10}$/; 23 | var contact_in = document.querySelector("#contact"); 24 | if (!(contact_in.value.match(phoneno))) { 25 | contact_in.setCustomValidity("Entered Phone Number is invalid! Kindly verify"); 26 | } 27 | else { 28 | contact_in.setCustomValidity(""); 29 | } 30 | } -------------------------------------------------------------------------------- /public/js/darkMode.js: -------------------------------------------------------------------------------- 1 | const toggle = document.querySelector(".toggle"); 2 | const container = document.querySelector(".container"); 3 | 4 | toggle.addEventListener("click", function () { 5 | toggle.classList.toggle("active"); 6 | document.body.classList.toggle("dark"); 7 | container.classList.toggle("active"); 8 | }); 9 | -------------------------------------------------------------------------------- /public/js/error.js: -------------------------------------------------------------------------------- 1 | /*=============== SCROLL REVEAL ANIMATION ===============*/ 2 | const sr = ScrollReveal({ 3 | distance: '90px', 4 | duration: 3000, 5 | }) 6 | 7 | sr.reveal(`.home__data`, {origin: 'top', delay: 400}) 8 | sr.reveal(`.home__img`, {origin: 'bottom', delay: 600}) 9 | sr.reveal(`.home__footer`, {origin: 'bottom', delay: 800}) 10 | -------------------------------------------------------------------------------- /public/js/landing.js: -------------------------------------------------------------------------------- 1 | // const l=document.querySelectorAll("#logo path"); 2 | // for(let i=0;i video.srcObject = stream, 62 | err => console.error(err) 63 | ) 64 | } 65 | 66 | function cameraoff() { 67 | const stream = video.srcObject; 68 | if (stream) { 69 | const tracks = stream.getTracks(); 70 | 71 | tracks.forEach(function (track) { 72 | track.stop(); 73 | }); 74 | 75 | video.srcObject = null; 76 | } 77 | } 78 | video.addEventListener('play', () => { 79 | const canvas = faceapi.createCanvasFromMedia(video) 80 | document.body.append(canvas) 81 | const displaySize = { width: widthcanvas, height: heightcanvas } 82 | faceapi.matchDimensions(canvas, displaySize) 83 | setInterval(async () => { 84 | const detections = await faceapi.detectAllFaces(video, new faceapi.TinyFaceDetectorOptions()).withFaceLandmarks().withFaceExpressions().withAgeAndGender() 85 | 86 | const resizedDetections = faceapi.resizeResults(detections, displaySize) 87 | canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height) 88 | faceapi.draw.drawDetections(canvas, resizedDetections) 89 | faceapi.draw.drawFaceLandmarks(canvas, resizedDetections) 90 | faceapi.draw.drawFaceExpressions(canvas, resizedDetections) 91 | resizedDetections.forEach(detection => { 92 | const box = detection.detection.box 93 | const drawBox = new faceapi.draw.DrawBox(box, { label: Math.round(detection.age) + " year old " + detection.gender }) 94 | drawBox.draw(canvas) 95 | }) 96 | 97 | 98 | }, 100) 99 | }) -------------------------------------------------------------------------------- /public/js/scrollreveal.min.js: -------------------------------------------------------------------------------- 1 | /*! @license ScrollReveal v4.0.9 2 | Copyright 2021 Fisssion LLC. 3 | Licensed under the GNU General Public License 3.0 for 4 | compatible open source projects and non-commercial use. 5 | For commercial sites, themes, projects, and applications, 6 | keep your source code private/proprietary by purchasing 7 | a commercial license from https://scrollrevealjs.org/ 8 | */ 9 | var ScrollReveal=function(){"use strict";var r={delay:0,distance:"0",duration:600,easing:"cubic-bezier(0.5, 0, 0, 1)",interval:0,opacity:0,origin:"bottom",rotate:{x:0,y:0,z:0},scale:1,cleanup:!1,container:document.documentElement,desktop:!0,mobile:!0,reset:!1,useDelay:"always",viewFactor:0,viewOffset:{top:0,right:0,bottom:0,left:0},afterReset:function(){},afterReveal:function(){},beforeReset:function(){},beforeReveal:function(){}};var n={success:function(){document.documentElement.classList.add("sr"),document.body?document.body.style.height="100%":document.addEventListener("DOMContentLoaded",function(){document.body.style.height="100%"})},failure:function(){return document.documentElement.classList.remove("sr"),{clean:function(){},destroy:function(){},reveal:function(){},sync:function(){},get noop(){return!0}}}};function o(e){return"object"==typeof window.Node?e instanceof window.Node:null!==e&&"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName}function u(e,t){if(void 0===t&&(t=document),e instanceof Array)return e.filter(o);if(o(e))return[e];if(n=e,i=Object.prototype.toString.call(n),"object"==typeof window.NodeList?n instanceof window.NodeList:null!==n&&"object"==typeof n&&"number"==typeof n.length&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(i)&&(0===n.length||o(n[0])))return Array.prototype.slice.call(e);var n,i;if("string"==typeof e)try{var r=t.querySelectorAll(e);return Array.prototype.slice.call(r)}catch(e){return[]}return[]}function s(e){return null!==e&&e instanceof Object&&(e.constructor===Object||"[object Object]"===Object.prototype.toString.call(e))}function f(n,i){if(s(n))return Object.keys(n).forEach(function(e){return i(n[e],e,n)});if(n instanceof Array)return n.forEach(function(e,t){return i(e,t,n)});throw new TypeError("Expected either an array or object literal.")}function h(e){for(var t=[],n=arguments.length-1;0=[].concat(r.body).shift())return j.call(this,n,i,-1,t),c.call(this,e,{reveal:!0,pristine:t});if(!n.blocked.foot&&i===[].concat(o.foot).shift()&&i<=[].concat(r.body).pop())return j.call(this,n,i,1,t),c.call(this,e,{reveal:!0,pristine:t})}}function E(e){var t=Math.abs(e);if(isNaN(t))throw new RangeError("Invalid sequence interval.");this.id=b(),this.interval=Math.max(t,16),this.members=[],this.models={},this.blocked={head:!1,foot:!1}}function d(e,i,r){var o=this;this.head=[],this.body=[],this.foot=[],f(e.members,function(e,t){var n=r.elements[e];n&&n[i]&&o.body.push(t)}),this.body.length&&f(e.members,function(e,t){var n=r.elements[e];n&&!n[i]&&(t video.srcObject = stream, 45 | err => console.error(err) 46 | ) 47 | } 48 | 49 | video.addEventListener('play', () => { 50 | const canvas = faceapi.createCanvasFromMedia(video) 51 | document.body.append(canvas) 52 | const displaySize = { width: widthcanvas, height: heightcanvas } 53 | faceapi.matchDimensions(canvas, displaySize) 54 | setInterval(async () => { 55 | // Detect faces in the video frame 56 | const detections = await faceapi.detectAllFaces(video, new faceapi.TinyFaceDetectorOptions()) 57 | .withFaceLandmarks() 58 | .withFaceDescriptors() 59 | 60 | // Resize the bounding boxes to match the display size 61 | const resizedDetections = faceapi.resizeResults(detections, displaySize) 62 | 63 | // Clear the canvas 64 | canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height) 65 | 66 | // Draw bounding boxes around the detected faces 67 | faceapi.draw.drawDetections(canvas, resizedDetections) 68 | faceapi.draw.drawFaceLandmarks(canvas, resizedDetections) 69 | 70 | // Calculate the face similarity between the first two detected faces 71 | if (resizedDetections.length >= 2) { 72 | const face1 = resizedDetections[0].descriptor 73 | const face2 = resizedDetections[1].descriptor 74 | const distance = faceapi.euclideanDistance(face1, face2) 75 | 76 | // Display Value in to DOM 77 | faceValue.innerHTML = `Face similarity: ${(distance * 100).toFixed(2)}%` 78 | const sim=document.getElementById("face-similarity") 79 | if(distance<0.6){ 80 | sim.innerText='two faces are similar with distance'+parseFloat(distance.toFixed(2)) 81 | } 82 | else{ 83 | sim.innerText='two faces are not similar! ' 84 | } 85 | 86 | } 87 | }, 100) 88 | 89 | }) -------------------------------------------------------------------------------- /public/js/testimonial.js: -------------------------------------------------------------------------------- 1 | var swiper = new Swiper(".slide-content", { 2 | slidesPerView: 3, 3 | spaceBetween: 25, 4 | loop: true, 5 | centerSlide: 'true', 6 | fade: 'true', 7 | grabCursor: 'true', 8 | pagination: { 9 | el: ".swiper-pagination", 10 | clickable: true, 11 | dynamicBullets: true, 12 | }, 13 | navigation: { 14 | nextEl: ".swiper-button-next", 15 | prevEl: ".swiper-button-prev", 16 | }, 17 | 18 | breakpoints:{ 19 | 0: { 20 | slidesPerView: 1, 21 | }, 22 | 529: { 23 | slidesPerView: 2, 24 | }, 25 | 969: { 26 | slidesPerView: 3, 27 | }, 28 | 29 | }, 30 | }); 31 | -------------------------------------------------------------------------------- /public/js/translate.js: -------------------------------------------------------------------------------- 1 | $('document').ready(function () { 2 | 3 | 4 | // RESTYLE THE DROPDOWN MENU 5 | $('#google_translate_element').on("click", function () { 6 | 7 | // Change font family and color 8 | $("iframe").contents().find(".goog-te-menu2-item div, .goog-te-menu2-item:link div, .goog-te-menu2-item:visited div, .goog-te-menu2-item:active div, .goog-te-menu2 *") 9 | .css({ 10 | 'color': '#544F4B', 11 | 'font-family': 'Roboto', 12 | 'width':'100%' 13 | }); 14 | // Change menu's padding 15 | $("iframe").contents().find('.goog-te-menu2-item-selected').css ('display', 'none'); 16 | 17 | // Change menu's padding 18 | $("iframe").contents().find('.goog-te-menu2').css ('padding', '0px'); 19 | 20 | // Change the padding of the languages 21 | $("iframe").contents().find('.goog-te-menu2-item div').css('padding', '20px'); 22 | 23 | // Change the width of the languages 24 | $("iframe").contents().find('.goog-te-menu2-item').css('width', '100%'); 25 | $("iframe").contents().find('td').css('width', '100%'); 26 | 27 | // Change hover effects 28 | $("iframe").contents().find(".goog-te-menu2-item div").hover(function () { 29 | $(this).css('background-color', '#4385F5').find('span.text').css('color', 'white'); 30 | }, function () { 31 | $(this).css('background-color', 'white').find('span.text').css('color', '#544F4B'); 32 | }); 33 | 34 | // Change Google's default blue border 35 | $("iframe").contents().find('.goog-te-menu2').css('border', 'none'); 36 | 37 | // Change the iframe's box shadow 38 | $(".goog-te-menu-frame").css('box-shadow', '0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3)'); 39 | 40 | 41 | 42 | // Change the iframe's size and position? 43 | $(".goog-te-menu-frame").css({ 44 | 'height': '100%', 45 | 'width': '100%', 46 | 'top': '0px' 47 | }); 48 | // Change iframes's size 49 | $("iframe").contents().find('.goog-te-menu2').css({ 50 | 'height': '100%', 51 | 'width': '100%' 52 | }); 53 | }); 54 | }); -------------------------------------------------------------------------------- /public/js/uploadPic.js: -------------------------------------------------------------------------------- 1 | const mediaContainer = document.getElementById("media-container"); 2 | 3 | Promise.all([ 4 | faceapi.nets.tinyFaceDetector.loadFromUri("./weights"), 5 | faceapi.nets.faceLandmark68Net.loadFromUri("./weights"), 6 | faceapi.nets.faceRecognitionNet.loadFromUri("./weights"), 7 | faceapi.nets.faceExpressionNet.loadFromUri("./weights"), 8 | faceapi.nets.ageGenderNet.loadFromUri("./weights"), 9 | ]).then(startVideo); 10 | 11 | document.getElementById("imageUpload").addEventListener("change", async () => { 12 | if (document.getElementById("imageUpload").files.length == 0) return; 13 | const image = await faceapi.bufferToImage( 14 | document.getElementById("imageUpload").files[0] 15 | ); 16 | mediaContainer.innerHTML = ""; 17 | const img = document.createElement("img"); 18 | img.src = image.src; 19 | img.style.height = "400px" 20 | img.style.width = "400px" 21 | img.style.border = "5px solid green" 22 | img.style.padding = "1rem" 23 | mediaContainer.appendChild(img); 24 | startVideo(image); 25 | }); 26 | 27 | function startVideo(img) { 28 | const canvas = faceapi.createCanvasFromMedia(img || video); 29 | mediaContainer.appendChild(canvas); 30 | const displaySize = { 31 | width: 400, 32 | height: 400, 33 | }; 34 | faceapi.matchDimensions(canvas, displaySize); 35 | setInterval(async () => { 36 | const detections = await faceapi 37 | .detectAllFaces(img || video, new faceapi.TinyFaceDetectorOptions()) 38 | .withFaceLandmarks() 39 | .withFaceExpressions() 40 | .withAgeAndGender(); 41 | 42 | const resizedDetections = faceapi.resizeResults(detections, displaySize); 43 | canvas.getContext("2d").clearRect(0, 0, canvas.width, canvas.height); 44 | faceapi.draw.drawDetections(canvas, resizedDetections); 45 | faceapi.draw.drawFaceLandmarks(canvas, resizedDetections); 46 | faceapi.draw.drawFaceExpressions(canvas, resizedDetections); 47 | resizedDetections.forEach((detection) => { 48 | const box = detection.detection.box; 49 | const drawBox = new faceapi.draw.DrawBox(box, { 50 | label: 51 | Math.round(detection.age) + 52 | " year old " + 53 | detection.gender 54 | }); 55 | drawBox.draw(canvas); 56 | }); 57 | }, 100); 58 | } 59 | -------------------------------------------------------------------------------- /public/models/face_expression_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/models/face_expression_model-shard1 -------------------------------------------------------------------------------- /public/models/face_expression_model-weights_manifest.json: -------------------------------------------------------------------------------- 1 | [{"weights":[{"name":"dense0/conv0/filters","shape":[3,3,3,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0057930146946626555,"min":-0.7125408074435067}},{"name":"dense0/conv0/bias","shape":[32],"dtype":"float32"},{"name":"dense0/conv1/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006473719839956246,"min":-0.6408982641556684}},{"name":"dense0/conv1/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010509579321917366,"min":-1.408283629136927}},{"name":"dense0/conv1/bias","shape":[32],"dtype":"float32"},{"name":"dense0/conv2/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005666389652326995,"min":-0.7252978754978554}},{"name":"dense0/conv2/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010316079270605948,"min":-1.1760330368490781}},{"name":"dense0/conv2/bias","shape":[32],"dtype":"float32"},{"name":"dense0/conv3/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0063220320963392074,"min":-0.853474333005793}},{"name":"dense0/conv3/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010322785377502442,"min":-1.4658355236053466}},{"name":"dense0/conv3/bias","shape":[32],"dtype":"float32"},{"name":"dense1/conv0/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0042531527724920535,"min":-0.5741756242864272}},{"name":"dense1/conv0/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010653339647779278,"min":-1.1825207009035}},{"name":"dense1/conv0/bias","shape":[64],"dtype":"float32"},{"name":"dense1/conv1/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005166931012097527,"min":-0.6355325144879957}},{"name":"dense1/conv1/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011478300188101974,"min":-1.3888743227603388}},{"name":"dense1/conv1/bias","shape":[64],"dtype":"float32"},{"name":"dense1/conv2/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006144821410085641,"min":-0.8479853545918185}},{"name":"dense1/conv2/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010541967317169788,"min":-1.3809977185492421}},{"name":"dense1/conv2/bias","shape":[64],"dtype":"float32"},{"name":"dense1/conv3/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005769844849904378,"min":-0.686611537138621}},{"name":"dense1/conv3/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010939095534530341,"min":-1.2689350820055196}},{"name":"dense1/conv3/bias","shape":[64],"dtype":"float32"},{"name":"dense2/conv0/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0037769308277204924,"min":-0.40790852939381317}},{"name":"dense2/conv0/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01188667194516051,"min":-1.4382873053644218}},{"name":"dense2/conv0/bias","shape":[128],"dtype":"float32"},{"name":"dense2/conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006497045825509464,"min":-0.8381189114907208}},{"name":"dense2/conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011632198913424622,"min":-1.3377028750438316}},{"name":"dense2/conv1/bias","shape":[128],"dtype":"float32"},{"name":"dense2/conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005947182225246056,"min":-0.7969224181829715}},{"name":"dense2/conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011436844339557722,"min":-1.4524792311238306}},{"name":"dense2/conv2/bias","shape":[128],"dtype":"float32"},{"name":"dense2/conv3/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006665432686899222,"min":-0.8998334127313949}},{"name":"dense2/conv3/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01283421422920975,"min":-1.642779421338848}},{"name":"dense2/conv3/bias","shape":[128],"dtype":"float32"},{"name":"dense3/conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004711699953266218,"min":-0.6737730933170692}},{"name":"dense3/conv0/pointwise_filter","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010955964817720302,"min":-1.3914075318504784}},{"name":"dense3/conv0/bias","shape":[256],"dtype":"float32"},{"name":"dense3/conv1/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00554193468654857,"min":-0.7149095745647656}},{"name":"dense3/conv1/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.016790372250126858,"min":-2.484975093018775}},{"name":"dense3/conv1/bias","shape":[256],"dtype":"float32"},{"name":"dense3/conv2/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006361540626077091,"min":-0.8142772001378676}},{"name":"dense3/conv2/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01777329678628959,"min":-1.7062364914838006}},{"name":"dense3/conv2/bias","shape":[256],"dtype":"float32"},{"name":"dense3/conv3/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006900275922289082,"min":-0.8625344902861353}},{"name":"dense3/conv3/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.015449936717164282,"min":-1.9003422162112067}},{"name":"dense3/conv3/bias","shape":[256],"dtype":"float32"},{"name":"fc/weights","shape":[256,7],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004834276554631252,"min":-0.7203072066400565}},{"name":"fc/bias","shape":[7],"dtype":"float32"}],"paths":["face_expression_model-shard1"]}] -------------------------------------------------------------------------------- /public/models/face_landmark_68_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/models/face_landmark_68_model-shard1 -------------------------------------------------------------------------------- /public/models/face_landmark_68_model-weights_manifest.json: -------------------------------------------------------------------------------- 1 | [{"weights":[{"name":"dense0/conv0/filters","shape":[3,3,3,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004853619781194949,"min":-0.5872879935245888}},{"name":"dense0/conv0/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004396426443960153,"min":-0.7298067896973853}},{"name":"dense0/conv1/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00635151559231328,"min":-0.5589333721235686}},{"name":"dense0/conv1/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009354315552057004,"min":-1.2628325995276957}},{"name":"dense0/conv1/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0029380727048013726,"min":-0.5846764682554731}},{"name":"dense0/conv2/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0049374802439820535,"min":-0.6171850304977566}},{"name":"dense0/conv2/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009941946758943446,"min":-1.3421628124573652}},{"name":"dense0/conv2/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0030300481062309416,"min":-0.5272283704841838}},{"name":"dense0/conv3/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005672684837790097,"min":-0.7431217137505026}},{"name":"dense0/conv3/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010712201455060173,"min":-1.5639814124387852}},{"name":"dense0/conv3/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0030966934035806097,"min":-0.3839899820439956}},{"name":"dense1/conv0/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0039155554537679636,"min":-0.48161332081345953}},{"name":"dense1/conv0/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01023082966898002,"min":-1.094698774580862}},{"name":"dense1/conv0/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0027264176630506327,"min":-0.3871513081531898}},{"name":"dense1/conv1/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004583378632863362,"min":-0.5454220573107401}},{"name":"dense1/conv1/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00915846403907327,"min":-1.117332612766939}},{"name":"dense1/conv1/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003091680419211294,"min":-0.5966943209077797}},{"name":"dense1/conv2/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005407439727409214,"min":-0.708374604290607}},{"name":"dense1/conv2/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00946493943532308,"min":-1.2399070660273235}},{"name":"dense1/conv2/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004409168514550901,"min":-0.9788354102303}},{"name":"dense1/conv3/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004478132958505668,"min":-0.6493292789833219}},{"name":"dense1/conv3/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011063695888893277,"min":-1.2501976354449402}},{"name":"dense1/conv3/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003909627596537272,"min":-0.6646366914113363}},{"name":"dense2/conv0/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003213915404151468,"min":-0.3374611174359041}},{"name":"dense2/conv0/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010917326048308728,"min":-1.4520043644250609}},{"name":"dense2/conv0/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002800439152063108,"min":-0.38085972468058266}},{"name":"dense2/conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0050568851770139206,"min":-0.6927932692509071}},{"name":"dense2/conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01074961213504567,"min":-1.3222022926106174}},{"name":"dense2/conv1/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0030654204242369708,"min":-0.5487102559384177}},{"name":"dense2/conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00591809165244009,"min":-0.917304206128214}},{"name":"dense2/conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01092823346455892,"min":-1.366029183069865}},{"name":"dense2/conv2/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002681120470458386,"min":-0.36463238398234055}},{"name":"dense2/conv3/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0048311497650894465,"min":-0.5797379718107336}},{"name":"dense2/conv3/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011227761062921263,"min":-1.4483811771168429}},{"name":"dense2/conv3/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0034643323982463162,"min":-0.3360402426298927}},{"name":"dense3/conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003394978887894574,"min":-0.49227193874471326}},{"name":"dense3/conv0/pointwise_filter","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010051267287310432,"min":-1.2765109454884247}},{"name":"dense3/conv0/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003142924752889895,"min":-0.4588670139219247}},{"name":"dense3/conv1/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00448304671867221,"min":-0.5872791201460595}},{"name":"dense3/conv1/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.016063522357566685,"min":-2.3613377865623026}},{"name":"dense3/conv1/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00287135781026354,"min":-0.47664539650374765}},{"name":"dense3/conv2/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006002906724518421,"min":-0.7923836876364315}},{"name":"dense3/conv2/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.017087187019048954,"min":-1.6061955797906016}},{"name":"dense3/conv2/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003124481205846749,"min":-0.46242321846531886}},{"name":"dense3/conv3/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006576311588287353,"min":-1.0193282961845398}},{"name":"dense3/conv3/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.015590153955945782,"min":-1.99553970636106}},{"name":"dense3/conv3/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004453541601405424,"min":-0.6546706154065973}},{"name":"fc/weights","shape":[256,136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010417488509533453,"min":-1.500118345372817}},{"name":"fc/bias","shape":[136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0025084222648658005,"min":0.07683877646923065}}],"paths":["face_landmark_68_model-shard1"]}] -------------------------------------------------------------------------------- /public/models/face_landmark_68_tiny_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/models/face_landmark_68_tiny_model-shard1 -------------------------------------------------------------------------------- /public/models/face_landmark_68_tiny_model-weights_manifest.json: -------------------------------------------------------------------------------- 1 | [{"weights":[{"name":"dense0/conv0/filters","shape":[3,3,3,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008194216092427571,"min":-0.9423348506291708}},{"name":"dense0/conv0/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006839508168837603,"min":-0.8412595047670252}},{"name":"dense0/conv1/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009194007106855804,"min":-1.2779669878529567}},{"name":"dense0/conv1/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0036026100317637128,"min":-0.3170296827952067}},{"name":"dense0/conv1/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.000740380117706224,"min":-0.06367269012273527}},{"name":"dense0/conv2/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":1,"min":0}},{"name":"dense0/conv2/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":1,"min":0}},{"name":"dense0/conv2/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0037702228508743585,"min":-0.6220867703942692}},{"name":"dense1/conv0/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0033707996209462483,"min":-0.421349952618281}},{"name":"dense1/conv0/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.014611541991140328,"min":-1.8556658328748217}},{"name":"dense1/conv0/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002832523046755323,"min":-0.30307996600281956}},{"name":"dense1/conv1/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006593170586754294,"min":-0.6329443763284123}},{"name":"dense1/conv1/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.012215249211180444,"min":-1.6001976466646382}},{"name":"dense1/conv1/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002384825547536214,"min":-0.3028728445370992}},{"name":"dense1/conv2/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005859645441466687,"min":-0.7617539073906693}},{"name":"dense1/conv2/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.013121426806730382,"min":-1.7845140457153321}},{"name":"dense1/conv2/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0032247188044529336,"min":-0.46435950784122243}},{"name":"dense2/conv0/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002659512618008782,"min":-0.32977956463308894}},{"name":"dense2/conv0/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.015499923743453681,"min":-1.9839902391620712}},{"name":"dense2/conv0/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0032450980999890497,"min":-0.522460794098237}},{"name":"dense2/conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005911862382701799,"min":-0.792189559282041}},{"name":"dense2/conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.021025861478319356,"min":-2.2077154552235325}},{"name":"dense2/conv1/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00349616945958605,"min":-0.46149436866535865}},{"name":"dense2/conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008104994250278847,"min":-1.013124281284856}},{"name":"dense2/conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.029337059282789044,"min":-3.5791212325002633}},{"name":"dense2/conv2/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0038808938334969913,"min":-0.4230174278511721}},{"name":"fc/weights","shape":[128,136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.014016061670639936,"min":-1.8921683255363912}},{"name":"fc/bias","shape":[136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0029505149698724935,"min":0.088760145008564}}],"paths":["face_landmark_68_tiny_model-shard1"]}] -------------------------------------------------------------------------------- /public/models/face_recognition_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/models/face_recognition_model-shard1 -------------------------------------------------------------------------------- /public/models/face_recognition_model-shard2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/models/face_recognition_model-shard2 -------------------------------------------------------------------------------- /public/models/tiny_face_detector_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/models/tiny_face_detector_model-shard1 -------------------------------------------------------------------------------- /public/models/tiny_face_detector_model-weights_manifest.json: -------------------------------------------------------------------------------- 1 | [{"weights":[{"name":"conv0/filters","shape":[3,3,3,16],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009007044399485869,"min":-1.2069439495311063}},{"name":"conv0/bias","shape":[16],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005263455241334205,"min":-0.9211046672334858}},{"name":"conv1/depthwise_filter","shape":[3,3,16,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004001977630690033,"min":-0.5042491814669441}},{"name":"conv1/pointwise_filter","shape":[1,1,16,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.013836609615999109,"min":-1.411334180831909}},{"name":"conv1/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0015159862590771096,"min":-0.30926119685173037}},{"name":"conv2/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002666276225856706,"min":-0.317286870876948}},{"name":"conv2/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.015265831292844286,"min":-1.6792414422128714}},{"name":"conv2/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0020280554598453,"min":-0.37113414915168985}},{"name":"conv3/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006100742489683862,"min":-0.8907084034938438}},{"name":"conv3/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.016276211832083907,"min":-2.0508026908425725}},{"name":"conv3/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003394414279975143,"min":-0.7637432129944072}},{"name":"conv4/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006716050119961009,"min":-0.8059260143953211}},{"name":"conv4/pointwise_filter","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.021875603993733724,"min":-2.8875797271728514}},{"name":"conv4/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0041141652009066415,"min":-0.8187188749804216}},{"name":"conv5/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008423839597141042,"min":-0.9013508368940915}},{"name":"conv5/pointwise_filter","shape":[1,1,256,512],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.030007277283014035,"min":-3.8709387695088107}},{"name":"conv5/bias","shape":[512],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008402082966823203,"min":-1.4871686851277068}},{"name":"conv8/filters","shape":[1,1,512,25],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.028336129469030042,"min":-4.675461362389957}},{"name":"conv8/bias","shape":[25],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002268134028303857,"min":-0.41053225912299807}}],"paths":["tiny_face_detector_model-shard1"]}] -------------------------------------------------------------------------------- /public/similarity.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Emotion Detector 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | 33 |
34 | 110 | 111 |
112 |

The Cam is currently Off..

113 | 114 |
115 | 116 |
117 |
118 | 119 |
120 |
121 | 122 |
123 |
124 | 130 |
131 |
132 | 133 |
134 |
135 | 136 | 179 | 180 | 188 | 189 | -------------------------------------------------------------------------------- /public/testimonial.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Testimonial 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 108 |
109 |

Testimonial

110 |

-What People Think-

111 |
112 |
113 | 114 |
115 |
116 | 117 | 118 |
119 |  120 |
121 |
122 |
123 |

Aditya

124 |

Just loved the web application.Detected all my emotions accurately.

125 | 126 | 127 | 128 |
129 |
130 | 131 |
132 |
133 | 134 | 135 |
136 |  137 |
138 |
139 |
140 |

Emilia

141 |

Very userfriendly and the concept is too unique.I would suggest everyone to use this 142 | once.

143 | 144 | 145 | 146 |
147 |
148 | 149 |
150 |
151 | 152 | 153 |
154 |  155 |
156 |
157 |
158 |

Kunal

159 |

This is something I was looking for a long.Giving five star rating .

160 | 161 | 162 | 163 |
164 |
165 | 166 | 167 |
168 |
169 | 170 | 171 |
172 |  173 |
174 |
175 |
176 |

Rishi

177 |

Just loved the web application.Detected all my emotions accurately.

178 | 179 | 180 | 181 |
182 |
183 | 184 | 185 |
186 |
187 | 188 | 189 |
190 |  191 |
192 |
193 |
194 |

Kriti

195 |

Very userfriendly and the concept is too unique.I would suggest everyone to use this 196 | once.

197 | 198 | 199 | 200 |
201 |
202 | 203 | 204 |
205 |
206 | 207 | 208 |
209 |  210 |
211 |
212 |
213 |

Rohan

214 |

This is something I was looking for a long.Giving five star rating .

215 | 216 | 217 | 218 |
219 |
220 | 221 | 222 |
223 |
224 | 225 | 226 |
227 |  228 |
229 |
230 |
231 |

Jisan

232 |

Just loved the web application.Detected all my emotions accurately

233 | 234 | 235 | 236 |
237 |
238 | 239 | 240 |
241 |
242 | 243 | 244 |
245 |  246 |
247 |
248 |
249 |

Maria

250 |

Very userfriendly and the concept is too unique.I would suggest everyone to use this 251 | once.

252 | 253 | 254 | 255 |
256 |
257 | 258 | 259 |
260 |
261 | 262 | 263 |
264 |  265 |
266 |
267 |
268 |

Jack

269 |

This is something I was looking for a long.Giving five star rating .

270 | 271 | 272 | 273 |
274 |
275 | 276 | 277 | 278 |
279 |
280 | 281 |
282 |
283 |
284 |
285 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | -------------------------------------------------------------------------------- /public/uploadPic.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Emotion Detector 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | 93 | 94 | 95 | 96 | 148 | 149 | Hey there! We need a visual of your lovely face to help us detect your emotions accurately.
Don't worry, our AI 150 | won't judge your selfie skills! 😜 151 |
152 |
153 | 154 | 155 |
156 |
157 | 158 | 167 | 168 | -------------------------------------------------------------------------------- /public/weights/age_gender_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/weights/age_gender_model-shard1 -------------------------------------------------------------------------------- /public/weights/age_gender_model-weights_manifest.json: -------------------------------------------------------------------------------- 1 | [{"weights":[{"name":"entry_flow/conv_in/filters","shape":[3,3,3,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005431825039433498,"min":-0.7441600304023892}},{"name":"entry_flow/conv_in/bias","shape":[32],"dtype":"float32"},{"name":"entry_flow/reduction_block_0/separable_conv0/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005691980614381678,"min":-0.6090419257388395}},{"name":"entry_flow/reduction_block_0/separable_conv0/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009089225881239947,"min":-1.1179747833925135}},{"name":"entry_flow/reduction_block_0/separable_conv0/bias","shape":[64],"dtype":"float32"},{"name":"entry_flow/reduction_block_0/separable_conv1/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00683894624897078,"min":-0.8138346036275228}},{"name":"entry_flow/reduction_block_0/separable_conv1/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011632566358528886,"min":-1.3028474321552352}},{"name":"entry_flow/reduction_block_0/separable_conv1/bias","shape":[64],"dtype":"float32"},{"name":"entry_flow/reduction_block_0/expansion_conv/filters","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010254812240600587,"min":-0.9229331016540528}},{"name":"entry_flow/reduction_block_0/expansion_conv/bias","shape":[64],"dtype":"float32"},{"name":"entry_flow/reduction_block_1/separable_conv0/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0052509616403018725,"min":-0.6406173201168285}},{"name":"entry_flow/reduction_block_1/separable_conv0/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010788509424994973,"min":-1.4564487723743214}},{"name":"entry_flow/reduction_block_1/separable_conv0/bias","shape":[128],"dtype":"float32"},{"name":"entry_flow/reduction_block_1/separable_conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00553213918910307,"min":-0.7025816770160899}},{"name":"entry_flow/reduction_block_1/separable_conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.013602388606351965,"min":-1.6186842441558837}},{"name":"entry_flow/reduction_block_1/separable_conv1/bias","shape":[128],"dtype":"float32"},{"name":"entry_flow/reduction_block_1/expansion_conv/filters","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.007571851038465313,"min":-1.158493208885193}},{"name":"entry_flow/reduction_block_1/expansion_conv/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_0/separable_conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005766328409606335,"min":-0.6688940955143349}},{"name":"middle_flow/main_block_0/separable_conv0/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.012136116214826995,"min":-1.5776951079275094}},{"name":"middle_flow/main_block_0/separable_conv0/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_0/separable_conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004314773222979377,"min":-0.5652352922102984}},{"name":"middle_flow/main_block_0/separable_conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01107162026798024,"min":-1.2400214700137868}},{"name":"middle_flow/main_block_0/separable_conv1/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_0/separable_conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0036451735917259667,"min":-0.4848080876995536}},{"name":"middle_flow/main_block_0/separable_conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008791744942758598,"min":-1.134135097615859}},{"name":"middle_flow/main_block_0/separable_conv2/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_1/separable_conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004915751896652521,"min":-0.6095532351849126}},{"name":"middle_flow/main_block_1/separable_conv0/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010868691463096469,"min":-1.3368490499608656}},{"name":"middle_flow/main_block_1/separable_conv0/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_1/separable_conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005010117269029804,"min":-0.6012140722835765}},{"name":"middle_flow/main_block_1/separable_conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010311148213405235,"min":-1.3816938605963016}},{"name":"middle_flow/main_block_1/separable_conv1/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_1/separable_conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004911523706772748,"min":-0.7367285560159123}},{"name":"middle_flow/main_block_1/separable_conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008976466047997568,"min":-1.2207993825276693}},{"name":"middle_flow/main_block_1/separable_conv2/bias","shape":[128],"dtype":"float32"},{"name":"exit_flow/reduction_block/separable_conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005074804436926748,"min":-0.7104726211697447}},{"name":"exit_flow/reduction_block/separable_conv0/pointwise_filter","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011453078307357489,"min":-1.4545409450344011}},{"name":"exit_flow/reduction_block/separable_conv0/bias","shape":[256],"dtype":"float32"},{"name":"exit_flow/reduction_block/separable_conv1/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.007741751390344957,"min":-1.1380374543807086}},{"name":"exit_flow/reduction_block/separable_conv1/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011347713189966538,"min":-1.497898141075583}},{"name":"exit_flow/reduction_block/separable_conv1/bias","shape":[256],"dtype":"float32"},{"name":"exit_flow/reduction_block/expansion_conv/filters","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006717281014311547,"min":-0.8329428457746318}},{"name":"exit_flow/reduction_block/expansion_conv/bias","shape":[256],"dtype":"float32"},{"name":"exit_flow/separable_conv/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0027201742518181892,"min":-0.3237007359663645}},{"name":"exit_flow/separable_conv/pointwise_filter","shape":[1,1,256,512],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010076364348916447,"min":-1.330080094056971}},{"name":"exit_flow/separable_conv/bias","shape":[512],"dtype":"float32"},{"name":"fc/age/weights","shape":[512,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008674054987290326,"min":-1.2664120281443876}},{"name":"fc/age/bias","shape":[1],"dtype":"float32"},{"name":"fc/gender/weights","shape":[512,2],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0029948226377075793,"min":-0.34140978069866407}},{"name":"fc/gender/bias","shape":[2],"dtype":"float32"}],"paths":["age_gender_model-shard1"]}] -------------------------------------------------------------------------------- /public/weights/face_expression_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/weights/face_expression_model-shard1 -------------------------------------------------------------------------------- /public/weights/face_expression_model-weights_manifest.json: -------------------------------------------------------------------------------- 1 | [{"weights":[{"name":"dense0/conv0/filters","shape":[3,3,3,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0057930146946626555,"min":-0.7125408074435067}},{"name":"dense0/conv0/bias","shape":[32],"dtype":"float32"},{"name":"dense0/conv1/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006473719839956246,"min":-0.6408982641556684}},{"name":"dense0/conv1/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010509579321917366,"min":-1.408283629136927}},{"name":"dense0/conv1/bias","shape":[32],"dtype":"float32"},{"name":"dense0/conv2/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005666389652326995,"min":-0.7252978754978554}},{"name":"dense0/conv2/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010316079270605948,"min":-1.1760330368490781}},{"name":"dense0/conv2/bias","shape":[32],"dtype":"float32"},{"name":"dense0/conv3/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0063220320963392074,"min":-0.853474333005793}},{"name":"dense0/conv3/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010322785377502442,"min":-1.4658355236053466}},{"name":"dense0/conv3/bias","shape":[32],"dtype":"float32"},{"name":"dense1/conv0/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0042531527724920535,"min":-0.5741756242864272}},{"name":"dense1/conv0/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010653339647779278,"min":-1.1825207009035}},{"name":"dense1/conv0/bias","shape":[64],"dtype":"float32"},{"name":"dense1/conv1/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005166931012097527,"min":-0.6355325144879957}},{"name":"dense1/conv1/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011478300188101974,"min":-1.3888743227603388}},{"name":"dense1/conv1/bias","shape":[64],"dtype":"float32"},{"name":"dense1/conv2/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006144821410085641,"min":-0.8479853545918185}},{"name":"dense1/conv2/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010541967317169788,"min":-1.3809977185492421}},{"name":"dense1/conv2/bias","shape":[64],"dtype":"float32"},{"name":"dense1/conv3/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005769844849904378,"min":-0.686611537138621}},{"name":"dense1/conv3/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010939095534530341,"min":-1.2689350820055196}},{"name":"dense1/conv3/bias","shape":[64],"dtype":"float32"},{"name":"dense2/conv0/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0037769308277204924,"min":-0.40790852939381317}},{"name":"dense2/conv0/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01188667194516051,"min":-1.4382873053644218}},{"name":"dense2/conv0/bias","shape":[128],"dtype":"float32"},{"name":"dense2/conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006497045825509464,"min":-0.8381189114907208}},{"name":"dense2/conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011632198913424622,"min":-1.3377028750438316}},{"name":"dense2/conv1/bias","shape":[128],"dtype":"float32"},{"name":"dense2/conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005947182225246056,"min":-0.7969224181829715}},{"name":"dense2/conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011436844339557722,"min":-1.4524792311238306}},{"name":"dense2/conv2/bias","shape":[128],"dtype":"float32"},{"name":"dense2/conv3/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006665432686899222,"min":-0.8998334127313949}},{"name":"dense2/conv3/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01283421422920975,"min":-1.642779421338848}},{"name":"dense2/conv3/bias","shape":[128],"dtype":"float32"},{"name":"dense3/conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004711699953266218,"min":-0.6737730933170692}},{"name":"dense3/conv0/pointwise_filter","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010955964817720302,"min":-1.3914075318504784}},{"name":"dense3/conv0/bias","shape":[256],"dtype":"float32"},{"name":"dense3/conv1/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00554193468654857,"min":-0.7149095745647656}},{"name":"dense3/conv1/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.016790372250126858,"min":-2.484975093018775}},{"name":"dense3/conv1/bias","shape":[256],"dtype":"float32"},{"name":"dense3/conv2/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006361540626077091,"min":-0.8142772001378676}},{"name":"dense3/conv2/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01777329678628959,"min":-1.7062364914838006}},{"name":"dense3/conv2/bias","shape":[256],"dtype":"float32"},{"name":"dense3/conv3/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006900275922289082,"min":-0.8625344902861353}},{"name":"dense3/conv3/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.015449936717164282,"min":-1.9003422162112067}},{"name":"dense3/conv3/bias","shape":[256],"dtype":"float32"},{"name":"fc/weights","shape":[256,7],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004834276554631252,"min":-0.7203072066400565}},{"name":"fc/bias","shape":[7],"dtype":"float32"}],"paths":["face_expression_model-shard1"]}] -------------------------------------------------------------------------------- /public/weights/face_landmark_68_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/weights/face_landmark_68_model-shard1 -------------------------------------------------------------------------------- /public/weights/face_landmark_68_model-weights_manifest.json: -------------------------------------------------------------------------------- 1 | [{"weights":[{"name":"dense0/conv0/filters","shape":[3,3,3,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004853619781194949,"min":-0.5872879935245888}},{"name":"dense0/conv0/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004396426443960153,"min":-0.7298067896973853}},{"name":"dense0/conv1/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00635151559231328,"min":-0.5589333721235686}},{"name":"dense0/conv1/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009354315552057004,"min":-1.2628325995276957}},{"name":"dense0/conv1/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0029380727048013726,"min":-0.5846764682554731}},{"name":"dense0/conv2/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0049374802439820535,"min":-0.6171850304977566}},{"name":"dense0/conv2/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009941946758943446,"min":-1.3421628124573652}},{"name":"dense0/conv2/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0030300481062309416,"min":-0.5272283704841838}},{"name":"dense0/conv3/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005672684837790097,"min":-0.7431217137505026}},{"name":"dense0/conv3/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010712201455060173,"min":-1.5639814124387852}},{"name":"dense0/conv3/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0030966934035806097,"min":-0.3839899820439956}},{"name":"dense1/conv0/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0039155554537679636,"min":-0.48161332081345953}},{"name":"dense1/conv0/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01023082966898002,"min":-1.094698774580862}},{"name":"dense1/conv0/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0027264176630506327,"min":-0.3871513081531898}},{"name":"dense1/conv1/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004583378632863362,"min":-0.5454220573107401}},{"name":"dense1/conv1/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00915846403907327,"min":-1.117332612766939}},{"name":"dense1/conv1/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003091680419211294,"min":-0.5966943209077797}},{"name":"dense1/conv2/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005407439727409214,"min":-0.708374604290607}},{"name":"dense1/conv2/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00946493943532308,"min":-1.2399070660273235}},{"name":"dense1/conv2/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004409168514550901,"min":-0.9788354102303}},{"name":"dense1/conv3/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004478132958505668,"min":-0.6493292789833219}},{"name":"dense1/conv3/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011063695888893277,"min":-1.2501976354449402}},{"name":"dense1/conv3/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003909627596537272,"min":-0.6646366914113363}},{"name":"dense2/conv0/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003213915404151468,"min":-0.3374611174359041}},{"name":"dense2/conv0/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010917326048308728,"min":-1.4520043644250609}},{"name":"dense2/conv0/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002800439152063108,"min":-0.38085972468058266}},{"name":"dense2/conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0050568851770139206,"min":-0.6927932692509071}},{"name":"dense2/conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01074961213504567,"min":-1.3222022926106174}},{"name":"dense2/conv1/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0030654204242369708,"min":-0.5487102559384177}},{"name":"dense2/conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00591809165244009,"min":-0.917304206128214}},{"name":"dense2/conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01092823346455892,"min":-1.366029183069865}},{"name":"dense2/conv2/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002681120470458386,"min":-0.36463238398234055}},{"name":"dense2/conv3/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0048311497650894465,"min":-0.5797379718107336}},{"name":"dense2/conv3/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011227761062921263,"min":-1.4483811771168429}},{"name":"dense2/conv3/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0034643323982463162,"min":-0.3360402426298927}},{"name":"dense3/conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003394978887894574,"min":-0.49227193874471326}},{"name":"dense3/conv0/pointwise_filter","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010051267287310432,"min":-1.2765109454884247}},{"name":"dense3/conv0/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003142924752889895,"min":-0.4588670139219247}},{"name":"dense3/conv1/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00448304671867221,"min":-0.5872791201460595}},{"name":"dense3/conv1/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.016063522357566685,"min":-2.3613377865623026}},{"name":"dense3/conv1/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00287135781026354,"min":-0.47664539650374765}},{"name":"dense3/conv2/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006002906724518421,"min":-0.7923836876364315}},{"name":"dense3/conv2/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.017087187019048954,"min":-1.6061955797906016}},{"name":"dense3/conv2/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003124481205846749,"min":-0.46242321846531886}},{"name":"dense3/conv3/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006576311588287353,"min":-1.0193282961845398}},{"name":"dense3/conv3/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.015590153955945782,"min":-1.99553970636106}},{"name":"dense3/conv3/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004453541601405424,"min":-0.6546706154065973}},{"name":"fc/weights","shape":[256,136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010417488509533453,"min":-1.500118345372817}},{"name":"fc/bias","shape":[136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0025084222648658005,"min":0.07683877646923065}}],"paths":["face_landmark_68_model-shard1"]}] -------------------------------------------------------------------------------- /public/weights/face_landmark_68_tiny_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/weights/face_landmark_68_tiny_model-shard1 -------------------------------------------------------------------------------- /public/weights/face_landmark_68_tiny_model-weights_manifest.json: -------------------------------------------------------------------------------- 1 | [{"weights":[{"name":"dense0/conv0/filters","shape":[3,3,3,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008194216092427571,"min":-0.9423348506291708}},{"name":"dense0/conv0/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006839508168837603,"min":-0.8412595047670252}},{"name":"dense0/conv1/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009194007106855804,"min":-1.2779669878529567}},{"name":"dense0/conv1/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0036026100317637128,"min":-0.3170296827952067}},{"name":"dense0/conv1/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.000740380117706224,"min":-0.06367269012273527}},{"name":"dense0/conv2/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":1,"min":0}},{"name":"dense0/conv2/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":1,"min":0}},{"name":"dense0/conv2/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0037702228508743585,"min":-0.6220867703942692}},{"name":"dense1/conv0/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0033707996209462483,"min":-0.421349952618281}},{"name":"dense1/conv0/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.014611541991140328,"min":-1.8556658328748217}},{"name":"dense1/conv0/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002832523046755323,"min":-0.30307996600281956}},{"name":"dense1/conv1/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006593170586754294,"min":-0.6329443763284123}},{"name":"dense1/conv1/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.012215249211180444,"min":-1.6001976466646382}},{"name":"dense1/conv1/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002384825547536214,"min":-0.3028728445370992}},{"name":"dense1/conv2/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005859645441466687,"min":-0.7617539073906693}},{"name":"dense1/conv2/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.013121426806730382,"min":-1.7845140457153321}},{"name":"dense1/conv2/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0032247188044529336,"min":-0.46435950784122243}},{"name":"dense2/conv0/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002659512618008782,"min":-0.32977956463308894}},{"name":"dense2/conv0/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.015499923743453681,"min":-1.9839902391620712}},{"name":"dense2/conv0/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0032450980999890497,"min":-0.522460794098237}},{"name":"dense2/conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005911862382701799,"min":-0.792189559282041}},{"name":"dense2/conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.021025861478319356,"min":-2.2077154552235325}},{"name":"dense2/conv1/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00349616945958605,"min":-0.46149436866535865}},{"name":"dense2/conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008104994250278847,"min":-1.013124281284856}},{"name":"dense2/conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.029337059282789044,"min":-3.5791212325002633}},{"name":"dense2/conv2/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0038808938334969913,"min":-0.4230174278511721}},{"name":"fc/weights","shape":[128,136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.014016061670639936,"min":-1.8921683255363912}},{"name":"fc/bias","shape":[136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0029505149698724935,"min":0.088760145008564}}],"paths":["face_landmark_68_tiny_model-shard1"]}] -------------------------------------------------------------------------------- /public/weights/face_recognition_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/weights/face_recognition_model-shard1 -------------------------------------------------------------------------------- /public/weights/face_recognition_model-shard2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/weights/face_recognition_model-shard2 -------------------------------------------------------------------------------- /public/weights/mtcnn_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/weights/mtcnn_model-shard1 -------------------------------------------------------------------------------- /public/weights/mtcnn_model-weights_manifest.json: -------------------------------------------------------------------------------- 1 | [{"paths":["mtcnn_model-shard1"],"weights":[{"dtype":"float32","name":"pnet/conv1/weights","shape":[3,3,3,10]},{"dtype":"float32","name":"pnet/conv1/bias","shape":[10]},{"dtype":"float32","name":"pnet/prelu1_alpha","shape":[10]},{"dtype":"float32","name":"pnet/conv2/weights","shape":[3,3,10,16]},{"dtype":"float32","name":"pnet/conv2/bias","shape":[16]},{"dtype":"float32","name":"pnet/prelu2_alpha","shape":[16]},{"dtype":"float32","name":"pnet/conv3/weights","shape":[3,3,16,32]},{"dtype":"float32","name":"pnet/conv3/bias","shape":[32]},{"dtype":"float32","name":"pnet/prelu3_alpha","shape":[32]},{"dtype":"float32","name":"pnet/conv4_1/weights","shape":[1,1,32,2]},{"dtype":"float32","name":"pnet/conv4_1/bias","shape":[2]},{"dtype":"float32","name":"pnet/conv4_2/weights","shape":[1,1,32,4]},{"dtype":"float32","name":"pnet/conv4_2/bias","shape":[4]},{"dtype":"float32","name":"rnet/conv1/weights","shape":[3,3,3,28]},{"dtype":"float32","name":"rnet/conv1/bias","shape":[28]},{"dtype":"float32","name":"rnet/prelu1_alpha","shape":[28]},{"dtype":"float32","name":"rnet/conv2/weights","shape":[3,3,28,48]},{"dtype":"float32","name":"rnet/conv2/bias","shape":[48]},{"dtype":"float32","name":"rnet/prelu2_alpha","shape":[48]},{"dtype":"float32","name":"rnet/conv3/weights","shape":[2,2,48,64]},{"dtype":"float32","name":"rnet/conv3/bias","shape":[64]},{"dtype":"float32","name":"rnet/prelu3_alpha","shape":[64]},{"dtype":"float32","name":"rnet/fc1/weights","shape":[576,128]},{"dtype":"float32","name":"rnet/fc1/bias","shape":[128]},{"dtype":"float32","name":"rnet/prelu4_alpha","shape":[128]},{"dtype":"float32","name":"rnet/fc2_1/weights","shape":[128,2]},{"dtype":"float32","name":"rnet/fc2_1/bias","shape":[2]},{"dtype":"float32","name":"rnet/fc2_2/weights","shape":[128,4]},{"dtype":"float32","name":"rnet/fc2_2/bias","shape":[4]},{"dtype":"float32","name":"onet/conv1/weights","shape":[3,3,3,32]},{"dtype":"float32","name":"onet/conv1/bias","shape":[32]},{"dtype":"float32","name":"onet/prelu1_alpha","shape":[32]},{"dtype":"float32","name":"onet/conv2/weights","shape":[3,3,32,64]},{"dtype":"float32","name":"onet/conv2/bias","shape":[64]},{"dtype":"float32","name":"onet/prelu2_alpha","shape":[64]},{"dtype":"float32","name":"onet/conv3/weights","shape":[3,3,64,64]},{"dtype":"float32","name":"onet/conv3/bias","shape":[64]},{"dtype":"float32","name":"onet/prelu3_alpha","shape":[64]},{"dtype":"float32","name":"onet/conv4/weights","shape":[2,2,64,128]},{"dtype":"float32","name":"onet/conv4/bias","shape":[128]},{"dtype":"float32","name":"onet/prelu4_alpha","shape":[128]},{"dtype":"float32","name":"onet/fc1/weights","shape":[1152,256]},{"dtype":"float32","name":"onet/fc1/bias","shape":[256]},{"dtype":"float32","name":"onet/prelu5_alpha","shape":[256]},{"dtype":"float32","name":"onet/fc2_1/weights","shape":[256,2]},{"dtype":"float32","name":"onet/fc2_1/bias","shape":[2]},{"dtype":"float32","name":"onet/fc2_2/weights","shape":[256,4]},{"dtype":"float32","name":"onet/fc2_2/bias","shape":[4]},{"dtype":"float32","name":"onet/fc2_3/weights","shape":[256,10]},{"dtype":"float32","name":"onet/fc2_3/bias","shape":[10]}]}] -------------------------------------------------------------------------------- /public/weights/ssd_mobilenetv1_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/weights/ssd_mobilenetv1_model-shard1 -------------------------------------------------------------------------------- /public/weights/ssd_mobilenetv1_model-shard2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/weights/ssd_mobilenetv1_model-shard2 -------------------------------------------------------------------------------- /public/weights/tiny_face_detector_model-shard1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrsparkle-70/Emotion-detection-using-JS/4807c10c70cfec2f10db81d9f1c58ff77251acb8/public/weights/tiny_face_detector_model-shard1 -------------------------------------------------------------------------------- /public/weights/tiny_face_detector_model-weights_manifest.json: -------------------------------------------------------------------------------- 1 | [{"weights":[{"name":"conv0/filters","shape":[3,3,3,16],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009007044399485869,"min":-1.2069439495311063}},{"name":"conv0/bias","shape":[16],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005263455241334205,"min":-0.9211046672334858}},{"name":"conv1/depthwise_filter","shape":[3,3,16,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004001977630690033,"min":-0.5042491814669441}},{"name":"conv1/pointwise_filter","shape":[1,1,16,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.013836609615999109,"min":-1.411334180831909}},{"name":"conv1/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0015159862590771096,"min":-0.30926119685173037}},{"name":"conv2/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002666276225856706,"min":-0.317286870876948}},{"name":"conv2/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.015265831292844286,"min":-1.6792414422128714}},{"name":"conv2/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0020280554598453,"min":-0.37113414915168985}},{"name":"conv3/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006100742489683862,"min":-0.8907084034938438}},{"name":"conv3/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.016276211832083907,"min":-2.0508026908425725}},{"name":"conv3/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003394414279975143,"min":-0.7637432129944072}},{"name":"conv4/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006716050119961009,"min":-0.8059260143953211}},{"name":"conv4/pointwise_filter","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.021875603993733724,"min":-2.8875797271728514}},{"name":"conv4/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0041141652009066415,"min":-0.8187188749804216}},{"name":"conv5/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008423839597141042,"min":-0.9013508368940915}},{"name":"conv5/pointwise_filter","shape":[1,1,256,512],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.030007277283014035,"min":-3.8709387695088107}},{"name":"conv5/bias","shape":[512],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008402082966823203,"min":-1.4871686851277068}},{"name":"conv8/filters","shape":[1,1,512,25],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.028336129469030042,"min":-4.675461362389957}},{"name":"conv8/bias","shape":[25],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002268134028303857,"min":-0.41053225912299807}}],"paths":["tiny_face_detector_model-shard1"]}] --------------------------------------------------------------------------------