Skeletonizing Images by Using Spiking Neural P Systems
Abstract
Skeletonizing an image is representing a shape with a small amount of information by converting the initial image into a more compact representation and keeping the meaning features. In this paper we use spiking neural P systems to solve this problem. Based on such devices, a parallel software has been implemented on the GPU architecture. Some real-world applications and open lines for future research are also presented.
Full text
Skeletonizing Images by Using Spiking Neural P Systems Daniel D´ıaz-Pernil1, Francisco Pe˜na-Cantillana2, Miguel A. Guti´errez-Naranjo2 1Research Group on Computational Topology and Applied Mathematics Department of Applied Mathematics University of Sevilla [email protected] 2Research Group on Natural Computing Department of Computer Science and Artificial Intelligence University of Sevilla [email protected], [email protected] Summary. Skeletonizing an image is representing a shape with a small amount of information by converting the initial image into a more compact representation and keeping the meaning features. In this paper we use spiking neural P systems to solve this problem. Based on such devices, a parallel software has been implemented on the GPU architecture. Some real-world applications and open lines for future research are also presented. 1 Introduction Computer vision [32] is probably one of the challenges for computer scientists in the next years. This flourishing research area needs contributions from many other scientific areas as artificial intelligence, pattern recognition, signal processing, neurobiology, psychology or image processing among others. It concerns with the automated processing of images from the real world to extract and interpret information on a real time basis. From a computational point of view, a digital image is a function from a two dimensional surface which maps each point in the surface to a set of features as bright or color. The different treatments of such mappings (digital images) provide a big amount of current applications in computer vision as optical character recognition (OCR), biometrics, automotive safety, surveillance or medical imaging. In this paper we focus on the problem of skeletonizing an image. Skeletonization is one of the approaches for representing a shape with a small amount of information by converting the initial image into a more compact representation and keeping the meaning features. The conversion should remove redundant information, but it should also keep the basic structure. Skeletonization is usually
92 D. D´ıaz-Pernil et al. considered as a pre-process in pattern recognition algorithms, but its study is also interesting by itself for the analysis of line-based images as texts, line drawings, human fingerprints or cartography. Many problems in the processing of digital images have features which make it suitable for techniques inspired by nature. One of them is that the treatment of the image can be parallelized and locally solved. Regardless how large is the picture, the process can be performed in parallel in different local areas of it. Another interesting feature is that the local information needed for a pixel transformation can also be easily encoded in the data structures used in Natural Computing. In the literature, we can find many examples of the use of Natural Computing techniques for dealing with problems associated to the treatment of digital images. One of the classic examples is the use of cellular automata [28, 31]. Other efforts are related to artificial neural networks as in [9, 35]. In this paper, we use spiking neural P systems. Spiking neural P systems (SN P systems, for short) were introduced in [16] as a new class of distributed and parallel computing devices, inspired by the neurophysiological behavior of neurons sending electrical impulses (spikes) along axons to other neurons. SN P systems are the third model of computation in the framework of Membrane Computing1, together with the cell-like model [25] inspired by the compartmental structure and functioning of a living cell and the tissue-like model [17], based on intercellular communication and cooperation between cells in a tissue. Recently, Membrane Computing techniques have been used for solving problems from Digital Image. Different P systems models have been used for dealing with images, as in [3] where cell-like P systems are used for computing the thresholding of 2D images; [4, 5, 23, 24] where tissue-like P systems are used, or even [10], where the symmetric dynamic programming stereo (SDPS) algorithm [11] for stereo matching was implemented by using simple P modules with duplex channels. To the best of our knowledge, this is the first time in which SN P systems are used for dealing with images. In a similar way that other applications of P systems, the theoretical advantages of the Membrane Computing techniques for computer vision need a powerful software and hardware for an effective implementation. In this paper, we also present a parallel software developed by using a device architecture called CUDATM, (Compute Unified Device Architecture). CUDATM is a general purpose parallel computing architecture that allows the parallel NVIDIA2Graphics Processors Units (GPUs) to solve many complex computational problems in a more efficient way than on a CPU. GPUs constitute nowadays a solid alternative for high performance computing, and the advent of CUDA allows programmers a friendly model to accelerate a broad range of applications. The way GPUs ex- 1We refer to [26] for basic information in this area, to [27] for a comprehensive presentation and the P system web page http://ppage.psystems.eu, for the up-to-date information. 2http://www.nvidia.com.
Skeletonizing Images by Using SN P Systems 93 ploit parallelism differs from multi-core CPUs, which raises new challenges to take advantage of its tremendous computing power. GPU is especially well-suited to address problems that can be expressed as data-parallel computations. The paper is organized as follows: Firstly, we present the restricted model of SN P systems used in the paper and recall the Guo & Hall algorithm for skeletonizing images. In Section 4, the design of the SN P system for skeletonizing images is presented. Next, we show illustrative examples of the use of our implementation. Finally, Section 6 is dedicated to conclusions and future work. 2 Spiking Neural P Systems SN P systems can be viewed as an evolution in Membrane Computing corresponding to a shift from cell-like to neural-like architectures. In SN P systems the processing elements are called neurons and are placed in the nodes of a directed graph, called the synapse graph. The computation is performed by sending electrical impulses among the neurons through the synapses. Such electrical impulses are encoded via a single object type, namely the spike, which is placed in the neurons. The number of copies of such object determines the electrical charge of the neuron. Each neuron may also contain rules which allow to send spikes (possibly with a delay) to other neurons, or to remove a given number of spikes from it (firing and forgetting rules). Firing rules allow a neuron to send information to other neurons in the form of electrical impulses which are accumulated at the target cell. Forgetting rules remove from the neuron a predefined number of spikes. The application of every rule is determined by checking the contents of the neuron against a regular set associated with the rule. In each time unit, if a neuron can use one of its rules, then one of such rules must be used. If two or more rules could be applied, then only one of them is nondeterministically chosen. Thus, the rules are used in the sequential manner in each neuron, but neurons work in parallel with each other. A global clock is assumed, marking the time for the whole system, and hence the functioning of the system is synchronized. From the seminal paper [16], other biological features have been explored in the framework of SN P systems. One of such extensions (with mathematical motivation) was introduced in [2], where a neuron can emit more than one spike, if the number of emitted ones is not greater than the consumed ones. Other variants including astrocytes [20], weights, which modify the number of spikes that arrives to a neuron according to the quality of the link between neurons [14, 21, 34], antispikes [22], or neuron division [33] have also been considered. In this paper, we will consider SN P systems with weights in the synapses and rules without delay3. In this way, the restricted model of SN P systems used in this paper can be formally described as follows. A spiking neural P system of degree m≥1 is a construct of the form 3For a more general description, see [16].
94 D. D´ıaz-Pernil et al. Π= (O, σ1, σ2, . . . , σm, syn, in), where: 1. O={a}is the singleton alphabet (ais called spike); 2. σ1, σ2, . . . , σmare neurons, of the form σi= (ni, Ri), 1 ≤i≤m, where: a) ni≥0 is the initial number of spikes contained in σi; b) Riis a finite set of rules of the following two forms: (1) Firing rules E/ac→ad, where Eis a regular expression4over a, and c≥d≥1 are integer numbers; if E=ab(with ban integer number, b≥c), then the rule is usually written in the following simplified form: ab/ac→ad; (2) Forgetting rules ab/ac→λ, for band cinteger numbers with b≥c≥1. 3. syn ⊆ {1,2, . . . , m}×{1,2, . . . , m}×Wis the set of synapses between neurons, where the set of weights is W=Q∩[0,1], i.e., the set of rational numbers between 0 and 1. The synapses also verifies that (i, i, k)∈ syn for 1 ≤i≤m, k∈W. 4. in is the label of the input neuron of Π. A firing rule E/ac→ad∈Rican be applied in neuron σiif it contains b spikes, b≥c, and abbelongs to the language associated to E. For applying rules of type ab/ac→ad, the neuron must contain exactly bspikes. The execution of these rules removes cspikes from σi(thus leaving the remaining spikes in σi), and sends dspikes to all the neurons σjsuch that (i, j, k)∈syn. The number of spikes that arrives to the neuron jthrough the synapse (i, j, k) depends on the number dof emitted spikes and the quality of the synapse, encoded by the weight k. In each neuron, the number of spikes after a computation step is the number of non consumed spikes plus the contribution of other neurons via the corresponding synapses. Let us consider that dspikes are emitted through a synapse (i, j, k). The contribution of σito σjis an increase of ⌊d×k⌋spikes, where ⌊v⌋denotes the largest integer not greater than v. A forgetting rule ab/ac→λcan be applied in neuron σiif it contains exactly bspikes. The execution of this rule simply removes all the cspikes from σi(thus leaving b−cspikes). Aconfiguration of the system is described by the numbers ⟨n1, n2,...,nm⟩of spikes present in each neuron. At the beginning of the computation, the number of spikes in each neuron σiis ni, but in the input neuron (with label in): If the input of the computation is N, then, in the initial configuration, the number of spikes in the input neuron is nin +N. Example 1. Let us consider the SN P system Π= ({a}, σ1, σ2, σ3, syn, 1) (see Fig. 1) with σ1= (7, R1), σ2= (3, R2), σ3= (8, R3) and the set of rules and synapses 4Along this paper, we use regular expressions of type ana∗, with n∈N. In this case, the language associated to ana∗is the set {an+k|k∈N}. For more details about regular expressions, see, for example [29].
Skeletonizing Images by Using SN P Systems 95 R11 ≡a5a∗/a5→a3R21 ≡a5/a3→a2 R31 ≡a8/a3→λ R32 ≡a7/a2→a1 a9a3 a8 12 3 w12 = 0.7 w21 = 1 w32 = 0.5 w23 = 0.8w13 = 0.4 Fig. 1. Example. The input neuron 1 has 9 = 7+2 spikes at the starting configuration. R1={R11 ≡a5a∗/a5→a3} R2={R21 ≡a5/a3→a2} R3={R31 ≡a8/a3→λ , R32 ≡a7/a2→a1} syn ={(1,2,0.7),(2,1,1),(2,3,0.8),(3,2,0.5),(1,3,0.4)} We will consider the input N= 2, so, in order to start the computation, 9 spikes (7 + 2) are placed in the neuron 1. Notice that R11 will be applied if the neuron 1 contains at least 5 spikes. R31 is the unique forgetting rule in the SN P system. Since the input is N= 2, the initial configuration is C0=⟨9,3,8⟩. From this initial configuration, rules R11 and R31 can be applied. The rule R11 consumes 5 spikes from the neuron 1 and sends 3 spikes to the neurons 2 and 3. These 3 sent spikes are multiplied by the corresponding weights before arriving to the target neurons. The weight of the synapses between the neurons 1 and 2 is w12 = 0.7, so the application of the rule R11 produces an increase of ⌊3×0.7⌋= 2 spikes in the neuron 2. Bearing in mind that w13 = 0.4, the application of the rule R11 increases in ⌊3×0.4⌋= 1 the number of spikes in the neuron 3. The forgetting rule R31 deletes 3 spikes from neuron 3 and hence, the new obtained configuration is C1=⟨4,5,6⟩. Now, the unique applicable rule is R21. This rule consumes 3 spikes from neuron 2 and sends 2 spikes to the neurons 1 and 3. According with the corresponding weights, the number of the spikes in the neuron 1 is increased in ⌊2×1⌋= 2 and the number of the spikes in the neuron 3 is increased in ⌊2×0.8⌋= 1. By applying these modifications, the obtained configuration is C2=⟨6,2,7⟩.
96 D. D´ıaz-Pernil et al. Fig. 2. A hand-written word and its skeletonization From this configuration, rules R11 and R32 are applicable. The effects of R11 have been described above. The rule R32 removes 2 spikes from the neuron 3 and sends 1 spike to neuron 2. This spike is multiplied by the corresponding weight, w32 = 0.5, so it does not produce any increase in the number of spikes in neuron 3, since ⌊0.5×1⌋= 0. With these changes, the obtained configuration is C3=⟨1,4,4⟩. No more rules can be applied and C3is the halting configuration. 3 Guo & Hall Algorithm Skeletonization is a common transformation in Image Analysis. The concept of skeleton was introduced by Blum in [1], under the name of medial axis transform. There are many different definitions of the skeleton of a black and white image and many skeletonizing algorithms5, but in general, the image Bis a skeleton of the image A, if it has fewer black pixels than A, preserves its topological properties and, in some sense, keeps its meaning. In this paper, we focus on an iterative procedure of thinning: roughly speaking, the border black pixels are removed as long as they are not considered significant. The remaining set of black pixels is called the skeleton (See Fig. 2). Among the parallel algorithms, special attention deserves the so-called 1- subcycle parallel algorithms or fully parallel algorithms [12]. Our bio-inspired design is based on a classical skeletonizing algorithm, the Guo & Hall algorithm [12, 13]. In this algorithm, the pixels are examined for deletion in an iterative process. 5A detailed description is out of the scope of this paper. For a survey in this topic, see e.g., [30].
Skeletonizing Images by Using SN P Systems 97 P1 P2 P3 P8 P0 P4 P7 P6 P5 ? R - 6I 1/261/27 1/20 1/21 1/22 1/23 1/24 1/25 Fig. 3. (Left) Enumeration of the pixels in a 3 ×3 neighborhood. (Center) 3 ×3 neighborhood with encoding [0,0,0,0,1,1,1,1,1], or, shortly, 24+25+26+27+28= 496. (Right) Scheme of the weights of the synapses. First of all, given an n×mimage, it is divided into two sub-sections. One of the sections is composed by the pixels aij such that i+jis even. Alternatively, the second sub-section corresponds to the pixels aij such that i+jis odd. The algorithm consists on two sub-iterations where the removal of redundant pixels from both sub-sections are alternated, i.e., in each step only the pixels of one of the subsections are evaluated for its deletion. The decision is based on a 3 ×3 neighborhood. Given a pixel P0, a clockwise enumeration P1, . . . , P8 of its eight neighbor pixels is considered, (Figure 3 (Left)). As usual, for each i∈ {1, . . . , 8},Pi is considered as a Boolean variable, with the truth value 1 if Pi is black and 0 if Pi is white. In order to decide if a pixel P0 is deleted in the corresponding iteration subcycle, two parameters are evaluated: B(P0) = ∑i=8 i=1 Pi C(P0) = (¬P2∧(P3∨P4)) + (¬P4∧(P5∨P6)) +(¬P6∧(P7∨P8)) + (¬P8∧(P1∨P2)) B(P0) counts how many pixels in the neighborhood of P0 are black. C(P0) evaluates the connectivity of the pixel P0. Notice that for isolated black pixels, the connectivity is 0, and for pixels surrounded by eight black pixels, the connectivity is 4. According to the Guo & Hall algorithm, in each iteration, an evaluated black pixel P0 is deleted (changed to white) if and only if all of the following conditions are satisfied. Guo & Hall conditions: 1. B(P0) >1; 2. C(P0) = 1; This condition is necessary for preserving local connectivity when Pis deleted. 3. (P1∧P3∧P5∧P7)∨(P2∧P4∧P6∧P8) = FALSE; Intuitively, this condition is satisfied if P0 is not the central pixel of a cross.
98 D. D´ıaz-Pernil et al. For example, let us consider as P0 the central pixel in the image of Fig. 3 (Center). In this case, B(P0) = 3 >1, C(P0) = 1, and the third condition is also satisfied. Hence, P0 will be deleted in the corresponding sub-cycle iteration. 4 SN P Systems for Skeletonizing In this paper we will show how to use SN P systems for skeletonizing images. In particular, we use SN P systems for implementing the Guo & Hall algorithm. Without losing generality, we will consider each image as a mapping I:{1, . . . , p}× {1, . . . , q}→{black, white}, with I(1, k) = I(p, k) = I(j, 1) = I(j, q) = white for all k∈ {1, . . . , q}and j∈ {1, . . . , p}, i.e., the image has n×mpixels and all the pixels on the border are white. Given a pixel (i, j), we can use the enumeration of the pixels used in the previous section to represent the neighborhood of the pixel P0 in (i, j). Such a neighborhood will be represented as a list [H0, . . . , H8], where, for r∈ {0,...,8}, Hr = 1 if P r is a white pixel and Hr = 0 if Pr is a black one6. This representation of the neighborhood can be done in a more compact way, by encoding the neighborhood as a number7in {0, . . . , 511}. cod(i, j) = 8 ∑ r=0 Hr ×2r For example, in Fig. 3 (Center), the 3 ×3 neighborhood can be encoded as [0,0,0,0,1,1,1,1,1], or, shortly, 24+ 25+ 26+ 27+ 28= 496. Since the decision of removing a black pixel (changing to white) depends on its 3 ×3 neighborhood and there is a bijective correspondence among the sets of all the possible neighborhoods and the possible encodings {0, . . . , 511}, it is easy to check that the pixel in (i, j) must be removed if it belongs to the set DEL = 6 12 14 18 24 26 28 30 36 38 44 46 48 50 56 58 60 62 66 72 74 96 98 104 106 112 114 120 122 124 126 132 134 140 142 144 146 152 154 156 158 164 166 172 174 176 178 184 186 188 190 192 194 200 202 224 226 232 234 240 242 248 250 252 258 262 264 266 270 286 288 290 294 296 298 302 318 384 386 390 392 394 398 414 416 418 422 424 426 430 448 450 454 456 458 462 480 482 486 488 490 496 498 504 The complementary set of encodings will be denoted by DEL, in other words, 6Notice that we encode black pixels as 0 and white pixels as 1 for an easier implementation with SN P systems. In the previous section, we keep the opposite encoding in order to keep continuity with the literature. 7Similar ideas are also used in [30].
Skeletonizing Images by Using SN P Systems 99 DEL ={s∈ {0,...,511} | s∈ DEL} For each image of size p×q, a SN P system will be provided. The input of the SN P system is a non negative integer which represents the number of iterations in the skeletonizing process. Formally, given an p×qimage, we associate to it the following SN P system is degree (p×q) + 2: Π= (O, σ11, σ12, . . . , σpq, σodd, σeven, syn, odd), i.e., a SN P system with a neuron for each pixel in the image plus two extra neurons, σodd and σeven. The input neuron is σodd. •O={a}is the singleton alphabet; •σodd = (512, a513a∗/a513 →a512) and σeven = (0, a512/a512 →a512). •σij = (nij, Rij ), i∈ {1, . . . , p},j∈ {1, . . . , q}, where ni,j ={0 if i= 1 ∨i=p∨j= 1 ∨j=q cod(i, j) otherwise R1k=Rpk =Rj1=Rjq =∅for all k∈ {1, . . . , q}and j∈ {1, . . . , p}. For the remaining (i, j), Rij ={ab/a511 →a256 |b=r+ 512 ∧r∈DEL} ∪ {ab/a512 →λ|b=r+ 512 ∧r∈DEL}; •syn = p−1 ∪ i=2 q−1 ∪ j=2 synij ∪synodd ∪syneven ∪ {⟨odd, even, 1⟩,⟨even, odd, 1⟩}, where synodd ={⟨odd, (i, j),1⟩ | i∈ {2, . . . , p −1}, j ∈ {2, . . . , q −1}, i+j odd } syneven ={⟨even, (i, j),1⟩ | i∈ {2, . . . , p −1}, j ∈ {2, . . . , q −1}, i+j even } and for all i∈ {2, . . . , q −1}, j ∈ {2, . . . , q −1}, synij = ⟨(i, j),(i+ 1, j),1/20⟩,⟨(i, j),(i−1, j),1/24⟩, ⟨(i, j),(i+ 1, j + 1),1/21⟩,⟨(i, j),(i−1, j −1),1/25⟩, ⟨(i, j),(i, j + 1),1/22⟩,⟨(i, j),(i, j −1),1/26⟩, ⟨(i, j),(i−1, j + 1),1/23⟩,⟨(i, j),(i+ 1, j −1),1/27⟩} The SN P system has one neuron σij for each pixel of the image plus two extra neurons σodd and σeven. The neurons corresponding to the border of the image has zero spikes in the initial configuration, the remaining neurons σij corresponding to the pixels of the image (called hereafter, the regular neurons) have cod(i, j) spikes in the initial configuration. The neurons σodd and σeven have 512 and 0 spikes
106 D. D´ıaz-Pernil et al. Fig. 6. (Top left) The binarization of the image from Figure 5 (Top right) Inverse binarization of the image. (Bottom left) Its skeletonizing. (Bottom right) The skeletonizing of the inverse thresholding. 6 Conclusions The development of new bioinspired parallel techniques provides a chance for revisiting classical sequential algorithms. In this paper, we have consider a classical algorithm for skeletonizing images, but many other algorithms can be considered. In particular, the bio-inspired computing techniques have features as the encapsulation of the information, a simple representation of the knowledge and parallelism, which are appropriate with dealing with digital images. Nonetheless, the use of new computational paradigms for developing the bioinspired ideas needs, on the one hand, the contribution of theoretical research that allows us to design new bio-inspired efficient algorithms, and, on the other hand, the use of the most recent parallel computer architectures for a real parallel implementation of the algorithms. In this paper we provide a new step in both directions, since we study the skeletonization of images by using Spiking Neural P systems and show the results of a new software based on the SN P system by using the GPU architecture. This research line can be followed by considering more classical problems and studying the possible improvements from a bio-inspired perspective, or, by studying the same skeletonization problem in other P system models.
Skeletonizing Images by Using SN P Systems 107 Fig. 7. Original images and their skeletons Acknowledgements DDP and MAGN acknowledge the support of the projects TIN2008-04487-E and TIN-2009-13192 of the Ministerio de Ciencia e Innovaci´on of Spain and the support of the Project of Excellence with Investigador de Reconocida Val´ıa of the Junta de Andaluc´ıa, grant P08-TIC-04200. References 1. Blum, H.: An associative machine for dealing with the visual field and some of its biological implications. In: Bernard, E.E., Kare, M.R. (eds.) Biological Prototypes and Synthetic Systems. vol. 1, pp. 244–260. Plenum Press, New York (1962) 2. Chen, H., Ionescu, M., Ishdorj, T.O., P˘aun, A., P˘aun, Gh., P´ez-Jim´ez, M.: Spiking neural P systems with extended rules: universality and languages. Natural Computing 7, 147–166 (2008) 3. Christinal, H.A., D´ıaz-Pernil, D., Guti´errez-Naranjo, M.A., P´erez-Jim´enez, M.J.: Thresholding of 2D images with cell-like P systems. Romanian Journal of Information Science and Technology 13(2), 131–140 (2010) 4. Christinal, H.A., D´ıaz-Pernil, D., Real, P.: Segmentation in 2D and 3D image using tissue-like P system. In: Bayro-Corrochano, E., Eklundh, J.O. (eds.) Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications, CIARP 2009. Lecture Notes in Computer Science, vol. 5856, pp. 169–176. Springer (2009) 5. Christinal, H.A., D´ıaz-Pernil, D., Real, P.: Region-based segmentation of 2D and 3D images with tissue-like P systems. Pattern Recognition Letters 32(16), 2206 – 2212 (2011)
108 D. D´ıaz-Pernil et al. Fig. 8. Experimental time obtained for the Guo & Hall algorithm 36 totally black images of n×npixels, from n= 125 to n= 4500 with a regular increment of 125 pixels of side. Top image shows the time of our parallel implementation in SN P Systems. Bottom image shows the time for a sequential implementation. 6. Corne, D.W., Frisco, P., P˘aun, Gh., Rozenberg, G., Salomaa, A. (eds.): Membrane Computing - 9th International Workshop, WMC 2008, Edinburgh, UK, July 28-31, 2008, Revised Selected and Invited Papers, Lecture Notes in Computer Science, vol. 5391. Springer (2009) 7. D´ıaz-Pernil, D., Graciani, C., Guti´errez-Naranjo, M.A., P´erez-Hurtado, I., P´erez- Jim´enez, M.J.: Software for P systems. In: P˘aun et al. [27], pp. 437–454 8. D´ıaz-Pernil, D., P´erez-Hurtado, I., P´erez-Jim´enez, M.J., Riscos-N´u˜nez, A.: A P- lingua programming environment for membrane computing. In: Corne et al. [6], pp. 187–203 9. Egmont-Petersen, M., de Ridder, D., Handels, H.: Image processing with neural networks - a review. Pattern Recognition 35(10), 2279–2301 (2002) 10. Gimel’farb, G., Nicolescu, R., Ragavan, S.: P systems in stereo matching. In: Real, P., D´ıaz-Pernil, D., Molina-Abril, H., Berciano, A., Kropatsch, W. (eds.) Computer Analysis of Images and Patterns, Lecture Notes in Computer Science, vol. 6855, pp. 285–292. Springer Berlin / Heidelberg (2011) 11. Gimel’farb, G.L.: Probabilistic regularisation and symmetry in binocular dynamic programming stereo. Pattern Recognition Letters 23(4), 431–442 (2002) 12. Guo, Z., Hall, R.W.: Parallel thinning with two-subiteration algorithms. Communications of the ACM 32, 359–373 (1989)
Skeletonizing Images by Using SN P Systems 109 13. Guo, Z., Hall, R.W.: Fast fully parallel thinning algorithms. CVGIP: Image Understanding. 55, 317–328 (1992) 14. Guti´errez-Naranjo, M.A., P´erez-Jim´enez, M.J.: Hebbian learning from spiking neural P systems view. In: Corne et al. [6], pp. 217–230 15. Guti´errez-Naranjo, M.A., P´erez-Jim´enez, M.J., Riscos-N´u˜nez, A.: Available membrane computing software. In: Ciobanu, G., P´erez-Jim´enez, M.J., P˘aun, Gh. (eds.) Applications of Membrane Computing, pp. 411–436. Natural Computing Series, Springer (2006) 16. Ionescu, M., P˘aun, Gh., Yokomori, T.: Spiking neural P systems. Fundamenta Informaticae 71(2-3), 279–308 (2006) 17. Mart´ın-Vide, C., P˘aun, Gh., Pazos, J., Rodr´ıguez-Pat´on, A.: Tissue P systems. Theoretical Computer Science 296(2), 295–326 (2003) 18. Nickolls, J., Buck, I., Garland, M., Skadron, K.: Scalable parallel programming with CUDA. Queue 6, 40–53 (2008) 19. Owens, J.D., Houston, M., Luebke, D., Green, S., Stone, J.E., Phillips, J.C.: GPU Computing. Proceedings of the IEEE 96(5), 879–899 (2008) 20. Pan, L., Wang, J., Hoogeboom, H.: Spiking neural P systems with astrocytes. 24(3), 805–825 (2012) 21. Pan, L., Zeng, X., Zhang, X., Jiang, Y.: Spiking neural P systems with weighted synapses. Neural Processing Letters 35(1), 13–27 (2012) 22. Pan, L., P˘aun, Gh.: Spiking neural P systems with anti-spikes. International Journal of Computers, Communications & Control IV(3), 273–282 (September 2009) 23. Pe˜na-Cantillana, F., D´ıaz-Pernil, D., Berciano, A., Guti´errez-Naranjo, M.A.: A parallel implementation of the thresholding problem by using tissue-like P systems. In: Real, P., D´ıaz-Pernil, D., Molina-Abril, H., Berciano, A., Kropatsch, W.G. (eds.) CAIP (2). Lecture Notes in Computer Science, vol. 6855, pp. 277–284. Springer (2011) 24. Pe˜na-Cantillana, F., D´ıaz-Pernil, D., Christinal, H.A., Guti´errez-Naranjo, M.A.: Implementation on CUDA of the smoothing problem with tissue-like P systems. International Journal of Natural Computing Research 2(3), 25–34 (2011) 25. P˘aun, Gh.: Computing with membranes. Tech. Rep. 208, Turku Centre for Computer Science, Turku, Finland (November 1998) 26. P˘aun, Gh.: Membrane Computing. An Introduction. Springer-Verlag, Berlin, Germany (2002) 27. P˘aun, Gh., Rozenberg, G., Salomaa, A. (eds.): The Oxford Handbook of Membrane Computing. Oxford University Press, Oxford, England (2010) 28. Rosin, P.L.: Training cellular automata for image processing. IEEE Transactions on Image Processing 15(7), 2076–2087 (2006) 29. Rozenberg, G., Salomaa, A.: Handbook of Formal Languages: Word, language, grammar. Handbook of Formal Languages, Springer (1997) 30. Saeed, K., Tabedzki, M., Rybnik, M., Adamski, M.: K3M: A universal algorithm for image skeletonization and a review of thinning techniques. Applied Mathematics and Computer Science 20(2), 317–335 (2010) 31. Selvapeter, P.J., Hordijk, W.: Cellular automata for image noise filtering. In: World Congress on Nature & Biologically Inspired Computing, 2009. NaBIC 2009. pp. 193– 197. IEEE (2009) 32. Shapiro, L.G., Stockman, G.C.: Computer Vision. Prentice Hall PTR, Upper Saddle River, NJ, USA (2001)
110 D. D´ıaz-Pernil et al. 33. Wang, J., Hoogeboom, H.J., Pan, L.: Spiking neural P systems with neuron division. In: Gheorghe, M., Hinze, T., P˘aun, Gh., Rozenberg, G., Salomaa, A. (eds.) Int. Conf. on Membrane Computing. Lecture Notes in Computer Science, vol. 6501, pp. 361–376. Springer, Berlin Heidelberg (2010) 34. Wang, J., Hoogeboom, H.J., Pan, L., P˘aun, Gh., P´erez-Jim´enez, M.J.: Spiking neural P systems with weights. Neural Computation 22(10), 2615–46 (2010) 35. Zhou, Y., Chellappa, R.: Artificial neural networks for computer vision. Research notes in neural computing, Springer-Verlag (1992)