图像通道

Task05:卷积神经网络基础;leNet;卷积神经网络进阶 学习笔记

江枫思渺然 提交于 2020-02-17 11:36:56
卷积神经网络基础 本节我们介绍卷积神经网络的基础概念,主要是卷积层和池化层,并解释填充、步幅、输入通道和输出通道的含义。 二维卷积层 本节介绍的是最常见的二维卷积层,常用于处理图像数据。 二维互相关运算 二维互相关(cross-correlation)运算的输入是一个二维输入数组和一个二维核(kernel)数组,输出也是一个二维数组,其中核数组通常称为卷积核或过滤器(filter)。卷积核的尺寸通常小于输入数组,卷积核在输入数组上滑动,在每个位置上,卷积核与该位置处的输入子数组按元素相乘并求和,得到输出数组中相应位置的元素。图1展示了一个互相关运算的例子,阴影部分分别是输入的第一个计算区域、核数组以及对应的输出。 下面我们用corr2d函数实现二维互相关运算,它接受输入数组X与核数组K,并输出数组Y。 import torch import torch.nn as nn def corr2d(X, K): H, W = X.shape h, w = K.shape Y = torch.zeros(H - h + 1, W - w + 1) for i in range(Y.shape[0]): for j in range(Y.shape[1]): Y[i, j] = (X[i: i + h, j: j + w] * K).sum() return Y 构造上图中的输入数组X

卷积神经网络(一)——基础知识

為{幸葍}努か 提交于 2020-02-15 06:04:38
(一)卷积神经网络基础知识 (1) 卷积神经网络基本结构 卷积神经网络(Convolutional Neural Networks,CNN)是一类特殊的人工神经网络,其最主要的特点就是卷积运算。卷积其实就是一种效果的叠加。CNN 目前在图像相关任务上有很好的效果。如图像分类、语音分割、图像检索、目标检测等计算机视觉问题。 卷积神经网络是一种层次模型,其输入是原始数据,如RGB图像、音频等数据,通过卷积操作、池化操作、非线性激活函数等一系列操作的层层堆叠。目的是将高层语义信息逐层抽象出来,这一过程就是前向传播的过程。 卷积神经网络的组成部分 CNN层次结构 作用 输入层 网络原始输入,可以是原始或预处理后的像素矩阵 卷积层 参数共享、局部连接,利用平移不变性从全局特征图提取局部特征 激活层 将卷积层的输出结果进行非线性映射 池化层 进一步对特征进行筛选,可有效的减少网络所需的参数量 全连接层 将多维特征展平为2维特征,通常低维度特征对应任务的学习目标 1、输入层 输入的图片一般包含RGB三个通道,是一个由长宽分别为H和W组成的3维像素值矩阵H W 3(图片默认的是通道是H W C,在处理的时候一般要将通道转换为C H W ),卷积网络会将输入层的数据传递到一系列卷积、池化等曹操做进行特征提取和转化,最终由全连接层对特征进行汇总和结果输出。若指定输入层接收到的图像个数为N

基于python3.6的OpenCV读取并打印图片数据

冷暖自知 提交于 2020-01-31 03:11:29
** 在python中能够较为容易的显示出图片的宽、高、通道数、像素等。 ** 具体代码如下: import cv2 as cv def get_image_info ( image ) : print ( type ( image )) ###图像类型 print ( image.shape ) ###会读取图片的宽,高,通道数 print ( image.size ) ###图片的尺寸:宽*高*通道数 print ( image.dtype ) ###图像数据类型 src = cv.imread ( "F:/shiyan/1.png" ) cv.namedWindow ( "input image" ,cv.WINDOW_AUTOSIZE ) cv.imshow ( "input image" ,src ) get_image_info ( src ) cv.waitKey ( 0 ) cv.destroyAllWindows ( ) 来源: CSDN 作者: 薄凉的小子 链接: https://blog.csdn.net/m0_45161766/article/details/104114537

“暗通道”到底是个什么东西

亡梦爱人 提交于 2020-01-28 07:33:41
对于图像去雾领域的研究者来说,何凯明博士的“ 暗通道先验(DCP )”可谓是奉若圭臬,接触这个概念一年了,但一直没有深挖,一直都是“拿来主义”,看大家粗略地一概而过,今天一时兴起,想着小搞一波,咱们就稍微深入一点,看看这个神奇的“暗通道”到底是个什么东西。 先来一段经典的代码吧,何博士的基于暗通道先验的单幅图像去雾中的部分代码,本人做了详细的注释,应该是可以看懂的: clear all; I=imread('xxxx\dehazing.png'); %读取图片 I=double(I); %将读入图像I的uint8数据转换为double类型的数据 I=I./255; %将像素值转换到0~1之间 dark=darkfunction(I); subplot(1,2,1);imshow(I); subplot(1,2,2);imshow(dark); %展示雾图和对应的暗通道 function [dark] =darkfunction(I) R=I(:,:,1); %将I的第一层赋值给R,下面的G、B分别为I的第二、三层 G=I(:,:,2); %三个参数分别代表行、列和层 B=I(:,:,3); [m,n]=size(R); %size求取矩阵大小,返回其行列值,即m、n a=zeros(m,n); %zeros返回 m x n 大小的零矩阵 for i=1:m %i从1开始一直循环到m

暗通道理论详解及的Python实现

ⅰ亾dé卋堺 提交于 2020-01-26 10:49:00
本文参靠何凯明博士,暗通道理论论文及网上大量代码. 暗通道原理可参考博文: 白马负金羁: 链接:https://blog.csdn.net/baimafujinji/article/details/27206237 和蔼的zhxing:链接:https://www.jianshu.com/p/df9c963a392a 暗通道 所谓暗通道是一个基本假设,这个假设认为,在绝大多数的非天空的局部区域中,某一些像素总会有至少一个颜色通道具有很低的值。这个其实很容易理解,实际生活中造成这个假设的原因有很多,比如汽车,建筑物或者城市中的阴影,或者说色彩鲜艳的物体或表面(比如绿色的树叶,各种鲜艳的花,或者蓝色绿色的睡眠),颜色较暗的物体或者表面,这些景物的暗通道总是变现为比较暗的状态。 所以暗通道是什么呢?其实比较简单,作者认为暗通道是: 暗通道先验指出: 暗通道实际上是在rgb三个通道中取最小值组成灰度图,然后再进行一个最小值滤波得到的。如下程序演示效果: from PIL import Image import numpy as np import matplotlib . pyplot as plt from skimage . morphology import disk #生成扁平的盘状结构元素,其主要参数是生成圆盘的半径 import skimage . filters . rank

目标检测中基于角点检测:CornerNet Detecting Objects as Paired Keypoints

孤者浪人 提交于 2020-01-24 23:57:46
原始内容来源于:https://blog.csdn.net/weixin_40414267/article/details/82379793 参考文献:https://arxiv.org/abs/1808.01244 pytorch代码实现:https://github.com/umich-vl/CornerNet 包括理解! CornerNet: Detecting Objects as Paired Keypoints 摘要 我们提出了一种新的目标检测方法,使用单个卷积神经网络将目标边界框检测为 一对关键点(即边界框的左上角和右下角) 。通过将目标检测为成对关键点,我们消除了现有的one stage检测器设计中对一组anchors的需要。除了上述新颖的构想,文章还引入了 corner pooling ,这是一种新型的池化层,可以帮助网络更好地定位边界框的角点。CornerNet在MS COCO上实现了42.1%的AP,优于所有现有的one stage检测器。 1 引言 基于卷积神经网络的对象检测器(ConvNets)[20,36,15]已经在各种具有挑战性的基准测试中取得了最新成果[24,8,9]。现有技术方法的一个 共同组成部分是anchor boxes [32,35],它们是包含各种尺寸和宽高比的矩形框,是用作检测的候选框。anchor boxes广泛用于one

python-opencv-图像颜色反转

冷暖自知 提交于 2020-01-21 08:16:31
图像是由一个一个的像素组成的,每个像素又是由一个个不同的颜色值(OpenCV中为bgr模式)组成,其中每个颜色通道的值均为0-255。 所谓图像的颜色反转,就是将每个颜色通道值用255减去原通道值,得到一个新的颜色通道值,再重新组合成新的bgr颜色通道产生新像素而形成新的图像。举个极端的例子,比如一个纯白色像素点的值为(255,255,255),它经过颜色反转变换后形成的新的像素点为(0,0,0),也就是变成了纯黑色像素点。 灰度图的图像颜色反转: import cv2 import numpy as np img = cv2.imread("3.jpg",0) #读取一张图片,灰度 height,width=img.shape dst=np.zeros((height,width,1),np.uint8) for i in range(height): for j in range(width): dst[i,j]=255-img[i,j] cv2.imshow('img',img) cv2.imshow('dst',dst) cv2.waitKey() #窗口等待任意键盘按键输入,0为一直等待,其他数字为毫秒数 效果图: 来源: https://www.cnblogs.com/liming19680104/p/12220566.html

OpenCV3之Mat类的类型type和深度depth

一个人想着一个人 提交于 2020-01-06 14:38:36
文章目录 一、Mat类的类型CV_8UC1 1.CV_8UC1 (1)格式 (2)意思 ①深度的位数 ②符号类型 ③`C` ④cn通道数 (3)深度类型depth() (4)常用的 (5)映射图像 2.CV_8U (1)用处1:只指定深度类型 (2)等同于CV_XXC1 一、Mat类的类型CV_8UC1 1.CV_8UC1 用处:指定深度和通道数 (1)格式 CV_<depth深度><符号类型>C<cn通道数> (2)意思 ①深度的位数 取值是 8 , 16 , 32 , 64 这个就是存储的二进制位数 ②符号类型 只有三个值: S , U , F S:signed int 有符号整形 U:unsigned int 无符号整形 F:float 单精度浮点型 ③ C 表示通道,写出来只是为了分割前后两个数字,以免混淆。 ④cn通道数 取值可以是 1 , 2 , 3 , 4 1 :单通道图像,即灰度图片 2 :2通道图像,傅里叶变化会用到 3 :3通道图像,即RGB彩色图像 4 :4通道图像,即带Alph通道的RGB图像。 PNG图像是一种典型的4通道图像。alpha通道可以赋值0到1,或者0到255,表示透明到不透明。 (3)深度类型depth() # define CV_8U 0 # define CV_8S 1 # define CV_16U 2 # define CV_16S

OpenCV学习笔记之三:图像基本操作

ぃ、小莉子 提交于 2020-01-01 05:01:52
首先,学习图像处理需要用到Python的两个库,在Pycharm的终端里安装以下两个库: 注意:安装特定版本的库时,在后面用==接要安装的版本号 pip install opencv-python==3.4.1.15 pip install opencv-contrib-python==3.4.1.15 计算机中一个像素点事从0-255表示亮度,255最亮表示白色,0表示黑色。RGB是三维数据矩阵表示一个图片的所有像素点组成。 图像-->500x500x3(3:RGB) 在每个颜色通道上都有1个500x500的矩阵。 一、 数据读取 - 图像 c v2.IMREAD_COLOR:彩色图像 img = cv2.imread(r'.\jay1.jpg') c v2.IMREAD_GRAYSCALE:灰度图像 img = cv2.imread('jay1.jpg',cv2.IMREAD_GRAYSCALE) #图像进行灰度处理,灰度图进行预处理操作 二、 数据读取-视频 cv2.VideoCapture可以捕获摄像头,用数字来控制不同的设备,例如0,1。 如果是视频文件,直接指定好路径即可。 #视频显示 vc = cv2.VideoCapture('test.mp4') #参数是要读取的视频 #检查是否打开正确 if vc.isOpened(): oepn, frame = vc

永兴的笔记-OpenCV基本操作

北战南征 提交于 2019-12-28 18:55:18
1、图像的读取: cv2.imread(filename,flags=None) filename : 文件夹的路径 flags : 读取模式 cv2.IMREAD_COLOR 加载三通道彩色图像,忽略透明度 cv2.IMREAD_GRAYSCALE 灰度模式加载图像 cv2.IMREAD_UNCHANGED 使用alpha通道加载图像,显示图像的透明度和半透明度(4通道) 阿尔法通道:是指一张图片的透明和半透明度。一个使用32位存储的图片,每8位表示红绿蓝,和阿尔法通道。在这种情况下,就不光可以表示透明还是不透明,阿尔法通道还可以表示256级的半透明度。 2、图像的显示: cv2.imshow(winname,mat) winname :图像显示的窗口名 mat :需要显示的图片的对象名 等待任意按键: cv2.waitKey(delay=None) delay : 延时的时间 当 dalay = 0 :表示 forever 永不退出 dalay 的单位为: 毫秒 ord(c ) c:字符 。 转换为 Unicode 值 ESC键的 ASCLL 值为 27 #图像等待 delay>0: 延时 单位为毫秒 delay<=0: 无限等待键盘输入 关闭所有窗口: cv2.destroyAllWindows() 关闭指定窗口: destroyWindows(wname) 3、图像的保存: