Sunday, March 15, 2009

On The Mark video scoring system

One of the challenges of behavioral research is getting "high n," or enough subjects for a statistically relevant result. "Low n" is a chief thief because it can raise false hopes with statistically significant results between two or more groups, only to undergo a "zipper effect," where all the groups zip up into essentially one population, and statistical significance is stolen.

Once high n is achieved, another challenge is how to score them. Typically behaviors are recording through surveys, audio devices, or video acquisition. Videos are valuable because they allow one to record, view, and re-view data again and again. They're also a bit of a curse because it can be difficult to juggle all the video controls while writing or typing behavioral events--each time they occur, when they start, when they end, as well as other events in-between. Viewing quickly becomes re-viewing, and re-viewing, and re-vewing again and again for the most accurate records.

It's enough of a deterrent that I've left a ton of my own videos sitting on my computer, waiting to be analyzed. That's when I decided that I needed a simple video annotation system to score behaviors. That's when On The Mark got started!

From scoring videos by hand, I found that just a few key features are almost universally necessary for accurate video scoring. One is a mark function, both for the start and end of an event. Another is a back function, where the video can be shifted back in small increments in case a behavioral moment was missed. A third is simple video resizing to get the best image for the monitor size. Quick export to Excel or other spreadsheets also helps. And ideally, all of this needs to be done with as few keystrokes or mouse clicks as possible.

These are the goals and features that have inspired On The Mark. To mark events, a control unit has a simple mark on/mark off button. Each event type gets its own dedicated control unit (which can be added or deleted depending on number of event types), and all control units are visible simultaneously to allow marking of multiple events back-to-back or even concurrently. Events get fed to a table for ease of display and copy and pasting to spreadsheets. The video itself can be displayed either "inline," so that the entire window takes up just one column of one's monitor, or "side-by-side," where the video can be widened to maximize viewing of subtle behaviors and events, all by dragging the window wider. Playback has the oft-used slider and a one-second rewind button to catch that just-missed event.

What makes writing this so simple is the advent of JavaFX. I've written a fair number of Java programs with GUIs, and while the Java Swing GUI is very powerful, it can be complex and cumbersome to get started and add elements. Hard enough, that is, that I even switched to the Eclipse SWT toolkit for one project, which brought new features but additional complexity as well. Apprently one of the goals of JavaFX has been to resolve the complexity of Java Swing. So how does JavaFX actually do that? From this first forray into JavaFX, it simplifies a lot of the programming into script-like events and makes Web 2.0 features such as animations and shadow effects straightforward to implement.

If you want to give On The Mark a run for the money (it's free though), you can launch it through Java Web Start on the homepage. It's hosted by, so all the details and source are available there as well. As usual, comments/feedback are more than welcome.
Post a Comment