我正在一個小項目中,通過推特用戶的頭像涉及推特用戶的臉。
我遇到的一個問題是,在濾除所有清晰的肖像照片之後,我將所有照片過濾掉了。 ,一小部分但相當多的Twitter用戶使用賈斯汀·比伯的圖片作為他們的個人資料圖片。
為了過濾掉他們,我如何以編程方式判斷圖片是否是賈斯汀·比伯的圖片? > >
我正在一個小項目中,通過推特用戶的頭像涉及推特用戶的臉。
我遇到的一個問題是,在濾除所有清晰的肖像照片之後,我將所有照片過濾掉了。 ,一小部分但相當多的Twitter用戶使用賈斯汀·比伯的圖片作為他們的個人資料圖片。
為了過濾掉他們,我如何以編程方式判斷圖片是否是賈斯汀·比伯的圖片? > >
一個更好的主意可能是將所有出現在一個以上用戶的提要中的圖像全部丟棄-無需識別。
我覺得 http://www.tineye.com/commercial_api可能是這裡的解決方案。只需將Twitter個人資料圖片扔給Tineye,看看它是否返回圖片(以及相關的URL) ),可以清楚地識別出該標籤(或使用簡單的單詞計數邏輯自動評分)與 * *的一小袋麻袋有關。
簡單! >
由於您只能過濾那些清晰的人像照片,因此我假設您具有某種特徵生成方法,可以將原始圖像轉換為對機器學習有用的特徵。如果是這樣,您可以嘗試通過向算法提供一堆已知的Bieber照片以及一堆已知的非Biebers來訓練分類算法(其中有很多:神經網絡等)。訓練完模型後,就可以用來預測新圖像是否為Bieber。
這種有監督的學習技術確實需要您擁有知道正確答案的數據(Bieber或否),但可能可以通過Google圖片搜索找到。它還要求您具有正確的功能,而我對圖像處理或算法的了解還不足以知道這是否是主要缺點。
您可以使用諸如eigenfaces之類的方法, http://en.wikipedia.org/wiki/Eigenface。以下內容對該過程進行了很好的演練,並提供了不同實現的鏈接。
http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm
通常在這裡使用它分類方法,訓練模型,然後預測病例。您可以通過對一群知名名人進行培訓來做到這一點,如果您將Twitter的面孔預測為經過培訓的名人模型中的面孔,則將其刪除。與此 http://blog.cordiner.net/2010/12/02/eigenfaces-face-recognition-matlab/
相似。很快會有一個新的賈斯汀·比伯(Justin Bieber)不在您的訓練模型中,因此您無法對其進行預測。還有像惠特尼·休斯頓(Whitney Houston)的情況,您可能從未想過要加她,但幾週以來,出於尊重和欽佩,她可能是一個共同的形象。但是,您將不會遇到上述嬰兒圖片的缺點。為了解決這些問題,您可以使用更多的分層聚類方法。如果除去前幾組集群,如果它們達到一定的支持水平,它們會非常接近,則第一個集群有15個項目,然後再構建第二個集群。現在,您不必擔心培訓模型中的誰,但您會陷入嬰兒圖片問題。
http://face.com/免費提供了面部識別API
如果您想自己做,我建議您使用英特爾的免費開放源代碼OpenCV(計算機視覺CV)項目。
您需要使用一種算法來檢測圖片所指的人。您可以基於名人的不同肖像圖片建立模型,並使用分類器確保該圖片引用您的數據庫圖片之一。您需要根據面部喜歡的不同參數(例如眼睛之間的距離或其他參數)使用特定的分類器,以提高模型的準確性。還有皮膚分析,最重要的是建立一個好的分類器。這種方法很容易受到攻擊。
但是還有一個非常好的人臉識別項目 http://opencv-code.com/Opencv_Face_Detection