Through Fog High Resolution Imaging Using Millimeter Wave Radar

  • 卷积定义
  • 生成器
  • 鉴别器
  • 测试
  • pipline
  • 效果

复现的网络代码 github
很有意思的一篇论文,将3D点云图像转换成2D的深度图像,可惜没找到开源代码,自己复现了一下。

卷积定义

class Conv3(nn.Module):def __init__(self, in_ch, out_ch, kernel_size=3,stride=2,padding=1):super(Conv3, self).__init__()self.conv = nn.Sequential(nn.Conv3d(in_ch, out_ch, kernel_size=kernel_size, stride=stride,padding=padding),nn.BatchNorm3d(out_ch),  # 添加了BN层nn.LeakyReLU())def forward(self, input):return self.conv(input)class Dconv2(nn.Module):def __init__(self, in_ch, out_ch, kernel_size=3,padding=1,output_padding=1,stride =2):super(Dconv2, self).__init__()self.convtrans = nn.Sequential(nn.ConvTranspose2d(in_ch, out_ch, kernel_size=kernel_size,stride=stride,padding=padding,output_padding=output_padding),nn.BatchNorm2d(out_ch),  # 添加了BN层nn.ReLU())def forward(self, input):return self.convtrans(input)class Conv2(nn.Module):def __init__(self, in_ch, out_ch, kernel_size=2,stride=2,padding=0):super(Conv2, self).__init__()self.conv = nn.Sequential(nn.Conv2d(in_ch, out_ch, kernel_size=kernel_size, stride=stride,padding=padding),nn.BatchNorm2d(out_ch),  # 添加了BN层nn.LeakyReLU())def forward(self, input):return self.conv(input)

生成器


class Generator(nn.Module):def __init__(self):super(Generator, self).__init__()self.encoder = nn.Sequential( #input  [1, 64, 32, 96]Conv3(1,16),        # [16, 32, 16, 48]Conv3(16, 64),      # [64, 16, 8, 24]Conv3(64, 256),     # [256, 8, 4, 12]Conv3(256, 512),    # [512, 4, 2, 6]Conv3(512, 1024),   # [1024, 2, 1, 3]# Conv3(1024, 2048,kernel_size=(2,1,3),stride=1),  # [2048, 1, 1, 1]nn.Conv3d(1024, 2048, kernel_size=(2, 1, 3), stride=(1, 1, 1)),nn.Tanh())self.decoder = nn.Sequential(Dconv2(2048, 1024, kernel_size=(2, 1), stride=2,output_padding=(0,0),padding=0),Dconv2(1024, 512,  stride=2),Dconv2(512, 256, stride=2, ),Dconv2(256, 128,  stride=2),Dconv2(128, 64,  stride=2),Dconv2(64, 32,  stride=2),)self.decoder_ = nn.Sequential(Dconv2(40, 16 ),Dconv2( 16,1),nn.Conv2d(1,1,1,1))def forward(self, input):x = self.encoder(input)x = torch.squeeze(x, 4)x = self.decoder(x)skip, _ = torch.topk(input, 8, dim=4, largest=True)skip = skip.transpose(4,1)skip = skip.squeeze(-1)x = torch.cat([skip, x], dim=1)x = self.decoder_(x)# print("x",x.size())x = x.transpose(3,2)return x

鉴别器

class Discriminator(nn.Module):def __init__(self):super(Discriminator, self).__init__()self.ThreeEncoder = nn.Sequential( #input  [1, 64, 32, 96]Conv3(1,16),        # [16, 32, 16, 48]Conv3(16, 64),      # [64, 16, 8, 24]Conv3(64, 256),     # [256, 8, 4, 12]Conv3(256, 512),    # [512, 4, 2, 6]Conv3(512, 1024),   # [1024, 2, 1, 3]nn.Conv3d(1024, 2048, kernel_size=(2, 1, 3), stride=(1, 1, 1)),nn.ReLU())self.conv1 = nn.Conv2d(2048, 512, kernel_size=1)self.relu = nn.ReLU()self.TowEncoder  = nn.Sequential( #input  [1, 256,128]Conv2(1, 4, kernel_size=2, stride=2),Conv2(4, 8, kernel_size=2, stride=2),Conv2(8, 16, kernel_size=2, stride=2),Conv2(16, 32, kernel_size=2, stride=2),Conv2(32, 64, kernel_size=2, stride=2),Conv2(64, 128, kernel_size=2, stride=2),Conv2(128, 256, kernel_size=2, stride=2),# Conv2(256, 512, kernel_size=1, stride=2),nn.Conv2d(256, 512, kernel_size=1, stride=2),nn.ReLU(),)self.fc = nn.Sequential(nn.Linear(1024, 256),nn.ReLU(),nn.Linear(256, 1),nn.Sigmoid())def forward(self, input3d, input2d):x = self.ThreeEncoder(input3d)x = torch.squeeze(x, -1)x = self.conv1(x)x = self.relu(x)y = self.TowEncoder(input2d)x = torch.cat([x, y], dim=1)x = x.view(x.size()[0], -1)x = self.fc(x)return x

测试

if __name__ == '__main__':i = torch.randn( 1,1, 64, 32, 96)g = Generator()output = g(i)print(output.shape)j = torch.randn(1, 1, 128, 256)d = Discriminator()out = d(i,j)print(out.shape)

pipline

见github吧,写的一般,就不搬上来了

效果

可能是参数调的不好,意思到了。

论文 Through Fog High Resolution Imaging Using Millimeter Wave Radar 复现相关推荐

  1. 论文笔记《Spatially Sparse Precoding in Millimeter Wave MIMO Systems》

    论文笔记<Spatially Sparse Precoding in Millimeter Wave MIMO Systems> 背景 增加商业无线系统可用的频谱,通过探索新的不那么受限的 ...

  2. Retrieval of ice cloud microphysical parameters using the CloudSat millimeter‐wave radar and tempera

    @[TOC]Retrieval of ice cloud microphysical parameters using the CloudSat millimeter‐wave radar and t ...

  3. 深度学习论文: Computer Vision for Road Imaging and Pothole Detection: A State-of-the-Art Review

    深度学习论文: Computer Vision for Road Imaging and Pothole Detection: A State-of-the-Art Review of Systems ...

  4. 【论文阅读】An Image Patch is a Wave: Quantum Inspired Vision MLP

    [论文阅读]An Image Patch is a Wave: Quantum Inspired Vision MLP 1.摘要 2.视觉领域的几种研究架构 2.1CNN 2.2Transformer ...

  5. 论文:EMNLP2021-End-to-End Entity Resolution and Question Answering Using Differentiable Knowledge Grap

    何为实体解析(entity resolution):entity resolution component identifies entities mentioned in the question, ...

  6. 论文阅读:RA-Depth: Resolution Adaptive Self-Supervised Monocular Depth Estimation

    中文标题: 分辨自适应自监督单目深度估计 提出问题 传统的无监督深度估计方法如果在固定分辨率上训练,则迁移到其他分辨率上存在严重退化. 创新点 提出一种分辨率自适应的无监督深度学习框架(RA-Dept ...

  7. [论文笔记] Super Low Resolution RF Powered Accelerometers for Alerting on Hospitalized Patient Bed Exits

    原文链接:Super Low Resolution RF Powered Accelerometers for Alerting on Hospitalized Patient Bed Exits | ...

  8. 毫米波点云生成论文 阅读笔记 | 3D Point Cloud Generation with Millimeter-Wave Radar

    毫米波点云生成论文 | 3D Point Cloud Generation with Millimeter-Wave Radar Kun Qian, Zhaoyuan He, Xinyu Zhang ...

  9. 【AAAI 2020】Gait Recognition for Co-Existing Multiple People Using Millimeter Wave Sensing

    文章目录 1. 四个问题 1. 解决什么问题 2. 用了什么方法解决 3. 效果如何 4. 还存在什么问题 2. 论文介绍 3. 参考资料 4. 收获 1. 四个问题 1. 解决什么问题 步态识别,根 ...

最新文章

  1. 微信小程序原生组件swiper在mpvue工程中使用注意事项
  2. 嗨,你真的懂this吗?
  3. Java 网络通信必备之socket通信基本原理介绍
  4. OpenCV 中的图像处理
  5. hibernate 继承_Hibernate继承:每个类层次结构的表
  6. C++Qt笔记-完美屏蔽IDEA中accept2弹窗(无需重装软件、无需重装系统)
  7. PyTorch搜索Tensor指定维度的前K大个(K小个)元素--------(torch.topk)命令参数详解及举例
  8. JfreeChart中文文档
  9. Python使用wordcloud+pillow基于给定图像制作词云
  10. 网络信息安全攻防实验室
  11. js图片添加文字水印并设置水印居中的方法
  12. OpenCms中文网(www.opencms.org.cn)因所在电信机房所有服务器80端口被封而中断
  13. 2022年终总结-知识沉淀、疫情、展望未来
  14. 如何在patform中加入自己的工程
  15. Python网络爬虫:利用正则表达式方法爬取‘’豆瓣读书‘’中‘’新书速递‘’条目
  16. 魅族 -- 禁止D及以下级别LOG的输出
  17. 如何将mongo查询结果导出到文件中以及导入到另一个Mongo库中
  18. handle与handler的区别
  19. 个人Gmail跟MSN邮箱账号,怕忘记
  20. 如何成功实现“从经理到总监”的跨越?

热门文章

  1. ecmall mysql调用_Ecmall MySql 数据库调用教程
  2. 我是通过自学C语言转做软件开发工作的,后来用C++、JavaScript、Java、Scala、OC等语言,也都是自学。我觉得,自学一门编程语言,遵循下面的步骤比较容易学会:
  3. 如何理解线性判别分类器(LDA)?
  4. 线性分类器:感知器/SVM
  5. C语言字符串的两种定义方式
  6. Windows高效办公之批量创建文件夹
  7. 【并行计算】Slurm的学习笔记
  8. 没有javaeye积分了,谁了解浙大网新恒天公司啊?
  9. 数据库实时异地备份怎么实现
  10. 财务概念整理 入账、结账、销账、挂账、立账etc.