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...
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!!))
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]; }
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.
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.
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
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...
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,
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...
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.
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...
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...
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.
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(),...
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).
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
ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageUtilities.write(output, "jpg", baos) byte[] bytes = baos.toByteArray();
Yes (within reason) if you use the CLMFaceDetector - the returned CLMDetectedFace instances have methods to get the roll, pitch and yaw of the faces.
update for neon
Off the top of my head there isn't anything that would calculate the entropy of an...
MBFImage is a subclass of Image. No need to convert.
I think the problem is with your setting of the k parameter - OpenIMAJ's internal...
Off the top of my head there isn't currently a way to do this directly with OpenIMAJ...
Ok, that's good. A bit wierd though... will need to dig into the code to see why...
Can you quickly try doing: video = new XuggleVideo("D:/users/j/GoPro/4985FF650072446333FC7DCF3C9DAB3E.mp4");...
What version of OpenIMAJ? I just tried for myself with that video (opening the file...
The tutorial already specifically says to choose the "openimaj-quickstart-archetype",...
Hi Wilhelm - FYI the openimaj.org site has now been updated to reflect the change...
Hi, I've just improved the javadoc documentation of FlexibleHOGStrategy as it was...
OpenIMAJ From Source
Yes, exactly that. The last parameter is the size of the squares in whatever metric...
In theory more images allows a better fit of the model (thus less error). The test...
Hi Frank, As you noted, height and width are related to the image size. Basic operation...
Hi Frank, Basic operation is as follows: List<List<? extends IndependentPair<? extends...
It looks like the faces you're training/testing with have different sizes. It's important...
The problem is that you can't use an EigenFaceRecogniser with a single training image...
Hi Jonathon - I'm on the point of giving up with OpenIMAJ as I can't see any way...
Hi Jonathon - I'm on the point of giving up with OpenIMAJ as I can't see any way...
As far as I'm aware Apple don't publish any info on their implementation. The OpenIMAJ...
Your overall approach looks fine - I think the problem lies with your ScenicOrNot...
It's definitely in the clustering jar: jar tvf clustering-1.3.1.jar | grep GaussianMixtureModelEM...
These instructions are old and need updating. Have you got the latest version of...
You can't just give a url to an html page as input - you need the URL of the actual...
You have to manually start the grabber in a new thread to use it: new Thread(audio).start();...
You have to manually start the grabber in a new thread to use it: new Thread(audio).start();...
Maybe the Hough transform (the HoughLines class) could find the vertical edges of...
I don't see anything fundamentally wrong with that. Given that you're only dealing...
I have no idea why eclipse thinks that's a problem (what version are you using?)....
Thats kind of an open question... it depends on what you want your SparseIntFV to...
Yes, that looks correct; I didn't consider that you might want to train the annotator...
Please get the latest version of the code from http://github.com/openimaj/openimaj...
You have two options: (a) regenerate the image sequencefile with FILENAME keys and...
(see below)
Right, I think that means when you built the original sequencefile with images in...
You almost certainly don't want to be following these instructions - if you just...
Not quite - something like this: final GroupedDataset<String, ListDataset<SparseIntFV>,...
You need to construct either a GroupedDataset (maybe using MapBackedDataset?) or...
You'll need to create a Liblinear annotator typed on SparseIntFV (i.e. ...new LiblinearAnnotator<...
So, the Hadoop cluster quantiser tool wasn't really designed with this usecase in...
Take a look at http://www.openimaj.org/tutorial/classification101.html. That should...
fixes to m2e plugin. now appears to work coreectly
adding a m2e configurator
I had it working on an Odroid-U3 last summer without any problems (funnily enough...
Lines 33-38 need to be moved into the beforeUpdate method between lines 26 & 27....
For 2.1.1 take a look at the displayName methods in DisplayUtilities (http://openimaj.org/apidocs/org/openimaj/image/DisplayUtilities.html)....
Take a look at the API docs for DisplayUtilities (and in particular the displayName...
I would guess its due to compression artefacts in the JPEGs. Try saving in a lossless...
Potentially normalisation (FImage#normalise()) or histogram equalisation (HistogramEqualisationProcessor?)...