交通标志识别-语句笔记

np.unique()

该函数是去除数组中的重复数字,并进行排序之后输出。计算label个数时适用。

from colletions import Counter

求数组中每个数字出现了几次

from collections import Counter  
a = [1,4,2,3,2,3,4,2]  
 
b = Counter(a) #求数组中每个数字出现了几次
print(b)

输出
Counter({2: 3, 4: 2, 3: 2, 1: 1})
cv2.GaussianBlur()

Opencv高斯模糊

#(5, 5)表示高斯矩阵的长与宽都是5,标准差取0
blur=cv2.GaussianBlur(img,(5,5),0)
opencv 图片叠加

1.cv2.add(img1, img2)
使用cv2.add()将两个图像相加,可以使用numpy中的矩阵加法来实现。但是在opencv中加法是饱和操作,也就是有上限值,numpy会对结果取模。
2.cv2.addWeighted(img1, a, img2, b, c)
实际上也是加法,只不过是按比例混合起来,有不同的权重 ,给人一种混合的或者透明的感觉
公式如下
output = img1a + IMG2b + c

opencv 直方图

1.cv2.calcHist(image,channels,mask,histSize,ranges)
绘制直方图

2.cv2.equalizeHist(img)
均衡化图片的直方图

opencv 旋转图片

cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]])

src - 输入图像。
M - 变换矩阵。
dsize - 输出图像的大小。
flags - 插值方法的组合(int 类型!)
borderMode - 边界像素模式(int 类型!)
borderValue - (重点!)边界填充值; 默认情况下,它为0。

M通过**rot_mat = cv2.getRotationMatrix2D(center, rotate_angle, scale)**得到

opencv缩放图片

cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)

scr:原图
dsize:输出图像尺寸
fx:沿水平轴的比例因子
fy:沿垂直轴的比例因子
interpolation:插值方法

conv2d函数

进行输入张量与设定卷积核的卷积操作。

tf.nn.conv2d(
    input,
    filter,
    strides,
    padding,
    use_cudnn_on_gpu=True,
    data_format='NHWC',
    dilations=[1, 1, 1, 1],
    name=None
)

其中需要格外注意strides参数,这个参数有四个值[b,h,w,c]分别代表对batch的步长、对高度的步长、对宽度的步长、对通道的步长。

tf.nn.max_pool()
tf.nn.max_pool(value, ksize, strides, padding, name=None)

***ksize***规定池化窗口大小,四维向量,同strides,[b,h,w,c]

tf.nn.dropout()

Dropout就是在不同的训练过程中随机扔掉一部分神经元,防止或减轻过拟合。

tf.nn.dropout(
    x,
    keep_prob,
    noise_shape=None,
     seed=None,
    name=None
)

其中:
x:指输入,输入tensor
keep_prob: float类型,每个元素被保留下来的概率,设置神经元被选中的概率,在初始化时keep_prob是一个占位符, keep_prob = tf.placeholder(tf.float32) 。tensorflow在run时设置keep_prob具体的值,例如keep_prob: 0.5
noise_shape : 一个1维的int32张量,代表了随机产生“保留/丢弃”标志的shape
seed : 整形变量,随机数种子
name:指定该操作的名字

tf.one_hot()
tf.one_hot(indices, depth, on_value=None, off_value=None, axis=None, dtype=None, name=None)

indices表示输入的多个数值,通常是矩阵形式;depth表示输出的尺寸。
由于one-hot类型数据长度为depth位,其中只用一位数字表示原输入数据,这里的on_value就是这个数字,默认值为1,one-hot数据的其他位用off_value表示,默认值为0。

tf.one_hot()函数规定输入的元素indices从0开始,最大的元素值不能超过(depth - 1),因此能够表示depth个单位的输入。若输入的元素值超出范围,输出的编码均为 [0, 0 … 0, 0]。

indices = 0 对应的输出是[1, 0 … 0, 0], indices = 1 对应的输出是[0, 1 … 0, 0], 依次类推,最大可能值的输出是[0, 0 … 0, 1]。

tf.argmax(input,axis)

根据axis取值的不同返回每行或者每列最大值的索引。
axis=0:每行的最大值的索引
axis=1:每列~

equal(x, y, name=None)

逐个元素的判断两个array的一致与否,相同则在其位置返回True,x和y必须维度相同。
返回形式示例:
[[ True False True]
[False True False]]

tf.cast()
cast(x, dtype, name=None)

第一个参数 x: 待转换的数据(张量)
第二个参数 dtype: 目标数据类型
第三个参数 name: 可选参数,定义操作的名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值