Friday, April 15, 2016

Week 10: Holy Guacamole!

April 15, 2016

Catching Up From Last Week

After my last post, I started choosing manual match points and comparing them to automated match points. It turns out that this task is perhaps the most tedious task known to mankind. I'll spare you all the boring details, but the bottom line is that in the image pairs that actually gave us matches, the computer consistently performed as well as (or better than) a human (me). Here are some animations showing the shifts that occur between images for a few match points.

Computer

Computer
Me
Me

Sometimes the computer performed worse than I did, but that's alright. The "breathing" that you see is due to geometry changes from different camera angles and things like that.


This Week! (holy guacamole)

I am excited! Remember back in Week 3 when I said we got to put it all together? I 100% lied. This week we really put it all together. Let me explain.

The first half of my project (the part that was completed before capstones ended) was all about learning how to program. And I did that decently well. I learned the basics of the Python programming language and learned some cool things about file manipulation and the like.

The second half of my project has been all about helping out the USGS, and I have also done that to a certain degree. I learned how to use some of their software in order to analyze the effectiveness of some of their image matching algorithms while learning some cool and useful skills along the way.

Now when I say we put it all together, I mean we put both halves of my project together. Last week I talked about the problems we were having with the code especially when it came to communicating between my Mac and the Linux that is on my Mac. We remedied those problems by abandoning the Mac side altogether and doing everything on the Linux side.

See, before, we were matching images on the Mac side and sending the control networks that were generated to the Linux side through some computer black magic. When I say control network, all that is is a file that contains all the matched points and where they exist on each image, more or less. Anyway, since moving over to the Linux side, it has been much easier to manipulate the algorithms ourselves, and we have discovered there are about 32 total combinations of algorithms between feature detectors, matchers, and feature extractors (for each image pair), sort of like the combination problems where Jenny has to choose between 5 blouses, 3 skirts, and 2 pairs of shoes.

Here's the cool part: (wait for it.........) because there are wayyyy too many combinations to test by hand in a truly organized manner, my advisor helped me WRITE A SCRIPT that RUNS ALL OF THE POSSIBLE ALGORIthm combinations sequentially! Isn't that amazing??????????? I think it's flippin' sweet! If you couldn't tell, I'm pretty excited. Running all of the combinations will definitely take a while, perhaps up to a week or longer, because it can take 30 minutes or more to run a particular combination. It may take even longer because we keep running into issues with the script we wrote so we'll see what happens!

So that is what's going on now and will be what I talk about in more detail in my final presentation/paper. With that said, the next time you'll hear from/see me is the day of my final presentation (May 2), so adiĆ³s amigos!

3 comments:

  1. Wow that is so exciting! I'm glad you got all of your issues worked out, hope all goes well!

    ReplyDelete
  2. So, what is the output of this major script, and what will you be doing with the results?

    ReplyDelete
    Replies
    1. We ended up having to modify the script because there was a bug that we couldn't identify, so now it just writes all the possible command lines for a certain image pair into a file for me to copy and paste. The script was really just intended to save some labor so that I didn't have to key through the command line and manually edit every instance of whatever algorithm was changing. Now, I'm just analyzing the performance of each algorithm under all the various conditions, after all the pairs finish running.

      Delete