Projects should be done groupwise - in the same groups as for your homeworks.
All group members should have individual unique contributions to the project (which must be stated clearly in your final report), and yet, be aware of what the other group members did.
Your project work will be a research paper implementation, or your own idea. In any case, if you wish to have some feedback about the triviality or difficulty of your project, please speak to me or Suyash
Your project work may contribute to your thesis, but the work you submit for this course must be done in this semester. It should be a separate deliverable.
Project due date: week after finals. You will required to submit a report and appear for a viva during which you will demo your project, and answer questions about it.
The final report should clearly but briefly describe the problem statement, a description of the main algorithm(s) you implemented, a description of the datasets on which they were tested, a detailed description of the results followed by a conclusion including an analysis of the good and bad aspects of your implementation or the algorithm.
You may use MATLAB/C/C++/Java/Python + any packages (OpenCV,ITK, etc) for your project. But merely invoking calls to someones else's software is not substance enough. You should have your own non-trivial coding component. If software for the research paper you implement is already available, you should use it only for comparison sake - you will be expected to implement the paper on your own. Please discuss with me or Suyash if you need any clarifications for your specific case.
This year, each group will build an image compression engine, along the lines of the JPEG algorithm that will be taught in class very soon. The slides for
image compression are available here -- you can start reading them on your own. There are 15 marks for the project, out of which 8 marks will be awarded for a basic implementation
of the algorithm on grayscale images -- correctness and decent numerical results via the RMSE versus BPP curve. The expectation from the implementation are:
Computation of the 2D DCT coefficients of non-overlapping image patches (there exist implementations for this which you can use)
Implementation of the quantization step
Implementation of the Huffman tree (you can use an existing implementation or code on your own for more flexibility)
Writing the data to a file with a specific format you can decide on. Your program should be able to read the file and display the compressed image on the screen accurately.
You should simulate different quality factors and plots a graph of RMSE versus BPP for at least 20 different images. The RMSE stands for the relative root mean squared error between the original image and its compressed version. The BPP stands for the size of the image in bits divided by the number of pixels.
The remaining 7 marks will be awarded for some innovations on your part which include but are not
limited to the following:
An extensive comparison to an existing implementation of JPEG (either MATLAB or GIMP) in terms of experiments on different types of quantization matrices, Huffman table settings, or other parameter settings
Extensive experiments on color images apart from grayscale images
Implementation of a research paper from the list below
Thorough understanding of a research paper from the list below
Extensive comparison of your implementation to a PCA-based image compression technique on a class of images (eg: face images, vehicle images, etc.)
List of Research Papers on Image Compression
Using partial differential equations (PDEs) for image compression: M. Mainberger and J.Weickert, "Edge-Based Image Compression with Homogeneous Diffusion", CAIP 2009
C. Schmaltz, J. Weickert and A. Bruhn, "Beating the Quality of JPEG 2000 with Anisotropic Diffusion", DAGM 2009.
Osman Gokhan Sezer, Onur G. Guleryuz and Yucel Altunbasak, "Approximation and Compression With Sparse Orthonormal Transforms", IEEE Transactions on Image Processing, 2015
Haoming Chen and Bing Zeng, "New Transforms Tightly Bounded by DCT and KLT", IEEE Signal Processing Letters, 2012
A. K. Jain, "A sinusoidal family of unitary transforms", IEEE Trans. Patt. Anal. Mach. Intell., vol. 1, no. 4, pp. 356–365, Oct. 1979.
IEEE SIGNAL PROCESSING LETTERS, VOL. 16, NO. 10, OCTOBER 2009, "R-D Performance Upper Bound of Transform Coding for 2-D Directional Sources",
Shuyuan Zhu, Siu-Kei Au Yeung and Bing Zeng