These files are for our monocular 3D Tracking pipeline:
main.py
Execute 3D photo inpainting
mesh.py
Functions about context-aware depth inpainting
mesh_tools.py
Some common functions used in mesh.py
utils.py
Some common functions used in image preprocessing, data loading
networks.py
Network architectures of inpainting model
MiDaS/
run.py
Execute depth estimation
monodepth_net.py
Network architecture of depth estimation model
MiDaS_utils.py
Some common functions in depth estimation
argument.yml
depth_edge_model_ckpt: checkpoints/EdgeModel.pth
- Pretrained model of depth-edge inpainting
depth_feat_model_ckpt: checkpoints/DepthModel.pth
- Pretrained model of depth inpainting
rgb_feat_model_ckpt: checkpoints/ColorModel.pth
- Pretrained model of color inpainting
MiDaS_model_ckpt: MiDaS/model.pt
- Pretrained model of depth estimation
use_boostmonodepth: True
- Use BoostMonocularDepth to get sharper monocular depth estimation
fps: 40
- Frame per second of output rendered video
num_frames: 240
- Total number of frames in output rendered video
x_shift_range: [-0.03, -0.03, -0.03]
- The translations on x-axis of output rendered videos.
- This parameter is a list. Each element corresponds to a specific camera motion.
y_shift_range: [-0.00, -0.00, -0.03]
- The translations on y-axis of output rendered videos.
- This parameter is a list. Each element corresponds to a specific camera motion.
z_shift_range: [-0.07, -0.07, -0.07]
- The translations on z-axis of output rendered videos.
- This parameter is a list. Each element corresponds to a specific camera motion.
traj_types: ['straight-line', 'circle', 'circle']
- The type of camera trajectory.
- This parameter is a list.
- Currently, we only privode
straight-line
andcircle
.
video_postfix: ['zoom-in', 'swing', 'circle']
- The postfix of video.
- This parameter is a list.
- Note that the number of elements in
x_shift_range
,y_shift_range
,z_shift_range
,traj_types
andvideo_postfix
should be equal. specific: ''
- The specific image name, use this to specify the image to be executed. By default, all the image in the folder will be executed.
longer_side_len: 960
- The length of larger dimension in output resolution.
src_folder: image
- Input image directory.
depth_folder: depth
- Estimated depth directory.
mesh_folder: mesh
- Output 3-D mesh directory.
video_folder: video
- Output rendered video directory
load_ply: False
- Action to load existed mesh (.ply) file
save_ply: True
- Action to store the output mesh (.ply) file
- Disable this option
save_ply: False
to reduce the computational time.
inference_video: True
- Action to rendered the output video
gpu_ids: 0
- The ID of working GPU. Leave it blank or negative to use CPU.
offscreen_rendering: True
- If you're executing the process in a remote server (via ssh), please switch on this flag.
- Sometimes, using off-screen rendering result in longer execution time.
img_format: '.jpg'
- Input image format.
depth_format: '.npy'
- Input depth (disparity) format. Use NumPy array file as default.
- If the user wants to edit the depth (disparity) map manually, we provide
.png
format depth (disparity) map.- Remember to switch this parameter from
.npy
to.png
when using depth (disparity) map with.png
format.
- Remember to switch this parameter from
require_midas: True
- Set it to
True
if the user wants to use depth map estimated byMiDaS
. - Set it to
False
if the user wants to use manually edited depth map. - If the user wants to edit the depth (disparity) map manually, we provide
.png
format depth (disparity) map.- Remember to switch this parameter from
True
toFalse
when using manually edited depth map.
- Remember to switch this parameter from
- Set it to
depth_threshold: 0.04
- A threshold in disparity, adjacent two pixels are discontinuity pixels if the difference between them excceed this number.
ext_edge_threshold: 0.002
- The threshold to define inpainted depth edge. A pixel in inpainted edge map belongs to extended depth edge if the value of that pixel exceeds this number,
sparse_iter: 5
- Total iteration numbers of bilateral median filter
filter_size: [7, 7, 5, 5, 5]
- Window size of bilateral median filter in each iteration.
sigma_s: 4.0
- Intensity term of bilateral median filter
sigma_r: 0.5
- Spatial term of bilateral median filter
redundant_number: 12
- The number defines short segments. If a depth edge is shorter than this number, it is a short segment and removed.
background_thickness: 70
- The thickness of synthesis area.
context_thickness: 140
- The thickness of context area.
background_thickness_2: 70
- The thickness of synthesis area when inpaint second time.
context_thickness_2: 70
- The thickness of context area when inpaint second time.
discount_factor: 1.00
log_depth: True
- The scale of depth inpainting. If true, performing inpainting in log scale. Otherwise, performing in linear scale.
largest_size: 512
- The largest size of inpainted image patch.
depth_edge_dilate: 10
- The thickness of dilated synthesis area.
depth_edge_dilate_2: 5
- The thickness of dilated synthesis area when inpaint second time.
extrapolate_border: True
- Action to extrapolate out-side the border.
extrapolation_thickness: 60
- The thickness of extrapolated area.
repeat_inpaint_edge: True
- Action to apply depth edge inpainting model repeatedly. Sometimes inpainting depth edge once results in short inpinated edge, apply depth edge inpainting repeatedly could help you prolong the inpainted depth edge.
crop_border: [0.03, 0.03, 0.05, 0.03]
- The fraction of pixels to crop out around the borders
[top, left, bottom, right]
.
- The fraction of pixels to crop out around the borders
anti_flickering: True
- Action to avoid flickering effect in the output video.
- This may result in longer computational time in rendering phase.