如何用Excel 9步實現CNN人臉識別
大資料文摘授權轉載自論智
當你入門的時候,可能覺得機器學習很複雜……甚至很可怕。另一方面,Excel卻很簡單。Excel並不酷炫,但卻能避免分散你的注意力,同時幫助你以直觀的方式視覺化程式碼後面發生的事情。
我將循序漸進地通過Excel(你可以通過下面的連結下載)向你展示卷積神經網路(CNN)是如何應用於計算機視覺任務的。其中包括一些數學,不過Excel中包含了所有的公式。
https://drive.google.com/open?id=1TJXPPQ6Cz-4kVRXTSrbj4u4orcaamtpGvY58yuJbzHk
如果無法訪問Google網盤,可以在大資料文摘微信公眾號後臺回覆“Excel”獲得資料。
這一Excel模型檢視一幅影像,分析它的畫素,並預測是否是Elon Musk、Jeff Bezos、Jon Snow……顯然這三位是天網的最大威脅。
終結者視覺——在Excel中建立卷積神經網路
本文將介紹上圖中的9個步驟,每個步驟都會使用類比的方法給你的直覺增壓。
本文的目標是使用容易操作的Excel,提供入門機器學習的簡單路徑,並向充滿好奇心的讀者展示尖端AI技術的奧祕。如果本文對你有幫助,請註冊我建立的郵件列表,註冊後可以收到更多後續的Excel,幫助你入門機器學習和建立神經網路。
Facebook面部識別系統、某國奧威爾式的大規模監控系統、你的汽車(不久的將來)背後的基礎都是計算機視覺。
CNN神探
讓我們假裝終結者的頭腦裡住著一個特別的偵探,名叫“夏洛克·卷積·福爾摩斯”。他的工作是仔細檢視證據(輸入影像),使用敏銳的眼神和推理能力(特徵檢測),預測影像中的人是誰,從而破案(正確分類影像)。
卷積網路架構
你將學習:
輸入:計算機如何看
特徵檢測:像福爾摩斯一樣思考
卷積數學:福爾摩斯的偵探工具
ReLU:非線性模式識別
最大池化:保留最重要的線索
扁平化:排列所有線索
全連線:完成案件拼圖
Logit + Softmax:破案
交叉熵損失:福爾摩斯的“正/誤”
輸入——一圖勝千言
天網的最大威脅——Elon Musk
我從上面的影像中看到了一個有遠見的人。他一方面不斷改善地球這顆星球,另一方面建立逃離地球的火箭,以防終結者試圖摧毀地球。和計算機不同,我看不到畫素值,也無法辨認出一張影像不過是紅光、綠光、藍光的堆疊:
另一方面,一臺計算機(比如天網)是瞎的……它只能看到數字。
想象一下由3張Excel(紅、綠、藍)堆疊構成的電子影像,每張表格是一個數字矩陣。拍照的時候,相機測量到達每個畫素的紅光、綠光、藍光的量。接著它在0-255的範圍內評估每個畫素,然後將其記錄到Excel中。
計算機看到Excel
上為一張28x28的影像,每個畫素由三行(紅、藍、綠)表示,取值範圍0-255. 每個畫素的顏色對應其數值。
終結者沒有看到眼睛,他看到的是一串數字
將每種顏色單獨放到一個矩陣中,我們得到了3個28x28矩陣,也就是我們之後用來訓練神經網路的輸入:
模型輸入
如果你想知道如何將任意影像轉換成Excel,請訪問以下網址:
http://think-maths.co.uk/spreadsheet
你將學到如何得到一張“Ex拍”,你的Excel迷朋友們會喜歡的……相信我,在Excel中找到你的馬克杯(或者他們的)會讓他們捧腹大笑的? (小圖效果最佳)。
訓練概覽——像計算機,又像小孩
你剛出生的時候知道狗是什麼樣的嗎?當然不知道。但隨著時間的推移,你的父母會給你看書中、動畫片中、真實生活中的狗的影像,漸漸地,你可以指著那些4條腿、毛茸茸的動物說“狗”。你的大腦中數億神經元間的連線變得足夠強,所以你可以識別狗。
終結者以同樣的方式學習識別Elon。在一個被稱為監督訓練的過程中,人們給終結者看數千張Elon Musk、Jeff Bezos、Jon Snow的影像。剛開始,它只能隨便亂猜(1/3的機率猜對),漸漸地,就像小孩一樣,隨著它在訓練過程中看到越來越多的影像,它猜得越來越準。網路的連線(也就是“權重/偏置”)隨著時間的推移而更新,使得它可以基於畫素輸入預測輸出。這是我上一篇文章中討論過的學習過程(梯度下降)。
CNN訓練週期
卷積神經網路和普通神經網路的區別何在?
用兩個詞概括:平移不變性。
不知所云?讓我們解構一下:
平移 = 將某物從一個地方移動到另一個地方
不變性 = 沒有改變
在計算機視覺中,這意味著,不管物件移動到影像中的何處(平移),不會改變物件是什麼(不變性)。
平移不變性(以及縮放不變性)
這需要訓練卷積神經網路識別Elon的特徵,不管Elon在影像中的位置在哪裡(平移),也不管Elon在影像中的大小(縮放不變性)。
在普通神經網路中,我們本來會將每個畫素作為模型的一個輸入(而不是3個矩陣),但這忽略了相近的畫素具有特別的意義和結構這一事實。在CNN中,我們檢視畫素組,這允許模型學習形狀、線條等區域性模式。比方說,如果CNN看到許多白畫素包圍一個黑圓圈,它會識別出眼睛這一模式。
為了達到平移不變性,CNN需要依靠它的特徵偵探夏洛克·卷積·福爾摩斯的服務。
類比: 影像就像由畫素組成的Excel。
遇見夏洛克·卷積·福爾摩斯——特徵偵探
尋找特徵的夏洛克
夏洛克住在終結者的頭腦中。他每次使用放大鏡仔細檢查一小片影像,尋找影像的重要特徵(“線索”)。在收集到簡單的線條和形狀之類的線索後,他將它們堆疊起來,開始看到眼睛或鼻子之類的面部特徵。
每個卷積層儲存基於另一層構建的一組特徵對映。最後,夏洛克組合所有線索,這樣他就可以破案了(識別目標)。
每個特徵對映就像一條線索
網路的每個卷積層都包含一組特徵對映,這些對映能夠以下圖所示的層次化的方式識別越來越複雜的模式/形狀。
CNN基於數字的模式識別找到任意影像的最重要特徵。隨著CNN以更多的網路層不斷堆疊這些模式,它可以建立非常複雜的特徵對映。
特徵層次
真實生活中的CNN和夏洛克做一樣的事情:
<iframe frameborder="0" width="661" height="371.8125" allow="autoplay; fullscreen" allowfullscreen="true" src="https://v.qq.com/txp/iframe/player.html?origin=https%3A%2F%2Fmp.weixin.qq.com&vid=k0349icecuy&autoplay=false&full=true&show1080p=false" style="max-width: 100%;"></iframe>
CNN的奇妙之處在於可以自行學習這些特徵……工程師不用編寫尋找一雙眼睛、一個鼻子、一張嘴的集合這樣的程式碼。
以這種方式工作的工程師更像架構師,他們告訴夏洛克:“我給你兩疊(‘卷積層’)空白特徵對映(‘線索’),你的工作是分析影像,找出最重要的線索。第一疊有16個特徵對映(‘線索’),第2疊有64個特徵對映……現在發揮你的偵探技能,解決這個案件!”
類比: 每個特徵對映就像案件中的一條線索。
為了查明案件中的“線索”(即計算特徵對映),夏洛克需要依靠他的偵探工具箱中的一些工具,我們會逐一介紹:
過濾器 —— 夏洛克的放大鏡 ?
卷積數學 —— 過濾器權重 x 輸入影像畫素
步進 —— 沿著輸入影像移動過濾器 ? ➡️ ? ➡️
補齊 —— 保護線索的犯罪現場隔離膠帶 ?
夏洛克的放大鏡/過濾器
毫無疑問,夏洛克非常敏銳,具備出色的觀察技能,但是,如果沒有那些特製的放大鏡(過濾器),夏洛克沒法完成他的工作。他使用不同的放大鏡幫助填充每張空白特徵對映的細節。所以,如果他有16個特徵對映……他會有16塊放大鏡。
每塊放大鏡由多層玻璃組成,而每層玻璃由不同的權重組成。玻璃的層數,也就是過濾器深度,總是等於輸入層的深度。
剛開始,夏洛克看到的輸入影像有3層——紅、綠、藍。所以,放大鏡也有3層。
隨著我們進一步建立CNN,層的深度會增加,相應地,放大鏡也會變厚。
為了建立1個特徵對映(一條線索),夏洛克從取出一個放大鏡,並置於輸入影像的左上角開始。紅層玻璃只能看到紅輸入影像,綠層玻璃只能看到綠圖,而藍層玻璃只能看到藍圖。
現在是數學部分。
卷積數學
特徵對映中的每個畫素是線索的一部分。為了計算每個畫素,夏洛克需要進行一些基本的乘法和加法。
在下面的例子中,我們使用5x5x3的輸入影像和3x3x3的過濾器,每個畫素需要進行以下計算:
3x3x3過濾器每層的卷積乘法 = 27
將27個數字加起來
再加上1個數字——偏置
<iframe frameborder="0" width="661" height="495.75" allow="autoplay; fullscreen" allowfullscreen="true" src="https://v.qq.com/txp/iframe/player.html?origin=https%3A%2F%2Fmp.weixin.qq.com&vid=f1345zo5udf&autoplay=false&full=true&show1080p=false" style="max-width: 100%;"></iframe>
讓我們仔細看下數學。一個畫素需要27次乘法(3層,每層9次乘法),下面的截圖顯示了27次乘法中的9次:
分素相乘
至於偏置,你可以把它想象成放大鏡的把手。像權重一樣,它是模型的另一個引數,在訓練過程中自動調整,以提高模型的精確度,並更新特徵對映細節。
過濾器權重——在上面的例子中,我為了簡化數學,將權重的值設為-1、0、1;然而,一般而言,你需要用較小的值隨機初始化權重……比如0.01到0.1之間的值,基於鐘形曲線或正態分佈取樣。想要了解更多權重初始化的知識,可以看這篇入門。
步進 —— 移動放大鏡
計算特徵對映的第1個畫素之後,夏洛克將把放大鏡往哪移呢?
步進:每次移動放大鏡1畫素
答案取決於步進引數。作為架構師/工程師,我們需要告訴夏洛克,他應該將他的放大鏡向右移動(步進)多少畫素。實踐中最常見的步長值為2或3,但出於簡單性,這裡我們將步長設為1. 這意味著夏洛克將放大鏡向右移動1畫素,然後進行和之前一樣的卷積運算。
當他的放大鏡到達輸入影像的最右邊時,他將放大鏡移到最左,然後往下移動1畫素。
步長為何大於1?
優點:更少運算,記憶體中儲存的運算結果更少,從而使模型更快。
缺點:由於跳過畫素有錯過模式的潛在可能性,損失了關於影像的資料。
2或3步長通常是合理的,因為緊跟著一個畫素的畫素通常具有相似的值,而隔著2-3個畫素的畫素,更可能具有不同的值,這樣的值對特徵對映/模式而言可能很重要。
如何預防資訊損失(丟失線索)
為了破案,夏洛克剛開始接觸案件的時候需要大量線索。在我們上面的例子中,我們的輸入為一張5x5x3的影像,或者75畫素資訊(75 = 5 x 5 x3),在第一個卷積層後,我們得到了一張3x3x2的影像,或者18畫素(18 = 3 x 3 x 2)。這意味著我們損失了證據,這讓夏洛克的搭檔約翰·華生非常反感。
在CNN的剛開始幾層,夏洛克傾向於檢視大量細微模式(更多線索)。在靠後的卷積層中,隨著夏洛克堆疊細微的線索,檢視較大的模式,“降取樣”也就是降低畫素的總量(更少線索)沒什麼問題。
那麼,在CNN剛開始的時候,我們如何預防這樣的資訊損失呢?
一、補齊——通過補齊影像保護犯罪現場
在上面的例子中,我們在撞上右邊緣前,只能移動過濾器3次……從上往下同樣如此。這意味著我們所得輸出的高/寬為3x3,從左往右,損失了2畫素,而從上往下又損失了2畫素。
為了預防這種資訊損失,常見的做法是用零“補齊”原始影像(稱為全零補齊(zero padding或same padding))……有點類似用犯罪現場隔離膠帶確保沒人破壞證據。
補齊之後,如果夏洛克再次使用相同的放大鏡,他的兩個特徵對映的大小會是5x5而不是3x3。
這意味著我們最終得到了50畫素的資訊(5x5x2=50)。
50畫素比18要好。不過別忘了……我們剛開始有75畫素,所以我們仍然錯過了一些線索。
所以我們還能做什麼讓夏洛克和約翰·華生滿意?
二、更多過濾器——至少在我們的卷積層中加上一個特徵對映,給夏洛克更多線索
模型對特徵對映(“線索”)的數量並沒有限制……這是我們可以控制的超引數。
如果我們至少將特徵對映從2增加到3(5x5x2到5x5x3),那麼總輸出畫素(75)就和輸入畫素(75)相等了。如果我們將對映增加到10,那麼我們會有更多資訊供夏洛克探究(5x5x10 = 250)。
事情變得越來越有趣了
總結一下,剛開始幾層的資訊畫素總數一般高於輸入影像,因為我們想要給夏洛克儘可能多的細微模式/線索。在網路的最後幾層,我們常常進行降取樣,資訊畫素變少,這是因為這些層識別影像中較大的模式。
類比: 過濾器就像放大鏡,而補齊就像犯罪現場隔離膠帶。
非線性模式識別——ReLU
給夏洛克足夠的案件資訊很重要,但現在到了進行真正的偵探工作的時候了——非線性模式識別!比如耳廓和鼻洞。
到目前為止,夏洛克進行了大量數學運算以構建特徵對映,但所有運算都是線性的(在每個輸入畫素上進行一些乘法和加法操作),因此,他只能識別畫素的線性模式。
為了給CNN引入非線性,我們將使用一種稱為修正線性單元(Rectified Linear Unit)的啟用函式,簡稱ReLU。在我們初次進行卷積運算得出特徵對映後,每個值都通過這一函式,看看是否點亮/啟用。
如果輸入值是負數,那麼輸出將為零。如果輸入值是正數,那麼輸出將和輸入一樣。ReLU就像一個開關,讓特徵對映的每個值通過ReLU之後,就建立了非線性模式識別。
回到我們原本的CNN例子,我們在卷積之後馬上應用ReLU:
儘管有許多非線性啟用函式可以為神經網路引入非線性(Sigmoid、Tanh、Leaky ReLU等),ReLU是CNN中目前最流行的啟用函式,因為ReLU在算力上很高效,能加快訓練。你可以參閱Andrej Karpathy的overview on non-linear activation functions瞭解每種函式的優劣(譯者注:也可以參考理解神經網路的啟用函式,同樣比較了不同啟用函式的優劣)。
類比: ReLU就像開關。
最大池化——在大腦閣樓中保留關鍵的少量資訊
現在夏洛克有一些特徵對映(“線索”)要檢視,如何確定哪些資訊是關鍵的,哪些資訊是無關的細節?最大池化。
夏洛克認為人類的大腦就像一個空閣樓。傻瓜會在裡面存放各種各樣的傢俱和物品,讓有用的資訊在一堆雜物中不知所蹤。而智者僅僅儲存最重要的資訊,從而在需要的時候可以快速做出決定。從這個意義上說,最大池化是夏洛克版的大腦閣樓。為了更快地做出決定,他只保留最重要的資訊。
通過最大池化,夏洛克在相鄰的畫素中僅僅保留最大值,證據中最重要的部分。
例如,如果他檢視一個2x2區域(4畫素),他僅僅保留其中值最高的畫素,丟棄其餘3個畫素。這一技術讓他可以快速地學習,同時也有助於他概括(而不是“記憶”)可用於未來影像的線索。
和之前的放大鏡過濾器類似,我們同樣可以控制最大池化的步長和大小。在下面的例子中,我們將步長設為1,池化尺寸設為2x2:
最大池化之後,我們完成了1回合卷積/ReLU/最大池化。
典型的CNN在分類器之前會有若干回合卷積/ReLU/池化。在每一回閤中,我們將在增加深度的同時擠壓高/寬,這樣我們不會在此過程中遺失證據。
第一步至第五步,我們專注於收集證據,現在是時候讓夏洛克檢視所有線索,偵破案件了:
現在我們已經有了證據,讓我們開始挖掘證據的意義……
類比: 最大池化就像夏洛克的閣樓理論,保留關鍵資訊,拋棄駁雜無用的資訊。
在訓練週期的末尾,夏洛克得到了堆積如山的線索,需要找到一下子檢視所有線索的方式。每條線索不過是一個2維矩陣,但我們有堆疊在一起的數以千計的矩陣。
作為一名私家偵探,夏洛克很擅長應付這樣的混沌,但他需要將證據呈上法庭,整理證據以供陪審團檢視。
扁平化之前的特徵對映
他通過一種簡單的轉換技術(稱為扁平化)做到了這一點:
將每個由畫素組成的2維矩陣轉換為一列畫素
將原本的二維矩陣(現在的一列畫素)一個接一個地排列起來
在人類的眼睛看來,變換是這樣的:
而在計算機看來,是這樣的:
現在夏洛克已經整理好證據了,是時候說服陪審團證據清楚地指向一個嫌疑人。
類比:扁平化就像把證據呈上法庭。
在全連線層中,我們將方方面面的證據連線起來。某種意義上,我們完成案件的拼圖,向評審團表明證據和每個嫌疑人之間的聯絡:
在計算機看來,全連線層是這樣的:
在扁平層的每份證據和3個輸出之前是一組權重和偏置。類似網路中的其他權重,這些值會在剛開始訓練CNN的時候隨機初始化,而隨著時間的推移,CNN將“學習”如何調整這些權重/偏置以得到更精確的預測。
現在,到了夏洛克揭曉謎底的時間了!
類比:全連線層就像說服陪審團下決定。
在CNN的影像分類器階段,模型的預測為得分最高的輸出。模型的目標是讓正確的輸出得分最高,而讓錯誤的輸出得分較低。
評分分為兩部分:
Logit分數——原始得分
Softmax——每個輸出的概率(0-1之間)。所有輸出得分之和等於1
Logit——邏輯得分
每個輸出的Logit得分是一個基本的線性函式:
Logit得分 = (證據 x 權重) + 偏置
每片證據乘以連線證據至輸出的權重。所有乘積相加,最後加上偏置項,得分最高的為模型的猜測。
所以,為什麼不到此為止?直觀地說,有兩個原因:
夏洛克的置信度——我們想要知道夏洛克對結果有多自信,這樣,當夏洛克的置信度很高同時他是正確的時候,我們會獎勵他,而在夏洛克的置信度很高同時他是錯誤的時候,我們會懲罰他。我們在下一部分計算損失(“夏洛克的精確度”)時會具體討論獎勵/懲罰。
夏洛克的置信度加權概率——我們想要能夠方便地解釋這些0到1之間的概率,並且我們想要預測得分和實際輸出(0或1)處於同一尺度。實際正確的結果(Elon)的概率為1,其他錯誤的結果(Jeff和Jon)的概率為0. 將正確輸出轉為一,錯誤輸出轉為零的過程稱為獨熱編碼。
夏洛克的目標是讓他對正確輸出的預測儘可能接近1.
2. Softmax——夏洛克的置信度加權概率得分
2.1 夏洛克的置信度
為了得出夏洛克的置信度,我們以e(等於2.71828…)為底數,以logit得分為指數。這樣,一個較高的得分將變為非常高的置信度,而一個較低的得分將變為非常低的置信度。
這番指數運算同時也確保了我們不會有任何負分(logit得分“可能”是負數)。
2.2 夏洛克置信度加權概率
為了得出置信度加權概率,我們將每個輸出置信度除以所有置信度得分之和,這就確保了所有概率之和為1。
softmax分類器很直觀。夏洛克認為有97%(置信度加權)的機率終結者檢視的影像是Elon Musk。
模型的最後一步是計算損失。損失告訴我們偵探夏洛克到底有多棒(或者到底有多糟)。
類比:Logit + Softmax就像檢視一排嫌疑人,並指出罪犯
所有神經網路都有一個損失函式,用來比較預測和實際值。在CNN訓練的過程中,隨著網路權重/偏置的調整,預測改進了(夏洛克的偵探技能變得更厲害了)。
CNN最常用的損失函式是交叉熵。用Google搜尋交叉熵出現的一些解釋都涉及大量希臘字母,很容易讓人困惑。儘管這些描述各不相同,在機器學習的語境下它們都意味著一樣東西,我們下面將介紹最常見的3種解釋,便於你理解。
在描述每種公式變體之前,先概括一下它們的共同點:
比較正確分類的概率(Elon,1.00)和CNN的預測(Elon的softmax得分,0.97)。
當夏洛克對正確分類的預測接近1時(低損失),獎勵他?
當夏洛克對正確分類的預測接近0時(高損失),懲罰他?
結果是一樣的!3種不同的解釋……
1號解釋——衡量實際概率和預測概率的距離
距離捕捉了以下直覺:如果對正確標籤的預測接近1,那麼損失接近0. 如果對正確標籤的預測接近0,那麼將受到嚴厲的懲罰。目標是最小化正確分類的預測(Elon,0.97)和正確分類的實際概率(1.00)的距離。
賞罰“對數”公式背後的直覺將在2號解釋中討論。
2號解釋——最大化log似然或最小化負log似然
在CNN中,“對數”實際上指“自然對數(ln)”,它是softmax中以自然對數為底的指數的逆運算。
對夏洛克遠離1.00的預測而言,相比直接從實際概率(1.00)中減去預測概率(0.97)來計算損失,對數運算將懲罰以指數級別加重了。
最小化負對數似然和最大化對數似然均導向softmax預測趨向1.0,損失趨向0.0的結果。
3號解釋——KL散度
KL(Kullback-Leibler)散度衡量預測概率(softmax得分)和實際概率的差異。
KL散度的公式包括兩部分:
實際概率的不確定性。
使用預測概率損失的資訊量。
在監督學習分類問題的模型訓練中,實際概率的不確定性總是等於0. 我們百分之百確定訓練影像的分類無誤。此時,最小化預測概率分佈和實際概率分佈之間的KL散度等價於最小化交叉熵。
類比:交叉熵損失就像評估夏洛克的偵探技能。
總結
在夏洛克·卷積·福爾摩斯這位特別的偵探的幫助下,終結者有了一對能夠搜尋並摧毀自由世界的保護者Elon Musk的眼睛(對不住了,Elon!)。
雖然我們僅僅訓練了終結者識別Elon、Jeff、Jon……天網有無窮多的資源,可以隨意訓練影像,因此天網可以利用我們建立的模型訓練終結者識別任何人類和物體。
訂閱郵件列表和分享
如果你喜歡本文,並想收到更多通過Excel進行機器學習的內容,可以訪問excelwithml.com免費訂閱郵件列表。
你也可以在Twitter上關注ExcelwithML。
更多可互動資源
畫一個數字,檢視CNN如何預測它:http://scs.ryerson.ca/~aharley/vis/conv/flat.html
用Google和你的攝像頭訓練自己的CNN:https://experiments.withgoogle.com/teachable-machine
Andreij Karpathy的實時影像分類模型:https://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html
Fast.AI講解CNN的視訊(不可互動,不過是一個很好的講座):https://www.youtube.com/watch?time_continue=2548&v=9C06ZPF8Uuc
在未來與機器的戰爭中,我們的命運就在你的手中?
相關報導:
相關文章
- TensorFlow2.0 + CNN + keras + 人臉識別CNNKeras
- 神探Sherlock如何用AI破案?教你在Excel中搭建一個人臉識別CNN網路AIExcelCNN
- 模式識別hw2-------基於matconvnet,用CNN實現人臉圖片性別識別模式CNN
- 機器學習實戰-SVM模型實現人臉識別機器學習模型
- 純前端實現人臉識別-提取-合成前端
- 基於Android平臺實現人臉識別Android
- 人臉識別技術,讓科幻成為現實
- opencv 人臉識別OpenCV
- OpenCV — 人臉識別OpenCV
- 如何理解並實現一個簡單的人臉識別演算法(下):人臉識別演算法
- 萌新如何用Python實現人臉替換?Python
- 動手實操 | 如何用 Python 實現人臉識別,證明這個楊冪是那個楊冪?Python
- matlab實現人臉識別(數學基礎原理)Matlab
- 手把手教你實現人臉識別,有手就行
- 64行程式碼實現簡單人臉識別行程
- 人臉識別技術,將電影變成現實
- 人臉檢測識別,人臉檢測,人臉識別,離線檢測,C#原始碼C#原始碼
- 【opencv3】 svm實現手寫體與人臉識別OpenCV
- 虹軟人臉識別ArcSoft3.0NodeJs 版本實現NodeJS
- 【ROS】OpenCV+ROS 實現人臉識別(Ubantu16.04)ROSOpenCV
- Mars演算法實踐——人臉識別演算法
- 人臉識別檢測專案實戰
- C#人臉識別入門篇-STEP BY STEP人臉識別--入門篇C#
- 智慧人臉識別門禁系統開發,人臉識別開鎖流程
- 人臉識別之特徵臉方法(Eigenface)特徵
- 前端人臉識別--兩張臉相似度前端
- 如何用OpenCV在Python中實現人臉檢測OpenCVPython
- 妙招:使用Python實現圖片在人臉識別並顯示Python
- Python實現人臉識別功能,face_recognition的使用 | 機器學習Python機器學習
- 手把手教你用 1 行命令實現人臉識別
- 人臉活體檢測人臉識別:眨眼+張口
- 支小蜜人臉識別消費系統助力學校食堂實現“刷臉吃飯”
- 乾貨 | AI人臉識別之人臉搜尋AI
- 美軍開發遠端人臉識別系統,實現1公里內目標識別
- 人臉識別智慧考勤系統開發_人臉識別考勤管理系統開發
- 如何快速實現人臉識別通道?一文了解具體技巧
- 人臉識別技術應用
- 前端如何玩轉人臉識別前端