All Projects → Murgio → Genetic Algorithm Montage

Murgio / Genetic Algorithm Montage

Licence: apache-2.0
genetic algorithm for self-referential image approximation.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Genetic Algorithm Montage

Cat-Face-Detector-with-OpenCV-and-JavaFX
📹 A Small OpenCV (Open Source Computer Vision) Example, who has the ability to detect multiple cat faces at the same time 🐱
Stars: ✭ 24 (-72.09%)
Mutual labels:  picture, face
visage
Add virtual makeup to picture of a face.
Stars: ✭ 97 (+12.79%)
Mutual labels:  picture, face
interfaces
A diverse set of royalty-free user avatars to be used for marketing graphics and application screenshots.
Stars: ✭ 50 (-41.86%)
Mutual labels:  picture, face
Creepyface
A JavaScript library that makes your face follow the pointer. 🤪🖱️👆
Stars: ✭ 412 (+379.07%)
Mutual labels:  face, picture
Mealpy
A collection of the state-of-the-art MEta-heuristics ALgorithms in PYthon (mealpy)
Stars: ✭ 72 (-16.28%)
Mutual labels:  genetic-algorithm
Mgo
Purely functional genetic algorithms for multi-objective optimisation
Stars: ✭ 63 (-26.74%)
Mutual labels:  genetic-algorithm
Cgp Cnn
A Genetic Programming Approach to Designing CNN Architectures, In GECCO 2017 (oral presentation, Best Paper Award)
Stars: ✭ 59 (-31.4%)
Mutual labels:  genetic-algorithm
Qrcode
💮 amazing QRCode generator in Python (supporting animated gif) - Python amazing 二维码生成器(支持 gif 动态图片二维码)
Stars: ✭ 8,613 (+9915.12%)
Mutual labels:  picture
Noodlesplate
Offline Shader Editor with many cool features
Stars: ✭ 79 (-8.14%)
Mutual labels:  picture
Rubikswift
Rubik's cube API in Swift + a genetic solver algorithm
Stars: ✭ 78 (-9.3%)
Mutual labels:  genetic-algorithm
Snipit
Snipit allows you to capture and save interesting sections from any source of information. Be it textbooks, journals, computer screens, photographs, flyers, writings on a whiteboard, etc.
Stars: ✭ 70 (-18.6%)
Mutual labels:  picture
Super Mario Neat
This program evolves an AI using the NEAT algorithm to play Super Mario Bros.
Stars: ✭ 64 (-25.58%)
Mutual labels:  genetic-algorithm
Rl Course Experiments
Stars: ✭ 73 (-15.12%)
Mutual labels:  genetic-algorithm
Vehicleroutingproblem
Solved using AI techniques: Savings, Sweep, Genetic Algorithm, Google OR Tools
Stars: ✭ 61 (-29.07%)
Mutual labels:  genetic-algorithm
Pic2ascii
Converts a picture and video to ascii art
Stars: ✭ 79 (-8.14%)
Mutual labels:  picture
Watchcarslearn
Self driving cars using NEAT
Stars: ✭ 59 (-31.4%)
Mutual labels:  genetic-algorithm
Path planning
This repository contains path planning algorithms in C++ for a grid based search.
Stars: ✭ 70 (-18.6%)
Mutual labels:  genetic-algorithm
Facturae Php
📝 Genera, firma, envía y recibe facturas electrónicas sin necesidad de ninguna librería adicional
Stars: ✭ 74 (-13.95%)
Mutual labels:  face
Sketchtoface
Pix2Pix Image translation using conditional generative adversarial network - sketch to face
Stars: ✭ 66 (-23.26%)
Mutual labels:  face
Mtcnn
face detection and alignment with mtcnn
Stars: ✭ 66 (-23.26%)
Mutual labels:  face

Genetic Algorithm for Self-Referential Image Approximation

Build Status Codacy Badge

Mona Lisa after 120'000 generations approximated with 260 individuals.

Introduction

One approach to solve the image matching problem is with some stochastic optimization approach, in which the search for the optimal solution involves randomness in some constructive way. If S denotes the (finite) set of all possible solutions, the task we consider is to maximize or minimize the objective function latex. In the case of maximization, on which we focus here, the problem is to find a configuration latex which satisfies

latex

Genetic Algorithm

Genetic algorithms operate on a set of individuals (solutions) which form a population for a determined generation, then either two individuals are selected and combined in a crossover operation or each individual is mutated.

We might refer to an approximate solution as a "candidate", or the solution's "DNA".

A genetic algorithm tries to solve the image matching problem by starting with a random population of 260 sets of DNA consisting in form of genes with a length of 5. A fitness function is used to identify the best and worst DNA. To get a measure of how similar two images are, we calculate the root-mean-square (RMS) value of the difference between the images. If the images are exactly identical, this value is zero.

latex

Crossover and mutations are randomly performed in order to generate new solutions. Then, based on a selection criterion, the strongest individuals (those with the best value of a performance metric) survive and remain for the next generation.

The process is repeated until some stopping conditions are fulfilled. In order to perform the selection of the individuals in the GA a fitness value needs to be defined. This fitness value measures the quality of the individuals and enables them to be compared.

Procedure

Computation time: 43 min @ Intel i9 9900k

Computation time: 59 min @ Intel i9 9900k

Results

Input Face ~100'000 generations Fitness Score
Mona Lisa: 93.071%
Girl with a Pearl Earring: 84.095%
Will Smith: 85.863%
Elon Musk: 81.632%
Rowan Atkinson: 89.364%
Marques Brownlee: 90.349%

Misc

Pseudo Code Flow chart

License

MIT License

Muriz Serifovic

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].