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.