Doc3D is the first 3D dataset focused on document unwarping with realistic paper warping and renderings.
This repository contains all the rendering codes of doc3D. The download scripts of the dataset is available in [doc3D-dataset](https://github.com/cvlab-stonybrook/doc3D-dataset) repo.-
Step 1: We need a few assets to start the rendering.
- a) Meshes
- b) HDR environment maps for lighting
- c) Textures
For your convenience, we already provide some sample meshes (
/obj), HDR maps (/env) and textures (/tex). Each line is a path to a mesh, HDR map and a texture.
-
Step 2: List the assets in
objs.csv,envs.csv, andtexs.csv.laval_env.csvis the example file for Laval HDR environment maps, note that the intensity multiplier is set to 100 to avoid dark images. -
Step 3a : Run the rendering code (for images, UVs, 3D coordinates):
blender --background --python render_mesh.py -- <folder-id> <start-mesh> <end-mesh>This command renders the images (/img), 3D coordinates (/wc) and UV (/uv) in folder<folder-id>.<start-mesh>and<end-mesh>refers to line numbers inobjs.csvspecifying the meshes to be used while rendering. Additionally,render_mesh.pyalso saves the Blender model (.blend) files for further rendering process (albedo,normetc.). Toggle it using thesave_blend_file=Falseflag in the code.- For faster rendering you can use the multiprocessing code
batch_render.py. Runpython batch_render.py <folder-id> <start-mesh> <end-mesh>. Remember to modify the processor counts usingnproc.
-
Step 3b : Run the rendering code (for checkerboards, albedos, depth etc.):
- Run
blendnames.pyto list the available.blendfiles,python blendnames.py <folder-id>. Remember to do this step! - Albedos (
/alb):blender --background --python render_alb.py -- <folder-id> <start-mesh> <end-mesh> - Normals (
/norm):blender --background --python render_norm.py -- <folder-id> <start-mesh> <end-mesh> - Depths (
/dmap):blender --background --python render_dmap.py -- <folder-id> <start-mesh> <end-mesh> - Checkerboard (
/recon):blender --background --python render_recon.py -- <folder-id> <start-mesh> <end-mesh>
- Run
-
Step 4: If you want to create the backward mappings from UV:
/uv2backwardmapcontains the necessary scripts. We use MatLab to do this.python exr2mat.py <folder-id>, converts the.exrfiles to.matfiles.- Edit the
src_diranddst_diraccordingly and runfm2bm.m.
If you use the dataset or this code, please consider citing our work-
@inproceedings{SagnikKeICCV2019,
Author = {Sagnik Das*, Ke Ma*, Zhixin Shu, Dimitris Samaras, Roy Shilkrot},
Booktitle = {Proceedings of International Conference on Computer Vision},
Title = {DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regression Networks},
Year = {2019}}
Thanks to the awesome software, Blender, thanks to it's developers and also to the super awesome community.
