0

我剛開始在android手機上的增強現實基礎上開發一個項目作爲人臉檢測。迄今爲止,我對AR(增強現實)新增了一些面向行爲因素的貢獻和評估算法,但我對AR並沒有任何想法,並且希望在我的項目中實施AR。因此,您可以專家親切地告訴我,從哪裏開始和我是否需要任何其他工具來創建AR應用程序(/我必須在IDE(eclipse)上添加任何插件)?或者是否有任何其他IDE比eclipse更適合AR?請檢查下面的鏈接,讓您的意見,因爲我的項目是完全好像下面給出的鏈接,機器人上的增強現實

http://www.readwriteweb.com/archives/recognizr_facial_recognition_coming_to_android_phones.php

http://www.blackweb20.com/2010/03/01/recognizr-facial-recognition-on-android/#.TzNswE7xodM

謝謝!

回答

0

AR實現本身很簡單。它基本上只是預覽圖片的疊加層,您可以在此疊加層上放置任何你喜歡的圖片。一個工作示例包含在這個項目:

http://sourceforge.net/projects/javaocr/

(有countles人)

棘手的部分就從這裏開始。對於人臉識別,通常使用Haar轉換,並且在OpenCV中也有實現(也算其他) - 但是如果你可以在android java代碼中執行足夠的性能,這是非常有用的(你必須以native代碼)。這只是臉部識別 - 它說你 - 「嘿,夥計,這是臉,也許」 - 不是識別。至於IDE,我更喜歡IntelliJ IDEA,因爲它只是更好的Java IDE(有人會爲此而私下我);並且它有更好的Android支持。但是,這是商業產品(免費comminity版是免費提供的,和個人的許可證是不貴)

+0

謝謝你的回覆。而且我想知道IntelliJ IDEA需要artoolkit嗎?或者基本上我們需要將插件或軟件包安裝在AR的IDE中?否則我可以在沒有任何搶先包或插件包的情況下開始編碼考慮AR – arshadkr 2012-02-09 09:21:35

0

你可以試試這個代碼:

public class FaceDetectionActivity extends Activity 
    { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
    //setContentView(R.layout.main); 
    setContentView(new MyView(this)); 
    } 

private class MyView extends View 
{ 
    private Bitmap myBitmap; 
    private int width, height; 
    private FaceDetector.Face[] detectedFaces; 
    private int NUMBER_OF_FACES=4; 
    private FaceDetector faceDetector; 
    private int NUMBER_OF_FACE_DETECTED; 
    private float eyeDistance; 

    public MyView(Context context) 
    { 
     super(context); 
     BitmapFactory.Options bitmapFatoryOptions=new BitmapFactory.Options(); 
     bitmapFatoryOptions.inPreferredConfig=Bitmap.Config.RGB_565; 
     myBitmap=BitmapFactory.decodeResource(getResources(), R.drawable.faces,bitmapFatoryOptions); 
     width=myBitmap.getWidth(); 
     height=myBitmap.getHeight(); 
     detectedFaces=new FaceDetector.Face[NUMBER_OF_FACES]; 
     faceDetector=new FaceDetector(width,height,NUMBER_OF_FACES); 
     NUMBER_OF_FACE_DETECTED=faceDetector.findFaces(myBitmap, detectedFaces); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) 
    { 
     canvas.drawBitmap(myBitmap, 0,0, null); 
     Paint myPaint = new Paint(); 
     myPaint.setColor(Color.GREEN); 
     myPaint.setStyle(Paint.Style.STROKE); 
     myPaint.setStrokeWidth(3); 

     for(int count=0;count<NUMBER_OF_FACE_DETECTED;count++) 
     { 
      Face face=detectedFaces[count]; 
      PointF midPoint=new PointF(); 
      face.getMidPoint(midPoint); 

      eyeDistance=face.eyesDistance(); 
      canvas.drawRect(midPoint.x-eyeDistance, midPoint.y-eyeDistance, midPoint.x+eyeDistance, midPoint.y+eyeDistance, myPaint); 
     } 
    } 

} 
} 

這個代碼將位圖檢測的臉部,所以你應該也通過相機 乾杯實施這項技術。

+0

如果您有任何疑問,請告知我。 – 2012-02-09 07:26:24

+0

謝謝您,先生,您如何看待下面的算法, HOG,邊緣檢測,Shift和平均移位。 。我的proj不僅僅是檢測的基礎,我也要匹配數據庫中的人臉。謝謝! – arshadkr 2012-02-09 09:23:56