均值漂移演算法
Ⅰ 視覺追蹤的典型演算法
(1)基於區域的跟蹤演算法
基於區域的跟蹤演算法基本思想是:將目標初始所在區域的圖像塊作為目標模板,將目標模板與候選圖像中所有可能的位置進行相關匹配,匹配度最高的地方即為目標所在的位置。最常用的相關匹配准則是差的平方和准則,(Sum of Square Difference,SSD)。
起初,基於區域的跟蹤演算法中所用到的目標模板是固定的,如 Lucas 等人提出 Lucas-Kanade 方法,該方法利用灰度圖像的空間梯度信息尋找最佳匹配區域,確定目標位置。之後,更多的學者針對基於區域方法的缺點進行了不同的改進,如:Jepson 等人提出的基於紋理特徵的自適應目標外觀模型[18],該模型可以較好的解決目標遮擋的問題,且在跟蹤的過程中採用在線 EM 演算法對目標模型進行更新;Comaniciu 等人[19]提出了基於核函數的概率密度估計的視頻目標跟蹤演算法,該方法採用核直方圖表示目標,通過 Bhattacharya 系數計算目標模板與候選區域的相似度,通過均值漂移(MeanShift)演算法快速定位目標位置。
基於區域的目標跟蹤演算法採用了目標的全局信息,比如灰度信息、紋理特徵等,因此具有較高的可信度,即使目標發生較小的形變也不影響跟蹤效果,但是當目標發生較嚴重的遮擋時,很容易造成跟蹤失敗。
(2)基於特徵的跟蹤方法
基於特徵的目標跟蹤演算法通常是利用目標的一些顯著特徵表示目標,並通過特徵匹配在圖像序列中跟蹤目標。該類演算法不考慮目標的整體特徵,因此當目標被部分遮擋時,仍然可以利用另一部分可見特徵完成跟蹤任務,但是該演算法不能有效處理全遮擋、重疊等問題。
基於特徵的跟蹤方法一般包括特徵提取和特徵匹配兩個過程:
a) 特徵提取
所謂特徵提取是指從目標所在圖像區域中提取合適的描繪性特徵。這些特徵不僅應該較好地區分目標和背景,而且應對目標尺度伸縮、目標形狀變化、目標遮擋等情況具有魯棒性。常用的目標特徵包括顏色特徵、灰度特徵、紋理特徵、輪廓、光流特徵、角點特徵等。D.G. Lowe 提出 SIFT(Scale Invariant Feature Transform)演算法[20]是圖像特徵中效果較好的一種方法,該特徵對旋轉、尺度縮放、亮度變化具有不變性,對視角變化、仿射變換、雜訊也具有一定的穩定性。
b) 特徵匹配
特徵匹配就是採用一定的方式計算衡量候選區域與目標區域的相似性,並根據相似性確定目標位置、實現目標跟蹤。在計算機視覺領域中,常用的相似性度量准則包括加權距離、Bhattacharyya 系數、歐式距離、Hausdorff 距離等。其中,Bhattacharyya 系數和歐式距離最為常用。
Tissainayagam 等人提出了一種基於點特徵的目標跟蹤演算法[21]。該演算法首先在多個尺度空間中尋找局部曲率最大的角點作為關鍵點,然後利用提出的MHT-IMM 演算法跟蹤這些關鍵點。這種跟蹤演算法適用於具有簡單幾何形狀的目標,對於難以提取穩定角點的復雜目標,則跟蹤效果較差。
Zhu 等人提出的基於邊緣特徵的目標跟蹤演算法[22],首先將參考圖像劃分為多個子區域,並將每個子區域的邊緣點均值作為目標的特徵點,然後利用類似光流的方法進行特徵點匹配,從而實現目標跟蹤。
(3)基於輪廓的跟蹤方法
基於輪廓的目標跟蹤方法需要在視頻第一幀中指定目標輪廓的位置,之後由微分方程遞歸求解,直到輪廓收斂到能量函數的局部極小值,其中,能量函數通常與圖像特徵和輪廓光滑度有關。與基於區域的跟蹤方法相比,基於輪廓的跟蹤方法的計算復雜度小,對目標的部分遮擋魯棒。但這種方法在跟蹤開始時需要初始化目標輪廓,因此對初始位置比較敏感,跟蹤精度也被限制在輪廓級。
Kass 等人[23]於 1987 年提出的活動輪廓模型(Active Contour Models,Snake),通過包括圖像力、內部力和外部約束力在內的三種力的共同作用控制輪廓的運動。內部力主要對輪廓進行局部的光滑性約束,圖像力則將曲線推向圖像的邊緣,而外部力可以由用戶指定,主要使輪廓向期望的局部極小值運動,。
Paragios 等人[24]提出了一種用水平集方法表示目標輪廓的目標檢測與跟蹤演算法,該方法首先通過幀差法得到目標邊緣,然後通過概率邊緣檢測運算元得到目標的運動邊緣,通過將目標輪廓向目標運動邊緣演化實現目標跟蹤。
(4)基於模型的跟蹤方法[25]
在實際應用中,我們需要跟蹤的往往是一些特定的我們事先具有認識的目標,因此,基於模型的跟蹤方法首先根據自己的先驗知識離線的建立該目標的 3D 或2D 幾何模型,然後,通過匹配待選區域模型與目標模型實現目標跟蹤,進而在跟蹤過程中,根據場景中圖像的特徵,確定運動目標的各個尺寸參數、姿態參數以及運動參數。
Shu Wang 等人提出一種基於超像素的跟蹤方法[26],該方法在超像素基礎上建立目標的外觀模板,之後通過計算目標和背景的置信圖確定目標的位置,在這個過程中,該方法不斷通過分割和顏色聚類防止目標的模板漂移。
(5)基於檢測的跟蹤演算法
基於檢測的跟蹤演算法越來越流行。一般情況下,基於檢測的跟蹤演算法都採用一點學習方式產生特定目標的檢測器,即只用第一幀中人工標記的樣本信息訓練檢測器。這類演算法將跟蹤問題簡化為簡單的將背景和目標分離的分類問題,因此這類演算法的速度快且效果理想。這類演算法為了適應目標外表的變化,一般都會採用在線學習方式進行自更新,即根據自身的跟蹤結果對檢測器進行更新。
Ⅱ 無人駕駛(三)行人跟蹤演算法
姓名:王夢妮
學號:20021210873
學院:電子工程學院
【嵌牛導讀】本文主要介紹了無人駕駛中所需的行人跟蹤演算法
【嵌牛鼻子】無人駕駛 環境感知 計算機視覺 卡爾曼濾波 粒子濾波 均值漂移
【嵌牛提問】無人駕駛中所用到的行人跟蹤演算法有哪些
【嵌牛正文】
行人跟蹤一直是視覺領域的一個難點,實際應用環境復雜、遮擋以及行人姿態變化等外界因素都影響著行人跟蹤演算法的研究。行人跟蹤演算法模型主要分為生成模型和判別模型。
(一)生成式模型
生成式模型是一種通過在線學習行人目標特徵,建立行人跟蹤模型,然後使用模型來搜索誤差最小的目標區域,從而完成對行人的跟蹤。這種演算法在構建模型只考慮了行人本身的特徵,忽略了背景信息,沒有做到有效利用圖像中的全部信息。其中比較經典的演算法主要有卡爾曼濾波,粒子濾波,mean-shift等。
(1)卡爾曼濾波演算法
卡爾曼濾波演算法是一種通過對行人構建狀態方程和觀測方程為基礎,計算最小均方誤差來實現跟蹤的最優線性遞歸濾波演算法,通過遞歸行人的運動狀態來預測行人軌跡的變化。
首先設定初始參數,讀取視頻序列。然後進行背景估計,產生初始化背景圖像。然後依次讀取視頻序列,利用Kahnan濾波演算法,根據上一幀估計的背景和當前幀數據得到當前幀的前景目標。然後對前景目標進行連通計算,檢測出運動目標的軌跡。經典的卡爾曼濾波演算法.只能對線性運動的行人實現跟蹤,之後學者改進了卡爾曼濾波演算法,能夠實現對非線性運動的行人進行跟蹤,計算量小,能實現實時跟蹤,但是跟蹤效果不理想。
(2)粒子濾波
粒子濾波的核心就是貝葉斯推理和重要性采樣。粒子濾波可用於非線性非高斯模型,這是由於貝葉斯推理採用蒙特卡洛法,以某個時間點事件出現的頻率表示其概率。通過一組粒子對整個模型的後驗概率分布進行近似的表示,通過這個表示來估計整個非線性非高斯系統的狀態。重要性採用就是通過粒子的置信度來賦予不同的權重,置信度高的粒子,賦予較大的權重,通過權重的分布形式表示相似程度。
(3)均值漂移(mean-shift)
Mean-shift演算法屬於核密度估計法。不必知道先驗概率,密度函數值由采樣點的特徵空間計算。通過計算當前幀目標區域的像素特徵值概率來描述目標模型,並對候選區域進行統一描述,使用相似的函數表示目標模型與候選模板之間的相似度,然後選擇在具有相似函數值最大的候選模型中,您將獲得關於目標模型的均值漂移向量,該向量表示目標從當前位置移動到下一個位置的向量。通過連續迭代地計算均值偏移矢量,行人跟蹤演算法將最終收斂到行人的實際位置,從而實現行人跟蹤。
(二) 判別式模型
判別模型與生成模型不同,行人跟蹤被視為二分類問題。提取圖像中的行人和背景信息,並用於訓練分類器。通過分類將行人從圖像背景中分離出來,以獲取行人的當前位置。以行人區域為正樣本,背景區域為負樣本,通過機器學習演算法對正樣本和負樣本進行訓練,訓練後的分類器用於在下一幀中找到相似度最高的區域,以完成行人軌跡更新。判別式模型不像生成式模型僅僅利用了行人的信息,還利用了背景信息,因此判別式模型的跟蹤效果普遍優於生成式模型。
(1)基於相關濾波的跟蹤演算法
核相關濾波(KCF)演算法是基於相關濾波的經典跟蹤演算法,具有優良的跟蹤效果和跟蹤速度。這是由於其採用了循環移位的方式來進行樣本生產,用生成的樣本來訓練分類器,通過高斯核函數來計算當前幀行人與下一幀中所有候選目標之間的相似概率圖,找到相似概率圖最大的那個候選目標,就得到了行人的新位置。KCF演算法為了提高跟蹤精度,使用HOG特徵對行人進行描述,同時結合了離散傅里葉變換來降低計算量。
(2)基於深度學習的跟蹤演算法
近年來,深度學習在圖像和語音方面取得了較大的成果,因此有許多科研人員將深度學習與行人跟蹤相結合,取得了比傳統跟蹤演算法更好的性能。DLT就是一個基於深度學習的行人跟蹤演算法,利用深度模型自動編碼器通過離線訓練的方式,在大規模行人數據集上得到一個行人模型,然後在線對行人進行跟蹤來微調模型。首先通過粒子濾波獲取候選行人目標,然後利用自動編碼器進行預測,最終得到行人的預測位置即最大輸出值的候選行人目標位置。2015年提出的MDNet演算法採用了分域訓練的方式。對於每個類別,一個單獨的全連接層用於分類,並且全連接層前面的所有層都是共享,用於特徵提取。2017年提出的HCFT演算法使用深度學習對大量標定數據進行訓練,得到強有力的特徵表達模型,結合基於相關濾波的跟蹤演算法,用於解決在線進行跟蹤過程中行人樣本少、網路訓練不充分的問題。此外,通過深度學習提取特徵,利用數據關聯的方法來實現跟蹤的演算法,其中最為著名的就JPDAF與MHT這兩種方法。
Ⅲ 學會用聚類演算法進行數據挖掘需要怎樣的數學基礎
會用聚類演算法進行數據挖掘需要線性代數, 變分演算,距離度量,距離矩陣等的數學知識基礎。
在數據科學中,我們可以通過聚類分析觀察使用聚類演算法後獲得一些有價值的信息,其中會涉及許多數學理論與實際計算。
主要有以下幾類演算法:
K-Means(k-平均或k-均值)是普遍知名度最高的一種聚類演算法,在許多有關數據科學和機器學習的課程中經常出現。
Mean shift演算法,又稱均值漂移演算法,這是一種基於核密度估計的爬山演算法,適用於聚類、圖像分割、跟蹤等
DBSCAN是一種基於密度的聚類演算法,它不需要輸入要劃分的聚類個數,對聚類的形狀沒有偏倚。
層次聚類會將每個數據點視為單個聚類,然後連續合並成對的聚類,直到所有聚類合並成包含所有數據點的單個聚類。
關於數據挖掘的相關學習,推薦CDA數據師的相關課程,課程內容兼顧培養解決數據挖掘流程問題的橫向能力以及解決數據挖掘演算法問題的縱向能力。要求學生具備從數據治理根源出發的思維,通過數字化工作方法來探查業務問題,通過近因分析、宏觀根因分析等手段,再選擇業務流程優化工具還是演算法工具,而非「遇到問題調演算法包」。點擊預約免費試聽課。
Ⅳ 人工智慧演算法簡介
人工智慧的三大基石—演算法、數據和計算能力,演算法作為其中之一,是非常重要的,那麼人工智慧都會涉及哪些演算法呢?不同演算法適用於哪些場景呢?
一、按照模型訓練方式不同可以分為監督學習(Supervised Learning),無監督學習(Unsupervised Learning)、半監督學習(Semi-supervised Learning)和強化學習(Reinforcement Learning)四大類。
常見的監督學習演算法包含以下幾類:
(1)人工神經網路(Artificial Neural Network)類:反向傳播(Backpropagation)、波爾茲曼機(Boltzmann Machine)、卷積神經網路(Convolutional Neural Network)、Hopfield網路(hopfield Network)、多層感知器(Multilyer Perceptron)、徑向基函數網路(Radial Basis Function Network,RBFN)、受限波爾茲曼機(Restricted Boltzmann Machine)、回歸神經網路(Recurrent Neural Network,RNN)、自組織映射(Self-organizing Map,SOM)、尖峰神經網路(Spiking Neural Network)等。
(2)貝葉斯類(Bayesin):樸素貝葉斯(Naive Bayes)、高斯貝葉斯(Gaussian Naive Bayes)、多項樸素貝葉斯(Multinomial Naive Bayes)、平均-依賴性評估(Averaged One-Dependence Estimators,AODE)
貝葉斯信念網路(Bayesian Belief Network,BBN)、貝葉斯網路(Bayesian Network,BN)等。
(3)決策樹(Decision Tree)類:分類和回歸樹(Classification and Regression Tree,CART)、迭代Dichotomiser3(Iterative Dichotomiser 3, ID3),C4.5演算法(C4.5 Algorithm)、C5.0演算法(C5.0 Algorithm)、卡方自動交互檢測(Chi-squared Automatic Interaction Detection,CHAID)、決策殘端(Decision Stump)、ID3演算法(ID3 Algorithm)、隨機森林(Random Forest)、SLIQ(Supervised Learning in Quest)等。
(4)線性分類器(Linear Classifier)類:Fisher的線性判別(Fisher』s Linear Discriminant)
線性回歸(Linear Regression)、邏輯回歸(Logistic Regression)、多項邏輯回歸(Multionmial Logistic Regression)、樸素貝葉斯分類器(Naive Bayes Classifier)、感知(Perception)、支持向量機(Support Vector Machine)等。
常見的無監督學習類演算法包括:
(1) 人工神經網路(Artificial Neural Network)類:生成對抗網路(Generative Adversarial Networks,GAN),前饋神經網路(Feedforward Neural Network)、邏輯學習機(Logic Learning Machine)、自組織映射(Self-organizing Map)等。
(2) 關聯規則學習(Association Rule Learning)類:先驗演算法(Apriori Algorithm)、Eclat演算法(Eclat Algorithm)、FP-Growth演算法等。
(3)分層聚類演算法(Hierarchical Clustering):單連鎖聚類(Single-linkage Clustering),概念聚類(Conceptual Clustering)等。
(4)聚類分析(Cluster analysis):BIRCH演算法、DBSCAN演算法,期望最大化(Expectation-maximization,EM)、模糊聚類(Fuzzy Clustering)、K-means演算法、K均值聚類(K-means Clustering)、K-medians聚類、均值漂移演算法(Mean-shift)、OPTICS演算法等。
(5)異常檢測(Anomaly detection)類:K最鄰近(K-nearest Neighbor,KNN)演算法,局部異常因子演算法(Local Outlier Factor,LOF)等。
常見的半監督學習類演算法包含:生成模型(Generative Models)、低密度分離(Low-density Separation)、基於圖形的方法(Graph-based Methods)、聯合訓練(Co-training)等。
常見的強化學習類演算法包含:Q學習(Q-learning)、狀態-行動-獎勵-狀態-行動(State-Action-Reward-State-Action,SARSA)、DQN(Deep Q Network)、策略梯度演算法(Policy Gradients)、基於模型強化學習(Model Based RL)、時序差分學習(Temporal Different Learning)等。
常見的深度學習類演算法包含:深度信念網路(Deep Belief Machines)、深度卷積神經網路(Deep Convolutional Neural Networks)、深度遞歸神經網路(Deep Recurrent Neural Network)、分層時間記憶(Hierarchical Temporal Memory,HTM)、深度波爾茲曼機(Deep Boltzmann Machine,DBM)、棧式自動編碼器(Stacked Autoencoder)、生成對抗網路(Generative Adversarial Networks)等。
二、按照解決任務的不同來分類,粗略可以分為二分類演算法(Two-class Classification)、多分類演算法(Multi-class Classification)、回歸演算法(Regression)、聚類演算法(Clustering)和異常檢測(Anomaly Detection)五種。
1.二分類(Two-class Classification)
(1)二分類支持向量機(Two-class SVM):適用於數據特徵較多、線性模型的場景。
(2)二分類平均感知器(Two-class Average Perceptron):適用於訓練時間短、線性模型的場景。
(3)二分類邏輯回歸(Two-class Logistic Regression):適用於訓練時間短、線性模型的場景。
(4)二分類貝葉斯點機(Two-class Bayes Point Machine):適用於訓練時間短、線性模型的場景。(5)二分類決策森林(Two-class Decision Forest):適用於訓練時間短、精準的場景。
(6)二分類提升決策樹(Two-class Boosted Decision Tree):適用於訓練時間短、精準度高、內存佔用量大的場景
(7)二分類決策叢林(Two-class Decision Jungle):適用於訓練時間短、精確度高、內存佔用量小的場景。
(8)二分類局部深度支持向量機(Two-class Locally Deep SVM):適用於數據特徵較多的場景。
(9)二分類神經網路(Two-class Neural Network):適用於精準度高、訓練時間較長的場景。
解決多分類問題通常適用三種解決方案:第一種,從數據集和適用方法入手,利用二分類器解決多分類問題;第二種,直接使用具備多分類能力的多分類器;第三種,將二分類器改進成為多分類器今兒解決多分類問題。
常用的演算法:
(1)多分類邏輯回歸(Multiclass Logistic Regression):適用訓練時間短、線性模型的場景。
(2)多分類神經網路(Multiclass Neural Network):適用於精準度高、訓練時間較長的場景。
(3)多分類決策森林(Multiclass Decision Forest):適用於精準度高,訓練時間短的場景。
(4)多分類決策叢林(Multiclass Decision Jungle):適用於精準度高,內存佔用較小的場景。
(5)「一對多」多分類(One-vs-all Multiclass):取決於二分類器效果。
回歸
回歸問題通常被用來預測具體的數值而非分類。除了返回的結果不同,其他方法與分類問題類似。我們將定量輸出,或者連續變數預測稱為回歸;將定性輸出,或者離散變數預測稱為分類。長巾的演算法有:
(1)排序回歸(Ordinal Regression):適用於對數據進行分類排序的場景。
(2)泊松回歸(Poission Regression):適用於預測事件次數的場景。
(3)快速森林分位數回歸(Fast Forest Quantile Regression):適用於預測分布的場景。
(4)線性回歸(Linear Regression):適用於訓練時間短、線性模型的場景。
(5)貝葉斯線性回歸(Bayesian Linear Regression):適用於線性模型,訓練數據量較少的場景。
(6)神經網路回歸(Neural Network Regression):適用於精準度高、訓練時間較長的場景。
(7)決策森林回歸(Decision Forest Regression):適用於精準度高、訓練時間短的場景。
(8)提升決策樹回歸(Boosted Decision Tree Regression):適用於精確度高、訓練時間短、內存佔用較大的場景。
聚類
聚類的目標是發現數據的潛在規律和結構。聚類通常被用做描述和衡量不同數據源間的相似性,並把數據源分類到不同的簇中。
(1)層次聚類(Hierarchical Clustering):適用於訓練時間短、大數據量的場景。
(2)K-means演算法:適用於精準度高、訓練時間短的場景。
(3)模糊聚類FCM演算法(Fuzzy C-means,FCM):適用於精確度高、訓練時間短的場景。
(4)SOM神經網路(Self-organizing Feature Map,SOM):適用於運行時間較長的場景。
異常檢測
異常檢測是指對數據中存在的不正常或非典型的分體進行檢測和標志,有時也稱為偏差檢測。
異常檢測看起來和監督學習問題非常相似,都是分類問題。都是對樣本的標簽進行預測和判斷,但是實際上兩者的區別非常大,因為異常檢測中的正樣本(異常點)非常小。常用的演算法有:
(1)一分類支持向量機(One-class SVM):適用於數據特徵較多的場景。
(2)基於PCA的異常檢測(PCA-based Anomaly Detection):適用於訓練時間短的場景。
常見的遷移學習類演算法包含:歸納式遷移學習(Inctive Transfer Learning) 、直推式遷移學習(Transctive Transfer Learning)、無監督式遷移學習(Unsupervised Transfer Learning)、傳遞式遷移學習(Transitive Transfer Learning)等。
演算法的適用場景:
需要考慮的因素有:
(1)數據量的大小、數據質量和數據本身的特點
(2)機器學習要解決的具體業務場景中問題的本質是什麼?
(3)可以接受的計算時間是什麼?
(4)演算法精度要求有多高?
————————————————
原文鏈接: https://blog.csdn.net/nfzhlk/article/details/82725769