SmartDoc2015-Challenge1数据集的“可计算”版本的Python包装器。
smartdoc15-ch1的Python项目详细描述
The source for this project is available here。
The SmartDoc 2015 Challenge 1 dataset最初是为SmartDoc2015比赛创建的,该比赛的重点是评估使用智能手机获取文档图像的方法。挑战1尤其包括从智能手机的预览流中提取的视频帧中检测和分割文档区域。
这个数据集以一种新的格式打包,并创建了一个python包装器(当前的包)以便于使用。
示例用法
这个python包有3个任务可以帮助您测试方法,但首先您必须正确安装这个包:
pip install smartdoc_ch1
一个好的做法是在虚拟环境中安装这样的软件包。 我们建议使用Virtualenv Wrapper来使用虚拟环境。
任务1:分割
- 分段:这是原始任务。
输入是视频帧,预期输出是由每个帧中文档图像的四个角(左上角、左下角、右下角和右上角)的协调组成。 通过计算预期文档区域和找到的区域的并集上的交集(“iou”或“jaccard索引”)来执行评估。棘手的是,坐标被投影到文档引用,以便在不同的框架和不同的文档模型之间进行比较。 原始的评估代码可以在https://github.com/jchazalon/smartdoc15-ch1-eval找到,python包装器还包含一个使用新数据格式的实现。
- 读取数据集
- [选择。阅读模型]
- [选择。列车/测试分离+列车]
- 测试
- 评估
任务2:模型分类
- 模型分类:这是一个新任务。
输入是视频帧,预期输出是在每个帧中表示的文档模型的标识符。 有30个模型名为“datasheet001”、“datasheet002”、“tax005”。 评估作为任何多类分类任务执行。
- 读取数据集
- [选择。阅读模型]
- [选择。列车/测试分离+列车]
- 测试
- 评估
任务3:模型类型分类
- 模型类型分类:这是一个新任务。
输入是视频帧,预期输出是表示在每个帧中的文档模型type的标识符。 共有6种型号,每个型号有5个成员,分别命名为“数据表”、“信函”、“杂志”、“纸张”、“专利”和“税”。 评估作为任何多类分类任务执行。
- 读取数据集
- [选择。阅读模型]
- [选择。列车/测试分离+列车]
- 测试
- 评估
可选:使用模型图像
手动下载选项
如果你在代理后面,有一个缓慢的连接或任何其他原因,你可能需要手动下载数据集,而不是让Python包装器为你做。 这很简单:
- 将frames.tar.gz和models.tar.gz文件从https://github.com/jchazalon/smartdoc15-ch1-dataset/releases下载到某个本地目录;
- 选择要存储文件的位置并手动创建文件层次结构(此处smartdoc_ch1_home中间目录很重要):
mkdir -p PATH_TO_STORAGE_DIR/smartdoc_ch1_home/frames
mkdir -p PATH_TO_STORAGE_DIR/smartdoc_ch1_home/models
- 将存档文件提取到其目标目录:
tar -xzf PATH_TO_FRAMES.TAR.GZ -C PATH_TO_STORAGE_DIR/smartdoc_ch1_home/frames
tar -xzf PATH_TO_MODELS.TAR.GZ -C PATH_TO_STORAGE_DIR/smartdoc_ch1_home/models
然后,确保在调用load_sd15ch1_frames和load_sd15ch1_models函数时指定data_home=PATH_TO_STORAGE_DIR和download_if_missing=False。函数get_sd15ch1_basedir_frames和 get_sd15ch1_basedir_models还要求指定data_home=PATH_TO_STORAGE_DIR。
默认情况下,本地数据集存储的路径符合scikit learn标准位置:PATH_TO_STORAGE_DIR=~/scikit_learn_data
API
待办事项文档
MODEL_VARIANT_01_ORIGINAL="01-original"MODEL_VARIANT_02_EDITED="02-edited"MODEL_VARIANT_03_CAPTURED="03-captured-nexus"MODEL_VARIANT_04_CORRECTED="04-corrected-nexus"MODEL_VARIANT_05_SCALED33="05-corrected-nexus-scaled33"load_sd15ch1_frames(data_home=None,sample=1.0,shuffle=False,random_state=0,download_if_missing=True,load_images=False,resize=None,color=False,with_model_classif_targets=True,with_modeltype_classif_targets=True,with_segmentation_targets=True,with_model_shapes=True,return_X_y=False,)load_sd15ch1_models(data_home=None,download_if_missing=True,load_images=False,variant=MODEL_VARIANT_05_SCALED33,color=False,with_model_ids=True,with_modeltype_ids=True,return_X_y=False,)read_sd15ch1_image(root_dir,image_relative_path,resize=None,color=False)read_sd15ch1_images(root_dir,image_relative_path_seq,resize=None,color=False)get_sd15ch1_basedir_frames(data_home=None)get_sd15ch1_basedir_models(data_home=None)eval_sd15ch1_segmentations(segmentations,target_segmentations,model_shapes,frame_resize_factor=1.0,print_summary=False)eval_sd15ch1_classifications(labels,target_labels)