簡體   English   中英

iPhone上的人臉識別

[英]Face Recognition on the iPhone

如何在iPhone上進行面部識別。 有人可以給我提供參考/文章,指出我正確的方向嗎? 我已經做了研究並意識到我需要首先進行人臉檢測以提取圖像,然后通過將其與數據庫中的其他圖像進行比較來進行面部識別。

我已經意識到我已經通過使用OpenCV或利用iOS 5.0及更高版本來檢測面部進行面部檢測。 我不確定面部識別(我計划將圖像存儲在遠程數據庫上,然后與遠程數據庫進行比較)。

人臉檢測

我會使用開放式CV中的Haarcascades來執行快速准確的人臉檢測。

http://opencv.willowgarage.com/wiki/FaceDetection

人臉識別

我會使用諸如主成分分析(PCA)又稱特征臉的方法。

http://www.cognotics.com/opencv/servo_2007_series/part_5/index.html

該鏈接顯示了如何使用OpenCV的教程 - 我認為這是為C編寫的,但我相信你可以得到它的基本要點。

如果你覺得勇敢(也不是太糟糕),你也可以自己去實現它......

http://www.face-rec.org/algorithms/PCA/jcn.pdf

http://blog.zabarauskas.com/eigenfaces-tutorial/

數據庫

我實際上做了類似於你的事情,雖然在PC而不是iPhone上,但它仍然是相同的概念。 我將所有圖像存儲在數據庫中作為Blob數據類型,然后在必要時將它們加載到我的程序中。

編輯

數據庫是系統中特別棘手的部分,因為這是最大的瓶頸所在。 在我的申請中,我將完成以下步驟......

  1. 打開應用程序並從數據庫中獲取訓練圖像
  2. 基於這些圖像生成訓練集
  3. 一旦完成1和2,系統就會很快,因為它只是對訓練集進行識別。

幸運的是,我的數據庫服務器位於局域網上,因此速度不是問題,但我可以看到為什么你有一個問題,因為在移動設備上你有一個有限的數據連接(速度/帶寬)。 您可以壓縮圖像,但由於圖像質量下降,這可能會導致更差的識別率,並且您還必須在設備上進行解碼。 還有如何將遠程數據庫暴露給應用程序的問題,但是我相信這可以使用PHP和JSON(以及其他技術,見下文)。

從遠程數據庫中檢索數據

也許您可以與數據庫進行初始同步,以便將圖像緩存在手機上? 無論如何,我認為你可能不得不在某種程度上將這些圖像放在手機上。

找出將識別數據/圖像存儲在數據庫中的最佳方法是我面臨的最大挑戰之一,所以如果你找到一個好的方法,我會有興趣聽聽。

正如您所指出的,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
}

關於你問題的第二部分(即面部識別 ),我會把它留給比我更有資格回答的人。 :)

您可能希望看看Pedro Centieiro的midian項目,該項目使用OpenCV在iOS 5上執行人臉識別。 它在github上:

它使用我的libfacerec的一部分 ,因此它支持面部識別的特征臉,Fisherfaces和局部二值模式直方圖。

面部識別可以實現為機器學習算法。 本書有一章描述了這項任務以及如何實現它。 值得一讀!

它使用單值分解 (SVD),更具體地說是Tensor SVD方法

我們有以下人臉識別api: -

1. OpenCV

2. Kairos

3. CraftarAR

4. AAFaceDetection

5. MoodMe

在我看來,如果你想在離線應用程序中使用CraftAR是好的,如果你想在線使用,那么Kairos是最好的。 OpenCV也是一個着名而可靠的選擇。

OPENCV的最大優點是它是開源的。

請在谷歌搜索這些以獲取更多詳細信息,並查看github示例以了解這些api如何工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM