Horizon Detection using Segmentation and Clustering methods

IN PROGRESS
Bids
8
Avg Bid (USD)
$391
Project Budget (USD)
$30 - $250

Project Description:
The main objective of this project is to single out the horizon of a scene out at sea. The mentioned horizon is also known as the waterline that separates water from its background (be it forest or sky). It is proposed to achieve this through segmentation of the scene followed by the use of clustering methods to detect the horizon.

Different clustering methods can be employed. Among these are k-means or intensity-based. The proposed method employs light intensity gradients near the horizon line to detect the exact path where the water region meets the sky (or ground). A common element in horizon scenes is a small and thin region slicing the image in two sections near the horizon path. To detect the described regions near the exact horizon path in images, clustering is used as the main tool. By selecting the sufficient number of clusters, the region of interest can be extracted for further analysis and obstacle detection purposes.

Prior to clustering, pre-processing should be carried out. In an effort to minimize the effects of noise, sharp pixel intensity variations, and removal of false and invalid edges, the image should first be blurred using a Gaussian filter. Clustering is then carried out as the next step for detection of the region of interest. Two types of clustering is encouraged to be used: intensity-based and k-means.

Intensity clustering: This method attempts to cluster based on the pixel intensities. Intensity segmentation is usually performed by dividing the entire intensity spectrum into a fewer number of values through quantization. To further divide the image into distinct segments, similarly valued but non-connected clusters must be labelled as different clusters. To resolve this, connectivity labeling is employed. If two parts in an image share a boundary with non-zero area they are considered connected. Through each iteration of the re-labeling process using this method, the imae is converted to binary for each quantization level. The non-connected regions are subsequently detected and relabeled. The process of detecting and relabeling of the clusters for acquiring a uniquely clustered output image is carried out using the union find algorithm. As the final step of the clustering algorithm, the entire set of clusters and sub-clusters is relabeled from 1 to the sum of total sub-clusters available in the image.

K-means: K-means is a method for classifying a number of objects into a predefined number of clusters. The classification is based on the similarity of each object to the center point of each cluster. That means to say that the object which has the most similarity to the center point of the group is assigned to that cluster. First, a number of center points are selected at random. Then, each point is assigned to a cluster that its center point has smallest distance from the corresponding point. Next, the center points are updated. This updating is done by calculating the average of all current points in the cluster and considering the average as the new center point for that group. Subsequently, all the points are divided into new clusters with new centroids. This process is repeated until a certain convergence criterion is met. Finally, after clustering the image using the k-means method, the union-find algorithm is carried out to ensure unique clusters throughout the image similar to what was done with the intensity clustering technique.

After clustering, the cluster above the exact horizon path needs to be detected. Multiple investigations on clustered images show that the regions of interest maintain a common characteristic. This common feature is minimization of the number of pixels that are members of the region of interest cluster, stretching through the entire image from left to right. By increasing the number of clusters such that the region of interest cluster becomes thinner, this feature will become more apparent.

Images are captured and saved in .jpg extensions.

Skills required:
Electrical Engineering, Engineering, Matlab & Mathematica, PHP, Software Architecture
About the employer:
Verified
Public Clarification Board
Bids are hidden by the project creator. Log in as the employer to view bids or to bid on this project.
You will not be able to bid on this project if you are not qualified in one of the job categories. To see your qualifications click here.


$ 1800
in 45 days
$ 50
in 4 days
$ 250
in 4 days
$ 250
in 17 days
$ 200
in 15 days
Hire manupakaru
$ 125
in 7 days
Hire belgasoft2
$ 250
in 15 days
$ 200
in 10 days