I collected my final year project result today. The project was based on the reading and recognition of roadsigns, for those of you who have forgotten (apologies for the lack of updates on the roadsigns blog).
I’m pleased to announce that I got a grade of 71 which equates to a first.
Obviously I’m very pleased with this result and it really has made the hard work worthwhile. It was far from a trivial project and presented some interesting challenges and learning experiences, but I feel the work will stand me in good stead for the future.
All this means that I’m now a mere two weeks away from getting my final degree grade and completing my time as a student of Leeds University School of Computing. Time certainly does fly.
It was Nick’s last lecture, it was the last SY32 lecture, it was our last lecture. We had to do something to make the event memorable and fun. We plotted and schemed a little bit and decided that we would Rickroll Nick during the lecture. Chris and I arrived 30 minutes early and setup a laptop computer and speakers under the lectern and concealed them with an old poster we found lying about. We had previously configured a scheduled task on the laptop that we configured to play “Never Going to Give You Up” at half past the hour.
Once everything was setup and the lecture theatre once again appeared normal we left, went to grabbed a coffee for 10 minutes and then came to the lecture like normal. Everything was going as it always does and then blam, 30 minutes in, the song started playing. Stunned silence for all of about 2 seconds, then a surprised look from Nick and hugh peals of laughter from the audience. It was priceless.
I would like to take this opportunity to thank Nick for being a great lecturer and personal tutor throughout my time at the School of Computing and say that quite simply, life wouldn’t have been the same in the school without him. He will doubtless be greatly missed by all students who are staying on.
Nick wrote about what it was like to be Rickrolled on his blog
Since coming back to university after the Christmas break and completing my January exams I’ve had plenty of time to continue my experimentation on the reading roadsigns project and thought I’d post a quick update on whats been going on.
Recently I’ve been running a number of experiments in Matlab using SIFT and attempting to get various roadsigns recognised by using a cropped training set for a particular sign and then matching it against keypoint descriptors found in a test image.
I’ve been gathering statistical data and dumping this out to a file for analysis and further work but I’ve also been generating match images for each roadsign tested against the most favorable image from the training set. To give people an idea with how this is progressing I include an example of a very successful result on a STOP sign below.
Its not all rosy though and I’ve been given food for thought after my interim report and some failures of the SIFT algorithm in recognising certian signs.
In my initial experimentation with actual roadsigns I decided to go for a simple sign as this would be less likely to be susceptable to noise. This was in fact quite an unwise decision as SIFT works by finding particularly unique points and I had effectively removed the possiblity of it finding such points by using a simple sign. I include below a matches image for a No Entry sign.
As you can see, its actually quite noisy. This is a problem which got me thinking about how I can make the whole process more robust and forced me to return to some of my early research on object recognition.
If I can use SIFT as a pre-processor then I can identify signs quickly and easily that have many descriptors such as STOP signs and then use a more basic system such a a template or colour match to identify the simpler signs such as the No Entry sign. I could also do it the other way around and will need to perform tests to decide what the best order is.
I’m currently working on an idea that SIFT could be used to detect the presence of any sign (not which one it is, but where it is) and then further tests could perform the recognition. In addition I’m researching examples of where SIFT has been modified to be used in colour and also how best to display experimental results. I’m also in the process of writing code to fully automate my training and testing process in Matlab so I should be able to run batch jobs and get results and test theories quicker.
Watch this space for more updates - its all go!
CompSoc is soon to host a brewery tour for its members and others within the school of computing. We believe this event is going to take place on Thursday 7th February so keep the evening of that date free in your diaries. The idea will be to get a tour of the Elland Brewery and then a taste of a variety of beers afterwards.
Upon our return to campus those who wish to do so can join us on a trip to a local real ale pub to taste the end result of the brewer’s hard work. Be sure to join in with this if you like real ale!
As I was browsing my news feeds this morning I stumbled accross a blog post that someone had linked to. Its a rather amusing article about which programming language gets you the most sex. If you’re a programmer I’m sure this will make you chuckle.
Recently an upgrade on my hosting server has been conducted, making a change from predominantly PHP4 (PHP5 available but not widely used) to predominantly PHP5 (PHP4 available but infrequently used). This has been prompted by the announcement by PHP developers that support for PHP4 will be discontinued at the end of the year.
I didn’t think there would be any issues with the migration as I have long been coding in a PHP5 compatible way, however after the move Halifax Online suffered a few issues. After much investigation I discovered that this was due to some deprecated code use within some functions in a party application which had been added to the site. This was easily fixed, but the issue its self is rather interesting.
It is common practice to store ephemeral data in loops and pass this data along to other loops or functions. While the actual variable name doesn’t matter so long as it is consistent, it makes sense to name it something which indicates that the data is for use only in situ and is ephemeral. The developer of the problematic application had used a variable named $this to perform this action.
Name wise this makes a lot of sense because it indicates quite clearly that the content of the variable is ephemeral and for use only in situ, especially with respect to functions. The problem is that $this is somewhat reserved under PHP5 and so while can be read from under ordinary circumstances, cannot be written to. This is because in an object orientated environment it is used to represent the current object in which a piece of code resides, and so changing it within this context has no meaning; changing attributes of it makes sense, but changing the whole thing (as the code was effectively doing by assigning it a value) is impossible. Can I demolish and rebuild my house while still inside it?
I just thought I’d share this little gem with folk who are trying to make their applications PHP5 compatible before the end of the year. It took me quite a while to find because I was looking primarily for deprecated function use, not variable use.
I looked up my AI module marks this morning on SIS and found I had achieved 84% in the coursework. I had worked very hard on this piece because it fed into my final year project and so was delighted to have gained such a high mark. Upon reading news I noticed that the module leader had posted the highest and lowest marks and the corresponding average. The highest mark was 84%, the same as mine! This has given me a completely elated feeling, and it just goes to show that hard work and diligence really does pay off
It is interesting to note where the kind of research I am doing is ending up in the real world. This technology from Siemens highlights the presence of speed limit roadsigns to the driver and interfaces with the cruise control system. Pretty cool.
On Friday 30th November, the School of Computing plays host to the CompSoc Linux install fest - a chance for new users of Linux to get a copy of the operating system on their own machine so they can use it at home and further their learning and enjoyment of the OS.
The event takes place at 2pm and goes on until the School closes at just after 5pm. During that time we hope to offer a full range of opportunities for attendees.
- Have a Linux distribution of your choice installed on your machine
- Dual boot setup with Windows will be supported
- Talks on secure computing and Linux basics from staff and students
- Linux experts available to answer all your Linux orientated questions
- Demonstrations of a range of Linux and KDE/Gnome window manager features
There will of course be the usual trip to the pub after the event, and I’m hoping line up of things we are offering is going to persuade many people its worth coming along and giving Linux a try.
I’m proud to be doing my bit to spread the use of open source software and am looking forward to showing people that it really is easy to install and use Linux. Every since the day I first used Linux I’ve never looked back.