Tuesday, December 29, 2009

I have been scrumming without realizing it

Working in a small software team you often do not have perspective on what fancy names workflows have come to have. I read through the scrum article and seems surprisingly like the ad-hoc stuff I have been doing.

I like wearing many hats, but I realize now that they are all "pig" hats. I am fully committed to developing the solution and constantly under brownian motion from the chicken pecking me with requirement creep and feedback and forecast requests on the status. I would like to lock down the scrum and move forward, I want a referee who resets it when we spin. Teams need a strong scrum-master, I do enjoy being the pig and not willing to switch.

Skimping on dev dollars is disastrous

This is going to be a full on "rant" so stand back. I have been looking around on Elance lately for freelance dev jobs, plenty of stuff around as are developers from Russia and India. Not only developers, entire "teams/companies" with 100's of thousands of escrowed dev dollars to their name. The hourly rates are pretty affordable $12 or so max, but the quality of goods delivered I cannot speak about - unless of course I shell out some cash and get something done.

A cheap non-working implementation is the Vodafone India online payment site. Why couldn't they have cloned or reused the perfectly working Australian one. None of the features on this site work - not the the credit card payment nor the bill viewing, not even the complaints section so that I can give feedback on stuff not working. Come on Indian devs make me respect you and build something that works.

When I first wanted to use it I had to call up the "yes the callcenter" (hate callcenter jokes about me out here). The guy promised to send me an activation SMS in 2 hours - it did not come in 2 months. I had to storm into the shop and demand some answers, then the SMS was delivered in the next 2 hours. Vodafone should really do something about their service out there - not that Australian telcos are any better.

Monday, December 28, 2009

OpenStreetMaps + Multi-temporal X-band SAR

I am making some progress in analyzing the rich AGRISAR 2006 Dataset ESA has so generously provided to me. The K-Means and SOM I implemented in QGIS are now coming in handy for classifying various crops and detecting in-field variations within the same crop - to validate in-field variations there is also harvester data similar to what I have worked with in the past, just noisier.


I overlaid the Open Street Maps data on top of the SAR imagery and there are some new town/villages missing from OSM. If I can't detect any yield variations at least I can digitize some urban area polygons for OSM.

Sunday, December 27, 2009

The right colour table - SOM Classifier

The Konohen Self organizing maps produce the projection of multi-band data onto the optimal subspace in 2D capturing both the spectral and spatial characteristics of the data. This is a very interesting unsupervised classifier. The results obatained from it can be scaled bilinearly to cluster classes, a 16x16 SOM classifier produces 256 classes. Here is again the classic landsat sample with 256 SOM classes.

Thursday, December 24, 2009

On the sports track - divers in OpenCV

Video tracking can be quite challenging. I compared 3 algorithms based on OpenCV for a tracking solution:

  1. Camshift - originally created for face tracking, it locks onto a blob with similar colour. In this case the colours are too similar with the background resulting is appalling performance from camshift.
  2. Optical Flow - LkDemo shows this technique in use. It works pretty well till an obstruction passes in front of the tracked object clearing all flow points. The flow points then need to be reinitialized.

  3. Template Tracking - Works much better than the other two. However does not regain lock after obstruction.

Monday, December 21, 2009

Foolishness of the Masses - Completed KMeans

The urge to automate everything can be powerful (sudo make me sandwich) , often this leads to strange errors. Google trusts the wisdom of the masses and uses it to build a spell checker, nice instance of learning, but still automation. Sometimes the mass gets it wrong and Google follows suit. Today it threw a "did you mean ambiguus" in my face. Nevertheless ask the audience is always the first lifeline used - I haven't found clear statistics of lifeline usage by asking Google yet (so Google is not completely capturing the wisdom of the masses - have we stopped answering questions and started asking too many ?).

The problem of image classification which I have discussed in the past brings a similar dilemma, it is a question with unclear answers - which area of the image belongs to which class ? We can use supervised learning (capturing the wisdom of the expert) or we can let algorithms spot groups in the data (automation). In the end balance is needed between the two to produce "usable" results. The last OTB-QGIS plugin now implements one of the classic unsupervised classifiers - KMeans. I tried it out on the same landsat image as the one with SVM , the results are quite different.

Friday, December 18, 2009

Brains behind the face - working SVM in QGIS

Thanks to the excellent advice from Emmanuel and nice GUI design from Massimo, you can perform functional multiband/multiclass SVM from QGIS.

OTB comes with a detailed Classification Tutorial and there are samples in Monteverdi code to train the classifier using pixels in a polygon to generate SVM Models. Some vector reprojection code also helped.


I tried it out on a sample LandSat TM dataset supplied with ENVI. It has 6 bands, I digitized by hand 3 training areas - vegetation, light soil/rock and dark soil/rock. The current implementation only allows a single training area per label, this is a limitation of my patchy understanding of the OTB vector data attribute parsing system. Ideally any number of training polygons should be used if they have an attribute corresponding to the labels. Not a bad implementation for 3 days of work over a holiday, while running around buying houses.

Wednesday, December 16, 2009

SVM via QGIS - Move over Monteverdi

The OTB team has put in a huge amount of effort behind the Monteverdi tool and it is impossible to play catch-up in the QGIS plugin with imperfect knowledge of the OTB Api for calling the functions. Not that is hard or anything , just unfamiliar. Monteverdi uses otbClassificationModule to setup and call the SVM classifier. Lots of tunable parameters are presented. This can lead very fast to window clutter.

I tried to address this from the Qgis-OTB plugin with a single dialog, which allows setting 1 raster layer for classification and 1 vector layer for training (possibly created using the easy to use Qgis digitization facilities). All that now remains to be done is to hook up all the parameters + input dataset and you get supervised classification in Qgis.

Monday, December 14, 2009

Fixing hardware for free

In India people claim to smell a faulty ram and sell new ones. When it is just a loose connection. So taking apart and putting together a system for a friend - good practice for electronics engineers and geeks in general

-- Post From My iPhone

Wednesday, December 9, 2009

Picking points to segment - Qgis+OTB

I have been pushing along the QGIS - OTB Plugin and successfully added map-canvas picking to inject seed points for region growing into the plugin. Though issues remain in reprojecting from map-coordinates to pixel-coordinates for the purposes of forwarding to OTB which works in pixel coordinates due to its ITK heritage. I have had some success with my test cases and the plugin builds on various platforms - Mac, Debian and Windows MSVC, yet issues remain. Such is the nature of distributed development, we will get there through the open process soon enough.


Saturday, December 5, 2009

Surfing and Simulating Surf

First day of surfing this summer - hurray !! It was fun, but we lasted only a couple of hours and I bet I will be sore tomorrow.

Sea-clutter and simulating it has been a long fascination in the SAR community. People have flown planes around in circles recording waves at various incidence angles and sea states. Made anlytical expressions of the dynamic ocean surface including larger waves, capillary waves, breakers and even foam. Put these through electromagnetic simulators like HFSS and tried to relate the observations to the simulations. Theorists keep on borrowing from graphics and making ever so detailed waves.

On the other hands the experimenters and statisticians haven't been sitting on their hands. There are myriads of distributions trying to model clutter amplitude statistics like the classic k-distribution and the kk-distribution. These try to fit the observed values to a statistical pattern and predict the extrema in the sea-clutter which influences the probability of detection of a target in this environment.

Papers have been plenty, but as one of my colleagues (thanks for the long talks about your lack of belief in statistics Marion) points out. The target has to be detected at an instance, and statistics is not very good at working with small samples. All the work so far cannot predict whether we will see a crucial vessel in a single SAR image. The solution is to give the statistics a chance - build lots of sensors and observe repeatedly.

Tuesday, December 1, 2009

OTB Qgis plugin - Linking through hell

OTB was having trouble linking to shared gdal libraries, and Qgis was having trouble linking to static gdal libraries. The two had a fight and split the baby into halves - and I am king Solomon. That's the level of my poetry after a couple of sleepless nights. At least I have managed to build both Qgis (with dependencies injected from Osgeo4w) and OTB. Thanks a lot Jef, Timlinux, Emmanuel and Julien. Here is a screenshot of the OTB plugin in Qgis menu. I am planning to extend this to bring the full gamut of OTB capabilities to bear in Qgis, including Feature Analysis, Classifiers, Atmospheric corrections, Radar geometric and radiometric correction and more. Interesting times ahead.

Map making in the family - maps in Illustrator and Photoshop

I was pleasantly surprised to learn that one of my aunts is making maps for an Atlas. Map making is officially in the family now. Cartography is a visual thing and she does all the prettyfication and compostion in Photoshop, Illustrator and Corel Draw. She showed some interest in worldwind and I tried to introduce her to Qgis, now we need to add Inkscape like annotation and composition support into it. Here is one of her sample maps - it is my home state. Only state in India with the Himalayas to the north and the Ocean to the south.