Дополненная реальность на андроид - PullRequest
0 голосов
/ 09 февраля 2012

Я только начал разрабатывать проект по распознаванию лиц на основе дополненной реальности на телефоне 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

спасибо!

Ответы [ 2 ]

0 голосов
/ 09 февраля 2012

вы можете попробовать этот код:

    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 голосов
/ 09 февраля 2012

Сама реализация AR проста.По сути, это просто наложение поверх изображения предварительного просмотра, и вы можете поместить в него все, что захотите.Один рабочий пример содержится в этом проекте:

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

(есть еще множество других)

Отсюда начинаются хитрые части.Для распознавания лиц обычно используется преобразование Хаара, и в OpenCV есть реализации (и также учитываются другие) - но сомнительно, если вы можете сделать это достаточно эффективно в Java-коде Android, чтобы быть действительно полезным (вам придется сделать это на нативномкод).И это только распознавание лица - оно говорит тебе - "эй чувак, вот лицо. Может быть" - не идентификация.

Что касается IDE, я предпочитаю IntelliJ IDEA, так как он просто лучше java ide (кто-нибудь прямо сейчас меня за это линчует;)), и он имеет лучшую поддержку Android.Но это коммерческий продукт (бесплатная версия для сообщества доступна бесплатно, а индивидуальная лицензия не так уж и дорога)

...