All homework assignments, both programming and written problems, must
be done individually unless explicitly stated otherwise. Cheating and
plagiarism will be dealt with in accordance with University
procedures related to
Academic Integrity.
Hence, for example, code for programming assignments must not
be developed in groups, nor should code be shared, and code should not be obtained from
anyone or anywhere, including the Web. You are
encouraged to discuss with your peers, the TA or
the instructor ideas, approaches and techniques broadly, but not at a level
of detail where specific implementation issues are described by anyone.
If you have any questions on this, ask the instructor before you act.
Questions and answers related to the homework assignments should be posted to Piazza. Please follow posts there to clarify issues in the assignments.
How to hand in a homework assignment
Electronically hand in all parts of each homework to the hand-in folder in Moodle associated with each assignment. This includes answers to written questions, MATLAB code written, and any other files such as images.
Be sure to also save a separate copy of your completed code and result images in your
own private directory as a backup to the copy you put in the hand-in directory.
Do not alter your own copy after you turn it in so that the date on the file
is the same as the date of what you hand in.
Note: All parts of each assignment are all due on the due date at the due time.
Late Penalties:
All assignments are due on the due date by 11:59 p.m.
One (1) day late, defined as a 24-hour period from 11:59 p.m.
to 11:59 p.m. the next day (weekday or weekend), will result in 10% of the
maximum points for the assignment
deducted. So, for example, if an assignment is due on a Wednesday and it is
handed in any time on Thursday, a 10% penalty will
be deducted. Two (2) days late, 25% off; three (3) days late, 50% off.
No homework can be turned in more than three (3) days late regardless of any free late days being used.
A total of three (3) free late days may be used during the
course so that no late penalty is deducted. Free late days will be used automatically for the first late days incurred.
Corrections of any grading problems must be resolved within one week after a homework is handed back.
Homework #1: Try out some Computational Photography Apps (Due: Thursday, September 15)
Photomatix is installed on the Windows machines in the Enterprise Lab in room 1350 CS.
An alternative HDR creation application called Microsoft GeoHDRPhoto can be downloaded from Microsoft and installed and used on your own Windows machine.
"Color Transfer between Images" by E. Reinhard, M. Ashikhmin, B. Gooch, and P. Shirley, Computer Graphics and Applications, September/October 2001. Focus on the section "Statistics and color correction."
If you need a tutorial on linear algebra and matrix operations, see, for example,
Linear Algebra Review and Reference by Z. Kolter and C. Do, 2012
Hand-in Instructions
Put everything (code and images) for each problem in a separate folder.
For example, for problem 1 put everything in a folder called "P1".
Then put all three folders together in a SINGLE zip file called <NetID username>-HW2.zip where "<NetID username>" is replaced by your NetID username.
Copy this zip file into the Moodle dropbox for HW2.
Homework #3: Image Resizing using Seam Carving (Due: Tuesday, October 11)
Run your code on the image union-terrace.jpg with the arguments given in the assignment.
In addition, find on the web or take your own photos to
test your code using at least 2 additional test images,
one which shows a good result and one that shows a poor result.
Hand-in Instructions
Put everything (i.e., code, images, and answers to the questions in the Experiments section of the assignment) in a SINGLE zip file
called <your NetID username>-HW3.zip
and copy this zip file into the Moodle dropbox for HW #3.
Homework #4: Making Panoramas (Due: Thursday, October 27)
skeleton.zip skeleton code for you to start coding from
Readings
Material related to this assignment is given in the lecture slides, the paper
Video Mosaics for Vitual Environments by R. Szeliski, IEEE Computer Graphics and Applications16(2), 1996,
and in parts of the following sections of the Szeliski book: 2.1.2, 4.1.1., 4.1.2, 6.1.2 - 6.1.4, 9.1.1, and 9.3.2.
Hand-In Instructions
Put the following into a single zip file called
<NetID username>-HW4.zip and copy this zip file into the Moodle dropbox for HW #4.
All the files containing scripts or functions you wrote or modified,
including main.m and calcHWithRANSAC.m and blend.m
A folder called input_images containing all the images (at least 4) used to create your second panorama
A folder called output_images containing two panorama output images,
one called test.jpg and the other called
<NetID username>.jpg
A README.txt file that contains comments on any relevant implementation notes
including parameter values used, and any extra work done beyond the basic requirements, if any.
Copy this zip file into the Moodle dropbox for HW4.
Tentative title, team members, and abstract: Thursday, November 17
Turn in to one teammate's HW5 Moodle dropbox a file called username-HW5-Abstract.txt that uses the following html template for entering your project description:
<LI><B>name1</B>, <B>name2</B> and <B>name3</B><BR>
<I>title</I><BR>
abstract
Progress Report: Thursday, December 1
Turn in to one teammate's HW5 Moodle dropbox a pdf file called username-HW5-Progress.pdf that describes the progress of your team to that point, including work completed and planned next steps. Just one person per team needs to submit this file.
Class Presentations: December 13 and 15
Presentations should be 4 minutes.
Present the main problem,
an illustrative example, a very brief description of the method,
and preliminary and planned results.
Bring your own laptop or flash drive with your presentation,
or else email dyer@cs.wisc.edu your powerpoint file or other file
by 11 a.m. on the day of your presentation.
The following is the order of presentations on each day:
Tuesday, December 13
Andrew Chase, Bryce Sprecher and James Hoffmire
Lingfeng Huang and Fang Wang
Brett Geschke, John Carmichael and Steven Radeztsky
Shu Chen, You Wu and Sijia Zhang
Kailee Tapia
Josh Chaimson, Bryce Greiber and Sambhav Jain
Alex Kocher, Blake Nigh and Konnor Beaulier
Arjun Gurumurthy, Ashok Marannan and Manoj Nagarajan
Chao Li, Bryan Suzan and Alayna Truttmann
Jing Qian, Xiaofei Liu and Ruihao Zhu
Meiirbek Ashirgaziyev and Aoyu Fan and Alexandra Grupe
Amr Hassaballah, Jimmy Yuan and Austin Schaumberg
Jackson Milkey, Michael Salmon and Andrew Zeitlow
Joseph Hushek, Haohua Wang and He Wang
Thursday, December 15
Garrett Andrews, Matthew Muccianti , Elliott Janssen Saldivar and Aabhas Singh
Jacob Holiday, Sahil Verma
Evan Hernandez and David Liang
Christina Stiff and Nicholas Smith and Joanne Lee
Mary Feng and Sabrina Yu
Micaela Connors, Angus Kinsey and Jason Chen
Wangtao Lian, Rulan Zheng and Ruiqi Yin
Jacob Draeger, Alex Herreid and Raghav Bhagwat
Cheng Xiang, Siyu Chen and Yizhe Qu
John Louk, Brian Nelson and Riley Morrison
Jake Becco, Justin Aniban and Joseph Hoffmann
Matthew Nicol, Brad Miller and James Merrill
Neha Godwal, Sidharth Mudgal and Yipeng Zhang
Eric Arndt, Justin Xayarinh and Shuruthy Yogarajah
Final Report: Tuesday, December 20, 5 p.m.
At the beginning of your report give the title, team members, link to your project's web page if you have one (a web page is optional and will count as extra credit points for the course), and an abstract of your project.
Your report should describe the problem, the approach implemented, a summary of experiments, and evaluation of results. The length will depend a lot on the type of project. Most reports will be about 10-15 pages long. The style should be in the form of a conference paper. That is, title, abstract, introduction, motivation, problem statement, related work, theory, method, experimental results, concluding remarks, and references.
Include at the end of your report a description of what code you got from elsewhere that you did not write, and what code your team wrote; include approximate number of lines of code written. Also describe what the main contributions were of each team member. Hand in your report electronically to one person's Moodle dropbox in a pdf file called username-HW5-Report.pdf
Also hand in a file called username-HW5.zip that contains code, images, and any other information that you want to include.
Optionally, create a web page for your project that includes the project report, sample input and output image results, etc. Give the web link in the project report.
Here are some sample web pages created for previous projects:
Look for inspiration from works of art, visual perception, visual illusions, physics of light, interesting categories of images on photo sharing sites, etc.
If you want to run MATLAB or any other program installed on one of the CS Department Linux machines
remotely from your own computer at home, here is how you can do it:
From any Mac OS or Unix OS machine:
Type in the following command in a terminal window on your laptop:
ssh -X <your-cs-login>@best-linux.cs.wisc.edu
You will be prompted to enter your CS login and password and then a secure connection
will be started on a CS Linux workstation.
Install Xming and the fonts package in the same folder by double-clicking
the .exe files that you downloaded in Steps 2 and 3.
Go to the Start Menu and run XMing. If you are using a firewall, it will ask if you
want to unblock it. You don't need to. Look for the "X" icon in your system tray. Hover the mouse
over it: it should say something like "Xming server - 0:0". The last bit
should be "0:0", but if it's not, pay attention to that and use it in the
subsequent steps as directed.
Run putty.exe, the file that you downloaded in Step 1.
In the window that pops up under host name, enter
"<your-cs-login-name>@best-linux.cs.wisc.edu". Then, on the left, click on the
Connection/SSH/X11 sub-panel. It'll have a few options. Check "Enable X11
Forwarding", and in the "X display location", put "localhost:0:0" in the
box (unless you didn't have "0:0" in Step 5 above: then use
"localhost:x:y", where "x:y" is whatever you saw on the icon). Leave the
radio button on "MIT-Magic-Cookie-1". Now click back to the main "Session"
panel on the left. Put a name (any name like "cs") in the text box in the
middle right below "Saved Sessions". Click the "Save" button. From now on,
you can double click the connection in the list box when you want to
connect; you don't need to configure these settings every time. Press "Open" to
start PuTTY. Put in your CS assigned username and password. Now run the
command xeyes &. You should get a big pair of googly-eyes that follows
the cursor around. It works!