20220811
图像数据增强:尺寸减小剪裁,水平翻转
中间和四个角分别裁剪,
水平翻转之后,再裁剪
rgb通道做协方差矩阵,减少受光照的影响的程度?
imagenet
20220714
20220621
opencv遇到错误error: (-215:Assertion failed) _src.empty() in function ‘cv::cvtColor‘的解决方案
https://blog.csdn.net/thy0000/article/details/122847280
perception loss:预测结果与vgg的某些中间层的特征图或者结果做loss来指导图片的生成
(ResUNet)作为基本的编码器-解码器结构。具体来说,我们构建了一个共享的编码器和多个解码器作为主体结构,每个编码器/解码器包含5个不同尺度的堆叠ResBlocks(每个尺度3个)来捕获多尺度特征。
Deep Residual U-Net
splitNet
https://blog.csdn.net/weixin_42096202/article/details/110623077
20220611
任何图形可以拆分成很多圆形的组合,复杂问题拆分成小问题的组合
要求不同层的对应,可以先求一小片处的对应,因为这里是纹理分辨率高,所以是从大到小的空间映射,一个像素点对应很多纹理的点,纹理的变化可以看成是导数的变化
对应水印的mask:就是把除水印之外的所有地方进行遮挡
平移和缩放
噪声对图片的影响
白色的地方有黑点,黑色的地方有白点
前景背景
低频滤波器:让低频分量通过
center是加偏置,scaler是乘系数,缩放
bias和gain(缩放):仿射变换
swim-transformer
tensor遍历
空洞卷积:kernel_h-1:h个点能中间容纳多少个空格,dilation-1:每个空格容纳多少个新的元素
理解张量的维度时候,可以先忽略无关的维度 比如 【1,4 ,2,5 】理解425的时候,可以先不管维度1,认为其不存在
两个input通道,8个卷积核,两个卷积核形成一个输出通道
分组为1和2之后,分成了两组 1个input,2个卷积核,总的计算量减少2倍
本质上,通道之间的相互关系,考虑的少了,通道融合并不充分
上下左右填充
第一第二代表了 height的上下,第三,四代表了width的左右,后面是对channel和batchsize维度
一个通道的时候,bias是一个标量值
两个输入通道,一个输出通道的时候,把每个通道的输出对应位置相加之后再输出
训练目的就是要使的kernel的参数和图像的值越来越接近,预测的时候,如果图片的某部分数据
和kernel值越相近,则表明找到
卷积的weight就是kernal
权重和baitchsize无关,因为是共享的
输出,输出通道数都是三的时候,有9个kenerl?kenerl和不同通道卷积的时候,所用的kenerl
里面的具体值是不相同的
特征图和kenerl是两个不同的东西
绿色是输出,小字是kenerl
第一张特征图就是原图
pad是对上下左右都进行处理
kenerl数量等于input_channelxoutput_channel 却是是每个通道对应不同的kenerl
kernel也可以叫做滤波器
transformer特点和使用场景
20220607
领接矩阵:两个向量相乘,得到每个位置相对其他位置的相关性,transformer
dropout的作用是希望实现集成学习的特点
并行计算:多个卷积核同时计算
长程:多层卷积
相对位置敏感:相对位置变化会影响效果
绝对位置不敏感:正,反,旋转后再卷积效果一样
seq2seq
对位置,顺序敏感 结果不一样
不是指对局部有效
decoder
没见过的句子长度也可以用已有的形式表示
transformer
除以8,64 = 512 保持计算量差不多?
1x1 pointwise_convolution和ffn差不多?但是1x1考虑了通道融合,ffn是embedding融合?
翻译任务的话,output输出的语言和input是不一样的
dk是方差,除以根号dk,使得方差等于1
不做改变的话,分布会很尖锐,使得分布更稳定,方差更小? ,好像确实是,使得分母变大了,进一步说不要使雅克比矩阵其中某个导数等于零了,目的是使模型学的更好
平移不变性:从左到右,从右到左做卷积,结果是一样的
只是空间混合(group):就是指的利用像素点的周围信息,也就是卷积核的作用,通道混合(1x1卷积):就是指不同通道间信息的融合,相加等
point_wise和x本身的区别是point_wise是各个通道对应位置的融合,而x是不考虑通道间的融合,只是x第一个通道
point_wise:中间为1,其他地方都是0
x变成3x3的卷积,每个卷积在每个通道上只考虑一次,剩下的通道为全0
权重矩阵 4x3xx3,图片的每个通道分别去和每个权重做滑动乘积
1x1和x本身扩展成3x3卷积
layer里面还可以包含很多的子层,子模块
权重输入通道为2,输出为4
https://blog.csdn.net/qq_26928055/article/details/117637017
表明输入通道由输入x决定,比如图像有rgb三通道,输出通道由卷积核个数决定
每个卷积核也有对应于每个输入值的通道数,
比如图像有rgb三个通道,卷积核对应也有三个通道
group操作
平移不变性:正面,反面,旋转之后再卷积结果不变?
point-wise 卷积:只把每个通道对应位置的点进行加权求和操作,周围的点不考虑,相当于nlp 通道融合
depth-wise :groups设置成大于1的数
conv2d:group大于1,深度可分离卷积
conv2d第一位是batchsize,第二位是通道
https://blog.csdn.net/cxx654/article/details/109681004
group
我们进行了全面的消融研究,以调查我们网络中每个阶段和每个模块的益处。
https://baike.baidu.com/item/%E8%92%99%E7%89%88/1146926?fr=aladdin
蒙版
图像数据增强
1x1的卷积的作用是把通道数转化为指定的数量
20220606
生成的分割掩码(白色:前景,黑色:背景)
patch(以像素为中心的区域)
,经过VGG16⽹络,得到特征map,然后将特征map上采样回去。再将预测结果和ground
truth每个像素⼀⼀对应分类,做像素级别分类。也就是说将分割问题变成分类问题,⽽分类问题正好是深度学习的强项。如果只将特
征map直接上采样或者反卷积,明显会丢失很多信息
每个子模块之后有一个通过max pool实现的下采样层。
分辨率通过上采样操作依次上升
下采样:分辨率逐渐降低,上采样反之
语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支。与分类任务不同,语义分割需要判断图像每个像素点的类别,进行精确分割。语义分割目前在自动驾驶、自动抠图等领域有着比较广泛的应用。
VGGNet使用了Multi-Scale的方法做数据增强,将原始图像缩放到不同尺寸S,然后再随机裁切224′224的图片,这样能增加很多数据量,对于防止模型过拟合有很不错的效果。实践中,作者令S在[256,512]这个区间内取值,使用Multi-Scale获得多个版本的数据,并将多个版本的数据合在一起进行训练。
padding:指的是对矩阵在外边填充n圈,padding=1即填充1圈,5X5大小的矩阵,填充一圈后变成7X7大小;
去水印程序,数据中出现空值,导致报错值需要在0和1之间
这个时候很有可能是输入的图片有问题,如不支持png
每个迭代损失函数的变化不符合预期,可能是损失函数用错了
20220525
Patch是图像块的大小,比如说原图10241024,随机从图中裁剪出256256大小的块,就是patch。
Masking out non-watermark area helps to make
RefineNet avoid considering irrelevant parts and focus on
refining those necessary.
alpha matte:α 在图像领域通常表示不透明度
U-net架构(例如最低分辨率为32x32像素)。每个蓝框对应一个多通道特征图。通道的数量在方框的顶部表示。x-y尺寸在盒子的左下边缘。白盒代表复制的特征映射。箭头表示不同的操作
神经网络简单清晰的画法
The network architecture is illustrated in Figure 1. It consists of a contracting path (left side) and an expansive path (right side). The contracting path follows the typical architecture of a convolutional network. It consists of the repeated application of two 3x3 convolutions (unpadded convolutions), each followed by a rectified linear unit (ReLU) and a 2x2 max pooling operation with stride 2 for downsampling. At each downsampling step we double the number of feature channels. Every step in the expansive path consists of an upsampling of the feature map followed by a 2x2 convolution ( up-convolution ) that halves the number of feature channels, a concatenation with the correspondingly cropped feature map from the contracting path, and two 3x3 convolutions, each followed by a ReLU. The cropping is necessary due to the loss of border pixels in every convolution. At the final layer a 1x1 convolution is used to map each 64-component feature vector to the desired number of classes. In total the network has 23 convolutional layers.
DecompNet takes advantage of the
skip connections of U-Net to combine the low-level features
and the high-level features together, allowing the sharing
of global information and edge details between the input
and the output.