Verilog 学习
前言
嵌入式课程和导师的专长都是硬件电路设计,面向应用部署算法,因此有必要了解掌握Verilog语法及其设计思想。
名词解释
VHDL : VHSIC : Very High Speed Integrated Circuit Hardware Description Language.
EDA : Electronic Design Automation
Verilog的五种抽象模型:系统级,算法级,RTL级(Register transfer level)寄存器级,门电路级,开关电路级(深入到三极管内部)
准备工作
使用vscode编译verilog语言并可视化运行
intel自带的quartus软件界面实在过于古老,代码编写跟matlab一样难用,所以我决定使用vscode编写verilog代码并运行一些简单的编译和调试。主要的设置步骤有以下:
安装iverilog编译器,这是一个开源的verilog语言编译器,ubuntu可以直接使用sudo apt install iverilog安装,windows可在网上找官网下载;
安装仿真器gtkwave,这也是开源的示波仿真器,ub ...
mpich 学习
写在前面
从5月8日开始,到现在,已经接近三个月的时间,我的第一段实习生涯即将结束。反思自己的实习经历,我觉得最主要的收获有三点:
最重要的往往是迈出第一步,我从来没有接触过社会化的生产、经营模式,这次实习的企业虽然很小,而且是初创企业,学术氛围浓厚,也给了我较多的眼界,在实习中尝试触摸大学学习和社会生产的脱节处,下一步工作或者学习,都能提供方向上的指引。
第二是克服与生俱来的恐惧心理,至今也还记得实习第一天的时候,来到公司,使用ssh连接服务器、装个python的环境都出了无数个bug,也不敢问近在身边的技术主管和后面的后台管理人员,自己的问题疯狂查CSDN,也始终解决不了,第二天第三天以降,简直如同煎熬,感觉自己什么也不会,一点也不配来这里,压力山大。现在回望,实力是一方面,当时对服务器、对git和linux的使用确实非常不熟悉,另外一个重要的方面,自然是心理压力较大,始终担心自己被别人看不起,不敢问问题,反而限制了自己的进步。
第三才是技术上的一些收获,实习我丝毫没有参与公司的核心业务,主要做的工作是数据集整理和清洗,去重都鲜有涉及。因此指望通过一次实习让自己学到算法上的东西无 ...
图像去雨系列方法汇总
前言
服务于所谓的图像去条纹,真是心都操碎了,到处去查论文看文献,之前一直在图像去噪那里寻寻觅觅冷冷清清,现在总算是找到了方向。
所谓图像去雨,就是广泛意义上的图层分解中,将或者雨滴图层与背景图层**分解开的任务,是图像分解任务中的常见类型,广泛应用于自动驾驶领域的图像预处理。
根据综述文章[1],根据去雨任务的输入模态,可将图像去雨分为两条路线,即基于视频的去雨方法(多针对动态情况下,这种方法在低速自动驾驶上尤为适用)和基于单幅图像的去雨方法(多针对静态或者高速运动下的自动驾驶任务)。本文将主要介绍基于单幅图像的去雨线方法,因为它是非常典型的图像分解任务。进一步,根据去雨任务的技术路线,又可以将去雨方法分为基于模型的去雨方法和基于数据驱动的去雨方法,在数据驱动领域,又可以进一步细分为基于监督训练的方法、基于自监督训练的方法和基于无监督迭代的方法。
本文认为,即使基于监督训练的方法能够在基准测试集上取得较好的结果,但是仍然不足以泛化至真实模型上,基于自监督学习的方法虽然当前泛化能力较差,甚至图像分解的描述提取能力也弱于监督学习,但是其在真实环境中的潜在自适应能力,是真正意义上技术发展的 ...
N2N系列图像去噪方法汇总
前言
这里的图像去噪,更多地指的是带有某些特殊模式的噪声,这种模式大多有特定的物理机理,例如最常见的高斯白噪声和泊松噪声。常规的方法将这些噪声的信息作为先验信息,手工设计处理算法例如BM3D[2]是在深度学习出现之前具有最高的去噪效果,其原理是字典学习(不太理解了)。而本文将主要介绍的是从文献Noise2Noise[1]开始,基于单幅噪声图像,不增加理想图像的自监督网络。
Noise2Noise
本系列的去噪网络前提都是几乎相同的,均来自于文献Noise2Noise[1],基本假设是噪声独立同分布、噪声的期望为零,根据以上两个条件,产生了一系列的衍生网络,首先介绍其数学原理。
数学原理
设理想的、无噪声的图像为x\mathbf{x}x,该图像多称为信号图像或者干净图像,对应的被噪声污染的图像为y\mathbf{y}y,该图像称为退化图像或者噪声图像。理想情况下,如果能够得到对信号图像和噪声图像整个图像空间下的所有分布,则能够以监督学习的方式得到理想的去噪网络f:Rm×n↦Rm×nf:\mathbb{R}^{m\times n}\mapsto\mathbb{R}^{m\times n}f ...
24年4月进展
第一篇文献
Retinomorphic Object Detection in Asynchronous Visual Streams
解决的问题
来自北京大学黄铁军团队的应用成果,首创性地提出了基于事件相机和脉冲相机的联合高速检测框架,在仿生学、高速物体检测上有着良好的应用效果。
主要内容
本文认为事件相机可以类比眼球中的周围神经元,对光照的变化较为敏感;而脉冲相机可以类比眼球中的中央凹神经元,具有较高 的空间分辨率,同时 也具有一定程度 的时间分辨率。由于事件流和脉冲流都是离散异步的数据格式,不同于图像作为一个连续的整体,给定一个对异步数据流的划分S={SX1,SX2,⋯ ,SXN},X={Spike,Event}\mathcal{S}=\{S^1_X,S^2_X,\cdots, S^N_X\}, X=\{\mathrm{Spike}, \mathrm{Event}\}S={SX1,SX2,⋯,SXN},X={Spike,Event},对应地有一个响应目标划分B={B1,B2,⋯ ,BN}\mathcal{B}=\{B^1,B^2,\cdots, B^N\}B={B1,B2, ...
24年3月进展
第一篇文献
End-to-End Learning of Representations for Asynchronous Event-Based Data
解决的问题
本文提出了一系列抽象的事件描述,旨在解决将各种各样纷乱的事件描述统一至同一个泛函中,以便于得到网格化的事件描述grid-like以适应深度学习网络输入的要求;同样也提出了相应的数据驱动的事件描述方式。
主要内容
文章指出,网格化的事件描述本质上就是如下式表达的冲激函数网格点列:
S±(x,y,t)=∑e∈Ef±(x,y,t)δ(x−xe,y−ye)δ(t−te)S_{\pm}(x,y,t)=\sum_{e\in E} f_\pm(x,y,t)\delta(x-x_e,y-y_e)\delta(t-t_e)
S±(x,y,t)=e∈E∑f±(x,y,t)δ(x−xe,y−ye)δ(t−te)
注意这里的描述方式,并没有将时间轴和空间轴拼合在一起,虽然但是这样也没有什么本质 上的区别,强调了时间和空间的独立性。根据这一描述式,在特定的核函数作用下,可以得到以该方式描述进一步泛化的事件描述式(文章中称为核卷积): ...
23年12月进展
前言
从11月下旬开始7个大作业。。。一直在赶作业,一直赶,赶到差不多12月中旬才做完,之后一周一直在玩Stable Diffusioin,U1S1那个东西确实好玩,玩了快两周,也变相地学到了很多CV的知识,终于,在年末的前几天重新把论文捡了起来,我又开始看了。。。这次是在Copilot的帮助下,提高了筛选文献的效率,不用手工泛读了。
第一篇文献
文献名:ESVAE: An Efficient Spiking Variational Autoencoder with Reparameterizable Poisson Spiking Sampling
arxiv
解决的问题
针对直接套用VAE到SNN网络中出现的生成效果差问题,本文在VAE原文的基础上修改了FSVAE的Loss函数,提出了一种概率空间均方误差的损失函数,取得了较好的生成效果。
采用的方法
本文大体的方法按照VAE的一般逻辑,整体结构如下图所示:
这里着重强调两点:
图像脉冲编码:一般逻辑是将强度图像按像素强度生成泊松过程簇的方法,本文使用的是文献FSVAE的编码器,后面来叙述;
损失函数:文献中给出的形式是:
L ...
24年1月进展
第一篇文献
SpikingJelly: An open-source machine learning infrastructurepla tform for spike-based intelligence
解决的问题
该文献为了解决在SNN领域较为混乱的网络框架、难以彼此通用复现的SNN结构以及与软硬件不兼容等问题,提出的一个基于cupy的深度学习框架,该框架建立于torch的接口上,内层使用Cupy完成对Cuda的调用,底层仍然使用C++语言实现高性能运算。该框架的中文名称为“惊蛰”,名字还取得不错。
主要内容
整个框架的架构如上图,该框架的用户文档可参见:用户文档。在使用感受上,该框架具有以下特点:
接口与torch的nn接口高度类似,能够方便torch用户的使用;
在生理学和计算神经学上涉足不深,更多地抽象脉冲的物理和数学模型,并将其与深度学习相结合。
传播过程将整个脉冲序列分为多个单独的时间点,因此可以按单步传播(在同一个时间戳上传播整个网络,然后进入下一时间戳)和多步传播(在同一个脉冲序列上传播整层网络,然后再进行下一层),两种方式计算结果相同。
拥有多个内置的数据 ...
24年2月进展
第一篇文献
End-to-End Object Detection with Transformers
解决的问题
本文旨在提出一个新的图像检测框架,以完成对大规模数据集下的多物体图像检测(甚至包括全景分割)。
主要内容
本文有至少三个创新点,分别予以叙述。
创新点一:损失函数
检测框架的损失函数一般包括两部分,即分类误差和检测误差,然后使用超参数正则化为同一个损失函数。本文的损失函数在两点上作修改以适应当前的检测任务,其一是将交叉熵函数(对数形式)改为非对数的普通项(经验表明在当前模型条件下有着更好的检测结果);其二是在检测框损失函数上,同时使用了l1\mathcal{l}_1l1损失和交集损失并正则化,论文“Generalized intersection over union”保证了该正则化结果在检测上更有效。
创新点二:网络架构
将Transformer和CNN结合的网络有不少,本文基本上是最早提出将基于CNN生成的图像特征与与Transformer的位置编码结合的,结合方式特殊在于:CNN提取出的网络特征有2048个维度,本文使用1×11\times 11×1卷积将其减少 ...
张正友标定法问题
前言
张正友标定法太闻名了,历久不衰,20年后仍然以它作为机器视觉的标定基础,在机器视觉这门课的学习过程中,有个别问题,在此予以记录。
靶标精确度问题
问题描述:在标定前,如果靶标的方格子长度事先不已知,能否标定出相机的内外参数?
符号定义
现有靶标上的点使用齐次坐标Mi=(xi,yi,1)T\mathbf{M}_i=(x_i, y_i, 1)^\mathrm{T}Mi=(xi,yi,1)T表示,相机平面上对应的点使用mi=(ui,vi,1)\mathbf{m}_i=(u_i,v_i,1)mi=(ui,vi,1)表示,以上两组点列值的坐标均已知。相机内参的形式固定且已知,参数待定,形式为:
A=[αxγu00αyv0001]\mathbf{A}=\left[
\begin{matrix}
\alpha_x&\gamma&u_0\\
0&\alpha_y&v_0\\
0&0&1\\
\end{matrix}
\right]
A=αx00γαy0u0v01
相机的外参形式不明确,表示为:
D=[r11r12t1r ...