总结
仝笛
这个作者很懒,什么都没留下…
展开
-
np.newaxis
np.newaxis可以给数组加一维import numpy as npdata = np.array([range(9),range(9,18)])print(data) # shape (2,9)#[[ 0 1 2 3 4 5 6 7 8]# [ 9 10 11 12 13 14 15 16 17]]print(data[:,:,np.newaxis]) # ...原创 2019-08-22 15:02:00 · 130 阅读 · 0 评论 -
leecode 5. 最长回文子串
题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”中心拓展算法class Solution: def longestPalindrome(self, s: str) -> str: ...原创 2019-05-18 14:56:56 · 109 阅读 · 0 评论 -
Fast R-CNN总结
Fast R-CNN(1)输入测试图像;(2)利用selective search 算法在图像中从上到下提取2000 个左右的建议窗口(Region Proposal) ;(3)将 整张图片 输入CNN,进行特征提取;(4)把 建议窗口 映射 到CNN的 最后一层卷积feature map 上;(5)通过RoI pooling层使每个建议窗口 生成固定尺寸的feature map ;...转载 2019-05-27 17:28:35 · 260 阅读 · 0 评论 -
R-CNN总结
R-CNN论文发布时间是 2014 年在过去的十多年时间里,传统的机器视觉领域,通常采用特征描述子来应对目标识别任务,这些特征描述子最常见的就是 SIFT 和 HOG.利用候选区域与 CNN 结合做目标定位借鉴了 滑动窗口 思想,R-CNN 采用对区域进行识别的方案。具体是:1、给定一张输入图片,从图片中提取 2000 个类别独立的候选区域。2、对于每个区域利用 CNN 抽取一个固定...转载 2019-05-24 18:18:23 · 364 阅读 · 0 评论 -
牛客网 二叉搜索树的第k个结点
二叉搜索树的第k个结点题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = ...原创 2019-05-07 16:22:56 · 129 阅读 · 0 评论 -
牛客网 把数组排成最小的数
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。# -*- coding:utf-8 -*-#利用 sorted 设置比较方法lambdaclass Solution: def PrintMinNumber(self, numbers): ...原创 2019-05-07 15:46:03 · 124 阅读 · 0 评论 -
OpenCV使用BGR而非RGB格式
OpenCV使用BGR而非RGB格式某文中作者在一个大会上问了OpenCV的作者为什么使用BGR格式而不是使用RGB。那么这个历史原因是什么:早期开发者使用BGR作为颜色的空间的原因在于:那个时候的BGR格式在相机制造厂商和软件提供商之间比较受欢迎。例如。在Windows中,当使用 COLORREF 指定颜色值时,使用BGR格式0x00bbggrr。C++中:Opencv中cvScala...转载 2019-05-19 11:40:14 · 824 阅读 · 0 评论 -
Inception v1到v4
GoogLeNet团队提出了Inception网络结构,就是构造一种“基础神经元”结构,来搭建一个稀疏性、高计算性能的网络结构。一、Inception V1通过设计一个稀疏网络结构,但是能够产生稠密的数据,既能增加神经网络表现,又能保证计算资源的使用效率。谷歌提出了最原始Inception的基本结构:该结构将CNN中常用的卷积(1x1,3x3,5x5)、池化操作(3x3)堆叠在一起(卷积、...转载 2019-04-30 22:45:56 · 798 阅读 · 0 评论 -
GoogLeNet 分析
GoogLeNet结构 表格:深度只有22层,但大小却比AlexNet和VGG小很多,GoogleNet参数为500万个,AlexNet参数个数是GoogleNet的12倍,VGGNet参数又是AlexNet的3倍,因此在内存或计算资源有限时,GoogleNet是比较好的选择;从模型结果来看,GoogLeNet的性能却更加优越。一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,深度指...转载 2019-04-30 20:20:51 · 609 阅读 · 0 评论 -
GoogLeNet网络结构
GoogLeNet的网络结构 表格:注:上表中的“#3x3 reduce”,“#5x5 reduce”表示在3x3,5x5卷积操作之前使用了1x1卷积的数量。GoogLeNet网络结构明细表解析如下:0、输入原始输入图像为224x224x3,且都进行了零均值化的预处理操作(图像每个像素减去均值)。1、第一层(卷积层)使用7x7的卷积核(滑动步长2,padding为3),64通道,输...转载 2019-04-30 17:50:59 · 24071 阅读 · 5 评论 -
leecode46 全排列
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]思路1 : 库函数Python3 itertools 文档 :https://docs.python.org/3/library/itertools.html#itertools.permu...原创 2019-05-27 21:38:37 · 167 阅读 · 0 评论 -
leecode48. 旋转图像
题目描述给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例 2:给定 ma...原创 2019-05-27 21:58:51 · 128 阅读 · 0 评论 -
Faster R-CNN总结
Faster R-CNN论文的demo用了ZF和VGG16 的网络结构,本文默认用VGG16它的结构图:它的前13层是用了VGG提取特征 ,主要算法实现是后面几层:Faster R-CNN的整体结构,如下图所示 :算法步骤1. Conv layers .作为一种cnn网络目标检测的方法,faster_rcnn首先使用一组基础conv+relu+pooling层提取image的 ...转载 2019-05-28 19:05:38 · 756 阅读 · 0 评论 -
python * **
# -*- coding: utf-8 -*-"""# *可以用来解包#这里还不知道args是什么,就加前缀,那args就作为一个整体#即args是一个可解包的变量,再加上不可修改,那就是一个元组了!!def F1(*args): print(args)F1(123,"456")# (123, '456')#** 姑且看作两次解包,那么需要进行两次解包的数据结构,只...原创 2019-08-22 00:32:21 · 288 阅读 · 0 评论 -
MSL(Maximum Segment Lifetime)报文最大生存时间
MSL(Maximum Segment Lifetime)报文最大生存时间Windows:MSL=2 minlinux(Ubuntu,CentOs):MSL=60sUnix:MSL=30s原创 2019-08-20 09:49:03 · 11340 阅读 · 1 评论 -
leecode 94. 二叉树的中序遍历 144. 二叉树的前序遍历 145. 二叉树的后序遍历
94. 二叉树的中序遍历题目描述给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3]1\2/3输出: [1,3,2]144. 二叉树的前序遍历题目描述给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3]1\2/3输出: [1,2,3]二叉树的后序遍历题目描述给定一个二叉树,返回它的 后序 遍历。示例...原创 2019-06-08 20:04:29 · 181 阅读 · 0 评论 -
leecode53. 最大子序和
53. 最大子序和题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。class Solution: def maxSubArray(self, nums: List[int]) ->...原创 2019-06-08 19:05:49 · 94 阅读 · 0 评论 -
leecode44. 通配符匹配
44. 通配符匹配题目描述给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = “aa”...原创 2019-06-08 17:38:10 · 256 阅读 · 0 评论 -
Leecode10. 正则表达式匹配
10. 正则表达式匹配给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s ...原创 2019-06-05 19:05:23 · 346 阅读 · 0 评论 -
SppNet中的spatial pyramid pooling(SPP)
SPP 提出的初衷是为了解决CNN对输入图片尺寸的限制。由于全连接层的存在,与之相连的最后一个卷积层的输出特征需要固定尺寸,从而要求输入图片尺寸也要固定。将任意尺寸的feature map用三个尺度的金字塔层分别池化,将池化后的结果拼接得到固定长度的特征向量(图中的256为filter的个数),送入全连接层进行后续操作。后来的Fast RCNN网络即借鉴了SPP的思想。其中的ROI Poo...原创 2019-05-28 19:13:35 · 183 阅读 · 0 评论 -
VGG网络分析
在图像分类和目标检测任务中都表现出非常好的结果。VGG最大的贡献就是证明了卷积神经网络的深度增加和小卷积核的使用对网络的最终分类识别效果有很大的作用。论文中,作者指出,虽然LRN(Local Response Normalisation)在AlexNet对最终结果起到了作用,但在VGG网络中没有效果,并且该操作会增加内存和计算,从而作者在更深的网络结构中,没有使用该操作。VGG网络参数Q1...转载 2019-04-29 15:11:19 · 945 阅读 · 0 评论 -
全连接层理解
for example:全连接的输入是 10x10x3,假设输出要分别算出属于 10类的概率,那么相当于 先把输入reshape成一个长300的向量,现在需要10个不同的权值向量来分别计算,那么需要计算的参数个数为:10 x 10x10x3+10。即 全连接层的卷积核 个数=输出的类别数,尺寸=输入的shape。...原创 2019-04-29 14:27:38 · 302 阅读 · 0 评论 -
vgg网络结构
VGG先放一张经典的图:VGG16参数个数,各层输出shape以网络结构D(VGG16)为例,介绍其各层的处理过程如下:1、输入224x224x3的图片,经64个3x3的卷积核作两次卷积+ReLU,卷积后的尺寸变为224x224x642、作max pooling(最大化池化),池化单元尺寸为2x2(效果为图像尺寸减半),池化后的尺寸变为112x112x643、经128个3x3的卷积...转载 2019-04-29 14:06:40 · 1831 阅读 · 0 评论 -
opencv闭运算
#先膨胀再腐蚀#用来填充前景物体中的小洞,或者前景物体上的小黑点import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生产卷积核kernel = np.ones((5,5),np.uint8)close = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)cv2.i...原创 2019-04-08 21:38:22 · 736 阅读 · 0 评论 -
opencv开运算
#先腐蚀再膨胀#用来去除噪声import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生产卷积核kernel = np.ones((5,5),np.uint8)opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)cv2.imshow('opening',o...原创 2019-04-08 21:35:14 · 780 阅读 · 0 评论 -
opencv膨胀cv2.dilate
import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生产卷积核kernel = np.ones((5,5),np.uint8)dilate = cv2.dilate(img,kernel,iterations = 1)cv2.imshow('dilate',dilate)cv2.waitKey(0)cv2....原创 2019-04-08 21:32:17 · 6081 阅读 · 0 评论 -
opencv双边滤波cv2.bilateralFilter
#能在保持边界清晰的情况下有效的去除噪音#但是这种操作与其他滤波器相比会比较慢import cv2img=cv2.imread('1.jpg')#cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace)#9 邻域直径,两个 75 分别是空间高斯函数标准差,灰度值相似性高斯函数标准差blur = cv2.bilateralFilter(...原创 2019-04-08 21:04:54 · 14468 阅读 · 4 评论 -
opencv腐蚀cv2.erode
import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生成卷积核kernel = np.ones((5,5),np.uint8)erosion = cv2.erode(img,kernel,iterations = 1)cv2.imshow('erosion',erosion)cv2.waitKey(0)cv...原创 2019-04-08 21:11:48 · 3924 阅读 · 4 评论 -
opencv中值滤波cv2.medianBlur
import cv2img=cv2.imread('1.jpg')#常用来去除椒盐噪声#卷积核使用奇数blur=cv2.medianBlur(img,5)cv2.imshow('medianBlur',blur)cv2.waitKey(0)cv2.destroyAllWindows()原创 2019-04-08 20:59:36 · 10333 阅读 · 0 评论 -
opencv高斯滤波cv2.GaussianBlur
import cv2img=cv2.imread('1.jpg')#(5, 5)表示高斯矩阵的长与宽都是5,标准差取0blur=cv2.GaussianBlur(img,(5,5),0)cv2.imshow('GaussianBlur',blur)cv2.waitKey(0)cv2.destroyAllWindows()...原创 2019-04-08 20:55:52 · 47311 阅读 · 0 评论 -
opencv方框滤波cv2.boxFilter
import cv2img=cv2.imread('1.jpg')# 卷积和尺寸 是否归一化#normalize=True 时等价于 均值滤波cv2.blur#normalize=False 时 卷积结果>255时,置为255blur=cv2.boxFilter(img,-1, (3, 3), normalize=Fals...原创 2019-04-08 20:49:21 · 4180 阅读 · 2 评论 -
opencv均值滤波cv2.blur
import cv2img=cv2.imread('1.jpg')# 卷积核尺寸blur=cv2.blur(img,(3,3))cv2.imshow('blur',blur)cv2.waitKey(0)cv2.destroyAllWindows()原创 2019-04-08 20:43:34 · 3724 阅读 · 0 评论 -
opencv形态学梯度gradient
#膨胀与腐蚀的差#结果看上去就像前景物体的轮廓import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生产卷积核kernel = np.ones((5,5),np.uint8)gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)cv2.imsh...原创 2019-04-08 21:41:23 · 257 阅读 · 0 评论 -
opencv礼帽tophat
#原始图像与进行开运算之后得到的图像的差import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生成卷积核kernel = np.ones((5,5),np.uint8)tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)cv2.imshow('toph...原创 2019-04-08 21:46:19 · 1406 阅读 · 0 评论 -
opencv黑帽blackhat
#闭运算之后得到的图像与原始图像的差import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生成卷积核kernel = np.ones((5,5),np.uint8)blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)cv2.imshow('bl...原创 2019-04-08 21:48:26 · 598 阅读 · 0 评论 -
卷积神经网络 卷积输入channel和卷积核channel
eg:给出一个10x10x3的图片,进行卷积,那么卷积核的channel一般就是3,卷积核的个数即为卷积结果的channel原创 2019-04-29 13:54:02 · 11340 阅读 · 0 评论 -
AlexNet网络 分析
1. ReLU Nonlinearity标准的L-P神经元的输出一般使用tanh 或 sigmoid作为激活函数。但是这些饱和的非线性函数在计算梯度的时候都要比非饱和的现行函数f(x)=max(0,x)慢很多,在这里称为 Rectified Linear Units(ReLUs)。在深度学习中使用ReLUs要比等价的tanh快很多。一般神经元的激活函数会选择sigmoid函数或者tanh函数,...原创 2019-04-28 21:01:32 · 526 阅读 · 0 评论 -
AlexNet 网络结构
AlexNet: 第一层:卷积层1,输入为 224×224×3 224 \times 224 \times 3224×224×3的图像,卷积核的数量为96,论文中两片GPU分别计算48个核; 卷积核的大小为 11×11×3 ; stride = 4, stride表示的是步长, pad = 0, 表示不扩充边缘;卷积后的图形大小是怎样的呢?wide = (224 + 2 * padding...原创 2019-04-28 20:42:13 · 1668 阅读 · 0 评论 -
百度2019校招计算机视觉方向
1.关于K-means聚类算法,请回答以下问题:K-means是有监督聚类还是无监督聚类?(2分)写出将N个样本(X=(x1,…,xN))聚成K类的K-means聚类算法的优化目标函数。(6分)请用伪代码写出聚类过程。(8分)假设样本特征维度为D,请描述Kmeans算法时间复杂度。(4分)答案1, 无监督2, 优化目标函数:F(X,K) =i=1Kj=1Ni(...转载 2019-04-27 11:50:10 · 813 阅读 · 0 评论 -
opencv高斯金字塔pyrUp、pyrDown
#高斯金字塔import cv2img = cv2.imread('1.jpg')#cv2.pyrUp() 从一个低分辨率小尺寸的图像向下构建一个金子塔(尺寸变大,但分辨率不会增加pyrUp= cv2.pyrUp(img)#cv2.pyrDown() 从一个高分辨率大尺寸的图像向上构建一个金子塔(尺寸变小,分辨率降低)pyrDown= cv2.pyrDown(img)#一旦使用 ...原创 2019-04-09 22:32:08 · 583 阅读 · 1 评论