6.801/6.866 Machine Vision
Fall 2016
Instructor: Berthold Klaus Paul Horn
TA: James Noraky
Lecture: TR9.30-11 (32-124)
Announcements
please return loaner Android smartphones
If you loaned an Android phone for the 6.866 project, please return it, if you have not already done so
(thanks Danielle). I need them for a class that starts January 9th.
If I am not in my office (32D-434), please contact Ellie Zucker <eliaranov@csail.mit.edu>
and drop them off with her.
Thanks, Berthold K.P. Horn
IMEI 990001138038468
IMEI 990004365763238
IMEI 990004485693406
IMEI 990004388009668
IMEI 990004365298870 (returned)
Announced on 17 December 2016 9:24 a.m. by Berthold Klaus Paul Horn
Graded Quiz #2
Quiz #2 is now graded. The average is 39.03. If you submitted your quiz on stellar, I posted a comment to your submission. If you turned in a paper copy, I'll email you your score and comments shortly. Please email me if you have any questions.Best of luck with the end of term! Happy Holidays!
- James
Announced on 15 December 2016 1:46 p.m. by James Noraky
Project Presentation and Upcoming Deadlines
Please be prepared to give a 5 minute talk on your project on the last day of class (Tuesday, 12/13). Your talk should cover the algorithm you implemented, any challenges you faced, and show some select results. Please upload your slides beforehand to minimize transition times. We will present in alphabetical order by last name.Please upload the following to Stellar:
* Presentation Slides (Due 12/12, 11:59 p.m.) - PDF/Powerpoint
only. Late submissions will be subject to a penalty.
* Project Code (Due 12/13, 5 pm)
* Writeup (Due 12/13, 5 pm)- A short writeup (no more than 4 pages)
describing your algorithm, implementation challenges, and some
select results.
* Quiz 2 (Due 12/13, 5 pm) - Late submissions will be subject to a
penalty.
Announced on 06 December 2016 2:01 p.m. by James Noraky
Android Extended Office Hours and Implementation Tips
There will be extended office hours for the Android Project after class on Tuesday from 11AM-1PM. For efficient use of time, please come prepared with specific questions.I received several questions about the project and I thought I'd summarize the answers here:
* For a review of the TTC algorithm, refer to the paper under materials.
* If you are new to Android, it will be frustrating to debug both the algorithm and the Android code at the same time. Please decouple the two - implement TTC in a programming language you are familiar with. However, keep in mind that while it may be tempting to use MATLAB's conv2 function or OpenCV's filter2D function, you still need to set up and use the appropriate library when you port the code to Android. If you are fine with hacking, great! Otherwise, I suggest you think about how to implement the convolutions.
* If you have Android questions, please first consult the Viewfinder example posted to the Stellar site. To see, where the work is being implemented see the onDraw function. Also, the Android API is pretty well documented. This link (https://developer.android.com/reference/android/graphics/Canvas.html) and others on the website may be useful. If you are confused with the class structure, please check out the Android tutorial as well.
* A good part of the work will come down to gradient computations. In class, we discussed different kernels or "computational stencils" to compute the spatial gradients. If your memory is a bit hazy on this topic, please refer to p.2 of " Determining Fixed Flow" under the materials section.
* It is important to think about your coordinate system. For an NxM image, what is a good approximation of the origin? How is your x-axis oriented? How is your y-axis oriented? What do your computational stencils assume the axis are? These considerations will be important because we need to compute the radial gradient.
* Since TTC will be implemented on a resource-constrained device, you will need to make sure your code is tidy. One of the benefits of TTC is that it's rather simple and direct - we compute gradients and accumulate their products. Keep in mind the precision of your accumulation variables! Depending on the resolution of the images you are processing, this can easily overflow! Think about how could normalize "partial" partial sum of each row.
* When in doubt, low pass filter! If you want to improve your results, filtering does help. Again, if you have implemented gradients, this should be straightforward. If you want high performance with larger computational stencils, consider using renderscript.
Announced on 03 December 2016 9:30 a.m. by James Noraky
Screenshots? (6.866)
Announced on 01 December 2016 8:12 a.m. by Berthold Klaus Paul Horn