自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 目标检测算法综述:R-CNN,faster R-CNN,yolo,SSD,yoloV2

1 引言深度学习目前已经应用到了各个领域,应用场景大体分为三类:物体识别,目标检测,自然语言处理。上文我们对物体识别领域的技术方案,也就是CNN进行了详细的分析,对LeNet-5 AlexNet VGG Inception ResNet MobileNet等各种优秀的模型框架有了深入理解。本文着重与分析目标检测领域的深度学习方法,对其中的经典模型框架进行深入分析。目标检测可以理解为是物体识...

2018-10-16 13:52:43 965

转载 faster-rcnn中,对RPN的理解

原文中rcnn部分的截图图片来自网上,黑色是滑动窗口的区域,就是上图的红色区域的sliding window其他颜色 9种窗口 就是anchor机制生成的9种区域这里要把sliding window和卷积层的滑动区别开,sliding winsow的stride步长是1!(想到经典的harr+adaboost人脸检测)sliding window只是选取所有可能区域,并没有额外的什么...

2018-10-16 11:13:29 424 1

转载 一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD

目前学术和工业界出现的目标检测算法分成3类:1. 传统的目标检测算法:Cascade + HOG/DPM + Haar/SVM以及上述方法的诸多改进、优化;2. 候选区域/窗 + 深度学习分类:通过提取候选区域,并对相应区域进行以深度学习方法为主的分类的方案,如:R-CNN(Selective Search + CNN + SVM)SPP-net(ROI Pooling)Fast R-...

2018-10-16 10:55:17 431

转载 OpenGL: 混合

6.1 混合6.1.1 源因子和目标因子假定源和目标混合因子分别为(Sr, Sg, Sb, Sa)和(Dr,Dg,Db,Da), 混合后的RGB值如下:(RsSr + RdDr, GsSg + GdDg, BsSb + BdDb, AsSa + AdDa)最后,将该四元组的各个分量截取到[0,1].将源片元和目标象素合并起来的默认方式是,将它们的值相加. 选择源混合因子和目标混合因子的方式:第一种...

2018-04-20 14:38:26 1330

转载 浅谈对梯度下降的理解

浅谈梯度下降法 如果读者对方向导数和梯度的定义不太了解,请先阅读上篇文章《方向导数与梯度》。 前些时间接触了机器学习,发现梯度下降法是机器学习里比较基础又比较重要的一个求最小值的算法。梯度下降算法过程如下:1)随机初始值;2)迭代,直至收敛。表示在处的负梯度方向,表示学习率。 在这里,简单谈一下自己对梯度下降法的理解。首先,要

2017-09-28 09:38:27 1922

转载 梯度下降(Gradient Descent)小结

在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。1. 梯度    在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂

2017-09-28 09:19:01 2170

转载 Caffe入门:对于抽象概念的图解分析

我看过很多关于Caffe的博客,虽然收益很多,但是很遗憾没有发现一片能大彻大悟融会贯通的那种,打通任督二脉的感觉;     综合很多说法,总结归纳,写出这篇小文章,尽量做到句句为精,言简意赅:[plain] view plain copy     Caffe的全称:Convolutional Architecture fo

2017-09-26 09:19:26 1910

转载 caffe代码详细注解--init

Caffe net:init()函数代码详细注解 Caffe 中net的初始化函数init()是整个网络创建的关键函数。在此对此函数做详细的梳理。 一、代码的总体介绍           该init()函数中主要包括以下几个函数:1.     FilterNet(in_param,&filtered_param);此函数的作用就是模型参数文件(*.prototxt)中的

2017-09-07 14:13:04 2522

转载 跟我一起写 Makefile(一)

该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886makefile很重要      什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和profes

2017-08-31 22:22:57 2420

转载 Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED

使用pip按照virtualenv报错,如下:pip install virtualenvCollecting virtualenv/opt/python27/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS requ

2017-08-30 16:36:02 2177

转载 linux 管道传递参数xargs 用法

简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:这个命令是错误的find /sbin -perm +700 |ls -l这样才是正确的find /sbin -perm +700 |xargs ls -l   xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 s

2017-08-30 14:14:04 20881 1

原创 link_directories, LINK_LIBRARIES, target_link_libraries使用总结

总结一下include_directories,link_directories,link_libraries和target_link_libraries的作用。尤其是后面三个参数,比较相似,容易弄混。INCLUDE_DIRECTORIES(添加头文件目录)它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用(这里特指c++。

2017-08-30 09:39:32 5211 1

转载 让cmake显示gcc/g++的编译信息

项目目录结构第一个项目,肯定是大家都懂的“hello world”了。那就先来看一下这个“庞大”的项目结构吧。1234567[study@leoox hello]$ tree.|-- CMakeLists.txt|-- build`-- main.c 1 directory, 2 files哈哈,其实就只有一个代码文件 main.c。源码内容嘛,程序员都知道。

2017-08-29 11:27:38 15120 1

转载 用Google的gflags优雅的解析命令行参数

写了这么多年的Linux下C/C++代码,一直使用getopt_long来解析命令行参数,同时定义一个全局的struct来保存各个命令行参数的值。虽然用得比较“繁琐”,但也安于现状。最近突然发现了Google早在多年前就开源了一个解析命令行参数的“神器”gflags。赶紧来爽一把。  安装1、去官网下载一个最新的版本(gflags-2.1.1.tar.gz)。https:/

2017-08-28 15:15:54 2415

原创 ubuntu 查看apt-get有哪些软件

sudo apt-cache search all它会出来一堆软件的列表如果你想要看下里面总共有哪些软件,那么,你可以使用如下命令:sudo apt-cache search all | wc如果你想要用apt-get 命令来安装一个软件,但是你只知道大概有几个字母,那么,你可以用下面的命令来进行查询,看下跟这个字母有关的软件都有哪些,它会给你把列表列出来:

2017-08-27 21:27:26 2839

原创 Unix/Linux 脚本中 “set -e” 的作用

-----------------------------------------------------------#!/bin/bashset -ecommand 1command 2...exit 0----------------------------------------------------------Every script yo

2017-08-27 16:29:09 1740

转载 clCreateBuffer中cl_mem_flags参数解释

设备与主机端的通信使用clCreateBuffer分配好内存,可以使用主机上已经存在的内容将其进行初始化,也可以先创建内存,再通过clEnqueueWriteBuffer,写数据,或者通过clEnqueueMapBuffer,将设备上的数据映射到主机端进行修改,修改后需要解映射,最后将分配好的内存,通过参数设置clSetKernelArg给到设备,如果数据改变了,则可以使用clEnqueu

2017-08-17 16:55:22 2159 1

转载 如何在Android平台上使用USB Audio设备

上网搜了有关USB Audio Hotplug的东西,比较适用的资源如下:1、Hotplugging USB audio devices (Howto)题目看起来很吻合我们的问题,事实上并没有多少参考价值。其中脚本/etc/hotplug/usb/extigy或许可以捕捉到USB Audio设备的热插拔事件,应该可以进一步验证和利用,留意这点。 2、Example

2017-08-16 17:14:57 4517

转载 c++ vector resize & reserve

首先必须弄清楚两个概念:1.capacity   指容器在分配新的存储空间之前能存储的元素总数。2. size   指当前容器所存储的元素个数 在弄清这两个概念以后,很容易懂resize和reserve的区别 1).reserve表示容器预留空间,但并不是真正的创建对象,需要通过insert()或push_back()等创建对象。

2017-08-09 15:58:39 1864

原创 C++中clock用法

clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。该函数返回值是硬件滴答数当然,你也可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间:#include #include stdlib.h>#include int main(void){long i = 10000000L;

2017-08-09 15:57:55 4965

转载 Linux curses库使用

相信您在网路上一定用过如 tin,elm 等工具, 这些软体有项共同的特色, 即他们能利用上下左右等方向键来控制游标的位置. 除此之外, 这些程式的画面也较为美观. 对Programming 有兴趣的朋友一定对此感到好奇, 也许他能在 PC上用Turbo C轻易地写出类似的程式, 然而, 但当他将相同的程式一字不变地移到工作站上来编译时, 却出现一堆抓也抓不完的错误. 其实, 原因很简单, 他

2017-08-09 15:57:17 2243

原创 GPU上缘何没有大量的cache

近年来,GPU广泛应用与高性能领域,其通用计算能力也得到了进一步的利用。与传统的CPU相比,GPU在处理能力和储存器带宽上有着明显的优势,在成本和功耗上也不需要付出太大的代价。        在当前主流的CPU+GPU架构中,CPU和GPU一般经过北桥芯片相互连接,各自有各自的外部储存器,分别为内存和显存。在这种混合架构中CPU负责逻辑性较强的事物运算,而GPU主要负责计算密集度较高的部分。其

2017-07-22 18:09:01 2033

转载 FFmpeg的Android平台移植—编译篇

摘要:本文主要介绍将FFmpeg音视频编解码库移植到android平台上的编译和基本测试过程。环境准备:Ubuntu12.04 TLSandroid-ndk-r9d-Linux-x86_64.tar.bz2adt-bundle-windows-x86_64-20131030.zip第一步:源代码下载到FFmpeg官方网站http://www.ffmpeg.org/上

2017-07-20 18:02:26 1965

转载 安卓平台下ARM Mali OpenCL编程-GPU信息检测

对于ARM Mali GPU,目前是支持OpenCL1.1,所以我们可以利用OpenCL来加速我们的计算。              一直以来,对于Mali GPU的OpenCL编程,一直没有环境来测试。好不容易弄到一个华为Mate7,却因为华为没有提供OpenCL driver(小道消息,华为下半年开始将会有OpenCL Drivert提供,拭目以待吧)。目前测试过的手机有魅族MX4 p

2017-07-14 10:08:37 4050 1

原创 立体匹配算法(Stereo Matching)及其在OpenCV中的应用

模拟人的两只眼睛的Stereo相机最近变得很受欢迎。通过对stereo相机拍摄的左右两张图进行匹配找出视差图,可以还原物体的3D信息。立体匹配(Stereo matching)的步骤如下:1: 预处理:亮度归一化,去噪,图像增强,滤波等等2: 匹配Cost计算Cost aggregation      每个像素点的matching cost可用下图所示的

2017-07-13 18:32:48 4657

转载 图像抠图算法学习 - Shared Sampling for Real-Time Alpha Matting

一、序言     陆陆续续的如果累计起来,我估计至少有二十来位左右的朋友加我QQ,向我咨询有关抠图方面的算法,可惜的是,我对这方面之前一直是没有研究过的。除了利用和Photoshop中的魔棒一样的技术或者Photoshop中的选区菜单中的色彩范围类似的算法(这两个我有何PS至少90%一致的代码)是实现简单的抠图外,现在一些state of art 方面的算法我都不了解。因此,也浪费了不少的

2017-07-13 18:05:04 1060

转载 双目匹配与视差计算

立体匹配主要是通过找出每对图像间的对应关系,根据三角测量原理,得到视差图;在获得了视差信息后,根据投影模型很容易地可以得到原始图像的深度信息和三维信息。立体匹配技术被普遍认为是立体视觉中最困难也是最关键的问题,主要是以下因素的影响: (1) 光学失真和噪声(亮度、色调、饱和度等失衡)(2) 平滑表面的镜面反射(3) 投影缩减(

2017-07-13 17:05:01 2735

转载 Stereo match 基本原理介绍

这是第一篇博客,想把之前写的一些东西整理成技术博客,陆续的搬运过来吧。介绍一下一直在做的Stereo match 的基本原理:图1.1    cones_left.jpg图1.2  cones_left.jpg             为了模拟人眼对立体场景的捕捉和对不同景物远近的识别能力,立体匹配算法要求采用两个摄像

2017-07-13 16:43:39 3990

转载 OpenCV三种立体匹配求视差图算法总结

对OpenCV中涉及的三种立体匹配算法进行代码及各自优缺点总结:首先我们看一下BM算法:该算法代码:[cpp] view plain copyCvStereoBMState *BMState = cvCreateStereoBMState();    int SADWindowSize=15;    BMState->SADW

2017-07-13 16:42:32 1069

原创 opencv学习笔记(六)直方图比较图片相似度

opencv提供了API来比较图片的相似程度,使我们很简单的就能对2个图片进行比较,这就是直方图的比较,直方图英文是histogram, 原理就是就是将图片转换成直方图,然后对直方图进行比较,在某些程度,真实地反映了图片的相似度。代码如下: 1 #include 2 #include 3 #include 4 using namespace std; 5 usin

2017-07-10 17:45:12 3814

转载 深度学习(一)深度学习学习资料

一、学习清单1、综合类(1)收集了各种最新最经典的文献,神经网络的资源列表:https://github.com/robertsdionne/neural-network-papers  里面包含了深度学习领域经典、以及最新最牛逼的算法,如果把这个列表学过一遍,基本已然达到了大神级别。(2)机器学习学习清单:https://github.com/ujjwalkarn/Machine

2017-07-10 10:38:58 360

原创 Ubuntu下boost库的编译安装步骤及卸载方法详解

最近由于编译一个程序用到了C++的boost库,所以便安装了这个库。但是,其中遇到了一些小问题。所以记录下来,以供别人参考。首先说一下我的环境:Ubuntu 12.04 32bit,  gcc 4.6.3其实在ubuntu下,可以用一下命令直接安装sudo apt-get install libboost-dev但是,我这样安装以后,编译程序时出现了很多错误,而且都

2017-07-09 23:47:12 2622

转载 caffe -- mnist示例程序详解

caffe中的mnist示例程序超详解,中间包含准备数据、网络模型解析、训练和测试全过程,以及遇到的error和解决方法准备数据下载数据 cd $CAFFE_ROOT ./data/mnist/get_mnist.sh  文件内部:  运行完成得到四个文件  数据转化 ./examples/mnist/create_mnist.sh  该

2017-07-09 10:26:48 600

原创 Ubuntu 14.04 64位机上不带CUDA支持的Caffe配置编译操作过程

Caffe是一个高效的深度学习框架。它既可以在CPU上执行也可以在GPU上执行。         下面介绍在Ubuntu上不带CUDA的Caffe配置编译过程:1.      安装BLAS:$ sudo apt-get install libatlas-base-dev2.      安装依赖项:$ sudo apt-get install libprotobuf-dev liblev

2017-07-09 10:25:01 330

原创 图像缩放的双线性内插值算法的原理解析

图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。当然,在计算机上,我们不再需要用放大尺去放大或缩小图像了,把这个工作交给程序来完成就可以了。下面就来讲讲计算机怎么来放大缩小图象;在本文中,我们所说的图像都是指点阵图,也就是用一个像素矩阵来描述图像的方法,对于另一种图像:用函数来描述图像的矢量图,不在本文讨论之列。越是简单的模型越

2017-07-03 15:45:18 720 1

原创 OpenCL编译环境配置(VS+Nvidia)

英伟达的显卡首先要下载安装CUDA开发包,可以参考这里的步骤:   VS2015编译环境下CUDA安装配置安装好CUDA之后,OpenCL的配置就已经完成了80%了,剩下的工作就是把OpenCL的路径添加到工程中。1. 新建一个win32控制台应用程序,在工程的属性管理器Debug中添加一个属性页“OpenCL.props”,之后双击打开2. 在C/

2017-07-03 12:02:01 1177

转载 ARM新GPU架构Midgard

ARM公司对于能够在 移动设备 占有绝大部分的份额一直是颇感自豪。但是ARM公司并不只将目光放在处理器核心上,现在也开始在GPU核心上发力。该公司的研发目标之一就是通过CPU核心与GPU核心的 联合异构计算 以 提升性能/功耗表现,因此ARM公司新一代GPU核心就支持 充足的通用处理功能。     ARM公司将挪威GPU开发厂商Falanx购入旗下,之后就推出了由Falanx开发的 Mal

2017-05-08 14:34:11 762

转载 光流Optical Flow介绍与OpenCV实现

光流(optic flow)是什么呢?名字很专业,感觉很陌生,但本质上,我们是最熟悉不过的了。因为这种视觉现象我们每天都在经历。从本质上说,光流就是你在这个运动着的世界里感觉到的明显的视觉运动(呵呵,相对论,没有绝对的静止,也没有绝对的运动)。例如,当你坐在火车上,然后往窗外看。你可以看到树、地面、建筑等等,他们都在往后退。这个运动就是光流。而且,我们都会发现,他们的运动速度居然不一样?这就给我们

2017-05-03 10:18:18 862

转载 [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

1 前言经过3天奋战,终于在Ubuntu 16.04上把Android 6.0的源码编译出来了,各种配置,各种error,各种爬坑,特写此博客记录爬坑经历。先上图,Ubuntu上编译完后成功运行模拟器,如图:2 编译环境UbuntuKylin 16.04 LTSAndroid 6.0_r1Open JDK 73 准备工作(1) 下载Android 6

2017-02-22 13:55:58 965

转载 Android内存泄露分析(MemoryAnalyzer工具)

前提条件:1,电脑安装了Java 运行环境  2,手机端开启了 USB 调试开关 3,获取 root 权限基本步骤:1,使用eclipse 自带的 DDMS 工具分析各线程的内存使用情况,如下图所示Heap视图界面会定时刷新,在对应用的不断的操作过程中就可以看到内存使用的变化。怎样判断当前进程是否有内存泄漏

2016-11-21 13:21:42 785 1

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