![](https://img-blog.csdnimg.cn/ff08e913f6dd439885a7bcfe5199eacf.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
分割与抠图
文章平均质量分 90
图像之歌
酿久诗
彼南风兮舒以肆
展开
-
图片合成方法 - paste/seamlessclone/或运算/传统方法
文章目录1 总叙2. paste() 函数3. seamlessClone() 函数4. bitewise 方法5. 传统方法1 总叙 本文主要介绍将两张图片合成为一张图片的方法,包括:将一张图片粘贴至另一张图片的paste()函数、将指定目标与背景融合的seamlessClone()函数和通过位运算合成两张 mask 图的bitewise系列函数。2. paste() 函数 PIL库中的paste()函数的作用是将一张前景图片覆盖到另一张背景图片的指定位置上。函数的声明为def paste原创 2022-06-01 15:45:54 · 1378 阅读 · 0 评论 -
形态学操作之膨胀与腐蚀
文章目录1. 形态学2. 腐蚀3. 膨胀4. 开/闭运算5. 其它形态学操作1. 形态学 形态学操作是根据图像形状进行的简单操作。一般情况下对二值化图像进行操作。它需要输入两个操作,一个是原始图像,另一个被称为结构化元素或核,它是用来决定操作的性质的。两个基本的形态学操作是腐蚀和膨胀,它们的变体构成了开运算、闭运算和梯度等。简言之,形态学操作其实就是改变物体的形状,比如腐蚀就是"变瘦",膨胀就是"变胖",注意腐蚀和膨胀是针对图片中的白色部分。效果展示如下图:2. 腐蚀 腐蚀的效果是把图片"变瘦原创 2022-04-02 15:03:00 · 9346 阅读 · 0 评论 -
倒残差与线性瓶颈浅析 - MobileNetV2
文章目录1 背景简介2 MobileNetV2 要点2.1 Inverted Residuals(倒残差结构)2.2 Linear Bottlenecks(线性瓶颈结构)3 代码实现 - pytorch1 背景简介 在提出 MobileNetV1 后,谷歌团队又于次年(2018 年)提出 MobileNetV2 网络。相较于 MobileNetV1, MobileNetV2 准确率更高,模型更小。关于 MobileNetV1 可参考本人先前博客(深度可分离卷积解析 - MobileNetV1),此处给原创 2022-04-09 23:43:38 · 16934 阅读 · 1 评论 -
深度可分离卷积解析 - MobileNetV1
文章目录1 原理浅析1.1 背景简介1.2 标准卷积1.3 深度可分离卷积1.3.1 逐通道卷积1.3.2 逐点卷积2 参数量/计算量比较2.1 参数量比较2.2 计算量比较3 代码实现 - pytorch1 原理浅析1.1 背景简介 2017 年 4 月,谷歌提出 MobileNet V1 这一专注于移动设备的轻量级神经网络。MobileNet V1 运用深度可分离卷积(Depthwise separable convolution)构建轻量级网络,在准确率没有大幅下降的情况下,显著降低参数量和计原创 2022-04-07 11:45:12 · 2895 阅读 · 0 评论 -
Portrait Matting
抠图是提取精确的 alpha 遮罩的过程,抠图假设图像是前景和背景图像的合成,因此每个像素的强度是前景和背景的线性组合。Portrait Matting 网络 Portrait Matting 设计思路:训练一个由一系列编码器-解码器块组成的全卷积神经网络,从输入图像和初始粗糙 alpha 遮罩(可使用低分辨率人物分割器生成)中预测出高质量的 alpha 遮罩。Portrait Matting 模型先使用 MobileNetV3 主干网络和浅层解码器预测精细的低分辨率 alpha 遮罩,然后再原创 2022-02-08 15:31:02 · 3197 阅读 · 0 评论 -
ASPP - 空洞空间金字塔池化
文章目录1 空洞卷积1.1 空洞卷积的理解1.1.1 一维1.1.2 二维1.2 空洞卷积的优劣2. ASPP3. 代码1 空洞卷积1.1 空洞卷积的理解1.1.1 一维(a) 正常卷积:输入特征 Input feature,kernel = 3,stride = 1,pad = 1,输出特征 Output feature。(b) 空洞卷积:与图 (a) 不同之处在于 pad = 2,同时引入一个 rate = 2(表示卷积核中参数间间隔的超参)。 还可通过下图进一步理解普通卷积与空洞卷原创 2022-01-18 15:56:13 · 24464 阅读 · 5 评论 -
PPM 金字塔池化模块 - PSPNet
金字塔池化模块(Pyramid Pooling Module,PPM)在论文《Pyramid Scene Parsing Network》中被提出,用于聚合不同区域的上下文信息,提高网络获取全局信息的能力。在现有深度网络方法中,一个操作的感受野直接决定了这个操作可以获得多少上下文信息,所以提升感受野可以为网络引入更多的上下文信息。PPM 模块将四种不同金字塔尺度的特征进行融合。上图红色高亮部分对整个特征图进行全局池化,往下则先切分特征图形成不同的子区域,然后在每个子区域内部进行池化。不同层次的金字塔原创 2022-01-18 14:01:07 · 15115 阅读 · 8 评论 -
SPP - 空间金字塔池化
文章目录1 原理2 计算3 代码1 原理 何恺明2015年于《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》中提出。SPP 在论文中的主要工作是解决 CNN 要求输入图片尺寸固定的问题。(其它解决方案有用 Conv 层替代 FC 层) 如上图所示,输入层 input image 大小任意,通过 conv5 的卷积得到任意大小的输出特征映射 feature maps,而后送入 SPP转载 2022-01-18 11:17:16 · 1432 阅读 · 1 评论 -
Visual Studio 2019 + Libtorch +OpenCV
文章目录1 个人环境2 准备工作3 Visual Studio 2019 配置 Libtorch 和 OpenCV4 测试4.1 Libtorch 测试4.2 OpenCV 测试1 个人环境操作系统:Windows;Visual Studio 2019;Cuda版本:10.1(查询命令:nvcc -V);Libtorch:Release版本(官网下载);OpenCV(官网下载);2 准备工作Visual Studio 2019 的安装,请自行查看相关教程;CUDA 和 cuDN原创 2022-01-17 15:00:31 · 1132 阅读 · 0 评论 -
神经网络参数量的计算
文章目录1. 理论公式2. CNN 参数数量3. UNet 参数数量 参数量是指模型的所有带参数的层的权重参数总量。视觉类网络组件中带参数的层主要有:卷积层、BN 层、全连接层等。(注意:激活函数层(relu等)和 Maxpooling 层、Upsample 层是没有参数的,不需要学习,他们只是提供了一种非线性的变换)1. 理论公式卷积层:K2×Ci×Co+Co\rm K^{2} \times C_i \times C_o + C_oK2×Ci×Co+Co其中,K\rm KK 为卷积核原创 2021-10-26 20:00:44 · 7937 阅读 · 2 评论 -
ASPP 详解
文章目录1. ASPP Conv2. ASPP Pooling3. ASPP ASPP(Atrous Spatial Pyramid Pooling),空洞空间卷积池化金字塔。简单理解就是个至尊版池化层,其目的与普通的池化层一致,尽可能地去提取特征。ASPP 的结构如下:如图所示,ASPP 本质上由一个1×1的卷积(最左侧绿色) + 池化金字塔(中间三个蓝色) + ASPP Pooling(最右侧三层)组成。而池化金字塔各层的膨胀因子可自定义,从而实现自由的多尺度特征提取。1. ASPP Conv转载 2021-10-26 11:26:07 · 75212 阅读 · 10 评论 -
OpenCV 之视频文件的处理
文章目录1. 图像数据处理2. 视频数据处理2.1 调用摄像头2.1 读取相机画面2.2 读取视频文件 计算机视觉项目的常见处理流程是加载图像,然后进行某种处理,最后输出处理后的图像,结果可以保存到磁盘或者进行展示。因此,下文以将图像转换为灰度图像为例,对图像或视频的加载、处理和保存三个步骤进行介绍。1. 图像数据处理import cv2import argparseparser = argparse.ArgumentParser()parser.add_argument('--in_ima转载 2021-10-25 11:10:27 · 2209 阅读 · 0 评论 -
OpenCV 之图像处理基础
文章目录1. OpenCV主要模块2. OpenCV图像处理基础2.1 图像处理一般流程2.2 颜色通道顺序 OpenCV是一个跨平台的计算机视觉库,可以运行在 Linux、Windows 和 Mac OS 操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时也提供了 Python 接口,实现了图像处理和计算机视觉方面的很多通用算法。1. OpenCV主要模块2. OpenCV图像处理基础2.1 图像处理一般流程 图像处理的一般流程如下:读取图像:图像的获取来源转载 2021-10-22 10:52:50 · 700 阅读 · 0 评论 -
激活函数(Activation Function)小结
一、 什么是激活函数 百度百科:所谓激活函数,就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。 维基百科:在计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。这与神经网络中的线性感知机的行为类似。然而,只有非线性激活函数才允许这种网络仅使用...原创 2018-10-07 22:31:52 · 2169 阅读 · 0 评论 -
空洞卷积详解(Dilated/Atrous Convolution)
空洞卷积,广泛应用于语义分割与目标检测等任务中,语义分割中经典的 deeplab 系列对空洞卷积进行了深入的思考。空洞卷积可以任意扩大感受野,且不需要引入额外参数。 空洞卷积就是在标准的 convolution map 里注入空洞,以此来增加 reception field。相比标准的 convolution,dilated convolution 多了一个称为 dilation rate 的 hyper-parameter,指的是kernel 的间隔数量。标准卷积与空洞卷积在实现上基本相同,标准卷原创 2021-10-18 10:54:38 · 2387 阅读 · 0 评论 -
MIoU(均交并比)的计算
文章目录1 交并比(Intersection over Union,IoU)1.1 传统 IoU1.2 语义分割中的IoU1.3 语义分割中的MIoU2 IoU 的计算2.1 单个类别 IoU 的计算2.2 MIoU 的计算步骤 1:求混淆矩阵步骤 2:计算 MIoU1 交并比(Intersection over Union,IoU)1.1 传统 IoU公式:SA∪B=SA+SB−SA∩B\rm S_{A\cup B}=S_{A}+S_{B}-S_{A\cap B}SA∪B=SA+SB−SA∩原创 2021-10-10 16:29:15 · 33627 阅读 · 8 评论 -
DL 模型组件之残差模块
文章目录常规残差模块Bottleneck(瓶颈残差模块)参考阅读 ResNet 的论文Deep Residual Learning for Image Recognition,整理 ResNet 的结构。ResNet 在 PyTorch 的官方代码中共有 5 种不同深度的结构(各种网络的深度指的是“需要通过训练更新参数”的层数),深度分别为 18、34、50、101、152。ResNet 的关键模块主要是残差模块,如下图所示。常规残差模块ResNet 声名鹊起的一个重要原因是它提出了残差学习的思想原创 2021-10-09 17:55:25 · 6016 阅读 · 1 评论 -
图像数据处理
文章目录1. Transforms图片预处理2. DataLoader数据加载1. Transforms图片预处理torchvision 是 torch 中计算机视觉库,提供了3种类型的接口,包括 datasets、transforms、model,其中 transforms 封装了各种图像增强的方法。transforms 中所涉及的数据增强函数如下:ToPILImage:将 PIL Image 或 numpy.ndarray 转换成 tensor 再转成 PIL Image;Normali原创 2021-09-30 10:29:33 · 951 阅读 · 0 评论 -
转置卷积/反卷积(Transpose Convolution/Deconvolution)详解
转置卷积/反卷积(Transpose Convolution/Deconvolution)详解1、提出背景及其应用 一般情况下,图像在经过多层的卷积运算后,其输出特征图的尺寸将会减小,图片分辨率降低。而在某些特定的任务中,我们需要将图像恢复或一定程度上增大,以便于后续的使用。这个恢复/增大图像尺寸,实现图像由小分辨率到大分辨率映射的操作,叫做上采样(Upsample)。转置卷积便是常见的上采样方法之一。与传统的上采样方法(最近邻插值、双线性插值等)相比,转置卷积不会使用预先设定的插值方法。它具有可学习原创 2021-09-10 23:47:39 · 1026 阅读 · 0 评论