Bläddra i källkod

Optionalize downsampling filters

nagadomi 9 år sedan
förälder
incheckning
d4833160c7
3 ändrade filer med 8 tillägg och 18 borttagningar
  1. 1 17
      lib/pairwise_transform.lua
  2. 6 1
      lib/settings.lua
  3. 1 0
      train.lua

+ 1 - 17
lib/pairwise_transform.lua

@@ -82,23 +82,7 @@ local function active_cropping(x, y, size, p, tries)
    end
 end
 function pairwise_transform.scale(src, scale, size, offset, n, options)
-   local filters;
-
-   if options.style == "photo" then
-      filters = {
-	 "Box", "lanczos", "Catrom"
-      }
-   else
-      filters = {
-	 "Box","Box",  -- 0.012756949974688
-	 "Blackman",   -- 0.013191924552285
-	 --"Catrom",     -- 0.013753536746706
-	 --"Hanning",    -- 0.013761314529647
-	 --"Hermite",    -- 0.013850225205266
-	 "Sinc",   -- 0.014095824314306
-	 "Lanczos",       -- 0.014244299255442
-      }
-   end
+   local filters = options.downsampling_filters
    local unstable_region_offset = 8
    local downscale_filter = filters[torch.random(1, #filters)]
    local y = preprocess(src, size, options)

+ 6 - 1
lib/settings.lua

@@ -48,6 +48,7 @@ cmd:option("-active_cropping_tries", 10, 'active cropping tries')
 cmd:option("-nr_rate", 0.75, 'trade-off between reducing noise and erasing details (0.0-1.0)')
 cmd:option("-save_history", 0, 'save all model (0|1)')
 cmd:option("-plot", 0, 'plot loss chart(0|1)')
+cmd:option("-downsampling_filters", "Box,Lanczos,Catrom", '(comma separated)downsampling filters for 2x scale training. (Point,Box,Triangle,Hermite,Hanning,Hamming,Blackman,Gaussian,Quadratic,Cubic,Catrom,Mitchell,Lanczos,Bessel,Sinc)')
 
 local opt = cmd:parse(arg)
 for k, v in pairs(opt) do
@@ -95,10 +96,14 @@ if not (settings.style == "art" or
 	settings.style == "photo") then
    error(string.format("unknown style: %s", settings.style))
 end
-
 if settings.thread > 0 then
    torch.setnumthreads(tonumber(settings.thread))
 end
+if settings.downsampling_filters and settings.downsampling_filters:len() > 0 then
+   settings.downsampling_filters = settings.downsampling_filters:split(",")
+else
+   settings.downsampling_filters = {"Box", "Lanczos", "Catrom"}
+end
 
 settings.images = string.format("%s/images.t7", settings.data_dir)
 settings.image_list = string.format("%s/image_list.txt", settings.data_dir)

+ 1 - 0
train.lua

@@ -112,6 +112,7 @@ local function transformer(x, is_validation, n, offset)
 				      settings.crop_size, offset,
 				      n,
 				      {
+					 downsampling_filters = settings.downsampling_filters,
 					 random_half_rate = settings.random_half_rate,
 					 random_color_noise_rate = random_color_noise_rate,
 					 random_overlay_rate = random_overlay_rate,