圖像分類
將只有一個桌子的圖片中的桌子分辨爲桌子
目標檢測
將圖像中的桌子和椅子分別用框框框出來,且框儘量小
目標追蹤
在視頻的第一幀中檢測到一個目標,並框出來,然後在第二幀以及往後的幀中框出目標
風格遷移
將A圖片中的風格a和B圖片中的目標b相結合,做出圖片C(風格a的目標b)
超像素
將一個像素做成多個像素(去馬賽克,舊照片翻新)
圖像拼接
A圖片右邊爲目標z,B圖片左邊爲目標z,可以將A和B圖片拼接到一塊(重合目標z)
語義分割
將圖像中的桌子中的所有像素標紅(只能標桌子的像素)
人臉識別
將圖像中的人識別爲人。(用於安檢)
衆所周知,在計算機的世界裏面信息是01表示的。
到底01 是怎麼表示圖像的呢?
2*2 4個像素,8bit/像素 的圖片
0b1111 1111表示白,0b0000 0000表示黑, 0b0111 1111 表示灰 (當然 0b0000 0000 到 0b1111 1111 中間的數值都可以表示一個像素的顏色)
黑白圖片就是用一個矩陣表示出來的
- -
| 0b00000000 0b00000101|
| 0b11100110 0b00101011|
- -
2*2 4個像素,8bit/像素 的圖片
彩色圖就是用3個矩陣表示出來的,R矩陣,G矩陣,B矩陣。
0b1111 1111表示滿,0b0000 0000表示空, 0b0111 1111 表示半空 (當然 0b0000 0000 到 0b1111 1111 中間的數值都可以表示一個色素的顏色)
R矩陣
- -
| 0b00000000 0b00000101|
| 0b11100110 0b00101011|
- -
G矩陣
- -
| 0b00000000 0b00000001|
| 0b11101110 0b00101011|
- -
B矩陣
- -
| 0b00000010 0b00001101|
| 0b11101110 0b00001011|
- -
灰度直方圖
展示灰度爲x(例如0b00001000)的比例爲多少
可以知道這張圖是偏白(整體偏右)還是偏黑
可以知道對比度是大還是低(像素集中)
去噪
現象:周圍是一些35-50的點,但是突然出現幾個255(白),0(黑)的點,這個點叫做椒鹽噪點
處理,將255 或者 0 點 改爲 35-50 的點, 這個過程叫做磨平。過程中用到了濾波器,也叫核(kernel)。用核(3*3)在矩陣中滑動,叫做卷積。這個核每滑動一次,會對核心的數據進行修改一次。
原圖像爲 S*S , 核爲N*N,步長爲K,那麼卷積處理的數據的長寬爲 [S-N+1/K] 的上取整,最外面那圈數據就不要了??爲什麼
爲了保存最外面那圈數據,就做一個處理,將外面在擴充一圈,叫做padding,至於擴充的數據爲什麼,一般爲0或者255。也可以是其他的數。
如果padding A圈那麼 卷積處理的數據的長寬就變爲了 [S+2*A-N+1/K]
核心數據修改方法:
平均濾波:
方法:修改後的核心數據 = 1/9 的 核內的 9個數
問題:再怎麼平均,椒鹽噪點還是對最終數據有影響
中值濾波:
方法:修改後的核心數據 = 核內的 9個數的中位數
全連接神經網絡
--------------一層網絡
輸入1 網絡 輸出1
輸入2 網絡 輸出2
. .
. 網絡 .
. 網絡 .
輸入N 輸出K
網絡的函數爲 多元一次方程
Yk = X1Wk1 + X2Wk2 + ... + XnWkn + Bk
所以對應所有的網絡,需要 N*K 個W(權重), K個B(bias)
所謂的網絡訓練就是不斷更新 N*K 個W(權重), K個B(bias)
--------------多層網絡
輸入1 網絡1 網絡2 ... 輸出1
輸入2 網絡1 網絡2 ... 輸出2
. .
. 網絡1 網絡2 ...
. 網絡1 網絡2 ...
輸入N 輸出K
網絡的函數爲
Yk(next) = X1(prev)Wk1 + X2(prev)Wk2 + ... + Xn(prev)Wkn + Bk(prev)
所以對應所有的網絡,需要 N*K 個W(權重), K個B(bias)
線性網絡在圖片上劃出的線都是直線,有時候需要用曲線分割圖像,所以需要非線性網絡???
對應的需要 在 多元一次方程上添加一個激活函數
激活函數分類
sigmoid函數
將所有的值通過運算出來,結果範圍爲0~1
tanh函數
將所有的值通過運算出來,結果範圍爲-1~1
relu函數(用的比較廣泛)
小於0不激活,大於0開始激活
leaky relu
小於0激活度小,大於0激活度大