=Paper=
{{Paper
|id=Vol-1981/paper5
|storemode=property
|title=Seam Line Optimization for Remote Sensing Image Mosaicking Based on Graph Shortest
Path Finding
|pdfUrl=https://ceur-ws.org/Vol-1981/paper5.pdf
|volume=Vol-1981
|authors=Andrew Sudorgin
}}
==Seam Line Optimization for Remote Sensing Image Mosaicking Based on Graph Shortest
Path Finding==
Seam Line Optimization for Remote Sensing Image Mosaicking Based on Graph Shortest Path Finding Andrew Sudorgin Joint-Stock Company Research Institute of Precision Instruments (JSC RI PI) Moscow, Russia andrew.sudorgin@gmail.com Abstract and, in some sense, contradictory restrictions on the behavior of the seam line are superimposed in the Seam line determination is important step of construction of photographic plans and mosaic of im- remote sensing image mosaicking. Automatic ages: a seam line must not cross high-altitude objects, seam line selection problem using graph short- seam line must cross linear objects perpendicularly est path finding is discussed in this paper. and should be inside low-informativeness areas [1]. It Approaches to graph construction from image is not easy task to satisfy all those criteria completely, similarity cost function, graph memory lay- especially when editing by hand. out and parallel seam line optimization using shortest path on graph are presented. 2 Related Work Keywords: remote sensing data processing, There are some different approaches for seam line cre- image mosaic, seamless coverage, optimiza- ation: tion • Draw seam line along image borders (no optimiza- tion); 1 Introduction • Central image area maximization; Acquisition of holistic image of a certain territory in • Draw seam line inside areas with maximum simi- the form of a mosaic from various (in the sense of ge- larity. ometry and brightness-contrast) separate images is an Draw seam line along image borders is used when there important problem when processing satellite and aerial are no quality demands to resulting image mosaic, or photos. Wide range of remote sensing equipment with there are strict time limitations. Since brightness and unique spectral sensitivity, variation of angle of view, geometrical distortions of remote sensing images are position of the Sun and atmosphere condition, non- minimal in their central areas we can draw seam line simultaneous image acquisition cause unique deforma- as close to image center as possible using Voronoi poly- tion of the image of object of interest. Such a large gons [2]. This approach is helps to avoid of image number of negative factors means that it is practically margin brightness inequality and to include central ar- impossible to compose the images, both from a geo- eas with minimal geometry distortions to final mosaic. metric point of view, and from the point of view of However, the first two approaches completely do not radiometric conditions. One of the solutions of the take into account the properties of the input images. described problem when seamless mosaic is created is Optimal seam line detection methods are based on optimal seam line detection within overlapping image the search of the pixels with minimal differences in regions. brightness, gradient and some other parameters which To obtain a visually qualitative result that does are calculated from the image overlap regions (inter- not introduce distortions into the information, strict sections of image pairs in coordinate system of an out- put image). Seam line being determined is a base Copyright c by the paper’s authors. Copying permitted for private and academic purposes. for united mosaic from several initial images. In this In: V. Voevodin, A. Simonov (eds.): Proceedings of the case the visual divergence is significantly eliminated. GraphHPC-2017 Conference, Moscow State University, Russia, Many approaches bring optimal seam line determi- 02-03-2017, published at http://ceur-ws.org. nation problem to energy function minimization. In 1 some articles normalized cross correlation (NCC) [3,4], where I0 (x, y) and I1 (x, y) denote the brightness on texture analysis [6, 7], image differences [6], morpho- the first and second overlapping images in the (x, y) logical analysis [8] are suggested as a energy func- position (here and later we assume that (x, y) is a tion. In order to create energy cost function some pixel coordinates (row/column) of input images in authors also use vector roads graph [9] and digital sur- coordinate system of output mosaic and all geome- face model [10]. The following algorithms are used try transformations, including nonlinear ones, already as optimization: snake model [6, 11], Dijkstra‘s algo- have been done at geometry align step). rithm [3,4,5], Floyd-Warshall algorithm, dynamic pro- To define informativeness matrix Wi Moravec [19] gramming, graph cuts [12, 13]. algorithm is used. According to this algorithm, we Even though in practice, graph cuts algorithms calculate the changes in the average brightness value have computational complexity close to linear [14, 15] of the image of a small fragment around the point of and there are parallel approaches that allow process- interest when the fragment is shifted by one pixel in ing graphs that are larger than the available RAM four directions (horizontal, vertical and diagonal) and [16], they remain relatively slow, since a much larger choose among them the minimal value, which is the amount of RAM is required for the solution. For ex- measure of the informativeness of the image. Thus, ample, one of the fast realizations of the graph cut al- fragments of the image with a small brightness vari- gorithm requires memory several times more than the ation are marked as low-informative, and with high graph itself takes, since it is required to store and pro- variation, as highly informative. Total informativeness cess not only edge weights, but also forward/backward Wi (x, y) is the sum of each overlapping image informa- edge capacity and other auxiliary values [17]. tiveness. By drawing a seam line in places with a low Due to the fact that the solution of optimization value of the Moravec’s operator of interest, we will sat- problems on graphs is associated with high computa- isfy the requirement [1] of carrying out the seam line tional complexity, a number of authors try to simplify in places of image with low informativeness. the structure of the graph, leading to a reduction in In order for the seam line to cross the line objects the time of solving the problem at the cost of a slight along a line close to the perpendicular and not inter- degradation in quality [18]. sect the high-altitude objects, we introduce the matrix The main contribution of this paper is a new ap- of forbidden zones. To create forbidden zone matrix proach to seam line optimization with low memory Wr (x, y) we rasterize vector lines and polygons, which consumption and a high degree of parallelism. represent linear extensive and high-altitude objects, using specially defined penalty coefficients for cross- 3 Approach to Seam Line Optimiza- ing those objects. Due to the fact that the seam line tion receives an additional penalty when crossing objects marked in matrix Wr (x, y), the optimization algorithm To achieve a visual invisibility of the seam line the will try to bypass such objects or cross them along the value of the pixels of overlapped images must coincide line of the minimum possible length, that for thin elon- at points with the same coordinates in geographic co- gated objects (roads, rivers) will be perpendicular. ordinate system (or coordinate system of output image Resultant energy function defined as a weighted for non georeferenced mosaic). Seam line optimization sum of the particular matrices: is one of steps of remote sensing image mosaicking. Normally, it follows after geometry alignment and ra- W (x, y) = αWs (x, y) + βWi (x, y) + γWr (x, y), (2) diometric correction of input images. We expect that where α, β, γ are the weighting coefficients, which de- these two steps have already been correctly done, but fined each matrix contribution. In most cases, we can not ideally due to some reasons and we need to elimi- choose all weights to be the same, but if one wants to nate the remaining visual inconsistencies. amplify one of the constraints, the corresponding co- efficient can be increased. For example, if the visual 3.1 Energy Cost Function similarity of images is more important to us, then we In this article to create optimal seam line we propose increase α, and if it is more important for us to draw to build energy cost function comprised of three func- the seam line in places with low informativeness, then tions: the image similarity matrix Ws , the image infor- we increase the β coefficient, if we want to completely mativeness matrix Wi and the forbidden zone matrix prohibit the intersection of linear and high-altitude ob- (linear extensive, high-altitude and other visually ob- jects, we can set the coefficient γ close to infinity. vious foreground objects). The similarity matrix Ws Thereby, seam line, which was delineated along the is calculated as follows: path with minimal energy cost sum, meet the seam line principal criteria: do not intersect high-altitude Ws (x, y) = (I0 (x, y) − I1 (x, y))2 (1) objects, linear objects should be intersected along the 2 shortest distance (perpendicularly), and the other ob- where first term is a memory amount to store graph ject should be intersected in the areas with maximum nodes, second term is memory amount to store graph similarity and minimum informativeness. edge pointers and third term is memory for edge weights, SP tr is node/edge pointer size (usually 4 or 8 3.2 Graph Data Structure Design byte), Se is size of edge weight. For optimal seam line determination we define energy When we store and use the graph in the described function as weighted graph. Each node of the graph implicit way, it is possible to reduce memory usage by SP tr +SP tr Pconn +Se Pconn represents corresponding energy function matrix ele- Se times. When 8 byte pointers ment. Let us connect all graph nodes to their neigh- and eight- connected graph are used, it is possible to bors, here we have two options: four- and eight- con- reduce the RAM usage by a factor of 44 in comparison nected graph (Figure 1). We define the weight of the with the CSR graph storage type. edge between energy matrix cells (x1 , y1 ) and (x2 , y2 ) With this approach to storing the graph and when as the sum of weights in the corresponded nodes mul- combined with the block method of storing the energy tiplied by the distance between them: matrix W (x, y) in memory, the processor cache is more efficiently used, since when a graph is traversed, most ω(x1 y1 → x2 y2 ) = nodes connected by edges are in the adjacent memory p cells. [W (x1 , y1 ) + W (x2 , y2 )] (x1 − x2 )2 + (y1 − y2 )2 Moreover, the block storage of the energy matrix (3) W (x, y) allows us to calculate and load matrix blocks Thereby energy function matrix of M × N size is rep- as we use at the optimization algorithm, which further resented by flat graph consisted of M N nodes and reduces the algorithm’s requirement for the amount of Pconn M N edges (where Pconn is a connection amount memory and allows us to process images larger than of energy matrix elements). Such a construction of the the available RAM. graph allows us not to store the graph explicitly, but to build it as necessary from the energy matrix on the 3.3 Hierarchical Processing fly. Typical satellite image size is about 50000 × 100000 pixels. When seam line between two images is created, we deal with the graph of 109 nodes and 1010 edges. To avoid processing the entire array of data, we apply a hierarchical approach to image processing. In the first step, we construct optimal seam line at the overview level of the original images (Figure 2). To do this, we calculate the coordinates of the points of intersection of the image frames in the coordinate sys- tem of the output image (Vb and Ve ), read input images from the overview levels of detail, build a coarse en- a) Four-connectivity b) Eight-connectivity ergy matrix and run the optimization process between Figure 1: Four- and eight-connectivity of the pixels the graph nodes corresponding to the points of inter- used to create energy function graph in the overlapped section of the image frames. As a result, we obtain image regions a coarse approximation of the seam line (blue poly- line with black vertices). In the case where the image Let us consider in more detail. The amount of frames are not convex polygons and the intersection memory required to store the energy function matrix result is a multipolygon, each part of the multipoly- W (x, y) is: gon is processed independently. Sw = Se M N, (4) In the second step, we will refine the seam line be- where Se is the size of one matrix element. Major- tween the vertices of the seam line obtained on an ity of the Earth remote sensing photos are 16 bit per overview scale. To do this, we construct the fine en- channel images, therefore it is reasonable to use similar ergy matrix using fragments of input images from the approach to energy matrix storage data type (Se = 2). detailed level and perform the optimization process The amount of memory required to store the graph ex- again, taking as the initial and final nodes of the graph, plicitly in the form of compressed sparse row matrix those that correspond to the vertices of the coarse seam (CSR) is: line. Note that to carry out the optimization, it is not necessary to build the entire energy matrix W (x, y), Scsr = SP tr M N + SP tr Pconn M N + Se Pconn M N, (5) but only the part that is near the coarse approxima- 3 Image #1 Image #2 Ve Image blocks that is being processed Refinement area around overview seam-line Seam-line obtained on an overview scale Seam-line obtained on a detailed scale Vb Seam-line refined on a detailed scale Figure 2: Optimal seam line determination for two overlapped images tion of the seam line. Moreover, each image fragment can be processed in parallel. Data: W (x, y), Vb , Ve But the new seam lime will have fractures near the Result: S - optimal seam line vertices vertices of the coarse seam line, because end point ver- 1 D.f ill(inf); P.f ill(inf); tices of seam lime, are rigidly fixed. To eliminate un- 2 D[Vb ] ← 0; wanted fractures, we will carry out the third stage of 3 QM LB .insert(0, Vb ) the seam line refinement on a detailed scale. To do 4 while QM LB not empty do this, we will take as a initial and final nodes of the 5 c ← q.extractM in() graph, those that correspond to the midpoints of the 6 for p = 0; p < Pconn ; ++p do segments, obtained in the second step, and we will per- 7 n ← c + Ap form optimization again. Thus, we obtain a seam line, 8 // Compute edge weight according to (3) unnoticeable both at the detailed and at the overview 9 ω ← (W (cx , cy ) + W (nx , ny ))length(Ap ) scale (Figure 2). 10 d ← D(cx , cy ) + ω 11 if d < D(nx , ny ) then 3.4 Optimization 12 if P (nx , ny ) is not set then 13 q.insert(d, n) For optimization we use the shortest path Dijkstra‘s 14 else algorithm [20] with the Goldberg modification [21]. 15 q.decreaseKey(d, n) The best implementation of Dijkstra’s shortest path 16 end algorithm with Fibonacci heap has a running time 17 D(nx , ny ) ← d O(m + nlog(n)), where n is graph node count, m is 18 P (nx , ny ) ← p graph edge count. Goldberg’s shortest path algorithm 19 end with multi-level bucket has an average running time that is linear, and a worst-case time of O(m+nlog(C)) 20 end 21 end where C is a ratio of the biggest graph edge weight 22 S ← turnBack(P, Ve ) to the smallest nonzero graph edge weight. Since the graph constructed from the energy matrix has a re- Algorithm 1: Pseudo code of the optimization al- striction on the maximum weight of the edge, this gives gorithm taking into account structure of the graph us a significant advantage in the running time. 4 Implementation details taking into account the pro- Data: I1 - first image, I2 - second image posed structure of the graph are given in the Algorithm Result: S - optimal seam line vertites 1. The input data for the algorithm are energy func- 2 O1 , O2 ← readImageOverview(I1 , I2 ); tion matrix W (x, y) and Vb , Ve – start and end points. 3 Vb , Ve ← computeIntersectionP oints(I1 , I2 ); Note that the coordinates of the corresponding mo- 4 Wcoarse ← computeEnergy(O1 , O2 ); saic pixels are used as pointers to the nodes of the 5 Scoarse ← shortestP ath(Wcoarse , Vb , Ve ); graph. In addition to the input data, the algorithm 7 B ← splitP athT oBlocks(Scoarse ); uses several important internal structures. D(x, y) is 9 for step = 2; step <= 3; ++step do distance the matrix from the start node to each other. 11 #pragma omp parallel for The matrix D(x, y) must have a data type that allows 12 for i = 0; i < B.size(); ++i do storing the sums of the elements of the matrix W (x, y) 13 box ← computeBoundingBox(Bi ); without overflowing. If we assume that the size of 14 Vb , Ve ← computeEndP oints(Bi ); the element of matrix W (x, y) is equal to two bytes, 16 begin #pragma omp critical then the size of the elements of matrix D(x, y) must 17 F1 , F2 ← readF ineImage(I1 , I2 , box); be equal to four or eight bytes. A is a possible arc list, 18 end for four-connectivity case A4 = [←, →, ↑, ↓], and for 19 Wf ine ← computeEnergy(F1 , F2 ); eight-connectivity case A8 = [←, →, ↑, ↓, %, &, -, .], 20 Sf ine,i ← shortestP ath(Wf ine , Vb , Ve ); according to Figure 1. P (x, y) is node’s parent ma- 21 end trix. Since the graph has an ordered structure and 23 S ← constructP athF romSegments(Sf ine ); each node has four or eight neighbors, we can use the 24 if step == 3 then arc number in array A as a pointer to the adjacent 25 break; node. Thus, no more than one byte is needed to store 26 end the element of the matrix P . QM LB is a multi-level 27 B ← splitP athT oBlocks(S); bucket data structure. According to the calculations 28 end in the paper [21], the structure of QM LB requires no 29 return S; more than O(log(C)) words of memory. Thus, the Algorithm 2: Simplified pseudo code of parallel hi- total amount of memory necessary for seam line op- erarchical seam line optimization timization consists of memory sizes for the matrices W (x, y), D(x, y) and P (x, y), the size of the structure 4 Results QM LB , can be neglected since log(C) is much smaller Several datasets were used to test hierarchical seam than the size of the graph in our case. line optimization algorithm: • Colored (RGB) 8-bit per channel middle resolu- tion images acquired by Landsat-8 satellite sys- tem 16000 × 16000 pixels each (Figure 3); 3.5 Parallel Implementation • Colored (RGB) 8-bit per channel high resolution images acquired by aerial camera 4368×2912 pix- els each with roads digitized (Figure 5); We divide the problem into a number of blocks, while • Panchromatic 16-bit high resolution images ac- refining the seam line on detailed level, this allow us quired by Resurs-P satellite system 36000 × to process unlimited amount of data and perform par- 105000 pixels size. allel optimization in each individual blocks of infor- mation. OpenMP [22] library is used for parallel data The first and second datasets were used to study the processing. Implementation details are presented in visual quality of the algorithm, and the latter was used Algorithm 2. Coarse step is done at lines 2-7. After to estimate the performance. the end of the first step, we divide the received coarse Algorithm was tested on a workstation equipped seam line into blocks and perform the second and the with a quad-core Intel Core i7 processor and 8 GB third steps (line 9) of parallel refinement of seam line RAM. (lines 11-23). Due to the fact that the sizes of the im- Figure 4 shows the output mosaic obtained using age fragments corresponding to the blocks of the coarse the hierarchical seam line optimization algorithm, it seam line depend on the shape of the line segment, we can be seen that the seam line is practically indistin- use the dynamic partition of the problem into parallel guishable both on a coarse scale and on a fine scale. blocks (line 11). Note, that parallel reading of image The result of the algorithm on high resolution images data from the disk leads to a decrease in performance, using a vector layer of roads as forbidden zones is this operation is separated to the critical section (line shown in Figure 6. It can be seen that the seam line 16). crosses the roads as perpendicular as possible. But 5 Figure 4: Output Landsat-8 mosaic (29140×16764 pix- Figure 3: Middle resolution Landsat-8 images dataset els size) overview with optimal seam line highlighted Figure 5: High resolution aerial image dataset with Figure 6: Output mosaic of aerial images with a seam roads digitized line that bypasses the roads in the optimal way à à 100 8 Processing time HsL Processing time HsL æ 80 6 60 æ 4-conn. æ æ 4-conn. à à 8-conn. 4 à 8-conn. 40 à à 20 æ 2 à à æ à à æ 0à æ æ æ æ 106 107 108 109 10 6 10 7 10 8 109 Nodes ð Nodes ð a) b) Figure 7: The dependence of the time of optimal seam line constructing on the number of vertices in the graph, representing the energy function, (a) one processor with loading entire energy function matrix into memory (RAM), (b) the proposed algorithm 6 additional restrictions on the seam line in the form of ict.edu.ru/lib/index.php?id_res=4503 forbidden zones lead to the fact that near the zone, (accessed:10.10.2017) the visual similarity of images on the different sides of the line is lost. [3] Chon J., Kim H. Seam-line determination for image mosaicking: A technique minimizing The dependence of the time for optimal seam line the maximum local mismatch and the global constructing on the number of vertices in the graph is cost. ISPRS Journal of Photogrammetry and shown in the Figure 7. Remote Sensing, No. 65 (1), 2010. pp. 8692. The construction of the seam line for maximum https://doi.org/10.1016/j.isprsjprs. size graph, with one-processor version with full data 2009.09.001 (accessed:10.10.2017) loading into memory was not performed due to high consumption of memory. As studies have shown, [4] Chon J., Wang J., Slankard T., Ristevski when constructing an eight-connected graph, the vi- J., High-Quality Seamless Panoramic Im- sual quality of the seam line is somewhat higher, be- ages. Special Applications of Photogramme- cause it includes diagonally oriented edges, but the try, ed. Dr. Daniel Carneiro Da Silva, 2012, processing time increases due to the increase in the InTech http://cdn.intechopen.com/pdfs/ number of edges in the graph and the non-integer 36193.pdf (accessed:10.10.2017) weight of the diagonal edges. Also on the Figure 7b it is seen that for the size of graph 109 nodes the pro- [5] Zhao Y., Han T., Feng S., Miao C., Re- cessing time sharply increases, which is due to the pre- mote Sensing Image Mosaic by Incorporating dominance of the time of data loading from the hard Segmentation and the Shortest Path. In: drive over the optimization time. Bian F., Xie Y., Cui X., Zeng Y. (eds) Geo- Informatics in Resource Management and Sustainable Ecosystem. Communications in 5 Conclusion Computer and Information Science, vol 398. In this paper the approach to construct an optimal Springer, Berlin, Heidelberg, 2013 https:// seam line for the Earth remote sensing image mosaic, doi.org/10.1007/978-3-642-45025-9_67 based on the graph shortest path finding is presented. (accessed:10.10.2017) The construction of an energy function matrix taking [6] Kerschner M., Twin snakes for determining into account both informativeness and similarity of in- seam lines in orthoimagemosaicking. // put images is discussed. Graph data structure design IAPRS, Vol. XXXIII, Amsterdam,. 2000. pp. from an energy matrix is presented, which makes it 1-8. http://geo.tuwien.ac.at/fileadmin/ possible to reduce the amount of RAM. The hierarchi- editors/IPFpublications/mk_isprs2000/ cal parallel implementation of the optimization algo- paper725.pdf (accessed:10.10.2017) rithm is presented with regard to the proposed graph data structure. The amount of RAM required for the [7] Adrov V.N., Drakin M.A., Sechin A.Y., High optimization process is estimated. performance photogrammetric processing on The proposed hierarchical image processing ap- computer clusters. // International Archives proach not only allows us to reduce a seam line con- of the Photogrammetry, Remote Sensing struction time, but also to make seam line unnoticeable and Spatial Information Sciences, Volume both at the detailed and at the overview scale of the XXXIX-B4, XXII ISPRS Congress. Mel- output mosaic. Using proposed approach, the time for bourne, Australia. 25 August 01 September optimal seam line creation was reduced by more than 2012. pp. 109-112. http://dx.doi.org/10. 10 times, which make it possible to produce seamless 5194/isprsarchives-XXXIX-B4-109-2012 image mosaic with minimal CPU time usage. (accessed:10.10.2017) [8] Bielski C., Grazzini J., Soille P., Automated References Morphological Image Composition for Mosaic- ing Large Image Data Sets. // Spatial Data [1] Federal Service of Geodesy and Cartography of Infrastructures Unit Institute for Environment Russia., Instruction on photogrammetric work and Sustainability DG Joint Research Centre, in the creation of digital topographic Maps and European Commission I-21020 Ispra, (Va), plans, Moscow, 2002. Italy. pp. 1-4. https://doi.org/10.1109/ IGARSS.2007.4423743 (accessed:10.10.2017) [2] Skvortsov V.A., The Delaunay Trian- gulation and Its Applications. Tomsk. [9] Wan Y., Wang D., Xiao J., Lai X., Xu J., Univ. Press, 2002. 128 p. http://www. Automatic determination of seamlines for 7 aerial image mosaicking based on vector roads [16] Y. Boykov and A. Delong, A Scal- alone. // ISPRS Journal of Photogrammetry able Graph-Cut Algorithm for N-D Grids. and Remote Sensing, No. 76, 2013. pp. 1-10. In IEEE Conference on Computer Vision https://doi.org/10.1016/j.isprsjprs. and Pattern Recognition (CVPR), Anchorage, 2012.11.002 (accessed:10.10.2017) June 2008 https://doi.org/10.1109/CVPR. 2008.4587464 (accessed:10.10.2017) [10] Chen Q., Sun M., Hu X., Zhang Z. Automatic Seamline Network Generation for Urban Or- [17] F. R. Schmidt, E. Toppe, D. Cremers, thophoto Mosaicking with the Use of a Dig- Efficient Planar Graph Cuts with Applica- ital Surface Model. // Remote Sens. 2014, tions in Computer Vision. IEEE CVPR, 6. pp. 12334-12359. http://www.mdpi.com/ Miami, Florida, June 2009 https:// 2072-4292/6/12/12334 (accessed:10.10.2017) doi.org/10.1109/CVPR.2009.5206863 (ac- cessed:10.10.2017) [11] Kass M., Witkin A., Terzopoulos D., Snakes: active contour models. // International Jour- [18] Li Li, Jian Yao, Xiaohu Lu, and Jing Ren. nal of Computer Vision, 1(4), 1988, 321331 Superpixel-Based Optimal Seamline Detec- http://web.cs.ucla.edu/~dt/papers/ tion via Graph Cuts for Panoramic Images. ijcv88/ijcv88.pdf (accessed:10.10.2017) submitted to IEEE International Conference on Image Processing (ICIP), 2015 http: [12] Kwatra V., Schodl A., Essa I., Turk G., //cvrs.whu.edu.cn/projects/SSD/papers/ Bobick A., Graphcut Textures: Image and SuperpixelStitching-ICIP2015.pdf (ac- Video Synthesis Using Graph Cuts. // cessed:10.10.2017) ACM Transactions on Graphics (TOG) [19] Moravec H., Towards automatic visual obsta- - Proceedings of ACM SIGGRAPH 2003, cle avoidance // Proceedings of the 5-th Inter- Volume 22 Issue 3, July 2003, pp. 277- national Joint Conference of Artificial Intelli- 286 http://gamma.cs.unc.edu/kwatra/ gence Cambridge. 1977. publications/gc-final-lowres.pdf (ac- cessed:10.10.2017) [20] Dijkstra E.W., A note on two problems in connexion with graphs // Numerische Mathe- [13] Li Li, Yao Jian, Lu Xiaohu, Shan Jie., matik, Vol. 1, 1959. P. 269271. Optimal Seamline Detection for Multiple Image Mosaicking via Graph Cuts. // IS- [21] Goldberg A.V. A Simple Shortest Path PRS Journal of Photogrammetry & Remote Algorithm with Linear Average Time. // Sensing. February 2015. pp. 1-32. http: Proceedings of the 9th European Symposium //cvrs.whu.edu.cn/publications/2015/ on Algorithms (ESA ’01), Springer Lecture GraphCutsSeamlineDetection-ISPRS2015. Notes in Computer Science LNCS 2161. 2001. pdf (accessed:10.10.2017) pp. 230-241. https://doi.org/10.1007/ 3-540-44676-1_19 (accessed:10.10.2017) [14] Boykov, Y., Veksler, O., Zabih, R., Fast approximate energy minimization via graph [22] OpenMP [2017]. URL: http://openmp.org/ cuts. IEEE Transactions on Pattern Anal- (accessed: 01.02.2017). ysis and Machine Intelligence 23 (11), pp 12221239. 2001. http://www.cs.cornell. edu/rdz/Papers/BVZ-pami01-final.pdf (accessed:10.10.2017) [15] Boykov Y., Kolmogorov V. An Experimen- tal Comparison of Min-cut/Max-flow Algo- rithms for Energy Minimization in Vision. In: Figueiredo M., Zerubia J., Jain A.K. (eds) Energy Minimization Methods in Computer Vision and Pattern Recognition. EMMCVPR 2001. Lecture Notes in Computer Science, vol 2134. Springer, Berlin, Heidelberg https: //doi.org/10.1007/3-540-44745-8_24 (ac- cessed:10.10.2017) 8