{ "info": { "author": "Joseph Chazalon", "author_email": "joseph.chazalon@lrde.epita.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: Image Recognition" ], "description": "Python wrapper for the SmartDoc 2015 - Challenge 1 Dataset\n==========================================================\n\n`The source for this project is available here `_.\n\n\n`The SmartDoc 2015 Challenge 1 dataset `_ was originally created for the SmartDoc 2015 competition focusing on the evaluation of document image acquisition method using smartphones. The challenge 1, in particular, consisted in detecting and segmenting document regions in video frames extracted from the preview stream of a smartphone.\n\nThis dataset was packaged in a new format and a python wrapper (this current package) was created to facilitate its usage.\n\n\nDataset version\n---------------\nThe version of the dataset used by this wrapper is: **2.0.0**.\n\nThe source for the dataset is here: https://github.com/jchazalon/smartdoc15-ch1-dataset\n\n\nSample usage\n------------\nThere are 3 tasks this Python package helps you to test your methods against, but first of all you have to properly install this package:\n\n.. code:: console\n\n pip install smartdoc_ch1\n\nA good practice is to install such package in a virtual environment.\nWe recommend to use `Virtualenv Wrapper `_ to use virtual environments.\n\n\nTask 1: Segmentation\n''''''''''''''''''''\n**Segmentation**: this is the original task.\n Inputs are video frames, and expected output is a composed of the coordinated of the four corners of the document image in each frame (top left, bottom left, bottom right and top right).\n The evaluation is performed by computing the intersection over union (\"IoU\" or also \"Jaccard index\") of the expected document region and the found region. The tricky thing is that the coordinates are projected to the document referential in order to allow comparisons between different frames and different document models.\n The original evaluation code is available at https://github.com/jchazalon/smartdoc15-ch1-eval, and the Python wrapper also contains an implementation using the new data format.\n\n - read dataset\n - [opt. read models]\n - [opt. train/test split + train]\n - test\n - eval\n\n\nTask 2: Model classification\n''''''''''''''''''''''''''''\n**Model classification**: this is a new task.\n Inputs are video frames, and expected output is the identifier of the document model represented in each frame.\n There are 30 models named \"datasheet001\", \"datasheet002\", ..., \"tax005\".\n The evaluation is performed as any multi-class classification task.\n\n - read dataset\n - [opt. read models]\n - [opt. train/test split + train]\n - test\n - eval\n\n\nTask 3: Model type classification\n'''''''''''''''''''''''''''''''''\n**Model type classification**: this is a new task.\n Inputs are video frames, and expected output is the identifier of the document model **type** represented in each frame.\n There are 6 models types, each having 5 members, named \"datasheet\", \"letter\", \"magazine\", \"paper\", \"patent\" and \"tax\".\n The evaluation is performed as any multi-class classification task.\n\n - read dataset\n - [opt. read models]\n - [opt. train/test split + train]\n - test\n - eval\n\nOptional: Using model images\n''''''''''''''''''''''''''''\n\n\nManual download option\n----------------------\n\nIf you are behind a proxy, have a slow connexion or for any other reason, you may want to download the dataset manually instead of letting the Python wrapper do it for you.\nThis is simple: \n\n1. download the ``frames.tar.gz`` and ``models.tar.gz`` files from https://github.com/jchazalon/smartdoc15-ch1-dataset/releases to some local directory;\n\n2. choose where you want to store the files and manually create the file hierarchy (the ``smartdoc_ch1_home`` intermediate directory is important here):\n\n.. code:: console\n\n mkdir -p PATH_TO_STORAGE_DIR/smartdoc_ch1_home/frames\n mkdir -p PATH_TO_STORAGE_DIR/smartdoc_ch1_home/models\n\n3. extract the archives to their target directories:\n\n.. code:: console\n\n tar -xzf PATH_TO_FRAMES.TAR.GZ -C PATH_TO_STORAGE_DIR/smartdoc_ch1_home/frames\n tar -xzf PATH_TO_MODELS.TAR.GZ -C PATH_TO_STORAGE_DIR/smartdoc_ch1_home/models\n\nThen, make sure you specify ``data_home=PATH_TO_STORAGE_DIR`` and ``download_if_missing=False`` when you call the ``load_sd15ch1_frames`` and ``load_sd15ch1_models`` functions. The functions ``get_sd15ch1_basedir_frames`` and\n``get_sd15ch1_basedir_models`` also require that you specify ``data_home=PATH_TO_STORAGE_DIR``.\n\nBy default, the path to local dataset storage complies with Scikit-learn standard location: ``PATH_TO_STORAGE_DIR=~/scikit_learn_data``\n\n\nAPI\n---\nTODO DOC\n\n.. code:: python\n\n MODEL_VARIANT_01_ORIGINAL = \"01-original\"\n MODEL_VARIANT_02_EDITED = \"02-edited\"\n MODEL_VARIANT_03_CAPTURED = \"03-captured-nexus\"\n MODEL_VARIANT_04_CORRECTED = \"04-corrected-nexus\"\n MODEL_VARIANT_05_SCALED33 = \"05-corrected-nexus-scaled33\"\n\n load_sd15ch1_frames(data_home=None,\n sample=1.0,\n shuffle=False,\n random_state=0,\n download_if_missing=True,\n load_images=False,\n resize=None,\n color=False,\n with_model_classif_targets=True,\n with_modeltype_classif_targets=True,\n with_segmentation_targets=True,\n with_model_shapes=True,\n return_X_y=False,\n )\n\n load_sd15ch1_models(data_home=None,\n download_if_missing=True,\n load_images=False,\n variant=MODEL_VARIANT_05_SCALED33,\n color=False,\n with_model_ids=True,\n with_modeltype_ids=True,\n return_X_y=False,\n )\n\n read_sd15ch1_image(root_dir,\n image_relative_path,\n resize=None,\n color=False)\n\n read_sd15ch1_images(root_dir,\n image_relative_path_seq,\n resize=None,\n color=False)\n\n get_sd15ch1_basedir_frames(data_home=None)\n\n get_sd15ch1_basedir_models(data_home=None)\n\n eval_sd15ch1_segmentations(segmentations, \n target_segmentations, \n model_shapes, \n frame_resize_factor=1.0, \n print_summary=False)\n\n eval_sd15ch1_classifications(labels, \n target_labels)\n\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jchazalon/smartdoc15-ch1-pywrapper", "keywords": "dataset wrapper image_processing computer_vision", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "smartdoc15-ch1", "package_url": "https://pypi.org/project/smartdoc15-ch1/", "platform": "", "project_url": "https://pypi.org/project/smartdoc15-ch1/", "project_urls": { "Bug Reports": "https://github.com/jchazalon/smartdoc15-ch1-pywrapper/issues", "Dataset (Python)": "https://github.com/jchazalon/smartdoc15-ch1-dataset", "Dataset (original)": "https://sites.google.com/site/icdar15smartdoc/", "Documentation": "https://github.com/jchazalon/smartdoc15-ch1-pywrapper", "Homepage": "https://github.com/jchazalon/smartdoc15-ch1-pywrapper", "Source": "https://github.com/jchazalon/smartdoc15-ch1-pywrapper" }, "release_url": "https://pypi.org/project/smartdoc15-ch1/0.8/", "requires_dist": [ "numpy (>=1.11)", "pandas (>=0.22)", "Pillow (>=5.0)", "Polygon2 (>=2.0)", "scikit-image (>=0.13)", "scikit-learn (>=0.18)", "scipy (>=1.0)", "six (>=1.0)" ], "requires_python": "", "summary": "A Python wrapper for the \"computable\" version of the SmartDoc 2015 - Challenge 1 dataset.", "version": "0.8" }, "last_serial": 3951737, "releases": { "0.4": [ { "comment_text": "", "digests": { "md5": "6948d2f7bfb52fc6e0e8e7bd8d96c352", "sha256": "c4f4b754f9c4c51cebb74f045bb79e96e4b946c516c6fc93d3920892d26318bd" }, "downloads": -1, "filename": "smartdoc15_ch1-0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6948d2f7bfb52fc6e0e8e7bd8d96c352", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19284, "upload_time": "2018-03-08T10:13:04", "url": "https://files.pythonhosted.org/packages/70/0c/62dcde4348fbc23dadd3c540183b8446040329aa08ba868bdaeaf4256cf8/smartdoc15_ch1-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d3feceda82a1319d9ad6f7d80a138bc", "sha256": "af8e86bf7f827085c809799ee3629f4174cd9ab1734d3bd713f73a4a71af642e" }, "downloads": -1, "filename": "smartdoc15_ch1-0.4.tar.gz", "has_sig": false, "md5_digest": "0d3feceda82a1319d9ad6f7d80a138bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19705, "upload_time": "2018-03-08T10:13:07", "url": "https://files.pythonhosted.org/packages/84/22/95c1857a035b32ded5c8f23fc8329bf72b8a04071c0d29ab5dd2aad9ec8f/smartdoc15_ch1-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "4e36a13a1654f2aafd0223b5ae921516", "sha256": "4865f58f87f22928dbd95a1ca7af4df41fd90addd3515cb04782ca9267cdae4d" }, "downloads": -1, "filename": "smartdoc15_ch1-0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4e36a13a1654f2aafd0223b5ae921516", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19282, "upload_time": "2018-03-08T10:26:41", "url": "https://files.pythonhosted.org/packages/45/bf/4d2ec4a2dcdf320230ccdc153792d9c017d1250c4ef07cf52ded075ef832/smartdoc15_ch1-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "667c90525d8d80713908ef361b64fd9b", "sha256": "3c0304d66eb4f62cdfa24afe679931f26f67d030593662bd8d07c55d9f159595" }, "downloads": -1, "filename": "smartdoc15_ch1-0.5.tar.gz", "has_sig": false, "md5_digest": "667c90525d8d80713908ef361b64fd9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19707, "upload_time": "2018-03-08T10:26:43", "url": "https://files.pythonhosted.org/packages/9f/22/1b42387343069cec45e95f5d6ea2b63e9efde73841a201e57446b87833a7/smartdoc15_ch1-0.5.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "2b07eec9a0e268ec577b752fd844250e", "sha256": "e3791b01cad0b9bd99f85f998098845d30c28eda15eaaaeae2a602958b7de769" }, "downloads": -1, "filename": "smartdoc15_ch1-0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2b07eec9a0e268ec577b752fd844250e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29919, "upload_time": "2018-06-11T13:59:26", "url": "https://files.pythonhosted.org/packages/61/92/325288a66b95d04e57bf0ce3f60977f2d72df88acf5f006688845c3fb2a5/smartdoc15_ch1-0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f6ad8a26d836bb54b84e34493370b52", "sha256": "7e9d2200a01fa1f4cbc189a063553f28c06ace3a8b1bbb895e03def318cfe296" }, "downloads": -1, "filename": "smartdoc15_ch1-0.7.tar.gz", "has_sig": false, "md5_digest": "6f6ad8a26d836bb54b84e34493370b52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27633, "upload_time": "2018-06-11T13:59:29", "url": "https://files.pythonhosted.org/packages/20/67/e42a94cac90d26f5990c82326fb3bf9e25c32a0cae3536ed479f2959de5c/smartdoc15_ch1-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "d467f16fb445d6466d1814265875569c", "sha256": "9d6bc2cbaf870aacc6558986b5b7b12e5d72353efd069ace8b50cbc8b1448e45" }, "downloads": -1, "filename": "smartdoc15_ch1-0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d467f16fb445d6466d1814265875569c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29921, "upload_time": "2018-06-11T20:39:29", "url": "https://files.pythonhosted.org/packages/a6/e2/a1585a9ec2af0bfd650f249e3fffd146ae6dd394ed0f2df093373a5ad0b8/smartdoc15_ch1-0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59fb7eccb6aaafe7b4f741bb36ad4926", "sha256": "b0c22381aacc05517fda26bf37472b95eb18cb15a573cd3b94b59506502f79a2" }, "downloads": -1, "filename": "smartdoc15_ch1-0.8.tar.gz", "has_sig": false, "md5_digest": "59fb7eccb6aaafe7b4f741bb36ad4926", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27639, "upload_time": "2018-06-11T20:39:31", "url": "https://files.pythonhosted.org/packages/e7/a6/ec6ffb269bbb08755e9ed4d96da690bf8d8c37bafef74f43f1ecffacccc8/smartdoc15_ch1-0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d467f16fb445d6466d1814265875569c", "sha256": "9d6bc2cbaf870aacc6558986b5b7b12e5d72353efd069ace8b50cbc8b1448e45" }, "downloads": -1, "filename": "smartdoc15_ch1-0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d467f16fb445d6466d1814265875569c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29921, "upload_time": "2018-06-11T20:39:29", "url": "https://files.pythonhosted.org/packages/a6/e2/a1585a9ec2af0bfd650f249e3fffd146ae6dd394ed0f2df093373a5ad0b8/smartdoc15_ch1-0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59fb7eccb6aaafe7b4f741bb36ad4926", "sha256": "b0c22381aacc05517fda26bf37472b95eb18cb15a573cd3b94b59506502f79a2" }, "downloads": -1, "filename": "smartdoc15_ch1-0.8.tar.gz", "has_sig": false, "md5_digest": "59fb7eccb6aaafe7b4f741bb36ad4926", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27639, "upload_time": "2018-06-11T20:39:31", "url": "https://files.pythonhosted.org/packages/e7/a6/ec6ffb269bbb08755e9ed4d96da690bf8d8c37bafef74f43f1ecffacccc8/smartdoc15_ch1-0.8.tar.gz" } ] }