2017-05-19 13:52:15 -0600 | asked a question | OpenCV - predict_label returns a huge value I have trained faceRecognizer in Java. But when i predict a label it returns a huge value which is not the actual label which i stored during training. Please have a look at my training code and tell me how this error can be resolved. String trainingDir = "res/"; File root = new File(trainingDir); FilenameFilter imgFilter = new FilenameFilter() { public boolean accept(File dir, String name) { name = name.toLowerCase(); return name.endsWith(".jpg") || name.endsWith(".pgm") || name.endsWith(".png"); } }; File[] imageFiles = root.listFiles(imgFilter); ArrayList <mat> images = new ArrayList(imageFiles.length); Mat labels = new Mat(imageFiles.length,1,CvType.CV_32SC1); ArrayList <integer>labelsBuf = new ArrayList<>(imageFiles.length); int counter =0; for(File image: imageFiles){ Mat img = Imgcodecs.imread(image.getAbsolutePath(),Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE); int label = Integer.parseInt(image.getName().split("\\.")[2]); //images.add(label, img); images.add(img); labelsBuf.add(counter, label); counter++; } FaceRecognizer faceRecognizer = Face.createFisherFaceRecognizer(); faceRecognizer.train(images, labels); Thanks in advance |
2017-05-19 13:30:53 -0600 | commented answer | Wrong Shapes for Given Matrices in OpenCv 3.1 - Java Thanks you so much this really worked. Now i am facing another problem. When i use the function predict_label it shows me a huge number how could i get the exact label which i stored during train. |
2017-05-19 13:30:05 -0600 | received badge | ● Supporter (source) |
2017-05-19 13:30:03 -0600 | received badge | ● Scholar (source) |
2017-05-19 06:30:30 -0600 | asked a question | Wrong Shapes for Given Matrices in OpenCv 3.1 - Java I have trained the FaceRecognizer all the images are of same size and passed the grayscale image to the predictor. But i face this error OpenCV Error: Bad argument (Wrong shapes for given matrices. Was size(src) = (1,150544), size(W) = (37636,5).) in subspaceProject, file /home/**/opencv/modules/core/src/lda.cpp, line 182 Here is the code if (videoDevice.isOpened()) { while (true) { Mat frameCapture = new Mat(); videoDevice.read(frameCapture); MatOfRect faces = new MatOfRect(); cascadeFaceClassifier.detectMultiScale(frameCapture, faces, 2.0, 5, 0,new Size(),new Size()); for (Rect rect : faces.toArray()) { Mat resizedCapture = new Mat(frameCapture,rect); Imgproc.cvtColor(resizedCapture, resizedCapture, Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE); Size imageSize = new Size(194,194); Imgproc.resize(resizedCapture,resizedCapture , imageSize); System.out.println(images.get(0).rows()); System.out.println(resizedCapture.rows()); System.out.println(images.get(0).cols()); System.out.println(resizedCapture.cols()); try{ x = faceRecognizer.predict_label(resizedCapture); }catch(Exception e){ System.out.println(e.getMessage()); } x++; Imgproc.putText(frameCapture, "Face"+x, new Point(rect.x,rect.y-5), 1, 2, new Scalar(0,0,255)); Imgproc.rectangle(frameCapture, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height),new Scalar(0, 100, 0),3); } PushImage(ConvertMat2Image(frameCapture)); //System.out.println(String.format("FACES = %s EYES = %s detected.", faces.toArray().length,eyes.toArray().length,nose.toArray().length)); } |
2017-05-17 13:54:04 -0600 | asked a question | OpenCV Java Face Trainer Core Dump Error
When ever i execute the following code eclipse gives me this error # A fatal error has been detected by the Java Runtime Environment:# SIGSEGV (0xb) at pc=0x00007f8d59df4d00, pid=3167, tid=0x00007f8dac5b3700# JRE version: OpenJDK Runtime Environment (8.0_121-b13) (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13)Java VM: OpenJDK 64-Bit Server VM (25.121-b13 mixed mode linux-amd64 compressed oops)Problematic frame:C [libopencv_java320.so+0xa06d00] cv::face::Fisherfaces::train(cv::_InputArray const&, cv::_InputArray const&)+0x2fa0# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again# An error report file with more information is saved as:/home/hasnihaider/workspace/FinalProject/hs_err_pid3167.log# If you would like to submit a bug report, please visit:http://bugreport.java.com/bugreport/c...The crash happened outside the Java Virtual Machine in native code.See problematic frame for where to report the bug.# |
2017-05-12 03:51:23 -0600 | asked a question | Unable to create Recognzer Object Hello, i am new to openCV java library. I want to create a face recognizer object in my java file but there is no face recognizer exist in my java code. Which files are necessary to import Facerecognizer. |