台风吧 关注:232,658贴子:6,100,238

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

取消只看楼主收藏回复


首楼和伪VIS贴一样依旧是放一张非常初期的成果


IP属地:上海1楼2023-09-25 02:31回复
    夜间可见光图像的生成这个话题其实有点老生常谈了
    简而言之,除了VIIRS等极轨仪器的月光VIS,夜间由于缺乏阳光是没有台风的VIS图像看的,夜间可见光就是通过夜间其他IR波段的信息把本没有的VIS图像模拟出来。
    楼主从20年开始就对这方面开始感兴趣了,一直以来在尝试用写定的,非深度学习的算法生成夜间可见光图像并不断改进,称之为伪VIS或者PVIS(Pseudo-VIS),感兴趣也可以看看以下两个贴子,Dapiya现在使用的PVIS也是用的同类算法:
    https://tieba.baidu.com/p/6748642409 伪VIS贴
    https://tieba.baidu.com/p/8224526980 伪VIS算法原理与教程,虽然教程篇现在还没更,估计要寒假才行
    大概是2021年下半年的时候,楼主开始对于深度学习生成夜间可见光的方案有所耳闻(以下简称AI-VIS)。最开始看到的AI-VIS是韩国那边KMA开发的,对于积雨云比较容易过曝,但是高温区和陆地区域效果很好,这版AI-VIS可以在这里看:
    http://nmsc.kma.go.kr/homepage/html/satellite/viewer/selectSatViewer.do?dataType=operSat
    当时网上找论文的话大概能找到一两篇,但能看出和上面这个不是同一版。
    今年以来楼主明显感觉到传统的伪VIS改进空间没以前那么大了一直有尝试深度学习方法的想法,暑假里重新搜了一遍论文发现相关论文满打满算能有6篇,虽然不是什么研究重点但也足够参考了,刚好电脑也换新的了,于是这个月开始自学一点深度学习的教程,准备数据,并自己训练一个AI-VIS模型。目前这个小项目还是在很初期的阶段,刚刚训练出勉强能看的图像就来开贴了,请大家多多包涵。本贴虽然说是“资料存档”但暂时不会开放订购云图,会先持续更新各种AI-VIS训练方案的尝试,等模型成熟后可能会开放订购(但我怀疑这种AI风味的云图大家可能会认为观赏价值不高
    本层也充当一个目录楼,收录一下后续更新的内容


    IP属地:上海5楼2023-09-25 03:33
    收起回复
      感谢@◆HCl◆ @小谦.WX @大水台6 @CTCS-5 @Oliver小章鱼 和风羽酱-sdk等风迷对本项目的技术支持和启发
      顺便贴一下6月那会搜到的论文,不知道这三个月还有没有新的,链接就不贴了,直接搜标题吧:
      Nighttime Reflectance Generation in the Visible Bandof Satellites 应该是最早的模型之一,单波段AI-VIS
      Deep Learning-Generated Nighttime Reflectance andDaytime Radiance of the Midwave Infrared Band of aGeostationary Satellite 用来模拟MWIR的模型
      Impact of Satellite Sounding Data on Virtual VisibleImagery Generation Using Conditional GenerativeAdversarial Network 用了IR和WV俩波段增加模型准确度
      Hypothetical Visible Bands of Advanced Meteorological Imager onboard the Geostationary Korea Multi-Purpose Satellite -2A Using Data-To-Data Translation 用了很多波段组合模拟真彩色,和上面kma网站这版比较相似
      Creating synthetic night-time visible-light meteorological satellite images using theGAN method 用FY4A数据训练的,甚至加了ERA5数据进去
      NightVision: Generating Nighttime Satellite Imageryfrom Infra-Red Observations 一场hackathon的结果


      IP属地:上海7楼2023-09-25 04:44
      收起回复
        先介绍一下所使用的Pix2Pix模型:
        Pix2Pix属于CGAN(Conditional Generative Adversarial Networks,条件生成对抗网络)中的一类,而CGAN则是上一代主流图像生成模型GAN的一大分支。关于这些模型的具体内容大家可以上网搜索,很可能会比我在这里尝试写介绍写的更清楚。我没系统性学过AI,遇到相关问题都是一边训练模型一边了解的,这方面的知识储备恐怕只能足够我能训练、运用模型而不足以把原理完全讲清楚。
        Pix2Pix这个模型做的事情主要就是将一类图片转化为另一类图片,比如线稿转为实物图像,黑白转为彩色,白天转为夜景等等。在本贴的运用场景下就是把(各种波段的)IR转化为VIS图像。7楼那边贴的一堆论文中,大部分论文使用的模型也是Pix2Pix模型。第六篇和第七篇用的不是该方法,第六篇的结果认为Unet++在白天的拟真效果更好,但能看出模型在泛化到夜晚时表现不佳,第七篇用了DNN代替Pix2Pix(CGAN),但能看到训练结果中低空积云线的表现和VIS图像还有明显差距。可以说,Pix2Pix是目前做AI-VIS最主流的模型,因此我们也从这个模型开始尝试并寻求模拟效果上的提升。
        问题来了,未来是否可能会有比Pix2Pix更好,更适合AI-VIS模拟的模型呢?是有这个可能的。前面提到过GAN是“上一代主流图像生成模型”,说是上一代是因为GAN正在被Diffusion Model所取代。并且,Diffusion Model也有一些用于Image Translation(一类图片转化为另一类图片)的衍生模型。在发掘完Pix2Pix的潜能后,我们也有可能去尝试用Diffusion Model的衍生模型训练AI-VIS,虽然还没有论文这样做过。(标题和内容不符的事情咱不是第一次干了,伪VIS贴就是挂着Band11-13的标题用Band13-15


        IP属地:上海19楼2023-09-26 01:22
        收起回复
          然后是训练集的数据来源:
          目前使用的训练集是H8/H9的机动观测区白天的Band3(VIS)Band13,Band15(IR),相比几篇论文使用的圆盘图/东亚区训练集的优势是算力和存储空间方面的要求较小(虽然DAT文件还是占了我硬盘200G),且对于台风和热带地区云系更有针对性。劣势是对于台风与热带地区之外的区域模拟效果应会较差,比如内陆区域和寒带区域,另外这种“白天对白天”的训练方法忽略了昼夜温差的效应,具体可以看下面的截图。(文档是六月份那会看了几篇论文有感而发写的)

          这方面我们照样画个饼,等搞完H8机动观测就去试试VIIRS


          IP属地:上海21楼2023-09-26 07:45
          收起回复
            数据分类:
            上周花了三天时间把NICT网站上2015年以来从15灿鸿到23鸳鸯全部的机动观测区Band3/13/15的数据每十分钟一张地下完了,剔除掉任何一个波段缺数据的时间段,一共153003个DAT文件,也就是51001个时刻。
            当然我们不可能把所有时段的数据全丢到单一训练集里面训练,不然VIS图像日出/正午/日落时的内部差异就能比VIS和IR的差异看起来还大,难以训练出有效结果。目前我们按照太阳天顶角以及太阳时角进行分类,天顶角代表太阳高度,时角判断该时段属于当地真太阳时上午还是下午。区分上午和下午的原因是上下午VIS的光影方向是不同的,如果混在一起很可能导致AI模拟出错乱的光影细节,看不出阳光是哪来的。
            *不过控制天顶角的情况下,阳光角度还是可能有细微差别,比如冬季台风太阳天顶角最低可能也有30度,在同样控制天顶角的情况下可能更倾向于从南向北照而不是东西方向的光影。这个问题暂时只能想到一个解决方案,就是通过太阳方位角分类,并适当按照天顶角补光,但我对于天顶角补光算法非常不信任(
            具体的分组规则是天顶角0°~90°中每5°分一组,再加上上下午的区分,一共将数据分为36组。当然并不是所有每组都能塞足够数据,有些冬季台风就算是正午太阳距离天顶还是有30度以上,大部分的数据应该集中在30~75度左右(75度以上的差不多就是日出日落了)天顶角过小的组别到时候可能会去合并处理。


            IP属地:上海23楼2023-09-26 08:59
            收起回复
              数据输入:
              目前打算分三步,第一步是以Band13单波段作为输入,这部分今天刚刚训练完毕;接下来设想中会加入Band13-15差分作为另一个波段,提供相应物理信息改善积云线和卷云等云相的识别(虽然厚卷云穿透不过去,得靠AI自己猜),第三个波段可能会是Band13的错位差分图像,就是制作伪VIS云顶螺纹的那种虽然本质上没有提供多余信息,但或许可以通过信息的强调使AI更易于提取信息将模拟螺纹和VIS螺纹对应起来,补充高频信息,如果这俩波段效果好会予以保留,如果要增加更多输入波段得换一个开源模型用用,并且我的电脑也有可能跑不动,得租借算力平台了。


              差分与错位差分图像的示例
              其实可以看到不少经验和假设其实还是和伪VIS一脉相承的,对不对另说()


              IP属地:上海24楼2023-09-26 12:05
              收起回复
                最后就是数据检验
                每次训练会分10%的数据作为验证集,比如下午30~35度天顶角一共2000整数据(真的刚好2000哦),就有200个数据被归为验证集,除了Pix2Pix自带的loss函数之外,训练结束后会使用RMSE(均方根误差)和SSIM(结构相似指数,不是那个旧旧的微波扫描仪器)衡量模型的效果。



                IP属地:上海25楼2023-09-26 12:11
                收起回复
                  前面铺垫了一堆废话,下面讲讲单波段模型训练的咋样了


                  IP属地:上海26楼2023-09-26 12:16
                  回复
                    训练集loss的图像,batchsize是32,一开始学习率给的是默认值2*10^-4,后来一路慢慢调低到2*10^-5,250epoch的时候好奇调回5*10^-5试了三十几个epoch,发现不对劲就调回来了,最后睡觉/上课的时候在1*10^-5挂了两百epoch看看会不会过拟合,结果发现虽然验证集表现总是比训练集差一点但是也是在缓慢下降或者持平的,没啥过拟合现象。

                    这里前三张是训练集最后几个epoch的图像,第四张是验证集的图像





                    IP属地:上海28楼2023-09-26 12:33
                    收起回复
                      关于SSIM和RMSE检验,楼主今天刚看完SSIM相关内容,还没把所有数据都检验过,只塞了训练集第一张图(15灿鸿)进去试了试,算出来的结果是SSIM=0.885,RMSE=0.019。说实话这个结果好对于单波段来说的有点令人意外
                      全体数据应该不至于有这么好的检验结果,验证集也应该会比训练集差一点,不过这个检验明天上午再去整,今天先睡了


                      虽然检验数据很好看,但从中也能看出高频信息的丢失比较严重,也就是相邻像素亮度快速变化的云顶光影、低空积云线等区域,这些问题在增加波段后希望能一定程度上解决


                      IP属地:上海29楼2023-09-26 12:47
                      收起回复

                        27楼好多东西被删了...放张训练曲线先


                        IP属地:上海31楼2023-09-26 12:56
                        收起回复

                          验证集的生成结果


                          IP属地:上海32楼2023-09-26 13:05
                          收起回复
                            接29楼:
                            全体数据(训练集+验证集共2000张)
                            平均SSIM:0.8162175675538293
                            平均RMSE:0.03591463835528434
                            虽然比昨天测的单张低但也很不错啦


                            IP属地:上海34楼2023-09-26 23:01
                            回复
                              验证集表现(共200张):
                              平均SSIM:0.7254644919197607
                              平均RMSE:0.060722495625358135
                              验证集果然比全体数据略差一点,之前从验证集的loss也能看出来。不过毕竟是单波段,还有很多提升的空间,现在这个SSIM从数据上超过用FY4A+ERA5数据的那篇论文了(0.48),也接近Hackathon那边专门加入SSIM的CGAN的了(0.77),RMSE则是比这俩都更好。
                              (不过说实话我们模拟的是Band3,他们模拟的是真彩色,感觉单纯比较数值有点占便宜


                              IP属地:上海35楼2023-09-26 23:28
                              回复