月球表面三维环境构建
本文主要从两个方向介绍,一种是基于射影变换的月球表面环境构建;另一种是基于高度图的三维仿真环境构建,目前两种方式都已经实现。本文将引导读者从获取数据集开始完成对月球表面的三维环境构建仿真。
构建仿真文件
在构建三维表面环境的配置中,需要加入一系列的模型文件、配置文件以及发布文件,整个过程对于ROS新手而言是非常晦涩的,我反正一开始就弄糊涂了,不知道文件与文件之间的层级关系。在这里首先给一个大概的概念。ROS的发布文件.launch是相当于可执行文件一样的存在,即是可以直接运行的程序,类比于Linux系统下的.sh文件。发布文件中将包含一系列的配置文件以及配置参数,相当于.sh中的一系列参数与函数,因此配置文件相当于不完整的.sh文件,而模型文件只存在于配置文件的调用中,通常不通过发布文件直接调用它。
获取原始数据
无论是三维仿真环境抑或是二维的射影变换仿真,都需要获取较高精度的月球表面遥感图像,目前能够获取到的、开源且较为完整的月球表面数据集是NASA的月球表面数字高程图和月球表面去除阴影的地形照片,分别从对应的路径下载即可,推荐使用IDM或者XDM等并发下载器下载,源文件较大,单点下 ...
24年6月进展
第一篇文献
MetaEarth: A Generative Foundation Model for Global-scale Remote Sensing Image Generation
解决的问题
本文是将扩散模型用于遥感领域的超分辨率解决方案,专门解决遥感图像领域数据集不足、下游任务训练难以拟合的问题。
主要内容
本文在DDPM的工作框架基础上,增加了两点修改方案以改善遥感图像生成所要求的连续性和有意义性质:
基于DDPM的扩散生成框架通常只对时间变量ttt作编码embedding,本文将这一步扩展至对分辨率作编码;
为了保证生成的遥感图像在空间上连续,本文将前一位置生成的图像作为条件控制量,将其拆分为两部分(从左和从右),分别作图像生成,并根据相同部分拼接在一起,实现无缝图像生成;
。其工作数据流如下所示:
本文主要使用了超分辨率的方法,其中值得注意的一点是,超分是先作一次上采样后加入高斯噪声作条件生成。超分前后,生成图像在像素级别上平滑。
文章仅使用了8块4090完成数据并行训练,共计训练2000GPU小时(约5天)。
方法评价
本文算是将扩散模型应用至遥感图像数据集 ...
条件扩散模型
前言
扩散模型再怎么牛,也只能在同一个数据集下生成类似的图像,不可能随心所欲地命令其生成想要的图像。但是实际上文生图早已实现,而且不是什么难事,这是怎么做到的呢?这便是条件扩散模型的功劳,是它实现了文本等语义信息的编码嵌入,控制扩散模型生成指定内容的图像,以条件扩散模型为基础,衍生出了一系列的控制模型如ControlNet等,能够更加精细地控制生成图像的内容,这才给扩散模型强大的生成能力插上了任意飞翔的翅膀。掌握在扩散模型内加入条件的设计思想,才是真正掌握了扩散模型的精髓。
条件扩散模型
扩散模型的雏形最早于2018年就已经被提出,集大成版本DDPM于2020年提出、实用版本DDIM于2020年底提出,但是真正火起来的时间在2021年前后,中间的时间差,都在等它!
条件扩散模型为扩散模型的火爆奠定了数学基础!
术语解释
条件扩散模型在扩散模型的采样步骤上进行修改,采样是指,从已知的概率分布模型(或确定性模型中)抽取一个图像样本的过程。例如,对于DDPM而言,逆过程中每一步都是从一个已知的分布N\mathcal{N}N;而对于DDIM而言,它的逆过程不是随机的,是从已知的上一步样本直接 ...
基于gazebo的无人机事件相机探测
仿真配置
仿真环境基于Gazebo引擎,在ROS系统下配置,使用PX4飞控拓展和XTDrone无人机,首先请参照以下方式完成环境构建:
环境安装
与ros安装与使用心得相同,安装ROS和PX4,然后安装Gazebo。推荐在docker容器中安装以保护系统环境,可参考XTDrone博客。然后在构建容器前,注意为容器开启GPU的支持和图形界面支持,请仔细参考上述博客尤其是XTDrone博客以完成gazebo和ros的协同安装。这里提供一个拉取自ros官方的镜像ros:noetic,使用其构建了一个自定义的镜像,如下所示:
12345678910111213141516171819202122232425FROM ros:noeticRUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse" > /etc/apt/sources.listRUN echo "deb https://mirrors.tuna.tsin ...
ros安装与使用心得
前言
希望通过本博客,记录本人搭建的完全过程,减少后来者的搭建成本,以此避免反复造轮子,在本文中,沿用了博客的一贯配置,即使用Docker搭建Ubuntu20.04,并完成后续系列操作,本博客算是系列章节的第一章。
安装ROS
此处走过很多的弯路,不过到头来发现,官方给出的安装流程,才是最正确最有效的,首先在这里给出ROS安装帮助说明和PX4的官方链接,我们照着路径一步步来,能够完成一个从入门到入土精通的安装配置。
生成Docker容器
本节可以参考自博客,在此不再赘述,安装完成后使用nvidia-smi验证安装结果。
安装ROS
在容器内,使用以下命令逐个完成ROS的安装,首先是获取适合当前版本的源,这一步可以使用对应的镜像,例如在使用清华源的情况下,可以使用如下命令:
1sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sourc ...
24年5月进展
第一篇文献
Boundary-Aware Divide and Conquer: A Diffusion-based Solution for Unsupervised Shadow Removal
解决的问题
本文提出了一种融合扩散模型的图像去阴影方法,该方法能够在无监督的条件下使用扩散模型强大的生成能力完成对阴影部分图像片段的插补。
主要内容
本文内容主要分为两个部分,其一是阴影图层分解模块D\mathcal{D}D,如下图所示:
该模块自带数据增强功能,能够从当前已有阴影的图像上自动再生成合成阴影,然后通过训练两路编码-解码器模块完成对阴影图层的提取,包括提取阴影区域、提取阴影边界,使用四个子损失函数完成训练,分别是:
图像重建损失,即去阴影得到的预测图像与真实无阴影图像的L1L_1L1范数误差;
图像一致性损失,即合成的不同阴影图像经过去阴影后产生的预测图像之间的L1L_1L1范数误差;
明暗交界损失,即阴影区域和非阴影区域的交界线像素灰度的L1L_1L1范数误差;
平滑性损失,即不是阴影但是被分进阴影区域的像素灰度的L1L_1L1范数惩罚。
由以上四项构成正则项 ...
各种DDPM衍生模型
前言
本博客收集整理近年来一些常用的DDPM衍生模型,其特点是:
大多不需要重新训练,仅使用DDPM训练的UNet作噪声估计器;
聚焦于某个领域(如算法提速、图像恢复等);
大多不满足DDPM要求的马尔可夫性质;
数学推导过程依然是严格的,(区别于LDM)。
这些衍生模型拓展了扩散模型的应用领域,成为事实上的扩散模型大厦的基础。
Denoising Diffusion Implicit Model
本文主要参考自论文[1]。简单地说,DDIM不限制模型一定是马尔可夫的,去噪过程中下一步的样本直接来自于上一步的样本,因此原理上可以实现对随机过程的去随机化,即扩散过程将成为某个固定取值的确定性过程,保证使用相同输入得到的生成结果是相同的,这一性质有助于提高生成式模型的结果稳健性和效率。
DDIM是DDPM的一个极常用的变体,取消了DDPM所要求的扩散过程马尔可夫性质,直接对路径函数采样,极大地减少了扩散过程的采样步数,从原理上提高了扩散模型的实用性,与LDM相比,DDIM的数学过程更加严格。
优化目标
DDIM与DDPM共享同一个目标函数,即最大化对数似然函数,其形式如下:
arg m ...
扩散模型详解——DDPM
前言
扩散模型是一种新型生成式模型,专攻于图像生成任务。其特点是把图像视为张量空间中离散分布的点,每个点之间由大量高斯随机噪声淹没,图像与图像之间存在相当的距离,因此,能够设计一种噪声去除的方法,将不同张量点之间的噪声去除,即可得到离散的张量点值,即需要生成的图像。
Denoising Diffusion Probabilistic Model
去噪扩散概率模型(以下简称扩散模型),英文缩写为DDPM,是20年以降兴起的一种基于马尔可夫链生成式概率空间模型,它的特点是将噪声去除的过程建模为离散马尔可夫链,使用条件概率逐项传播迭代,且计算过程完全位于图像空间中,计算量极大,理解上比较直观。
真是蚌埠住了,VAE和DDPM的贝叶斯理论符号假设正好相反,可千万别搞混了。
前提与假设
扩散模型的数学底层工具是马尔可夫链,首先假设图像空间为x∈Ω(x)\mathbf{x}\in\Omega(\mathbf{x})x∈Ω(x),把一幅完整美观的图像视作为一个低熵体,记为x0\mathbf{x}_0x0,将其放于封闭空间中自行扩散Diffusion,文章假设:扩散过程是不断增加高斯白噪声的过程, ...
祖传代码
前言
本博客只是记录一下从师兄等处继承得到的一些代码及其使用说明。
国产事件相机
SDK及其使用说明:https://github.com/CelePixel。
研究生活
2023/10/8 大作业
国庆节已经过完,最后的长假不情不愿地落下了帷幕。我必须面对看似凶险异常的研究生生活了,曾经许下的承诺每天读一篇文献,其实现在来看也一点没有做到(当然可以给自己找借口说:还没有定方向,但是没有定方向就意味着可以不学习吗?不然也)。在做第一个大作业的时候,我才意识到自己有多么头大,主要遇到了以下的问题:
写报告发现讲事情讲不清楚,抽象能力不够,什么层次该写什么内容?顶层设计需不需要写技术细节?当然是不需要,但是下意识要混一点进去,造成了无处不综述,无处不技术的尴尬局面,以致于写到后面发现没东西可写了。
工程问题和研究问题弄混了,工程问题是理论研究已经很充分了,在理论上证明了问题是可以解决的,才能在工程上去找路径;但是如果理论研究都没有透彻,就要把一个问题转化成工程问题进行研究,可能行得通(像古人那样凭经验和试错),但是大多数情况下是行不通的,切记不要觉得一个问题有趣就把它当作工程问题进行实践,大概率是没有结果的!
2023/10/19 显卡之纠结
从8月底开始陆陆续续一直在关注显卡啊电脑配件这些的价格,看了很久很久,平均每天要在这上面花费一个到两个小时的时间 ...