{ "info": { "author": "Paul Baumgarten", "author_email": "pbaumgarten@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Vision Made Easy\n\nThis project aims to remove a lot of the complexity of dealing with the Open CV for beginner level programmers to experiment with face detection and recognition.\n\nThis project has been initially developed for use within my own classes that I teach but I hope it might find use for others too.\n\n## PROJECT HOME\n\n* [VisionMadeEasy](https://pbaumgarten.com/visionmadeeasy)\n\n## INSTALL\n\n```\npip install visionmadeeasy\n```\n\nTo successfully run the demo, you will also have to...\n\n* Download a cascade file such as `haarcascade_frontalface_default.xml` from [https://github.com/opencv/opencv/tree/master/data/haarcascades](https://github.com/opencv/opencv/tree/master/data/haarcascades) and save it into your project folder\n* Create a sub-folder called \"datasets\" in your project folder. This is where it will store your training photos.\n* Make sure you have a web camera attached :-)\n\n## DEMO CODE\n\n```python\nimport visionmadeeasy\n\ndef i_see_a_face( location, img ):\n print(f\"I see a face!!! It is at {location['x']},{location['y']}\")\n return True # must return True to keep the loop alive\n\ndef i_recognise_a_face( location, person_name, confidence, img ):\n print(f\"Hello {person_name}! I am {confidence}% sure it is you :-)\")\n return True # must return True to keep the loop alive\n\nif __name__ == \"__main__\":\n vme = visionmadeeasy.VisionMadeEasy(0, \"dataset\")\n quit = False\n while not quit:\n print(\"Demonstration time! Menu of options...\")\n print(\"1. Detect faces\")\n print(\"2. Record faces\")\n print(\"3. Train for faces recorded\")\n print(\"4. Recognise faces (must do training first)\")\n print(\"5. Exit\")\n choice = int(input(\"Enter your option (1 to 5):\"))\n\n if choice == 1:\n print(\"[face_vision] Task: Searching for faces.\\nLook at the camera! (press ESC to quit)\")\n # Demo of detecting faces\n vme.detect_face(i_see_a_face)\n\n elif choice == 2:\n print(\"About to save 50 images of different angles etc of a person, saving to folder ./dataset\")\n id = int(input(\"Enter unique person number: \"))\n n = input(\"Enter person name: \")\n print(\"Smile! :-)\")\n # Demo of recording faces\n vme.record_face_dataset(images_to_record=50, interval=1, person_identifier=id, person_name=n)\n\n elif choice == 3:\n print(\"[face_vision] Task: Training... please wait...\")\n # Demo of training faces\n vme.train_from_faces()\n\n elif choice == 4:\n print(\"[face_vision] Task: Searching for faces I recognise.\\nLook at the camera! (press ESC to quit)\")\n # Demo of recognising faces\n vme.recognise_face(i_recognise_a_face)\n\n elif choice == 5:\n quit = True\n\nprint(\"Goodbye!\")\n```\n\n## AUTHOR\n\n* [Paul Baumgarten](https://pbaumgarten.com/)\n\n## LICENSE\n\nMIT License (C) 2019 Paul Baumgarten\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://pbaumgarten.com/visionmadeeasy", "keywords": "opencv face detection recognition beginner", "license": "", "maintainer": "", "maintainer_email": "", "name": "visionmadeeasy", "package_url": "https://pypi.org/project/visionmadeeasy/", "platform": "", "project_url": "https://pypi.org/project/visionmadeeasy/", "project_urls": { "Homepage": "https://pbaumgarten.com/visionmadeeasy" }, "release_url": "https://pypi.org/project/visionmadeeasy/2019.2.17/", "requires_dist": [ "opencv-contrib-python", "numpy", "Pillow" ], "requires_python": ">=3", "summary": "A module intended to abstract away a lot of the complexity of using OpenCV to detect and recognise faces for beginner programmers.", "version": "2019.2.17" }, "last_serial": 4832528, "releases": { "2019.2.1": [ { "comment_text": "", "digests": { "md5": "8a2d41b24d07770ebfa94dc2dfa9e6a5", "sha256": "639749aaa1d2fa064dffa4bb41d281c64e476c7fc2c07afde04989edabd91bfd" }, "downloads": -1, "filename": "visionmadeeasy-2019.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8a2d41b24d07770ebfa94dc2dfa9e6a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 7631, "upload_time": "2019-02-01T16:32:57", "url": "https://files.pythonhosted.org/packages/d5/f7/bb43e7eb16639f7cf4f160924d5c120023921dc5bec4d9e574b98cade5b9/visionmadeeasy-2019.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1c2165a599ab513d162951503bb6f44", "sha256": "6a2142ceb19fc4faa5a8a9915cb60e9cc646e6bc6b48310b36931883df903625" }, "downloads": -1, "filename": "visionmadeeasy-2019.2.1.tar.gz", "has_sig": false, "md5_digest": "f1c2165a599ab513d162951503bb6f44", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6540, "upload_time": "2019-02-01T16:32:59", "url": "https://files.pythonhosted.org/packages/d2/8e/66211fa19abbcbdc73af99a63fc89c8d2784b47e5f9744e38165aef10a09/visionmadeeasy-2019.2.1.tar.gz" } ], "2019.2.17": [ { "comment_text": "", "digests": { "md5": "c104c168290c6db693d9ae780f9f90b7", "sha256": "88402a1d3fd8b68c4ffaaa3355c8f328fde733c66f63eec17bd055762ea1b9d6" }, "downloads": -1, "filename": "visionmadeeasy-2019.2.17-py3-none-any.whl", "has_sig": false, "md5_digest": "c104c168290c6db693d9ae780f9f90b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 7821, "upload_time": "2019-02-17T22:19:45", "url": "https://files.pythonhosted.org/packages/cd/a7/92ca1bff6f8d2e170978358360a1686a920e62778d63441ebf49f59f034d/visionmadeeasy-2019.2.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62fdefe9afffe53f9462c01e8882a6a2", "sha256": "9f24e484dcaef7fb2875aea847ceea021b2feeb1276d3fd8a0c337113128832d" }, "downloads": -1, "filename": "visionmadeeasy-2019.2.17.tar.gz", "has_sig": false, "md5_digest": "62fdefe9afffe53f9462c01e8882a6a2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 7326, "upload_time": "2019-02-17T22:19:47", "url": "https://files.pythonhosted.org/packages/48/27/dfddcd176b6b646fa1dcdecd7908b8cb18096e5ce59b587858b4df3f4b75/visionmadeeasy-2019.2.17.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c104c168290c6db693d9ae780f9f90b7", "sha256": "88402a1d3fd8b68c4ffaaa3355c8f328fde733c66f63eec17bd055762ea1b9d6" }, "downloads": -1, "filename": "visionmadeeasy-2019.2.17-py3-none-any.whl", "has_sig": false, "md5_digest": "c104c168290c6db693d9ae780f9f90b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 7821, "upload_time": "2019-02-17T22:19:45", "url": "https://files.pythonhosted.org/packages/cd/a7/92ca1bff6f8d2e170978358360a1686a920e62778d63441ebf49f59f034d/visionmadeeasy-2019.2.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62fdefe9afffe53f9462c01e8882a6a2", "sha256": "9f24e484dcaef7fb2875aea847ceea021b2feeb1276d3fd8a0c337113128832d" }, "downloads": -1, "filename": "visionmadeeasy-2019.2.17.tar.gz", "has_sig": false, "md5_digest": "62fdefe9afffe53f9462c01e8882a6a2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 7326, "upload_time": "2019-02-17T22:19:47", "url": "https://files.pythonhosted.org/packages/48/27/dfddcd176b6b646fa1dcdecd7908b8cb18096e5ce59b587858b4df3f4b75/visionmadeeasy-2019.2.17.tar.gz" } ] }