Claire Labit-Bonis

Jérôme Thomas
email: jerome.thomas@actia.fr

Frédéric Lerasle
email: lerasle@laas.fr

Francisco Madrigal

Fast tracking-by-detection of bus passengers with Siamese CNNs

Knowing the exact number of passengers among the city bus fleets allows public transport operators to optimally distribute their vehicles into the traffic. However, interpreting overcrowded scenarios, at rush hour, with day/night illumination changes can be tricky. Based on the visual trackingby-detection paradigm, we benefit from video stream information provided by cameras placed above doors to infer people trajectories and deduce the number of enterings/leavings at every bus stop. In this way a person detector estimates the location of the passengers in each image, a tracker matches detections between successive frames based on different cues such as appearance or motion, and infers trajectories over time. This paper proposes a fast and embeddable framework that performs person detection using relevant state-of-the-art CNN detectors, and couple the best one (in our applicative context) with a newly designed Siamese network for real-time tracking/data association purposes. Evaluations on our own large scale in-situ dataset are very promising in terms of performances and real-time constraint expected for on-board processing.

Introduction

Several bus passenger counting systems already exist, e.g. electronic ticket validators or floor-located sensors; we focus on passenger detection based on embedded exteroceptive sensors placed above the doors. Many sensor technologies showed good performance, e.g. radar [START_REF] He | A regression-based radar-mote system for people counting[END_REF], active camera [START_REF] Rauter | Reliable human detection and tracking in topview depth images[END_REF], or laser scanner [START_REF] Chen | Svm based people counting method in the corridor scene using single-layer laser scanner[END_REF]. Their cost and recent advances in computer vision motivated our choice to use conventional and cheap perspective cameras for our application.

With a full view of inside the bus, counting could be summed up as the detection of all passengers at once when the bus leaves a stop. In this setting, too many cameras are needed to cover the whole vehicle which can be from 10 to 18m long. Then, we must settle for fewer sensors placed above each door: estimating the number of people going in/out at each stop, in each view, will give insight into the global passenger flow. Figure 1 provides examples of such views, taken from our dataset.

To overcome frame-by-frame detector limitations, we

Multiple-people tracking-by-detection methods are widely investigated in the literature and find m any applications. Within public transport, more specifically i n city buses, we can study bus lines occupancy rate by counting passengers and help the operator to optimaly distribute its fleets o f v ehicles. C ounting p assengers independently from the ticket validation systems can also provide good estimates for frauds. Several market studies show real needs for such systems in public transport [START_REF] Letshwiti | Appropriate technology for automatic passenger counting on public transport vehicles in south africa[END_REF]. Hence, there are two main challenges: (i) dealing with highly cluttered scenes during rush hour and relatively sparse at off-peak hour both with illumination changes, and (ii) providing online, real-time and high accuracy performances perform this task through tracking-by-detection. Dealing with overcrowded scenes, thus lots of trajectories to manage at the same time, becomes one of the main challenges.

Counting passengers using tracking-by-detection implies three steps: (i) detect people on a frame-by-frame basis, (ii) associate detections between frames to reconstruct consistent trajectories, (iii) analyse trajectories directions to determine whether passengers went indoors/outdoors, and finally count them. We focus on the second step, i.e. associating detections in the video stream using the outputs of the best Convolutional Neural Network (CNN) based detector prototyped for our application.

Multiple-people tracking most often deals with front views of pedestrians [START_REF] Milan | Mot16: A benchmark for multi-object tracking[END_REF][START_REF] Geiger | Are we ready for autonomous driving? the kitti vision benchmark suite[END_REF]. Due to buses narrowness, taking such videos from inside the vehicle would lead to drastic occlusions and thus bad performances. This drawback can be avoided with zenithal viewpoint cameras placed above the doors. It then differs from classic applications, e.g. for pedestrian detection/tracking, as it can be seen in plethora of public benchmarks/challenges in the literature.

CNN offline learning based methods have proved to be effective both in terms of object detection and data association, but require specific training on goal-related datasets. No public labelled ones exist in the context of public transport and zenithal indoor point of view, therefore no comparison to public benchmarks can be led and specific trainings have to be performed. To this end, we acquired and labelled our own videos on a sufficiently long period of time to get all the variability, clutter and illumination changes we need to be challenged with: acquisitions were done and monitored in a city center bus during daylight and night hours, with a few as well as huge amount of passengers.

Given that the application has to run in real time -or at least between two bus stops, we must meet the requirement of on-board processing with low computing capacity hardware, close to Jetson TX2-like configuration. It is then necessary to use compact and high-speed neural networks while ensuring enough performances on the tasks to perform, i.e. detection along with tracking.

As a recap, passenger counting in city buses implies dealing with complex rush hour cluttered scenes involving the management of many trajectories at the same time, processed on platforms with limited CPU resources. Handling such constraints, especially with the use of greedy, yet very effective deep learning methods, requires the optimization of the neural networks used for object detection as well as data association. In this context, our contributions relate to the design of nearly real-time embedded tracking-bydetection within our applicative context of public transport and zenithal view, thanks to:

• the comparison of state-of-the-art CNN detectors,

• the prototyping of a fast siamese CNN for detection association in the video stream in order to address realtime constraints: tracking a huge number of targets in highly cluttered scenes with deep learning methods remains a major challenge,

• the evaluation of such techniques on our large scale bus passengers dataset, showing state-of-the-art tracking performance along with higher frame rates. [START_REF] Huang | Speed/accuracy trade-offs for modern convolutional object detectors[END_REF] demonstrates the benefits of replacing SSD feature extractor with a newer and more powerful MobileNet [START_REF] Howard | Mobilenets: Efficient convolutional neural networks for mobile vision applications[END_REF] architecture to take a leap forward in terms of speed, at lower detection performance costs.

Related work

Faster R-CNN, YOLO and SSD show great ability to detect people on the Pascal VOC [START_REF] Everingham | The pascal visual object classes challenge: A retrospective[END_REF] dataset with 79.6, 79.4 and 81.3% of average precision for the person class respectively, depending on the base network used for feature extraction. Such performances and execution speeds legitimize their comparison in our applicative context.

Detection association and similarity function

Matching targets over successive frames is known as data association. It is commonly represented as a graph optimization problem [START_REF] Berclaz | Multiple object tracking using k-shortest paths optimization[END_REF][START_REF] Zhang | Online multi-person tracking by tracker hierarchy[END_REF] where each node is a detection and each edge is a potential link between them. Solving the assignment problem consists in minimizing the total association cost, i.e. the sum of all the edges of associated nodes, which can de done with classic approaches like the Hungarian algorithm [START_REF] Kuhn | The hungarian method for the assignment problem[END_REF]. The challenge is to define a similarity function able to generate discriminatory representations, in order to have the lowest cost value between two similar detections and the highest value between two different ones.

In the domain of pedestrian similarity matching and re-identification, learning such features with convolutional based methods outperformed handcrafted ones [START_REF] Li | Deepreid: deep filter pairing neural network for person re-identification[END_REF][START_REF] Wojke | Deep cosine metric learning for person re-identification[END_REF] and is now widely used. Because it offers good performance and an online, real-time approach for multi-object tracking (MOT) based on CNN embedding for similarity learning, the work of Wojke et al. is in complete agreement with our applicative context. They propose a cosine metric learning framework [START_REF] Wojke | Deep cosine metric learning for person re-identification[END_REF], trained on a re-identification dataset and integrate it in their tracker [START_REF] Wojke | Simple online and realtime tracking with a deep association metric[END_REF] to compute distinctive features for each new detection. More specifically, they train a network with as many output neurons as there are distinct identities in the re-identification dataset, then remove these classification neurons. Thus, they get a structure trained to take a detection patch as input and generate a 128-d feature vector as output. Data association is performed by computing (i) the cost matrix of cosine distances for all possible matchings between existing tracklets and newly detected objects, and (ii) a weighted version of this matrix based on tracklets motion predictions of a Kalman filter, which ensures spatial coherence in the image plane. The minimal cost matching is finally solved by the Hungarian algorithm [START_REF] Kuhn | The hungarian method for the assignment problem[END_REF]. The upper part of figure 3 depicts the reidentification network used during training.

Similarly to this cosine metric learning framework, many approaches train classification networks to correctly predict input images classes among several distinct identities before removing last layers, thus retarget the network for embedding purposes [START_REF] Sun | Deeply learned face representations are sparse, selective, and robust[END_REF][START_REF] Taigman | Deepface: Closing the gap to human-level performance in face verification[END_REF]. As pointed out by Schroff et al. [START_REF] Schroff | Facenet: A unified embedding for face recognition and clustering[END_REF], this technique suffers from poor generalization to unseen identities: to produce an embedding with a goal of re-identification does not guarantee its discriminatory nature. A way to directly produce and compare such embeddings is to minimize the distance between them thanks to contrastive loss [START_REF] Chopra | Learning a similarity metric discriminatively, with application to face verification[END_REF][START_REF] Hadsell | Dimensionality reduction by learning an invariant mapping[END_REF] optimization. It minimizes the distance between positive feature vectors, e.g. extracted from two detections of the same person, and keep a minimum margin distance between negative ones. It is formulated as:

(1 -y) 1 2 d 2 + y * max(0, m -d) 2 , (1)
with y = 0 if the pair is positive, 1 otherwise. m is the minimum margin we want between two dissimilar feature vectors and d is the distance between them. This kind of approach, trained to find a similarity/dissimilarity between two comparable inputs, belongs to the group of siamese architectures: a network takes two inputs to compare, applies layers on them, and compute any output function expressing their similarity/dissimilarity. The two branches of layers applied to each input share their weights sooner or later. Moreover, the size of the inputs being relatively small (a detection patch is (85 × 85 × 3) in our case), this type of architecture is really fast, thus attractive in our context.

Methodology and implementation

All trainings are led on a workstation equiped with an Intel Xeon E5-1620V4 / 3.5 GHz processor, 16GB RAM, and a NVIDIA Titan Xp graphic card. Whenever possible, speed evaluations are given for a Jetson TX2 platform.

Large scale in situ dataset

To conduct our experiments, we recorded ≈ 4h30m of video sequences with a GoPro camera placed above the central door of a city bus. We aim to capture as much variability of scenarios as possible: daylight/night-time scenes, low/high-density passenger flow, appearance/shape differences between individuals. We discard sequences without any passenger, and we undistort and resize all images to (480 × 360) before labelling them with VATIC [START_REF] Vondrick | Efficiently scaling up crowdsourced video annotation[END_REF]. With almost 350 distinct identities, this dataset captures the main scope of real-life situations. Table 1 summarizes details about content and dataset distribution. Figures 1 and4 show few examples used for detection and data association.

Detectors description for further comparison

We first compare the previously cited deep learning based detectors in our applicative context in order to choose Faster R-CNN -Taking advantage of publicly available pre-trained weights and implementations of Faster R-CNN 1,2 , we find two feature extraction configurations that show good performance: ResNet50 [START_REF] He | Deep residual learning for image recognition[END_REF] and ZFNet [START_REF] Zeiler | Visualizing and understanding convolutional networks[END_REF], which are placed upstream of the regression layers. During training, both networks are initialized with weights pre-trained on COCO and Pascal VOC datasets, and we use a learning rate decay on plateau strategy starting at 10 -5 for ResNet50 and 10 -3 for ZFNet.

YOLO -We compare YOLOv2 [START_REF] Redmon | Yolo9000: Better, faster, stronger[END_REF] combined with Darknet-19 feature extractor against YOLOv3 [START_REF] Redmon | Yolov3: An incremental improvement[END_REF] with Darknet-53. Both are loaded with Pascal VOC pre-trained weights and trained with a learning rate starting at 10 -4 . Training is conducted with darknet 3 .

SSD -For the sake of speed and based on the comparative study led by Huang et al. [START_REF] Huang | Speed/accuracy trade-offs for modern convolutional object detectors[END_REF], VGG feature extractor is replaced with MobileNetv1. Profiling this feature extractor shows that speed can be improved by removing the batch normalization (BN) layer applied to each depthwise convolution (cf. figure 2), without notably affecting detection precision. Because most of the time spent in the detector is located in class and bounding box regression layers, the SSD speed comparison with/without BN shown at section 4.2 does not show significant improvements. However, using this architecture further with representation learning will demonstrate real gains in speed, and motivated our choice to use it in both object detection and siamese contexts in order to remain consistent. As described in table 2, we also remove the second-to-last original MobileNet layer so as to output large enough feature maps regarding the size of image inputs and objects to detect. Thus, we compare three different feature extractors coupled with SSD: the original MobileNetv1, the same architecture without the second-tolast layer, and the latter without BN. In order to do a fair comparison of the three architectures, because pre-trained models only exist for the full configuration, the networks are trained from scratch on our dataset. We use Pierluigi Ferrari's Keras implementation 4 of SSD to conduct our experiments. Training is performed with default arguments for the Adam optimizer, i.e. learning rate of 10 -3 , β 1 = 0.9, β 2 = 0.999 and a plateau learning rate decreasing strategy.

Detection association with siamese CNNs

Our goal is to propose a study of siamese networks addressing detection association for MOT purposes within highly cluttered scenes, while remaining consistent with our real-time constraint. Our contribution is two-fold: we compare (i) two different feature extraction structures combined with (ii) two approaches to produce the feature map em- α is the width multiplier factor from the original paper [START_REF] Howard | Mobilenets: Efficient convolutional neural networks for mobile vision applications[END_REF], which increases/decreases the number of filters for each layer. Different values were tested and 0.66 appeared to be a reasonable speed/accuracy trade-off on our dataset.

beddings. Therefore, we propose a fast siamese framework capable of computing discriminatory representations with state-of-the-art performance and less computational time.

Based on the work of Wojke et al. [START_REF] Wojke | Simple online and realtime tracking with a deep association metric[END_REF], we re-train their re-identification network for similarity learning purposes and compare it against a faster MobileNetv1-based network. In the paper, Wojke et al. apply convolutions on an input image, flatten the last (11 × 11 × 128) feature map, and apply a fully connected layer trained for multiclassification, where the number of outputs is the number of distinct identities to classify. We cut the network just before the flattening layer, thus retrieve the last (11×11×128) output volume. Similarly, we cut MobileNetv1 structure after the fifth depthwise convolutional block in order to obtain a (10×10×128) volume. For speed purposes, we also compare two MobileNetv1 versions, i.e. with/without BN layers in depthwise blocks (cf. section 3.2). Left side of figure 3 illustrates this feature extractors comparison.

In the original contrastive loss paper [START_REF] Chopra | Learning a similarity metric discriminatively, with application to face verification[END_REF], the distance d from equation 1 is the euclidean distance between vectors, but other related works show interest in learning a cosine similarity measure in the context of visual object tracking [START_REF] Wang | Visual tracking via weighted local cosine similarity[END_REF][START_REF] Moujahid | Visual object tracking via the local soft cosine similarity[END_REF]; similarly, DeepSORT computes the cost matrix of data association using the cosine distance between vectors. Based on cosine similarity, we use the angular distance between vectors as our distance d: two closely related vectors in the embedding space should have an angular distance near 0, 1 otherwise. The angular distance between two normalized vectors is retrieved from their scalar product.

In order to reduce dimensions of this configuration into a single feature vector, we compare two techniques: (i) we flatten the feature map generated by the feature extractor, e.g. going from a (10 × 10 × 128) feature map in the case of MobileNet to a single 12800-d feature vector, and apply a fully connected layer to project this vector into the 128-d embedding space; (ii) we drastically reduce the number of parameters and execution speed of the first technique by replacing fully connected layers with global average pooling and 1x1 convolutions after the feature extractor last feature map, as described in figure 3.

During training, the siamese CNNs are fed with pairs of (85 × 85 × 3) image patches -the average size of a person in our training set. These patches are the resized outputs of SSD on the training set. Based on the overlap between patches and ground truth, we can determine the real identity label of a detection and thus construct positive/negative pairs as inputs to the siamese network. Training the latter with real detections instead of ground truth patches allows the network to see realistic and not perfectly centered cases. To equally optimize the distance between positive/negative pairs, it is necessary to produce them in equal amount. Thus, as a lot of frames in our training set do not necessarily contain two or more distinct targets, constructing positive/negative pairs for siamese learning has to be done artificially. Positive pairs are generated within a temporal horizon of [0-300] frames between first and second detection, with X ∼ N (µ = 1, σ 2 = 60). In this way, we simulate non-detections and appearance changes. For each positive pair, a negative one is produced: the first patch is the same as in the positive pair, the second patch is randomly picked among all other identities. 5% of the time, we pick a randomly selected SSD false positive output as the second negative patch of the pair. Figure 4 shows examples of positive and negative pairs used during training.

Evaluations and discussion

Hereafter, we justify the choice of SSD along with a customized MobileNetv1 feature extractor as input to data association, and demonstrate performance in line with the literature, at higher frame rates, for our siamese architecture.

Evaluation metrics

As it is common for evaluating object detectors, we use the Pascal VOC [START_REF] Everingham | The pascal visual object classes challenge: A retrospective[END_REF] Mean Average Precision (mAP) metric which gives intuition on detectors global performance. This metric computes the average precision for different recall values from 0 to 1, over all classes, and thus integrates information about both false positive/negative errors.

To evaluate our siamese network against other architectures, we integrate them into the DeepSORT tracker and compute the Multi Object Tracking Accuracy (MOTA) [START_REF] Bernardin | Evaluating multiple object tracking performance: The clear mot metrics[END_REF]. As it relies on many types of errors (false positives, misses, mismatches), this metric gives an overall idea of the tracker ability to compute consistent trajectories over time. [START_REF] Wojke | Deep cosine metric learning for person re-identification[END_REF] and further truncated before the cosine-softmax block to be integrated to DeepSORT tracker [START_REF] Wojke | Simple online and realtime tracking with a deep association metric[END_REF], (ii) on the lower part, the siamese pipeline we used to compare feature extractors (DeepSORT base network vs. MobileNet) and output layers. Right side of the solid line: structure of the two compared output layers. The equal sign between layers means that they share the same weights. We take the example of DeepSORT base network configuration to show output sizes in gray.

Object detection

Figure 5 shows a comparison between Faster R-CNN, YOLO and SSD: we can highlight the correlation between speed and precision. The more precise the detector, the slower it is. But even if the gain in precision is approximately 10% from SSD to Faster R-CNN with ResNet50, SSD still achieves about 75% of mAP while being 14.5× faster, which makes it a reasonable candidate for our embedded application. YOLO is also capable of notable frame rates with good mAP in its original version, but is still far behind SSD in terms of speed. It should be noted that because big architectures like Faster R-CNN do not fit into the Jetson TX2, fps are given on Titan Xp for all detectors. This comparison corroborates the comparative study led by Huang et al. on CNN object detectors [START_REF] Huang | Speed/accuracy trade-offs for modern convolutional object detectors[END_REF], at least for Faster R-CNN and SSD, and the execution time of the latter motivated our choice to use it as input to data association.

Table 3 gets into the details of MobileNet feature extractors comparison for SSD and shows the detector mAP on the training and validation sets with the three different tested architectures. Removing the second-to-last layer of Mo-bileNet feature extractor shows slightly better performance both on training and validation. It can be due to the fact that this layer is usually applied with a stride of 2 and makes the prediction for close objects more difficult (the feature map A slight gain in speed on the target platform can also be observed with the removal of BN layers, but as mentioned in section 3.2 the major time consumption of SSD is located in its regression layers. For further experiments in our embedded context, effort should be put on this part.

Siamese CNNs for data association

As described in table 4, fully connected layers alone account for the major portion of the whole networks parameters: 2 millions for DeepSORT base network, 1.6 million for MobileNets (respectively 75 and 97% of the parameters). Using 1x1 convolutions drastically reduces this proportion (respectively 8 and 64% for DeepSORT and MobileNets), scaling memory usage of full structures down by a factor of 1.5 to 2.7 depending on the base network, and thus leading to faster execution speed. Once integrated to DeepSORT tracking framework, our siamese networks show equivalent MOTA performance to the original architecture trained on our dataset as a re-identification task. However, the architecture we put forward is 1.7× faster.

The estimated time for computing worst case scenario feature vectors shows that our siamese 1x1 architecture with customized MobileNet w/o BN feature extractor is the closest to real-time processing. Such results are very promising and comfort us in the fact that we can embed a full real-time system, or at least process with short delay.

We can notice a difference between min_clutter and max_clutter: it can be partially explained by slightly lower performance of SSD on the first set, due to a larger proportion of false positives. Moreover, the confidence score threshold used to determine which detections to track was arbitrarilly fixed to 0.5 for all sets and configurations. It would be worth choosing a threshold based on the training set tracker performance to get more balanced results and reduce the gap between test sets. This would imply to finetune this threshold over multiple values, accross all training sets, with all similarity learning architectures.

Conclusion

When it comes to online multi-objet tracking-bydetection, especially with huge number of objects to track within highly cluttered scenes, deep learning techniques hardly address real-time constraints. In this paper, we propose a nearly real-time and embeddable architecture applied to bus passengers counting with zenithal cameras. To this end, we first compare state-of-the-art CNN detectors and optimize the best one to meet our on-board requirements. Then, to associate detections over successive frames, we also propose a fast and new siamese architecture showing state-of-the-art performance on our challenging dataset. Several tracks can be explored: based on our evaluations, we may focus on the time-consuming detector regression layers but also get a system-wide overview of passenger counting to have better insight into achievable speed. The three siamese feature extractors combined either with fully connected layers ("FC") or with global average pooling plus 1x1 convolutions ("1x1"). Params accounts for the total number of parameters, i.e. feature extractor combined with last layers. We show the impact of such structural choices on memory usage in megabytes (MB) along with the average number of frames per second (Fps) and the estimated time to compute feature vectors in worst case scenarios (Estim.), i.e. 10 detections per frame throughout 25 frames, on Jetson-TX2. Final tracking performances are evaluated both on min_clutter and max_clutter test scenes in terms of Multi Object Tracking Accuracy (MOTA). Best results are in bold and underlined.

Figure 1 :

 1 Figure 1: Examples taken from our large scale bus passenger dataset. It captures all the variability of real-life situations: illumination, clutter, appearance, shape, etc.

  ) and highly ("max_clutter") populated scenes, containing from 0 to ≈ 10 people at the same time. IDs indicates the number of distinct targets, Clutter indicates the scene congestion (Weak < Medium < High < Strong) -s indicates that the bus seats are also occupied, Illum. describes the illumination variation of the scene (hour of the day, with/without artificial lighting), Variability enumerates few cases taken from the dataset. the best one regarding our real-time constraint and performance expectations. We put forward a fast and custom MobileNetv1-based architecture for SSD feature extraction.

Figure 2 :

 2 Figure 2: MobileNetv1 consists in stacking a convolutional block followed by multiple depthwise blocks. The purple "BatchNorm" block was removed in our modified version.

Figure 3 :

 3 Figure 3: Left side of the solid line: (i) on the upper part, the global training pipeline used in cosine metric learning[START_REF] Wojke | Deep cosine metric learning for person re-identification[END_REF] and further truncated before the cosine-softmax block to be integrated to DeepSORT tracker[START_REF] Wojke | Simple online and realtime tracking with a deep association metric[END_REF], (ii) on the lower part, the siamese pipeline we used to compare feature extractors (DeepSORT base network vs. MobileNet) and output layers. Right side of the solid line: structure of the two compared output layers. The equal sign between layers means that they share the same weights. We take the example of DeepSORT base network configuration to show output sizes in gray.

Figure 4 :

 4 Figure 4: Positive/negative pairs examples used for siamese CNNs training. Within each quadruplet, positive and negative pairs are depicted in first and second rows respectively. The top three quadruplets above the horizontal line show examples built with two different identities. Pairs built with false positive detections are shown on the lower part.

Figure 5 :

 5 Figure 5: Frames per second on Titan Xp vs. Mean Average Precision. Detectors are tested with different feature extractors on both min_clutter and max_clutter test sets. We observe close performances between sets for each detector, and a correlation between precision and execution speed -Faster R-CNN + ResNet being the most precise but slowest detector and SSD the fastest but less precise one.

Table 1 :

 1 Training / validation sets are used for training. We present our results on two test sets: sparsely ("min_clutter"

		Name	Images IDs	Clutter	Illum.	Variability
	Train	video_1 15,382 video_2 18,427 video_3 29,889	46 79 Medium (max 3 + s) Late + artificial Medium (max 4) Daylight 95 High (max 6 + s) Daylight	Height: small, medium, tall. Hats: colours (gray, blue, black, white, pink, green, patterned), types (cap, veil,
	Val.	video_4	9,751	44	Weak (max 3)	Daylight	beret, with pompom, hood). Hair: long, short, bald, blonde, brown, red,
	Test	min_clutter 11,576 max_clutter 20,353	37 43	Weak (max 2) Strong (≈ 10 + s)	Night artificial Night artificial	gray, white, black. Other: stroller, scarf, glasses on top of the head, etc.
		Total (≈ 1h) 105,378 345

Table 2 :

 2 Modified version of MobileNetv1 feature extractor.

	Layer type	# filters/stride	Output size
	Input image	-	360 × 480 × 3
	Conv block	α.32/2	180 × 240 × 21
	Dw conv block	α.64/1	180 × 240 × 42
	Dw conv block	α.128/2	90 × 120 × 84
	Dw conv block	α.128/1	90 × 120 × 84
	Dw conv block	α.256/2	45 × 60 × 168
	Dw conv block	α.256/1	45 × 60 × 168
	Dw conv block	α.512/2	23 × 30 × 337
	5 x Dw conv block	α.512/1	23 × 30 × 337
	Dw conv block	α.1024/1	23 × 30 × 675

Table 3 :

 3 Mean Average Precision (mAP) and frames per second (fps) of SSD feature extraction architectures, with width multiplier α = 0.66. Results are presented on training and validation sets so as not to skew the final SSD evaluation against other detectors. Fps are produced on Jetson TX2. Best results are in bold and underlined. is two times smaller than in the modified version).

		Train	Val
	Feature extractor	mAP	Fps
	Full MobileNet 88.35 83.12 29.95
	Custom w/ BN 90.06 87.06 29.72
	Custom w/o BN 89.87 86.26 30.95

Table 4 :

 4

	min_clutter max_clutter

SSD: github.com/pierluigiferrari/ssd_keras

Acknowledgements

This work is partially supported by the french National Association for Research and Technology (ANRT). We would also like to show our gratitude to TISSEO partners who provided us with access to a bus for video recordings.


Gregory Beurier
email: beurier@lirmm.fr

Fabien Michel
email: fabien.michel@univ-reims.fr

Jacques Ferber
email: ferber@lirmm.fr

Towards an evolution model of multiagent organisms

The study of evolving artificial organisms to build hardware or software complex systems is a promising research track. In this paper, we describe a bio-inspired method that makes agents evolve to form multiagent organisms. This method mimics the functioning of Hox genes in the development of natural embryos and implements techniques from the evolutionary computing field. Furthermore, we study the possibilities of our approach developing multiagent systems that evolve and self-organize in various flag patterns.

Introduction

Many of the systems that surround us are complex. Understanding their properties motivates much if not all of scientific inquiry. That is why the study of complex systems has become recognized in recent years as a scientific discipline [START_REF] Waldrop | Complexity: The emerging science at the edge of order and chaos[END_REF], maybe one of the most promising interdisciplinary fields. The field of involved scientific inquiries covers philosophy, chemistry, physics, computer science, etc.

The study of living organisms, their behavior and evolution, is one of the rapidly developing areas in the study of complex systems. Living systems outperform in many ways complex systems that man has produced. Seeking inspirations from these systems, there are several established and active research communities organized around themes such as self-organization [START_REF] Camazine | Self-Organization in Biological Systems[END_REF], artificial immune systems [START_REF] Hightower | The evolution of emergent organization in immune system gene libraries[END_REF], DNA computing [START_REF] Boneh | On the computational power of dna[END_REF], artificial neural networks [START_REF] Yao | A Review of Evolutionary Artificial Neural Networks[END_REF], morphogenesis [START_REF] Roggen | A morphogenetic evolutionary system: Phylogenesis of the poetic circuit[END_REF], evolutionary computing [START_REF] Koza | Genetic programming[END_REF], etc. Among all these research tracks, we are especially interested in the following questions:

-How a single cell can grow through division and differentiation to a multicellular organism? -How evolution can lead to functional and behavioral adaptation to environment?

Both questions highlight the mechanisms of complexity appearance in the living systems. How a single evolved cell can give birth to complex organisms ? To answer these questions, evolutionary computationists explore three main ways to grow artificial embryos from a single cell (process named embryogeny) [START_REF] Kumar | Computational embryology: past, present and future[END_REF] :

-External: the growth is hand-designed and organisms do not evolve.

-Explicit : the growth is defined in data structures and organisms evolve to "learn" growing process. -Implicit: the growth is the result of interacting behaviours/rules and organisms evolve to "learn" these behaviours/rules.

This paper proposes an implicit embryogeny to explore possibilities of evolving a multiagent system [START_REF] Ferber | Multi-Agent Systems: An Introduction to Distributed Artificial Intelligence[END_REF]. Seeking brainwawes in biology, the interacting behaviors of agents are directly inspired by the functioning of genes involved in the morphogenesis process. Agents replicate and interact to contruct organisms following morphogenetic rules. Morphogenesis is one of the fundamental aspects of developmental biology along with the control of cell growth and cellular differentiation. Morphogenesis is concerned with the shapes of tissues, organs and the spatial distribution of cells that arises during the embryonic development of an organism.

To achieve the learning of growing behaviour, agents evolve. In biology, evolution is a change in the traits of living organisms over generations, including the emergence of new species. The study of evolution processes has leaded to the development of many population-based metaheuristic optimizations methods. Genetic algorithms [START_REF] Holland | Genetic algorithms and classifier systems: Foundations and future directions[END_REF], evolution strategies [START_REF] Rechenberg | Evolutionsstrategie: Optimierung technischer Systeme nach Prinzipien der biologischen Evolution[END_REF], genetic programming [START_REF] Koza | Introduction to genetic programming[END_REF], evolutionary programming [START_REF] Fogel | Artificial Intelligence Through Simulated Evolution[END_REF] are usually quoted. The goal of such methods aims to evolve artificial population of individuals possessing a genetic inheritance (genotype, genome) to explore a problem search-space. The solution of the problem is thus given by an interpretation (program, subroutine), direct translation (behaviour, value, result), etc., of the genetic inheritance of the individual (genotype, genome).

The work presented in this paper is motivated by an attempt to explore the capabilities of a developmental multiagent model that encompasses the notion of "pluri-individual" evolution.

The outlines of the paper are as follows: Section 2 presents a review of some relevant works on embryogeny. In Sect. 3, a brief biological background is given in order to explain the morphogenetic process. The multiagent system model is given in Sect. 4: we first define the agents that mimic embryo cells and then describe the evolutionary model of agents that construct organisms. Simulations of the model are developed in Sect. 5 and discussed in Sect. 6. Finally, we draw conclusions from this work in Sect. 7.

Related works

A number of researchers have implemented morphogenetic models in order to produce realistic phenomena. One of the earliest works returns to Turing (Reaction/Diffusion) [START_REF] Turing | The chemical basis of morphogenesis[END_REF]. Turing proposed linear equations to achieve spatial differentiation, which is done by postulating two substances with mutual interaction and different rates of distributions in space, namely the morphogens. Since Turing studies, the morphogen term is usually employed referring to substances involved in patterning processes.

In the field of Artificial Embryology, de Garis was one of the first to present a work based on cellular automata and genetic programming [START_REF] De Garis | Artificial embryology and cellular differentiation[END_REF]. De Garis's work achieved to grow simple non-convex organisms until the addition of external sources of chemical gradients. Exogenous sources of substances or morphogens are commonly used in research on morphogenesis. For instance, Eggenberger used exogenous morphogens to induce a symmetry break in his digital organisms [START_REF] Eggenberger | Evolving morphologies of simulated 3d organisms based on differential gene expression[END_REF].

Fleischer and Barr [START_REF] Fleischer | A simulation testbed for the study of multicellular development: The multiple mechanisms of morphogenesis[END_REF] developed a simulation framework for multi-cellular pattern formation including chemical diffusion. This framework also includes mechanical factors such as cell adhesion, genetic factors, etc. Fleischer and Barr showed the difficulty of maintaining the size and shape of a multi-cellular organism and pointed out the necessity of combining multiple mechanisms in the pattern formation to guarantee the robustness of the organism. COMPUCELL 3D has been developed to simulate morphogenetic processes in different organisms and also implements phenomena such as cell growth, diffusion of chemical gradients, etc [START_REF] Izaguirre | Compucell, a multi-model framework for simulation of morphogenesis[END_REF]. COMPUCELL 3D highlighted the necessity to model each cell state of an organism to implement differentiation processes. Still, the morphogenesis model of COMPUCELL 3D is limited by the fact that it a priori assumes the shape of the organism as a function of time.

Developing artificial neural networks(ANNs) is a great challenge in researches on morphogenesis. A number of researchers have studied the potential of Lindenmeyer systems (L-systems) [START_REF] Prusinkiewicz | The algorithmic beauty of plants[END_REF] for generating ANNs. 3 Boers and Kuiper used evolutionary algorithms to evolve the rules of L-systems that generate ANNs [START_REF] Boers | Designing modular artificial neural networks[END_REF]. Gruau abandoned L-systems to develop a language called cellular programming based on graphs transformations [START_REF] Gruau | Genetic synthesis of modular neural networks[END_REF]. Cellular programming enables the controlling of the division of cells that grow into ANNs.

Miller developed artificial organisms based on Cartesian Genetic Programming [START_REF] Miller | Evolving developmental programs for adaptation, morphogenesis, and self-repair[END_REF]. Miller's goal is to extend classical Cartesian Genetic Programming to evolve a cell that can build a larger program by iterating the cell's program in its environment. Each cell becomes a part of the program which is literally the organism as a whole. Miller's method permits to build enormous programs that would have required very large amount of information to be specified. Still, this method seems to be expensive in resources for simple problems for which developing a single program is easier.

3 Biological background

Background

In order to describe our bio-inspired model, we now introduce the biological concepts we will use later on. Pattern formation is a key process in embryonic development [START_REF] Wolpert | Principles of Development 2nd edition[END_REF]. During this development, a fertilized egg gives rise via division to various complex structures (body, organs, etc.). Three main processes can be distinguished:

-Cell differentiation: the cells acquire specific functionality/type such as muscle, neuron, cartilage, etc. -Morphogenesis: the cells become "aware" of their spatial position.

-Growth: the cells divide and the organism grows.

Our approach relies on the functioning of genes involved in the morphogenetic process. Morphogenesis has been first studied via the observation of alteration of developmental processes in species. Indeed, Bateson defined Homeosis in 1894 to describe natural variants of species where certain parts of the body plan exhibited morphological features typical of other regions. At the end of the 19 th century, Lewis discovered few mutants drosophila (a fruit fly) which part of the body was transformed into another one (See fig. 1). Lewis then spoke about homeotic alterations. Since the end of the 20 th century, the genes involved in these alterations are known. Those are the same which are involved in the morphogenesis process, the Homeobox genes, or Hox genes. a Photos from http://www.snof.org.

Genes and Hox genes

Genes are regions of DNA inheritance of living creatures. A gene basically encodes the chemical structure of a protein and the way this protein is produced. A protein is produced by a cell when the coding part(CP) of the gene is transcribed. The transcription process depends on regulatory elements(REs) which are other parts of the gene. Some kinds of molecules (proteins, RNA4 , etc.) named transcription factors are able to interact with the REs to:

-Activate or increase the gene transcription.

-Repress or decrease the gene transcription.

Transcription factors may come from the inside (internal) or the outside (external) of the cell. The mechanism of activation/repression is called the regulation system (See Fig. 2). When a protein is involved in the transcription of a gene α, this protein regulates the gene α. In the same way, a gene encoding this protein regulates the gene α. homeobox gene encodes a particular protein called homeodomain protein. Due to its chemical properties, Homeodomain proteins are transcription factors for a number of genes, especially for structural genes. Homeodomain proteins usually act with other transcription factors, such as homeodomain proteins, to form chemical complexes. Hox genes specifically function in patterning the body axis, especially the antero-posterior axis (axis from head to feet). Thus, by providing the identity of particular body regions via regulation of numerous genes, Hox genes determine where limbs and other body segments will grow in a developing foetus or larva for many species. Because of their role in the developmental process, homeodomain proteins can be considered as morphogens.

Drosophila larva development

In order to better understand the role of Hox genes, we will now describe, at a high level of abstraction, the early phases of drosophila larva development. For further information on this subject see [START_REF] Li | Alterations in development, behavior, and physiology in drosophila larva that have reduced ecdysone production[END_REF]. The drosophila oocyte (the female gamete) is polarized by gradients of maternal molecules which are mRNAs 5 . It is important to note that mRNAs have deep effects on the development of a fertilized egg, but they are expressed by cells within the maternal ovary. Within the fertilized egg, these mRNAs are translated into proteins which are transcription factors. Those factors regulate a first set of Hox genes. This process induces the formation of new gradients of proteins within the cell. Those gradients regulate new genes creating new gradients, and so on (See Fig. 3). Rapidly the egg is segmented in zones by numerous proteins gradients. Then, those proteins regulate new genes, the homeotic genes. The homeotic genes are Hox genes which regulate groups of functional/structural genes. For instance, drosophila labial and deformed homeotic genes encode proteins that are expressed in head segments. Within head segments, these proteins activate the genes defining head features. If this transcription factor is damaged, the resulting individual can be a mutant(See Fig. 3.1). It is interresting to note that due to a considerable genetic redundancy, the vertebrates Hox genes has been highly conserved during the Evolution. For instance, there are strong similarities between Hox complexes of tilapia, pufferfish, striped bass, zebrafish, horn shark, human, and mouse; species which are separated by approximately 500 million years of evolution [START_REF] Santini | Evolutionary conservation of regulatory elements in vertebrate hox gene clusters[END_REF].

Model

The proposed MAS model is directly inspired by the functioning of hox genes in the morphogenetic process. Our approach aims to closely mimic this biological process:

-Environment takes the role of egg/embryo, in which maternal gradients of morphogens are diffused. -Agents take the role of cells and their behavior is an interpretation of a genome composed by Hox genes and behavioural genes. They are called cellagent.

Environment and information

The environment is a discretized rectangular surface (8-connexity) representing either a toroidal world or a closed world. The environment acts primarily as an interaction medium. Gradient of maternal substances are initially present to initiate the developmental process. These gradients are placed randomly or in an ad-hoc manner, depending on the organism adaptation objectives. The maternal gradients assume the role of biological mRNAs (cf. Sect. 3.3) as in natural morphogenesis. De Garis achieved to grow convex shapes with such an addition of external morphogens [START_REF] De Garis | Artificial embryology and cellular differentiation[END_REF]. The evolution of the system is discrete and can be described as follows: Let S (t) be the system state at time t, which is characterized by a set ψ of agents in the environment E:

S (t) = (E (t) , ψ) → S (t+1) = (E (t+1) , ψ) (1)
The information management is comparable to a biological plain diffusion. This management involves equalizing the concentration of proteins/substances within the environment. Amount of proteins varies each step in each space unit as follows: (1) proteins importation from the 8-neighbors space, (2) proteins export towards the 8-neighbors space, (3) proteins evaporation, (4) drop of proteins by agents. The coefficient of diffusion and the evaporation rate are the plain diffusion parameters for every kind of proteins. Various kind of plain diffusion algorithms have been used without affecting the behaviour of the model.

Agents

Our approach extends the classical models using logical regulatory networks by distinguishing morphogenetic interactions (Hox genes) and functionnal interactions (Behavioural genes). In our model cell-agents are reactive. Each cell-agent has a genome (set of genes) which describes the agent's behaviour. There are two types of genes:

-Hox genes which are involved in the patterning process of the organism.

-Behavioural genes that encode the agents' behaviour.

A gene is composed by two parts: (1) the coding part(CP) and (2) the regulatory elements(REs). The CP encodes the primary function of the gene. The REs encode the interaction properties that enable the regulation of the gene. If a gene is correctly regulated, it expresses the function encoded in its CP.

The CP of Hox genes encodes the properties and the emitted quantity of a particular homedomain protein. The protein properties are the diffusion model parameters. When a Hox gene is activated, a diffusing protein is produced with corresponding evaporation rate and diffusion coefficient. The Hox gene CP is implemented in a set of binary digits, namely a bitset. The CP can easily be extended to add extra properties to the produced proteins (e.g. type, colour, etc.).

In the case of behavioural genes, the type of the CP depends on the nature of the implemented function. Indeed, the CP works as an evolutionary computing standard tool. For instance, the CP can be a tree encoding a part of a program (like in genetic programming [START_REF] Koza | Introduction to genetic programming[END_REF]), a bitset encoding a specific parameter/value (like in genetic algorithm [START_REF] Holland | Genetic algorithms and classifier systems: Foundations and future directions[END_REF]), a graph, etc. The CP of behavioural genes encodes a behavioural/physical characteristic of the agent (e.g. size, reproduction behaviour, etc.).

The REs encode the interaction of the gene with the proteins gradients in environment to enable the regulation process. The formal description of REs is inspired by the Reaction/Diffusion model [START_REF] Turing | The chemical basis of morphogenesis[END_REF] (See Fig. 5). The REs encode a chemical reaction involving the transcription factors6 of the gene. First of all, a bitset encodes which proteins are the transcription factors of the gene. These transcription factors are randomly chosen at the beginning of the simulation (namely C, B, D, A in Fig. 5). The second part of the REs, called the reaction part(RP), encodes the chemical reaction. The RP is decomposed into equal parts representing reaction factors with each of the transcription factors. The last part encodes the reaction unit quantity, an integer. The REs functions as follows: An agent perceives proteins in its space unit. An integer quantity is associated to each kind of perceived proteins. If this protein is a transcription factor of a gene, the chemical reaction of this gene RP is applied: let Q be the quantity of perceived transcription factors, Rf the value of the reaction factor for this transcription factor, U the unit value and N r the result of the reaction. (See Fig. 1 for examples). In standard reactions, if N r is higher than 1 for all the transcription factors of the gene, the regulatory elements activate the gene (See line 1 of table 2). REs can be extended to perform more sophisticated or realistic tasks. Actually, the role of the RP is limited to the activation of the CP. Some experiments are led with a second RP. Instead of activating the CP like the first RP does, this second RP inhibits it. This permits to increase the way a gene can be regulated by considering transcription factors as activators and inhibitors at the same time. Another extension deals with activation/inhibition thresholds. The quantities of perceived transcription factors may be high enough to react several times (See line 2-3 of table 2). So, a part can be added to REs to limit the regulation to a certain number of reactions: under or over (or both) a number of reactions encoded in the gene, the CP will be inhibited. This principle is fundamental in the Hox genes functioning. Hox genes encode diffusing proteins that are transcription factors. The quantity of these emitted proteins is implemented into the CP of the gene. To model more sophisticated phenomena, this coding can be modified by calculating the quantities of emitted proteins as a function of the number of reactions of the RP (See line 4 of Table 2).

N r = Q/(Rf * U ) (2)

Genetic model

The evolutionary principles of the model are inspired by classical approaches of the evolutionary computing field. The evolutionary algorithm has been extended to encompass the notion of organism. Every agent possesses a behavioural gene encoding the replication function (mitosis). Hox genes are generated randomly, and behavioural genes depend on designer objectives.

The evolutionary algorithm works as follows:

1. Generate maternal gradients in the environment 2. Generate a population of agents with a random genome 3. Assign fitness to each agent according to objective function on the formed organism 4. Select n individuals according to fitness for reproduction 5. Reproduce offspring by taking two parents at a time and using reproduction operators 6. Apply mutation operators on the offspring 7. Evaluate each offspring and assign fitness 8. Replace old population by offspring according to replacement strategies 9. Unless stopping criterion reached return to step 4

Step 1 is a trivial one: the number of generated gradient depends on the organism adaptation objectives. Gradients generation can be either done randomly or by the simulation designer (in order to accelerate the population convergence. See Sect. 5.1).

Step 2 consists in randomly generating coding parts and regulatory elements for every genes of the agents. This generation can be different according to the nature of the gene (i.e. bitsets, tree of instructions, graphs of values, etc.).

The third step and the seventh step are crucial ones. They consist in simulating each single agent in the pre-generated environment and evaluating the quality of the formed organism. The fitness is given by external(s) observer(s) based on the designer desiderata. It is important to note that fitness function(s) are computed on formed organisms but is assigned to the single agent that has generated the whole organism.

Step 4 involves selection methods of evolutionary computing. Selection consists in choosing the agents that are allowed to reproduce and then transmit their characteristics to the next generation. A lot of methods can be used there. Roulette Wheel Selection, Tournament Selection, Rank Selection, Boltzmann selection are usual selection criteria [START_REF] Koza | Introduction to genetic programming[END_REF].

Step 5 consists in creating new agents (with new genomes) from pre-selected agents. The methods are related to the genes type. For instance, a crossover operator is a standard method for binary encoded genes. The offspring are generated in the hope that they will be better (in the sense of fitness) than their parents. Partial Mapping crossover, Order crossover, Cycle crossover, Edge Recombination crossover, Edge Assembly crossover are examples of crossing techniques [START_REF] Koza | Introduction to genetic programming[END_REF].

Step 6 is used to alter genetic information on genes. This operation is used to prevent the evolutionary algorithm from stagnating at local optima. Mutation is dependant on the gene type. For instance, a mutation on a binary gene consists in a probabilistic switching of one or more digits.

Step 8 determines which offspring will replace old agents in order to generate the new population. Elitism, steady state replacement, CHC selection, are techniques commonly used for this purpose [START_REF] Koza | Introduction to genetic programming[END_REF].

The evolution algorithm is a classical model of evolutionary programming. This algorithm has been extended to fits our embryologic/organism point of view. The genome of an individual neither encodes the solution of a problem nor a program for solving a problem but rather encodes the growth of an organism which would have selected properties to resolve the considered problem.

Evolutionary experiments

The model has been implemented on the MAS platform MadKit [START_REF] Gutknecht | MadKit: Organizing heterogeneity with groups in a platform for multiple multi-agent systems[END_REF] using the TurtleKit framework [START_REF] Michel | Introduction to turtlekit: A platform for building logo based multiagent simulations with madkit[END_REF]. TurtleKit is a simulation engine which provides tools for exploiting multiagent simulations based on agents evolving in a discretized world. TurtleKit also provides tools for plain diffusion management.

In this paper, two experiments are analyzed in order to present step by step the two types of genes. In both experiments, we explore the possibilities of the model by creating organisms that construct flag patterns.

Some modifications have been done to the model to ensure a faster convergence of the system. First of all, in both experiments, the maternal gradients have been deposited according to symmetry axis: bottom-up, up-bottom, left-right, right-left. In natural embryos, these gradients are emitted by the mother during the early phase of the development in order to bootstrap the morphogenetic process. The gradients do not diffuse nor evaporate: the perception of these proteins by agents remains unchanged during simulation. In sect. 6, we discuss the possibility of designing experiments without maternal gradients. Secondly, coding parts of some genes have been simplified by defining in an ad-hoc manner some behaviours or proteins properties: it permits to ignore evolution process on such part and quicken the global evolution of the population.

In both experiments, the fitness of agents is given by external observers and agents eligible for reproduction are chosen via a roulette wheel selection tournament. The fitness consists in a percentage of similarity with a pre-defined pattern. The maximum fitness value is 100 when the formed organism matches perfectly with the pre-defined pattern. Agents are simulated one by one and placed in the center of the environment in order to facilitate evaluation.

French flag

The French flag model of Wolpert [START_REF] Wolpert | The french flag problem: A contribution to the discussion on pattern development and regulation[END_REF] has been the inspiration for the first task the model has to achieve. This model has already been studied by Miller [START_REF] Miller | Evolving the program for a cell: from french flags to boolean circuits[END_REF] using CGP. The evolved organism has to grow a recognizable French flag.

In order to exhibit the role of maternal gradients, the first system has been implemented without hox genes. All agents' genes are directly regulated by proteins gradients initially present in the environment. Agent's genome consists in four genes: mitosis, blue, white and red. The mitosis gene controls the duplicating behaviour of agents. If the mitosis gene is activated, then agents duplicates in the free neighbor spaces. If the colour genes are activated, then agents take the colour corresponding to the gene. By default, agents are green. There is an order relation between colour genes: blue > white > red.

Several simulations have been made using 30 individuals as a population. Figure 6 shows the growth of French flag organisms. The convergence of population is obtained with an average of 250 generations7 . Fig. 6. Growth of fittest from a single agent to a mature French flag organism.

Japanese flag

The second system has been implemented to exhibit the role of hox genes in the patterning process. Moreover the Japanese flag organism has been chosen as a more complex organism. Indeed, circular shapes seem to be a difficult task to achieve in embryologic developmental approaches. Agent's genome consists of three genes: mitosis, Hox and red. By default, agents are white. The same environment (size, maternal gradients) than in French flag experiments has been used. It permitted us to reuse the mitosis gene of evolved French flag agents. Indeed, the mitosis gene specifically controls the size of the formed organism. We used a Japanese flag pattern of the same size as the French flag pattern. It is an important feature the model: by reusing evolved genes, the performance of the evolution algorithm can be significantly increased. This notion is discussed in sect. 6.

Several simulations have been made using diverse size of population. Figure 7 shows the growth of Japanese flag organism.

Discussion

The experiments exhibited the potentiality of the model. This work is in its first stage and there are many ways in which the system can be improved. First of all, the model can be improved to be more realistic by adding, for instance, adhesion laws9 between agents or chemical interactions between proteins. However, since the aim of the work is toward technological applications, it is important to keep the model as simple as possible.

In real biological development, cells acquire functionalities during the growing process. This is done by stem cells that gradually differentiate. One could imagine mimic this process in to better control growth of organism. Indeed, in the model agents are stem cells that duplicate without specifying activated functions in offspring. It can be interesting to fix functional cells in order to produce new behaviours in the evolution process.

Secondly, we are working on substituting maternal gradients by the agents' behaviour themselves. To apply this research on real-world problems, we need to compensate the lack of external signals presence by a better local control. To this end, we believe that Reaction/Diffusion techniques can be useful. Indeed, Gierer and Meinhardt [START_REF] Gierer | A theory of biological pattern formation[END_REF] have shown that interactions between heterogeneous gradients of morphogens can lead to symmetry breaks and polarity gradients formations. Nevertheless, it is our conviction that the maternal gradients are fundamental in the natural embryogenic process and cannot be ignored in order to design sophosticated artificical embryogenies. At the same, we are exploring some modifications of the gene reaction part: the chemical reaction is extended to a function of transcription factors. The preliminary experiments showed great improvements in the pattern refining and symmetry breaking of simulated organisms.

Another great improvement of the model concerns the evolution process. In Sect. 7, we discussed the possibility of reusing evolved genes in order to improve evolutionary convergence. We plan to incorporate this technique into the evolutionary engine to facilitate the design of systems by programmers. In the same way, we plan to modify the mutation operators in order to permit modification of the genome structure of agents. In fact, following the establishment of new sources of gradients in a pattern as a consequence of Hox genes regulation, new gradients may be fired leading to more refined patterns. Nevertheless the refining can be insufficient and lead to local minima. So, we plan to introduce the possibility of adding new Hox genes during the evolution process in order to ensure a better refining of complex organisms.

Conlusion

We have presented and discussed a bio-inspired developmental model of multiagent organisms. Bentley and Kumar demonstrated [START_REF] Kumar | Computational embryology: past, present and future[END_REF] that an evolutionary approach of embryogeny provides significant benefits in evolutionary computation. Indeed, evolutionary models seem to be easier to design in a way to evolve complex solutions. Our embryogeny model is closely inspired by the morphogenetic process and uses a multiagent paradigm. The presented multiagent model involves the evolution of reactive agents sensitive to proteins gradients.

The system has been implemented in order to exhibit its capabilities in forming complex organisms.

Perspectives of such a work are various, but we are actually interested in three issues. The first one deals with complex systems design and especially multiagent systems design. We plan to construct swarm organisms giving the formed organism functions to resolve problems which require distributed resolution. Another interesting research track deals with data encryption and data compression. It can be interesting to consider pre-defined patterns of organisms as a data to compress or to encrypt. Evolved genomes would be thus considered as compressed data which have to evolve to be readable. In the same way, we can imagine to encrypt data in a genome. Then, the relevant key to decrypt data could be either the environment properties or the agents' behaviour.

Finally, we claim that a general model with a high level of abstraction and simple principles can contribute to a better understanding of real biological development processes. Moreover, the multiagent paradigm seems to be a relevant approach to model closely bio-inspired complex systems. It is our conviction that seeking inspiration from biology can help to enrich our understanding of the functioning of complex systems.

  a

Fig. 1 .

 1 Fig. 1. (1): Antennapedia (legs on the place of antennae) -(2): Bithorax (two thoraxes instead of one).

Fig. 2 .

 2 Fig. 2. The regulation system.

Fig. 3 .

 3 Fig. 3. Gradients of homeodomain proteins during the development of drosophila larva.

Fig. 4 .

 4 Fig. 4. Diffusion model in discretized environment.

Fig. 5 .

 5 Fig. 5. Example of regulatory elements.

2 .

 2 Reactions results with various reaction methods. Value are taken from Table 1. Top: Activation result for behavioural genes (activated -Act, inhibited -Inh), Bottom: Quantity of proteins emitted for Hox genes (HQ -Quantities encoded in Hox gene).(1) Standard (2) Treshold 1: min:8, max treshold:14. (3) Treshold 2: min treshold:1, max treshold:6. (4) Function: Quantity emitted = number of reactions * unit * 10 .

Fig. 7 .

 7 Fig. 7. Growth of fittest from a single agent to a mature Japanese flag ism.

Table 1 .

 1 Examples of reactions of the regulatory elements from Fig.5with various quantities of homeodomain proteins.

		Simulation 1	Simulation 2	Simulation 3
	Proteins Quantity Reactions Quantity Reactions Quantity Reactions
	A	0	0	1000	35	336	12
	B	800	1	2448	6	8000	19
	C	200	0	6000	13	22000	48
	D	2620	15	2000	11	2500	168
	Global result	0		6		12

Due to their fractal properties, L-systems are often used for both modeling and visualizing plants.

Ribonucleic acid.

Maternal ribonucleic acids.

The transcription factors are the diffusing homeodomains proteins.

Data taken from 25 simulations.

Data taken from 25 simulations.

Chemical or mechanical laws that postulate adhesion between agents.