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

lecturer/tutor: Andrei Jalba (MF 4.063, )

tutor: Dennis Collaris ()
tutor: Astrid van den Brandt ()
tutor: Linhao Meng ()
tutor: Humberto Garcia Caballero ()



Dates
Taskdaydateplacestudent
deliverable
Kickoff meeting Tuesday 02/02 see Canvas -
Proposal submission Tuesday 09/02, before 24h Canvas project proposal
Evaluation of proposals & feedback Tuesday 16/02 Canvas -
First Submission Tuesday 16/03, before 24h Canvas report: concept version;
video presentation + demo
Review & feedback Tuesday 30/03 Canvas -
Peer evaluation Tuesday 30/03, before 24h Canvas evaluation report
Final Submission Tuesday 07/04, before 24h Canvas report: final version;
all other final deliverables

Remarks

1. The kickoff meeting will take place online; details will follow.

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.
  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 called "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 tutor 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 tutor after making an appointment.
  5. First submission consists of:
  6. Peer evaluation: During the week 23-30 March, each group contacts one other 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 1 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 group evaluates the following group in order. After the maximum group number we start with the first group again.
  7. Final Submission: final deliverables, containing:



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 2020-2021 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


Ant-Based Bundling (project 3) - AJ

Node-link diagrams are a popular visual metaphor for visualizing graph data. However, they typically suffer from visual clutter if too many links are drawn caused by the fact that a graph can become dense and large. Edge bundling has become a nice way to show the node-link diagrams in a more aesthetically appealing way, however, only hierarchical and force-directed bundling approaches have been tried in the past. In this project we want to learn about how efficient swarm-based bundling methods can be, if applied to the problem of producing nicer looking node-link layouts.

Additional information


Burst photography for HDR and low-light imaging on mobile cameras (project 4) - 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 5) - 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


Real-time 2D to 3D video conversion (project 6) - AJ

Using the motion compensation (MC) data of advanced video codecs such as H264, it is possible to recover depth information in real-time, starting from 2D video sequences. The MC data, which is extracted during the video decoding process, is used to calculate the relative projected velocity of the elements in the scene. This velocity is then used to estimate the relative depths of pixel patches in each picture of the video scene sequence. The depth estimation process is performed alongside the standard H.264 decoding process, leading to real-time efficiency. Implement this method using any of the freely available H264 video decoders. Aim at real-time performance and render the recovered 3D scene simultaneous with the 2D video sequence.

Additional information


Reinforcement learning for simulating crawler vehicles (project 7) - 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


3D modeling tool using Google poly (project 8) - AJ

Build a 3D modeling tool which uses as input the various objects/models from the Google play database. The tool should support various CAD operations and should allow for easy placement and manipulation of basic 3D models from the database. The focus should be on rendering, interaction and presentation, in the siprit of scenario editors for popular 3D games.

Additional information


3D terrain reconstruction and navigation (project 9) - AJ

Laser height measurements of the whole of the Netherlands are available here. The data points are classified in 5 classes, among others, buildings and water.
Build a tool that performs 3D reconstruction of the height map and combine it with other datasets, e.g., open-street maps. Your tool should use moving least squares (MLS) as a method for surface reconstruction and allow dynamic loading of a desired region and walk-through. Multiple types of cameras and exploration options should be available. The focus should be on rendering, interaction and presentation.

Additional information


Interpreting neural networks using neural dimensionality reduction (project 10) - DC

Neural networks are complex predictive models that are difficult to understand. A recent approach to get more insight into the behavior and choices of a neural network are neural dimensionality reduction techniques. In these approaches, the high dimensional neural activations are projected down to two dimensions such that they can be visualized as a scatterplot. Neurons with similar activations are projected close to each other.

Your task is to train a neural network of choice, and report insights into how the neural network makes predictions. Are there any clusters of interest? What does the cluster mean? Can you spot mistakes by the model or in the dataset? Next, you will design multiple visualizations and link them together through interaction to help experts analyze and understand the neural network.

Additional information


Machine learning model performance visualization (project 11) - DC

Confusion matrices are a very common visualization of the performance of a machine learning model. Compared to an accuracy or F1 score, it tells us much more about the type of mistakes the model makes. However, confusion matrices are confusing. In spite of its ubiquity, novices and experts alike make mistakes in telling apart the true’s from the positives, and false’s from the negatives.

In this project, your task is to systematically evaluate the alternative methods of visualizing the performance of a machine learning model, and design your own interactive visualization of model performance.

Additional information


Decision rule visualization (project 12) - DC

A decision rule is a simple IF-THEN statement that can be helpful to briefly summarize the relationship between feature values and a potential predicted outcome. They have recently regained interest due to their simple and interpretable nature. If we want to understand how a model makes prediction (in addition to achieving good predictions) they may still be a better option than complex neural networks.

The visual representation of decision rules remains relatively unexplored. In this project, your task is to systematically evaluate the different ways of visualizing decision rules. We also challenge you to think of new visualizations for decision rules. How can we display many rules in a way that is not overwhelming? How can we effectively compare decision rules? Can we do better than just writing out the rules in text? This is a challenging project due to the open ended nature, and hence requires ambitious students that can work independently and quickly prototype and evaluate designs.

Additional information


Comparison of phylogenetic trees (project 13) - AB

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 14) - AB

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


Representation of electoral votes (project 15) - AB

Choropleth maps can be misleading in depicting the electoral vote distribution. Moreover, these mostly static images do not address temporal aspects (such as historical voting preferences), which can highlight and help to explain interesting differences in voting behavior between regions and states. The aim of this project is to explore new encodings to dynamically or interactively visualize election data that capture scale, geography and temporal aspects of voting. How can the user be guided to get a better idea about the candidate preferences and changes per geospatial region?

Additional information


Interactive Exploration of Dense Map (project 16) - LM

Dense map is a recent method to show decision boundaries of machine learning classifiers. In this project, you are expected to implement an interactive system to display dense map, and support the exploration of dense map and its corresponding original feature space.

Additional information


Hierarchical Time Series Data Visualization (project 17) - LM

There are various visualization designs typically for hierarchical data and time series data, respectively. In this project, you are expected to combine the visualization methods for these two different data types and implement an interactive visualization supporting hierarchical time series data.

Additional information


Detection and Visualization of fragmentation in hypnograms for several patients (project 18) - HGC

Sleep staging consists in assigning sleep categories during the sleep of a person. The result is the so-called hypnogram, a visual representation of the sleep during time. Fragmentation in sleep is a natural behavior that happens under certain circumstances or due to sleep disorders. For example, when one person does not sleep properly it can result in a fragmentation of REM stage. Detecting these situations is important to provide a good diagnosis. The aim of this project is to code an algorithm that detects fragmentation and to visualize the outcome of such alrogithm for a large set of patients in an informative way such as insights can be obtained.

Additional information