<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          終于有人把OpenCV、人臉識別與深度學習講明白了

          共 4834字,需瀏覽 10分鐘

           ·

          2020-08-01 05:18


          ?今天聊OpenCV,我想從人臉識別講起。


          這幾年人臉識別技術(shù)在國內(nèi)發(fā)展飛速,給生活帶了很多便利,這個大家應該都有體會。早幾年進高鐵站還比較麻煩,要先排長隊,得讓檢票口的工作人員一個一個查看證件然后“啪”地戳章,才能進站。很多人應該都和我一樣想過一個問題,那為什么不多設(shè)幾個口呢?我還專門問了朋友,朋友說都知道排長隊體驗不太好,不過多開一個口,就要多雇幾個人,不但要一直開工資,還要有保險等各類配套的保障類支出,用人成本很高,所以二者只能相互取平衡。


          現(xiàn)在呢?現(xiàn)在好多了,刷臉進站,看一眼鏡頭就完事,非??旖?。更重要的是,架設(shè)一臺人臉識別的閘機的成本,比雇人便宜多了,所以現(xiàn)在進站幾乎就不怎么需要排隊。好,故事說到這里,才正要開始。刷臉進站還是前幾年的新鮮事,大家應該都還記得第一次刷臉進站的情形,就我來說,整個進站流程和以前習慣的完全不同。那時刷臉技術(shù)還剛剛興起,翻車新聞時有傳出,我對刷臉技術(shù)半信半疑,總覺得會出點什么小意外,所以后來順利過機之后感覺非常奇妙,覺得人臉識別這個技術(shù)實在是太棒了。



          當時我對人臉識別的了解還很初淺,翻過一些論文,費了九牛二虎之力才跑通一個模型。人臉識別的原理展開能寫一篇文章,不過要點有幾個,首先你得從圖像中框出人臉。一說人臉識別,可能你腦中會很自然的浮現(xiàn)出拿證件照比對想象場景,但回想一下刷臉進高鐵站就知道,并不需要你額外提交一張標準的一寸照片,而是直接使用閘機上攝像頭的實時畫面的截圖。這有什么不同呢?臉部占比就不同,而且臉的朝向角度、站的位置遠近,甚至個人高矮都會導致最終拍攝的圖像質(zhì)量產(chǎn)生差異。因此,人臉識別的第一步,是識別人臉,光這一步就足夠難倒不少英雄漢。后面的識別過程就更不用說,需要兼顧準確性和效率,識別不準當然不行,但為了準,識別太久,讓大家排著長隊等也是不行的,難以兼顧。所以,我當時的另一個感覺是覺得可惜,人臉識別能做好多事,但技術(shù)門檻很高,推廣不太容易。


          高潮來了。前段時間我偶然看到一份大學本科生的課程作業(yè),注意,是課程作業(yè),還不是畢業(yè)設(shè)計。這個課程作業(yè)要求做一個什么呢?人臉識別門禁系統(tǒng),簡單來說就是刷臉開門。我當時都驚呆了,現(xiàn)在都玩得這么高端的嗎?這本科生的課程作業(yè)居然就要做一套人臉識別門禁系統(tǒng),那畢業(yè)設(shè)計豈不是要實現(xiàn)一套無人駕駛系統(tǒng)才跟得上節(jié)奏?!


          我趕緊追問,才知道現(xiàn)在要做這么一套人臉識別門禁系統(tǒng),遠比我想象中的要簡單很多,市面上已經(jīng)有很多成熟的套件,只要像拼積木一樣拼搭一下就完成了。主要用到的東西有兩樣,一樣是樹莓派,另一樣就是我們本篇的主角——OpenCV


          OpenCV用來完成人臉識別,剩下的“硬活”交給樹莓派完成。樹莓派大家應該聽過,很有名的嵌入式開發(fā)板,不過本篇重點不是它,大家感興趣再另寫一篇細聊,這里先和大家報告一個有趣的發(fā)現(xiàn)。樹莓派雖然稱為無限可能的極客玩具,但本身只是一塊光板,需要搭配其他模塊才能“無限可能”。所以,樹莓派的賣家通常會提供包含各種功能模塊的套餐,譬如搭配小車、攝像頭之類的,其中有一種很熱門的套餐,就是樹莓派+OpenCV。你去淘寶搜樹莓派,會出來很多樹莓派+OpenCV的結(jié)果,個別店家還“貼心”提示可以幫忙“輔導”課程作業(yè)。


          說了這么久,這個OpenCV究竟是做什么的?


          當然,看完了上文,大家應該至少清楚OpenCV是可以用來做人臉識別的,但如果認為OpenCV只能做人臉識別,那就太大材小用了,人臉識別只是OpenCV傳統(tǒng)藝能的一小部分??疵志椭?,OpenCV是一個開源的計算機視覺庫,Open不必說了,CVComputer Vision,也就是計算機視覺的首字母縮寫,深度學習業(yè)界專門有一類熱門的研究方向,就是計算機視覺方向,譬如紐約大學的深度學習大牛Yann LeCun,還有斯坦福大學的華裔女教授李飛飛,都是在做計算機視覺方向的研究。如果你上Arxiv看論文應該也知道,機器學習、深度學習有一個很熱門的大類就是CV


          不過,“計算機視覺”這幾個字咋一看好像都懂,仔細一想還是不知道究竟做啥,難不成是研究攝像頭,不,科幻一點,是研究電子眼的?感覺離日常生活有點遠,容易讓人兩眼發(fā)懵。其實,計算機視覺不高深,研究的就是咱們閑下來愛刷的那些玩意,圖像和視頻。如果學過視頻技術(shù)的同學,應該會了解得更深,知道圖像和視頻從技術(shù)角度來看是一回事。一段視頻按時間軸拉開來,其實就是很多張的圖像,我們常說的視頻“幀”,其實就是一張圖像的意思。所以,當前計算機視覺最核心研究對象,就是圖像處理。


          明白了這個,就可以接著介紹OpenCV了。OpenCV可以說是當前計算機視覺界里最當紅的那只炸子雞,幾乎可以說只要你要做計算機視覺,你就一定會用到OpenCV。目前深度學習很火,用深度學習做圖像處理的非常多,這里面當然大量使用了OpenCV,譬如說之前GAN剛出來的時候,大家都很愛拿它來生成卡通人臉頭像,那去哪里弄訓練數(shù)據(jù)呢,通常就是用OpenCV在各種動漫截圖里面切。


          要特別說的是,OpenCV很早就在計算機視覺界廣泛應用,歷史遠比深度學習要長得多,長達十余年。早在前深度學習時代,人們就已經(jīng)在研究和使用OpenCV來完成各種工作,江湖地位是早就定好了的。應該不難想見,OpenCV會是一個龐大復雜的開源庫,根據(jù)OpenCV深度學習應用與性能優(yōu)化實踐》介紹,主要的代碼庫有三個,核心庫OpenCV core,新增功能(我的理解一般是指尚未測試成熟的新添加特性)庫opencv_contrib,以及提供周邊支持,譬如用于測試和示例的各種腳本的opencv_extra


          平時最常用到的是核心庫OpenCV core,里面也細分了十余類各種圖像、視頻處理功能,譬如提供對圖像的線性和非線性濾波、縮放等幾何變換的圖像處理模塊、專門用于處理視頻的,提供運動檢測、對象追蹤等功能的視頻模塊、用于目標檢測的Obejdetect、用于視頻存取和編解碼的Video I/O等等。除了這些功能性的模塊外,還有許多支持模塊,譬如現(xiàn)在都愛用GPU加速,OpenCV也同樣提供了相應GPU模塊。


          應該說,在計算機視覺領(lǐng)域你能想到的功能,差不多都能在OpenCV里面找到。在深度學習崛起以后,計算機視覺的版圖也極大地發(fā)生了改變,一些曾經(jīng)熱門的工具沒落了,但OpenCV及時擁抱了時代的變化,反而Great Again了。我們知道,對于深度學習來說,圖像處理可謂是龍興之地,而OpenCV非常重視深度學習,專門設(shè)置了一個深度學習模塊,名字就叫OpenCV DNN。該模塊在OpenCV1.3版中首次出現(xiàn)在新增功能庫opencv_contrib中,隨后在3.3版移入核心庫OpenCV core,正式作為OpenCV的扛把子之一。


          接下來就要聊聊最難回答的那個問題:為什么要選擇OpenCV?這不是抬杠,在深度學習,特別是在深度學習的計算機視覺方面,是個非常好的問題?,F(xiàn)在深度學習很熱,而深度學習已經(jīng)有幾個很熱的框架,最熱的應該屬工業(yè)界最愛的TensorFlow,和學術(shù)界最愛的Pytorch,這兩個框架輪番刷屏,選擇OpenCV有什么額外的優(yōu)勢呢?


          《OpenCV深度學習應用與性能優(yōu)化實踐》總結(jié)了四個特點:輕量、最少的外部依賴、方便集成和通用性。抄書沒意思,我說下我的理解吧,OpenCVTensorFlow、Pytorch這些框架不同,它不是用來“實現(xiàn)”模型的,而是用來“使用”模型的。什么意思呢?簡單來說,深度學習模型如果是從零開始,是有一套比較繁復的流程的,首先需要搭建模塊,然后是訓練模型,最后才能使用模型。這一套流程完整做下來,不但需要很強的理論基礎(chǔ)和動手能力,還需要具備相當可觀的資源,這就是為什么我此前覺得人臉識別技術(shù)不太容易推廣。


          那OpenCV怎么做呢?


          OpenCV只做最后一步,使用模型,也就是《OpenCV深度學習應用與性能優(yōu)化實踐》書中所說的“OpenCV深度學習模塊只提供網(wǎng)絡(luò)推理功能”。業(yè)界很推崇開箱即用,我想,OpenCV這種應該算是開箱即用最理想的樣子,一個看似復雜的功能,譬如人臉識別,調(diào)用函數(shù)直接就能返回想要的結(jié)果,不需要任何中間流程賺差價。這就是為什么前面所說的人臉識別門禁系統(tǒng),難度系數(shù)會被降到學期作業(yè)的程度。


          《OpenCV深度學習應用與性能優(yōu)化實踐》的第8章用一章內(nèi)容介紹了如何用OpenCV實現(xiàn)支付級人臉識別項目,這首先是一個人臉識別項目,那“支付級”是什么意思呢?就是再上一層,加一個活體檢測,用大白話來說,就是支付級人臉識別不但要確保圖像上這張臉是你,也即書中所說的“人臉身份驗證”,還要確保這張圖像是活人實拍,而不是從照片或者視頻中摳出來的,用術(shù)語說就是“活體檢測”。聽起來就感覺很復雜對不對,翻翻書里的代碼,總共沒幾行,如果再刨去對各種預處理和結(jié)果顯示操作,人臉身份驗證的核心代碼也就十行不到,活體檢測的核心代碼更少了,干脆只有三行。沒有多余的廢話,是不是開箱即用理想中的樣子?不過,這里面并沒什么黑科技,要使用深度學習技術(shù),背后的流程都是大體一樣的,歲月靜好,那都是因為有別人負重前行。OpenCV使用的模型當然也是需要經(jīng)過訓練,不過是通過外部訓練,訓練好了OpenCV直接拿過來使用。


          當然,不是有了訓練好的模型就萬事大吉,現(xiàn)在深度學習的模型規(guī)模越來越大,結(jié)構(gòu)越來越復雜,涉及了大量復雜運算,除此之外,還涉及并行計算等工程問題。因此,如何對模型進行優(yōu)化加速,在一定條件的算力下如何使得模型效率最大化,始終是深度學習在應用實踐方面最關(guān)心的話題之一。這也是OpenCV的擅長領(lǐng)域,OpenCV提供了多類優(yōu)化加速方法,包括GPU加速和CPU加速,其中又涉及Vulkan、OpenCL、Halide等工具庫。此外,上面所介紹的模型導入過程也有一些技術(shù)細節(jié),譬如外部模型如何通過OpenCV內(nèi)部的數(shù)據(jù)對象表示,需要對OpenCV有更深入的了解才能很好地使用。推薦閱讀《OpenCV深度學習應用與性能優(yōu)化實踐》,這本書由直接參與OpenCV開源項目的作者撰寫,不但實戰(zhàn)性很強,而且一些OpenCV的內(nèi)部技術(shù)細節(jié)也能講得很清楚,特別是對于OpenCV深度學習如何優(yōu)化加速的問題,用了本書一多半的篇幅展開撰寫,大量的細節(jié)背后,能夠讀出作者具有的豐富從業(yè)(踩坑)經(jīng)驗,很有參考價值。





          《OpenCV深度學習應用與性能優(yōu)化實踐》


          推薦理由:Intel與阿里巴巴高級圖形圖像專家聯(lián)合撰寫!深入解析OpenCV DNN 模塊、基于GPU/CPU的加速實現(xiàn)、性能優(yōu)化技巧與可視化工具,以及人臉活體檢測等應用,涵蓋Intel推理引擎加速等鮮見一手深度信息。知名專家傅文慶、鄒復好、Vadim Pisarevsky、周強(CV君)聯(lián)袂推薦!

          ?

          ?

          關(guān)于作者



          莫凡,娛樂向機器學習解說選手,《機器學習算法的數(shù)學解析與Python實現(xiàn)》作者,前沿技術(shù)發(fā)展觀潮者,擅長高冷技術(shù)的“白菜化”解說,微信公眾號“睡前機器學習”,個人知乎號“木羊”。

          掃碼關(guān)注作者


          本期贈書給大家?guī)砟怖蠋煹臅?strong>《機器學習算法的數(shù)學解析與Python實現(xiàn)》,以及莫凡老師推薦的好書《OpenCV深度學習應用與性能優(yōu)化實踐》。



          《機器學習算法的數(shù)學解析與Python實現(xiàn)》


          推薦理由:入門機器學習的第一本書。從生活案例中理解算法,發(fā)現(xiàn)算法的樂趣,再把算法應用到機器學習中,讓你零基礎(chǔ)掌握算法精髓,快速進入人工智能開發(fā)領(lǐng)域。


          贈書


          規(guī)則:

          1、掃描下方的二維碼,即可參與

          2、中獎?wù)弑仨毷顷P(guān)注 AI算法與圖像處理的讀者,否則中獎也算無效

          3、請?zhí)崆疤砑有【?,nvshenj125,方便后續(xù)領(lǐng)獎連續(xù)



          瀏覽 111
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  aanquye | 欧美一区高清 | 欧美在线| 亚洲逼院| 欧美成年网站 |