105 dual_flow = true, |
102 dual_flow = true, |
106 prox_predict = true, |
103 prox_predict = true, |
107 handle_interrupt = true, |
104 handle_interrupt = true, |
108 init = :zero, |
105 init = :zero, |
109 plot_movement = false, |
106 plot_movement = false, |
|
107 stable_interval = Set(0), |
110 ) |
108 ) |
111 |
109 |
112 const p_known₀_pet = ( |
110 const p_known₀_pet = ( |
113 noise_level = 0.5, |
111 noise_level = 0.5, |
114 shake_noise_level = 0.1, |
112 shake_noise_level = 0.1, |
115 shake = 1.0, |
113 shake = 1.0, |
116 rotation_factor = 0.075, |
114 rotation_factor = 0.075, |
117 rotation_noise_level = 0.0075, |
115 rotation_noise_level = 0.0075, |
118 α = 1.0, |
116 α = 0.15, |
119 ρ̃₀ = 1.0, |
117 ρ̃₀ = 1.0, |
120 σ̃₀ = 1.0, |
118 σ̃₀ = 1.0, |
121 δ = 0.9, |
119 δ = 0.9, |
122 σ₀ = 0.5, |
120 σ₀ = 1.0, |
123 τ₀ = 0.9, |
121 τ₀ = 0.9, |
124 λ = 1, |
122 λ = 1, |
125 radondims = [128,64], |
123 radondims = [128,64], |
126 sz = (256,256), |
124 sz = (256,256), |
127 scale = 1, |
125 scale = 1, |
128 c = 1.0, |
126 c = 1.0, |
129 sino_sparsity = 0.5, # Percentage of zero parts in the mask |
127 sino_sparsity = 0.5, |
130 L = 300.0, |
128 L = 300.0, |
131 L_experiment = false, |
129 L_experiment = false, |
132 stable_interval = Set(0), |
130 #stable_interval = Set(0), |
133 # stable_interval = union(Set(1:1000),Set(2500:3000)), |
131 stable_interval = union(Set(1000:2000),Set(3500:4000)), |
134 # stable_interval = union(Set(1000:2000),Set(3000:4000)), |
|
135 ) |
132 ) |
136 |
133 |
137 const shepplogan = imgen_shepplogan_radon(p_known₀_pet.sz) |
134 const shepplogan = imgen_shepplogan_radon(p_known₀_pet.sz) |
138 |
135 |
139 const brainphantom = imgen_brainphantom_radon(p_known₀_pet.sz) |
136 const brainphantom = imgen_brainphantom_radon(p_known₀_pet.sz) |
219 end |
216 end |
220 |
217 |
221 function name(e::Experiment, p) |
218 function name(e::Experiment, p) |
222 ig = e.imgen |
219 ig = e.imgen |
223 # return "$(ig.name)_$(e.mod.identifier)_$(@sprintf "%x" hash(p))" |
220 # return "$(ig.name)_$(e.mod.identifier)_$(@sprintf "%x" hash(p))" |
224 return "$(ig.name)_$(e.mod.identifier)_$(Int64(10000*p.σ₀))_$(Int64(10000*p.τ₀))" |
221 return "$(ig.name)_$(e.mod.identifier)_$(Int64(100*p.α))_$(Int64(10000*p.σ₀))_$(Int64(10000*p.τ₀))" |
225 end |
222 end |
226 |
223 |
227 function write_tex(texfile, e_params) |
224 function write_tex(texfile, e_params) |
228 open(texfile, "w") do io |
225 open(texfile, "w") do io |
229 wp = (n, v) -> println(io, "\\def\\EXPPARAM$(n){$(v)}") |
226 wp = (n, v) -> println(io, "\\def\\EXPPARAM$(n){$(v)}") |
306 hififile = e_params.save_prefix * "_hifi.txt" |
303 hififile = e_params.save_prefix * "_hifi.txt" |
307 texfile = e_params.save_prefix * "_params.tex" |
304 texfile = e_params.save_prefix * "_params.tex" |
308 # datafile = e_params.save_prefix * ".jld2" |
305 # datafile = e_params.save_prefix * ".jld2" |
309 |
306 |
310 write_log(perffile, st.log, "# params = $(e_params)\n") |
307 write_log(perffile, st.log, "# params = $(e_params)\n") |
311 write_log(hififile, st.log_hifi, "# params = $(e_params)\n") |
308 #write_log(hififile, st.log_hifi, "# params = $(e_params)\n") |
312 write_tex(texfile, e_params) |
309 #write_tex(texfile, e_params) |
313 # @save datafile x y st params |
310 # @save datafile x y st params |
314 end |
311 end |
315 |
312 |
316 close(datachannel) |
313 close(datachannel) |
317 wait(gentask) |
314 wait(gentask) |
366 demo_petB5 = () -> demo(brainphantom_experiments_pdps_known[5]) # Proximal (old) |
363 demo_petB5 = () -> demo(brainphantom_experiments_pdps_known[5]) # Proximal (old) |
367 demo_petB6 = () -> demo(brainphantom_experiments_pdps_known[6]) # Rotation |
364 demo_petB6 = () -> demo(brainphantom_experiments_pdps_known[6]) # Rotation |
368 demo_petB7 = () -> demo(brainphantom_experiments_pdps_known[7]) # Zero dual |
365 demo_petB7 = () -> demo(brainphantom_experiments_pdps_known[7]) # Zero dual |
369 |
366 |
370 |
367 |
371 function batchrun_shepplogan(kwargs...) |
368 function batchrun_shepplogan(;kwargs...) |
372 run_experiments(;experiments=shepplogan_experiments_all, |
369 run_experiments(;experiments=shepplogan_experiments_all, |
373 save_results=true, |
370 save_results=true, |
374 save_images=true, |
371 save_images=true, |
375 visualise=false, |
372 visualise=false, |
376 recalculate=false, |
373 recalculate=false, |
377 kwargs...) |
374 kwargs...) |
378 end |
375 end |
379 |
376 |
380 function batchrun_brainphantom(kwargs...) |
377 function batchrun_brainphantom(;kwargs...) |
381 run_experiments(;experiments=brainphantom_experiments_all, |
378 run_experiments(;experiments=brainphantom_experiments_all, |
382 save_results=true, |
379 save_results=true, |
383 save_images=true, |
380 save_images=true, |
384 visualise=false, |
381 visualise=false, |
385 recalculate=false, |
382 recalculate=false, |
386 kwargs...) |
383 kwargs...) |
387 end |
384 end |
388 |
385 |
389 function batchrun_pet(kwargs...) |
386 function batchrun_pet(;kwargs...) |
390 batchrun_shepplogan() |
387 batchrun_shepplogan(;kwargs...) |
391 batchrun_brainphantom() |
388 batchrun_brainphantom(;kwargs...) |
392 end |
389 end |
393 |
390 |
394 ###################################################### |
391 ###################################################### |
395 # Iterator that does visualisation and log collection |
392 # Iterator that does visualisation and log collection |
396 ###################################################### |
393 ###################################################### |