fqnchina / CEILNet

Implementation of ICCV 2017 paper "A Generic Deep Architecture for Single Image Reflection Removal and Image Smoothing"
109 stars 24 forks source link

problem when training ECNN individually #5

Open yutseng318 opened 6 years ago

yutseng318 commented 6 years ago

Hi, I trained the ecnn individually using the provided codes (training_reflection_ecnn.lua) but found that the loss went down from about 10^8 to about 10^6 and just stuck. Tracing the code, I found that the images were rescaled by 255 (line 208,209) before computing the edges and all the elements of the image were divided with 0.02 in computeEdge (line 75). I guessed this was the reason why the initial MSE error looked so large. Is there any reason why rescaling the image to 0~255 and rescaling again before computing the edges? I'm not sure if this cause the network stuck to such high loss. I will be grateful if anyone can give me some tips!

p.s. I trained on VOC2012(cropped to 224x224) just as the paper done

fqnchina commented 6 years ago

Hi,

This loss may be high in absolute intensity, but it's not high compared to the initial value (10^8), right? The point to evaluate if an edge map is trained well or not is to visualize it, and see if you remove the details for image smoothing, or reflections for reflection removal task, in the edge map.

Moreover, the reason that the parameters is decided to 0.02 is because I find if the absolute value is set large enough, the edge map can also be trained better than the one with small absolute values. I think this is also reasonable, since it is more discriminative if the unit value is relatively large.

However, 0.02 is just a empirically determined, which is also different for the image smoothing task. I also found this edge map sent to the I-CNN even influence the tone of this image sometimes. But I didn't figure out why this happens yet.

Hope the above information helps.

Best, Qingnan