MATLAB vs Octave: first impressions

MATLAB is a very nice computation and data analysis tool. Many engineering and science research I have come across use MATLAB. Octave is another computation and data analysis tool that is mostly compatible with MATLAB. It is also Free/Open Source Software.

Much like vs Microsoft Office; and GIMP vs Adobe Photoshop, comparisons will be made between the proprietary software and their similar Free/Open Source Software counterparts. Here are my impressions from about two weeks worth of fiddling around.

  • Mostly compatible is probably the best way to say it. Format and syntax is (almost) the same between the two. Functions and parameters to the functions are (almost) the same. M-code that runs in MATLAB (mostly) runs in Octave and vice-versa.
  • Graphs looks better in MATLAB than in Octave. Some things are not implemented (yet) in Octave like shading interp and dotted lines. I think Octave uses Gnuplot for plotting, but I have to read the documentation to be sure.
  • No MATLAB compatible GUI in Octave. This can be a deal-breaker for some.
  • Command-line interface for Octave. Again, this can be a deal-breaker for some. I am used to the command-line so this doesn't bother me much. There is a Qt GUI for Octave, called QtOctave available in the Fedora repositories.

I'll probably end up using MATLAB since their visualization tools look better, and they have GUI functions. However, I will try to separate the visualization code and the computation and analysis code so I can still run the analysis in Octave.

progress report 2009-02-28

We have recorded 50 signs (FSL) with two native signers and we plan to record 50 more in the next two weeks. The Digital Signal Processing (DSP) Lab at the EEE Institute next door have been kind enough to assist us. They have a Sony HandyCam with a built-in hard drive. Our raw samples are recorded at 720x480 at 30 fps.

I forgot to bring my camera last week. No pictures yet. I'll make another post with a shot of our setup

Notes and observations

  • You can make decent studio lights using a fluorescent bulb, cardboard and aluminium foil.
  • Tracing paper makes a good diffuser. More layers mean softer lights. Space between the papers soften the lights better than just stacking more paper.
  • Three hours is about the limit. Any longer than that and you start making mistakes more often.
  • Masking tape is very versatile. Just make sure you buy a good brand. Good masking tape should be sticky without leaving any residue.
  • Don't worry about bloopers. Just save it and go; Hard disk space is cheap enough and you could still find some use for it later.


stuck in a rut

Sometimes, when doing research, we find going in circles. We keep hitting a wall. We run faster and faster only to find we hardly moved. That's where I was this past two weeks. I found that I loose interest quickly if I cannot see the goal. Or I can see the goal, but I cannot see the next milestone. The solution I found would be to look at the research roadmap and figure out where to go from there.

I also found that I am very vulnerable to mental fatigue. Tedious, repetitive tasks (like editing and converting videos), reading too much (so. many. papers.) or thinking about one particular problem (like algorithm design) pound my poor brain into mush. The solution that works for me is to switch tasks; when I start to feel fatigued, I go do something else, preferably something very different from what I was originally doing. Hobbies become very critical for maintaining sanity.

It's nice to see that I can still learn something new about myself.


Video Processing - version 1

First Attempt at video processing

We don't know yet what to expect, so we'll just try things out and see what sticks. We'll use that as a starting point. We already have a small pilot video. We just need to convert it to something we can play with, starting with color.

To simplify things, we'll start by removing color:

Monochrome (1-bit) or Black and White with dithering looks too noisy.

Monochrome without dithering looks flat. The AI might miss out on important features.

Grayscale looks the best among the three.

We don't know how big an image/video we need. We'll just scale out samples from 320x240 to 160x120 and 80x60. We'll also resample the video from 30-frames per second (fps) to 24-fps and 16-fps. This will give us 9 (3 sizes x 3 fps) combinations to play with.


Data Collection

update: I lost the pictures

In order to teach the machine FSL, video recordings of native signers are needed. For the first (pilot) stage, 50 1-handed (1H) signs and 57 2-handed (2H) signs will be recorded. Only traditional signs were selected. Each sign will be recorded in isolation; hands and arms start at a neutral position and will return to the neutral position after each sign. For comfort, the signer will be seated. To simplify processing, signers will wear black short-sleeved shirts and will be seated in front of a plain black background. Each video will be shot (and probably cropped) to include the whole signing space and little bit of space on the sides. The picture shows the neutral position.

In addition, 96 hand shapes will we recorded in isolation. Only the hand and a bit of the forearm will be included in the shot. Each hand shape will be recorded moving through six palm orientations.

The signs are grouped according to their basic hand shapes: Solid, Plane, Arc, Line and Other. Solid hand shapes are formed by forming a fist (or similar to it); Plane hand shapes have all (or most) fingers extended; Arc hand shapes have the fingers curved (round); Line hand shapes have one (or two) fingers selected and extended; Other is for everything else. Signs belong to one group; the groups are mutually exclusive. Note that this grouping is more for organizational purposes and nothing else; several hand shapes can be argued to belong to two (or more) groups .

This is not meant to be a comprehensive recording of FSL but rather a starting point for the research. A comprehensive collection of FSL recordings are another project.