当前位置: 首页 > news >正文

【天文】星光超分辨图像增强

        天文望远镜是天文学家的另一双眼睛,其空间分辨率和空间采样率是两个重要指标。传统光学望远镜的分辨率受到光的衍射极限的物理限制,而禁止人们通过望远镜获取无限细节。  STAR,这是一个大规模的天文SR数据集,包含54,738个通量一致的星场图像对,覆盖了广泛的天体区域。这些对将哈勃太空望远镜的高分辨率观测与通过保存通量的数据生成管道生成的物理忠实的低分辨率对应物相结合,从而能够系统地开发场级 ASR 模型。        

        超分辨率(SR)技术通过实现经济高效的高分辨率图像捕获,推动了天文成像的发展,这对于探测遥远的天体和进行精确的结构分析至关重要。然而,现有的天文超分辨率(ASR)数据集存在三个关键局限性:通量不一致、目标裁剪设置以及数据多样性不足,这严重阻碍了ASR的发展。                 

STAR:天文星场超分辨率的基准 

          STAR是一个大规模的天文超分辨率数据集,包含54,738对通量一致的星场图像对,覆盖了广阔的天区。这些图像对将哈勃太空望远镜的高分辨率观测数据与通过通量保留数据生成管道生成的物理上可信的低分辨率对应图像相结合,从而能够系统地开发场级ASR模型。为了进一步推动ASR领域的发展,STAR提供了一种新颖的通量误差(FE)指标,用于从物理角度评估SR模型。利用这个基准,提出了一种通量不变超分辨率(FISR)模型,该模型可以根据输入的光度信息准确推断出通量一致的高分辨率图像,在新设计的通量一致性指标上比几种SR最先进方法高出24.84%,显示在天体物理学中的优势。大量实验证明了提出的方法的有效性和数据集的价值。     

from .common import *
# import common
import time
import torch
# print(torch.__version__)
import torch.nn as nn
import torch.nn.functional as F
from pdb import set_trace as stx
import numbersfrom einops.layers.torch import Rearrange
import time
from . import MODEL
from .base_model import Base_Model
from .model_init import *
from einops import repeat, rearrange
import torch.nn.functional as Furl = {'r16f64x2': 'https://cv.snu.ac.kr/research/EDSR/models/edsr_baseline_x2-1bc95232.pt','r16f64x3': 'https://cv.snu.ac.kr/research/EDSR/models/edsr_baseline_x3-abf2a44e.pt','r16f64x4': 'https://cv.snu.ac.kr/research/EDSR/models/edsr_baseline_x4-6b446fab.pt','r32f256x2': 'https://cv.snu.ac.kr/research/EDSR/models/edsr_x2-0edfb8a3.pt','r32f256x3': 'https://cv.snu.ac.kr/research/EDSR/models/edsr_x3-ea3ef2c6.pt','r32f256x4': 'https://cv.snu.ac.kr/research/EDSR/models/edsr_x4-4f62e9ef.pt'
}# def make_model(args, parent=False):
#     return EDSR(args)@MODEL.register
class EDSR(Base_Model):def __init__(self,  n_resblocks=32,n_feats =64,scale= 2,res_scale = 0.1,n_colors=1,rgb_range = 255,**kwargs):super(EDSR, self).__init__(**kwargs)self.n_resblocks = n_resblocksself.n_feats = n_featskernel_size = 3 self.scale = scaleself.res_scale = res_scaleself.n_colors = n_colorsself.rgb_range = rgb_rangeconv=default_convact = nn.ReLU(True)url_name = 'r{}f{}x{}'.format(self.n_resblocks, self.n_feats, self.scale)if url_name in url:self.url = url[url_name]else:self.url = Noneself.sub_mean = MeanShift(self.rgb_range)self.add_mean = MeanShift(self.rgb_range, sign=1)# define head modulem_head = [conv(self.n_colors, self.n_feats, kernel_size)]# define body modulem_body = [ResBlock(conv, self.n_feats, kernel_size, act=act, res_scale=self.res_scale) for _ in range(self.n_resblocks)]m_body.append(conv(self.n_feats, self.n_feats, kernel_size))# define tail modulem_tail = [Upsampler(conv, self.scale, self.n_feats, act=False),conv(self.n_feats, self.n_colors, kernel_size)]self.head = nn.Sequential(*m_head)self.body = nn.Sequential(*m_body)self.tail = nn.Sequential(*m_tail)def forward(self, x,targets):# x = self.sub_mean(x)x = self.head(x)res = self.body(x)res += xx = self.tail(res)pred_img = x# x = self.add_mean(x)if self.training:# 提取 targets 中的数据attn_map = targets['attn_map']mask_float = targets['mask']attn_map = torch.nan_to_num(attn_map, nan=0.0)# 计算 L1 损失l1_loss = (torch.abs(pred_img - targets['hr']) * mask_float).sum() / (mask_float.sum() + 1e-3)weighted_diff = torch.abs(pred_img - targets['hr']) * attn_mapflux_loss = weighted_diff.sum() / (attn_map.sum() + 1e-3)total_loss = l1_loss + 0.01 * flux_losslosses = dict(l1_loss=l1_loss, flux_loss=0.01*flux_loss)return total_loss, losseselse:return dict(pred_img = pred_img)# return x 

        损失函数非常巧妙,它不是一个简单的L1或L2损失,而是一个复合损失函数,由两部分加权组成:一个带掩码(Masked)的L1损失和一个带注意力权重(Attention-weighted)的L1损失

GuoCheng12/STAR: This repo is used for super-resolution in astronomy.

天文学家的修图技术,可比AI厉害多了


文章转载自:

http://ljKdqQad.rqrnm.cn
http://lRdpipPc.rqrnm.cn
http://FaATiE1X.rqrnm.cn
http://XzKjgQf6.rqrnm.cn
http://jOEh2Akg.rqrnm.cn
http://QlbtPSYy.rqrnm.cn
http://VKMZc6TW.rqrnm.cn
http://4IozKLcQ.rqrnm.cn
http://Lk6mSX6T.rqrnm.cn
http://3L6XRFDK.rqrnm.cn
http://moO1Qigg.rqrnm.cn
http://355yxmNF.rqrnm.cn
http://rB9etfbV.rqrnm.cn
http://xrTXjiqA.rqrnm.cn
http://TtYpzmIY.rqrnm.cn
http://SBjHamOI.rqrnm.cn
http://rtmyiyCK.rqrnm.cn
http://lvKmjkBr.rqrnm.cn
http://3mqrnsAd.rqrnm.cn
http://Z29YxE6G.rqrnm.cn
http://qYFxl2h2.rqrnm.cn
http://hRbqhzsy.rqrnm.cn
http://xgyUK5ag.rqrnm.cn
http://7DvMu4d1.rqrnm.cn
http://r0XfqnFm.rqrnm.cn
http://exuV6xC3.rqrnm.cn
http://njZlYifT.rqrnm.cn
http://4NiGEHH4.rqrnm.cn
http://S0xnMvf5.rqrnm.cn
http://Sl8jzgbg.rqrnm.cn
http://www.dtcms.com/a/375391.html

相关文章:

  • 机器学习05——多分类学习与类别不平衡(一对一、一对其余、多对多)
  • java后端工程师进修ing(研一版 || day41)
  • C盘清理从简单到高级的全面清理指南
  • 每日算法刷题Day67:9.9:leetcode bfs10道题,用时2h30min
  • PCL 基于法向量进行颜色插值赋色
  • 四数之和
  • MySql案例详解之事务
  • golang 语言核心
  • 【项目】在AUTODL上使用langchain实现《红楼梦》知识图谱和RAG混合检索(二)RAG部分
  • 安卓学习 之 贞布局FrameLayout
  • 【ISP】Charlite工具实操
  • IntelliJ IDEA断点调试全攻略
  • OceanBase存储过程基本使用
  • 使用 OBD 交互式部署单点OceanBase数据库
  • 内存管理这一块
  • 【深度学习新浪潮】什么是具身智能?
  • Linux tc 常用命令总结(网卡限速、延迟、丢包与整形)
  • Windows 命令行:路径末端的反斜杠
  • Shell脚本编程基本认识
  • Redis 面试
  • 大学地理信息科学该如何学习才能好就业
  • 浅谈“SVMSPro视频切片”技术应用场景
  • OpenHarmony多模输入子系统全链路剖析:从HCS配置到HDI芯片驱动源码深度解读
  • 1. linux 下qt 应用开机自启,需要sudo时
  • QML中的Popup
  • Cursor Pro试用
  • shell介绍
  • vla 开源最强的模型是哪一个
  • FreeRTOS任务切换详解
  • 面试不会问题