第一章 圖像處理
01、數(shù)字圖像概述
像素是數(shù)字圖像的基本元素。像素是在模擬圖像數(shù)字化時對連續(xù)空間離散化得到的。
02、 顏色空間
RGB顏色最大的好處是適合顯示系統(tǒng),直觀且容易理解,但是有如下不足:
1.RGB利用3個顏色分量的線性組合來表示顏色,因此不同的色彩難以用精確的數(shù)值表示,定量分析困難
2.在RGB顏色系統(tǒng)中,3個顏色分量之間是高度相關(guān)的,即只要亮度改變,三個分量都會相應(yīng)改變,如果一個顏色的某個分量發(fā)生了改變,那么這顏色也可能要發(fā)生改變
3.RGB顏色空間是一種均勻性較差的顏色空間
03、視覺傳感器
TOF、雙目、結(jié)構(gòu)光

04、深度圖像
深度圖像也被稱為距離影像,是將從圖像采集器到場景中各點的距離(深度)作為像素值的圖像,它直接反映了景物可見的幾何形狀,深度圖像經(jīng)過坐標轉(zhuǎn)化可以計算出點云數(shù)據(jù)。
在PCL [(Point Cloud Library)是在吸收了前人點云相關(guān)研究基礎(chǔ)上建立起來的大型跨平臺開源C++編程庫] 中深度圖像和點云圖像區(qū)別在于,其鄰近的檢索方式不同,并且可以相互轉(zhuǎn)換。
05、圖像灰度化
我們?nèi)粘L幚韴D片時候很多時候是把圖像灰度化,因為灰度圖像是單通道的,RGB圖像是三通道的,計算量少。

06、直方圖
直方圖又稱質(zhì)量分布圖,是一種統(tǒng)計報告圖,一般用一些縱向條紋表示數(shù)據(jù)分布的情況。
07、直方圖均衡化
就是通過一個數(shù)學(xué)公式,增強圖像對比度,便于把特征區(qū)分開。
09、邊緣檢測
邊緣檢測是檢測灰度變換較大的區(qū)域,常見的算法如Sobel算子,或叫sobel濾波,它的原理是使用3*3矩陣對原圖進行卷積,計算出兩個方向的灰度差分(偏導(dǎo));另外還有Canny邊緣檢測算子
10、圖像卷積
卷積在圖像中最大的應(yīng)用是平滑化(應(yīng)該是平滑吧,銳化主要是高通濾波和微分濾波法,銳化是使得灰度變換大的區(qū)域更清晰,即圖像高頻部分,這部分要多保留) 和 邊緣檢測(常用于計算圖像邊緣或者說梯度值)。
色彩劇烈變化的地方,就是圖像的高頻區(qū)域;色彩穩(wěn)定平滑的地方,就是低頻區(qū)域
11、圖像去噪
消除圖像中的噪聲成分也叫做圖像的平滑化或濾波操作。
高斯噪聲:是指它的概率密度函數(shù)符合高斯分布(正態(tài)分布)的一類噪聲。
椒鹽噪聲:也稱脈沖噪聲,它是一種隨機出現(xiàn)的白點或者黑點。
信噪比(SNR):信號與噪聲的比值。
高斯濾波:一種線性平滑濾波,可以消除高斯噪聲。高斯濾波就是對整幅圖像進行加權(quán)平均的過程,每一個像素點的值都是像素本身和鄰域內(nèi)其他像素加權(quán)獲得。
另外還有 均值濾波;鄰域平均法;中值濾波;形態(tài)學(xué)噪聲濾波;小波去噪;
12、圖像縮放
最鄰近圖像插值算法;雙線性插值算法;
第二章 相機標定
13、相機模型 和 標定

14、內(nèi)外參定義
相機中有四個坐標系:世界坐標系;相機坐標系;圖像坐標系;像素坐標系;
相機坐標之間的轉(zhuǎn)換就是 RT矩陣變換,即剛體的旋轉(zhuǎn)平移。

15、標定方法的概述
通常使用棋盤格作為相機標定的工具,因為角點就是很好的特征。
大致步驟,打印一張A4紙的棋盤格(黑白間距需要已知,用于外參標定),并貼在一個平板上,針對棋盤格拍攝若干照片(10-20張),在圖片中檢測特征點(Harris特征),利用 解析解 估算方法 計算出5個內(nèi)部參數(shù),以及6個外部參數(shù),根據(jù)極大似然估計策略,設(shè)計優(yōu)化目標并實現(xiàn)參數(shù)的refinement (改善;也就是 張正友標定法)
機器人一般用:xyz-4點標定法(TCP以不同的姿態(tài)移動到參考點的位置)
2D視覺常用標定板:實心圓陣列圖案;國際象棋盤圖案
17、張正友標定方法




內(nèi)參外參標定,技術(shù)較為復(fù)雜
18、手眼標定
第三章 圖形檢測
19、直線檢測
說到圖形檢測,必提 Hough 變換(霍夫變換),是一種特征提取技術(shù),用于隔離圖像中 特定形狀的技術(shù)。比如直線檢測,就可以通過霍夫變換。

圓形檢測,也是認為圖像中一個非零像素點都有可能是 一個潛在的圓上的點,跟霍夫變換一樣,也是通過投票,生產(chǎn)累計坐標平面,設(shè)置一個累計權(quán)重來定位圓。
矩形檢測,利用直線檢測的功能,將檢測的直線段存儲在一個列表里;從列表中提取出一條直線段,檢測與它相連的直線;檢測是否有四條直線段,依次垂直閉合相連。
第四章 二維檢測
22、二維碼作用和種類概述


23、二維碼檢測

預(yù)處理 之后,就開始 進行 四邊形檢測,步驟如下:
- 邊緣檢測。常見的有 Canny邊緣檢測算子;Sobel算子。
- 過濾四邊形或者較小的四邊形。
- 利用角度對四邊形 進一步篩選。
- 在RGB圖中標示出檢測到的四邊形(就是類似halcon里面的一些過程)
24、圖像仿射原理
在攝像頭得到的圖像中,比如上方二維碼,四邊形會有旋轉(zhuǎn)畸變,我們需要判斷二維碼是左偏還是右偏了,這就需要仿射變換將它扭正。
25、漢明碼
漢明碼的設(shè)計初衷是作為 信息校驗碼存在的,就是防止數(shù)據(jù)出錯。
26、二維碼的識別

27、二維碼測距


二維碼坐標系相對于機器人相機坐標系的位置,我們可以通過PnP來判定。再通過齊次變換矩陣連乘的方式,就可以獲得二維碼坐標在機器人坐標系下的位置。
28、二維碼的應(yīng)用
前身是一維碼,應(yīng)用很多了。普通的二維碼,很多就是一個網(wǎng)頁鏈接;對于付款二維碼,就比較復(fù)雜了,需要有個秘鑰的校驗;也可以作為slam的路標,比如貼在玻璃上;
第五章 LK光流
29、光流法概述
光流(optical flow) 是空間運動物體在觀察平面上的 像素運動的瞬時速度。
光流法是利用圖像序列中 像素在時域上的變化,以及相鄰幀之間的 相關(guān)性來找到 上一幀和當(dāng)前幀之間存在的對應(yīng)關(guān)系,從而計算出相鄰幀之間物體運動信息的一種方法。

30、光流方程
光流方程有兩個基本假設(shè)條件:
- 亮度恒定不變; 2. 時間連續(xù)或運動是小運動;
31、盧卡斯卡內(nèi)德方法
LK光流算法的原理和數(shù)學(xué)推導(dǎo)方法
32、Pyramid LK(金字塔光流法)
常規(guī)LK算法的約束條件是小速度、亮度不變,圖像區(qū)域一致性較強,但這種情況并不容易得到滿足。如果以上約束條件沒有滿足,最終算出來的結(jié)果誤差較大,那么金字塔光流法就是來解決這個問題的。
33、輔助人臉識別的LK光流法實例
大致方法是先獲得實時人臉,再通過LK光流算法計算人臉的中心位置,并使用seetaface開源人臉識別庫進行人臉位置校正,然后根據(jù)人臉位置相對于圖像中心位置,來計算機器人頭部跟隨人運動的方向。
34、其他追蹤方法介紹
傳統(tǒng)追蹤算法:LK;卡爾曼濾波以及各種相關(guān)濾波;CSK相關(guān)濾波;
第六章、傳感器融合
35、傳感器融合概述
比如里程計、比如 IMU(慣性測量單元)
卡爾曼濾波:是一種線性系統(tǒng) 狀態(tài)方程,通過系統(tǒng)輸入輸出觀測數(shù)據(jù),對系統(tǒng)狀態(tài)進行最優(yōu)估計的算法。由于觀測數(shù)據(jù)中包含系統(tǒng)中的噪聲和干擾的影響,所以最優(yōu)估計也可以看成是濾波過程。
粒子濾波:通過尋找一組在狀態(tài)空間中傳播的隨機樣本 來近似的表述概率密度函數(shù),用樣板均值代替積分算法,進而獲得系統(tǒng)狀態(tài)的最小方差估計的過程,這些樣本被形象稱為粒子,故稱為粒子濾波。
36、卡爾曼濾波(一)
以下暫略,都是關(guān)聯(lián)視覺slam技術(shù) (simultaneous localization and mapping 即時定位與地圖構(gòu)建) 這塊的。
第七章 視覺里程計
47、視覺里程計概述
Visual Odometry 視覺里程計:通過分析處理下相關(guān)圖像序列來確定機器人的位置和姿態(tài)。 其目標是跟進相機拍攝的圖像來 估算相機運動的特征。通常來說,可以認為是VSLAM(視覺slam)的前端。
視覺里程計主要有兩個方向,一是特征點法:能夠在噪聲較大,相機運動較快時運動,但缺點是 地圖是稀疏特征點; 二是 直接法,直接法不需要計算特征點,能夠建立稠密地圖,但是存在計算量大,魯棒性不好的缺點。
48、特征點
特征點:圖像中具有鮮明特性的部分 并能夠有效反應(yīng) 圖像本質(zhì)特征,能夠標識圖像中目標物體的點。
特征點要具備 可重復(fù)性、可區(qū)別性、高效性。
特征點的信息包括: 關(guān)鍵點-位置、大小、方向、評分等;描述性-特征點周圍的圖像信息。
常見的特征點:SIFT、SURF、ORB
。。。。。
56、構(gòu)造一個簡單的視覺里程計

57、直接法概述
盡管特征點法在視覺里程計中 占主流地位,不少研究者任務(wù)它有以下缺點:
- 關(guān)鍵點的提取與描述子的計算 非常耗時。實踐中,SIFT在CPU中是無法實時計算的,而ORB也需要20毫秒的計算。如果整個SLAM以 30毫秒/幀 的速度運行,那么一大半的時間都花在特征點計算上。
- 使用特征點時,忽略了特征點以外的所有信息。一張圖有幾十萬個像素,而特征點通常只有幾百個,會丟失大量信息。
- 相機有時候會運動到特征點缺失的地方,往往這些地方?jīng)]有明顯的紋理特征,比如大白墻,造成我們可能找不到足夠的匹配點來計算相機運動。
解決 方法是 采用多種方法根據(jù)使用場景 搭配使用。
58、光流法OV
直接法是從光流演變而來的,它們非常相似,具有相同的假設(shè)條件。光流描述了像素在圖像中的運動,而直接法則附帶了一個相機運動模型。
計算部分像素運動,稱之為 稀疏光流;計算所有像素運動稱為 稠密光流。稀疏光流主要以 盧卡斯卡內(nèi) 為代表,可以在SLAM中用于跟蹤特征點位置。
59、直接法

60、VSLAM簡介
slam主要解決“定位”與“地圖構(gòu)建”這兩個問題。也就是說一邊要估算傳感器的位置,一邊要建立周圍環(huán)境的模型。
怎么解決呢?這就需要用到傳感器。傳感器能以一定的形式觀察外部世界,不過,不同傳感器的觀察方式是不同的。當(dāng)用相機作為傳感器時,我們要做的,就是根據(jù)一張張連續(xù)的圖片(或視頻,一個意思),從中推斷相機的運動,以及周圍環(huán)境的情況。

大體上來說,SLAM發(fā)展有兩大趨勢:
- 往輕量級、小型化發(fā)展,讓其能嵌入到手機等小型化設(shè)備里,然后考慮以它為底層的功能應(yīng)用。畢竟,大部分的應(yīng)用都是實現(xiàn)機器人或VR、AR的功能,比如運動導(dǎo)航娛樂等。
- 利用高性能計算設(shè)備,實現(xiàn)高精度三維重建、場景理解等功能。
視覺慣導(dǎo)-融合SLAM方案。實際使用的時候,視覺結(jié)合慣導(dǎo)(又叫慣性傳感器,主要是檢測和測量加速度、傾斜、沖擊、振動、旋轉(zhuǎn)和多自由度(DoF)運動,是解決導(dǎo)航、定向和運動載體控制的重要部件)