CS555/455讲解、辅导JAVA/python程序设计、讲解Pattern Recognition
- 首页 >> Python编程CS555/455 Fall 2018
Assignment 5
Due on Nov. 26 (by 11:59pm)
Programming Part A: Pattern Recognition (60%)
Description: Nearest neighbor (NN) classifier and k-means clustering are two typical algorithms for pattern classification. In this assignment, you are to apply these algorithms to classify the objects based on the intensities of a given image.
Your implementation:
(1)Obtain image I (same as the one used in the assignment 4)
(2)Divide I into 4x4 disjoint subimages. Consider each subimage as a 16 dimensional pattern vector. Use the pattern vectors at the upper half of the image for training and use the lower half of the image for testing. Among the training patterns, manually group the training patterns into three clusters (classes) and attach a class label (e.g., certain gray level 0, 128, 255) to each pattern, produce image M1. For example, you may group the training patterns into three types of classes based on the average gray level G of 4x4 block:
a.Class 1: 0 <= G < 125
b.Class 2: 125 <= G < 175
c.Class 3: 175 <= G <= 255
(3)Perform NN classification of the testing patterns.
Testing patterns are classified by NN classification. Replace each testing vector with the corresponding class label, produce image N1.
a.Replace each testing vector with the training vector, produce image N2.
b.Replace each testing vector with the average value of the corresponding training vector, and produce image N3.
c.Replace each testing vector with the average of the corresponding class, and produce image N4.
(4)Perform the manually grouping (like (2)) onto the testing patterns, produce image T1, compare N1 and T1, and compute the error rate E of the testing patterns.
(5)Perform the k-means clustering algorithm onto the upper-half of the image I, obtain image K1, which shows three classes with three labels (e.g., 0, 128, 255).
(6)Your write-up should include a brief description of the algorithm implementation, and the resulting images M1, N1-N4, T1, K1, and error rate E.
Points distribution:- Programming: M1 (6%) N1- N4 (24%) T1(6%) E (6%)
K1 (11%), Write-up (7%)
Programming Part B: (40%) Motion Compensation and Tracking
Description: Video image processing requires the motion estimation of moving objects. This part of the assignment is to design an algorithm to use block-based motion detection and compensation approach to track motion vectors of the objects in a given video sequence.
Requirement (40%): Design an algorithm to estimate motion vectors of a video sequence (e.g., using 8*8 block). You are required to (1) show your algorithm, the resulting motion vectors across image frames; (2) Show the difference of two frames; (3) Show the compensated difference of the two frames.
(Optional Extra Point: 20%) Design an algorithm using Optical Flow to track the motion (image flow of all pixels) of the video sequence and display the image flow.
First Test frames
Second Test frames
Optional Programming Part C: Optional Extra Points (20%)
Requirement: Design an algorithm to represent an image (i.e., the first image of the first row in Part D) using a wavelet transform with a pyramid structure. Then compress the image using the wavelet transform. You are required to show your algorithm, demonstrate the resulting compressed image, and calculate the mean square error between the compressed image and the original image.
Optional Programming Part D: Texture Pattern Classification (extra points 20%)
Description: In this part, you are required to design an algorithm to classify the image (shown below) into three classes (or three patterns).
This image shows three patterns (or classes) as follows:
Class 1 Class 2 Class 3
Your program should be able to
(1) detect the boundary of the group cell (see an example of above image);
(2) classify and label the above three classes automatcially.
Hint:
(1)Apply color information, morphological operation, and/or edge detection to process the image.
(2)For above three classes, each one has its unqiue feature (e.g., average, variance, DCT components, histogram, grey scale texture, edges, or wavelet components, etc.) You may consider using those features as a template to match the features in the image.
The image could be dividied into a set of small blocks (e.g., 8*8, 16*16, etc.) you may consider classify each block to one of the three classes based on the above-mentioned unique features using the Nearest Neighbor calssfier.