{ "info": { "author": "Brett D. Roads", "author_email": "brett.roads@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3" ], "description": "===========================\nHieralb: Hierarchical Album\n===========================\n\nA niche package\n---------------\nHieralb is composed of a small set of Python functions that implement a\nconsistent identification scheme for images used in visual categorization. In\nthis package, a collection of images is referred to as an *album*. Within an\nalbum, a given image can often be categorized at multiple levels (e.g., bird,\nkingfisher, ringed kingfisher) creating a hierarchy of categories. In many\napplications, it is desirable to consider these different levels of\ncategorization. Hieralb enables you to easily generate unique *image IDs* and\n*class IDs* for all possible categories. Hieralb generates a set of plain text\nfiles that specify the relationship between the actual images, image IDs and\nclass IDs. Lastly, Hieralb provides a Python class so that the album's\nstructural relationships and ID's can easily be used in other Python\napplications.\n\nGetting started\n---------------\nThese instructions provide a guick overview of what you need to do to get\nstarted. More detailed instructions can be found below.\n\n 1. Create a new folder ````.\n 2. Create the folder ``images`` inside ````.\n 3. Inside ``images``, create appropriately named folders. The folder names will become the literal class names.\n 4. Place all of your images in the appropriate folders.\n 5. To create the appropriate album files run:``$ python create_album_files.py ``\n\nInstallation\n------------\nThere are two ways to get Hieralb:\n\n 1. Install using pip: ``pip install hieralb``\n 2. Clone from Git Hub: https://github.com/roads/hieralb.git\n\nDetailed instructions\n---------------------\nThis file covers the creation and management of domain directories for use in\napplications that require organized image databases. The core organization\nprinciple is that an image can be classified at different levels.\nClassification levels are modeled using a hierarchical folder structure.\n\nFor example, consider an album containing bird images. Let's call this album\nbirds-9, since there are nine different species. Let us also assume that we want\nto capture two different levels of categorization: the *taxonomic family* and\n*taxonomic species*. The bird directory might be organized in the following way:\n\n.. code-block:: bash\n\n birds-9/\n \u2514\u2500\u2500 bird/\n \u251c\u2500\u2500 Parulidae/\n \u2502 \u251c\u2500\u2500 Bobolink/\n \u2502 \u251c\u2500\u2500 Hooded_Oriole/\n \u2502 \u2514\u2500\u2500 Scott_Oriole/\n \u251c\u2500\u2500 Passeridae/\n \u2502 \u251c\u2500\u2500 Hooded_Warbler/\n \u2502 \u251c\u2500\u2500 Kentucky_Warbler/\n \u2502 \u2514\u2500\u2500 Magnolia Warbler/\n \u2514\u2500\u2500 Icteridae/\n \u251c\u2500\u2500 Chipping_Sparrow/\n \u251c\u2500\u2500 Fox_Sparrow/\n \u2514\u2500\u2500 Harris_Sparrow/\n\nAfter arranging the ``image/`` directory to your satisfaction (with the actual\nimages placed in the appropriate species folder), you can run:\n``$ python create_album_files.py birds-9 10000000``\n\nAfter running the script, the album directory will contain (at least) the\nfollowing three text files:\n\n- classes.txt\n - A file listing all the classes (from all hierarchical levels) along with\n their corresponding class_id.\n - The file is composed of two columns using a space delimeter: \n \n - The class_id begins at 0 for each album, thus the class ID is not\n unique across albums. The root class in the directory tree is assigned\n class_id 0.\n- images.txt\n - A file listing all the images and their corresponding imag_id.\n - The file is composed of two columns using a space delimeter:\n \n - The unique_image_id is constructed using a numerical prefix supplied by the\n user (e.g., 10000000) which is added to a value starting at 1 (e.g.,\n 10000001, 10000002, 10000002, ...). By using a prefix, the unique_image_id\n is unique across albums. Use the prefix \"0\" if you don't want to use a prefix.\n- image_class0.txt\n - A file mapping each image to its finest-grained class.\n - The file is composed of two columns using a space delimeter:\n \n- class_class.txt\n - A file listing the mapping between a child class and its parent class.\n - A file composed of two columns using a space delimeter: \n \n\nIf the ``image/`` directory is more than one level deep (i.e, it contains nested\nclasses), then additional files will be created. These files will follow the\nstructure:\n\n- class_class.txt\n - A file listing the mapping between a class level n and its parent level n+1.\n - A file composed of two columns using a space delimeter: \n \n - Level zero starts at the deepest leaf node of the directory tree.\n\nOnce the appropriate files have been created, you can use the Album class to load \nthe data associated with an album into convenient python object. An album object \ncan be instantied by importing passing a string containing the path to the album directory. \n\n.. code-block:: python\n\n from hieralb import Album\n birds_9_album = Album('\\birds-9')\n\nConventions and assumptions\n---------------------------\n- Code has only been tested using Python 3\n- Folder names should be singular within the \u201cimages\u201d folder (e.g., use bird not birds).\n- Use underscore as a placeholder for whitespace (e.g., \u201cHooded_Warbler\u201d, not\n\u201cHooded Warbler\u201d). Actual spaces can not be used in folder or filenames.\n- The depth of each leaf node (from the parent node) must be the same.\n\nVersioning\n----------\nThis package folows the Semantic Versioning 2.0.0 rules (https://semver.org).\n\nAuthors\n-------\n- Brett D. Roads\nSee also the list of contributors who participated in this project.\n\nLicense\n-------\nThis project is licensed under the MIT License - see the LICENSE.txt file for details.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/roads/hieralb", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "hieralb", "package_url": "https://pypi.org/project/hieralb/", "platform": "", "project_url": "https://pypi.org/project/hieralb/", "project_urls": { "Homepage": "https://github.com/roads/hieralb" }, "release_url": "https://pypi.org/project/hieralb/0.1.2/", "requires_dist": [ "pandas", "pathlib", "imageio" ], "requires_python": ">=3", "summary": "Tools for managing hierarchical albums of images.", "version": "0.1.2" }, "last_serial": 3585784, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "17fc3244183220eaf3fc49c0b7c963b3", "sha256": "264b8ea4fa3b453a5a0ada11444f5f01c9933ece0bcb3abd54ca3724849e4ba2" }, "downloads": -1, "filename": "hieralb-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "17fc3244183220eaf3fc49c0b7c963b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 8811, "upload_time": "2018-02-15T13:00:59", "url": "https://files.pythonhosted.org/packages/8b/36/fe5a6d95223e59e39d459e2a3c167e86350bcd250dee60a86b912da48f14/hieralb-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d2b6d3d90afdd7fd9749cf954ea9167", "sha256": "146caaf8b04fb37249e46c41f9b9f8f7174bbfa826ab45e8b8bc942cb69d3597" }, "downloads": -1, "filename": "hieralb-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4d2b6d3d90afdd7fd9749cf954ea9167", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6511, "upload_time": "2018-02-15T13:01:00", "url": "https://files.pythonhosted.org/packages/ab/e2/10f733e4f35b8785e42b7ecdb6ed9e29e4ab495fed410c81e1ec2c729b82/hieralb-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "e60058ff26cd30837e46f925643800f1", "sha256": "7d7bc2c96da0258207ac0cff7839d7556dff437a317e76ded320b78ba98201c2" }, "downloads": -1, "filename": "hieralb-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e60058ff26cd30837e46f925643800f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 8922, "upload_time": "2018-02-15T13:34:20", "url": "https://files.pythonhosted.org/packages/14/3d/1865f15abb1e3138efea29b4c1a709fb2f6651b15eee96dcc576436c2997/hieralb-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa55c7ba87ec9c16d518c9bca8dcb160", "sha256": "1be7a6ea64a1262d8153ce9bdae70d406104de06f7061771bd970e8a5eebc01f" }, "downloads": -1, "filename": "hieralb-0.1.1.tar.gz", "has_sig": false, "md5_digest": "fa55c7ba87ec9c16d518c9bca8dcb160", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6576, "upload_time": "2018-02-15T13:34:21", "url": "https://files.pythonhosted.org/packages/92/2a/e02aac09ea91ad0a25a70fff3a095e55c746f0944b7e3ebf9e1e13ce520d/hieralb-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "8f4a97986074accbe7db4b0ce59d3c77", "sha256": "bc71ee5382697a97f2c8f2e1ebacec42c5e953050251acab017f152bb702c469" }, "downloads": -1, "filename": "hieralb-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8f4a97986074accbe7db4b0ce59d3c77", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 9676, "upload_time": "2018-02-15T23:12:58", "url": "https://files.pythonhosted.org/packages/e7/bf/f31fda3344dcd7d36dd86b98ef6cfaa1f99adfa447c8a45370c0315bcb56/hieralb-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ee242cb3652c3dea9f791835fd71820", "sha256": "a1194262511e8812a8feec3c24849620ef7e49fc2eba8287ed1f91381bf0a861" }, "downloads": -1, "filename": "hieralb-0.1.2.tar.gz", "has_sig": false, "md5_digest": "2ee242cb3652c3dea9f791835fd71820", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 7353, "upload_time": "2018-02-15T23:13:00", "url": "https://files.pythonhosted.org/packages/1d/bc/ec223ac38729f107516ce1d0ddb882bdad4777f0930faf49ccbf81982312/hieralb-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8f4a97986074accbe7db4b0ce59d3c77", "sha256": "bc71ee5382697a97f2c8f2e1ebacec42c5e953050251acab017f152bb702c469" }, "downloads": -1, "filename": "hieralb-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8f4a97986074accbe7db4b0ce59d3c77", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 9676, "upload_time": "2018-02-15T23:12:58", "url": "https://files.pythonhosted.org/packages/e7/bf/f31fda3344dcd7d36dd86b98ef6cfaa1f99adfa447c8a45370c0315bcb56/hieralb-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ee242cb3652c3dea9f791835fd71820", "sha256": "a1194262511e8812a8feec3c24849620ef7e49fc2eba8287ed1f91381bf0a861" }, "downloads": -1, "filename": "hieralb-0.1.2.tar.gz", "has_sig": false, "md5_digest": "2ee242cb3652c3dea9f791835fd71820", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 7353, "upload_time": "2018-02-15T23:13:00", "url": "https://files.pythonhosted.org/packages/1d/bc/ec223ac38729f107516ce1d0ddb882bdad4777f0930faf49ccbf81982312/hieralb-0.1.2.tar.gz" } ] }