Week 5 & 6

The last week I spend a considerable amount of time on just understanding the pascal data set its self, I wrote a wiki page detailing how pascal works and how the data is ogansized. By doing this I gained a greater understanding of the system im now using.

Also I’ve contined to work on the training the algorithm and even though I have seen it fully train before, I started hitting a problem to which nearing the end of the trainning process MatLab runs out of memory. To resolve this, I’ve trierd incressing the virtual memeory and ending all non essentual system processes on the system. But this did not resolve the issue so at this point I’ve borrowed more memory from another system and will now run the trainning process again with 6.5gb of RAM.

Week 4

Managed to finally get a model to train in fully which is good, The problem seems to be that the algorithm looks for files that are not present in the earlier versions of the pascal dataset.

This week I’ve been working on understanding the pascal development kit in order to better understand the full code.

Week 3

The last week or so has been spent trying to get over a problem with the training code however the inital problems has been fixed, Simular problem have arose later on in the training.

This week we had a meeting to discuss the inner workings of the classification part of the algorithm, specifically how the part based HOG detector worked. Which gave myself a better understanding of how the system actually works.

The current plan is to continue attempting to get the training working and then look in to how to used our data with the detector.  This will involved some annotating of data and adjustments of the code.

Week 2 – Summary

The aim for the week was to solve the issue with the classification convolution mode that was not working and to getting the training working.

The reason why the fastest convolution was not working is due to SSE instruction set not being enabled. Which is an extended instruction set created by Intel to improve performance for processing in games and graphics., To resolved this ended up changing one of the Matlab compile scripts to pass a flag to the compiler to enable it.

When the convolution was working the demo script provided was adapted to test the speed of the classifier which yielded the following results on a Intel(R) Core(TM)2 CPU 6300 @ 1.86 GHz with 4 GB of Ram, With Ubuntu 12.04:

 

Multithreaded convolution using SSE

car_final: 10.95 seconds.

inriaperson_final: 4.99 seconds.

bicycle_final: 8.27 seconds.

Average: 8.03 seconds

 

Multithreaded convolution using blas

car_final: 14.36 seconds

inriaperson_final: 6.13 seconds

bicycle_final: 11.13 seconds

Average: 10.54 seconds

Mulththreaded convolution without blas

car_final: 26.55 seconds

inriaperson_final: 9.79 seconds

bicycle_final: 20.70 seconds

Average: 19.01 seconds

Convolution using blas

car_final: 19.70 seconds

inriaperson_final: 7.95 seconds

bicycle_final: 5.62 seconds

Average: 11.09 seconds

Basic convolution, very compatible

car_final: 42.89 seconds.

inriaperson_final: 15.44 seconds.

bicycle_final: 3.37 seconds

Average: 20.56 seconds

The results are far from fast however this is not necessary important as the algorithm been used was never designed to run anyway near real-time.

Getting the training part of the system to work was another story and though my understanding of it has gowned, I have yet to manage to get it actually working. I think as this point I am just having a problem with the paths to the files I wish to train.

 

The first few days….

The idea of this project is to be able to detect cats, birds and other animals in images. Hopefully concluding with a generic adaptable algorithm capable of being retrained to detect other objects which can be deployed in other ongoing projects.

The majority of time thus far has been spent on reading and understanding the relevant publications to this project by Pedro Felzenszwalb. Which look at the use of deformable part models to recognise objects in images, which tackles the problem with differences in appearance between objects.

In addition to reading the MatLab code was downloaded and I have been slowly exploring and attempting to understand it, Though its quite vast, I have been able to use the compile script after setting convolution mode (To which 4 modes out of five work out of the box on Ubuntu 12.04) as well as processing an image.

Though their is still a lot more to understand in coming days and weeks, I believe this to be solid start and I will continue to update this blog as this project develops.