diff --git a/scripts/run_experiments.jl b/scripts/run_experiments.jl index ea30e48179f8e8bf0d0396ffb5f43d1ce60abda5..08fac743f482c4a8bab0bc7e5236354df5e333c9 100644 --- a/scripts/run_experiments.jl +++ b/scripts/run_experiments.jl @@ -1441,7 +1441,7 @@ function inpaint(ctx) k_refine > N_refine && break println("refine ...") #estimate_res!(st) - marked_cells = Set(mark(st; theta = 0.5)) + marked_cells = Set(mark(st; theta = 0.99)) ## EXPERIMENTAL: mark according to projection error #g_err = compute_local_error(st.g, g_arr) @@ -1490,13 +1490,12 @@ function experiment_inpaint_adaptive(ctx) g_arr = loadimg(joinpath(ctx.indir, "input.png")) mask_arr = loadimg(joinpath(ctx.indir, "mask.png")) mesh = init_grid(g_arr;) - for coarsen in 0:15 + for coarsen in 7 params = ( name = "test", n_refine = coarsen, - #estimator = :primal_dual, + estimator = :residual, g_arr, mask_arr, mesh, - #alpha1 = 0.2, alpha2 = 8., lambda = 1., alpha1 = 0., alpha2 = 50., lambda = 1., beta = 1e-5, S = Operators.SIdentity(), gamma1 = 1e-4, gamma2 = 1e-4, @@ -1509,7 +1508,8 @@ function experiment_inpaint_adaptive(ctx) params.beta, params.S, width=size(g_arr, 1), height=size(g_arr, 2)) - ctx(inpaint, "s-identity_alpha1_$(round(Int, params.alpha1))_alpha2_$(round(Int, params.alpha2))_coarse_$(params.n_refine)"; params...) + #ctx(inpaint, "s-identity_alpha1_$(round(Int, params.alpha1))_alpha2_$(round(Int, params.alpha2))_coarse_$(params.n_refine)"; params...) + ctx(inpaint, "s-identity_alpha1_$(round(Int, params.alpha1))_alpha2_$(round(Int, params.alpha2))_coarse_$(params.n_refine)_pd"; params..., estimator= :primal_dual) end end @@ -1555,6 +1555,7 @@ function experiment_inpaint_denoise(ctx) end function optflow(ctx) + duration = @elapsed begin size(ctx.params.imgf0) == size(ctx.params.imgf1) || throw(ArgumentError("non-matching image sizes")) @@ -1562,6 +1563,7 @@ function optflow(ctx) project_image!(f, img) = ctx.params.n_refine == 0 ? interpolate!(f, x -> evaluate_bilinear(img, x)) : # fine mesh + #project_l2_pixel!(f, img) # My change (AL) 2023 10 05 project_l2_lagrange!(f, img) # coarse adaptive mesh @@ -1690,7 +1692,7 @@ function optflow(ctx) end end #CSV.write(joinpath(ctx.outdir, "energies.csv"), df) - + end#end @elapsed u_sampled = sample(st.u) saveimg(joinpath(ctx.outdir, "f0.png"), to_img(imgf0)) saveimg(joinpath(ctx.outdir, "f1.png"), to_img(imgf1)) @@ -1712,7 +1714,7 @@ function optflow(ctx) st.alpha1, st.alpha2, st.lambda, st.beta, st.gamma1, st.gamma2, ctx.params.Schoice, width=size(u_sampled, 2), height=size(u_sampled, 3), endpoint_error_mean, endpoint_error_stddev, - angular_error_mean, angular_error_stddev, + angular_error_mean, angular_error_stddev, duration ) return st end @@ -1734,6 +1736,7 @@ function experiment_optflow_middlebury_all_benchmarks(ctx) ctx(experiment_optflow_middlebury, example; alpha1 = 10., alpha2 = 0., lambda = 1., beta = 1e-5, gamma1 = 1e-4, gamma2 = 1e-4, Schoice = :nabla, newton_max_iters = 30) + break end end @@ -1745,14 +1748,14 @@ function experiment_optflow_middlebury_warping_comparison(ctx) end function experiment_optflow_middlebury_warping_comparison_adaptive(ctx) - ctx(experiment_optflow_middlebury_all_benchmarks, "vanilla"; - warp = false, refine = false, n_refine = 0) - ctx(experiment_optflow_middlebury_all_benchmarks, "warping"; - warp = true, refine = false, n_refine = 0) + #ctx(experiment_optflow_middlebury_all_benchmarks, "vanilla"; + # warp = false, refine = false, n_refine = 0) + #ctx(experiment_optflow_middlebury_all_benchmarks, "warping"; + # warp = true, refine = false, n_refine = 0) ctx(experiment_optflow_middlebury_all_benchmarks, "adaptive-warping"; warp = true, refine = true, n_refine = 6) - #ctx(experiment_optflow_middlebury_all_benchmarks, "adaptive-warping"; - # warp = true, refine = true, n_refine = 6, estimator = :residual) + ctx(experiment_optflow_middlebury_all_benchmarks, "adaptive-warping-pd"; + warp = true, refine = true, n_refine = 6, estimator = :primal_dual) end function experiment_optflow_schoice(ctx)