Fly algorithm: Difference between revisions

Content deleted Content added
Fpvidal (talk | contribs)
Fpvidal (talk | contribs)
Line 1:
== History ==
 
The Fly algorithm is a type of [[cooperative coevolution]] based on the Parisian approach<ref name=Collet2009>{{cite book |title=Optimization in Signal and Image Processing|chapter=Artificial evolution and the Parisian approach: applications in the processing of signals and images|last2=Louchet,|first2=Jean|last1=Collet|first1=Pierre|publisher=9781848210448|date=Oct 2009|isbn=9781848210448|editor1-last=Siarry|editor1-first=Patrick}}</ref>. The Fly Algorithm has first been developed in 1999 in the scope of the application of [[Evolutionary algorithms]] to [[computer stereo vision]]<ref name=LouchetRFIA2000>{{cite conference |title=L’algorithme des mouches : une stratégie d’évolution individuelle appliquée en stéréovision|last1=Louchet|first1=Jean|conference=Reconnaissance des Formes et Intelligence Artificielle (RFIA2000)|date=Feb 2000|}}</ref><ref name=Boumaza2003>{{cite conference |title=Mobile robot sensor fusion using flies|last1=Boumaza|first1=Amine|last2=Louchet|first2=Jean|publisher=Springer|conference=European Conference on Genetic Programming (EuroGP 2003)|pages=357–367|date=Apr 2003|doi=10.1007/3-540-36605-9_33|isbn= 978-3-540-00976-4|___location=Essex, UK|volume=2611|book-title=Lecture Notes on Computer Science|}}</ref>. Unlike the classical image-based approach to stereovision, which extracts image primitives then matches them in order to obtain 3-D information, the Fly Agorithm is based on the direct exploration of the 3-D space of the scene. A fly is defined as a 3-D point described by its coordinates (''x'', ''y'', ''z''). Once a random population of flies has been created in a search space corresponding to the field of view of the cameras, its evolution (based on the [[Evolutionary Strategy]] paradigm) used a [[fitness function]] that evaluates how likely the fly is lying on the visible surface of an object, based on the consistency of its image projections. To this end, the fitness function uses the grey levels, colours and/or textures of the calculated fly's projections.
 
The first application field of the Fly Algorithm has been stereovision<ref name=Louchet2000ICPR>{{cite conference |title=Stereo analysis using individual evolution strategy|last1=Louchet|first1=Jean|publisher=IEEE|conference=Proceedings of 15th International Conference on Pattern Recognition, 2000 (ICPR’00)|pages=908–911|date=Sep 2000|doi=10.1109/ICPR.2000.905580|isbn=0-7695-0750-6|___location=Barcelona, Spain|}}</ref><ref name=Louchet2001>{{cite journal |title=Using an Individual Evolution Strategy for Stereovision|last1=Louchet|first1=Jean|publisher=Kluwer Academic Publishers|pages=101–109|date=Jun 2001|doi=10.1023/A:1011544128842|volume=2|issue=2|journal=Genetic Programming and Evolvable Machines}}</ref> and its application to obstacle avoidance in vehicles<ref name=Louchet2002>{{cite book |title=Apprentissage Automatique et Evolution Artificielle|chapter=L’algorithme des mouches dynamiques: guider un robot par évolution artificielle en temps réel|last1=Louchet,|first1=Jean|last2=Guyon|first2=Maud|last3=Lesot|first3=Marie-Jeanne|last4=Boumaza|first4=Amine|publisher=Hermes Sciences Publications|pages=|date=Mar 2002|isbn=274620360X|language=French|url=http://jean.louchet.free.fr/publis/2001ECA.pdf|editor1-last=Lattaud|editor1-first=Claude}}</ref>. A variant called the "Dynamic Flies" defines the fly as a 6-uple (''x'', ''y'', ''z'', ''x’'', ''y’'', ''z’'') involving the fly's velocity<ref name=Bomaza2001EvoIASP>{{cite conference |title=Dynamic Flies: Using Real-time evolution in Robotics|last1=Boumaza|first1=Amine|last2=Louchet|first2=Jean|publisher=Springer|conference=Artificial Evolution in Image Analysis and Signal Processing (EVOIASP2001)|pages=288–297|date=Apr 2001|doi=10.1007/3-540-45365-2_30|isbn=978-3-540-41920-4|___location=Como, Italy|volume=2037|book-title=Lecture Notes on Computer Science|}}</ref><ref name=Louchet2002PatterRec>{{cite journal |title=Dynamic Flies: a new pattern recognition tool applied to stereo sequence processing|last1=Louchet,|first1=Jean|last2=Guyon|first2=Maud|last3=Lesot|first3=Marie-Jeanne|last4=Boumaza|first4=Amine|publisher=Elsevier Science B.V.|pages=335–345|date=Jan 2002|doi=10.1016/S0167-8655(01)00129-5|volume=23|issue=1–3|journal=Pattern Recognition Letters|url=http://jean.louchet.free.fr/publis/2001PRL.pdf}}</ref>. The velocity components are not explicitly taken into account in the fitness calculation but are used in the flies' positions updating and are subject to similar genetic operators (mutation, crossover).
 
Another application field of the Fly Algorithm is reconstruction for [[emission Tomography]] in [[nuclear medicine]]. The Fly algorithm has been successfully applied in [[single-photon emission computed tomography]]<ref name=Bousquet2007EA>{{cite conference |title=Fully Three-Dimensional Tomographic Evolutionary Reconstruction in Nuclear Medicine|last1=Bousquet|first1=Aurélie|last2=Louchet|first2=Jean-Marie|last3=Rocchisani|first3=Jean|publisher=Springer, Heidelberg|conference=Proceedings of the 8th international conference on Artificial Evolution (EA’07)|pages=231–242|date=Oct 2007|doi=10.1007/978-3-540-79305-2_20|isbn=978-3-540-79304-5|___location=Tours, France|volume=4926|book-title=Lecture Notes in Computer Science|url=http://jean.louchet.free.fr/publis/EA07Bousquet.pdf|}}</ref> and [[positron emission tomography]]<ref name=Vidal2009EA>{{cite conference |title=Artificial evolution for 3D PET reconstruction|last1=Vidal|first1=Franck P.|last2=Lazaro-Ponthus|first2=Delphine|last3=Legoupil|first3=Samuel|first4=Jean|first5=Évelyne|first6=Jean-Marie|last4=Louchet|last5=Lutton|last6=Rocchisani|publisher=Springer, Heidelberg|conference=Proceedings of the 9th international conference on Artificial Evolution (EA’09)|pages=37–48|date=Oct 2009|doi=10.1007/978-3-642-14156-0_4|isbn=978-3-642-14155-3|___location=Strasbourg, France|volume=5975|book-title=Lecture Notes in Computer Science|url=http://fly4pet.fpvidal.net/pdf/Vidal2009EA.pdf|}}</ref>
<ref name=Vidal2009MIC>{{cite conference |title=PET reconstruction using a cooperative coevolution strategy in LOR space|last1=Vidal|first1=Franck P.|last2=Louchet|first2=Jean|last3=Lutton|first3=Évelyne|last4=Rocchisani|first4=Jean-Marie|publisher=IEEE|conference=Medical Imaging Conference (MIC)|pages=3363–3366|date=Oct-Nov 2009|doi=10.1109/NSSMIC.2009.5401758|___location=Orlando, Florida|book-title=IEEE Nuclear Science Symposium Conference Record (NSS/MIC), 2009|}}</ref>. Here, each fly is considered a photon emitter and its fitness is based on the conformity of the simulated illumination of the sensors with the actual pattern observed on the sensors. Within this application, the fitness function has been re-defined as the (positive or negative_ contribution of the fly considered, to the global conformity of the simulated illumination with the actual one ("marginal fitness" or "marginal evaluation")<ref name=Vidal2010EvoIASP>{{cite conference |title=New genetic operators in the Fly algorithm: application to medical PET image reconstruction|last1=Vidal|first1=Franck P.|last2=Louchet|first2=Jean|last4=Lutton|first4=Évelyne|last3=Rocchisani|first3=Jean-Marie|publisher=Springer, Heidelberg|conference=European Workshop on Evolutionary Computation in Image Analysis and Signal Processing (EvoIASP’10)|pages=292–301|date=Apr 2010|doi=10.1007/978-3-642-12239-2_30|isbn=978-3-642-12238-5|___location=Istanbul, Turkey|volume=6024|book-title=Lecture Notes in Computer Science|url=http://fly4pet.fpvidal.net/pdf/Vidal2010EvoIASP.pdf|}}</ref>.
 
More recently it has been used in digital art to generate mosaic-like images or spray paint<ref name=Abbood2017EvoIASP>{{cite conference |title=Evolutionary Art Using the Fly Algorithm|last1=Ali Abbood|first1=Zainab|last2=Amlal|first2=Othman|last3=Vidal|first3=Franck P.|publisher=Springer|conference=Applications of Evolutionary Computation (EvoApplications 2017)|pages=455-470|date=Apr 2017|doi=10.1007/978-3-319-55849-3_30|___location=Amsterdam, The Netherlands|volume=10199|book-title=Lecture Notes in Computer Science|url=http://fly4pet.fpvidal.net/pdf/Abbood017EvoIASP.pdf|}}</ref>
 
 
<!--ref>{{cite conference |title=|last1=|first1=|last2=|first2=|last3=|first3=|last4=|first4=|publisher=|conference=|pages=|date=|doi=|isbn=|___location=|volume=|book-title=|url=|}}</ref-->
<!--
<ref name=Vidal2010>{{cite journal |title=Flies for PET: An artificial evolution strategy for image reconstruction in nuclear medicine|last1=Vidal|first1=Franck P.|last4=Lutton|first4=Évelyne|last2=Louchet|first2=Jean|last3=Rocchisani|first3=Jean-Marie|publisher=American Association of Physicists in Medicine|page=3139|date=2010|doi=10.1118/1.3468200|isbn=|volume=37|issue=6|journal=Medical Physics|url=http://fly4pet.fpvidal.net/pdf/Vidal2010MedPhys-A.pdf|}}</ref>
-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
== Applications of the Fly algorithnm ==
* Stereo-vision <ref name=LouchetRFIA2000 /><ref name=Boumaza2003 /><ref name=Louchet2000ICPR /><ref name=Louchet2001 />
* Obstacle avoidance <ref name=Louchet2002 /><ref name=Bomaza2001EvoIASP /><ref name=Louchet2002PatterRec />
* SLAM
* SPECT reconstruction <ref Bousquet2007EA />
* PET reconstruction <ref name=Vidal2009EA />
<ref name=Vidal2009MIC /><ref name=Vidal2010EvoIASP />
* Digital arts <ref name=Abbood2017EvoIASP />
* Hand gesture recognition
 
== Methodology ==