- 博客(18)
- 问答 (3)
- 收藏
- 关注
原创 【Leetcode】155.最小栈
题目链接:155.最小栈关键字:栈解题思路使用两个栈,其中一个正常存取数据,另外一个存储对应栈大小时的最小值class MinStack {public: /** initialize your data structure here. */ ...
2020-03-07 22:16:48
181
原创 【C++】前置声明的使用
先说结论:尽可能避免前置声明,使用#include包含对应的头文件。定义前置声明是类、函数和模板的纯粹声明,不包含其定义。前置声明是为了降低复杂的依赖关系,防止一个头文件修改引起重新编译时的多米诺效应。优点使用前置声明的优点其实就是使用#include的缺点在编译时,更多的#include会展开更多的头文件,处理更多的输入,加长编译时间。在重新编译时,#include会将头文件...
2020-03-04 00:53:25
501
原创 【Leetcode】225.用队列实现栈
题目链接:225.用队列实现栈关键词:队列,栈解题思路两种思路压入元素复杂度O(1)O(1)O(1),弹出元素复杂度O(n)O(n)O(n)压入元素时,队列与栈是相同的操作弹出元素时,对于栈来说弹出的是栈顶元素,对于队列来说需要弹出的是队尾元素压入元素复杂度O(n)O(n)O(n),弹出元素复杂度O(1)O(1)O(1)压入元素时,先将新元素压入队尾,然后将它前边的所有...
2020-03-01 18:24:00
257
原创 【Leetcode】232.用栈实现队列
题目链接:232.用栈实现队列关键字:栈、队列解题思路使用两个栈实现队列,其中一个栈正常使用,另一个栈用来保存逆序数据代码实现class MyQueue {public: /** Initialize your data structure here. *...
2020-02-24 21:55:35
195
原创 【传统算法】导向滤波公式推导和扩展
何凯明大神的代表作之一论文地址:Guided Image Filtering导向滤波的一般表达方式qi=∑jWij(I)pjq_{i}=\sum_{j} W_{i j}(I) p_{j}qi=j∑Wij(I)pj其中qqq表示输出,ppp表示输入,III表示导向图。先验假设假设在局部范围内,输出图与导向图的关系可以用一个线性模型表示:qi=akIi+bk,∀i∈ωkq_...
2020-01-16 13:47:55
852
2
原创 【传统算法】Harris角点检测公式推导
自相关性求取滑动窗口内的自相似性,用自相关函数表示:c(x,y;Δx,Δy)=∑w(x,y)(I(x,y)−I(x+Δx,y+Δy))2c(x, y ; \Delta x, \Delta y)=\sum w(x, y)(I(x, y)-I(x+\Delta x, y+\Delta y))^{2}c(x,y;Δx,Δy)=∑w(x,y)(I(x,y)−I(x+Δx,y+Δy))2其中III...
2020-01-10 10:43:51
822
原创 【开发工具】PyTorch数据变换操作
在训练神经网络之前,数据是不可或缺的一部分,数据操作主要包括数据预处理(正则化、增强),数据读取和数据加载,下面按照这个顺序依次学习一下。首先是数据的预处理,这里主要是使用torchvision.transforms这个模块,内部实现一些基本图像变换使用PIL模块实现。常用的主要包括以下几种方式:import torchvision.transforms as Timport cv2ima...
2019-12-03 14:15:53
284
原创 【论文阅读】Selective Kernel Networks
论文地址:Selective Kernel Networks简介本文提出了一种在CNN网络中动态选择的机制,让每一个神经元可以根据输入信息自动调整感受野大小。作者设计了一个网络模块,称为Selective Kernel Unit,以此来实现这个目的。作者这样设计的原因是在视觉皮质层中,同一个神经元对同一块区域有着不同大小的感受野,也就是说同一个神经元对于同一个输入信息可以同时提取到不同范围的...
2019-11-14 13:49:08
2980
3
转载 【开发工具】XCode调试时查看内存中的数据
LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。想知道 LLDB 更多的命令,可以在 LLDB 窗口使用 help 命令查看。在这里只列出在 Xcode 调试时查看内存中的数据的命...
2019-11-12 10:37:02
2405
原创 【立体视觉】单应矩阵的求解
单应矩阵指的是两个平面之间的映射关系,在相机标定、全景拼接中都有很重要的应用。下面来总结一下单应矩阵是如何求解的以及其原因。首先,我们用单应矩阵表示两个点之间的映射关系,可以写成:[x2y21]=[h1 h2 h3h4 h5 h6h7 h8 1][x1y11](1)\left[\begin{matrix}x_2 \\y_2 ...
2019-11-07 00:36:29
1402
原创 【LeetCode】1.两数之和
题目链接:两数之和可以说是LeetCode上的abandon了,进站必做,解题思路:遍历一次数组,用map保存已遍历对象,每次保存对象前先check是否存在已保存对象与当前数字和为target。class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { ...
2019-11-04 19:57:43
127
原创 【LeetCode】20.有效的括号
题目链接:有效的括号看了题目,可以比较快的知道这个题目是在考验栈的使用,主要包括以下几步操作:遍历一次字符串对遍历到的左括号做入栈操作对遍历到的右括号,检查其是否与栈顶左括号配对,如果是则弹出栈顶元素,如果否则说明字符串无效当遍历结束时,检查栈的大小,如果栈为空则说明所有左括号都被成功匹配,字符串有效,反之字符串无效。按照这个逻辑首先做了以下实现:class Solutio...
2019-11-04 10:15:37
198
原创 【论文阅读】AlexNet:ImageNet Classification with Deep Covolutional Network
网络结构使用ReLU非线性层作者在网络结构中使用了ReLU作为非线性激活层来代替当时比较常用的tanh或sigmoid,加速了网络的训练速度,对此作者也做了对比实验并可视化了结果。可以看到同样是下降到0.25的loss rate,ReLU(实现)比tanh(虚线)少用了六倍的时间。局部响应归一化(LRN)由于ReLU不像tanh或sigmoid一样,输出有一定范围,所以需要对其输...
2019-11-04 00:42:30
245
原创 【传统算法】LK稀疏光流法
光流法是计算机视觉中应用较为广泛的一类算法,经常用于物体跟踪及其相关任务中,今天来介绍下光流中比较简单的一种方法:LK光流。假设先验LK光流全称为Lucas-Kanade光流,算法原理比较好理解,首先,LK光流对应用场景提出了三个假设先验:亮度恒定:假设像素在运动过程中亮度(灰度值)恒定,其实这是大部分计算机视觉任务都需要的一个先验像素偏移小:检测光流的两帧之间不能有过大的motion,...
2019-11-02 18:31:41
2469
1
原创 【论文阅读】一些常用的学术类网站推荐
论文类arxiv来自康奈尔大学,每天都会更新各个行业最新发表的论文,对每个类别和学科的论文做了详细分类和索引,搜索起来很方便。https://arxiv.org/谷歌学术适用于文献查找,比较方便看一篇论文的被引用量,也可以直接连接到引用的论文上,并且可以对文章进行自定义排序和筛选。https://scholar.google.ro/Paper With Code网站上对深度...
2019-10-28 11:25:54
2547
原创 【C++】命名空间namespace
最近在工作中遇到一个bug,找问题找了很久,最终发现是函数命名冲突的原因。具体地说就是上层在调用接口的时候使用的是我的头文件,但是实际调用到的实现来自其他静态库中的同样没有命名空间的同名函数。在工程联调的时候当断点打在该函数时无法跳转进我的函数实现,而是直接跳转到汇编语言,证明是链接到了已经编译好的其他静态库中。在这种情况下将自己的函数定义或类定义全部放在一个自己定义的namespace中,便可以...
2019-10-28 11:04:11
477
原创 【论文阅读】Depth-Aware Video Frame Interpolation
项目主页:https://sites.google.com/view/wenbobao/dain项目Git:https://github.com/baowenbo/DAIN论文地址:https://arxiv.org/pdf/1904.00830.pdf简介近年来基于深度学习的视频插帧成为了计算机视觉的研究方向之一,视频插值主要一般会用于一下几个方面:慢动作视频生成(slow-mo...
2019-10-28 10:31:06
4596
13
原创 【C++】多态
多态是C++特性之一,多态性就是使用相同的接口实现不同的方法。多态性分为静态多态性和动态多态性。在C++中,多态性的实现和联编(或称绑定)这一概念有关。一个源程序经过编译、链接,成为可执行文件的过程是把可执行代码联编在一起的过程。其中在编译时完成的联编称为静态联编(前期联编);而在运行时完成的联编称为动态联编(后期联编)。静态多态性静态多态性又可以称为编译时多态性,在C++中,静态多态性是通...
2019-10-28 10:21:53
151
空空如也
一个关于c++构造函数和运算符重载的问题
2016-02-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人