計算機視覺筆記及資料整理(含圖像分割、目標檢測)

前言

1、簡單聊聊:

在我腦海中我能通過這些年聽到的技術名詞來感受到技術的更新及趨勢,這種技術發展有時候我覺得連關注的腳步都趕不上。簡單回顧看看,從我能聽到的技術名詞來感受,最開始耳聞比較多「雲計算」這玩意,後來聽到比較多的是「數據挖掘」,然而本科畢業之後聽到的最多便是「人工智能」,整個技術圈似乎完全被這個詞所覆蓋,怎麼突然火起來這個?我覺得用 AlphaGo 這個可以去作個反應吧,找了下新聞資料:

2016年3月9日至15日,Google旗下的DeepMind智能系統——AlphaGo在韓國首爾對戰世界圍棋冠軍、職業九段選手李世石(又譯李世乭),這場人類與人工智能間的對決最終結果是AlphaGo以總比分4比1戰勝李世石。2017年5月23日至27日,世界排名第一的中國選手柯潔和AlphaGo展開“人機大戰2.0”三番棋較量,柯潔0:3敗北。

這個人工智能應用的例子無疑是當下最振奮人心的事件。之後也經常聽到谷歌研發無人駕駛相關新聞。我在想,無人駕駛?聽上去就牛逼轟轟不得了啊,這得多難!

另外,記得去年(2017年)一個叫「區塊鏈」的技術詞在很多地方看到,這又是啥?後來去搜了下資料看看,才明白是啥玩意(有興趣可以看阮一峯老師寫的區塊鏈入門教程)。一開始我們瞭解這個技術一般都是從比特幣開始,比特幣又是啥?想了解話網上資料很多,同時也推薦可以看看阮一峯老師寫的比特幣入門教程

從上面自己的耳聞變化我能感受技術趨勢的變化之快,科技發展速度真的很難想象,就比如手機 2G 到 3G 再到 4G 的變化,再過一兩年不出意外 5G 也應該能體驗到了,這種變化速度,真是苦逼了我們這些技術人。

上面瞎扯扯了一些,打住,說回來,還是回來人工智能這個話題來。下面來簡單說說人工智能。

在開始介紹人工智能、機器學習、深度學習之前,我覺得很有必要需要先科普或者說找幾篇文章瞭解下它們都是什麼以及有什麼區別:

2、人工智能:

人工智能無疑是這幾年最熱門的話題和焦點。什麼是人工智能?

人工智能(Artificial Intelligence),英文縮寫爲AI,是研究計算機來模擬人的思維過程和智能行爲(如學習、推理、思考、規劃等)的一門學科。主要包括計算機實現智能的原理、製造類似於人腦智能的計算機,使計算機能實現更高層次的應用。

人工智能是計算機科學的一個分支,它的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統等。

總結:人工智能—給機器賦予人的智能。

人工智能的概念很寬,所以人工智能也分很多種,我們可以按照實力將人工智能分爲以下三大類。(來源人工智能三個階段 弱人工智能 強人工智能 超人工智能 即使神也要臣服於科學

  • 弱人工智能:擅長於單個方面的人工智能。比如有能戰勝象棋世界冠軍的人工智能,但是它只會下象棋,你要問它怎樣更好地在硬盤上儲存數據,它就不知道怎麼回答你了。弱人工智能是能製造出真正地推理(Reasoning)和解決問題(Problem_solving)的智能機器,但這些機器只不過看起來像是智能的,但是並不真正擁有智能,也不會有自主意識。說到底只是人類的工具。即使是弱人工智能在古代語言還原中還是文物還原中都起到極大作用,長期困擾專家的西夏文現在已經可以人工智能識別。我們現在就處於弱人工智能轉向強人工智能時代

  • 強人工智能:人類級別的人工智能。強人工智能是指在各方面都能和人類比肩的人工智能,人類能幹的腦力活它都能幹。創造強人工智能比創造弱人工智能難得多。這裏的“智能”是指一種寬泛的心理能力,能夠進行思考、計劃、解決問題、抽象思維、理解複雜理念、快速學習和從經驗中學習等操作。

    強人工智能觀點認爲有可能製造出真正能推理(Reasoning)和解決問題(Problem_solving)的智能機器,並且,這樣的機器能將被認爲是有知覺的,有自我意識的。可以獨立思考問題並制定解決問題的最優方案,有自己的價值觀和世界觀體系。有和生物一樣的各種本能,比如生存和安全需求。在某種意義上可以看作一種新的文明。例如銀翼殺手和人工智能中的大衛就已經是強人工智能。

  • 超人工智能:牛津哲學家,知名人工智能思想家Nick Bostrom把超級智能定義爲“在幾乎所有領域都比最聰明的人類大腦都聰明很多,包括科學創新、通識和社交技能”。超人工智能可以是各方面都比人類強一點,也可以是各方面都比人類強萬億倍的。當達到超過人類以後人工智能的發展將呈指數級爆發,人工智能將極大的推動科學進步,納米技術和基因工程在人工智能的輔助下將得到極大提高,即使在弱人工智能時代,都已經可以識別西夏文和希伯來文。如果能達到超人工智能,以往逝去的人甚至都可以復活。甚至秦皇漢武,武安君白起。超人工智能想復刻多少,不過瞬間的事情。如果人類能達到這個階段沒有被強人工智能取代,人類自身說不定可以永生。電影出現的超人工智能例如人工智能電影結尾出現的透明人。

現在,人類已經掌握了弱人工智能。其實弱人工智能無處不在,人工智能革命是從弱人工智能,通過強人工智能,最終到達超人工智能的旅途。這段旅途中人類可能會生還下來,可能不會,但是無論如何,世界將變得完全不一樣。不過,到目前爲止,人類的大腦是我們所知宇宙中最複雜的東西。因此,從弱人工智能到強人工智能的發展之路任重而道遠。

3、機器學習:

機器學習(Machine Learning,ML)是人工智能研究較爲年輕的分支。是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。

是一門專門研究計算機來模擬或實現人類的學習行爲,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能的技術。簡單來說,就是通過算法,使得機器能從大量的數據中學習到規律,從而對新的樣本做出智能的識別或者預測未來。如現在的圖像識別,語音識別,自然語言理解,天氣預測等方面。

總結:「機器學習」不再通過規則行動,而是通過歸納、統計來進行結果改進,不再需要外部明確的知識,而是通過經驗和數據進行結果改進。

機器學習不是萬能的!

機器學習本質上還是一種統計方法,它只講求統計意義未必考慮的是事情的本質。

對於機器學習模型來說。準確率和召回率都不可能是100%,極端case難以避免。

對於金融交易、自動駕駛等事關大筆資金安全、人身安全的場景中,不要盲目迷信 AI,不要把安全全部交給模型。正確的做法是? 規則(經驗)+模型 融合。

機器學習算法有很多,可以從兩個方面介紹。(來源:機器學習中常見4種學習方法、13種算法和27張速查表!

1. 按學習方式:
	- 監督學習
	- 非監督學習
	- 半監督學習
	- 強化學習
2. 按功能和形式的類似性:
	- 1.迴歸算法
	- 2.正則化方法
	- 3.決策樹學習
	- 4.基於實例的算法
	- 5.貝葉斯方法
	- 6.聚類算法
	- 7.降低維度算法
	- 8.關聯規則學習
	- 9.遺傳算法(genetic algorithm)
	- 10.人工神經網絡
	- 11.深度學習
	- 12.基於核的算法
	- 13.集成算法

學習算法是個非常頭疼的事也是重要的學習內容(哎,數學是硬傷~),下面幾本書得到很多好評,需要去看看:

  1. 周志華《機器學習》
  2. 李航《統計學方法》
  3. Peter Harrington《Machine Learning in Action》(中文版《機器學習實戰》)

需要掌握一些經典的機器學習算法,畢竟機器學習算法要列起來實在太多了,網上找了的一張圖,瞧瞧o(╥﹏╥)o

下面我們還是來看看人工智能有哪些關注的點呢?

preview

​ (圖片來源:https://zhuanlan.zhihu.com/p/36554572

像上圖中提到的自然語言處理、計算機視覺、語言相關都是機器學習應用的方向,其中存在很多的研究小方向。本文主要基於計算機視覺資料做個整理及記錄。

爲了檢驗是否以及對相關內容有了認識,可以試着解釋或回答如下一些問題。

Q1:機器學習、數據挖掘、模式識別、人工智能這些概念?

PR(模式識別)、DM(數據挖掘)屬於 AI 的具體應用;人工智能是一種應用領域,機器學習是實現人工智能的一種手段,但是不限於此。

什麼是模式識別?

模式識別是指對錶徵事物或現象的各種形式的(數值的、文字的和邏輯關係的)信息進行處理和分析,以對事物或現象進行描述、辨認、分類和解釋的過程,是信息科學和人工智能的重要組成部分。

Q2:機器學習算法?

按學習的方式來劃分,機器學習主要包括:

  • 監督學習:輸入數據帶有標籤。監督學習建立一個學習過程,將預測結果與 “訓練數據”(即輸入數據)的實際結果進行比較,不斷的調整預測模型,直到模型的預測結果達到一個預期的準確率,比如分類和迴歸問題等。常用算法包括決策樹、貝葉斯分類、最小二乘迴歸、邏輯迴歸、支持向量機、神經網絡等。
  • 非監督學習:輸入數據沒有標籤,而是通過算法來推斷數據的內在聯繫,比如聚類和關聯規則學習等。常用算法包括獨立成分分析、K-Means 和 Apriori 算法等。
  • 半監督學習:輸入數據部分標籤,是監督學習的延伸,常用於分類和迴歸。常用算法包括圖論推理算法、拉普拉斯支持向量機等。
  • 強化學習:輸入數據作爲對模型的反饋,強調如何基於環境而行動,以取得最大化的預期利益。與監督式學習之間的區別在於,它並不需要出現正確的輸入 / 輸出對,也不需要精確校正次優化的行爲。強化學習更加專注於在線規劃,需要在探索(在未知的領域)和遵從(現有知識)之間找到平衡。

​ (參考:https://feisky.xyz/machine-learning/basic/

​ (參考:https://jizhi.im/blog/post/machine-learning-types-01

Q3:機器學習的應用有哪些?

機器學習已廣泛應用於數據挖掘、計算機視覺、自然語言處理、生物特徵識別、搜索引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA 序列測序、語音和手寫識別、戰略遊戲和機器人等領域。

4、學習資料:

待上面的介紹有個全局的認知,可以直接開幹了!關於人工智能、機器學習、深度學習入門資料,可以參考以下資料:

①機器學習

②深度學習

【Videos】相關的學習視頻資源鏈接直達:

5、本文目的:

本文其實沒啥有價值的乾貨,也就是對看過的博客和資料的整理,記錄下來,相當給自己梳理一遍,供參考~

(PS:深感文字能力真的好差,還好該文只是資料整理而已(# ̄~ ̄#) 各位看官見諒… 寫作真得需要經常鍛鍊纔行QAQ…)

一、瞭解圖像

學習計算機視覺,首先要了解圖像是什麼吧?

圖像是指能在人的視覺系統中產生視覺印象的客觀對象,包括自然景物、拍攝到的圖片、用數學方法描述的圖像等。圖像的要素有幾何要素(刻畫對象的輪廓、形狀等)和非幾何要素(刻畫對象的顏色、材質等)。<來源《數字圖像處理與機器視覺》 >

我們帶着問題來更多的認識吧!

1、什麼是位圖、矢量圖?

  • 百度知道:什麼是位圖?什麼是矢量圖?二者有何區別?

    ①位圖就是點陣圖,比如大小是1024*768的圖片,就是有1024*768個像素點,存儲每個像素點的顏色值。

    矢量圖是用算法來描述圖形,比如一個圓,存儲半徑和圓心,當然還有顏色,具體到圖片的某個像素點的位置是什麼顏色是根據算法算出來的。

    ②矢量圖是可以任意縮放的,比如上面說的圓,在1024*768的時候是一個圓,圖片放大20倍看還是圓,如果是位圖,放大20倍,看到的就是一個一個的方塊了。

一般而言,使用數字攝像機或數字照相機得到的圖像都是位圖圖像。

2、有哪些種圖像?

3、對圖像處理的認識?

4、什麼是數字圖像?

自然界中的圖像都是模擬量,在計算機普遍應用之前,電視、電影、照相機等圖像記錄與傳輸設備都是使用模擬信號對圖像進行處理。但是,計算機只能處理數字量,而不能直接處理模擬圖像。

什麼是數字圖像?簡單地來說,數字圖像就是能夠在計算機上顯示和處理的圖像,可根據其特性分爲兩大類——位圖和矢量圖。位圖通常使用數字陣列來表示,常見格式有 BMP、JPG、GIF 等;矢量圖由矢量數據庫表示,接觸最多的就是 PNG 圖像。<來源《數字圖像處理與機器視覺》 >

5、數字圖像處理的主要研究內容有哪些?簡要說明。

圖像增強:用於改善圖像視覺質量(主觀的);

圖像復原:是儘可能地恢復圖像本來面目(客觀的);

圖像編碼:是在保證圖像質量的前提下壓縮數據,使圖像便於存儲和傳輸;

圖像分割:就是把圖像按其灰度或集合特性分割成區域的過程;

圖像分類:是在將圖像經過某些預處理(壓縮、增強和復原)後,再將圖像中有用物體的特徵進行分割,特徵提取,進而進行分類;

圖像重建:是指從數據到圖像的處理,即輸入的是某種數據,而經過處理後得到的結果是圖像。

<來源 百度知道>

6、數字圖像處理與機器視覺?<來源《數字圖像處理與機器視覺》第二版 P5>

從數字圖像處理到數字圖像分析,再發展到最前沿的圖像識別技術,其核心都是對數字圖像中所含有的信息的提取及與其相關的各種輔助過程。

圖像處理 --> 圖像分析 --> 圖像識別技術。核心都是:對數字圖像所含有的信息提取及與其相關的各種輔助過程。

  • 數字圖像處理: 就是指使用電子計算機對量化的數字圖像進行處理,具體地說就是對圖像進行各種加工來改善圖像的外觀,是對圖像的修改和增強…此時的圖像處理作爲一種預處理步驟,輸出圖像將進一步供其他圖像進行分析、識別算法。

  • 數字圖像分析: 是指對圖像中感興趣的目標進行檢測和測量,以獲得可觀的信息。數字圖像分析通常是指一副圖像轉化爲另一種非圖像的抽象形式,例如圖像中某物體與測量者的距離。這一概念的外延包括邊緣檢測和圖像分割、特徵提取以及幾何測量與計數等。

  • 數字圖像識別: 主要是研究圖像中各目標的性質和相互關係,識別出目標對象的類別,從而理解圖像的含義。

    延伸:圖像處理和計算機視覺/機器視覺區別?

    圖像處理:輸入的是 Image --> 輸出的是 Image

    計算機視覺/機器視覺:輸入的是 Image --> 輸出的是 Feature(大致理解:對圖像的理解)

7、基本的圖像操作?

  • 按照處理圖像的數量分類:單幅圖像操作(如濾波)和對多幅圖像操作(如求和、求差和邏輯運算等)
  • 按照參與操作的像素範圍的不同:點運算鄰運算
  • 根據操作的數學性質:線性操作非線性操作
點運算指的是對圖像中的每一個像素逐個進行同樣的灰度變換運算。點運算可以使用下式定義:s=T(r),其中,T 爲採用點運算算子,表示了再原始圖像和輸出圖像之間的某種灰度映射關係。點運算常常用於改變圖像的灰度範圍及分佈。點運算引其作用的性質有時也被稱爲對比度增強、對比度拉伸或灰度變換。

而如果講點運算擴展,對圖像的每一個小範圍(領域)內的像素進行灰度變換運算,即稱爲領域運算或領域濾波。g(x,y)=T(f(x,y))

線性和非線性操作:若對於任意兩幅(或兩組)圖像 F1 和 F2 及任意兩個標量 a 和 b 都有:H(aF1+bF1)=aH(F1)+bH(F2),則稱 H 爲線性算子。不符合上述定義的算子即爲非線性算子,對應的的是非線性圖像操作。

① 圖像的點運算:

要點:	<參考《數字圖像處理與機器視覺》>
- 灰度直方圖
- 灰度的線性變化
- 灰度的對數變化
- 伽馬變化
- 灰度閾值變化
- 分段線性變化
- 直方圖均衡化
- 直方圖規定化(匹配)

灰度直方圖: 是個二維圖,橫座標爲圖像中各個像素點的灰度級別,縱座標表示具有各個灰度級別的像素在圖像中出現的次數或概率。(而歸一化直方圖的縱座標則對應着灰度級別在圖像中出現的概率)

直方圖均衡化: 又稱位灰度均衡化,是指通過某種灰度映射使輸入圖像轉換爲在每一灰度級上都有近似相同的像素點數的輸出圖像(即輸出的直方圖是均勻的)。

② 圖像的幾何變化:

要點:<參考《數字圖像處理與機器視覺》>
- 圖像平移
- 圖像鏡像
- 圖像轉置
- 圖像縮放
- 圖像旋轉
- 插值算法
- 圖像配準簡介

圖像幾何變化又稱爲圖像空間變化,它將一副圖像中的座標位置映射到另一副圖像中的新座標位置。學習幾何變化的關鍵是要確定這種空間映射關係,以及映射過程中的變化參數。

幾何變換不改變圖像的像素值,只是在圖像平面上進行像素的重新安排。

一個幾何變換需要兩部分運算:首先是空間變換所需的運算,還需要灰度插值算法。<參考《數字圖像處理與機器視覺》P92>

實現幾何運算時,有兩種方法。第一種稱爲向前映射法,其原理是將輸入圖像的灰度一個像素一個像素地轉移到輸出圖像中,即從原圖像座標計算出目標圖像座標。第二中是向後映射法,它是向前映射變換的逆,即輸出像素一個一個地映射回輸入圖像中。(參考《數字圖像處理與機器視覺》P106

我們再來看看《數字圖像處理與機器視覺》該書有關幾個圖像研究內容的解釋:

  • 圖像配準:圖像配準技術是站在幾何失真歸一化的角度,以一種逆變換的思路來闡述幾何變換。 百度百科:圖像歸一化

    所謂圖像匹配準就是講同一場景的兩幅或多幅圖像進行對準,如人臉自動分析系統中的人臉歸一化,即要使各張照片中的人臉具有近似的大小,儘量處於相同的位置。

  • 圖像增強:增強的目的是消除噪聲,顯現那些被模糊了的細節或簡單地突出一副圖像中讀者感興趣的特徵。

    增強是圖像處理中非常主觀的領域,這與圖像復原技術剛好相反,圖像復原也是改進圖像外貌的一個處理領域,但它是客觀的。

  • 圖像分割:

    圖像分割是指將圖像中具有特殊意義的不同區域劃分開來,這些區域是互不相交的,每個區域滿足灰度、紋理、彩色等特徵的某種相似性準則。圖像分割是圖像的分析過程中最重要的步驟之一,分割出來的區域可以作爲後續特徵提取的目標對象。<***《數字圖像處理與機器視覺》P395*** >

更多內容還是得翻閱《數字圖像處理與機器視覺》以及岡薩雷斯的《數字圖像處理》。

8、什麼是遙感圖像?

9、什麼是濾波?

二、計算機視覺

2.1 CV相關研究方向及區別

參考文章:

-------------------------------------------稍微總結下-----------------------------------------

圖像分類:根據圖像的主要內容進行分類。

數據集:MNIST,CIFAR,ImageNet

目標檢測:給定一幅圖像,只需要找到一類目標所在的矩形框。

人臉檢測:人臉爲目標,框出一幅圖片中所有人臉所在的位置,背景爲非目標

汽車檢測:汽車爲目標、框出一幅圖片中所有汽車所在的位置,背景爲非目標

數據集:PASCAL,COCO

目標識別:將需要識別的目標,和數據庫中的某個樣例對應起來,完成識別功能。

人臉識別:人臉檢測,得到的人臉,再和數據庫中的某個樣例對應起來,進行識別,得到人臉的具體信息

數據集:PASCAL,COCO

語義分割:對圖像中的每個像素都劃分出對應的類別,即對一幅圖像實現像素級別的分類。

數據集:PASCAL,COCO

實例分割:對圖像中的每個像素都劃分出對應的類別,即實現像素級別的分類,類的具體對象,即爲實例,那麼實例分割不但要進行像素級別的分類,還需在具體的類別基礎上區別開不同的實例。

比如說圖像有多個人甲、乙、丙,語義分割結果都是人,而實例分割結果卻是不同的對象。

PS:有幾點需要說的!

  1. 目標檢測和目標識別的區別?

    在看到的某篇博客是這樣寫道的:

    目標檢測:就是在一張圖片中找到並用box標註出所有的目標。(注意:目標檢測和目標識別不同之處在於,目標檢測只有兩類,目標和非目標. )

    目標識別:就是檢測和用box標註出所有的物體,並標註類別。

    在後面我的查找資料下,發現上面的認識不算是正確理解,正確理解是,目標檢測是從大圖中框出目標物體並識別,注意,目標檢測還得識別出來框出的是什麼,可參考知乎 許鐵-巡洋艦科技 回答,他在回答中提到 R-CNN,這個網絡不僅可以告訴你分類,還可以告訴你目標物體的座標, 即使圖片裏有很多目標物體, 也一一給你找出來。

    關於圖像分類、點位、檢測等內容,可以看看李飛飛cs231課程提到的:CS231n第八課:目標檢測定位學習記錄

    image

一些其他方面的研究:

  • CSDN專欄:圖像配準(圖像配准算法介紹及部分實現)

2.2 圖像分割

2.2.1 圖像分割傳統方法

知乎這篇文章 圖像分割 傳統方法 整理 整理了一些圖像分割傳統的方法,當然也是來源於網絡,下面小結下:

圖片分割根據灰度、顏色、紋理、和形狀等特徵將圖像進行劃分區域,讓區域間顯差異性,區域內呈相似性。主要分割方法有:

  • 基於閾值的分割
  • 基於邊緣的分割
  • 基於區域的分割
  • 基於圖論的分割
  • 基於能量泛函的分割

(有時間可以研讀下相關傳統方法怎麼做的…)

2.2.2 圖像分割深度學習方法(語義分割&實例分割)

重點關注的一些神經網絡模型:

FCN、Unet、SegNet、DeconvNet、PSPnet、DeepLab(v1、v2、v3)等等。

這幾篇文章有提到上面所說的很多神經網絡模型:

這篇文章 十分鐘看懂圖像語義分割技術 把圖像分割技術及發展介紹的很詳細。

相關綜述類/總結類文章參考:

當前圖像分割研究方向:

相關視頻:

圖像分割方面論文彙集:

-------------------------------一些常見圖像分割神經網絡模型具體介紹-------------------------

在介紹圖像分割神經網絡模型之前,先引入下該文(分割算法——可以分割一切目標(各種分割總結))的一段話:

1、會有很多人問:什麼是語義分割?

語義分割其實就是對圖片的每個像素都做分類。其中,較爲重要的語義分割數據集有:VOC2012 以及 MSCOCO

2、比較流行經典的幾種方法

傳統機器學習方法:如像素級的決策樹分類,參考 TextonForest 以及 Random Forest based classifiers。再有就是深度學習方法。

深度學習最初流行的分割方法是,打補丁式的分類方法 (patch classification) 。逐像素地抽取周圍像素對中心像素進行分類。由於當時的卷積網絡末端都使用全連接層 (full connected layers) ,所以只能使用這種逐像素的分割方法。

但是到了 2014 年,來自伯克利的 Fully Convolutional Networks(FCN) 卷積網絡,去掉了末端的全連接層。隨後的語義分割模型基本上都採用了這種結構。除了全連接層,語義分割另一個重要的問題是池化層。池化層能進一步提取抽象特徵增加感受域,但是丟棄了像素的位置信息。但是語義分割需要類別標籤和原圖像對齊,因此需要從新引入像素的位置信息。有兩種不同的架構可以解決此像素定位問題。

  • 第一種是編碼-譯碼架構。編碼過程通過池化層逐漸減少位置信息、抽取抽象特徵;譯碼過程逐漸恢復位置信息。一般譯碼與編碼間有直接的連接。該類架構中 U-net 是最流行的。
  • 第二種是膨脹卷積 (dilated convolutions) 【這個核心技術值得去閱讀學習】,拋棄了池化層。

☛【2014】FCN:

Fully Convolutional Networks 是 Jonathan Long 和 Evan Shelhamer 於 2015 年提出的網絡結構。

Fully convolutional networks for semantic segmentation 是 2015 年發表在 CVPR 上的一片論文,提出了全卷積神經網絡的概念,差點得了當前的最佳論文,沒有評上的原因好像是有人質疑,全卷積並不是一個新的概念,因爲全連接層也可以看作是卷積層,只不過卷積核是原圖大小而已。

論文:使用全卷積網絡進行語義分割《Fully Convolutional Networks for Semantic Segmentation》 [Paper-v1] [Paper-v2] (最新提交時間:2015.03.08)

主要貢獻:

  • 推廣端到端卷積網絡在語義分割領域的應用
  • 修改 Imagenet 預訓練網絡並應用於語義分割領域
  • 使用解卷積層進行上採樣
  • 使用跳躍連接,改善上採樣的粒度程度

代碼:https://github.com/shelhamer/fcn.berkeleyvision.org

相關中文資料:

☛【2015】U-Net:

U-Net 是基於 FCN 的一個語義分割網絡,適合用來做醫學圖像的分割。數據集下載並代碼實戰看這篇:全卷機神經網絡圖像分割(U-net)-keras實現

論文:生物醫學圖像分割的卷積神經網絡《U-Net: Convolutional Networks for Biomedical Image Segmentation》[Paper] (最新提交時間:2015.05.18)

官網:https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/

相關中文資料:

☛【2015】SegNet:

SegNet 是 Vijay Badrinarayanan 於 2015 年提出的,它是一個 encoder-decoder 結構的卷積神經網絡。

論文:用於圖像分割的一種深度卷積編碼器-解碼器架構《SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation》[Paper-v1] [Paper-v2] [Paper-v3] (最新提交時間:2016.11.10)

主要貢獻:

  • 將最大池化索引(Maxpooling indices)轉移到解碼器,從而改善分割分辨率。

代碼:https://github.com/alexgkendall/caffe-segnet

DEMO 網站:http://mi.eng.cam.ac.uk/projects/segnet/

相關中文資料:

☛【2015】Dilated Convolutions:

論文:使用空洞卷積進行多尺度背景聚合《Multi-Scale Context Aggregation by Dilated Convolutions》[Paper-v1] [Paper-v2] [Paper-v3] (最新提交時間:2016.04.30)

主要貢獻:

  • 使用空洞卷積,一種可進行稠密預測的卷積層。
  • 提出「背景模塊」(context module),該模塊可使用空洞卷積進行多尺度背景聚合。

☛【2015】DeconvNet:

DeconvNet 是韓國的 Hyeonwoo Noh 於 2015 年提出的。

DeconvNet 是一個 convolution-deconvolution 結構的神經網絡,和 SegNet 非常相似。是一篇 2015 年 ICCV 上的文章:Learning Deconvolution Network for Semantic Segmentation

論文:學習反捲積網絡進行語義分割《Learning Deconvolution Network for Semantic Segmentation》[Paper] (最新提交時間:2015.05.17)

代碼:https://github.com/HyeonwooNoh/DeconvNet

相關中文資料:

☛【2016】RefineNet:

論文:使用多路徑精煉網絡進行高分辨率語義分割《RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation》[Paper-v1] [Paper-v2] [Paper-v3] (最新提交時間:2016.11.25)

主要貢獻:

  • 具備精心設計解碼器模塊的編碼器-解碼器架構
  • 所有組件遵循殘差連接設計

相關中文資料:

☛【2016】PSPNet:

論文:金字塔場景解析網絡《Pyramid Scene Parsing Network》[Paper-v1] [Paper-v2] (最新提交時間:2017.04.27)

主要貢獻:

  • 提出金字塔池化模塊幫助實現背景聚合
  • 使用輔助損失(auxiliary loss)。

相關中文資料:

☛【2017】Large Kernel Matters:

論文:大型核的問題——通過全局卷積網絡改善語義分割《Large Kernel Matters – Improve Semantic Segmentation by Global Convolutional Network》[Paper] (最新提交時間:2017.03.08)

主要貢獻:

  • 提出使用帶有大型卷積核的編碼器-解碼器結構

☛【2014 、2016、2017】DeepLab(v1、v2、v3、v3+):

【2014】v1:使用深度卷積網絡和全連接 CRF 進行圖像語義分割《Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs》[Paper-v1] [Paper-v2] [Paper-v3] [Paper-v4] (最新提交時間 :2016.06.07)

相關中文資料:

【2016】v2:使用深度卷積網絡、帶孔卷積和全連接 CRF 進行圖像語義分割《DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs》[Paper-v1] [Paper-v2] (最新提交時間:2017.05.12)

相關中文資料:

v1 & v2 主要貢獻:

  • 使用帶孔/空洞卷積。
  • 提出金字塔型的空洞池化(ASPP)
  • 使用全連接 CRF

【2017】v3:重新思考使用空洞卷積進行圖像語義分割《Rethinking Atrous Convolution for Semantic Image Segmentation》[Paper-v1] [Paper-v2] [Paper-v3] (最新提交時間:2017.12.05)

v3 主要貢獻:

  • 改進了金字塔型的空洞池化(ASPP)
  • 模型級聯了多個空洞卷積

與 DeepLab v2 和空洞卷積論文一樣,該研究也使用空洞/擴張卷積來改進 ResNet 模型。

相關中文資料:

【2017】v3+:用於語義圖像分割的具有可變分離卷積的編碼器 - 解碼器《Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation》[Paper-v1] [Paper-v2] [Paper-v3] (最新提交時間:2018.08.22)

谷歌開源的語義圖像分割模型 DeepLab-v3+,DeepLab-v3+ 結合了空間金字塔池化模塊和編碼器-解碼器結構的優勢,是自三年前的 DeepLab 以來的最新、性能最優的版本。GitHub 地址:https://github.com/tensorflow/models/tree/master/research/deeplab

相關中文資料:

☛【2017】Mask R-CNN:

論文:《Mask R-CNN》[Paper-v1] [Paper-v2] [Paper-v3] (最新提交時間:2018.01.24)

相關中文資料:

☛【2018】《Searching for Efficient Multi-Scale Architectures for Dense Image Prediction》

爲密集的圖像預測尋找高效的多尺度架構

arxiv:1809.04184 (2018) Paper-v1(2018.09.11)

相關中文資料:

圖像分割衡量標準:

2.2.3 關於圖像分割的比賽、數據集

比賽:

圖像分割數據集:

目前有一些常用於訓練語義分割模型的數據集:(較爲重要的語義分割數據集有:VOC2012 以及 MSCOCO)

  • Pascal VOC 2012:有 20 類目標,這些目標包括人類、機動車類以及其他類,可用於目標類別或背景的分割

    這裏是它的主頁,這裏是leader board,很多公司和團隊都參與了這個挑戰,很多經典論文都是採用這個挑戰的數據集和結果發表論文,包括 RCNN、FCN 等。關於這個挑戰,有興趣可以讀一下這篇論文

  • Cityscapes:50 個城市的城市場景語義理解數據集

  • Pascal Context:有 400 多類的室內和室外場景

  • Stanford Background Dataset:至少有一個前景物體的一組戶外場景。

!!!延伸——深度學習視覺領域相關數據集介紹:

  • ImageNet

    ImageNet 數據集是目前深度學習圖像領域應用得非常多的一個數據集,關於圖像分類、定位、檢測等研究工作大多基於此數據集展開。

    ImageNet 數據集有 1400 多萬幅圖片,涵蓋 2 萬多個類別;其中有超過百萬的圖片有明確的類別標註和圖像中物體位置的標註,具體信息如下:

    1)Total number of non-empty synsets: 21841

    2)Total number of images: 14,197,122

    3)Number of images with bounding box annotations: 1,034,908

    4)Number of synsets with SIFT features: 1000

    5)Number of images with SIFT features: 1.2 million

    ImageNet 數據集文檔詳細,有專門的團隊維護,使用非常方便,在計算機視覺領域研究論文中應用非常廣,幾乎成爲了目前深度學習圖像領域算法性能檢驗的“標準”數據集。

    ImageNet 數據集是一個非常優秀的數據集,但是標註難免會有錯誤,幾乎每年都會對錯誤的數據進行修正或是刪除,建議下載最新數據集並關注數據集更新。

    與 ImageNet 數據集對應的有一個享譽全球的“ImageNet國際計算機視覺挑戰賽(ILSVRC)”,目前包含的比賽項目有:

    1. 目標定位
    2. 目標檢測
    3. 視頻序列的目標檢測
    4. 場景分類
    5. 場景分析

    數據集大小:~1TB(ILSVRC 2016 比賽全部數據)

    注:ISLVRC 2012(ImageNet Large Scale Visual Recognition Challenge)比賽用的子數據集,其中:

    • 訓練集:1281167 張圖片+標籤
    • 驗證集:50000 張圖片+標籤
    • 測試集:100000 張圖片

    補充點內容:MNIST 將初學者領進了深度學習領域,而 ImageNet 數據集對深度學習的浪潮起了巨大的推動作用。深度學習領域大牛 Hinton 在 2012 年發表的論文《ImageNet Classification with Deep Convolutional Neural Networks》在計算機視覺領域帶來了一場“革命”,此論文的工作正是基於 ImageNet 數據集。

  • MS COCO

    COCO 數據集是大規模物體檢測(detection)、分割(segmentation)和圖說(captioning)數據集,包括 330K 圖像(其中超過 200K 有註釋),150 萬圖像實例,80 個物體類別,91 種物質(stuff)類別,每幅圖有 5 條圖說,250000 帶有關鍵點的人體。

    COCO 數據集由微軟贊助,其對於圖像的標註信息不僅有類別、位置信息,還有對圖像的語義文本描述,COCO 數據集的開源使得近兩三年來圖像分割語義理解取得了巨大的進展,也幾乎成爲了圖像語義理解算法性能評價的“標準”數據集。Google 的開源 show and tell 生成模型就是在此數據集上測試的。 目前包含的比賽項目有:

    1. 目標檢測
    2. 圖像標註
    3. 人體關鍵點檢測

    數據集大小:~40GB

    補充點內容:MS COCO(Microsoft Common Objects in Context,常見物體圖像識別)競賽是繼 ImageNet 競賽(已停辦)後,計算機視覺領域最受關注和最權威的比賽之一,是圖像(物體)識別方向最重要的標杆(沒有之一),也是目前國際領域唯一能夠彙集谷歌、微軟、Facebook 三大巨頭以及國際頂尖院校共同參與的大賽。

  • Pascal VOC

    PASCAL VOC 挑戰賽是視覺對象的分類識別和檢測的一個基準測試,提供了檢測算法和學習性能的標準圖像註釋數據集和標準的評估系統。PASCAL VOC 圖片集包括 20 個目錄:人類;動物(鳥、貓、牛、狗、馬、羊);交通工具(飛機、自行車、船、公共汽車、小轎車、摩托車、火車);室內(瓶子、椅子、餐桌、盆栽植物、沙發、電視)。

    PASCAL VOC 挑戰賽在 2012 年後便不再舉辦,但其數據集圖像質量好,標註完備,非常適合用來測試算法性能。

    數據集大小:~2GB

  • CIFAR

    CIFAR-10 包含 10 個類別,50000 個訓練圖像,彩色圖像大小:32x32,10000 個測試圖像。

    CIFAR-100 與 CIFAR-10 類似,包含 100 個類,每類有 600 張圖片,其中 500 張用於訓練,100 張用於測試;這 100 個類分組成 20 個超類。圖像類別均有明確標註。

    CIFAR 對於圖像分類算法測試來說是一個非常不錯的中小規模數據集。

    數據集大小:~170MB

  • MNIST

    深度學習領域的“Hello World!”!MNIST是一個手寫數字數據集,它有 60000 個訓練樣本集和 10000 個測試樣本集,每個樣本圖像的寬高爲 28*28。需要注意的是,此數據集是以二進制存儲的,不能直接以圖像格式查看。
    最早的深度卷積網絡 LeNet 便是針對此數據集的,當前主流深度學習框架幾乎無一例外將 MNIST 數據集的處理作爲介紹及入門第一教程。

    數據集大小:~12MB

  • KITTI

    KITTI 由德國卡爾斯魯厄理工學院(Karlsruhe Institute of Technology)和豐田芝加哥技術研究院(Toyota Technological Institute at Chicago)於2012年聯合創辦,是目前國際上最大的自動駕駛場景下的計算機視覺算法評測數據集。用於評測 3D 目標(機動車、非機動車、行人等)檢測、3D 目標跟蹤、道路分割等計算機視覺技術在車載環境下的性能。KITTI包含市區、鄉村和高速公路等場景採集的真實圖像數據,每張圖像中多達 15 輛車和 30 個行人,還有各種程度的遮擋。

  • Cityscapes

    Cityscapes 也是自動駕駛相關方面的數據集,重點關注於像素級的場景分割和實例標註。

  • 人臉識別數據集LFW

    在這個數據集上,基於深度學習的系統 DeepID2 可以達到 99.47% 的識別率。

遙感、衛星圖像常用數據集:

遙感、衛星圖像分割:

圖像分割方面的代碼:

2.2.4 關於圖像分割的最新研究及關注點

最新的一些相關研究:(更新於 2018-09-12)

關注的一些大牛&實驗室&期刊等:

  • 南開大學媒體計算實驗室_程明明:http://mmcheng.net/zh/code-data/ (解壓密碼:mmcheng.net
  • Liang-Chieh Chen:個人主頁

    DeepLab v1/v2/v3/v3+、最新研究神經網絡搜索實現語義分割《Searching for Efficient Multi-Scale Architectures for Dense Image Prediction》作者都是他。

  • Facebook AI 實驗室科學家&香港中文大學博士:何凱明
  • 斯坦福人工智能研究院:李飛飛
  • 等等…(以後在補充~)
  • 頂級會議、期刊等
    • ICCV(IEEE International Conference on Computer Vision,國際計算機視覺大會):由IEEE主辦,與計算機視覺模式識別會議(CVPR)和歐洲計算機視覺會議(ECCV)並稱計算機視覺方向的三大頂級會議,被澳大利亞ICT學術會議排名和中國計算機學會等機構評爲最高級別學術會議,在業內具有極高的評價。
    • CVPR(IEEE Conference on Computer Vision and Pattern Recognition,IEEE國際計算機視覺與模式識別會議):該會議是由IEEE舉辦的計算機視覺和模式識別領域的頂級會議。
    • ECCV(European Conference on Computer Vision,歐洲計算機視覺國際會議):兩年一次,是計算機視覺三大會議(另外兩個是ICCVCVPR)之一。每次會議在全球範圍錄用論文300篇左右,主要的錄用論文都來自美國、歐洲等頂尖實驗室及研究所,中國大陸的論文數量一般在10-20篇之間。ECCV2010的論文錄取率爲27%。
    • 等其他…

2.2.5 圖像分割學習與實踐

1、李沫 文章:語義分割和數據集 YouTube 視頻:動手學深度學習第十課:語義分割

圖片分類關心識別圖片裏面的主要物體,物體識別則進一步找出圖片的多個物體以及它們的方形邊界框。本小節我們將介紹語義分割(semantic segmentation),它在物體識別上更進一步的找出物體的精確邊界框。換句話說,它識別圖片中的每個像素屬於哪類我們感興趣的物體還是隻是背景。下圖演示貓和狗圖片在語義分割中的標註。可以看到,跟物體識別相比,語義分割預測的邊框更加精細。

在計算機視覺裏,還有兩個跟語義分割相似的任務。一個是圖片分割(image segmentation),它也是將像素劃分到不同的類。不同的是,語義分割裏我們賦予像素語義信息,例如屬於貓、狗或者背景。而圖片分割則通常根據像素本身之間的相似性,它訓練時不需要像素標註信息,其預測結果也不能保證有語義性。例如圖片分割可能將上圖中的狗劃分成兩個區域,其中一個嘴巴和眼睛,其顏色以黑色爲主,另一個是身體其餘部分,其主色調是黃色。

另一個應用是實例分割(instance segementation),它不僅需要知道每個像素的語義,即屬於那一類物體,還需要進一步區分物體實例。例如如果圖片中有兩隻狗,那麼對於預測爲對應狗的像素是屬於地一隻狗還是第二隻。

2、雷鋒網:浙大博士生劉漢唐:帶你回顧圖像分割的經典算法 | 分享總結

2.3 目標檢測

需要關注的一些神經網絡模型:

論文下載:

R-CNN:是將 CNN 用於物體檢測的早期應用。

R-CNN 的目標是:導入一張圖片,通過方框正確識別主要物體在圖像的哪個地方。

輸入:圖像
輸出:方框+每個物體的標籤

Fast R-CNN:它加速、簡化了 R-CNN。

Faster R-CNN:名字很直白,它加速了選區推薦。

Mask R-CNN:把 Faster R-CNN 拓展到像素級的圖像分割。

Mask R-CNN:一種目標實例分割(object instance segmentation)框架。該框架較傳統方法操作更簡單、更靈活。研究人員把實驗成果《Mask R-CNN》發佈在了arXiv上,並表示之後會開源相關代碼。

一般來說,目標分割的難點在於,它需要正確識別出圖像中所有物體的方向,並且要將不同物體精準區分開。因此,這裏面涉及到兩個任務:

  • 用物體識別技術識別物體,並用邊界框表示出物體邊界;
  • 用語義分割給像素分類,但不區分不同的對象實例。

PS:知乎問答 如何評價rcnn、fast-rcnn和faster-rcnn這一系列方法? 也提到了目標檢測涉及到的模型 RCNN、Fast RCNN、Faster RCNN、YOLO、SSD 等,並且 B 站也有相關視頻可以觀看,比如 Mask R-CNN實戰之蒙版彈幕黑科技實現 YOLO RCNN 目標檢測

相關視頻:

2.4 計算機視覺牛人博客及代碼

參考:

三、ML和DL入門

3.1 寫在前面

認識:

目前我們通過機器學習去解決這些問題的思路都是這樣的(以視覺感知爲例子):

從開始的通過傳感器(例如 CMOS)來獲得數據。然後經過預處理、特徵提取、特徵選擇,再到推理、預測或者識別。最後一個部分,也就是機器學習的部分,絕大部分的工作是在這方面做的,也存在很多的 paper 和研究。
而中間的三部分,概括起來就是特徵表達。良好的特徵表達,對最終算法的準確性起了非常關鍵的作用,而且系統主要的計算和測試工作都耗在這一大部分。但,這塊實際中一般都是人工完成的。靠人工提取特徵。

機器學習如何入門:

機器學習資料及學習路線:

一些優秀 GitHub 倉庫及資料:

優秀博客:

3.2 機器學習

機器學習十大常用算法:輕鬆看懂機器學習十大常用算法

1. 決策樹
2. 隨機森林算法
3. 邏輯迴歸
4. SVM
5. 樸素貝葉斯
6. K最近鄰算法
7. K均值算法
8. Adaboost 算法
9. 神經網絡
10. 馬爾可夫

機器學習實踐:

3.3 深度學習

深度學習的發展:

入門文章:

問題:

深度學習筆記類:

博文:

爲什麼說都說神經網絡是個黑箱?

神經網絡遊樂場:playground

深度學習這塊,幾個層次:(來源 Charlotte:三個月教你從零入門深度學習

demo俠:下載了目前所有流行的框架,對不同框裏的例子都跑一跑,看看結果,覺得不錯就行了,進而覺得,嘛,深度學習也不過如此嘛,沒有多難啊。這種人,我在面試的時候遇到了不少,很多學生或者剛轉行的上來就是講一個demo,手寫數字識別,cifar10數據的圖像分類等等,然而你問他這個手寫數字識別的具體過程如何實現的?現在效果是不是目前做好的,可以再優化一下嗎?爲什麼激活函數要選這個,可以選別的嗎?CNN的原理能簡單講講嗎?懵逼了。

調參俠:此類人可能不侷限於跑了幾個demo,對於模型裏的參數也做了一些調整,不管調的好不好,先試了再說,每個都試一下,學習率調大了準確率下降了,那就調小一點,那個參數不知道啥意思,隨便改一下值測一下準確率吧。這是大多數初級深度學習工程師的現狀。當然,並不是這樣不好,對於demo俠來說,已經進步了不少了,起碼有思考。然而如果你問,你調整的這個參數爲什麼會對模型的準確率帶來這些影響,這個參數調大調小對結果又會有哪些影響,就又是一問三不知了。

懂原理俠:抱歉我起了個這麼蠢的名字。但是,進階到這一步,已經可以算是入門了,可以找一份能養活自己的工作了。CNN,RNN,LSTM信手拈來,原理講的溜的飛起,對於不同的參數對模型的影響也是說的有理有據,然而,如果你要問,你可以手動寫一個CNN嗎?不用調包,實現一個最基礎的網絡結構即可,又gg了。

懂原理+能改模型細節俠:如果你到了這一步,恭喜你,入門了。對於任何一個做機器學習/深度學習的人來說,只懂原理是遠遠不夠的,因爲公司不是招你來做研究員的,來了就要幹活,幹活就要落地。既然要落地,那就對於每一個你熟悉的,常見的模型能夠自己手動寫代碼運行出來,這樣對於公司的一些業務,可以對模型進行適當的調整和改動,來適應不同的業務場景。這也是大多數一二線公司的工程師們的現狀。然而,對於模型的整體架構能力,超大數據的分佈式運行能力,方案設計可能還有所欠缺,本人也一直在這個階段不停努力,希望能夠更進一步。

超大數據操控俠:到這一階段,基本上開始考慮超大數據的分佈式運行方案,對整體架構有一個宏觀的瞭解,對不同的框架也能指點一二。海量數據的分佈式運行如何避免網絡通信的延遲,如何更高效更迅速的訓練都有一定經驗。這類人,一般就是我這種蝦米的領導了。

模型/框架架構師:前面說了一堆都是對現有的框架/模型處理的經驗,這個階段的大俠,哦,不對,是大師可以獨立設計開發一套新框架/算法來應對現有的業務場景,或者解決一直未解決的歷史遺留問題。沒啥好說了,膜拜!

3.3.1 CNN(卷積神經網絡)

1、認識

淺析圖卷積神經網絡

假設有一張圖,要做分類,傳統方法需要手動提取一些特徵,比如紋理啊,顏色啊,或者一些更高級的特徵。然後再把這些特徵放到像隨機森林等分類器,給到一個輸出標籤,告訴它是哪個類別。而深度學習是輸入一張圖,經過神經網絡,直接輸出一個標籤。特徵提取和分類一步到位,避免了手工提取特徵或者人工規則,從原始數據中自動化地去提取特徵,是一種端到端(end-to-end)的學習。相較於傳統的方法,深度學習能夠學習到更高效的特徵與模式。

補充點內容:端對端怎麼理解?——參考:知乎該問答 什麼是 end-to-end 神經網絡?。看後,我的理解:就是輸入是原始數據,輸出是最後的結果,只關心輸入和輸出,中間的步驟全部都不管。

在計算機中,圖像是如何被表達和存儲的呢?

2、卷積過程

卷積的計算過程:(圖文並茂地講解卷積神經網絡

下面這張圖爲李宏毅深度學習視頻課程的截圖:

左區域的三個大矩陣是原式圖像的輸入,RGB三個通道用三個矩陣表示,大小爲773。

Filter W0表示1個filter助手,尺寸爲3*3,深度爲3(三個矩陣);Filter W1也表示1個filter助手。因爲卷積中我們用了2個filter,因此該卷積層結果的輸出深度爲2(綠色矩陣有2個)。

Bias b0是Filter W0的偏置項,Bias b1是Filter W1的偏置項。

OutPut是卷積後的輸出,尺寸爲3*3,深度爲2。

思考:

①爲什麼每次滑動是2個格子?

滑動的步長叫stride記爲S。S越小,提取的特徵越多,但是S一般不取1,主要考慮時間效率的問題。S也不能太大,否則會漏掉圖像上的信息。

②由於filter的邊長大於S,會造成每次移動滑窗後有交集部分,交集部分意味着多次提取特徵,尤其表現在圖像的中間區域提取次數較多,邊緣部分提取次數較少,怎麼辦?

一般方法是在圖像外圍加一圈0,細心的同學可能已經注意到了,在演示案例中已經加上這一圈0了,即+pad 1。 +pad n表示加n圈0.

③一次卷積後的輸出特徵圖的尺寸是多少呢?


特徵映射矩陣尺寸計算公式:[(原圖片尺寸-卷積尺寸+2Pad)/步長]+1
注意:在一層卷積操作裏可以有多個filter,他們是尺寸必須相同。

3、學習資料
4、問題

Q1:什麼是上採樣?

3.3.2 深度學習框架

1、TensorFlow

1)文檔

2)視頻

2、實戰

① MNIST 手寫數字識別

MNIST 數據集已經是一個被”嚼爛”了的數據集,很多教程都會對它”下手”,幾乎成爲一個 “典範”。不過有些人可能對它還不是很瞭解, 下面來介紹一下。

MNIST 數據集可在 http://yann.lecun.com/exdb/mnist/ 獲取,它包含了四個部分:

  • Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解壓後 47 MB, 包含 60,000 個樣本)
  • Training set labels: train-labels-idx1-ubyte.gz (29 KB, 解壓後 60 KB, 包含 60,000 個標籤)
  • Test set images: t10k-images-idx3-ubyte.gz (1.6 MB, 解壓後 7.8 MB, 包含 10,000 個樣本)
  • Test set labels: t10k-labels-idx1-ubyte.gz (5KB, 解壓後 10 KB, 包含 10,000 個標籤)

MNIST 數據集來自美國國家標準與技術研究所, National Institute of Standards and Technology (NIST). 訓練集 (training set) 由來自 250 個不同人手寫的數字構成, 其中 50% 是高中學生, 50% 來自人口普查局 (the Census Bureau) 的工作人員. 測試集(test set) 也是同樣比例的手寫數字數據。

更詳細教程及介紹:MNIST 數據

代碼:

3.4 數據集

計算機視覺:

四、一些思考


2018.08.12 未完… 以上就當是自己對看到的文章、學習資料的梳理,感覺也挺亂的,只希望看到該文的你對你有那麼點用處就好~(以後有時間再更新、或重新整理…)

2018.09.26 增加了「3.4 數據集」、「四、一些思考」,以及文中少許修改。

2018.09.27 添加了圖像分割神經網絡模型的一些介紹以及論文下載地址等內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章