{"id":28325316,"url":"https://github.com/altest-com/dnfal","last_synced_at":"2026-05-05T20:40:00.729Z","repository":{"id":214640952,"uuid":"250314089","full_name":"altest-com/dnfal","owner":"altest-com","description":"A deep learning-based library for real-time face analytics","archived":false,"fork":false,"pushed_at":"2020-12-08T17:59:05.000Z","size":290,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-23T12:43:27.355Z","etag":null,"topics":["face-analysis","face-detection","face-recognition","opencv","python","pytorch"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/altest-com.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-03-26T16:37:18.000Z","updated_at":"2020-12-08T17:59:08.000Z","dependencies_parsed_at":"2023-12-29T15:50:19.678Z","dependency_job_id":null,"html_url":"https://github.com/altest-com/dnfal","commit_stats":null,"previous_names":["altest-com/dnfal"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/altest-com/dnfal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altest-com%2Fdnfal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altest-com%2Fdnfal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altest-com%2Fdnfal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altest-com%2Fdnfal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/altest-com","download_url":"https://codeload.github.com/altest-com/dnfal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altest-com%2Fdnfal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32667686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-analysis","face-detection","face-recognition","opencv","python","pytorch"],"created_at":"2025-05-25T20:12:29.430Z","updated_at":"2026-05-05T20:40:00.724Z","avatar_url":"https://github.com/altest-com.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Dnfal\n=======================\n\n|Build Status| |Test Coverage| |Python Version| |Contributions Welcome| |License|\n\n.. |Build Status| image:: https://travis-ci.com/raikel/dnfal.svg?branch=master\n   :target: https://travis-ci.com/raikel/dnfal\n.. |Test Coverage| image:: https://codecov.io/gh/raikel/dnfal/branch/master/graph/badge.svg\n   :target: https://codecov.io/gh/raikel/dnfal\n.. |Python Version| image:: https://img.shields.io/badge/python-v3.7+-blue.svg\n   :target: http://shields.io/\n.. |Contributions Welcome| image:: https://img.shields.io/badge/contributions-welcome-orange.svg\n   :target: http://shields.io/\n.. |License| image:: https://img.shields.io/badge/license-MIT-blue.svg\n   :target: https://opensource.org/licenses/MIT\n\nA deep learning-based library for real-time face analysis. The homepage of dnfal with user documentation is located on:\n\nhttps://dnfal.readthedocs.io\n\n.. image:: ./docs/source/_static/architecture.png\n\nFeatures\n--------\n\n- Face detection, alignment and encoding in images and videos.\n- Real time performance on video analysis.\n- Built on top of state-of-the-art deep learning models.\n- High-performance pre-trained models available, you don't need to train any model.\n\nDeep learning models and some core functionalities for face analysis where \nadapted from the following repositories:\n\n- Code for face detection was adapted from `FaceBoxes.PyTorch \u003chttps://github.com/zisianw/FaceBoxes.PyTorch\u003e`_, licensed under the Apache 2.0 license.\n- Code for face landmark detection, alignment and encoding was adapted from `face.evoLVe.PyTorch \u003chttps://github.com/ZhaoJ9014/face.evoLVe.PyTorch\u003e`_, copyright Jian Zhao, 2019, licensed under the MIT license.\n\nGetting started\n===============\n\nYou can use `pip` to install dnfal::\n\n    pip install dnfal\n\nAlternatively, you can download the latest source code using git::\n\n    git clone git://github.com/raikel/dnfal.git\n\nand run the setup command from the source directory::\n\n    python setup.py install\n    \nNext, you must download the pretrained deep learning models from `here \u003chttps://github.com/raikel/dnfal/tree/master/models\u003e`_. Uncompress the downloaded files in any directory of your choice. Three models are provided: `detector_weights.pth` (for face detection), `marker_weights.pth` (for face landmark detection) and `encoder_weights.pth` (for face encoding).\n\n\nExample usages\n==============\n\nHere is some basic example usages of `dnfal`.\n\nFace detection\n--------------\n\n.. code-block:: python\n\n    from os import path    \n    import cv2 as cv   \n    from dnfal.detection import FaceDetector\n    \n    # A valid path to a image file\n    IMAGE_PATH = 'people.jpg'\n    \n    # A valid path to a file containing the model weights of face detector\n    WEIGHTS_PATH = 'detector_weights.pth'\n\n    faces_detector = FaceDetector(\n        weights_path=WEIGHTS_PATH,  \n        min_score=0.9, \n        nms_thresh=0.7\n    )\n    \n    image = cv.imread(IMAGE_PATH)\n    h, w, = image.shape[0:2]\n\n    boxes, scores = faces_detector.detect(image)\n\n    for ind, box in enumerate(boxes):\n        cv.rectangle(\n            image, \n            pt1=(box[0], box[1]), \n            pt2=(box[2], box[3]), \n            color=(255, 0, 0), \n            thickness=2\n        )\n        cv2.putText(\n            image,\n            text=f'{scores[ind]:.3f}',\n            org=(box[0], box[1] -10),\n            fontFace=cv.FONT_HERSHEY_SIMPLEX,\n            fontScale=0.5,\n            color=(255, 255, 255),\n            thickness=2,\n            lineType=cv.LINE_AA\n        )\n\n    cv.imshow(f'Faces', image)\n\n    ret = cv.waitKey()\n    cv.destroyAllWindows()\n\nWorkflow to contribute\n======================\n\nTo contribute to dnfal, first create an account on `github\n\u003chttps://github.com/\u003e`_. Once this is done, fork the `dnfal repository\n\u003chttps://github.com/raikel/dnfal\u003e`_ to have your own repository,\nclone it using 'git clone' on the computers where you want to work. Make\nyour changes in your clone, push them to your github account, test them\non several computers, and when you are happy with them, send a pull\nrequest to the main repository.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faltest-com%2Fdnfal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faltest-com%2Fdnfal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faltest-com%2Fdnfal/lists"}