Thursday, August 22, 2013

24 + 25 the end

So these last two days have been spent preparing our presentation. Today we did a run through where we presented in front of all the other interns, it was pretty good and there were only a few minor changes to make. Tomorrow we present and the cis summer intern program is over. I learned a lot from this experience, much much more than I anticipated.

Tuesday, August 20, 2013

22 + 23 More

These past two days have been spent adding more and more features. The primary feature we added was a zoom function when calibrating such that there is greater accuracy. This feature zooms in a small portion of pixels around the cursor and makes the spot the cursor is on red. More work has also been done for the final presentation mainly images or other visual aids. Specifically today we worked on a flow chart of the image processing.

Friday, August 16, 2013

21 Moving out the array + goodbye undergrads

After the morning meeting we quickly solved the issue we experienced yesterday when trying to capture from the pi cams. After this was complete and we had an acceptable capture the array was ready to be moved as our lab is being prepped for this years freshman imaging science students. The rest of the day was spent moving the array to the bat cave, eating food at our intern BBQ, and commenting the already existing code.
More commenting tomorrow.

20 Waiting for the news

After the morning meeting I started documenting the operation of our program while waiting to hear about the status of our computer. In order to find out about the computer we had to order a replacement part and fix it to see if there was any corruption or data loss. Luckily when ~2 came by the part showed up and the computer is now operating perfectly. Tomorrow is the undergrads last day and the last day we have access to the array so we plan to test some file streaming stuff and then move it away.

Wednesday, August 14, 2013

19 Catastrophic failure

Productive day! It started that way at least. Initially we worked on fixing the FPS counter so we could measure our performance increases. However once we began monitoring performance we noticed it was significantly lower than our previously recorded figures. We tried removing some changes we made and we figured out that it functioned poorly without any of the features we have added recently. After checking some hardware issues we realized that the CPU was overheating and the cooling system had been failing. Darn.

Tuesday, August 13, 2013

18 Post Mees

Today was quite an eventful day. The day began in a rather unusual manner as interns poured in at various times due to the lack of a morning meeting. Mees went so late that we were allowed some leeway about our arrival time. Surprisingly the entire Multi-Camera Array lab was here and ready to roll by 9:00. All that shenanigans aside today was spent primarily added functionality and easing use of the application. With this came a whole bunch of bugs.

Tomorrow we are thinking of working on data streaming issues and investigating the effectiveness of using the Point Grays via USB.

16 + 17 Friends and stars and stuff


Today was take a friend to work day. I brought my good friend Michael from our robotics team. He is going into his sophomore year of high school so this was a good opportunity for him to see what the internship program was all about.

Overall it was an enjoyable day, and we even managed to accomplish a reasonable amount of work.


Today (Yesterday now) we went to Mees observatory. I clocked in at about 3 and worked until 5 when we went to Mendon Ponds Park to eat and then to the observatory. We saw lots of cool stars and galaxies and such and even a few meteorites.

Thursday, August 8, 2013

15 Testing different Array configurations

Overall today was a pretty slow day, work did ramp up after lunch when we were able to use the primary computer in our lab. Once we were on it, we tested other camera configurations, part of our project that is technically more specific to Nate. We tested varying things from curved arrays to different numbers of cameras. An array of 24 cameras was pretty cool.

Wednesday, August 7, 2013

14 More features, more fixes

This morning we quickly solved the issue we had left yesterday. We soon realized the problem causing some difficulty in the arrays processing was a lack of files for it to read. The features we added today were focused mainly around increasing ease of use of the program, notably error messages. Now if someone sets the array live and there are no images to process it notifies the user and makes the array offline. Overall today was very productive, we will be continuing similar work tomorrow, and also start testing some alternate configurations generated in Maya.

Tuesday, August 6, 2013

13 Fixing features

Great news! Today our lab collaboratively finished our outline. Elizabeth and I were also able to complete many minor fixes to features with the Multi-Camera Array application. These features now allow the application to be made full screen or re-sized with a mouse. There are still plenty of features necessary to tweak in order to truly complete the application, however today was a big step towards that.

Monday, August 5, 2013

12 A very special day

Today is my Birthday! Kind of, not really at all. So today we went forward with tweaking the processing and adding new features to the application. We also found out our algorithm works just as fast on color images from the pi cams.

This the afternoon I took part in Mia and Simran's experiment. It was neat-o. Overall a very solid day accompanied by free lunch.

Friday, August 2, 2013

10 + 11 Getting ready to present | Presentation

(Yesterday) Today we prepared for the presentation on Friday.  We spent the afternoon reviewing and revising our presentation and which parts each of us would be presenting.

Actually today we presented at the Undergraduate Symposium! It went surprisingly well and after the fact a guy who works at a security company talked to us about the potential uses of our system.

Lots of free food and mountain dew today. Good day(s).

Wednesday, July 31, 2013

09 Take that Matlab!

This morning I began working out the issues with the processing code. Much to my surprise we were able to work out this problem relatively quickly. As of today we successfully reproduced the Matlab processing code in C++, plus (heh) ours is much prettier. Our code also presents a performance increase from 3-4 frames per second to 16 with no optimizations.

The rush received as a result of this accomplishment is rivaled only by that known to those who witnessed Ronald Reagan's single handed destruction of the Berlin wall. The freedom in the air was palpable in both situations. On a more serious note, today was excellent, much candy was eaten.

Looking forward to finalizing and practicing our presentation tomorrow.

Tuesday, July 30, 2013

08 Bug fixes and presentation stuff

It was quite an eventful day! We made great progress today by working out one of the major bugs we experienced yesterday that was preventing the continuous looping of our system, and hence processing of our images. After working that bug out we were able to almost replicate the functionality of the Matlab code.

This afternoon we also worked on our PowerPoint with Joe. That was swell. I'm actually quite excited for the symposium Friday.

Lunch today was also very good. I had a cheeseburger. And drank some mountain dew. Tasted like freedom and liberty. God bless.

Monday, July 29, 2013

07 Moving forward

After the morning meeting we finally managed to put together the GUI and calibration and processing code. This is a major step in the right direction as the majority of our remaining tasks are tuning and tweaking outside of escaping the file stream bottleneck.

Tomorrow we will be investigating what is necessary to take our current code and adapt it to be repeated infinitely (in theory). Once this is complete we can start to work on evading the use of a share file, and at that point I anticipate a vary large performance jump for the multi-camera array.


Friday, July 26, 2013

06 Back to business

Today I quickly finished the depth alignment code I was struggling with yesterday. Along with this step forward I wrapped the calibration and depth processing functionality into one "Processor" class which with a few more tweaks will be ready to use in the final product.

Tomorrow will probably revolve around working out and completing said tweaks and starting work on image streaming from cameras directly from USB to eliminate raspberry pi frame rate bottlenecks.

Twas an excellent day.

Thursday, July 25, 2013

05 Returning from WV

This morning I created a small application to help work with the camera array. Afterwards the majority of today was spent getting caught up with all the work Elizabeth had completed. Currently I am working on the depth adjustment code. Overall it was a pretty 'meh' day, however it was good to return after a rather long vacation, tomorrow should be more productive.

Friday, July 12, 2013

04 Week 1 ends

Well it's the end of the first week as a CIS intern. I am really enjoying my work in the lab and spent the majority of today cleaning up and packing the calibration code into a easily reusable format. Lots of today was spent indicating calibration points and testing to assure that the alignment was working properly. Calibration data is now stored in a text file, so in the future it is not mandatory to indicate these points each run.

It felt very great to test the setup using actual array pictures, this helped to show how truly applicable this code would be in the final project. Today Joe, our adviser, also came in to help us set up deadlines and goals for the project, giving us a good idea of the pace our work needs to be set at.

Sadly this will be my last blog post for quite some time as I'm going on vacation for all next week and half the week after that. I'll be back at it 7/25/13 assuming all goes well.

Thursday, July 11, 2013

03 Good Progress

Today was a very productive day! After the morning meeting I was able to successfully setup the OpenCV library and start testing its functionality. By mid day I was able to replicate the Affine transformation that the multi-camera array uses to produce its synthetic aperature effect.

In more exciting news, I had a buffalo chicken tender sub for lunch, it was delicious, and mdew too.

After lunch another significant step forward happened when after looking into opencv's highgui classes I found a way to reproduce the array's calibration routine. This is working well with test images and is likely to be the code that will be used in the finished product.

Here is picture of the calibration in action:

Wednesday, July 10, 2013

02 Starting work with OpenCV and raspberry pi's

Well today I spent the first portion of today attempting to install a web server to grab images from a raspberry pi. This proved fruitless.

Afterwords I looked into setting up OpenCV to replace the Matlab matrix and image functions. This seems promising, however so far I've been unable to get the library set up due to operating system issues and a number of other things. Lunch today was fun, we saw a couple TED talks and ate some complimentary pizza.

Looking forward to figuring out the library issues tomorrow.

Tuesday, July 9, 2013

01 What sort of 'stuff' do I do

So, although I've already done a post today, this one is specifically tailored to today, as the following days blog posts will be. So this post is about what I do, or will be doing, to help the multi - camera array project.

My "area of expertise" is programming and computer science. So me and another one of the interns (Elizabeth) are working to help optimize the current code, and potentially re-write the current processing in another, faster programming language. So far today specifically I've looked into code regarding QTcp servers on Raspberry Pi's to improve the performance of synchronized image fetching from the array, and talked to a grad student TA, who has been involved in the existent code, to get a better understanding of the existant processing code.

This project seems like it will be a decent challenge and may require I learn a good deal of programming revolving around image processing libraries and UI and server libraries (OpenCV and QT). Although a challenge I hope to accomplish the task of speeding up the processing fps (frames per second) to around 30. It will make for a very busy and challenging summer.

00 The very second day!

So, as interns here at RIT we are required to keep blogs. Thats pretty neat, no real complaints. And as today was the first second day, this is my first blog post.

I work in the Multi - Camera Array lab with two other interns, and two undergrad CIS students. The multi - camera array is, simply put, a bunch of cameras, in our case 6, put in a (or in some cases several) row. When the images produced by the array are processed and stitched together , as a result of an effect deemed synthetic aperture, the resulting image can show objects in focus despite occlusions in the way of what would have been a single camera.

This technology has potential applications in security and numerous other fields (in other words I'm sure someone will think of other applications, who knows maybe I will). Its a pretty cool phenomenon regardless of its application.

So thats the project, and the gist of the lab.