FaceRecognitionTests/README.md

125 lines
8.7 KiB
Markdown
Raw Normal View History

2023-04-13 21:19:30 +00:00
# Expérimentations de reconnaissance faciale
## Les images sources
2023-04-13 21:35:14 +00:00
2023-04-13 21:19:30 +00:00
Chris Evan
2023-04-13 21:35:14 +00:00
- https://upload.wikimedia.org/wikipedia/commons/0/0e/Chris_Evans_-_Captain_America_2_press_conference_%28cropped%29.jpg
- https://upload.wikimedia.org/wikipedia/commons/3/36/MJK_68238_Daniel_Br%C3%BChl_%28Berlinale_2020%29.jpg
2023-04-13 21:19:30 +00:00
Robert Downey
2023-04-13 21:35:14 +00:00
- https://upload.wikimedia.org/wikipedia/commons/a/ab/Robert_Downey_Jr-2008_cropped.JPG
- https://live.staticflickr.com/3882/14802381172_8ac8f59478_b.jpg
2023-04-13 21:19:30 +00:00
Jennifer Lawrence
2023-04-13 21:35:14 +00:00
- https://upload.wikimedia.org/wikipedia/commons/f/fe/Jennifer_Lawrence_in_2018.png
- https://upload.wikimedia.org/wikipedia/commons/a/a6/Jennifer_Lawrence_SDCC_2013_X-Men.jpg
2023-04-13 21:19:30 +00:00
Margot Robbie
2023-04-13 21:35:14 +00:00
- https://upload.wikimedia.org/wikipedia/commons/0/00/Margot_Robbie_by_Gage_Skidmore.jpg
- https://upload.wikimedia.org/wikipedia/commons/0/0b/Margot_Robbie_%2828316659170%29_%28cropped%29.jpg
2023-04-13 21:19:30 +00:00
> Ces images sont normalement toutes libres de droits. Il peut cependant être judicieux d'indiquer leur source pour en attester.
Une copie de ces images est disponible dans le dossier [src](src)
## Emplacement des visages
![boxes/ChrisEvan1.jpg](boxes/ChrisEvan1.jpg)
[src/ChrisEvan1.jpg](src/ChrisEvan1.jpg): De 490x218 à 1128x1008
![boxes/ChrisEvan2.jpg](boxes/ChrisEvan2.jpg)
[src/ChrisEvan2.jpg](src/ChrisEvan2.jpg): De 541x1006 à 1844x2347
![boxes/MargotRobbie1.jpg](boxes/MargotRobbie1.jpg)
[src/MargotRobbie1.jpg](src/MargotRobbie1.jpg): De 527x181 à 1014x715
![boxes/MargotRobbie2.jpg](boxes/MargotRobbie2.jpg)
[src/MargotRobbie2.jpg](src/MargotRobbie2.jpg): De 697x359 à 1680x1358
![boxes/RobertDowney1.jpg](boxes/RobertDowney1.jpg)
[src/RobertDowney1.jpg](src/RobertDowney1.jpg): De 384x159 à 845x736
![boxes/RobertDowney2.jpg](boxes/RobertDowney2.jpg)
[src/RobertDowney2.jpg](src/RobertDowney2.jpg): De 360x119 à 553x350
![boxes/JenniferLawrence1.png](boxes/JenniferLawrence1.png)
[src/JenniferLawrence1.png](src/JenniferLawrence1.png): De 196x115 à 365x314
![boxes/JenniferLawrence2.png](boxes/JenniferLawrence2.png)
[src/JenniferLawrence2.png](src/JenniferLawrence2.png): De 695x428 à 1591x1396
## "Embeddings"
2023-04-13 21:35:14 +00:00
2023-04-13 21:19:30 +00:00
L'ensemble des nombres caractérisant les visages générés par mon modèle de classification des visages sont disponibles dans le dossier [embeddings](embeddings).
Voici quelques exemples :
2023-04-13 21:35:14 +00:00
- `ChrisEvan1.jpg`:
2023-04-13 21:19:30 +00:00
```
0.013588272 0.14924107 0.10293563 -0.0894408 -0.14983389 -0.15014969 -0.10940615 -0.08662054 -0.027009228 0.025306579 0.063713625 0.0029894528 -0.22485909 -0.1171356 -0.028612543 0.052584253 -0.01020841 0.08544659 -0.039860334 0.08512174 0.16187522 -0.12540862 0.04619039 -0.034596693 0.049454086 -0.003330931 -0.02040488 0.12404345 0.044619344 0.06511985 -0.18827626 0.1292971 -0.16731974 0.05794434 -0.080326095 0.13209893 -0.040213954 -0.0860508 -0.19195764 0.02851134 -0.012864292 0.08082352 0.042097613 0.12528199 0.00915616 0.04863165 0.15132628 0.034243103 -0.16731258 0.074604616 -0.065076664 -0.020548549 0.11536233 0.10212831 -0.0850409 -0.069237165 -0.046551146 0.13450986 -0.025315845 0.07234829 0.03134743 -0.013245294 -0.12022436 0.10452058 0.1345366 0.17489764 0.119002044 0.12792549 0.20691383 -0.025321007 -0.05199498 0.019840801 0.006721283 0.11697529 -0.08906952 0.15815419 0.06950762 -0.04278898 -0.03946757 -0.11027197 -0.06240656 -0.030829161 0.035503548 0.026103929 0.13984278 -0.08964199 0.045302223 -0.12754425 -0.008096112 0.11721313 -0.014474002 -0.031576354 0.14043052 0.065895215 -0.06676938 0.043812174 -0.10521634 0.009509598 -0.045587383 -0.02444263 0.00013175681 0.0056394055 0.048152678 -0.11565323 -0.124192216 -0.02743731 -0.163479 0.22907133 -0.022912463 0.036762048 0.03346427 0.035544943 0.026411045 0.11851789 0.020429777 0.19305018 -0.016451316 -0.09938731 -0.013517487 0.09305682 0.16937472 -0.02410161 -0.14735183 -0.10815277 0.06747906 -0.14740476 0.0958967 -0.020174563
```
2023-04-13 21:35:14 +00:00
- `JenniferLawrence1.png.txt`
2023-04-13 21:19:30 +00:00
```
0.059789382 -0.06540175 0.09384677 -0.09344663 -0.124955855 -0.14620578 0.21621326 0.08681343 -0.22887544 0.16835837 -0.21205847 -0.09929459 -0.07712983 0.18850496 0.0040708827 0.06931689 -0.12965605 -0.19898388 0.15594587 -0.05846893 0.010512652 0.029273292 -0.06976994 -0.009134532 -0.075729 0.15730128 0.20621045 -0.14657775 -0.023199601 0.19438854 -0.025176251 0.16280289 0.15292016 0.203397 -0.042337168 -0.043469157 0.13448407 -0.07164188 0.25583833 0.014922339 -0.11000569 0.17076612 -0.11343877 -0.03459193 -0.07640086 0.09205383 -0.09176708 0.009503559 -0.10276184 -0.0680929 -0.06760132 0.12734948 -0.067464754 0.034245383 -0.030228864 -0.043915395 0.0072117387 0.1366474 0.032039784 0.039552618 -0.13448033 -0.049129415 -0.070208974 -0.11192467 0.0077691986 -0.09058856 0.007923333 0.15862593 -0.0441338 0.18257132 0.11437641 0.047846057 0.06540898 -0.056939643 -0.0064649535 0.04443105 -0.06582029 -0.094180234 0.026080629 -0.043123882 0.052541822 -0.066220045 -0.031253625 -0.014365362 -0.030886997 -0.015664259 -0.09257816 0.0117671965 -0.018785734 0.018891882 -0.086992756 0.1330208 -0.0472171 -0.013287547 -0.080245994 0.0035603195 -0.033081498 -0.017256219 0.06913957 0.0291235 -0.0057697054 -0.04429207 -0.17319635 -0.1331113 -0.048168566 -0.057445955 -0.11418376 -0.10913006 -0.12299465 0.11582708 -0.019224066 -0.1671122 0.011502104 -0.07045502 0.14687648 0.008338821 -0.057212986 -0.07145432 0.11368221 0.06900518 0.07788772 -0.042550106 -0.17789641 0.045252983 0.014051363 0.024645478 0.09975756 0.08491579
```
2023-04-13 21:35:14 +00:00
## Classification des visages utilisés en exemple
| | ChrisEvan1.jpg | ChrisEvan2.jpg | JenniferLawrence1.png | JenniferLawrence2.png | MargotRobbie1.jpg | MargotRobbie2.jpg | RobertDowney1.jpg | RobertDowney2.jpg |
| --------------------- | -------------- | -------------- | --------------------- | --------------------- | ----------------- | ----------------- | ----------------- | ----------------- |
| ChrisEvan1.jpg | **0** | 1.4469901 | 1.5851444 | 1.4725641 | 1.493774 | 1.5233572 | 1.5027672 | 1.5772052 |
| ChrisEvan2.jpg | 1.4469901 | **0** | 1.7558935 | 1.7296197 | 1.7195596 | 1.6490623 | 1.5382934 | 1.5368507 |
| JenniferLawrence1.png | 1.5851444 | 1.7558935 | **0** | **0.7988865** | 1.3284732 | 1.4284842 | 1.5345646 | 1.5157186 |
| JenniferLawrence2.png | 1.4725641 | 1.7296197 | **0.7988865** | **0** | 1.3276035 | 1.4731331 | 1.6620125 | 1.5803103 |
| MargotRobbie1.jpg | 1.493774 | 1.7195596 | 1.3284732 | 1.3276035 | **0** | **0.973696** | 1.4589473 | 1.5014138 |
| MargotRobbie2.jpg | 1.5233572 | 1.6490623 | 1.4284842 | 1.4731331 | **0.973696** | **0** | 1.6180637 | 1.6254852 |
| RobertDowney1.jpg | 1.5027672 | 1.5382934 | 1.5345646 | 1.6620125 | 1.4589473 | 1.6180637 | **0** | **0.7831072** |
| RobertDowney2.jpg | 1.5772052 | 1.5368507 | 1.5157186 | 1.5803103 | 1.5014138 | 1.6254852 | **0.7831072** | **0** |
> La distance correpond l'écart type de chaque valeurs des embeddings de `embeddings_1[i] - embeddings_2[i]` pour `i` variant de `0` à `taille(embeddings)` .
2023-04-13 21:19:30 +00:00
## Schéma du fonctionnement général
### Détection des visages
2023-04-13 21:35:14 +00:00
2023-04-13 21:19:30 +00:00
![](./schemas/DetectionVisages.png)
### Classification des visages
2023-04-13 21:35:14 +00:00
2023-04-13 21:19:30 +00:00
![](./schemas/RecFaciale.png)
### Processus complet
2023-04-13 21:35:14 +00:00
2023-04-13 21:19:30 +00:00
![](./schemas/ProcessComplet.png)
2023-04-13 21:35:14 +00:00
## Explications sur les modèles
### Modèle de détection des visages
* En entrée : L'image est de taille arbitraire, chaque pixel de l'image est représenté par les trois couleurs rouge, vert et bleu sur un 1 octet (valeur de `0` à `255`)
* En sortie : Le modèle fournit, pour chaque visage détecté : : l'emplacement du visage, ainsi que la probabilité qu'il s'agisse bien d'un visage
### Modèle de classification des visages
* En entrée :
* Les visages à classifier sont redimensionnés pour avoir une taille de 160x160 pixels (avec trois cannaux : rouge, vert, bleu).
* Chaque pixel fait l'objet d'un traitement de normalisation : `(valeur - moyenne) / écart type`
2023-04-13 22:14:59 +00:00
* En sortie : Le modèle retourne pour chaque visage fournit en entrée les embeddings (la suite de nombre donnée en exemple ci-dessus - 128 nombres au total)
## Structure des modèle
* Modèle de détection des visages : structure indisponible
* Modèle de classification des visages : [struct_model_faces_classification](struct_model_faces_classification.txt) -> Près de 23 millions de poids / paramètres