{"id":22007480,"url":"https://github.com/bertandogancay/webcam-face-recognition","last_synced_at":"2026-04-16T07:35:47.257Z","repository":{"id":148418191,"uuid":"528505041","full_name":"BertanDogancay/Webcam-Face-Recognition","owner":"BertanDogancay","description":"A face recognition system that can detect faces and differentiate them based on the category they are in.","archived":false,"fork":false,"pushed_at":"2023-03-22T07:26:19.000Z","size":6610,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T07:14:58.214Z","etag":null,"topics":["face","face-detection","face-recognition","jetson-nano","opencv","opencv-python","real-time"],"latest_commit_sha":null,"homepage":"","language":"C++","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/BertanDogancay.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-24T16:27:06.000Z","updated_at":"2023-03-15T03:54:39.000Z","dependencies_parsed_at":"2023-05-20T01:15:36.232Z","dependency_job_id":null,"html_url":"https://github.com/BertanDogancay/Webcam-Face-Recognition","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BertanDogancay/Webcam-Face-Recognition","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BertanDogancay%2FWebcam-Face-Recognition","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BertanDogancay%2FWebcam-Face-Recognition/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BertanDogancay%2FWebcam-Face-Recognition/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BertanDogancay%2FWebcam-Face-Recognition/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BertanDogancay","download_url":"https://codeload.github.com/BertanDogancay/Webcam-Face-Recognition/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BertanDogancay%2FWebcam-Face-Recognition/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31876758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["face","face-detection","face-recognition","jetson-nano","opencv","opencv-python","real-time"],"created_at":"2024-11-30T01:27:07.442Z","updated_at":"2026-04-16T07:35:47.239Z","avatar_url":"https://github.com/BertanDogancay.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Webcam-Face-Recognition\nThis is a face recognition system that allows you to categorize people based on their access status, These categories are (Access) and (No Access). Image 1 folder is for people that have access and Image 2 folder is for people that do not have access. If you put the picture of your face in Image 1 folder you will see a green box covering your face on the camera, and if you put it in Image 2 folder, you will see a red box with a text on top that says \"FAIL\" on it.\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003cth\u003eAccess\u003c/th\u003e\n    \u003cth\u003eNo Access\u003c/th\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e \u003cimg height=\"239\" width=\"243\" src=\"https://user-images.githubusercontent.com/111835151/186472477-1ecfb7c2-28f5-4b4e-ae55-3345ca214159.gif\"\u003e\u003c/td\u003e\n      \u003ctd\u003e \u003cimg height=\"239\" width=\"243\" src=\"https://user-images.githubusercontent.com/111835151/186550430-4442c779-ee13-4096-b68f-a201c78eabe1.gif\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\nIn this code, the face_recognition library was used to detect faces. Check out their repo for more information. The link is [here](https://github.com/ageitgey/face_recognition). This code can be run on any kind of platform and computer, but for better performance in detections, you need a cuda enabled dlib library. When you try to import face_recognition library it will also import dlib automatically, but it might not be compiled with cuda depending on the system you have and whether or not if cuda is already installed on your computer. \n\nAs can be seen in the table below, there are two different pictures of the same person and even though these pictures were taken in different times and the hair styles are not very similar, the detections and results are very accurate. when the code is exacuted, there will be a number between 0 and 1 that changes constantly and printed on the command prompt. That number is \"faceDisAccess\" or \"faceDisNoAccess\". The number is closer to zero, the better the accurracy of the results. \n\nHere is how they are being calculated;\n\n``` python\n   faceDisAccess = face_recognition.face_distance(encodeListAccess, encodeFace)\n   faceDisNoAccess = face_recognition.face_distance(encodeListNoAccess, encodeFace)\n```\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003cth\u003ePose 1\u003c/th\u003e\n    \u003cth\u003ePose 2\u003c/th\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e \u003cimg height=\"239\" width=\"243\" src=\"https://user-images.githubusercontent.com/111835151/186550430-4442c779-ee13-4096-b68f-a201c78eabe1.gif\"\u003e\u003c/td\u003e\n      \u003ctd\u003e \u003cimg height=\"239\" width=\"243\" src=\"https://user-images.githubusercontent.com/111835151/186550563-601c2a6e-c59d-477d-977e-e8ef5931c54a.gif\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n***NOTE: This example includes a pan tilt mechanism and was designed to be used in devices like Raspberry pi or Jetson Nano, but if the code is exacuted on a regular computer, it will still work without any problem, but the camera won't move in the face's direction.***\n\nIf you are using a regular computer or do not include servo motors in your project, you can disregard these lines of codes;\n\n``` python\nimport board\nimport busio\nimport os\nfrom adafruit_servokit import ServoKit\n\ni2c = busio.I2C(board.SCL, board.SDA)\nimport adafruit_pca9685\n\npwm = adafruit_pca9685.PCA9685(i2c)\npwm.frequency = 50\npwm = ServoKit(channels=16)\npwm.servo[0].angle = 90\n\nx_medium = int(cols / 2)\ny_medium = int(cols / 2)\ncenter = int(cols / 2)\nposition1 = 90\n\nif x_medium \u003c center -70:\n    position1 += 3\nelif x_medium \u003e center +70:\n    position1 -= 3\npwm.servo[0].angle = position1\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbertandogancay%2Fwebcam-face-recognition","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbertandogancay%2Fwebcam-face-recognition","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbertandogancay%2Fwebcam-face-recognition/lists"}