You found a bug... There was a difference in the computation of the period (due to an error in order in which instance variables in the HomogeneousKernelMap object were being set). I've fixed it: https://github.com/openimaj/openimaj/commit/b584a7babe7540f76e942e1d381d4c554e67eede The bug seems to have been very low impact (e.g. caltech101 classification experiments with vlfeat and the broken openimaj version had very similar results), but it's good to have it fixed and get identical output to vl...
Hello, I am trying to see if the chi2 kernel implementation is the same as the VLFeat's one so I did a test with some numbers to see if I get the same numbers when using the HomogeneousKernelMap. It is not the same although the parameters seems to be the same.. Is it something I am doing wrong ? Here is the code: double[] a = new double[]{1, 2, 3}; HomogeneousKernelMap.KernelType type = HomogeneousKernelMap.KernelType.Chi2; double gamma = 1; HomogeneousKernelMap.WindowType wintype = HomogeneousKernelMap.WindowType.Rectangular;...
No known issues, but it's been years since I've played with tomcat. We've definately used the face detector in a web app in the past though. Is there nothing at all in the tomcat logs (e.g. in catalina.out [assuming that's what its still called!!))
Hi All! I've just recently come across with Openimaj and I want to let everyone now that it does impressive work! Just a question:I am trying to use the FaceDetector in a Java web app. It works perfectly in Localhost, but when I try to deploy it to my Tomcat server ( my hosting provider is dailyrazor.com), It's just stuck loading, no exceptions. Any known issues with this? or Am I doing something wrong? I would appreciate the help. Thanks!
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { FaceDetector<kedetectedface,fimage> detector = new FKEFaceDetector(); response.getWriter().append("Success"); } </kedetectedface,fimage> On Saturday, September 22, 2018 2:35 PM, Francis Valero <francisvalero@yahoo.com> wrote: Hi All! I've just recently come across with Openimaj and I want to let everyone now that it does impressive work! Just a question:I am trying to use the FaceDetector...
Ah, ok - I clearly didn't see the forrest for all the trees ... if I'd only know how to use OpenIMAJ, I'd could make it do that :D
You've sort of answered the question in the exercise - the problem is that Java doesn't auto-box /unbox arrays, so you have to do the conversion manually, which incurs a potentially significant cost. To do the conversion you can do something like this: float[] fp = new float[3]; for (int i = 0;i < 3;i++){ fp[i] = pixel[i]; }
I am just starting off with OpenIMAJ and am stuck at 3.1.1. Exercise 1: The PixelProcessor. When I try to use the stump that was provided input.processInplace(new PixelProcessor<Float[]>() { public Float[] processPixel(Float[] pixel) { return pixel; } }); and try to assign the pixel to the HardAssigner, I am always stuck because the pixel is a Float[] but Hardassigner.assign expects a float[]. Any direction as to solving this would help.
Many thanks for your answer, I will check this link. BTW, IQM is not just about image openeing https://sourceforge.net/projects/iqm/ It has an emphasis on convininet image stack processing and virtual memory handling. Our processing algorithms are implemented as JAI operators, but JAI seems to be outdated and therefore I am looking for alternatives.
OpenIMAJ probably isn't what you want if you just want to read files - behind the scenes it uses other libraries (including JAI as a fallback) & doesn't really offer much control over how files are read. Something like https://github.com/haraldk/TwelveMonkeys might fit your needs better if you need fine control over reading of files.
Hello, I am trying to replace JAI with OpenIMAJ as the underlying library for my image processing project IQM. Is there any way to open single slices out of a an image stack in a single tiff file? Furthermore, it would be nice if I could read the number of slices out of the tiff file header. Any help is appreciated, Helmut
In general you'd need to learn this using an experimental set up with training and validation sets; you would then learn (for example) a distance threshold that gives you the required false acceptance rate.
how can I know when the value of best score presumably belongs to the same personna? what is the acceptable range of best scores for the same face?
@Jonathan that was it. The GIT source code works perflectly (at least for MFCC). The documentation is running behind. ;-)
Great information Jonathan. Thanks for clarifying this.
I'm not all that hot on how the audio bits work, however it's possible that the tutorial has just got out of sync with the actual API. For all the tutorial chapters there is code in the github repo which should mirror what the chapters do. Can you use this as a starting point: https://github.com/openimaj/openimaj/tree/master/documentation/tutorial/tutorial-code/src/main/java/org/openimaj/docs/tutorial/fund/audio
Hello, I have experiment the same problems. Perhaps we need to join effort and fix the java code ourselves?
The number of cameras returned by getCameras() is equal to the number of sets of matching points used at construction time - if you use matches from a calibration pattern across 8 images, then you'll get 8 camera objects returned (all with the relevant extrinsic parameters set, giving the positions of the camera in the scene [on the assumption that the camera moves and the calibration pattern is stationary of course]). There isn't currently any stereo calibration code - only single cameras are dealt...
Hello, OpenImaj very interesting library. I try to adopt it to my tasks. I try to implement depth detection by stereo pair. In class CameraCalibration method getCameras() returns the list of cameras(in my case 8). Why so many? Are there any examples of stereo calibration by using this library? Thank you!
I was assuming that template referred to the FImage instance reresenting the template; the above code should work as is under that assumption without the need for ant methods to be added,
Is the bounds rectangle of the template exposed somehow? Or are you saying template.getBounds is the method that needs to be added? Thanks for the quick response on this.
Good question! At present, you'll need to write your own code to do that I'm afraid. I guess the simplest way would be to get the bounds rectangle of the template and translate it so the centre is at the x,y coordinates given by the template matcher: FValuePixel p = ...; Rectangle r = template.getBounds(); r.x = p.x + r.width / 2; r.y = p.y + r.height / 2; If this is something you'd like to see added to the library in the future, feel free to file a feature request at https://github.com/openimaj...
The FValuePixels from the TemplateMatcher will give the X,Y coordinates of the center of a match, but is there a way to get the bounding box? Apologies if this is obvious.
I'd guess this means that Xuggler doesn't support your video format (xuggle is a video decodig and encoding library). Xuggle hasn't been updated in a while, so in the future we'll add alternative backends for video (perhaps humble-video based) which might solve this.
Hi, I use XuggleVideo to open an MP4 container with an H.265 codec video. This gives me error message: Exception in thread "main" java.lang.IllegalArgumentException: invalid video frame size [0 x 0] I don't get this with H.264 codec. Does that mean H.265 is not supported? R.
The primary issue seems to have been that the saved binary skin classification model had become out of date with the classes that it uses. I've just committed a fix. I also noticed that due to a typo it would have only worked for square input images; I've also fixed that. The fixes should be available in the 1.4-SNAPSHOT version of OpenIMAJ in an hour or two (you should just be able to edit the maven pom.xml file and update the openimajVersion property, and then tell eclipse to update the project...
Instead I tried another initialization for SandeepFaceDetector: public static MBFImage Sandeep(MBFImage frame) { FaceDetector<CCDetectedFace,MBFImage> fd = new SandeepFaceDetector(); List<CCDetectedFace> faces = fd.detectFaces(frame); String text = "SD "; if (faces.size() == 0) text += "X "; else SD_count++; text += Integer.toString(SD_count); frame.drawText(text, 5, 125, HersheyFont.TIMES_BOLD, 25, RGBColour.BLUE); for( CCDetectedFace face : faces ) { frame.drawShape(face.getBounds(), 3, RGBColour.BLUE);...
I suppose 1.3.6 should be up and working by now. When I use it, Eclipse complains about errors after I imported the standard "Hello World" quick start. I followed the updated instructions from the Tutorial. In Eclipse, the project listing in the left panel has that small error marker attached to the pom.xml file. When I run the "Hello World" App.java code, the error message is: "Error: Could not find or load main class XYZ.App" where XYZ is the GroupID I typed, when creating maven. 1.3.5 does not...
I suppose 1.3.6 should be up and working by now. When I use it, Eclipse complains about errors after I imported the standard "Hello World" quick start. I followed the updated instructions from the Tutorial. In Eclipse, the project listing in the left panel has that small error marker attached to the pom.xml file. When I run the "Hello World" App.java code, the error message is: "Error: Could not find or load main class XYZ.App" where XYZ is the GroupID I typed, when creating maven. 1.3.5 does have...
I'll have to look into that.- there shouldn't really be any reason for it not to work. That being said, the SandeepFaceDetector is likely to have pretty bad detection performance compared to the others - it's based on a really simple, but not particularly robust idea.
Hello, Meanwhile I'm getting more and more impressed with the capabilities of OpenImaj! I now have written a java script that calls functions that implement the Haar, FKE, and CLM face detectors to draw the bounds of each as a comparison, and write the result to an output movie. That works great! Then I wanted to add the Sandeep Face Detector, but that does not work as expected. Here is how I wrote the Sandeep function: public static MBFImage Sandeep(MBFImage frame) { SandeepFaceDetector fd = new...
Hi, I'm trying Tutorial chapter 9 about FFT. The example code suggestion is this: final AudioWaveform vis = new AudioWaveform( 400, 400 ); vis.showWindow( "Waveform" ); final XuggleAudio xa = new XuggleAudio( new URL( "http://www.audiocheck.net/download.php?" + "filename=Audio/audiocheck.net_sweep20-20klin.wav" ) ); FourierTransform fft = new FourierTransform( xa ); SampleChunk sc; while( (sc = fft.nextSampleChunk()) != null ) { float[][] fftData = fft.getMagnitudes(); vis.setData( fftData[0] );...
Hi, I'm trying Tutorial chapter 9 about FFT. The example code suggestion is this: final AudioWaveform vis = new AudioWaveform( 400, 400 ); vis.showWindow( "Waveform" ); final XuggleAudio xa = new XuggleAudio( new URL( "http://www.audiocheck.net/download.php?" + "filename=Audio/audiocheck.net_sweep20-20klin.wav" ) ); FourierTransform fft = new FourierTransform( xa ); SampleChunk sc; while( (sc = fft.nextSampleChunk()) != null ) { float[][] fftData = fft.getMagnitudes(); vis.setData( fftData[0] );...
Hi, I'm trying Tutorial chapter 9 about FFT. The example code suggestion is this: final AudioWaveform vis = new AudioWaveform( 400, 400 ); vis.showWindow( "Waveform" ); final XuggleAudio xa = new XuggleAudio( new URL( "http://www.audiocheck.net/download.php?" + "filename=Audio/audiocheck.net_sweep20-20klin.wav" ) ); FourierTransform fft = new FourierTransform( xa ); SampleChunk sc; while( (sc = fft.nextSampleChunk()) != null ) { float[][] fftData = fft.getMagnitudes(); vis.setData( fftData[0] );...
I suppose 1.3.6 should be up and working by now. When I use it, Eclipse complains about errors after I imported the standard "Hello World" quick start. I followed the updated instructions from the Tutorial. In Eclipse, the project listing in the left panel has that small error marker attached to the pom.xml file. When I run the "Hello World" App.java code, the error message is: "Error: Could not find or load main class XYX.App" where XYZ is the GroupID I typed, when creating maven. 1.3.5 does have...
Fundamentally different approaches are implemented in both libraries (at least at present).
Fundamentally different approaches are implemented in both libraries.
OpenIMAJ has supported both Maven 2 and Maven 3 since the first release in 2011. The problem you ran into was with version 3 of the Maven archetype plugin which was released in the past few months. The tutorial has now been updated with new instructions that will work with both 2.x and 3.x versions of the archetype plugin (and both maven 2 & 3), and will reduce errors from the wrong archetype being selected (at the expensive of a longer command): http://openimaj.org/tutorial/getting-started-with-openimaj-using-maven.html...
Hello, Under the hood, are Deepgaze and OpenImaj basically the same? I am specifically interested in the face recognition capabilities. Deepgaze uses DLIB and OpenCV. OpenImaj.....I don't know... The reason I ask is: I'm in a project where face recognition is one of the critical tasks. I'd like to use different software and compare the results. That comparison becomes more interesting and useful when OpenImaj and Deepgaze use different machineries and libraries for their face recognition results....
Hello, Under the hood, are Deepgaze and OpenImaj basically the same? I am specifically interested in the face recognition capabilities. Deepgaze uses DLIB and OpenCV. OpenImaj.....I don't know... The reason I ask is: I'm in a project where face recognition is one of the critical tasks. I'd like to use different software and compare the results. That comparison becomes more interesting when OpenImaj and Deepgaze use different machineries and libraries for their face recognition results. Hence my question....
I'm about half-way through deploying 1.3.6, so not all the jars have been uploaded yet (although it doesn't require user-interaction it's a very slow process that takes a few hours to deploy all the jars, sort out the git release, update the new site, etc). Once this has completed 1.3.6 should work just fine.
Thanks! It takes me a bit longer to grasp the philosophy of OpenImaj. I did not realize the solutions were so straightforward. Very interesting indeed. By the way: is there a new version of openimaj-quickstart-archetype (version 1.3.6)? If I select this latest one and import to Eclipse, the editor cannot generate the appropriate import suggestions. Version 1.3.5 seems to be OK. I used the latest version for the Tutorial 9 (Audio) and could not import the relevant Audio packages. Is this a problem...
Thanks! It takes me a bit longer to grasp the philosophy of OpenImaj. I did not realize the solutions were so straightforward. Very interesting indeed. By the way: is there a new version of openimaj-quickstart-archetype (version 1.3.6)? If I select this latest one and import it to Eclipse, the editor cannot generate the appropriate import suggestions. Version 1.3.5 seems to be OK. I used the latest version for the Tutorial 9 (Audio) and could not import the relevant Audio packages. Is this a problem...
I'm not sure why you're trying to use a FacialKeypointExtractor directly? As the tutorial says, all you need to do is replace the HaarCascadeDetector with an FKEFaceDetector which will return you KEDetectedFace objects instead of plain DetectedFace objects: public void beforeUpdate( MBFImage frame ) { FKEFaceDetector fd = new FKEFaceDetector(); List<KEDetectedFace> faces = fd.detectFaces( Transforms.calculateIntensity( frame ) ); for( KEDetectedFace face : faces ) { frame.drawShape(face.getBounds(),...
I want to apply your suggestion in the Tutorial Chapter 8. Therefore I first decided to solve the exercise 8.1.1. I suspect the exercise 8.1.1 and the roll/pitch/yaw detection might be related, is it not? However, I get already stuck with the exercise 8.1.1. I tried to modify the "public void beforeUpdate( MBFImage frame )" method using the extractFacialKeypoints method, as follows: public void beforeUpdate( MBFImage frame ) { FaceDetector<DetectedFace,FImage> fd = new HaarCascadeDetector(40); List<DetectedFace>...
Hi, Too many errors and problems in the tutorial sessions can become a showstopper for using OpenImaj for serous work. Fix and update the Getting started with maven section: although the tutorial claims to work with maven versions 2.X and 3.X, the given commands fail to work with maven 3.X. In the next chapters the modifications to the existing code only work after the appropriate java imports are added, but the tutorial does it explain how to find this in the OpenImaj documentation. R.
Bingo! And thank you!!! The "Hello World" window is now generated with Maven / Eclipse. Time to get my hands dirty with other OpenImaj stuff... R.
You almost certainly selected the wrong archetype from the list after running archetype:generate (probably one the maven-quickstart-archetype, rather than the openimaj-quickstart-archetype). Once you've created the project (using archetype:generate), you should be able to load into a recent eclipse without running mvn eclipse:eclipse by just using the option in eclipse to import an existing maven project (e.g. File->Import...->Maven/Existing Maven Project).
OK; with that I got a few steps further in the process. At the end of the "getting started" tutorial I create a "target/foobar-1.0-SNAPSHOT.jar". There is no "-jar-with-dependencies.jar": $ cd learninglab $ mvn assembly:assembly [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building learninglab 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-assembly-plugin:2.4.1:assembly...
OK; with that I got a few steps further in the process. At the end of the "getting started" tutorial I create a "target/foobar-1.0-SNAPSHOT.jar". There is no "-jar-with-dependencies.jar": $ cd learninglab $ mvn assembly:assembly [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building learninglab 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-assembly-plugin:2.4.1:assembly...
A bit of both. Version 3 of the maven archetype plugin broke support for remote catalogs (see https://issues.apache.org/jira/browse/ARCHETYPE-519). This obviously impacts the tutorial. There is an issue to track this (basically the tutorial needs to be updated with one of the work-arounds) here: https://github.com/openimaj/openimaj/issues/134. TLDR: mvn -DarchetypeCatalog=http://maven.openimaj.org/archetype-catalog.xml org.apache.maven.plugins:maven-archetype-plugin:2.4:generate should work
Hi, This is on Ubuntu 17.04, x86_64. I follow the guidelines from here: http://openimaj.org/tutorial/getting-started-with-openimaj-using-maven.html as follows: $ mvn -version Apache Maven 3.3.9 Maven home: /usr/share/maven Java version: 1.8.0_131, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.10.0-33-generic", arch: "amd64", family: "unix" $ mvn -DarchetypeCatalog=http://maven.openimaj.org/archetype-catalog.xml...
Hi, This is on Ubuntu 17.04. I follow the guidelines from here: http://openimaj.org/tutorial/getting-started-with-openimaj-using-maven.html as follows: $ mvn -version Apache Maven 3.3.9 Maven home: /usr/share/maven Java version: 1.8.0_131, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.10.0-33-generic", arch: "amd64", family: "unix" $ mvn -DarchetypeCatalog=http://maven.openimaj.org/archetype-catalog.xml...
ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageUtilities.write(output, "jpg", baos) byte[] bytes = baos.toByteArray();
Is there a simple way to convert an Image to a byte[] without saving any file? I tried with ImageIO.write(ImageUtilities.createBufferedImage(output), "jpg", baos); but the result was an image with a high red drift.
Yes (within reason) if you use the CLMFaceDetector - the returned CLMDetectedFace instances have methods to get the roll, pitch and yaw of the faces.
Hello, I have been checking out OpenCV and Deepgaze software packages, which can detect faces and tell in what direction faces in a video are looking. Recently I discovered OpenIMAJ. Very interesting, but can it also do that? Thank you. Rob Lahaye.
hi there, i have written a function to calculate entropy of an MBFImage, how can...
where should i start if i wish to write this function using histogram?
Off the top of my head there isn't anything that would calculate the entropy of an...
hi, is there any function to calculate entropy value of an image? i want to cluster...
thanks sir.
MBFImage is a subclass of Image. No need to convert.
i want to save an image using imageutilities but it requires to have image not mbfimage....
Changing the k value as you suggest resolves the issue. Thank you for the quick and...
I think the problem is with your setting of the k parameter - OpenIMAJ's internal...
I am just starting out with OpenIMAJ (1.3.5) and am trying out the tutorial problem...
Spot On! Thanks Anonymous Friend. Some Maven basics :-(
Spot On! Thanks Anonymouse Friend. Some Maven basics :-(
If I had to guess, it looks like you've got a local maven proxy running on your machine...
Hi Team, I am facing maven build issues while creating simple maven project. Please...
Off the top of my head there isn't currently a way to do this directly with OpenIMAJ...
Hello , How can I split video? It is posible with OpenImaj. Is there easy way? I...
Ok, that's good. A bit wierd though... will need to dig into the code to see why...
That works!! Excellent. Thanks Jonathon.
Can you quickly try doing: video = new XuggleVideo("D:/users/j/GoPro/4985FF650072446333FC7DCF3C9DAB3E.mp4");...
Hey Jonathon, Thanks for the quick response. It is 1.3.5. I'm using Windows 10. Also...
What version of OpenIMAJ? I just tried for myself with that video (opening the file...
Hi Jonathon, I'm getting an error when I try to process an mp4 file with the following...
The tutorial already specifically says to choose the "openimaj-quickstart-archetype",...
Hi Jonathan, wouldn't it better to add this information in the tutorial pdf?
Hello Jonathon, thanks for clarifying this! --Wilhelm
Hi Wilhelm - FYI the openimaj.org site has now been updated to reflect the change...
Thanks, good to know! It would be helpful to post/update this information accordingly....
Github is more active/recent On 17 Jun 2016 12:29 p.m., "Wilhelm Burger" wilbur2@users.sf.net...
Hello group, I was wondering if sourceforge.net/p/openimaj/ is still active -- is...
Hi, I've just improved the javadoc documentation of FlexibleHOGStrategy as it was...
I am very new to OpenIMAJ and I am trying to calculate HOG over an image/patch level....
OpenIMAJ From Source
Yes, exactly that. The last parameter is the size of the squares in whatever metric...
Just to check if I have understood last model parameter in your example : it has...
Janathon, Thanks ! Ok, so more than one processed image must be done. Do you have...
In theory more images allows a better fit of the model (thus less error). The test...
Janathon, Thanks ! Ok, so more than on processed image must be done. Do you have...
Hi Frank, As you noted, height and width are related to the image size. Basic operation...
Hello and thank you so much for this amazing library. I've been able to get inner...
Hi Frank, Basic operation is as follows: List<List<? extends IndependentPair<? extends...
Hello and thank you so much for this amazing framework taking Java to image processing...
Hi, first of all, thanks for the nice work with OpenIMAJ ☺ I'm currently using a...
Would you please share your working code.