Реализация EigenFace: на Java с использованием OpenCV3

Я хочу распознавать лица в режиме реального времени через веб-камеру. Я работал до обнаружения лица через веб-камеру, но у меня возникли проблемы с реализацией алгоритма собственного лица в Java (Netbeans).

Я добился обнаружения лица, используя следующий код: -

private DaemonThread myThread = null;
int count = 0;
VideoCapture webSource = null;

Mat frame = new Mat();
MatOfByte mem = new MatOfByte();
CascadeClassifier faceDetector = new CascadeClassifier(ScannerGUI.class.getResource("haarcascade_frontalface_alt.xml").getPath().substring(1));
MatOfRect faceDetections = new MatOfRect();


class DaemonThread implements Runnable
{
protected volatile boolean runnable = false;

@Override
public  void run()
{
    synchronized(this)
    {
        while(runnable)
        {
            if(webSource.grab())
            {
            try
                    {
                        webSource.retrieve(frame);
            //Highgui.imencode(".bmp", frame, mem);
                        Graphics g=jPanel1.getGraphics();
                        faceDetector.detectMultiScale(frame, faceDetections);

                        for (Rect rect : faceDetections.toArray()) 
                       {  Imgproc.rectangle(frame, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height),new Scalar(0, 255, 0),2);
                        }

                        Imgcodecs.imencode(".bmp", frame, mem);
            Image im = ImageIO.read(new ByteArrayInputStream(mem.toArray()));
            BufferedImage buff = (BufferedImage) im;
            if (g.drawImage(buff, 0, 0, getWidth(), getHeight() -150 , 0, 0, buff.getWidth(), buff.getHeight(), null))

            if(runnable == false)
                        {
                System.out.println("Going to wait()");
                this.wait();
            }
         }
         catch(Exception ex)
                     {
            System.out.println("Error");
                     }
            }
        }
    }
 }
}

Теперь я хочу сначала сохранить обнаруженное лицо в собственных лицах, а затем распознать это лицо.

Может кто-нибудь, пожалуйста, помогите мне в этом. Я тщательно искал в Интернете реализацию лица Eigen на Java, но не смог найти ничего полезного.

Пожалуйста, помогите мне в этом, так как я новичок в OpenCV и в этом моем проекте для колледжа.


person Ap00rv    schedule 02.11.2015    source источник
comment
OpenCV уже предоставляет реализацию собственного лица. Я не знаю, поддерживает ли это оболочка java, но вы всегда можете вызвать собственный код C++.   -  person Miki    schedule 02.11.2015
comment
все это находится в документы   -  person berak    schedule 02.11.2015


Ответы (1)


Чтобы собрать OpenCV из исходного кода с модулями contrib (которые содержат пакет org.opencv.face для Java), см. этот вопрос и ответ.

После сборки JAR с модулями contrib вы можете создать экземпляр EigenFaceRecognizer следующим образом:

Модель FaceRecognizer = org.opencv.face.Face.createEigenFaceRecognizer();

person clownbaby    schedule 19.10.2016