ask a busy man?

Well I managed to get some hacking done over the weekend. Spent the most of the time working on my website project. I have almost finished the user management stuff now. Took me a while to get my head around getting Mono, MySql and NHibernate all playing nice togeather but I am there now. I will probably do a post on that sometime soon as there are a couple of gotchas that would have been nice to know before I started so I figure I might be able to save someone else some time. I really need to get hacking on f-spot and monodevelop though. I wanted to get the features I’m working on for those two projects submitted before I go to Lugradio live and I am fast running out of time.

We managed to find a new housemate over the weekend which is great. It’s one less thing to worry about and she seems like a really cool person.

Off to see Jet Li in Fearless tonight so I’m hoping that will be good. Anything’s got to be better than the worst movie ever which I saw last week.

Looking forward to a quiet weekend

This will be the first weekend in ages that Anthea and I haven’t been going away. I am really looking forward to chilling out, watching a bit of the football and maybe doing some hacking on the various projects I find myself working on these days. I also have nearly 1,000 photos from our recent trips to sort and label so that will certainly keep me busy. Perhaps it won’t be such a quite weekend after all!

We are in the midst of interviewing prospective new housemates at the moment. Unfortunately (for us) Kirsty has been offered an amazing job back in South Africa and so will be leaving us at the end of July. Hopefully the next person we get will be as cool and friendly as all the previous inhabitants of that room!

back to blogging?

So it’s been a long time since I blogged my last entry here. If I ever did have any readers I guess they are all long gone… Life has just been sooo busy over the last few months that I haven’t had time to even think about blogging let alone actually put aside 5 mins to write an entry. In fact I’ve done almost no hacking over that time either. Summer arrived in London with a vengence and Anthea and I have been taking full advantage with the busiest social schedule I can recall us having since we were students. We have also been doing loads of travelling with trips to Morocco, Isle of Wight, Amsterdam, Brussels, and this weekend Leeds. In fact I am actually writing this entry on the train on the way back to London. GNER have wifi on their trains now and I took full advantage of a free trial on the way up. It was very cool to be able to hack on f-spot and download a bunch of ubuntu updates for my laptop while sitting on the train to Leeds!

Hopefully over the next few weeks I’ll be able to find a few hours to do some hacking. I have a bunch of things on my todo list. I still want to get my compare view for f-spot finished. I have changed track on that one a little bit so hopefully with have some screen shots and a patch ready soon. I also want to rewrite my class browser patch for Monodevelop and get that submitted. I think it will be really useful and as I use Monodevelop a bunch myself these days it would be cool to be able to say that I contributed something useful to that project. I also have a website which I am building. That has a bit of a timeline but it’s still a bit top secret so no more details on that just yet. Finally just for kicks I downloaded the latest version of dashboard from CVS on Saturday and built that on the train on the way up to Leeds. I really like what they are trying to do there so I might try and get involved in that project at some stage too.

Not too much planned this week other than a gig on Saturday night and some friends for dinner Wednesday so we’ll see, might even catch up on some sleep!

Gtk# woes

Well, I have spent a decent amount of time hacking on f-spot today and have achieved exactly nothing. I have two problems to fix before the first cut of the Compare view for f-spot will be ready for review. One is a nasty problem with scroll bars not rendering correctly. I have a feeling that this is to do with the underlying ImageView class and so not something I can fix without talking to Larry Ewing about it. The second problem is I can’t seem to get any events firing of the those same scroll bars so I suppose it could be somewhat related. Hopefully I will be able to catch Larry on IRC next week and sort it out.

Hello world!

Well it’s been an age since my last post and I thought it was about time I got back to blogging.

The Saturday before last was the scariest day of my life as Anthea was hit by a car while out running. She is fine now, and was incredibly lucky to escape with only a serious concussion and bruising. Three days in hospital did nothing for my nerves however and needless to say I will be running with her from now on!

In more geek related news I have put the vision project on hold for a bit. I just found it had got to a point where I wasn’t really enjoying it anymore. I think a bit of time out and I will be in a much better frame of mind to tackle it again. Instead I have started hacking on f-spot. For those not in the know it is a wicked photo management application for the Gnome desktop written in C#/Gtk# and running on the mono framework. I have already submitted three small patches which have all been committed to CVS and am currently hacking on my first major piece of work implementing a “compare view” where the user can compare two or more photos. This is useful if you take a bunch of photos in burst mode, or perhaps a series of bracketed shots. I am hoping to be come a regular contributor to this project as I think it is one of the projects that will add real value to the Gnome desktop and Linux in general.

Tricky stuff

So it turns out this 3d reconstruction stuff is a lot more complicated than I initially thought. I am trying to get the essential matrix for my camera system, however I am having real trouble getting something that makes sense. I have code that produces an output, it’s just wrong.

It would help if I had a really good text that explained this stuff in baby language so a math retard like me could understand it but unfortunately I don’t at the moment so I am doing a lot of googling. I have ordered Multiple View Geometry in Computer Vision from Amazon as this seems to be the authoritative text, however its got a 4-6 week delivery time.

Looks like this could take a while.

A bug in the matrix – the essential matrix that is.

Well, I was really hoping that my next post regarding the my vision project would be to announce that I have phase one working correctly. Alas that is not the case. After some hard debugging over the last couple of weeks I found and fixed a number of bugs and problems.

I am now much more confident in my matching between stereo images, and also in my interframe matching. I rewrote this stuff to be much more in line with the work of Se et al. During the testing process I found a major bug in my kd-tree range search implementation which must have been having a major impact on the number of good quality matches I was getting.

I find it quite difficult to test this stuff as I can’t think of a good way of automating the testing of the quality of matching between images. At the moment I simply annotate the images with the SIFT feature locations and then check for matches by eye.

I got really excited about a week ago when I thought I have finally cracked it and was getting reliable interframe matching and ego motion estimation. In fact I still think that for the most part it is working correctly. However, when I checked the 3d world coordinates the system was calculating for the observed features I realised they were completely wrong. Something that was in reality 1 meter away from the center of the camera system was registering as being nearly 3 meters away, and something that was in fact over 2m away came back less than a meter. I think the problem is in the way I am calculating the disparity and I am not taking all the camera intrinsic and extrinsic parameters into account properly.

To that end I am now working on calculating the essential matrix from the fundamental matrix, and then I should be able to much more accurately calculate the relative position of the observed features.

Time will tell.

Update

Over a month since I last blogged and a lot has happened. Anthea and I went for a weekend in Germany just prior to Christmas which was great. We had a fantastic time with great hospitality and interesting Christmas markets to explore.

Christmas day we left for our 2 week trip in India. India is an experience more than a holiday. We had a great time but it was hard work at times as well. I’m not looking forward to sorting and naming the 500 odd photos we took while we were there but as soon as it’s done I’ll put them up on my site and post a link from here.

I was sick for the first week back after our trip. Delhi belly strikes again! I have almost fully recovered now, but still feel a little off colour now and again.

I finally managed to get some time to return to my vision project in the last week or so and have made some progress, although I think I will save that for another post.

A screen shot for your viewing pleasure

Tonight I managed to get a clunky little UI working. It took a bit of work as it calls out to a C library I wrote via interop. The UI was designed using Glade and uses the Gtk widget set. It’s so easy to build decent GUI applications using the Glade/Gtk/mono combination in no time at all. If I had a choice I would love to develop in Gtk instead of winforms in professional life too!

So, here’s the screen shot:

The text you can see next to the buttons is the Fundamental matrix calculated for the chess board points found in the stereo image pair. The UI needs a bunch more work, but it’s really only a test harness and a debugging tool for me while I get the application working properly. Once the system is put on a real mobile platform it won’t have any GUI interface.

The next step is to test if the epipolar constraints I was talking about in my last post actually improved the accuracy of the matching process.

Anthea and I are off to Germany tomorrow to visit some friends and see some Christmas markets. Should be a great time and hopefully I might find some good photo opportunities too.