Categories
Master Thesis Programming

Got it!!!

The race is over! The exams (oups.. presentation) started at 13:30!! It was over at 15:00… This is one hour and a half! The outcome: Success!!!

Finally my headaches are over. Now I have nothing to do, and I have to get used to it 😉

The image in the post is from the reconstructed bust of the famous Charioteer statue, that I used as an example that my reconstuction system works

Categories
Master Thesis Personal

Waiting for the presentation

Here I am, waiting for my master’s public presentation (which here are Ioannina means examination in public)… It was supposed to start at 12:00 but it will be delayed…

Time goes by so slowly… (Maybe I’m listening to much of mainstream radio stations lately!)

Wish me luck!!!

Categories
Master Thesis

3D reconstruction from photographs

I just realised that all this time I talk about my thesis, while I never took the time to describe what I am doing!

So in my masters thesis I try to do three-dimensional reconstruction. Actually I was trying, because now it works.

Categories
Master Thesis Personal

Long pause…

Hey! I’m still alive! But a bit buried though… under tons of papers and articles. I know it hasn’t been an active bloging period lately, but I’m writing my master’s thesis now and I usually get so sick of writing, that is is impossible to write blog posts!

Until I started writing the actual thesis and while developing the application part of it, writing blog posts was a quite “escaping” procedure. But now with the writing part at its peak, I just have to relax in other ways…

Anyway I’ll try to keep in touch!

Categories
Master Thesis

Maple

Thank god there is Maple… I was trying to calculate the analytical derivatives of a big function today. My brain almost melted, so I found out we have Maple! It is excelent! It can calculate the analytical derivatives for any function… I had to calculate the Jacobian of derivatives for this function :

    (a*A + b*B -a*x - b*y) * A_ + (c*A + d*B -c*x -d*y)*B_ -(a*x_ + c*y_)*A -(b*x_ + d*y_)*B + (a*x+b*y)*x_ + (c*x + d*y)*y_) / sqrt( (a*A + b*B -a*x - b*y)**2 + (c*A + d*B -c*x -d*y)**2

According to Maple the partial derivatives are :

    ja = ((A-x)*A_-x_*A+x*x_)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(0.5)-0.5*((a*A+b*B-a*x-b*y)*A_+(c*A+d*B-c*x-d*y)*B_-(a*x_+c*y_)*A-(b*x_+d*y_)*B+(a*x+b*y)*x_+(c*x+d*y)*y_)*(2*a*A**2+2*A*b*B-4*a*A*x-2*A*b*y-2*b*B*x+2*a*x**2+2*x*b*y)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(1.5)
    jb = ((B-y)*A_-x_*B+y*x_)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(0.5)-0.5*((a*A+b*B-a*x-b*y)*A_+(c*A+d*B-c*x-d*y)*B_-(a*x_+c*y_)*A-(b*x_+d*y_)*B+(a*x+b*y)*x_+(c*x+d*y)*y_)*(2*a*A*B-2*a*A*y+2*b*B**2-2*B*a*x-4*b*B*y+2*a*x*y+2*b*y**2)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(1.5)
    jc = ((A-x)*B_-y_*A+x*y_)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(0.5)-0.5*((a*A+b*B-a*x-b*y)*A_+(c*A+d*B-c*x-d*y)*B_-(a*x_+c*y_)*A-(b*x_+d*y_)*B+(a*x+b*y)*x_+(c*x+d*y)*y_)*(2*c*A**2+2*A*d*B-4*c*A*x-2*A*d*y-2*d*B*x+2*c*x**2+2*x*d*y)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(1.5)
    jd = ((B-y)*B_-y_*B+y*y_)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(0.5)-0.5*((a*A+b*B-a*x-b*y)*A_+(c*A+d*B-c*x-d*y)*B_-(a*x_+c*y_)*A-(b*x_+d*y_)*B+(a*x+b*y)*x_+(c*x+d*y)*y_)*(2*c*A*B-2*c*A*y+2*d*B**2-2*B*c*x-4*d*B*y+2*c*x*y+2*d*y**2)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(1.5)
    jx = (-a*A_-c*B_+a*x_+c*y_)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(0.5)-0.5*((a*A+b*B-a*x-b*y)*A_+(c*A+d*B-c*x-d*y)*B_-(a*x_+c*y_)*A-(b*x_+d*y_)*B+(a*x+b*y)*x_+(c*x+d*y)*y_)*(-2*a**2*A-2*b*B*a+2*a**2*x+2*a*b*y-2*c**2*A-2*d*B*c+2*c**2*x+2*c*d*y)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(1.5)  
    jy = (-b*A_-d*B_+b*x_+d*y_)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(0.5)-0.5*((a*A+b*B-a*x-b*y)*A_+(c*A+d*B-c*x-d*y)*B_-(a*x_+c*y_)*A-(b*x_+d*y_)*B+(a*x+b*y)*x_+(c*x+d*y)*y_)*(-2*a*A*b-2*b**2*B+2*a*x*b+2*b**2*y-2*c*A*d-2*d**2*B+2*c*x*d+2*d**2*y)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(1.5)
    jx_= (-a*A-b*B+a*x+b*y)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(0.5)
    jy_= (-c*A-d*B+c*x+d*y)/(a**2*A**2+2*a*A*b*B-2*a**2*A*x-2*a*A*b*y+b**2*B**2-2*b*B*a*x-2*b**2*B*y+a**2*x**2+2*a*x*b*y+b**2*y**2+c**2*A**2+2*c*A*d*B-2*c**2*A*x-2*c*A*d*y+d**2*B**2-2*d*B*c*x-2*d**2*B*y+c**2*x**2+2*c*x*d*y+d**2*y**2)**(0.5)

Just to get an idea of what I’m going through with my master thesis… the above might be more easy to follow if you gzip it!!!

Categories
Master Thesis Open Source

An other contribution to OpenSource

Ok… after a lot of hard work, I managed to implement RQ decomposition in SciPy. It was a rather bad experience. I hate Fortran and I had to mess with it. Patch is send to the scipy-dev mailing list and I’m ready to continue my work.

But wait… it is Friday!!! I’m off!!!

Categories
Master Thesis

RQ Decomposition

My master thesis requires a lot of maths and linear algebra. For the purpose I use SciPy. It is a very good library and the fact that it is in python makes it very flexible. The problem is that it is (most of the times) just a wrapper around other older libraries like the famous LAPACK.

I’m now at a point where