vscode远程误删除恢复
写在前面
惊险一刻!今天在调试项目的时候,不经意间把一个非常重要的文件夹lunar_crater给误删除了。
里面装的是我整整一个学期的成果啊!!!!!!
非常要命,当时就感觉天塌了。赶紧用远程桌面,怀着最后的一点希望查看回收站……,空空如也。
然后再怀着心如死灰的希望去查看了~/.Trash和~/.local/share/Trash,发现都找不到这两个文件夹,好吧这下完蛋了。
万念俱灰之际,幸好有网友指导,得以找回误删除的文件。
数据记录位置
经此一役才发现,其实在vscode上编辑过的全部文件,都会在其服务器端有备份,该备份就是恢复误删除文件的依据,通常该备份的目录位于:
1~/.vscode-server/data/User/History
里面的文件夹命名、文件命名都是杂乱无章的,直接找是找不回来的,惟一的方法只能是全部恢复,然后再凭着记忆去一点点对比,查找最新的版本。可在该目录下,使用find命令,将全部查找结果写入至本地文件中,以便于批量恢复:
12cd ~/.vscode-server/data/User/Historyfind . lunar_crater > ...
vscode配置cmake和gdb调试C/C++项目程序
开始学习C++
实习让我熟悉了python语言,但是在处理底层源码的时候,总是囿于自己有限的C/C++能力,看不懂代码,就不能深入到底层学习,况且无论怎么样,python程序总是不能有高效的运行,除了深度学习,也找不出第二个它特别适合的应用场景了。(转码也需要了解C++)综上所述,开始学习之。
按我的使用习惯,用惯了vscode再想换其他的编辑器实在有些困难,不如就在vscode上完成这一切吧,于是需要解决的一个重要问题就是,如何使用命令行与vscode自己debugger,对一个较大的C工程文件进行联调,经过一天的摸索,总算实现了。
配置gdb和vscode进行命令行调试
gdb是经典的C/C++调试器,vscode有着美观的断点和调试界面,二者合二为一可以兼得其优点,以便于进行优雅地debug。完成这一切,需要首先安装必需的插件和软件。
前置文件安装
安装MinGW组件:MinGW是为windows系统定制的gcc,g++以及make组件,方便用户在windows系统上完成对C项目的构建与调试,安装可以参考如下链接,建议下载在线下载器(直接下载可执行文件的,可能版本过于老旧,会出 ...
月球表面三维环境构建
本文主要从两个方向介绍,一种是基于射影变换的月球表面环境构建;另一种是基于高度图的三维仿真环境构建,目前两种方式都已经实现。本文将引导读者从获取数据集开始完成对月球表面的三维环境构建仿真。
构建仿真文件
在构建三维表面环境的配置中,需要加入一系列的模型文件、配置文件以及发布文件,整个过程对于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,文章假设:扩散过程是不断增加高斯白噪声的过程, ...