【小林的OpenCV基礎課 0】一切為了學習!

こんにちは、私は小林です。

歡迎來到小林的CV視覺工坊(づ ̄3 ̄)づ,我是這個專欄的小編——小林Kobayashi,呃,你們的托爾醬ソール和康娜醬コナー也會偶爾上線的。這個專欄面向對計算機視覺(Computer Vision)和python編程感興趣並且想入門的同學。下面就由小林(以及托爾醬和康娜醬)帶領同學們打開CV視覺工坊的大門吧( ?? ω ?? )?

科普向

>>計算機視覺是啥?

感謝大自然賦予人類一雙明亮的眼睛,讓我們去發現美。計算機視覺(Computer Vision)就是一門讓機器(通常是計算機)學會「」的學問。隨著計算機、嵌入式系統、感測器和自動化機器人等技術的發展,計算機視覺技術越來越重要了,除了時下熱門的無人駕駛汽車、無人機和機器人會用到計算機視覺技術外,工業檢測、公安監控網路(比如天網監控系統)甚至許多門禁系統也應用了這項技術。下圖中RoboMaster機甲大師賽中的步兵車和iPhone X都用到了計算機視覺技術。

RoboMasters機甲大師賽中的視覺系統 2016賽季

某果的X中也用到了視覺技術刷臉解鎖

>>為什麼要選擇OpenCV?

OpenCV是一個開源的計算機視覺庫。其實計算機視覺庫除了OpenCV之外還有諸如SimpleCV等。由於OpenCV的API非常豐富,使用場景多,而且跨平台,能在Windows,Android,iOS上輕鬆編寫應用,所以受到廣大開發人員的歡迎。

>>為什麼選擇python?

OpenCV是由C++編寫的,但經過封裝後衍生出了Java,python等語言的版本。那麼為什麼要選擇python呢?

OpenCV在Windows下原生支持VS(微軟家的Visual Studio)編譯。用過VS的同學都知道,VS強大但略顯臃腫,而且受到Windows API和開發環境的約束,這些不足都會增加我們的學習成本,Java也是同樣的道理。而python恰好可以彌補這些不足,它簡潔高效,語法靈活,系統開銷非常小(不像JVM那樣不關掉後台很快就會崩掉),非常適合初學者學習,而且隨著大數據和機器學習的興起,python也進入了如日中天的發展階段。下圖是python和OpenCV的Logo。

python Logo

OpenCV Logo

>>如何學習呢?

同學們肯定想抓緊學會然後去做一些高大上的東西,小林曾經也這麼想過,後來發現不能急於求成(比如托爾醬的蛋包飯)。

俗話說,磨刀不誤砍柴工。小林認為學好OpenCV要分三步走。

  1. 要有良好的習慣和必要的基礎。比如要習慣閱讀文檔。啥文檔?論文還是度娘百科?呃,小林想說的是(英文的)官方文檔(當然能看論文也是極好的)。小林會將用到的部分文檔翻譯成中文。再比如,計算機視覺主要涉及編程和數學的知識。哇,數學!寶寶數學不好咋辦?不要慌,這裡的數學可不是2018考研數學呀。雖說會涉及到線性代數卷積運算啥的,同學們只需要了解這些數學知識怎樣應用即可(劇透:調用各種函數)。
  2. 做練習。正所謂熟能生巧,小林會用一些神奇的例子講解OpenCV,相關代碼也會同步到github(後面的課程中小林會貼出github倉庫的地址),當然了,小林也鼓勵同學們嘗試著修改給出的例子,這樣學習效果會出乎你的想像。
  3. 嘗試小項目。小林會穿插著給同學們介紹一些有趣的小項目,然後同學們利用所學的知識嘗試感興趣的項目,也可以自己設計項目。總之,是騾子是馬,拉出來練練就知道了,畢竟實踐是檢驗真理的唯一標準嘛。

相信在小林的CV視覺工坊學習後同學們很快就能輕鬆入門OpenCV然後去做高大上的項目啦。(~ ̄▽ ̄)~

最後附上一些相關的學習資源

OpenCV的python版官方指導手冊(英文的,後面文章中用到時小林會為同學們翻譯):官方指導手冊

OpenCV 3.4.0 API查詢,C++和python都有(同上,用到時會翻譯):OpenCV 3.4.0 API

OpenCV領域的大佬、國人的驕傲——毛星雲的CSDN博客:CSDN 毛星雲

還有毛星雲寫的《OpenCV 3編程入門》,基於C++,有很多可以借鑒的東西

業界大佬叶韻《深度學習與計算機視覺》

StackOverflow社區,一個全球IT大神常來的技術社區StackOverflow

GitHub,優秀的代碼都在這裡啦(也有小林的代碼(づ ̄ 3 ̄)づ)GitHub

最後的最後

感覺小林專欄寫得好(小林是很帥的)就請關注這個專欄吧!してください!


推薦閱讀:

如何在CLion上配置使用OpenCV?
想用OpenCV做AR該如何入手?
如何從入門開始學習OpenCV?
如何在unity里使用opencv?

TAG:OpenCV | 计算机 | 计算机视觉 |