自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 深入理解GAN网络

创造性地提出了对抗训练来代替人工指定的loss。之前的初步理解了一下,感觉还是不到位,在这里再稍微深入一点。

2024-09-05 19:05:40 907

原创 工作中常用的100个知识点

22. 计算直方图,hist = cv2.calcHist([img],[0],None,[16],[0,255]),注意第一个参数必需是[]括起来,因为第二个参数是第一个参数的索引,当直接传入img作为第一个通道时,直方图计算的是第一行的统计。否则后面一层的分布要依赖于前面所学习的参数。在某些场景中是有用的,如网络传输的数据源,摄像头捕获的图像数据。这里的异常情况是,左黑右白的图减去blur之后的diff是左负右正,直接加diff的话会导致灰度饱和,所以就把diff大于0的地方的权重降低,把黑色更黑?

2024-08-28 16:12:11 1361

原创 卷积的意义及其派生(二)

接。因为还有很多种卷积的变形,并且应用广泛,所以继续介绍。

2024-07-31 07:00:00 671

原创 卷积的意义及其派生(一)

one by one 卷积最早出现在NIN文章中,GoogleNet中的Inception得到了使用,作用主要是降维/升维。和普通卷积核的区别就是滤波器大小是1x1,这样每个像素的卷积结果就与其邻域无关,即没有考虑局部信息之间的关系。既然在空域上相当于对图像整体乘一个因子,那么它是怎么起作用的呢。对图像灰度值的缩放确实没什么收益,收益发生在图像是多通道时。当图像为多通道时,feature ...

2024-07-26 06:30:00 956

原创 按下快门前的算法——对焦

对焦算法可以分为测距式,相位式,反差式。其中测距式是通过激光,(TOF,Time of Flight)等主动式地得知物距,然后对焦。更常用的是后两者。反差式如上图所示,可以看到镜头明显有“拉风箱”一般的往复推拉,遍历得到一个对比度最好的结果。这种对焦方法相对精准,但耗时较长。CDAF具体使用的是爬山算法。爬山算法包含两个过程,第一阶段叫粗扫(Coarse Search),第二阶段叫细扫(Fine Search)。算法控制马达移动镜头朝一个方向移动时,图像对比度会出现逐渐增大然后变小的过程,类似爬山。

2024-07-12 00:45:00 939

原创 安卓交叉编译——ndk

通过ndk,安卓也可以使用java之外的native code,如c,c++,甚至c和c++对应的library也可以得以复用,这就大大减少了重复开发。2、 打开bash_profile文件,添加NDK=/cygdrive// 我的是:NDK=/cygdrive/d/android-ndk-r9b export NDK,并保存。makefile的作用之一就是指定编译结果,编译生成(exe,so,a,jar,apk),得到一个文件夹,里面有adb.exe,fastboot.exe.

2024-06-15 11:42:26 992 1

原创 论文阅读——MIRNet

背景如下:1. 图像复原领域被CNN统治2.CNN使用全分辨率,或者是渐进的低分辨率full-resolution or on progressively low-resolutionrepresentations。前者是单一尺度的,而后者一般是编码器-解码器结构。3.空域信息spatial details和上下文语义信息不可兼得从四个方面解决:1.多尺度特征提取,但是是并行进行的。2.多尺度间的信息交换3.非局部attention4.基于attention的多尺度信息集成。

2024-06-10 00:00:00 825

原创 定点化和模型量化(二)

一个问题是原有的激活函数是为分布在0~1的数据设计的,以sigmoid为例,浮点的时候要无限接近于1它才等于1,但量化数据很容易就大于1了,但从整个分布看这个值其实还处于比较低的水平。文章假设了BN-->relu这样的顺序结构,因此BN层得到的高斯分布,只有正半轴的部分保留了下来,此时不能直接使用BN的均值作为 E[x]。正如前面提到的,MobileNetV2的后量化会面临70.9% to 0.1%的准确度下降,但这篇文章不需要per channel量化,也不需要训练就可以得到接近原始精度的量化效果。

2024-05-31 00:00:00 790

原创 定点化和模型量化(三)

The Snapdragon Neural Processing Engine (SNPE)是高通骁龙为了加速网络模型设计的框架。但它不只支持高通,SNPE还支持多种硬件平台,ARM平台、Intel平台等。支持的深度学习框架也有包括Caffe、TensorFlow和ONNX等。SNPE可以前向运行模型,但需要先将模型转换为Deep Learning Container (DLC) file才可以加载进SNPE中。

2024-05-29 16:30:44 966

原创 颜色的表示和还原(二)

不过,目前NTSC 是一个已经过时的电视色彩标准,如今保存下来的意义几乎就仅是作为各色彩标准之间的对比。由普朗克定律Plank's law,某个波长的能量谱密度可以由给定温度下的黑盒辐射“blackbody radiators”来表示,剩余的都是光速,普朗克常量等常量。但麻烦的是不同设备的分量不一致,这样同一个信号在不同设备下的颜色就会不一样。sRGB是一个线性空间,但人眼对亮度的感受不是线性的,而是更接近指数函数的形式。在sRGB中提到,不同色温的sRGB空间是不同的,所以不同色温下的CCM也是不同的。

2024-05-21 01:00:00 1321

原创 定点化与模型量化(一)

事实上,模型量化一开始就是为了压缩模型参数,韩松ICLR2016使用K-Means聚类,以类中心代替属于该类的所有样本,低bit只需要对类中心表示,从而可以使得保留更多的空间来表示更多的其他数据。既然本质上是定点化,那么模型量化的好处和定点类似,都是损失精度的代价下,有更快的速度,更小的内存,更小的功耗。以常见32bit浮点型到8bit为例,模型大小直接变成了原来的1/4,更重要的是因为使用了整型,可以使用SIMD指令集,而SIMD在移动端的优化已经非常充分了,速度可以加快2~4倍。

2024-05-17 15:40:25 925

原创 颜色的表示和还原(一)

最真实的颜色表示应该是波长。ICCV 2019 Tutorial: Understanding Color and the In-Camera Image Processing Pipeline for Computer Vision相机经常被简单地看作是衡量光线的设备light-measuring device,而图像被看作是辐射量化后的结果。这一假设在HDR,图像匹配,shape from shading等领域都被认为成立。但实际上相机尤其是数码相机对进入相机的光线做了很多处理,都是为了生成更符合人

2024-05-16 01:00:00 881 1

原创 成像到sensor前发生了什么——坐标和畸变

https://www.visuallocalization.net/datasets/可以看到aachen数据集,其中一项是内参> The intrinsic calibration is defined by the width `w` and height `h` of the image, its focal length`f`, the position of the principal point (`cx` and `cy`), and a radial distortion p.

2024-05-14 19:48:15 670 1

原创 深度学习中的变形金刚——transformer

很荣幸能和这些大牛共处一个时代。网络结构名字可以是一个卡通形象——变形金刚,论文名字可以来源于一首歌——披头士乐队的歌曲《All You Need Is Love》。transformer在NeurIPS2017诞生,用于英语-德语,英语-法语的翻译,在BLEU(bilingual evaluation understudy)指标上得到了很好的表现。由自然语言生成代码也是一种翻译,文生图也是一种转换,事实上chatgpt,bert都是基于tranformer的。

2024-04-30 23:00:00 575 1

原创 误差的一阶和二阶——MSE/MAE

3.从梯度更新上看,MSE中的预测值是sigmoid后的输出,那么求导时就会出现sigmoid的导数,而sigmoid的导数在两侧很小,会导致梯度下降不了。MSE衡量的是预测值与真实值之间的关系,那么关于预测值的似然函数可以写成关于GT的函数,如果这个函数是高斯分布,根据最大似然估计就可以得到MSE。而且,MSE 随着误差的减小,梯度也在减小,即使固定学习因子,函数也能较快取得最小值。所以超分,去噪更多使用L1,SSIM等,尤其后面又有GAN loss等的出现,MSE使用得更少了。

2024-04-24 01:00:00 1088

原创 拿什么来估计你——我的参数

估计分为区间估计interval estimate和点估计point estimate,区别是给的是一段区间还是准确的数。区间估计一般是置信度的形式。因为真实值暂时是未知的,通过采样计算只能得到一个估计值,计算公式确定,但是不同次的采样计算出来的值是不一样的。所以估计值有时候会偏大有时候会偏小,我们对这个估计值再计算其期望,根据是否会overestimate or an underestimate,又可以把估计器分为有偏和无偏的。比如算术平均值的期望就正好等于变量的期望,所以算数平均值的无偏估计。

2024-04-19 00:00:00 1057

原创 像素级损失函数和经典超分文章

SRGAN,ESRGAN,Real ESRGAN,一步步演化,对比着看才更容易理解。

2024-04-17 00:45:00 775

原创 成像到sensor后发生了什么——ISP

为了解决这个问题,手机生产线上的一个流程就是针对每个个体样本做参数微调,把需要调整的量写到sensor OTP存储中,手机每次开机都从OTP中读取修正量,和量产软件中的固定参数相结合,就能得到比较不错的效果,减少用户投诉。因为sensor的热噪声,即便没有光线也会有响应。在相机上的白平衡,也可以选择与环境相同的色温,但如果环境不变,相机的色温越高,照片会更暖,因为它相当于在补偿对应的高色温。理论上是这样的,但是物体不同位置到镜头的距离是不一样的,你的所谓等比例变换没办法满足所有的点,所以就会产生透视畸变。

2024-03-17 00:00:00 1178

原创 raw数据噪声模型和标定

噪声在ISP中去得越早越好,因为噪声在最开始成像的过程中就引入了,之后只会不断放大。具体而言,噪声产生的位置就是上图中绿色框的区域。

2024-03-01 15:00:38 1956

原创 这个何同学不一般——导向滤波

首先,导向滤波可以在滤波的同时保留图像边缘。双边滤波,导向滤波,最小二乘滤波被称为三大保持 边缘滤波器。导向滤波其实是何恺明为了解决暗通道去雾的一个计算过程提出的一种滤波方法。如果我们想要滤波的同时保留边缘,很自然地会想到先使用边缘检测器得到边缘图,滤波的时候就可以以此作为参考。导向滤波其实也一样,需要一幅guidance image,特别地,可以将原图作为guidance image,此时的结果输出就是保留边缘的平滑结果,在这个过程中其实就利用了guidance image中的结构信息。作为边缘保持滤

2023-08-29 11:30:00 1278

原创 无处不在的拉普拉斯——边缘,斑点,金字塔

作为拿破仑的老师,拉普拉斯有拉普拉斯算子二阶导的过零点可以用来检测边缘有限差分算子,可以由二阶导定义或者泰勒展开推导出。高斯拉普拉斯LoG因为二阶导对噪声敏感,所以通过先使用高斯模糊,而我们可以提前计算高斯滤波的拉普拉斯响应。画出图像是墨西哥草帽。墨西哥草帽和图像做相关就可以实现斑点检测(结合极大值的寻找)LoG可以使用DoG近似。DoG是不同的尺度因子,所以两个高斯滤波核中心会错位,二者做差就类似拉普拉斯中的左右或者上下做差。拉普拉斯金字塔先下采样再上采样就会损失信息,

2023-08-23 00:15:00 1194

原创 torch相比于numpy都干了什么——torch入门

https://pytorch.apachecn.org/docs/1.4/blitz/tensor_tutorial.html

2023-02-15 18:56:08 839

原创 泊松融合——用了拉普拉斯但没有金字塔

这样解出来的融合区域的值和参考图不一致,但是梯度近似,且具体的值是基于边界和梯度求解出来的,所以整体会和背景处于同一亮度/颜色水平。但如果参考图对应的mask不够精细,参考图本身的梯度和背景图仍然差异过大,这样的引导场得到的融合效果还是不佳。因为人眼对二阶导是更敏感的,所以只要我们指定了融合区域内部的梯度值,并且知道融合边界处的值,理论上就可以求解出来。上图d使用了参考图和背景图的极大值,相比于b的保守引导场,尽可能保留了更多的纹理信息,不至于在融合区域保留参考图的背景而造成突兀。这样从一阶导到了二阶导。

2022-11-04 03:00:00 750 1

原创 谷歌手机中的HDR技术——HDR+

HDR+手机端的问题手机的光圈小,导致捕获的光线少,从而在暗光下的噪声多;手机用于量化的bit位也少,导致所能表达的动态范围小。算法特点特点之一是不需要使用包围曝光,而使用同一曝光时间,这样有利于对齐,并且曝光时间很短,避免了高光溢出。融合得到的结果没有阴影,高比特位,所以可以应用标准HDR的tone mapping。特点之二是使用bayer raw数据而不是demosaicked后的RGB/YUV数据。这样每个像素的比特数更多,同时也允许我们可以规避ISP中不想要的tone mappi

2022-06-04 16:50:14 3976

原创 HDR简单介绍

OpenCV: High Dynamic Range (HDR)OpenCV3.0 HDR(高动态范围)示例代码以及用法 - 一度逍遥 - 博客园High Dynamic Range Imaging — OpenCV 3.0.0-dev documentation可以将动态范围理解为量化的阶数。一般都是8bit量化,那就有256个levels。当同一幅图中同时有高亮和暗部时,就会导致亮度过曝,暗部欠曝。一般处理的方法是使用多张不同曝光的照片,融合得到HDR图。HDR图一般以浮点型表示,对应的文.

2022-05-28 22:30:00 2378

原创 位姿估计的来龙去脉——内外参,三维重建,Pnp问题

https://www.jianshu.com/p/b3e9fb2ad0dchttps://blog.csdn.net/luohuiwu/article/details/80722542

2021-09-02 10:50:11 2481

原创 二维与三维之间的桥梁——点云

在做图像配准时就听闻过一些点云的方法,确没对其有太多的认识,只是知道点云point cloud顾名思义就是一些离散点的集合。现在在无人驾驶中一些激光雷达的作用其实就是生成点云数据,接下来介绍一下点云数据的含义和基础的使用方法。虽然特斯拉是坚定的纯视觉自动驾驶路线的支持者,但其实更多的无人驾驶公司同时还会使用激光雷达LiDAR。经常见到无人驾驶的车顶会有一个旋转的圆柱体,其实就是机械式激光雷达,通过旋转镜面将激光反射到不同角度,得到360度的数据:转存失败重新上传取消雷达有很多种,激光雷达只是其实

2021-07-03 16:21:14 1245

原创 别以为if slse很简单——决策树

熵与Gini指数熵,表示信息量的期望,含义是混乱程度,也是对随机变量编码所需的最小比特数。请参考之前的文章https://mp.csdn.net/editor/html/107641395基尼不纯度,它表示是分错的概率的期望。Gini不纯度其实可以看作是熵的近似值,形式一样没有取对数更容易计算,二分类时,都是概率取0.5时达到最大值。Gini不纯度是一种不等性度量,取值[0,1],当数据完全相等时取0.https://zhuanlan.zhihu.com/p/76667156https:/.

2021-03-12 17:34:27 397

原创 XGBoost的安装与介绍

Reference:1.字节跳动架构师https://zhuanlan.zhihu.com/p/303398072.浅谈https://www.jianshu.com/p/d55f7aaac4a7

2021-02-26 22:17:28 940

原创 没见过女人的小和尚——SVDD

是的,即便是出生在山上的小和尚,从来没有下过山,没有见过女人,但是一旦有女施主上山,小和尚依然可以轻松地区分出眼前的人是如此不同。传统的SVM是寻找一个超平面,而SVDD寻找的超平面更进一步,可以认为它是闭合的超平面。优化目标是曲面面积最小(即半径最小),约束条件是要使得尽可能多的样本被包含在曲面之中,至于到底需要包含多少,那就要涉及到松弛变量。每个样本都对应一个自己的松弛变量epslon,即对于不同样本的容忍程度可以是不同的,容忍意味着样本可以在一定程度上脱离“包围圈”。最终的优化目标就是R平方的

2021-02-22 20:19:57 1193 2

原创 深度学习中的信息论——交叉熵

信息量,可以说就是在将信息量化。首先信息的相对多少是有切实体会的,有的人一句话能包含很多信息,有的人说了等于没说。我们还可以直观地感觉到信息的多少和概率是有关的,概率大的信息也相对低一些。为了量化信息,一个做法就是找到一个单位,比如说抛硬币就是一个基本单位,或者说我们使用01编码。先看等概率的情况,种类数越多,那么需要编码的长度就越大,很显然是log的指数关系。因为是等概,所以概率和种类数目就是倒数的关系。那么,不等概的情况呢,其实我们也可以把不等概转换成等概,怎么转换呢,认为要发生的事件A整体是一个类

2021-01-21 20:49:25 824 1

原创 softmax-sigmoid辨析

指数分布族https://www.zhihu.com/question/29435973

2021-01-20 15:49:53 680

原创 SVM原理与实战

opencv的安装路径,cpp-tutorial_code-ml中就有示例SVM是监督学习,所以要有训练数据与对应的标签。SVM参数svm_type=C_SVC由于opencv中的svm分类算法是根据libsvm改写而来的,libsvm是台湾一学者编写的matlab版本的svm算法,所以参数的设定的也大致相同。svm类型除了C_SVC之外,还有NU_SVC,ONE_CLASS,EP...

2021-01-18 20:35:13 497

原创 DL也懂纹理吗——图像的纹理特征

工作中遇到一个问题:对于同一场景,训练好的DL模型能把大部分样本分类准确,而对于少量负样本,DL会错分到另外一个对立的类中。错分的样本可以认为是难分的样本,但是我们还想知道这两种样本到底是哪里的差异导致DL做出了两种截然不同的判断?回答好这个问题就可以进一步解释DL在分类的过程中到底学习了并依赖了图像的哪些特征。思路是先将这两种样本搜集起来,标签分别为right(分类正确)和wrong(分类出错)。首先可以从直观感受出发,看二者是否有什么明显不同;为了量化这种不同,我们需要从图像中提取一些特征。图像的特

2021-01-13 20:31:04 287 1

原创 JBU联合双边上采样

很多图像处理算法,如立体视觉中的深度估计,图像上色,高动态范围HDR中的tone mapping,图像分割,都有一个共性的问题:寻找一个全局的解,这个解是指一个分段的piecewise平滑含糊,描述了感兴趣的值(可以是深度,色度,曝光值,标签等)。另一方面,数字图像越来越大,从one quarter million到multi-Megapixel到Gigapixel,随着图像尺寸的变大,图像处理的耗时和占用空间也线性增长。一个处理方法就是对原始图像先进行下采样的预处理再进行图像处理,但这也带来一个问题,

2020-09-23 14:55:47 2316 1

原创 CV中的经典网络模型——AlexNet和VGG

目标检测目标检测,不仅要识别目标是什么(分类),还要知道目标的具体位置(可以当作回归来做)。RCNNSelective Search 算法获得候选框,Alexnet提取特征,SVM对每个候选框区域打分。对于重叠的区域,通过计算IoU和非极大值抑制,剔除重叠的区域。imagenet到VOC的迁移学习,VOC只有21个类,其中一类是背景。YOLOyou only look once,属于one stage检测,因为不需要提前使用其他的算法获得候选区域。虽然不是显式地找候选框,隐式的也是少不.

2020-08-25 16:10:36 1955

原创 dataframe常用操作总结

使用pandas读取csv文件iloc查看并且修改指定位置的数值但是不会改变原始的csv文件,重新读取,打印出来还是之前的数据可以先把之前的删除,再使用to_csv写入用来的路径保存时默认连同行列名也保存下来,可以使用header=False,index=False去除。如果连同行列名字保存下来,结果就是保存的csv文件会多出行列数。这时候再使用read_csv读取,并且heade...

2020-08-24 14:06:59 1198

原创 即插即用+任意blur的超分辨率重建——DPSR

https://arxiv.org/pdf/1903.12529.pdf

2020-07-28 17:05:01 1138

原创 图像分割入门——FCN与U-Net

U-Net解决的是生物医学图像的分割问题。分割问题其实也是分类的一种,只不过是像素级别的分类。为了在同一图像中获得多维的概率,U-Net网络结构使用了全卷积的结构,网络中没有全连接层。对训练图像使用弹性形变进行数据增强。压缩路径中,每次池化之后会进行两次卷积。需要注意的是卷积后的通道数(滤波器个数)是池化之前的2倍。而在压缩路径中则相反,池化变为上采样,通道数变为减半的关系。压缩路径中...

2020-03-01 18:05:23 511

原创 DL中常用的numpy

读txt文件按行读取有三种方式,注意readlines和readline的区别。open是python自带打开方式,如果打不开,可以使用encoding="UTF-8"指定解码方案。读取得到一行之后,行首行尾可能存在一些不需要的字符,就可以使用str.strip()去除,括号中是预期要去除的字符串。比如多行txt文件中会有换行符。strip一般与split搭配使用。split也可以指定...

2020-02-23 21:47:20 259

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除