{"id":14977579,"url":"https://github.com/njmarko/2face-verification","last_synced_at":"2025-10-28T04:32:02.116Z","repository":{"id":44407231,"uuid":"371371760","full_name":"njmarko/2FAce-verification","owner":"njmarko","description":"Microservice AI Neural Network Tensorflowjs face (YOLO object) detection Two-factor deep learning (TensorFlow) authentication in Spring, Vue, and Flask with face verification based on logistic regression and cosine similarity in high dimensional vector space.","archived":false,"fork":false,"pushed_at":"2021-07-04T20:53:08.000Z","size":20434,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-11T16:05:32.604Z","etag":null,"topics":["ai","deep-learning","face-detection","face-verification","facelandmarkdetect","facenet","flask","keras","linus-torvalds","microservices","mongodb","netflix-eureka","postgresql","resnet-50","spring-framework","tensorflow","tensorflowjs","vggface","vue","yolo"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/njmarko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-27T12:50:15.000Z","updated_at":"2024-03-14T16:29:38.000Z","dependencies_parsed_at":"2022-07-15T10:19:35.910Z","dependency_job_id":null,"html_url":"https://github.com/njmarko/2FAce-verification","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njmarko%2F2FAce-verification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njmarko%2F2FAce-verification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njmarko%2F2FAce-verification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njmarko%2F2FAce-verification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/njmarko","download_url":"https://codeload.github.com/njmarko/2FAce-verification/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219860180,"owners_count":16556026,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","deep-learning","face-detection","face-verification","facelandmarkdetect","facenet","flask","keras","linus-torvalds","microservices","mongodb","netflix-eureka","postgresql","resnet-50","spring-framework","tensorflow","tensorflowjs","vggface","vue","yolo"],"created_at":"2024-09-24T13:55:56.532Z","updated_at":"2025-10-28T04:31:52.087Z","avatar_url":"https://github.com/njmarko.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 2FAce-verification\n\nPredmetni projekat iz predmeta Osnovi računarske inteligencije (ORI) - 2FA sistem zasnovan na neuronskim mrežama za detekciju i verifikaciju lica.\n\n## Članovi tima\n\n * Marko Njegomir\n * Dušan Erdeljan\n\n## Sadržaj\n\n * [Poster](#poster)\n * [Izgled aplikacije](#izgled-aplikacije)\n * [Pokretanje projekta](#pokretanje-projekta)\n   * [Preduslovi](#preduslovi)\n   * [Pokretanje](#pokretanje)\n     * [Frontend](#frontend)\n     * [Eureka server](#eureka-server)\n     * [Bekend](#bekend)\n     * [Servis(i) za verifikaciju lica](#servis-za-verifikaciju-lica)\n     * [Tensorboard](#tensorboard)\n\n## Poster\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/docs/Poster.png\"\u003e\n  \u003cp align=\"center\"\u003eIlustracija 1 - Poster projekta.\u003c/p\u003e\n\u003c/p\u003e\n\n## Izgled aplikacije\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/docs/images/login.jpg\"\u003e\n  \u003cp align=\"center\"\u003eIlustracija 2 - Stranica za prijavljivanje.\u003c/p\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/docs/images/register.jpg\"\u003e\n  \u003cp align=\"center\"\u003eIlustracija 3 - Stranica za registraciju.\u003c/p\u003e\n\u003c/p\u003e\n\n\n## Pokretanje projekta\n\n### Preduslovi\n\nZa pokretanje projekta potrebno je instalirati `Pg Admin` (https://www.pgadmin.org/) i `MongoDB Server` (https://www.mongodb.com/try/download/community). Zatim je potrebno napraviti Postgre bazu sa nazivom `2FAce`. `Python` verzija na kojoj je projekat testiran je `3.8`.\n\n### Pokretanje\n\nPotrebno je pokrenuti sve projektu u navedenom redosledu (bitno je pokrenuti eureka server pre bekend aplikacije i servisa za verifikaciju lica).\n\n#### Frontend\n\nIz `2face-frontend` foldera potrebno je pokrenuti komandu `npm ci` (samo pre prvog pokretanja), a zatim pokrenuti komandu `npm run serve`. Frontend aplikacija će biti startovana na adresi `http://localhost:8080/`.\n\n#### Eureka server\n\nEureka server je moguće pokrenuti iz nekog razvojnog okruženja ili pokretanjem komande `.\\mvnw spring-boot:run` iz foldera `eureka-server`. Ovim je eureka server pokrenut i registrovani servisi se mogu videti na adresi `http://localhost:8761/`.\n\n#### Bekend\n\nBekend aplikaciju je moguće pokrenuti iz nekog razvojnog okruženja ili pokretanjem komande `.\\mvnw spring-boot:run` iz foldera `2face-backend`.\n\n#### Servis za verifikaciju lica\n\nPre pokretanja servisa za verifikaciju lica potrebno je instalirati sve biblioteke iz fajla `face-verification-service/requirements.txt`. Poželjno je pre instalacije podesiti virtuelno okruženje. Servise za verifikaciju lica je moguće pokrenuti iz nekog razvojnog okruženja, čime će im biti dodeljen podrazumevani port `8181`. Dodatno, servise je moguće pokrenuti pokretanjem komande `python ./flask_verification_service.py --port \u003cPORT\u003e` iz foldera `face-verification-service/src`. Ovim će servis biti pokrenut na prosleđenom portu.\n\n#### Tensorboard\n\nZa pokretanje tensorboard aplikacije koja prikazuje rezultate prikupljene prilikom treniranja modela za verifikaciju potrebno je pozicionirati se u folder `face-verification-service/src` i pokrenuti komandu \n`tensorboard --logdir logs/fit`. Tensorboard je nakon toga moguće koristiti na adresi `http://localhost:6006/`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjmarko%2F2face-verification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnjmarko%2F2face-verification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjmarko%2F2face-verification/lists"}