自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kevin_zhao_zl的博客

我见青山多妩媚,料青山,见我应如是。

  • 博客(188)
  • 资源 (4)
  • 收藏
  • 关注

原创 语义分割模型架构演进与相关论文阅读

本文总结分析了主流语义分割模型架构演进过程,涉及FCN、DeepLab系列、RefineNet、PSPNet、BiSeNet、FastFCN、ConvCRFs、DUpsampling、DFANet、DANet、FickleNet、LedNet、ACNet等在内的20多个模型,本来是2019年一次组会的分享,这里重新总结,就当复习一下了。

2020-06-24 09:22:52 676

原创 论文阅读-多任务(2021)-YOLOP:用于自动驾驶目标检测与语义分割的实时多任务模型

全景驾驶场景感知网络YOLOP包括一个共享的编码器和三个特定的解码器处理不同任务,解码器之间没有复杂的共享机制,保证网络的端到端高效训练。

2022-04-24 10:54:48 1566 1

原创 论文阅读-多任务(2020)-KL4MTL:用于多任务学习的知识蒸馏方法

多任务学习的目标是使得单个模型能够在多个任务上取得较好的结果,这样能够降低计算代价。该种模型的学习过程需要同时优化多种任务的损失,这些任务有着不同的学习难度、不同的维度以及不同的特征,对应着不同的损失函数,这很容易导致各个任务之间的学习程度不均衡。为此论文提出了一种用于多任务的蒸馏方法,首先为每个任务学习一个专用模型,然后学习一个多任务的模型用于最小化每个特定任务模型的损失并为单个模型生成相同特征。而专用模型会生成各自的特征,因此论文引入了一个针对单个任务的特征适配器来将多任务模型的特征映射到单一任务模型特

2022-04-22 09:52:07 1089

原创 论文阅读-主干网络(2022)-ConvNext:下一代卷积网络

论文重新对传统卷积网络的设计空间以及其他局限进行测试,逐步将ViTs中的一些Tricks应用到标注的ResNet中,发现了一些能够提升网络性能的关键因素,最终输出的网络命名为ConvNext

2022-04-20 09:39:39 1889

原创 论文阅读-语义分割(2021)-BiSeNetV3:重新思考用于实时语义分割的BiSeNet模型

主干网络为STDCNet,Stage3、4、5输出的特征图下采样率分别为8、16、32,然后对大感受野的特征图应用全局平均池化,并应用ARM模块将两个不同阶段的特征图融合后,再与来自Stage3的特征图进行融合,输出8x下采样的特征图,最终分割头使用3×3CBR模块、1×1卷积和一个8x上采样来获得最终分割结果。

2022-04-18 11:30:56 1693

原创 论文阅读-目标检测(2019)-CenterNet:目标检测转化为关键点检测及其属性回归

CenterNet将目标检测问题转换为一个标准的关键点估计问题,首先将图像喂给一个全卷积网络产生热点图,图上的峰值点对应目标的中心,每个峰值点附近的图像特征来预测目标的宽高,模型训练的方法使用的是标准的密集任务有监督学习,推断则是完全端到端没有nms后处理的方法。

2022-04-14 15:27:44 698

原创 论文阅读-语义分割(2021)-DDRNet:用于实时道路场景精准分割的深度冗余分辨率网络

DDRNet用于道路场景的实时分割模型,模型基本流程如下图所示,网络经过一个主干模块后分为两个具有不同分辨率的平行分支,一个分支保持较高的分辨率另一个分支则通过多阶段下采样操作获得丰富的语义信息,两个分支的信息融合则通过双向桥接模块完成,模型最后还添加了一个DAPPM模块增加感受野以提取更丰富的语义信息。

2022-04-11 10:16:01 1364

原创 【一天一个C++小知识】016:c++11中的lambda表达式

1. lambda的声明方式  C++11的新特性,允许程序员再函数内部创建一个匿名函数,对于一些小型的功能模块可以使用lambda表达式实现,声明方式如下:auto fadd=[](int a,int b){ return a+b;}  fadd就是一个匿名函数,后面是它的实现,auto是自动类型,[]表示开始定义lambda表达式,可以带参数,()里面是函数的参数,{}里是函数体,也可以现视指明返回值:auto fadd=[](int a,int b)->int{ return

2021-07-19 21:57:44 136 2

原创 ML/DL-复习笔记【十】- 分组卷积和深度可分离卷积的区别

> 本节为ML/DL-复习笔记【十】- 分组卷积和深度可分离卷积的区别,主要内容包括:分组卷积与深度可分离卷积的参数量分析。

2021-07-19 21:56:33 785

原创 (CVPR2020 Oral)用于实时实例分割的Deep Snake方法

CVPR 2020 Oral Paper,用于实时实例分割的DeepSnake方法,论文采用一组连续有序的点组成物体轮廓,使得参数量大大降低更接近与目标检测中bounding box的参数量,也适用于文字与细胞的分割。该方法的基本思路是用深度学习方法改进传统snake方法【"Kass, Michael, Andrew Witkin, and Demetri Terzopoulos. Snakes: Active contour models.In IJCV, 1988."】的优化过程,最终在多个数据集上

2021-07-19 21:55:34 439 1

原创 ML/DL-复习笔记【九】- 神经网络中各层的计算量与参数量

本节为ML/DL-复习笔记【九】- 神经网络中各层的计算量与参数量,主要内容包括:标准卷积、空洞卷积、转置卷积、深度可分离卷积以及全连接层的计算量、参数量与输出特征图尺寸计算。

2021-05-11 07:05:14 877 2

原创 【一天一个C++小知识】015:c++11线程创建的三种方法

1.用一个初始函数创建一个线程  注意c++在运行一个可执行程序的时候(创建了一个进程),会自动的创建一个主线程,这个主线程和进程同生共死,主线程结束,进程也就结束了。#include "pch.h"#include <iostream>#include<thread>void print1(){ cout << "print1_1线程执行" << endl; cout << "print1_2线程执行" <&lt

2021-05-11 07:04:54 281 1

原创 【一天一个C++小知识】014:C++中string与char*的区别

1.定义:  string是STL当中的一个容器,对其进行了封装,所以操作起来非常方便。  char *是一个指针,可以指向一个字符串数组,至于这个数组可以在栈上分配,也可以在堆上分配,堆得话需要手动释放了。2.区别  string的内存管理是由系统处理,除非系统内存池用完,不然不会出现这种内存问题。  char *的内存管理由用户自己处理,很容易出现内存不足的问题。  char *s=“string"的内容是不可以改的;char s[10]=“string"的内容是可以改的。  当我们定义了

2021-05-08 20:03:15 169

原创 ML/DL-复习笔记【八】- 信息熵与相对熵(KL散度)

本节为ML/DL-复习笔记【八】信息熵与相对熵(KL散度)。

2021-05-08 20:02:55 263 3

原创 ML/DL-复习笔记【七】- 偏差和方差

本节为深度学习花书-复习笔记【五】- 偏差和方差,主要内容包括:。https://blog.csdn.net/kevin_zhao_zl/article/details/105728004欢迎扫描二维码关注微信公众号 深度学习与数学   [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]...

2021-05-07 15:46:59 136

原创 【一天一个C++小知识】012.C++11常用新特性汇总

1. 关键字及新语法1.1 auto关键字  auto并没有让C++成为弱类型语言,也没有弱化变量什么,只是使用auto的时候,编译器根据上下文情况,确定auto变量的真正类型。  auto在C++14中可以作为函数的返回值,因此auto AddTest(int a, int b)的定义是没问题的。  auto作为函数返回值时,只能用于定义函数,不能用于声明函数(编译无法通过)。但如果把实现写在头文件中,可以编译通过,因为编译器可以根据函数实现的返回值确定auto的真实类型。如果读者用过inline

2021-05-07 15:46:22 79

原创 【一天一个C++小知识】013.std:map-不存在的key查找其value

1、在map中,由key查找value时,首先要判断map中是否包含key。2、如果不检查,直接返回map[key],可能会出现意想不到的行为。如果map包含key,没有问题,如果map不包含key,使用下标有一个危险的副作用,会在map中插入一个key的元素,value取默认值,返回value。也就是说,map[key]不可能返回null。3、map提供了两种方式,查看是否包含key,m.count(key),m.find(key)。4、m.count(key):由于map不包含重复的key,因此m

2021-04-27 22:37:59 4042

原创 ML/DL-复习笔记【六】- 理解反向传播算法

后向传播的推导和C++与pytorch实现。

2021-04-27 22:37:42 141

原创 【一天一个C++小知识】011.C++编译的流程

1. 过程1.1 预处理  也称为预编译,做些文本替换工作。预处理又称为预编译,是做些代码文本替换工作。编译器执行预处理指令(以#开头,例如#include),这个过程会得到不包含#指令的.i文件。这个过程会拷贝#include 包含的文件代码,进行#define 宏定义的替换 ,处理条件编译指令 (#ifndef #ifdef #endif)等,#pragma once不会去掉。  命令:gcc -E -I./inc test -o test.i  orcpp test.c -I./inc

2021-04-26 20:10:41 131

原创 ML/DL-复习笔记【五】- 基于梯度的优化方法

本节为深度学习花书-复习笔记【二】- 基于梯度的优化方法,主要内容包括:梯度下降、雅可比矩阵、海森矩阵、牛顿法、L1/L2正则化。

2021-04-26 20:10:28 188

原创 【一天一个C++小知识】010.malloc/free和new/delete

【一天一个C++小知识】010.malloc/free和new/delete

2021-04-25 22:31:23 119

原创 ML/DL-复习笔记【四】- DeepLab系列模型总结

本节为ML/DL-复习笔记【四】- DeepLab系列模型介绍,主要内容包括:DeepLabV1 ~ DeepLabV3+模型架构解读。

2021-04-25 22:30:43 747

原创 ML/DL-复习笔记【三】- 算法的评价指标

本节为ML/DL-复习笔记【三】- 算法的评价指标,主要内容包括:错误率、精度、查全率、查准率、F-Score、R-R曲线、ROC曲线、AUC 、(m)AP、(m)IoU、(m)PA、fwIoU及其python实现。

2021-04-24 16:45:59 485

原创 ML/DL-复习笔记【二】- L1正则化和L2正则化

本节为ML/DL-复习笔记【二】L1正则化和L2正则化,主要内容包括:L1正则化和L2正则化的定义、作用、性质以及作用机制。

2021-04-23 21:54:02 229

原创 ML/DL-复习笔记【一】- 数学基础(线性代数、概率论、数值分析)

本节为深度学习花书-复习笔记【一】数学基础(线性代数、概率论、数值分析),主要内容包括:矩阵特征向量的求解、主成分分析、奇异值分解、线性方程组的解法、Moore_Penrose伪逆、概率计算公式、随机变量的常见分布类型。

2021-04-23 21:53:35 431

原创 【一天一个C++小知识】009.C++面向对象

1. 结构化 v.s. 面向对象  结构化程序设计方法是一种模块化程序设计方法,解决问题时以功能为中心,一定的功能模块虽然也作用与特定的数据,但它们没有被封装在一起。  面向对象程序设计方法则是以对象为中心来解决问题,属于同种对象的属性和服务被抽象出来封装到一起。2. 面向对象方法的特定2.1. 数据抽象  类是一组相似对象的抽象描述,抽取了这些对象的共性组成一个共同的概念,而ADT是一组相似类的抽象,一个类是ADT的具体实现。2.2 封装  指软件的组成部分(模块、子程序、方法等)应互相独

2021-04-23 21:51:53 88

原创 【一天一个C++小知识】008.内联函数

1.宏中定义函数存在问题,它并不是真正的函数#define BAND(x) (((x) > 5 && *x) < 10) ? (x) : 0)int main(){ for (int i = 4; i < 11; i++){ int a = i; cout << "a = " << a << endl << '\t'; cout << "BAND(++a) = " << BAND(+

2021-04-23 21:51:34 82

原创 SINet: 使用空间压缩模块和信息遮挡编码器的极轻量人像分割模型

  人像分割任务作为许多任务的一个中间阶段,对实时性要求极高,并且当前缺乏大规模的人像分割数据集,为此论文提出SiNet模型和用于进行数据扩充的简单方法。SINet中的空间压缩模块使用多尺度感受也来获取图像中不同尺寸的一致性信息,信息遮挡编码器则在不破坏全局一致性的前提下回复局部空间信息。该模型能够实现精度较高速度极快的人像分割,并且这种极轻量化的分割网络也在其他任务中给了我们应用的启发。论文地址工程地址  SINet包含空间压缩模块和信息遮挡编码器,前者通过使用多种尺寸的感受野信息来保持空间一致.

2021-04-22 14:23:15 456

原创 ExtremeC3Net: 使用高级C3模块的极轻量人像分割模型

  人像分割任务作为许多任务的一个中间阶段,对实时性要求极高,并且当前缺乏大规模的人像分割数据集,为此论文提出ExtremeC3Net模型和用于进行数据扩充的简单方法。ExtremeC3Net基于改进的C3模块,能够实现精度较高速度极快的人像分割,并且这种极轻量化的分割网络也在其他任务中给了我们应用的启发。论文地址工程地址1. 改进的C3模块  之前的文章提到过C3模块,即Concentrated-Comprehensive Convolution Module,其指出了轻量化语义分割网络中常用.

2021-01-16 13:31:25 1293 1

原创 C3模块-空洞可分离卷积存在的问题及轻量化语义分割模型架构技巧

C3即"Concentrated-Comprehensive Convolution",文章指出轻量化语义分割模型多采用空洞可分离卷积,但是文章指出这种方式存在的信息损失,。论文地址工程地址  构建轻量化语义分割模型的一种方式是使用深度空洞可分离卷积,但是空洞卷积和深度可分离卷积两种方式的简单结合,形成了一个过于简单的操作,造成了特征图的信息损失导致模型表现衰退(深度可分离卷积对标准卷积的不恰当近似;空洞卷积造成的相邻像素信息损失即网格效应),为此提出了C3模块,分为两个阶段,第一个阶段使用两个深.

2021-01-15 16:32:16 3172 2

原创 StyleGAN v2:对StyleGAN v1的思考与改进

StyleGAN v2在v1的基础上进行了改进,着重处理的伪影问题,被CVPR2020收录,能够生成质量更好的图像数据。其在style mixing策略,progressive growing生成方式、插值方式等方面对v1进行了改进。StyleGAN v2论文地址工程地址  StyleGAN v1 一步一步地生成人工的图像,从非常低的分辨率4×44×44×4开始,一直到高分辨率1024×10241024×10241024×1024。通过分别地修改网络中每个级别的输入,它可以控制在该级别中所表示的视.

2021-01-14 11:20:04 1984

原创 StyleGAN v1 :用于生成高质量图像数据的生成对抗方法

StyleGAN是2018年的一篇文章,目前已经被TPAMI收录,该方法能够生成高质量的图像数据并且做到了高层特征可控,v1的主要工作在于设计了一个style-based生成器,其中包括了styles mixing的策略,图像随机特征的生成方式以及自适应的实例正则化的设计。StyleGAN v1论文地址工程地址  StyleGan v1的主要工作,是对将有效的信息latent code表示直接灌给输入层的传统生成器的重新设计,如下图所示:  理解style-based生成器的设计需要从以下几个.

2021-01-09 15:18:42 1103

原创 CVPR 2020-FaceShifter:能够应对脸部遮挡的高保真换脸方法

Face Shifter是CVPR202的一篇文章,是一个两阶段的,可用于任意两张人脸图像换脸的模型,由AEI-Net和HEAR-Net两部分组成,经过合适的训练,AEI-Net本身就已经可以得到不错的换脸效果,在此基础上,可以再训练一个HEAR-Net,着重解决目标图像脸部遮挡问题,并进一步对换脸效果进行优化。模型推理速度不俗,并且能够生成质量较高的换脸结果。论文地址工程地址1工程地址21. AEI-Net:Adaptive Embedding Integration Network  AE.

2021-01-08 15:50:23 1212

原创 ICCV2019-FSGAN:实现任意两张人脸图片换脸的GAN方法

Face Swap Gan是ICCV19的一篇文章,模型看起来比较复杂,总体结构是三个生成器和一个语义分割网络组成,能够实现任意两张人脸图片较好的换脸效果,在视频人脸重建中效果也比较好。论文地址工程地址  将一个换脸任务简单表述为给定两张任意的图片A和B,将图片A中的人脸换到图片B中的人脸上,方法整体的大致流程如下:输入图片A和B,首先调用第三方模型得到人脸B的欧拉角,然后利用生成模型Gr根据这个角度和人脸A,生成姿态角度与人脸B一致但保存A脸特征的人脸A’,接着利用分割模型S得到人脸B的脸部区域.

2021-01-04 16:17:41 4033

原创 知识点汇总【一】操作系统三十八问

知识点汇总【一】操作系统三十八问

2021-01-02 14:04:35 1916

转载 np.c_和np.r_

np.r_是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等。np.c_是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等。a = np.array([[1, 2, 3],[7,8,9]]) b=np.array([[4,5,6],[1,2,3]]) aOut[4]: array([[1, 2, 3], [7, 8, 9]]) bOut[5]: array([[4, 5, 6], [1, 2, 3]]) c=np.c_[a,b] cOut

2020-07-16 11:33:54 277

原创 【一天一个C++小知识】007.C++中的struct、enum和union以及内存对齐与大小端问题

1. struct、enum、union三个关键字在C中定义比较麻烦,所以一般和typedef一块出现,而C++中则不用2. struct和union中可以定义函数,但是:2.1 struct和class用法完全相同,class有的功能它都用,唯一的区别在于当没有指定成员的访问权限时,struct中默认为public而class默认为private2.2 union也支持三种访问权限的设置,但是:2.2.1 union不支持继承2.2.2 union不能定义虚函数2.2.3 union和stru

2020-07-07 15:12:02 316

原创 概率论与数理统计【二】随机事件与概率(2) - 常用求概率公式与例题两道

本节为概率论与数理统计复习笔记的第二节,随机事件与概率(2),主要包括:加法公式、减法公式、条件概率公式、乘法公式、全概率公式、贝叶斯公式以及两道例题。

2020-06-27 13:03:13 3269

原创 【一天一个C++小知识】006. 浮点数在计算机内部的表示与转换

编写程序时,两个浮点数不能直接比较大小(无论单精度float双精度double),这是因为浮点数在计算机内部不能精确的表示。首先明确定点数和浮点数:定点数就是小数点位置固定不动的数,在计算机中,我们假设小数点在最前面,例如,001表示二进制小数0.001;10表示二进制小数0.10。这样任何小于1且不小于0的小数都可以用定点数来表示。浮点数就是小数点位置不固定的数,这样就需要一定的方法来表示浮点数。再看一下十进制小数和二进制小数的互相转换:十进制小数转二进制小数:小数部分乘以2,如果如果大于1,则记

2020-06-27 08:38:37 606

原创 opencv图像分析与处理(16)- 图像压缩中的编码方法:LZW编码

本节为opencv数字图像处理(15):图像压缩的第二小节,图像压缩中的编码方法:LZW编码,主要包括:LZW编解码实例与实现代码。1. LZW编码  这种编码目的在于消除图像中的空间冗余,是一种无误差的压缩方法,其将定长码字分配给边长新源符号序列。考虑一个大小为4×44\times 44×4的8比特垂直边缘图像:  假设有一个大小为512字带有0-255灰度值一一映射的字典,位置256到511开始时未使用。图像按从左到右、从上到下处理像素的方法来编码,十六个像素的编码过程如下表所示:  也.

2020-06-27 08:37:56 1842

计算理论基础

计算理论基础

2017-08-03

精通正则表达式 中文版

python 正则表达式

2017-08-03

人工智能 一种现代的方法

对人工智能各个方面的一个全面又不失深入的了解

2017-07-26

空空如也

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

TA关注的人

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