原创 OpenCV圖像邊緣檢測(sobel算法)

一、sobel算法簡介   索貝爾算子(Sobel operator)主要用作邊緣檢測,它是一離散性差分算子,它結合了高斯平滑和微分求導,用來運算圖像亮度函數的灰度之近似值。在圖像的任何一點使用此算子,將會產生對應的灰度矢量或是

原创 OpenCV 2.4.9核心模塊介紹

  OpenCV主要的核心模塊如下圖所示,這些模塊非常重要,下面將按照圖片上的順序對這些核心模塊的作用進行簡單的介紹,在我自己的電腦裏,放在C:\Users\cyk6625\Downloads\opencv\build\inclu

原创 貪心算法詳解

一、簡介 1.1 貪心算法基本思想   貪心算法(又稱貪婪算法)是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的局部最優解。   貪心算法不是對所有問題都能得到整體最

原创 CNN網絡層詳解

  常見的CNN網絡主要包含下面幾個網絡結構:卷積層、激活函數、池化層和全連接層。下面對這幾個結構在卷積神經網絡中的作用進行介紹。 一、卷積層 1.1 卷積操作和卷積層的作用   在介紹卷積層的作用之前,自己先介紹一下卷積操作的概念

原创 GoogLeNet網絡模型

一、GoogleNet模型簡介   GoogleNet和VGG是2014年imagenet競賽的雙雄,這兩類模型結構有一個共同特點是go deeper。跟VGG不同的是,GoogleNet做了更大膽的網絡上的嘗試而不是像VGG繼承了Le

原创 神經網絡中常見的激活函數

一、背景   爲什麼要使用激活函數?之前其實也有點困惑,最近整理了一下之前的筆記,總結一下。   首先是第一個問題:爲什麼要使用激活函數以及它的作用是什麼?使用激活函數的原因在於,以兩類數據的分類爲例,這些數據真正能線性可分的情況還是

原创 動態規劃詳解

一、基本思想   動態規劃算法的基本思想與分治法類似,也是將待求解的問題分解爲若干個子問題(階段),按順序求解子階段,前一子問題的解,爲後一子問題的求解提供了有用的信息。在求解任一子問題時,列出各種可能的局部解,通過決策保留那些有可能達

原创 AlexNet模型

一、AlexNet模型簡介   上面對LeNet這個網絡模型進行了介紹,該模型對手寫數字是被具有較高的識別率,但是對於大數據量、複雜的物體圖片分類,該模型的效果還是遠遠達不到要求的。在此背景下,AlexNet模型被提出,該模型在2012

原创 LeNet網絡模型

一、LeNet模型簡介   LeNet模型是一種用來識別手寫數字的最經典的卷積神經網絡,他是Yann LeCun在1998年設計並提出的。當年美國大多數銀行就是用它來識別支票上面的手寫數字的。它的識別準確性非常高。   LeNet的網

原创 RNN網絡詳解

一、RNN網絡簡介   RNN網絡的目的是用來處理序列數據,保存前後序列之間的前後關係,讓網絡對於信息具有記憶能力。對於傳統的神經網絡模型,它是從輸入層到隱含層再到輸出層,層與層之間是全連接的,每層之間的節點是無連接的。但是這種普通的神

原创 BRIEF 特徵點描述算法

一、BRIEF特徵點描述算法簡介   BRIEF是Binary Robust Independent Elementary Features的縮寫。這個特徵描述子是由EPFL的Calonder在ECCV2010上提出的。主要思路就是在特

原创 VGGNet網絡模型

一、VGGNet模型簡介   VGGNet由牛津大學的視覺幾何組(Visual Geometry Group,簡稱VGG)提出的,在ILSVRC-2014中取得了定位任務第一名和分類任務第二名,它總共有19層。其突出貢獻在於證明使用很小

原创 堆排序和歸併排序

一、堆排序 1.1 簡介   堆排序與快速排序,歸併排序一樣都是時間複雜度爲O(n*logn)的幾種常見排序方法。學習堆排序前,先講解下什麼是數據結構中的堆。   堆的定義:n個元素的序列{k1,k2,…,kn}當且僅當滿足下列關係

原创 神經網絡優化方法(避免過擬合,提高模型泛化性)

一、背景簡介   在深度學習和機器學習的各種模型訓練過程中,在訓練數據不夠多時,自己常常會遇到的問題就是過擬合(overfitting),過擬合的意思就是模型過度接近訓練的數據,使得模型的泛化能力降低,泛化能力降低表現爲模型在訓練集上測

原创 七大查找常見算法(下)

一、線性索引查找 1.1 簡介   前面講的幾種比較高效的查找方法是基於有序的基礎之上的(詳見七大查找常見算法(上)),而事實上,數據集可能增長非常快,例如,某些微博網站或大型論壇的帖子和回覆總數每天都是成百萬上千萬條,或者一些服務器