Vous êtes sur la page 1sur 27

Adrito Sanyal 09109003009 Ankush Das 09109003018

Bimalendu Dolui 09109003032


Ranabir Ash 09109003073 Thesis submitted in partial fulfillment of the Requirements for the degree of Bachelor of Technology

Under the supervision of DIP KUMAR SAHA


From

This to certify that the project on Digital Image Processing submitted as per requirement for the degree of Bachelor of Technology in Electronics & Communication Engineering of West Bengal University of Technology is a bona fide research work carried out by Adrito Sanyal, Ankush Das, Bimalendu Dolui and Ranabir Ash under the sincere supervision of Mr. Dip Kumar Saha. It is further certified that no part of the project has been submit for any other degree.

Signature (HOD) Date:

Signature (Mentor) Date:

Topic Introduction Classification Supervised Unsupervised Image Segmentation K-Means Clustering Algorithm Input Process of Extracting Pixel Value Program Code Output Limitations of Code Video Tracking Video Tracking Algorithms Conclusion Bibliography

Page Number 4 5 6 7 8 9 11 13 15 19 21 22 23 25 26

Acknowledgement

27

Image Processing is a technique to enhance raw images received from cameras/sensors placed on satellites, space probes and aircrafts or pictures taken in normal day-to-day life for various applications.
Preprocessing Image Analysis

Image Acquisition

Knowledge Base

Recognition and Interpretation

Image Processing types:


Analog Image Processing: Analog Image Processing refers to the alteration of image through electrical means. The most common example is the television image Digital Image Processing: In this case, digital computers are used to process the image. The image will be converted to digital form and then processed.

The process of using samples of known informational classes (training sets) to classify pixels of unknown identity Identification and delineation of training areas is key to successful implementation Advantages:
Analyst controls the selected menu of informational classes or categories tailored for a specific purpose and geographic region Tied to specific areas of known identity Can evaluate results with additional training areas

Disadvantages:
Analyst imposes a classification structure on the data (may not match the natural spectral clusters that exist) Training data defined based on informational categories and not on spectral properties (may have important variation in forest) Careful selection of training areas is time and labor intensive Training areas may not encompass and subsequently represent special or unique categories that dont fit the information classes

The identification of natural groups, or structures/patterns, within multispectral data Spectral classes are defined by the computer through statistical clustering method; informational classes are assigned to output spectral clusters Advantages:
No extensive prior knowledge of the region required Opportunities for human error minimized Unique classes are recognized as distinct units Logistically less cumbersome

Disadvantages:
Natural groupings do not necessarily correspond nicely with desired information classes No control over the menu of classes and their specific id Spectral properties of informational classes vary over time, relationships between information and spectral classes change - make it difficult to compare unsupervised classes from one image/date to another

Image segmentation is the process of partitioning a digital image into multiple segments (sets of pixels, also known as superpixels). The goal of segmentation is to simplify and/or change the representation of an image into something that is more meaningful and easier to analyze. Image segmentation is typically used to locate objects and boundaries (lines, curves, etc.) in images. More precisely, image segmentation is the process of assigning a label to every pixel in an image such that pixels with the same label share certain visual characteristics. Some methods of Segmentation are:
Edge based Histogram based Split and merge methods etc.

Cluster analysis or clustering is the task of assigning a set of objects into groups, so that the objects in the same cluster are more similar to each other than to those in other clusters. k-means clustering is a method of cluster analysis which aims to partition n observations into k clusters in which each observation belongs to the cluster with the nearest mean. It is also referred to as Lloyd's algorithm, particularly in the computer science community.

Initially, the number of clusters must be known, or chosen, to be K say. The initial step is the choose a set of K instances as centres of the clusters. Often chosen such that the points are mutually farthest apart, in some way. Next, the algorithm considers each instance and assigns it to the cluster which is closest The cluster centroids are recalculated either after each instance assignment, or after the whole cycle of re-assignments This process is iterated.

Given an initial set of k means m1(1),,mk(1) (see below), the algorithm proceeds by alternating between two steps:

Assignment step: Assign each observation to the cluster with the closest mean

() = *

1 +

Where each goes into exactly one () , even if it could go in two of them.

Update step: Calculate the new means to be the centroid of the observations in the cluster 1 (+1) = () ()

The algorithm is deemed to have converged when the assignments no longer change

10
10

9
9

8
8

7
7

6
6

5
5

4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10

4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10

EXAMPLES:
10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10

10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10

Strengths Relatively efficient: O(tkn), where n is # instances, c is # clusters, and t is # iterations. Normally, k, t << n Often terminates at a local optimum. The global optimum may be found using techniques such as: simulated annealing or genetic algorithms. Weakness Applicable only when mean is defined Need to specify c, the number of clusters, in advance Unable to handle noisy data and outliers Not suitable to discover clusters with non-convex shapes.

To implement the algorithm of K means clustering, we have to first take an input image and some pixel values from that image which need to be clustered . So in the figure we have shown, some star marks are visible, which actually indicates the points of which we want to take the pixel values. We have taken 30 different points. We have used MATLAB to take these pixel values from the image

In the previous slide we have shown the list of pixel values that we have got from the marked points of the image shown in the earlier slide. We can get these values by doing some simple MATLAB operations. In the command window we have to write:a=imread(address of the image/image.jpg) ;*reads the image from the given location and stores it to variable a+ Imshow(a);*shows the stored image a+ vals=impixel;*gives the user option to choose points from the image a . The pixel values of those points is stored in vals.+ After this we can save vals in a .mat file*the snapshot of vals is shown in d previous slide]. Now we have to copy the pixel values to a .txt file(here matlab2.txt) so that our program can read that file

The pixel values from the .mat file is copied to .txt file, which is the input of our actual code

In the next step a code is written in C language to cluster these pixel values. The .txt file which contains the pixel values is taken as input of the program. The full code is as follows:

Thus we have got a text file named Group.txt, which will be created in the bin folder of the compiler. This file will contain all the pixel values which have been clustered or grouped properly following the principles of K-Means Clustering by this code.

The following file is created when the number of centroids are given as 4

First and the most important limitation of this code is that the number of centroids is taken manually . That means the code itself can not decide how many centroids are preferable for the given input . Although it can cluster the input pixel values into any number of groups(given by the user). Secondly , dynamic memory allocation is not done here. So, we have limitations on the number of input pixel values. Lastly , we can not take the .mat file as the input of the code . We have to copy that to a .txt file because the program can not read .mat file.

Video tracking is the process of locating a moving object (or multiple objects) over time using a camera. It has a variety of uses, some of which are: human-computer interaction, security and surveillance, video communication and compression, augmented reality, traffic control, medical imaging and video editing. Objective: The objective of video tracking is to associate target objects in consecutive video frames. The association can be especially difficult when the objects are moving fast relative to the frame rate. Another situation that increases the complexity of the problem is when the tracked object changes orientation over time. For these situations video tracking systems usually employ a motion model which describes how the image of the target might change for different possible motions of the object.

To perform video tracking an algorithm analyzes sequential video frames and outputs the movement of targets between the frames. There are a variety of algorithms, each having strengths and weaknesses. There are two major components of a visual tracking system: target representation and localization and filtering and data association. Target representation and localization is mostly a bottom-up process. These methods give a variety of tools for identifying the moving object. Locating and tracking the target object successfully is dependent on the algorithm.. The following are some common target representation and localization algorithms: Blob tracking: segmentation of object interior (for example blob detection block-based correlation or optical flow) Kernel-based tracking (mean-shift tracking): an iterative localization procedure based on the maximization of a similarity measure (Bhattacharyya coefficient) Contour tracking: detection of object boundary (e.g. active contours or Condensation algorithm)

Filtering and data association is mostly a top-down process, which involves incorporating prior information about the scene or object, dealing with object dynamics, and evaluation of different hypotheses. These methods allow the tracking of complex objects along with more complex object interaction like tracking objects moving behind obstructions. The following are some common filtering algorithms: Kalman filter: an optimal recursive Bayesian filter for linear functions subjected to Gaussian noise Particle filter: useful for sampling the underlying state-space distribution of nonlinear and non-Gaussian processes.

With the synopsis of the project coming to an end, we have come to learn about Array Management and its resulting programming in C language. We have also learnt more about Digital Signal Processing and its application in the field of Image Processing and how to apply the algorithm to K-Means Clustering. We have known more about Video Tracking and its Analysis

Bibliography

Mapping European Seabed Habitats (MESH) http://www.searchmesh.net Kahlid Soofi, ConocoPhillips, Satellite Remote Sensing Lecture, 2005 Sang Chul Ahn, Digital Image Processing, 2007

K.M.M. Rao, Introduction to Image Processing


Digital Image Processing - A Remote Sensing Perspective, Jhon R. Jenson, 3rd Edition, Prentice Hall, 2003 Fundamentals of Image Processing by Raphael C. Gonzalez, Richard E. Woods, Steven L. Edins

Acknowledgement
We are extremely grateful to our mentor Mr. Dip Kumar Saha who guided us admirably towards completion of the synopsis of our project.

Vous aimerez peut-être aussi