如何在iPhone上進行臉部識別?有人可以向我提供參考資料/文章,以便我指出正確的方向嗎?我已經完成了研究並意識到我需要首先進行人臉檢測以提取圖像,然後通過將其與數據庫中的其他圖像進行比較來進行面部識別。iPhone上的臉部識別
我已經意識到我已經通過使用OpenCV或使用iOS 5.0及更高版本來檢測人臉進行人臉檢測。我不確定面部識別(我計劃將圖像存儲在遠程數據庫上,然後與遠程數據庫進行比較)。
如何在iPhone上進行臉部識別?有人可以向我提供參考資料/文章,以便我指出正確的方向嗎?我已經完成了研究並意識到我需要首先進行人臉檢測以提取圖像,然後通過將其與數據庫中的其他圖像進行比較來進行面部識別。iPhone上的臉部識別
我已經意識到我已經通過使用OpenCV或使用iOS 5.0及更高版本來檢測人臉進行人臉檢測。我不確定面部識別(我計劃將圖像存儲在遠程數據庫上,然後與遠程數據庫進行比較)。
人臉檢測
我會用開放的簡歷提供的Haarcascades進行快速,準確的人臉檢測。
http://opencv.willowgarage.com/wiki/FaceDetection
人臉識別
我會使用的方法,如主成分分析(PCA)a.k.a特徵臉。
http://www.cognotics.com/opencv/servo_2007_series/part_5/index.html
該鏈接顯示瞭如何獲得與OpenCV的工作教程 - 我認爲這是C寫的,但我敢肯定,你可以得到它的基本JIST。
你也可以看看自己實現它,如果你覺得勇敢(這是不是太糟糕了)...
http://www.face-rec.org/algorithms/PCA/jcn.pdf
http://blog.zabarauskas.com/eigenfaces-tutorial/
數據庫
我真的做到了與你類似,儘管在PC上不是iPhone,但它仍然是一個概念。我將所有圖像作爲Blob數據類型存儲在數據庫中,然後在必要時將它們加載到我的程序中。
編輯
數據庫是系統的一個特別棘手的部分,因爲這是其中最大的瓶頸是。在我的應用程序,我會去通過以下步驟...
幸運的是,我的數據庫服務器位於局域網中,因此速度不是問題,但是我可以看到爲什麼有一個問題,因爲在移動設備上您的數據連接有限(速度/帶寬)。您可以壓縮圖像,但這可能會導致較差的識別率,這是由於圖像質量下降,您還必須在設備上進行解碼。還有如何將遠程數據庫公開給應用程序的問題,但我相信這可以使用PHP和JSON(以及其他技術,見下文)。
Retrieving data from a remote database
也許從而使圖像在手機上緩存,你可以做與數據庫的初始同步?無論如何,我認爲你可能不得不在手機上放置圖像。
找出在數據庫中存儲識別數據/圖像的最佳方式是我面臨的最大挑戰之一,所以如果您找到一個好的方法,我會很感興趣。
非常感謝您的答覆。關於數據庫,程序是否連接到數據庫,然後下載所有的圖像,然後對每個圖像執行識別?這對我來說很有用,因爲它將是一個功能有限的移動設備。 (即時通訊可能是錯誤的,所以請糾正我,我正處於即將試圖找出算法/ psudo代碼如何處理事情的階段)。 – 2012-04-25 15:53:57
@RoryLester嗨,我已經更新了答案,希望能夠回答你的一些問題。祝你好運! – TomP89 2012-04-26 20:49:35
@ TomP89人臉識別鏈接不再工作了......如果您知道一些用於人臉識別的新鏈接,那麼更新答案將會很棒。 – Dave 2015-06-25 12:14:31
人臉識別可以實現爲機器學習算法。 This book有一章描述了這個任務以及如何實現它。值得閱讀!
它使用單值分解(SVD),更具體地Tensor SVD method。
正如您所指出的,iOS 5和CoreImage.framework
的第一步(檢測臉部)很容易。簡單的例子:
CIImage *image = [CIImage imageWithCGImage:image_ref];
NSDictionary *options = [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy];
CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:options];
NSArray *features = [detector featuresInImage:image];
for (CIFaceFeature *feature in features)
{
CGRect face_bounds = [feature bounds];
CGPoint mouth_position = [feature mouthPosition];
// do something with these values
}
至於你的問題(即面部識別)的第二部分,我將留給別人更有資格比我自己來回答。 :)
這是臉**檢測**,不**識別**。 – UIAdam 2012-04-23 01:27:11
@UIAdam:很好的一點,我已經編輯,在我的答案中澄清。這個問題表明,選舉委員會了解這兩項任務,並相應修改了答案。 – 2012-04-23 02:41:53
您可能想看看Pedro Centieiro的midian項目,該項目使用OpenCV在iOS 5上執行人臉識別。這是在GitHub上的:
它使用的我libfacerec部分,所以它支持特徵臉,費舍爾和局部二值模式的直方圖進行人臉識別。
我們有以下的面部識別API: -
1. OpenCV
2. Kairos
3. CraftarAR
4. AAFaceDetection
5. MoodMe
,在我看來,如果你想在離線應用程序中使用CraftAR
是好的,如果你想在網上使用再Kairos
是最好的。而OpenCV
也是一個着名和可靠的選項。
OPENCV的最大優點是它是開源的。
請在google上搜索以獲取更多詳細信息,並查看github示例,瞭解這些API如何工作。
[OpenCV中的人臉識別](http://stackoverflow.com/questions/4856929/face-recognition-in-opencv) – karlphillip 2012-04-22 22:09:41
也可能出現[如何使用OpenCV進行人臉識別?](http ://stackoverflow.com/questions/7949494/how-to-do-face-recognition-using-opencv)等等。 – karlphillip 2012-04-22 22:10:49
可能的重複[如何在iOS上執行面部識別?](http://stackoverflow.com/questions/8020842/how-can-i-perform-facial-recogntion-on-ios) – Monolo 2012-07-17 05:34:41