Designing Tissue-like P Systems for Image Segmentation on Parallel Architectures
Abstract
Problems associated with the treatment of digital images have several interesting features from a bio-inspired point of view. One of them is that they can be suitable for parallel processing, since the same sequential algorithm is usually applied in different regions of the image. In this paper we report a work-in-progress of a hardware implementation in Field Programmable Gate Arrays (FPGAs) of a family of tissue-like P systems which solves the segmentation problem in digital images.
Full text
Designing Tissue-like P Systems for Image Segmentation on Parallel Architectures Javier Carnero1, Daniel D´ıaz-Pernil1, Miguel A. Guti´errez-Naranjo2 1Computational Algebraic Topology and Applied Mathematics Research Group Department of Applied Mathematics I University of Sevilla Avda. Reina Mercedes s/n, 41012, Sevilla, Spain [email protected], [email protected] 2Research Group on Natural Computing Department of Computer Science and Artificial Intelligence University of Sevilla Avda. Reina Mercedes s/n, 41012, Sevilla, Spain [email protected] Summary. Problems associated with the treatment of digital images have several interesting features from a bio-inspired point of view. One of them is that they can be suitable for parallel processing, since the same sequential algorithm is usually applied in different regions of the image. In this paper we report a work-in-progress of a hardware implementation in Field Programmable Gate Arrays (FPGAs) of a family of tissue-like P systems which solves the segmentation problem in digital images. 1 Introduction Membrane Computing is a computational paradigm inspired in the functioning of living cells and tissues. One of its characteristic features is the use of parallelism as a computation tool. In many of the models, the devices perform the computation by applying parallelization in a double sense: on the one hand, several rules can be applied simultaneously in each membrane; on the other hand, all the membranes perform the computation at the same time. In spite of recent efforts [15], it seems that in the next future there will not be an implementation of P systems in vivo or in vitro. All the possible approaches to the theoretical model lean on the current computer architectures. In this line, many efforts have been made for obtaining a simulation of the P system behavior with current computers [13, 16]. Most of these simulators are thought for running on one-processor computers. These sequential machines only perform one action per time unit and the parallelism of the membrane computing devices is lost. This bottle-neck produces a serious discrepancy between the theo-
44 J. Carnero et al. retical efficiency of the P systems and the realistic resources needed for performing a computation. In the last years, according with the development of new parallel architectures, new attempts have been made for approaching the computation of P systems by performing several actions in the same step. This does not mean a real implementation of the P system, but it can be considered as a new step toward a more realistic simulation. The first parallel and distributed simulators were presented in 2003. In [12], a parallel implementation of transition P systems was presented. The program was designed for a cluster of 64 dual processor nodes and it was implemented and tested on a Linux cluster at the National University of Singapore. In [32], a purely distributive simulator of P systems was presented. It was implemented using Java’s Remote Methods Invocation to connect a number of computers that interchange data. The class of P systems that the simulator can accept is a subset of the NOP2(coo, tar) family of systems, which have the computational power of Turing machines. Also in 2003, Petreska and Teuscher [29] presented a parallel hardware implementation of a special class of membrane systems. The implementation was based on a universal membrane hardware component that allows efficiently run P system on a reconfigurable hardware known as Field Programmable Gate Arrays (FPGAs) [35]. Recently, a new research line has arisen due to a novel device architecture called CUDAT M , (Compute Unified Device Architecture) [39]. It is a general purpose parallel computing architecture that allows the parallel compute engine in NVIDIA Graphic Processor Units (GPUs) to solve many complex computational problems in a more efficient way than on a CPU [5, 6, 7]. Following the research line started in [29], Van Nguyen et al. have proposed the use hardware implementation for membrane computing applications [22, 23, 24, 25] based on reconfigurable computing technology called Reconfig-P. In this paper, we also explore the possibilities of the Field Programmable Gate Arrays (FPGAs) for building a hardware implementation of P systems. The P system model chosen for the implementation has been tissue-like P systems and as a case study we consider the segmentation problem in 2D images. Segmentation in computer vision (see [31]), refers to the process of partitioning a digital image into multiple segments (sets of pixels). The goal of segmentation is to simplify and/or change the representation of an image into something that is more meaningful and easier to analyze. Image segmentation is typically used to locate objects and boundaries (lines, curves, etc.) in images. More precisely, image segmentation is the process of assigning a label to every pixel in an image such that pixels with the same label share certain visual characteristics. Technically, the process consists on assigning a label to each pixel, in such way that pixels with the same label form a meaningful region. There exist different techniques to segment an image. Some techniques are clustering methods [1, 36], histogram-based methods [34], Watershed transformation methods [33], image pyramids methods
Designing Tissue-like P Systems to Parallel Architectures 45 [18] or graph partitioning methods [37, 38]. Some of the practical applications of image segmentation are medical imaging [36] or face recognition [17]. Segmentation in Digital Imagery has several features which make it suitable for techniques inspired by nature. One of them is that it can be paralleled and locally solved. Regardless how large is the picture, the segmentation process can be performed in parallel in different local areas of it. Another interesting feature is that the basic necessary information can be easily encoded by bio-inspired representations. In the literature, one can find several attempts for bridging problems from Digital Imagery with Natural Computing as the works by K.G. Subramanian et al. [8, 9] or the work by Chao and Nakayama where Natural Computing and Algebraic Topology are linked by using Neural Networks [10] (extended Kohonen mapping). In this paper, we will use an information encoding and techniques borrowed from Membrane Computing. This paper is a new step in the research started at [4], where the authors present an implementation of a membrane solution of a segmentation problem using hardware programming. In this paper, we present a different family of tissue-like P systems to solve the problem and report the hardware implementation. In what follows we assume the reader is already familiar with the basic notions and the terminology underlying P systems3. The paper is organized as follows: firstly, we present our bio-inspired formal framework. Next, we present a family of tissue-like P systems designed to obtain an edge-based segmentation of a 2D digital image. Then, general considerations about designing hardware P systems are studied, focusing on the segmentation problem. The paper finishes with some conclusions and future work. 2 Formal Framework: Tissue-like P Systems Tissue-like P systems were presented by Mart´ın–Vide et al. in [21]. They have two biological inspirations (see [20]): intercellular communication and cooperation between neurons. The common mathematical model of these two mechanisms is a network of processors dealing with symbols and communicating these symbols along channels specified in advance. The main features of this model, from the computational point of view, are that cells do not have polarization and the membrane structure is a general graph. Formally, a tissue-like P system with input of degree q≥1 is a tuple Π= (Γ, Σ, E, w1, . . . , wq,R, iΠ, oΠ), where 1. Γis a finite alphabet, whose symbols will be called objects; 2. Σ(⊂Γ) is the input alphabet; 3We refer to [26] for basic information in this area, to [28] for a comprehensive presentation and the web site [40] for the up-to-date information.
46 J. Carnero et al. 3. E ⊆ Γ(the objects in the environment); 4. w1, . . . , wqare strings over Γrepresenting the multisets of objects associated with the cells at the initial configuration; 5. Ris a finite set of communication rules of the following form: (i, u/v, j) for i, j ∈ {0,1,2, . . . , q}, i 6=j,u, v ∈Γ∗; 6. iΠ∈ {1,2, . . . , q}is the input cell; 7. oΠ∈ {0,1,2, . . . , q}is the output cells A tissue-like P system of degree q≥1 can be seen as a set of qcells (each one consisting of an elementary membrane) labelled by 1,2, . . . , q. We will use 0 to refer to the label of the environment, iΠdenotes the input region and oΠdenotes the output region (which can be the region inside a cell or the environment). The strings w1, . . . , wqdescribe the multisets of objects placed in the qcells of the P system. We interpret that E ⊆ Γis the set of objects placed in the environment, each one of them available in an arbitrary large amount of copies. The communication rule (i, u/v, j) can be applied over two cells labelled by i and jsuch that uis contained in cell iand vis contained in cell j. The application of this rule means that the objects of the multisets represented by uand vare interchanged between the two cells. Note that if either i= 0 or j= 0 then the objects are interchanged between a cell and the environment. Rules are used as usual in the framework of membrane computing, that is, in a maximally parallel way (a universal clock is considered). In one step, each object in a membrane can only be used for one rule (non-deterministically chosen when there are several possibilities), but any object which can participate in a rule of any form must do it, i.e., in each step we apply a maximal set of rules. Aconfiguration is an instantaneous description of the P system Π. Given a configuration, we can perform a computation step and obtain a new configuration by applying the rules in a parallel manner as it is shown above. A sequence of computation steps is called a computation. A configuration is halting when no rules can be applied to it. Then, a computation halts when the P system reaches a halting configuration. 3 Segmenting Digital Images Apoint set is simply a topological space consisting of a collection of objects called points and a topology which provides for such notions as nearness of two points, the connectivity of a subset of the point set, the neighborhood of a point, boundary points, and curves and arcs. The most common point sets occurring in image processing are discrete subsets of N-dimensional Euclidean space Rnwith n= 1,2 or 3 together with the discrete topology. There is no restriction on the shape of the discrete subsets of Rnused in applications of image algebra to solve vision problems.
Designing Tissue-like P Systems to Parallel Architectures 47 For a point set Xin Z, a neighborhood function from Xin Z, is a function N:X→2Z. For each point x∈X,N(x)⊆Z. The set N(x) is called a neighborhood for x. There are two neighborhood function on subsets of Z2which are of particular importance in image processing, the von Neumann neighborhood and the Moore neighborhood. The first one N:X→2Z2is defined by N(x) = {y:y= (x1±j, x2)or y = (x1, x2±k), j, k ∈ {0,1}}, where x= (x1, x2)∈X⊂Z2. While the Moore neighborhood M:X→2Z2is defined by M(x) = {y:y= (x1±j, x2±k), j, k ∈ {0,1}}, where x= (x1, x2)∈X⊂Z2. The von Neumann and Moore neighborhood are also called the four neighborhood (4-adjacency) and eight neighborhood (8-adjacency), respectively. In this paper, we work with 4-adjacency. The point sets with the usual operations has an algebra structure (see [30]). An Z-valued image on Xis any element of ZX. Given an Z-valued image I∈ZX, i.e. I:X→Z, then Zis called the set of possible range values of I and Xthe spatial domain of I. The graph of an image is also referred to as the data structure representation of the image. Given the data structure representation I={(x, I(x)) : x∈X}, then an element (x, I(x)) is called a picture element or pixel. The first coordinate xof a pixel is called the pixel location or image point, and the second coordinate I(x) is called the pixel value of Iat location x. For example, Xcould be a subset of Z2where x= (i, j) denotes spatial location, and Zcould be a subset of N,N3, etc. So, given an image I∈ZZ2, a pixel of I is the form ((i, j), I(x)), which will be denoted by I(x)ij. We call the set of colors or alphabet of colors to the image set of the function Iwith domain Xand the image point of each pixel is called associated color. We can consider an order in this set. In this paper, we denote Zas CI. Usually, we consider in digital image a predefined alphabet of colors C. We define h=|C| as the size (number of colors) of C. In this paper, we work with images in grey scale, then C={0, . . . , 255}, where 0 codify the black color and 255 the white color. By technical reasons, we use below different ways to codify a same pixel. For example, if we take the pixel ((i, j), a) we could codify with the following expressions: aij,Aij ,a0 ij,aij , (a, l)ij with l∈N, etc. Aregion could be defined by a subset of the domain of Iwhose points are all mapped to the same (or similar) pixel value by I. So, we can consider the region Rias the set {x∈X:I(x) = i}but this kind of regions has not to be connected. We prefer to consider a region ras a maximal connected subset of a set like Ri. We say two regions r1, r2are adjacent when at less a pair of pixel x1∈r1and x2∈r2are adjacent. We say x1and x2are border pixels. If I(x1)< I(x2) we say x1is an edge pixel. The set of connected edge pixels with the same pixel value is called a boundary between two regions. From a general point of view, segmentation refers to the process of partitioning a digital image into multiple regions. Thresholding is a method of image segmentation whose basic aim is to obtain a binary image from a colour one. The idea is to split the set of pixels into two sets (black and white) depending on its bright and a fixed valued, the threshold. If the bright of the pixel is greater than the threshold,
48 J. Carnero et al. then the pixel is labelled as object. Otherwise, it is labelled as background. After labelling, a new binary image is created by colouring each pixel white or black, depending on the label. The basic thresholding method can be generalized in a natural way. Instead of getting a binary image by labelling the original set of pixels by {0,1}, we can consider a larger set of labels, {1, . . . , k}so we obtain a final image with klevels. Another natural generalization is to replace the colour information by another scale on the features of the pixel (bright, intensity, gray scale, etc.). Edge detection is an important operation in a large number of image processing applications, such as image segmentation, character recognition and scene analysis. In this paper we work with the first one, the edge-based segmentation of 2D digital images problem (2D-ES problem), which is described as follows: Given a digital 2D image with pixels of (possibly) different colors, obtain the boundaries of regions in that image. In order to provide a logarithmic-time uniform solution to our problem, we design a family of tissue-like P systems, Π. Given an image Iof size n2, we take the P system Π(n, k) of the family to work with I. The input data (image I) is codified by a set of objects a0 ij, with a∈ C and 1 ≤i, j ≤nand kis referred to the number of processing cells. So, when we work with a parallel architecture we do not have to know previously an exact number of processors to work. Then, we introduce the parameter kto solve this problem. The functioning of a P system of the family consists of the following stages: •First of all, the P system generates 8 auxiliary copies of the input data. Then, we have 9 codifications of the input image, but one of them is distinguished of the rest. So, we can work with each pixel without taking into account what happens with the rest of the image. •Second, the P system applies a basic noise filter in order to eliminate some pickle noise that could affect the segmentation process. The P system will apply the largely used average filter because of its simplicity and good results. For each pixel, the process consists of calculating the average average of its adjacent pixels. If the distance between the pixel and its average is greater than a threshold ρ, the pixel will be considered as noise and it will be replaced by its average colour. •Next, the P system performs a thresholding of the image to solve the problem of degradation of colours of pixels in the boundary of adjacent regions with different colours. •Once this process is finished, the P system applies a translation of rules defined in [11] obtaining an edge-based segmentation of the image took of the previous stage. The family Π={Π(n, k) : n, k ∈N}of tissue-like P systems of degree k+ 1 is defined as follows: For each n, k ∈N, Π(n, k) = (Γ, Σ, E, w1, . . . , wk+1,R, iΠ, oΠ),
Designing Tissue-like P Systems to Parallel Architectures 49 defined as follows: •Γ=Σ∪ {aij, a00 ij,¯aij, Aij , A0 ij, A00 ij, Aij , Aij,(a, 1)ij,(a, 2)ij,(a, 3)ij : 1 ≤i, j ≤ n, a ∈ C} is the working alphabet; •the input alphabet is Σ={a0 ij : 1 ≤i, j ≤n, a ∈ C, I(i, j) = a}; •the environment alphabet is E=Γ\Σ; •the multisets of the cells are w1={{ν3 ij, ν3 ji :i= 0, n + 1,0≤j≤n+ 1}}, w2=···=wk+1 =Tdn2/ke, respectively. We call to the last kcells as processing cells; •Ris the following set of communication rules: 1. (1, a0 ij/a8 ijAij ,0) for 1 ≤i, j ≤n. These rules are used to generate new elements, so the P system can work in parallel with each pixel and forget what happen with the rest of the image. The P system first uses these elements to work with the noise of our image. 2. 1, ci−1j−1di−1jei−1j+1 bij−1Aij fij+1 li+1j−1hi+1jgi+1j+1 / T, t for – 1 ≤i, j ≤n, –a, b, c, d, e, f, g, h, l ∈ C ∪ {ν}. This type of rules are used to translate each object Aij and one copy of their neighbours (objects) to a processing cell. We are sure that all the pixels not go to the same cell, because our P system has n2or n2+1 objects T spread over processing cells, each one with a similar number of copies of T. 3. t, ci−1j−1di−1jei−1j+1 bij−1Aij fij+1 li+1j−1hi+1jgi+1j+1 / α0 ij,0 for – 1 ≤i, j ≤n, –a, b, c, d, e, f, g, h, l ∈ C ∪ {ν}, – We take µas the number of pixels with colors in Cand ν= 0. Then, av(a)=(b+c+d+e+f+g+h+i)/µ, –αis the nearest colour in Cto the average colour av(a) with |α−av(a)|> ρ, with ρ∈R. 4. t, ci−1j−1di−1jei−1j+1 bij−1Aij fij+1 ii+1j−1hi+1jgi+1j+1 / a0 ij,0 for – 1 ≤i, j ≤n, –a, b, c, d, e, f, g, h, i ∈ C ∪ {ν},
50 J. Carnero et al. – We take µas the number of pixels with colors in Cand ν= 0. Then, av(a)=(b+c+d+e+f+g+h+i)/µ, –|a−av(a)| ≤ ρ, where ρ1∈R. This set of rules is used to detect the noise and correct it with the average colour of its adjacent pixels. We find here a local thresholding (with respect to the colors) with predefined threshold ρ. In fact, we are simulating one of the more typical algorithms to remove noise. The P system changes the notation of the objects which are codifying pixels and they adopt the form a0 ij, with a∈ C. 5. (t, b0 ij/A0 ij,0) for – 1 ≤i, j ≤n, –τ= (|C|/ρ2), l= 0,1,2, . . . , ρ2, – If b∈ C then a∈ C (a < b ≤a+ (τ−1) and a=τ·l) or (b=a=τ·l), – If b=νthen A=ν. These rules are used to discretize the colors dividing the set of colors in ρ2 subsets of length ν. We find here a general thresholding (with respect to the colors) with predefined threshold ν. 6. (t, A0 ij/T, 1) for – 0 ≤i, j ≤n+ 1, 2 ≤t≤k+ 1, –a∈ C. This set of rules are used to send our transformed image to the cell 1. Now, the objects A0 ij encode the pixels of our image. 7. (1, A0 ij/A00 ijAij a8 ij,0) for – 0 ≤i, j ≤n+ 1, –a∈ C ∪ {ν}. The P system uses these rules to generate enough copies of our image to perform the segmentation process in the cells 2, . . . , k and k+1. The objects A00 ij are used in the second part of the segmentation. The rest of the objects are used in the first part of the segmentation. 8. t, ci−1j−1di−1jei−1j+1 bij−1Aij fij+1 ii+1j−1hi+1jgi+1j+1 / T, t for – 1 ≤i, j ≤n, – and a, b, c, d, e, f, g, h, i ∈ C ∪ {ν}. These rules are defined to send new objects to the processing cells to do the first part of the segmentation. We look for edge pixels.
Designing Tissue-like P Systems to Parallel Architectures 51 9. (t, Aijbkl/Aijbkl,0), for – 1 ≤i, j, k, l ≤n, (i, j),(k, l) adjacent pixels, –a, b ∈ C and a < b. These rules are used to mark edge pixels. In fact, the the P system brings from the environment an object of the form Aij for each edge pixel. Our problem is the edge pixels not always are adjacent. So, we do not have an only one set of connected edge pixel forming a boundary. Then, we should add the necessary pixel to connect all the edge pixels of a boundary. 10. (t, Aij/T, 1) for – 1 ≤i, j ≤n, –a∈ C. These rules send the edge pixels to the cell 1. 11. (1, Aij/(a, 1)2 ij,0) for – 0 ≤i, j ≤n+ 1, –a∈ C ∪ {ν}. The P system uses these rules to generate two copies of our edge pixels to perform the second part of the segmentation in processing cells. 12. (1, A00 ij/(a, 2)2 ij,0) for – 0 ≤i, j ≤n+ 1, –a∈ C ∪ {ν}. The P system uses these rules to generate enough copies of our image to perform the second part of the segmentation in processing cells. 13. µ1,(a, 1)i−1j−1(a, 2)i−1j (b, 2)ij−1(a, 1)ij / T, t¶µ1,(b, 2)i−1j−1(a, 1)i−1j (a, 1)ij−1(a, 2)ij / T, t¶ µ1,(a, 1)i−1j−1(b, 2)i−1j (a, 2)ij−1(a, 1)ij / T, t¶µ1,(a, 2)i−1j−1(a, 1)i−1j (a, 1)ij−1(b, 2)ij / T, t¶ for – 1 ≤i, j ≤n, –a, b ∈ C. These rules are defined to send new objects to the processing cells to do the second part of the segmentation. We look for new edge pixels. 14. µ1,(a, 1)i−1j−1(a, 2)i−1j (b, 2)ij−1(a, 1)ij /(a, 3)i−1j−1(a, 3)i−1j (b, 2)ij−1(a, 3)ij , t¶ µ1,(b, 2)i−1j−1(a, 1)i−1j (a, 1)ij−1(a, 2)ij /(b, 2)i−1j−1(a, 3)i−1j (a, 3)ij−1(a, 3)ij , t¶
58 J. Carnero et al. Fig. 8. 16x16 color image segmentation 5 Conclusions and Future Works Problems associated with the treatment of Digital Images have several interesting features from a bio-inspired point of view. One of them is that they can be suitable for parallel processing, since the same sequential algorithm is usually applied in different regions of the image. In this paper, we study the advantages and drawbacks of considering a hardware implementation of tissue-like P systems solving the segmentation problem on a hardware programming tool (FPGA). The theoretical study has been made via the language programming VHDL [2] and currently we are in the process of the real hardware implementation. In addition, although the segmentation example showed here is a synchronous tissue-like P system, we want in the next future to work with asynchronous tissuelike P systems in order to optimize performance. Many questions remains open as future work. One of them is the treatment of the noise in images with Membrane Computing techniques, or the parallelization and automatization of the choice of the threshold by artificial intelligence techniques. Acknowledgements DDP and MAGN acknowledge the support of the projects TIN-2009-13192 of the Ministerio de Ciencia e Innovaci´on of Spain and the support of the Project of Excellence of the Junta de Andaluc´ıa, grant P08-TIC-04200. JC acknowledges the support of the project MTM2009-12716 of the Ministerio espa˜nol de Educaci´on y Ciencia, the project PO6-TIC-02268 of Excellence of Junta de Andaluc´ıa, and the Computational Topology and Applied Mathematics PAICYT research group FQM-296. References 1. Abdala, D.D., Jiang, X.: Fiber segmentation using constrained clustering. In: Zhang, D., Sonka, M. (eds.) ICMB. Lecture Notes in Computer Science, vol. 6165, pp. 1–10. Springer (2010)
Designing Tissue-like P Systems to Parallel Architectures 59 2. Ashenden, P.J.: The Designer’s Guide to VHDL. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2nd edn. (2001) 3. Borrego-Ropero, R., D´ıaz-Pernil, D., P´erez-Jim´enez, M.J.: Tissue simulator: A graphical tool for tissue P systems. In: Vaszil, G. (ed.) Proceedings of the International Workshop Automata for Cellular and Molecular Computing. pp. 23–34. MTA SZTAKI, Budapest, Hungary (August 2007), satellite of the 16th International Symposium on Fundamentals of Computational Theory 4. Carnero, J., D´ıaz-Pernil, D., Molina-Abril, H., Real, P.: Image segmentation inspired by cellular models using hardware programming. Image-A 1(3), 143–150 (2010) 5. Cecilia, J.M., Garc´ıa, J.M., Guerrero, G.D., Mart´ınez-del-Amor, M.A., P´erez- Hurtado, I., P´erez-Jim´enez, M.J.: Implementing P systems parallelism by means of GPUs. In: P˘aun et al. [27], pp. 227–241 6. Cecilia, J.M., Garc´ıa, J.M., Guerrero, G.D., Mart´ınez-del-Amor, M.A., P´erez- Hurtado, I., P´erez-Jim´enez, M.J.: Simulating a P system based efficient solution to SAT by using GPUs. Journal of Logic and Algebraic Programming 79(6), 317–325 (2010) 7. Cecilia, J.M., Garc´ıa, J.M., Guerrero, G.D., Mat´ınez-de-Amor, M.A., P´erez-Hurtado, I., P´erez-Jim´enez, M.J.: Simulation of P systems with active membranes on CUDA. Briefings in Bioinformatics 11(3), 313–322 (2010) 8. Ceterchi, R., Gramatovici, R., Jonoska, N., Subramanian, K.G.: Tissue-like P systems with active membranes for picture generation. Fundamenta Informaticae 56(4), 311– 328 (2003) 9. Ceterchi, R., Mutyam, M., P˘aun, Gh., Subramanian, K.G.: Array-rewriting P systems. Natural Computing 2(3), 229–249 (2003) 10. Chao, J., Nakayama, J.: Cubical singular simplex model for 3D objects and fast computation of homology groups. In: 13th International Conference on Pattern Recognition (ICPR’96). vol. IV, pp. 190–194. IEEE Computer Society, IEEE Computer Society, Los Alamitos, CA, USA (1996) 11. 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.) CIARP. Lecture Notes in Computer Science, vol. 5856, pp. 169–176. Springer (2009) 12. Ciobanu, G., Wenyuan, G.: P systems running on a cluster of computers. In: Mart´ın- Vide et al. [19], pp. 123–139 13. D´ıaz-Pernil, D., Graciani, C., Guti´errez-Naranjo, M.A., P´erez-Hurtado, I., Mario J. P´erez-Jim´enez, M.: Software for P systems. In: P˘aun et al. [28], pp. 437–454 14. D´ıaz-Pernil, D., Guti´errez-Naranjo, M.A., Molina-Abril, H., Real, P.: A bio-inspired software for segmenting digital images. In: Nagar, A.K., Thamburaj, R., Li, K., Tang, Z., Li, R. (eds.) Proceedings of the 2010 IEEE Fifth International Conference on Bio-Inspired Computing: Theories and Applications BIC-TA. vol. 2, pp. 1377 – 1381. IEEE Computer Society (2010) 15. Gershoni, R., Keinan, E., P˘aun, Gh., Piran, R., Ratner, T., Shoshani, S.: Research topics arising from the (planned) P systems implementation experiment in Technion. In: D´ıaz-Pernil, D., Graciani, C., Guti´errez-Naranjo, M.A., P˘aun, Gh., P´erez- Hurtado, I., Riscos-N´u˜nez, A. (eds.) Sixth Brainstorming Week on Membrane Computing. pp. 183–192. F´enix Editora, Sevilla, Spain (2008) 16. 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)
60 J. Carnero et al. 17. Kim, S.H., Kim, H.G., Tchah, K.H.: Object oriented face detection using colour transformation and range segmentation. Electronics Letters, IEEE 34, 979–980 (1998) 18. Kropatsch, W.G., Haxhimusa, Y., Ion, A.: Multiresolution image segmentations in graph pyramids. In: Kandel, A., Bunke, H., Last, M. (eds.) Applied Graph Theory in Computer Vision and Pattern Recognition, Studies in Computational Intelligence, vol. 52, pp. 3–41. Springer (2007) 19. Mart´ın-Vide, C., Mauri, G., P˘aun, Gh., Rozenberg, G., Salomaa, A. (eds.): Membrane Computing, International Workshop, WMC 2003, Tarragona, Spain, July 17- 22, 2003, Revised Papers, Lecture Notes in Computer Science, vol. 2933. Springer (2004) 20. 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) 21. Mart´ın-Vide, C., Pazos, J., P˘aun, Gh., Rodr´ıguez-Pat´on, A.: A new class of symbolic abstract neural nets: Tissue P systems. In: Ibarra, O.H., Zhang, L. (eds.) COCOON. Lecture Notes in Computer Science, vol. 2387, pp. 290–299. Springer (2002) 22. Nguyen, V., Kearney, D., Gioiosa, G.: Balancing performance, flexibility, and scalability in a parallel computing platform for membrane computing applications. In: Eleftherakis, G., Kefalas, P., P˘aun, Gh., Rozenberg, G., Salomaa, A. (eds.) Workshop on Membrane Computing. Lecture Notes in Computer Science, vol. 4860, pp. 385–413. Springer (2007) 23. Nguyen, V., Kearney, D., Gioiosa, G.: An algorithm for non-deterministic object distribution in p systems and its implementation in hardware. In: Corne, D.W., Frisco, P., P˘aun, Gh., Rozenberg, G., Salomaa, A. (eds.) Workshop on Membrane Computing. Lecture Notes in Computer Science, vol. 5391, pp. 325–354. Springer (2008) 24. Nguyen, V., Kearney, D., Gioiosa, G.: A region-oriented hardware implementation for membrane computing applications. In: P˘aun et al. [27], pp. 385–409 25. Nguyen, V., Kearney, D., Gioiosa, G.: An extensible, maintainable and elegant approach to hardware source code generation in reconfig-P. Journal of Logic and Algebraic Programming 79(6), 383–396 (2010) 26. P˘aun, Gh.: Membrane Computing. An Introduction. Springer-Verlag, Berlin, Germany (2002) 27. P˘aun, Gh., P´erez-Jim´enez, M.J., Riscos-N´u˜nez, A., Rozenberg, G., Salomaa, A. (eds.): Membrane Computing, 10th International Workshop, WMC 2009, Curtea de Arges, Romania, August 24-27, 2009. Revised Selected and Invited Papers, Lecture Notes in Computer Science, vol. 5957. Springer (2010) 28. P˘aun, Gh., Rozenberg, G., Salomaa, A. (eds.): The Oxford Handbook of Membrane Computing. Oxford University Press (2010) 29. Petreska, B., Teuscher, C.: A reconfigurable hardware membrane system. In: Mart´ın- Vide et al. [19], pp. 269–285 30. Ritter, G.X., Wilson, J.N., Davidson, J.L.: Image algebra: An overview. Computer Vision, Graphics, and Image Processing 49(3), 297–331 (1990) 31. Shapiro, L.G., Stockman, G.C.: Computer Vision. Prentice Hall PTR, Upper Saddle River, NJ, USA (2001) 32. Syropoulos, A., Mamatas, L., Allilomes, P.C., Sotiriades, K.T.: A distributed simulation of transition P systems. In: Mart´ın-Vide et al. [19], pp. 357–368 33. Tarabalka, Y., Chanussot, J., Benediktsson, J.A.: Segmentation and classification of hyperspectral images using Watershed transformation. Pattern Recognition 43(7), 2367–2379 (2010)
Designing Tissue-like P Systems to Parallel Architectures 61 34. Tobias, O.J., Seara, R.: Image segmentation by histogram thresholding using fuzzy sets. IEEE Transactions on Image Processing 11(12), 1457–1465 (2002) 35. Trimberger, S.M.: Field-Programmable Gate Array Technology. Kluwer Academic Publishers, Norwell, MA, USA (1994) 36. Wang, D., Lu, H., Zhang, J., Liang, J.Z.: A knowledge-based fuzzy clustering method with adaptation penalty for bone segmentation of ct images. In: Proceedings of the 2005 IEEE Engineering in Medicine and Biology 27th Annual Conference. pp. 6488– 6491 (2005) 37. Yazid, H., Arof, H.: Image segmentation using watershed transformation for facial expression recognition. In: IFMBE Proceedings, 4th Kuala Lumpur International Conference on Biomedical Engineering. pp. 575–578 (2008) 38. Yuan, X., Situ, N., Zouridakis, G.: A narrow band graph partitioning method for skin lesion segmentation. Pattern Recognition 42(6), 1017–1028 (2009) 39. NVIDIA Corporation. NVIDIA CUDAT M Programming Guide. http://www.nvidia.com/object/cuda home new.html 40. P system web page. http://ppage.psystems.eu