2012-04-01 43 views
8

因此,我使用內置facedector的androids來檢測和確定位圖中位置的位置。現在它可以工作,並告訴我:自信,eyesDistance和中點,但每當我嘗試獲得姿勢它總是返回0,無論我嘗試使用什麼圖像。Android Facedetector姿勢值始終爲0

這是我用得到的姿勢代碼:

poseString = "Pose: (" + getFace.pose(FaceDetector.Face.EULER_X) + "," 
         + getFace.pose(FaceDetector.Face.EULER_Y) + "," 
         + getFace.pose(FaceDetector.Face.EULER_Z) + ")"; 

,這裏是我的代碼使用方法:

arrayFaces = new FaceDetector(picWidth, picHeight, NUM_FACES); 
     arrayFaces.findFaces(sourceImage, getAllFaces); 

     for (int i = 0; i < getAllFaces.length; i++) { 
      getFace = getAllFaces[i]; 
      try { 
       PointF eyesMP = new PointF(); 
       getFace.getMidPoint(eyesMP); 
       poseString = "Pose: ("+ getFace.pose(FaceDetector.Face.EULER_X) + "," 
         + getFace.pose(FaceDetector.Face.EULER_Y) + "," 
         + getFace.pose(FaceDetector.Face.EULER_Z) + ")"; 
       EULER_X = getFace.EULER_X; 
       EULER_Y = getFace.EULER_Y; 
       EULER_Z = getFace.EULER_Z;  

       eyesDistance[i] = getFace.eyesDistance(); 
       eyesMidPts[i] = eyesMP; 

       if (DEBUG) { 
        currentx = eyesMidPts[i].x; 
        currenty = eyesMidPts[i].y; 
        betweeneyes = getFace.eyesDistance(); 

        Log.d("currentx", currentx + ""); 
        Log.d("currenty", currenty + ""); 
        Log.d("betweeneyes", betweeneyes + ""); 
        Log.d("EULER", "EULER_X: " + EULER_X + "EULER_Y: " + EULER_Y + "EULER_Z: " + EULER_Z); 

        Log.i("Face", i + " " + getFace.confidence() + " " 
          + getFace.eyesDistance() + " " + "Pose: (" 
          + getFace.pose(FaceDetector.Face.EULER_X) + "," 
          + getFace.pose(FaceDetector.Face.EULER_Y) + "," 
          + getFace.pose(FaceDetector.Face.EULER_Z) + ")" 
          + "Eyes Midpoint: (" + eyesMidPts[i].x + "," 
          + eyesMidPts[i].y + ")"); 
       } 
      } catch (Exception e) { 
       if (DEBUG) 
        Log.e("Face", i + " is null"); 
      } 




     } 
+0

我們可以看到代碼實際使用'FaceDetector'嗎?據我可以從文檔中知道,你應該傳遞你自己的'Face []'數組,然後直接從這些對象中讀取數據。 – sastraxi 2012-04-03 01:04:00

+0

當然抱歉我現在將它添加 – Peter 2012-04-03 01:08:22

+0

檢查此代碼,因爲它爲我和其他人工作http://stackoverflow.com/questions/9269891/android-face-detection/9272063#9272063 – Sameer 2012-04-07 11:13:03

回答

3

粗略谷歌搜索顯示約10個不同的崗位 - 有些甚至on StackOverflow - 有同樣問題的人。你有沒有找到這些?它看起來可能是一個錯誤。我建議你將它報告給android bug tracker

編輯:您應該絕對提交錯誤。看看臉部檢測源代碼:this source file表明,Android將永遠不會將這些設置爲除0之外的任何內容。

在此更改之前,Android還有其他CV選項。退房OpenCV for Android,現在正式由團隊支持。

+0

謝謝我將研究這個問題,之前我已經研究過Android的OpenCV,但是我永遠無法設置它並且實際工作,你知道任何好的資源嗎? – Peter 2012-04-03 01:22:25

+0

您使用的是Eclipse嗎?如果你是,你有沒有嘗試一步一步的指導,我鏈接你提供的網站? – sastraxi 2012-04-03 02:18:01

+0

是的,但是我發現他們的網站已經改變了,看起來自從我上次試圖讓它工作以來,它的更新已經更新。我仍然希望使用android facedetect來處理'pose',因爲我已經可以使用所有其他代碼了。但我肯定會考慮未來的OpenCV。 – Peter 2012-04-03 14:23:53