自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (1)
  • 收藏
  • 关注

原创 Faster-RCNN + OHEM + vgg16 + prototxt文件及相关代码修改

最近,看了OHEM这篇论文,也是RBG的一篇论文,其是在Fast RCNN上进行改进,目标候选框提取仍然采用Selective Search算法。我打算在Faster RCNN上修改,充分利用RPN网络提取目标候选框。整个修改还比比较方便的。Fast RCNN + OHEM的相关代码论文作者已经在github上开源,地址在:https://github.com/abhi2610/ohem,我们只需在

2017-03-20 17:02:44 5727 4

原创 py-faster-rcnn支持cuDNN V5的方法

cd caffe-fast-rcnn git remote add caffe https://github.com/BVLC/caffe.git git fetch caffe git merge -X theirs caffe/master手动删除冲突后,最后git add 然后注释掉/caffe_fast_rcnn/layers/python_layer.hpp文件中的self_

2017-03-14 23:27:41 897

原创 ubuntu中gcc、g++版本切换

$ sudo update-alternatives --config gcc$ sudo update-alternatives --config g++然后手动选择版本的编号即可。

2016-12-29 23:01:56 1857

原创 opencv处理图像对比度和亮度

公式:g(x) = af(x) + b, 其中: f(x)表示原始图像像素值, g(x)表示处理后图像像素值。a > 0, a,b分别控制图像的对比度和亮度。 具体代码如下:void ChangeContrastAndBrightness(Mat& myImage) { Mat new_image = Mat::zeros(myImage.size(), myImage.type())

2016-12-11 14:39:25 3512

原创 g++编译opencv项目

先安装好opencv和 pkg-config. 看一下pkg-config设置的目录是否正确, 假设opencv的目录是/usr/loacal/include 和 /usr/local/lib:$ pkg-config --cflags --libs opencv-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib

2016-12-11 00:29:44 12851 3

原创 ubuntu14.04安装opencv

1、先安装一些依赖文件:$ sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev, libpng-dev, libtiff4-dev, libjas

2016-12-08 01:33:28 1326

原创 经验风险最小化和结构风险最小化

在假设空间、损失函数以及训练集确定的情况下,经验风险函数就可以确定。假设给定一个数据集: 模型f(x)关于训练数据集的平均损失成为经验风险或经验损失: 经验风险是模型关于训练样本集的平均损失。 经验风险最小化(empirical risk minimization,ERM)的策略认为,经验风险最小的模型是最优的模型。根据这一策略,按照经验风险最小化求最优模型就是求解最优化问题:

2016-11-07 11:17:45 26886 3

原创 caffe学习:Eltwise Layer

Eltwise层的操作有三个:product(点乘), sum(相加减) 和 max(取大值),其中sum是默认操作。假设输入bottom为A和B,如果要实现element_wise的A+B,即A和B的对应元素相加,prototxt文件如下:layer { name: "eltwise_layer" bottom: "A" bottom: "B" top: "diff" typ

2016-11-01 21:44:19 3913 2

原创 caffe学习系列四Sigmod、Tanh、ReLU等Layer源码分析

数学表达式简介Sigmoid 激活函数: sigmoid 激活函数在神经网络学习方面,可以将重点特征推向中央区,将非重点特征推向两侧区。 数学表达式: y=1 / (1+exp(−x))Tanh 激活函数: Tanh 激活函数使得输出与输入的关系能保持非线性单调上升和下降关系,比sigmoid 函数延迟了饱和期,对神经网路的容错性好。 数学表达式: y=exp(x)−exp(−x)/ (ex

2016-10-06 13:57:20 2675

原创 物体检测中常用的几个概念迁移学习、IOU、NMS理解

1、迁移学习迁移学习也即所谓的有监督预训练(Supervised pre-training),我们通常把它称之为迁移学习。比如你已经有一大堆标注好的人脸年龄分类的图片数据,训练了一个CNN,用于人脸的年龄识别。然后当你遇到新的项目任务是:人脸性别识别,那么这个时候你可以利用已经训练好的年龄识别CNN模型,去掉最后一层,然后其它的网络层参数就直接复制过来,继续进行训练。这就是所谓的迁移学习,说的简单一

2016-10-01 11:11:24 23303 9

原创 caffe学习系列三添加新的Layer

参考:https://github.com/BVLC/caffe/issues/6841、Add a class declaration for your layer to the appropriate one of common_layers.hpp, data_layers.hpp, loss_layers.hpp, neuron_layers.hpp, or vision_layers.hp

2016-09-30 18:08:01 1538

原创 caffe学习系列二视觉层及参数

所有的层都具有的参数,如name, type, bottom, top和transform_param,请参看我的前一篇博客:http://blog.csdn.net/zhang_shuai12/article/details/52708782本文只讲解视觉层(Vision Layers)的参数,视觉层包括Convolution, Pooling, Local Response Normalizat

2016-09-30 10:25:37 631

原创 caffe学习系列一数据层及参数

要运行caffe,需要先创建一个模型(model),如比较常用的Alexnet、VGG等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据流动是以Blobs的方式进行。数据层是

2016-09-30 09:21:06 1096

转载 防止过拟合的几种常见方法

防止过拟合的处理方法何时会发生过拟合?   我们都知道,在进行数据挖掘或者机器学习模型建立的时候,因为在统计学习中,假设数据满足独立同分布(i.i.d,independently and identically distributed),即当前已产生的数据可以对未来的数据进行推测与模拟,因此都是使用历史数据建立模型,即使用已经产生的数据去训练,然后使用该模型去拟合未来的数据。但是一般独立同分布的假

2016-09-18 21:42:49 18430

原创 Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings. 例如:[“leets”, “leetcode”, “leet”, “leed”], LCP为“lee”.思路: 垂直搜索,从头开始比较每个字符串相同位置的字符, 若相同,则继续向后比较, 否则返回任一字符串从头到该位置的字

2016-09-18 13:42:38 309

原创 Reverse Integer

Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321click to show spoilers.Have you thought about this? Here are some good questions to ask before coding. Bonus p

2016-09-17 14:45:01 278

原创 ZigZag Conversion

The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H NA P L S I I GY

2016-09-17 14:09:14 254

原创 Wildcard Matching

Implement wildcard pattern matching with support for ‘?’ and ‘*’.‘?’ Matches any single character. ‘*’ Matches any sequence of characters (including the empty sequence).The matching should cover the e

2016-09-17 13:09:38 422

原创 object detection(物体检测)系列论文梳理

object detection论文阅读梳理:1、R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation 技术路线:selective search + CNN + SVMsR-CNN网络结构: Step1:候选框提取(selective search)训练:给定一张图片,利用s

2016-09-16 11:32:07 10394

原创 带环单链表的环入口点

判断一个单链表是否带环,我们可以设置两个指针,一快一慢,慢的指针每次走一步,快的指针每次走两步,如果在遍历过程中,快慢指针相遇,则表明链表有环,否则无环;而,如何找到环的入口点呢? 给出一个定理:快慢指针的相遇点到环入口点的距离等于头结点到环入口点的距离;LinkList Node { int value; LinkList next;};LinkList findCircleNo

2016-09-10 11:50:26 717

原创 SSD安装及训练自己的数据集

最近一直在搞object detection玩,之前用的是faster-rcnn,准确率方面73.2%,效果还不错,但是识别速度有点欠缺,我用的GPU是GTX980ti, 识别速度大概是15fps.最近发现SSD(single shot multibox detector) 这篇论文效果和速度都不错,我自己实验了一下,速度确实比faster-rcnn快不少。下面分两部分来介绍。第一部分介绍SSD的安

2016-08-28 17:58:58 44731 85

原创 py-faster-rcnn + cpu安装及训练自己的数据集

本文安装python版本的faster-rcnn项目。 matlab版本请移步:https://github.com/ShaoqingRen/faster_rcnn python版本项目主页:https://github.com/rbgirshick/py-faster-rcnn下面分两部分来讲解,第一部分为py-faster-rcnn及caffe框架安装。第二部分讲解如何修改相关文件,训练自己

2016-08-23 23:14:43 15772 36

原创 ubuntu14.04 + caffe + python2.7 + CPU安装指南

本文基于ubuntu14.04 安装cpu版caffe,并安装pycaffe, 方便python调用caffe。 首先安装必须的依赖包:sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get in

2016-08-23 12:26:37 8245 1

原创 ubuntu14.04 + mxnet + python2.7 安装指南

本文讲解在ubuntu14.04上安装mxnet ,并安装python包。 首先安装一些必要的依赖:sudo apt-get updatesudo apt-get install -y build-essential git libatlas-base-dev libopencv-dev然后从mxnet项目主页把项目clone下来,编译安装:git clone --recursive https

2016-08-23 11:31:20 4778

原创 Lowest Common Ancestor of a Binary Search Tree

Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two

2016-03-07 18:13:23 297

原创 Search a 2D Matrix

Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:Integers in each row are sorted from left to right.The first integer of each row is

2016-03-07 16:04:43 279

原创 leetcode 231题 power of Two

question: Given an integer, write a function to determine if it is a power of two. 思路:power of 2表明只有最高位为1,其余为均为0,则若n&(n-1)为0,返回true,否则返回false.class Solution {public: bool isPowerOfTwo(int n) {

2015-07-06 13:46:13 346

原创 两个单链表的第一个公共节点

题目:求两个单链表的第一个公共子节点。思路:我们可以先遍历两个单链表得到长度,然后求得两个链表长度的差值,然后让长的那个链表先走到差值长度位置,然后两个链表再同时遍历,直到找到第一个公共节点。struct ListNode { int value; ListNode *next;};int getListLength(ListNode *head){ if(head ==

2015-06-14 18:18:08 668

原创 在O(1)时间删除链表结点

题目:题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点。 思路:通常情况下,如果我们要删除单链表的一个节点,我们需要遍历链表找到这个节点的前一个节点,然后执行删除操作,时间复杂度为O(n). 我们试着换一种思路,事实上,我们可以从给定的结点得到它的下一个结点。这个时候我们实际删除的是它的下一个结点,由于我们已经得到实际删除的结点的前面一个结点,因此完全是可以实现的。当然,在删除之前

2015-06-14 18:10:34 392

原创 找出数组中只出现一次的数字

题目:一个数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这个只出现一次的数字。 例如:A[] = {1,2,2,3,3};输出1.思路:我们联想到异或的性质,若两个数相同,异或结果为0,因此若对数组中的数从头到尾异或一遍,所得的结果就是那个只出现一次的数字。int uniqueNumber(int A[],int length){ int result = A[0];

2015-06-13 09:57:27 387

原创 某个数的阶乘尾部含有0的数

题目:计算某个数阶乘尾部所含0的个数。例如:5!=1*2*3*4*5=120尾部含有一个0.思路:我们知道一个数要产生0,该数肯定是2的倍数或是5的倍数。对于对于某个数的阶乘,我们将其做质因数分解,n!=(2^x)(3^y)(5^z)*…….,产生0的个数肯定为min(x,z),而一个数分解为5的倍数的个数肯定大于等于2的倍数的个数。即min(x,z) = z,因此我们只需考虑5的倍数的个数。int

2015-06-12 10:03:39 338

原创 不用+、-、×、÷对两个数求和

题目:不用+、-、×、÷对两个整数求和。思路: 主要分成3步: 第一步不考虑进位,对每一位相加。0加0与1加1的结果都0,0加1与1加0的结果都是1。我们可以注意到,这和异或的结果是一样的。对异或而言,0和0、1和1异或的结果是0,而0和1、1和0的异或结果是1。 接着考虑第二步进位,对0加0、0加1、1加0而言,都不会产生进位,只有1加1时,会向前产生一个进位。此时我们可以想象成是两个数先做

2015-06-11 21:32:06 1325

原创 二叉树两结点的最低公共父结点

题目:求二叉树中任意两个节点的最低公共父节点。思路: 从根结点开始遍历,判断以当前结点为根的树中左右子树是不是包含我们要找的两个结点。如果两个结点都出现在它的左子树中,那最低的共同父结点必出现在它的左子树中;如果两个结点都出现在它的右子树中,那最低的共同父结点也出现在它的右子树中;如果两个结点一个出现在左子树中,一个出现在右子树中,那当前的结点就是最低的共同父结点。struct BinaryTre

2015-06-11 21:17:39 337

原创 数组中出现次数超过一半的数字

题目:数组中出现次数超过一半的数字。思路: 通常做法是先对数组排序,然后再遍历一遍数组即可找到。但是这样做时间复杂度为O(n*logn).在面试中,这样做肯定不行。 我们不妨换一种思路,如果某个数字在数组中出现次数超过数组长度一半,则其余数字出现之和一定小于数组长度一半。 因此我们可以考虑在遍历数组的时候保存两个值:一个是数组中的一个数字,一个是次数。当我们遍历到下一个数字的时候,如果下一个数

2015-06-11 14:45:25 360

原创 二叉树的子结构

题目:输入两棵二叉树A和B,判断树B是不是A的子结构。思路:主要分两步:第一步)在树A中找到和B的根结点的值一样的结点;第二步)再判断树A中以该节点为根结点的子树是不是包括和树B一样的结构。这可用递归来解决。struct BinaryTreeNode { //二叉树节点定义 int value; BinaryTreeNode *left; BinaryTreeNode *ri

2015-06-11 13:45:54 1175

原创 找出排序数组中和为给定值的两个数字

题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如:A[]={1,2,3,4,5,6,7,8,9}, sum = 15,输出6,9.思路: 因为数组是有序的,因此我们可设两个指针left,right,分别从头和从尾部遍历,若A[left] + A[right]

2015-06-11 12:40:27 1459

原创 判断二叉树是否为平衡二叉树

题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。思路:我们知道,若二叉树中任意某结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。这可以用递归实现,在遍历二叉树各节点事,若节点的左右子树的深度之差不超过1,则是平衡二叉树。struct BinaryTreeNode { int value; BinaryTreeNode *left; BinaryTreeNo

2015-06-10 23:03:25 1517

原创 二叉树的深度

题目:输入一棵二元树的根结点,求该树的深度。思路: 如果一棵树只有一个结点,它的深度为1。如果根结点只有左子树而没有右子树,那么树的深度应该是其左子树的深度加1;同样如果根结点只有右子树而没有左子树,那么树的深度应该是其右子树的深度加1。如果既有右子树又有左子树呢?那该树的深度就是其max(左子树,右子树深度)+1。struct BinaryTreeNode { int value;

2015-06-10 22:04:28 375

原创 Longest Palidrome Substring问题

最长回文子串问题是比较经典的问题,在面试中经常会碰到。主要的解决方法包括暴力求解,动态规划,备忘录法等。 对于动态规划状态转移方程为: C++代码实现:#include<iostream>#include<string>using namespace std;string longestpalidsubstring(string s){ const int n = s.size();

2015-06-06 17:42:18 357

原创 leetcode 第89题 Gray Code

The gray code is a binary numeral system where two successive values differ in only one bit.Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray

2015-05-25 15:55:32 379

机器学习规则

google团队总结的43条机器学习规则,对不同层次的人都有帮助。

2018-10-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除