2IMV10 - Visual computing project - 2021-2022 Q3
For previous versions see 2IMV10.

instructor: Andrei Jalba (MF 7.092, )

instructor: Huub van de Wetering (MF 7.094, )



Dates
Taskdaydateplacestudent
deliverable
Kickoff meeting Tuesday 08/02 Luna 1.240 -
Proposal submission Tuesday 15/02, before 24h Canvas project proposal
Evaluation of proposals & feedback Tuesday 22/02 Canvas -
Presentation day 1 Tuesday 15/03 Luna 1.056 -
Presentation day 2 Thursday 17/03 Luna 1.056 -
First Submission Thursday 17/03, before 24h Canvas report -- concept version;
presentation slides
Review & feedback Tuesday 24/03 Canvas -
Demo session Thursday 07/04 Auditorium 13 -
Final Submission Thursday 14/04, before 24h Canvas report: final version;
all other final deliverables
Peer evaluation Tuesday 19/04, before 24h Canvas evaluation report

Remarks

1. All meetings for which a room is indicated above will take place on-site. This is to encourage interaction and class participation. If, however, due to Corona you have to stay at home, you can also attend a meeting online, via Teams; use this option as a last resort.

2. All deliverables are handed in via Canvas.



Description

This project is aimed at improving the practical skills in creating computer graphics and visualization applications. Programming language and environment are at the choice of the student.

Procedure:

  1. Students work in groups of three and register as such in Canvas. Registration will be opened immediately after the kickoff meeting, see above. Attending this meeting in person may also help with group formation.

    Ideally you will form a complete group and then register in Canvas. Please mind that we will merge incomplete groups so as to make them complete.

  2. Each student group chooses one of the assignments given below and enrolls in the corresponding Canvas group. Only up to two groups are allowed to work on the same assignment. For instance if your first preference is project 7 below, you should try to enroll in Canvas group named "Project 7a" or "7b", if available. If this is not possible, try to enroll in the corresponding group of your second preference, and so on.
  3. Each group writes a proposal for the assignment.
    The proposal should contain: The total size of this proposal should be up to 3 pages.

    The proposal (as well as all other reports, see below) should be handed-in via Canvas and it should be in pdf format. The instructor will provide feedback about your proposal via Canvas. Typically, responses are suggestions for addition or removal of functionality or changes in planning.

  4. The students start working on their assignments and can consult the assigned instructor after making an appointment. Appointments take place during the allocated hours Tuesdays and Thursdays. A number of time slots, in which groups can enroll for an appointment, will be made available via Canvas.
  5. First submission consists of:
  6. You are required to demo your project during the demo session. The idea is that each group gets 5 minutes to present a demo video of their project, show off the implemented features, etc. Since you have very little time, make sure that you make preparations beforehand so that we can quickly switch from one demo to the next.
  7. Final Submission: final deliverables, containing:
  8. Peer evaluation: After the final submission, each group contacts another group via Skype/Teams etc. and asks questions and tasks about their tool. The goal is to report on the findings, in form of a qualitative evaluation report. Do not write more than one page for the group that you evaluate, see the example report in Canvas; you can follow the same structure, and you can adapt to your scenario, but keep the 1 page limit ! The rule is that each "Project xa" group evaluates the following "b" group ("Project (x+1)b") in order, and vice versa. After the maximum group number we start again with the first group.



Final deliverables




Report requirements

The report should contain the following elements:

The report should be up to 8 pages, including up to 2 pages of figures; it should be done in Latex using the provided template (see Files under Canvas). Report writing guidelines can be found here.




Hint
Please give your application attractive and functional interactivity. This will not only help you to develop and test your own program but, for sure, others will not like your program, if you don't like it yourself. Both functionality and usability of the system will be graded.




Assignments 2021-2022 Q3

Braitenberg vehicles (project 1) - AJ

Build an interactive educational virtual environments in which Braitenberg vehicles may live and do their thing. The educational part of this assignment should be that with interaction with the vehicles and environment, the working of the Braitenberg vehicles can be clearly illustrated. Furthermore, the end result should show superb 3D-modeling, rendering and interaction.

Additional information


Interactive display method for digital photographs (project 2) - AJ

Build an interactive environment for displaying collections of photographs, using different arrangements. Various requirements for photo arrangements should be flexibly replaced or added through the interaction and the results should be dynamically displayed.

Additional information


Burst photography for HDR and low-light imaging on mobile cameras (project 3) - AJ

Cell phone cameras have small apertures, which limits the number of photons they can gather, leading to noisy images in low light. They also have small sensor pixels, which limits the number of electrons each pixel can store, leading to limited dynamic range. One possibility to address these issues is to use information from multiple, successive photos of a burst.

Implement the HDR+ method (see below) for photography enhancement.You may use a computer-vision library (e.g. OpenCV) to help you implement the multiple processing stages of the method. Strive to optimize your implementation, use parallelism and if possible port it to mobile platforms.

Additional information


Object/shape recognition from silhouettes (project 4) - AJ

The reconstruction of a 3D object model from a set of images taken from different viewpoints is an important problem in computer vision. One of the simplest ways to do this is to use the silhouettes of the object (the binary classification of images into object and background) to construct a bounding volume for the object. To efficiently represent this volume, Szeliski [1] uses an octree, which represents the object as a tree of recursively subdivided cubes.

The algorithm starts with a small number of black cubes. Black cubes are believed to lie completely within the object, white cubes are known to lie outside of the object, and gray cubes are ambiguous (e.g. along object's boundary). When a new image is acquired, all current cubes are projected in the image plane and tested whether they lie totally within or outside the silhouette. Then, the color of each cube is updated according to the outcome of the cube-silhouette intersection test. Implement the shape-from-silhouettes method above using images captured by a single, hand-held camera (webcam, mobile phone, etc.). Use a computer-vision library (e.g. OpenCV) to help you perform low-level computer vision tasks such as: feature detection, feature matching, segmentation, camera calibration, camera pose estimation, etc. Alternatively, sensors available in your phone can be used to help with camera pose estimation, motion, etc. If necessary, use a so-called camera calibration pattern (chessboard pattern).

Additional information


Reinforcement learning for simulating crawler vehicles (project 5) - AJ

Build an interactive educational virtual environments in which various crawler-type vehicles (see below) are simulated. You will have to use some physics engine to implement the dynamics of the vehicle and sensing of the environment. Start with a basic crawler using simple rules for reinforcement learning and gradually enhance it to perform more and more actions. The educational part of this assignment should be that the interaction with the vehicles and environment and the working of the vehicles can be clearly illustrated. Furthermore, the end result should show superb 3D-modelling, rendering and interaction.

Additional information


Comparison of phylogenetic trees (project 6) - HvdW

Phylogenetic trees are commonly used to analyze the historical evolution of species from a common ancestor. For some biological questions, it is relevant to compare study structural differences between trees. Nowadays, with increasing data availability, making structural comparisons of large trees becomes challenging. Your task in this project is to develop new interactive visual encoding for comparison multiple (large) phylogenetic trees. The new visual encoding should hint to differences in tree structure and organization, such that a biologist can further quickly find and interpret these.

Additional information


Covid-19 social distancing simulation: supermarket case study (project 7) - HvdW

Social distancing has proven a successful measure in slowing down the spread of the Covid-19 virus. The transmission of the covid-19 is studied in several mechanisms, for example by close contact or via inhalation of virus-containing aerosols. Researchers have developed several simulations to study these mechanisms and other contributing factors. Given a simulation model, your task in this project is to visualize several different scenarios of social distancing measures in a supermarket. This interactive visualization can serve as a decision support tool for policy makers and store owners.

Additional information


Modelling and visualizing Sweep Objects (project 8) - HvdW

A sweep operator can be used for modelling 3D shapes. It uses across section and a sweep line as input to create a 3D shape. This general operation can be extended by taper, twist, and warp parameters, used for scaling, rotating, and morphing the cross section along the sweep line.

Additional information


Block World Editor (project 9) - HvdW

Make an editor to build a 3D world consisting of stacked blocks in a WYSIWYG manner. This effectively means that you are walking around in the world while building it. The editor should be such that relatively complex worlds can be efficiently build.

Additional information


Circular Space Reclaiming Icicle Plots (project 10) - HvdW

Space-reclaiming icicle plots are hierarchy visualizations based on the visual metaphor of icicles. This approach tries to reclaim empty space in all hierarchy levels, resulting in an improved visibility of the hierarchy elements especially those in deeper levels. In this project a circular version of the SRIPs has to be realized.

Additional information