{ "info": { "author": "Andrew Khalel", "author_email": "andrewekhalel@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "# Edafa\n![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg) [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/andrewekhalel/edafa/issues) [![HitCount](http://hits.dwyl.io/andrewekhalel/edafa.svg)](http://hits.dwyl.io/andrewekhalel/edafa)
\nEdafa is a simple wrapper that implements Test Time Augmentations (TTA) on images for computer vision problems like: segmentation, classification, super-resolution, Pansharpening, etc. TTAs guarantees better results in most of the tasks.\n\n### Test Time Augmentation (TTA)\n\nApplying different transformations to test images and then average for more robust results.\n\n![pipeline](https://preview.ibb.co/kH61v0/pipeline.png)\n\n### Installation\n```shell\npip install edafa\n```\n\n### Getting started\nThe easiest way to get up and running is to follow [example notebooks](https://github.com/andrewekhalel/edafa/tree/master/examples) for segmentation and classification showing TTA effect on performance.\n\n### How to use Edafa\nThe whole process can be done in 4 steps:\n1. Import Predictor class based on your task category: Segmentation (`SegPredictor`) or Classification (`ClassPredictor`) \n```python\nfrom edafa import SegPredictor\n```\n2. Inherit Predictor class and implement the main function \n\t* `predict_patches(self,patches)` : where your model takes image patches (numpy.ndarray) and return prediction (numpy.ndarray)\n\n```python\nclass myPredictor(SegPredictor):\n def __init__(self,model,*args,**kwargs):\n super().__init__(*args,**kwargs)\n self.model = model\n\n def predict_patches(self,patches):\n return self.model.predict(patches)\n```\n3. Create an instance of you class\n```python\np = myPredictor(model,patch_size,model_output_channels,conf_file_path)\n```\n4. Call `predict_images()` to run the prediction process \n```python\np.predict_images(images,overlap=0)\n```\n### Configuration file\nConfiguration file is a json file containing two pieces of information\n1. Augmentations to apply (**augs**). Supported augmentations:\n\t* **NO** : No augmentation\n\t* **ROT90** : Rotate 90 degrees\n\t* **ROT180** : Rotate 180 degrees\n\t* **ROT270** : Rotate 270 degrees\n\t* **FLIP_UD** : Flip upside-down\n\t* **FLIP_LR** : Flip left-right\n\t* **BRIGHT** : Change image brightness randomly\n\t* **CONTRAST** : Change image contrast randomly\n\t* **GAUSSIAN** : Add random gaussian noise\n\t* **GAMMA** : Perform gamma correction with random gamma\n2. Combination of the results (**mean**). Supported mean types:\n\t* **ARITH** : Arithmetic mean\n\t* **GEO** : Geometric mean\n3. Number of bits image (default is 8-bits) (**bits**).\n\nExample of a conf file\n```json\n{\n\"augs\":[\"NO\",\n\"FLIP_UD\",\n\"FLIP_LR\"],\n\"mean\":\"ARITH\",\n\"bits\":8\n}\n```\nYou can either pass file path or the actual json text to `conf` parameter.\n\n## Contribution\nAll contributions are welcomed. Please make sure that all tests passed before pull request. To run tests\n```shell\nnosetests\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/andrewekhalel/edafa", "keywords": "augmentation classification segmentation super-resolution pansharpening keras tensorflow pytorch", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "edafa", "package_url": "https://pypi.org/project/edafa/", "platform": "", "project_url": "https://pypi.org/project/edafa/", "project_urls": { "Homepage": "https://github.com/andrewekhalel/edafa" }, "release_url": "https://pypi.org/project/edafa/0.1.4/", "requires_dist": [ "numpy", "tifffile", "opencv-python" ], "requires_python": "", "summary": "Test Time Augmentation (TTA) wrapper for computer vision tasks: segmentation,classification, super-resolution, ... etc.", "version": "0.1.4" }, "last_serial": 4484938, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "2e66f65c53df7020687b3a996a50245c", "sha256": "b8193083aafa4bcf0412805438a951c26c1b665ad02773a14c9c7725760085ea" }, "downloads": -1, "filename": "edafa-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2e66f65c53df7020687b3a996a50245c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5401, "upload_time": "2018-10-24T10:14:40", "url": "https://files.pythonhosted.org/packages/8a/c5/bf410f54b15f39218218f1203c3f8ff0421a109a8ccbb7716d00c8b94045/edafa-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e80b9f5b2cb0a9fdf10e421f23f2f3ed", "sha256": "7acdcdbf9be41bfbf8a71d3fbd21dfba928bedaf46ca4762c15512aae587d3c3" }, "downloads": -1, "filename": "edafa-0.1.tar.gz", "has_sig": false, "md5_digest": "e80b9f5b2cb0a9fdf10e421f23f2f3ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5015, "upload_time": "2018-10-24T10:14:42", "url": "https://files.pythonhosted.org/packages/94/2c/68ba84ec7f263c54c6fc0d3526939e0657384840de8129be731a4396621d/edafa-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "34c8bac9536e715db1fbbce2b2b952bf", "sha256": "a84b8ba548cb4740572fcdf6ef6312b1e3d3fc45c5aa32bcc06ea762902de059" }, "downloads": -1, "filename": "edafa-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "34c8bac9536e715db1fbbce2b2b952bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6873, "upload_time": "2018-10-25T15:12:22", "url": "https://files.pythonhosted.org/packages/47/15/2a1f523f5263d34104e313bb2a0c4139e06a31fdc34ad8ea64ad287a18aa/edafa-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66e1d4b68f6813300d3b2bb00393fdaf", "sha256": "ade9be1e744717437b1f17bc7498ad8aad435b416ce928f7dd10526678507efd" }, "downloads": -1, "filename": "edafa-0.1.1.tar.gz", "has_sig": false, "md5_digest": "66e1d4b68f6813300d3b2bb00393fdaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5421, "upload_time": "2018-10-25T15:12:23", "url": "https://files.pythonhosted.org/packages/90/ff/0e985e203b2a3bc13bad0e269eeed7897e5bf9693bce185a1154799ab8c1/edafa-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "5486ac703e50c2f75de8a8a5e9bdced0", "sha256": "41ae76f86b7811d7bd67e92dcc54f83ce2d7c4ac5743a1b524cfbdf6d6ff6751" }, "downloads": -1, "filename": "edafa-0.1.2.tar.gz", "has_sig": false, "md5_digest": "5486ac703e50c2f75de8a8a5e9bdced0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5396, "upload_time": "2018-10-30T14:33:28", "url": "https://files.pythonhosted.org/packages/93/8d/e701d2dba1f4fa4bd22b3d4a968f84222b2b400bcb2510f5678428fb5091/edafa-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "15001c71e46978b0851e169ef0a37759", "sha256": "485ac2ba3dfe6cbd9efee44a81d7895940a683a27137dd2b6ebadef875c4cf96" }, "downloads": -1, "filename": "edafa-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "15001c71e46978b0851e169ef0a37759", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7091, "upload_time": "2018-11-05T15:52:55", "url": "https://files.pythonhosted.org/packages/9d/32/e7d7c8bec446a872fe48777bd268912c4ee33f9fb6981a9f40ed0749f346/edafa-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1519dcce9c4c1349b5488fc31c11b8ce", "sha256": "ed4724b4d6ea27f22aaf27cae8f62eb7abdd933ad1afd9b051fd4a051225acea" }, "downloads": -1, "filename": "edafa-0.1.3.tar.gz", "has_sig": false, "md5_digest": "1519dcce9c4c1349b5488fc31c11b8ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5571, "upload_time": "2018-11-05T15:52:57", "url": "https://files.pythonhosted.org/packages/72/cc/0621ad5968e3443f1d626dc4ee188c39b052323f731b3d0802b5efdc5a39/edafa-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "0e5889c0ebc234d37d79c98dc11cb1cb", "sha256": "4bb10446a635a56c8bc617de6873c5e38450b869abdff401e63869bcff7c3dea" }, "downloads": -1, "filename": "edafa-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "0e5889c0ebc234d37d79c98dc11cb1cb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8135, "upload_time": "2018-11-14T09:41:39", "url": "https://files.pythonhosted.org/packages/d0/3c/642d2306e5add4e7689ecf91203d5a0fb1f72b32e2b5d8b5074bd1b1f431/edafa-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1743b06baa859fc274aa27af75d7f990", "sha256": "f4b6a46e8a9242ef915ac12f939ab5f1c926bb70fe3dccd1481a6f265e221985" }, "downloads": -1, "filename": "edafa-0.1.4.tar.gz", "has_sig": false, "md5_digest": "1743b06baa859fc274aa27af75d7f990", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6697, "upload_time": "2018-11-14T09:41:41", "url": "https://files.pythonhosted.org/packages/40/76/d0b5960246458ceaab72ca5a951730803a4f6e55937365741d3d33af5a04/edafa-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0e5889c0ebc234d37d79c98dc11cb1cb", "sha256": "4bb10446a635a56c8bc617de6873c5e38450b869abdff401e63869bcff7c3dea" }, "downloads": -1, "filename": "edafa-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "0e5889c0ebc234d37d79c98dc11cb1cb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8135, "upload_time": "2018-11-14T09:41:39", "url": "https://files.pythonhosted.org/packages/d0/3c/642d2306e5add4e7689ecf91203d5a0fb1f72b32e2b5d8b5074bd1b1f431/edafa-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1743b06baa859fc274aa27af75d7f990", "sha256": "f4b6a46e8a9242ef915ac12f939ab5f1c926bb70fe3dccd1481a6f265e221985" }, "downloads": -1, "filename": "edafa-0.1.4.tar.gz", "has_sig": false, "md5_digest": "1743b06baa859fc274aa27af75d7f990", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6697, "upload_time": "2018-11-14T09:41:41", "url": "https://files.pythonhosted.org/packages/40/76/d0b5960246458ceaab72ca5a951730803a4f6e55937365741d3d33af5a04/edafa-0.1.4.tar.gz" } ] }