Article Preview
Top1. Introduction
In the field of image processing, image mosaicing, also known as panoramic imaging is the process of finding the exact overlapping area between two images and combining them to form a single image (Sharma, et al., 2013). The main step of image mosaicing is the stereo pairs matching, which is finding pairs of points in the two images that refer to the same vision. After finding these points and determining the overlapping region, the stitching process of the two images in one image is performed.
Most of the mosaicing algorithms are constructed to mosaic only two images, but nowadays the need of mosaicing sequence of images has increased and become one of the important topics in the image processing field. For example, it can be used to build a full map of a country for the purpose of a virtual tour. The process of mosaicing images comprises four steps: feature extraction, finding the corresponding points, establishing the homography between those points, and finally stitching the images in one image (Murali, & Madanapalle, 2012; Cho, YunKoo & Jaeyeon, 2003) . The extraction of the stereo pairs is called image alignment. There are different methods to implement image alignment such as the correlation that uses the pixels values in each image (Kim, & Jeffrey, 2004), the frequency domain coefficient (Reddy, Srinivasa & Biswanath, 1996), corner or edge detection (Rocha, Ricardo, & Aurélio, 2000), features description that use high level feature to match the images (Szeliski, 2010) and binary edge detection (Aljarrah, et al., 2014).
Mosaicing sequence of images takes a long time to produce the final image when the mosaic algorithm is implemented on a single node because most of the image processing algorithms deal with every single pixel in the image (Giess, et al., 2014). Consequently, there is a need to parallelize the mosaic algorithm to speed-up the computational time and reduce the waiting time.
Cloud computing is a new computing paradigm that dynamically provides various resources using self-services over the internet in a pay-as-you-go basis. It allows on demand dynamic provisioning of infrastructure, platform, and software resources from any location over the world (Plummer, et al., 2008). Clouds can be classified as public, private, and hybrid. Cloud computing can offer Hardware as a Service (HaaS), Software as a Service (SaaS), and Platform as a Service (PaaS) (Plummer, et al., 2008). It provides a good solution to distribute the computations on a set of nodes.
There are many techniques to distribute and collect data among different nodes in the cloud; MapReduce is considered as one of the most widely used techniques (Yamamoto, 2012). MapReduce is a programing model used for processing large data set, which consists of three main steps: map, shuffle, and reduce. In MapReduce, the data is distributed to all mappers and each one works alone.
After the mappers complete their work, the results are sent with their keys to the reducer, which will produce the final result. There are many ways to exchange data between mappers and the reducer and one of these ways is Message Passing Interface (MPI) (Barney, 2009). It is a library designed for message passing between different nodes in a parallel computing environment.