Why Classification??
our algorithm is to divide the image into three parts(classes) we called them (Sky, Vertical, Ground) :-
Sky:- is the sky part in the image.
Vertical:- is any vertical object in the image like buildings, trees, any vertical objects.
Ground:- is the ground if it street or grass ,…
so we want to know how we can do orientation to the 3 classes in the 3D model so we do classification to know that.
okay, now we know why we do classification but what after segmentation??
after segmentation to the original image we have a list of the image segments, so we want to know for each segment what class that segment will belong to :-
and the expected output after classification is :-
Now which classifier that we use??
we know that there are a lot of classifiers :-
Supervised , Unsupervised, ..
but we use a Supervised Non-parametric Classifier K-Nearest Neighbor Classifier because a Supervised Parametric classifiers need to be knew the distribution that the features follow but in our case the image contain a lot objects and every one doesn’t has specific color or shape so we use a non- parametric classifier.
Which Features That You Want ????
if you are free
and have more from time you can get all this features:-
but, because it is a graduation project so we have to get the most powerful features that will get the satisfied output so we use :-
- Color:- we work on (R, G, B) the mean color the mean color of them but that is not enough and the output wasn’t satisfied
so we use another feature, - Location:- but how we can get the location for each segment ?? after we do segmentation we draw around each segment a rectangle and then the center of the rectangle is the segment position and this feature is so useful, but we will use another features to increase the performance of the classifier output.
A Trainable System Will Be More Flexible :-
yes, according to that we do our system to be trainable that’s mean that if an image is entered to our system and our system failed to classify it so as in the figure :-
the user should point by the mouse on the red target on the image (the segment location) then the feature vector will be created then the data will be added in our Data Set.
our output now:-
we will improve that output when we increase the number of powerful features.
Problems that we faced:-
- Location :- the size of the images (Width * Height) is not the same for all images so if we have a training data for a lot of image and every one has a different size and the input image that we want to classify it is in a different size so the location feature is not useful at all so the solution is to Normalize X,Y in the range between [0-1], Normalized X = (X/ W) , Normalized Y = (Y/ H).
- Classifier Accuracy :- we will increase it when we increase the number of the used features.
Another Classification Process,,, WHY ???
after dividing the image into three classes(sky, vertical, ground) we will do another classification process but only on the vertical class, because the vertical class may contain objects like buildings and they may be in the right or in the left or in the center to know where they exist we have to do classification to the vertical class .
on the red target on the image then
the feature vector will be created
and He/she can add sample
the selected samples.






