台风吧 关注:288,717贴子:6,645,076

回复:【资料存档】Pix2Pix深度学习模型生成夜间可见光图像(AI-VIS)

取消只看楼主收藏回复


150epoch后 SSIM 0.758 RMSE 0.051
感觉SSIM吃了残存噪点的亏


IP属地:美国56楼2023-09-29 00:55
回复
    450h后最终SSIM停在了0.774,不过D_loss明显上升了,说明在鉴别器眼中生成的图像确实更能以假乱真了
    稍微放俩样图
    可以看到高频细节确实有不少改善,但是说实话,有部分高频细节和VIS对比起来实际上是不存在的,只是像VIS而已,对于干净的风眼表现也不够好(图9,10的玛娃)











    IP属地:美国57楼2023-09-29 14:12
    收起回复

      补一张训练曲线


      IP属地:美国59楼2023-09-30 01:37
      回复
        之前在24楼规划的三种输入方式(band13,band13+band13-15差分,band13+band13-15差分+band13错位差分)已经测试完毕。目前的结果是band13+band13-15差分的双波段模型取得了最好的SSIM和RMSE表现(0.817,0.045),而band13+band13-15差分+band13错位差分的三波段模型取得了最好的“以假乱真”的效果(D_loss约≈0.1,即判别器有10%左右概率把AI生成的当成真的)。


        IP属地:美国60楼2023-09-30 01:46
        回复
          目前的模型效果楼主还并非完全满意,接来会尝试通过不同方法改进。之前本来想着再加个Band11的,以为识别低云的效果会很好...后来发现实际上没啥用,识别低云的效果还不如Band15
          band13-11差分

          band13-15差分

          暂时下一步计划是修改错位差分的有效范围,将其限制于TC的低温云顶,取消卷云/高温区区域的错位差分,这样应该能够明显减少干扰,避免生成过多错误的高频细节。


          IP属地:美国61楼2023-09-30 11:11
          回复
            上面说的这种对于错位差分的预处理其实很像合成伪VIS时对低温区的处理
            现在感觉深度输入端的预处理还是很重要的,虽然理论上一个波段输进去模型能提取全部信息,但实际上通过随机梯度的方式AI很难准确捕捉其中的一些物理性结论(比如说低温且冰晶密集的时候容易出现云顶光影),最好要预处理为AI容易找到输入和vis之间的对应的形式。我这里就相当于输了个已经比较像VIS的伪VIS云顶进去,希望能有进一步改善吧。


            IP属地:美国62楼2023-09-30 11:22
            回复

              图为15苏迪罗置换期,是修改有效范围后的错位差分


              IP属地:美国63楼2023-09-30 12:59
              回复
                修改错位差分范围后前30个epoch验证集表现达到0.7052,应该是目前为止训练前期表现最好的了
                训练曲线长这样


                IP属地:美国65楼2023-10-01 00:26
                回复
                  跑完以后训练曲线长这样...与其说是改进不如说是加错位差分和不加的折中...还得想别的方法在保证SSIM的情况下尽可能好地模拟云顶细节
                  SSIM0.796
                  RMSE0.0483



                  IP属地:美国66楼2023-10-01 11:45
                  回复
                    今天大概搞明白为什么pix2pix的云顶细节生成的不太好了。生成器的loss函数由两部分组成,一部分相当于以假乱真,骗过鉴别器的能力,越能骗数字越小,另一部分相当于生成图像与vis每个像素的偏差。生成器的目标是让loss函数尽可能小。在6.x的loss值中,前者只占0.x,后者占了接近6。也就是说,生成图像与vis每个像素的偏差主导了训练,而“骗过鉴别器”的这一学习目标是受抑制的。(这一点从鉴别器的loss也能看出)
                    目前打算把生成器的L1_loss换成SSIM_loss,看看能不能减少对于云顶细节模拟的抑制。对自己的代码水平不是很自信所以留了俩备份以防写崩了


                    IP属地:美国67楼2023-10-01 12:25
                    收起回复
                      总算把SSIM loss搞定了
                      稍微讲一下原理
                      原本的生成器的loss由两部分组成

                      ls_G1相当于判别器的表现,判别器越分不清楚真假越低
                      ls_G2是l1_loss相当于和原图的相似程度,用的是真假两图每个像素的差值的绝对值再取平均
                      整个ls_G肯定是越小越好。
                      在训练末尾基本上ls_G1占零点几,ls_G2*100占6左右,也就是说原来每个像素平均和真图有0.06左右的差值(整张图是-1~1的范围)
                      加上SSIM loss以后,式子变成这样:

                      加上去的ls_G3是SSMI_loss,直接计算的值和出图之后再算的不太一样,只有0.6~0.7,不过同样是数字越大图像生成效果越高。由于loss是越小越好,所以取个倒数再乘个系数。
                      目前先就这样,后两种loss的比例差不多一半一半,我放它跑几十个epoch看看,等会再从头炼几个模型。
                      这个想法部分来自于P. Harder那篇总结Hackathon的论文


                      IP属地:美国68楼2023-10-04 00:18
                      收起回复
                        最近把整个loss都换成SSIM了,发现不需要错位差分对于高频细节的还原就已经挺到位了下面是几张验证集图像







                        IP属地:美国70楼2023-10-08 02:35
                        回复

                          下一步计划是把第三个波段换成太阳方位角,同时包含上下午的云图,看看能不能AI能不能理解云顶光影和太阳方位角的关系


                          IP属地:美国72楼2023-10-08 10:59
                          收起回复
                            同时包含上下午的数据之后验证集表现又上了一个台阶


                            SSIM大概能有0.83吧,破纪录了


                            IP属地:美国74楼2023-10-10 03:26
                            收起回复

                              扩充训练集之后SSIM创新高了,大概能折合0.83吧


                              IP属地:美国76楼2023-10-10 03:34
                              收起回复