{ "info": { "author": "Luis Rojas Aguilera", "author_email": "rojas@icomp.ufam.edu.br", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "## Face Detector\n\nPython package and Command Line Tool for state-of-the-art face detection and face\nlandmark points localization. It gathers the techniques implemented in dlib and\nmtcnn, which can be easily switched between by setting a parameter in the\nFaceDetector class instantiation (dlib\\_5 is default if no technique is\nspecified, use dlib\\_5 for dlib with 5 landmarks and dlib\\_68 for dlib with 68\nlandmarks).\n\n## How to Install:\n\n First install C compiler:\n sudo apt-get install cmake, g++\n\n Then this package:\n pip install face-detector\n\n## How to Use python package:\n\n from face_detector import FaceDetector\n\n img_addr = \"path/to/image.[jpg/png/jpeg ...]\"\n\n # First parameter in FaceDetector constructor specifies face detection method (dlib: fl_5 or fl_68, mtcnn is default: mtcnn)\n face_detector = FaceDetector()\n faces = face_detector.get_faces(img_addr)\n\n # Or to get the most prominent face in photo\n main_face = face_detector.get_main_face(img_addr)\n\n # Show image with bounding boxes and landmarks\n import cv2\n img = cv2.imread(img_addr)\n\n for face in faces:\n bb = face.bounding_box\n landmarks = face.landmarks\n cv2.rectangle(img, (int(bb.x), int(bb.y)), (int(bb.x + bb.w), int(bb.y+bb.h)), (0, 255, 0), 1)\n for l in landmarks:\n cv2.circle(img, (l.x, l.y), 2, (0,0,255))\n\n cv2.imshow('img', img)\n cv2.waitKey(0)\n cv2.destroyAllWindows()\n\n## How to use Command Line Tool\n\n```console\n foo@bar:~$ facedetector /home/foo/images/Yasser_Arafat.jpg\n```\nThe previous command will display the image passed in arguments with a bounding box wrapping every face in the image. Fig. 1 shows the image displayed.\n\n
\n

Fig. 1 Face detections as outputted by facedetector command line tool

\n
\n\n\n
\n

Fig. 2 Face detections and landmarks as outputted by facedetector with -l (--landmarks) and -j (--only-main-face) options

\n
\n\n\n```console\n foo@bar:~$ facedetector /home/foo/images/Yasser_Arafat.jpg -j -o /tmp/output.jpg -l\n```\nThe previous command adds -j, -l and -o options, which capture the main\nface in the photo, adds landmark points and output the image with bounding boxes to the\nspecified path, respectivelly. It also display the image in Fig. 2.\n\n\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/roj4s/face_detector", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "face-detector", "package_url": "https://pypi.org/project/face-detector/", "platform": "", "project_url": "https://pypi.org/project/face-detector/", "project_urls": { "Homepage": "https://github.com/roj4s/face_detector" }, "release_url": "https://pypi.org/project/face-detector/0.4/", "requires_dist": [ "absl-py (==0.7.1)", "astor (==0.7.1)", "dlib (==19.17.0)", "gast (==0.2.2)", "grpcio (==1.19.0)", "h5py (==2.9.0)", "Keras-Applications (==1.0.7)", "Keras-Preprocessing (==1.0.9)", "Markdown (==3.1)", "mock (==2.0.0)", "numpy (==1.16.2)", "opencv-python (==4.0.0.21)", "pbr (==5.1.3)", "protobuf (==3.7.1)", "six (==1.12.0)", "tensorboard (==1.13.1)", "tensorflow (==1.13.1)", "tensorflow-estimator (==1.13.0)", "termcolor (==1.1.0)", "Werkzeug (==0.15.2)" ], "requires_python": "", "summary": "State-of-the-art face detection and landmarks localization", "version": "0.4" }, "last_serial": 5908216, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "40450b44df5032431aa75908869b492a", "sha256": "6c08322dbe411e59e3e89318fbc2fe670bd9da8ddb4f5ecffefdf1996934e712" }, "downloads": -1, "filename": "face_detector-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "40450b44df5032431aa75908869b492a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11707, "upload_time": "2019-03-22T12:38:10", "url": "https://files.pythonhosted.org/packages/d7/1b/d5fbb62d91c75cca3780f22a519a06c0e139b6eb5bc63f6d7ae128abc55b/face_detector-0.1-py3-none-any.whl" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "4be6948ea68808e046374eaa2f47762c", "sha256": "0dbf304a77f81050ae22cebcd24e45f4d05c0f7094a7bac1c16349089e3bf7a9" }, "downloads": -1, "filename": "face_detector-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4be6948ea68808e046374eaa2f47762c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13046, "upload_time": "2019-03-22T13:34:50", "url": "https://files.pythonhosted.org/packages/1e/c3/ec41f713d615314315ce7a283851e44571bc4c8d8c53441ccac769664b14/face_detector-0.2-py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "b791a95c51e149e8452480b197467bcb", "sha256": "55ce9d240debaa95eb9cc8e8e23cb990892f1ff11cdde9e20071156eb56aad18" }, "downloads": -1, "filename": "face_detector-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b791a95c51e149e8452480b197467bcb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13407, "upload_time": "2019-03-22T19:57:46", "url": "https://files.pythonhosted.org/packages/23/98/70485ed15de0f8d9d73bc0032a1d284fc162a63665f117c2fed873e3c95e/face_detector-0.2.1-py3-none-any.whl" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "6c926178a71fff1bf1d5eb857827f053", "sha256": "4dc6974a92236464f73edf2eb0fc57250bd68c5d0d4fceed8a15854d7bfa53ce" }, "downloads": -1, "filename": "face_detector-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6c926178a71fff1bf1d5eb857827f053", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9083141, "upload_time": "2019-03-28T19:01:35", "url": "https://files.pythonhosted.org/packages/b4/04/a80d7b7cfc9980b939a8689f36a6be801f46818d9ca81161af904c9edfa5/face_detector-0.2.2-py3-none-any.whl" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "67d8e05923eeb7b25e3624639d7ea42d", "sha256": "7441c698e098b865caae4710a45a49377f3090a44a1966380e3e0384d0aafecb" }, "downloads": -1, "filename": "face_detector-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "67d8e05923eeb7b25e3624639d7ea42d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9083150, "upload_time": "2019-04-01T15:19:30", "url": "https://files.pythonhosted.org/packages/eb/58/9744749a18621aebe5439208d3e4b6eba8541fe93619f2fab9090375bf37/face_detector-0.2.3-py3-none-any.whl" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "80a5417661c1aa2744e62e1cde335d44", "sha256": "ccaa7a48de7f46d9f28ff5f07c57e2e4a572f9fdab9e03f9c2e398b03d793faa" }, "downloads": -1, "filename": "face_detector-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "80a5417661c1aa2744e62e1cde335d44", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9084027, "upload_time": "2019-04-02T16:45:56", "url": "https://files.pythonhosted.org/packages/45/00/f174f868cc8870cc11425204168676b86e04ee943f0cdf665d0386d2760c/face_detector-0.2.4-py3-none-any.whl" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "39d4b143453e43e4ada44e6826ed655b", "sha256": "ca8a713390cc0cf1ce12590958fe04216aaa6585d508e2f548461825a949bd22" }, "downloads": -1, "filename": "face_detector-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "39d4b143453e43e4ada44e6826ed655b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9084383, "upload_time": "2019-04-02T16:46:41", "url": "https://files.pythonhosted.org/packages/3d/03/39e7d46d8182c356c1e17cb60dee6c0effb3cbfddbbd3b13c44c7e176ab2/face_detector-0.2.5-py3-none-any.whl" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "3b05b95be0623570ac1eda6278c499b8", "sha256": "2e8c1f2d5c0d347a330497e14760b1d5ad7fd182905b953567cf294b9d406d3d" }, "downloads": -1, "filename": "face_detector-0.2.6-py3-none-any.whl", "has_sig": false, "md5_digest": "3b05b95be0623570ac1eda6278c499b8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9084526, "upload_time": "2019-04-02T18:36:53", "url": "https://files.pythonhosted.org/packages/7d/67/8c46214aafad2d6003de6f1aaffd48f0582a8f703dc4307fbe6ae8f30093/face_detector-0.2.6-py3-none-any.whl" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "d9c4e7d9f856ee8e668b2a7a4d3e9383", "sha256": "ee9612c4068e409fcea8161d182a4ab3ca0dce5d1b7ec9d894d0c209f555349e" }, "downloads": -1, "filename": "face_detector-0.2.7-py3-none-any.whl", "has_sig": false, "md5_digest": "d9c4e7d9f856ee8e668b2a7a4d3e9383", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9084549, "upload_time": "2019-04-02T18:39:39", "url": "https://files.pythonhosted.org/packages/c9/b6/4dc92edc80c99ee901442b77ce5a4e7a4919fff42485a4e36d87a70f22c9/face_detector-0.2.7-py3-none-any.whl" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "2826de1de105dac5c0458f81b70f9d45", "sha256": "26cbbb8878dda0bf2bfa32d962549c65fc47a82491b206b9e6cdd331131798c1" }, "downloads": -1, "filename": "face_detector-0.2.8-py3-none-any.whl", "has_sig": false, "md5_digest": "2826de1de105dac5c0458f81b70f9d45", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9084575, "upload_time": "2019-04-03T14:26:06", "url": "https://files.pythonhosted.org/packages/95/0d/c1c39face2e819609ddf0be474c6e5f44a829b3b7b2ce06d71fb3d5ef1f5/face_detector-0.2.8-py3-none-any.whl" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "208faeaf98f5b6c5bb01e571952f3e17", "sha256": "30b36e5b4b5ef7f8dd7c98d27a205214adefbe51b999762af88d965b667a38fe" }, "downloads": -1, "filename": "face_detector-0.2.9-py3-none-any.whl", "has_sig": false, "md5_digest": "208faeaf98f5b6c5bb01e571952f3e17", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9084600, "upload_time": "2019-04-03T22:05:02", "url": "https://files.pythonhosted.org/packages/8f/53/9302fba73c659b1c743c2bd8a032fa9edc6ea525ff3b6d86995db4fcc43b/face_detector-0.2.9-py3-none-any.whl" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "0534624ff43891d78b63cbfb563c179d", "sha256": "a1bb443d7f544f2d322ee0c4942819adace6882af1c0e4ad5436525e1946c9c0" }, "downloads": -1, "filename": "face_detector-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "0534624ff43891d78b63cbfb563c179d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9084551, "upload_time": "2019-04-05T18:40:30", "url": "https://files.pythonhosted.org/packages/59/63/a7c8d12b7a33144ac639857ca7915653718837f3d927fe46e095633d3c17/face_detector-0.3-py3-none-any.whl" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "191f35eee59c6fb19dd9bae259093024", "sha256": "8cda48bd2bc73235f8d3c455619825fa2cb1d59914f8d1c5ab1f264b3f823c21" }, "downloads": -1, "filename": "face_detector-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "191f35eee59c6fb19dd9bae259093024", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9084263, "upload_time": "2019-09-30T17:58:38", "url": "https://files.pythonhosted.org/packages/aa/64/a66e87537fbf6ef8f6e3c7f600aa3c74ae50c91d612114cb062f07d2d248/face_detector-0.4-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "191f35eee59c6fb19dd9bae259093024", "sha256": "8cda48bd2bc73235f8d3c455619825fa2cb1d59914f8d1c5ab1f264b3f823c21" }, "downloads": -1, "filename": "face_detector-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "191f35eee59c6fb19dd9bae259093024", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9084263, "upload_time": "2019-09-30T17:58:38", "url": "https://files.pythonhosted.org/packages/aa/64/a66e87537fbf6ef8f6e3c7f600aa3c74ae50c91d612114cb062f07d2d248/face_detector-0.4-py3-none-any.whl" } ] }