Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extraction de marquage des armes #19

Open
5 of 9 tasks
AurelienmartW opened this issue Aug 8, 2024 · 7 comments
Open
5 of 9 tasks

Extraction de marquage des armes #19

AurelienmartW opened this issue Aug 8, 2024 · 7 comments
Assignees

Comments

@AurelienmartW
Copy link
Contributor

AurelienmartW commented Aug 8, 2024

En tant que FSI je souhaite que lors d'une recherche dans le RGA depuis Basegun, certains champs puissent être remplis automatiquement.

  • Point avec les experts pour identifier les champs à extraire
  • Etude des solutions d'extraction des différents champs
  • Definition d'une shortlist de solutions possibles
  • Experimentation de la shortlist sur un petit dataset
  • Exploration de données, modèles et marques, calibres, et images de marquages et études statistiques
  • Créer un dataset de marquages pour l'évaluation du modèle
  • Arbitrage sur les solutions d'extraction d'informations
  • Développement d'un module d'extraction des différentes informations
  • Evaluation du module sur un dataset
@AurelienmartW AurelienmartW self-assigned this Aug 8, 2024
@AurelienmartW
Copy link
Contributor Author

Champs utiles aux experts:
Marque, modele, calibre, longueur canon, typologie

Champs à extraire via OCR:
Marque, modele, calibre,

Attention les marques et modèles ne sont pas toujours ecrits de la même manière (ex & ou et ou and)
De la même manière les calibres peuvent avoir différentes unitées

@AurelienmartW
Copy link
Contributor Author

Experimentation in progress using the RGA as database and the RapidFuzz for fuzzy matching score to determine the brand and model of the weapon

Different matching ratio are available, a score threshold is necessary to determine if the matching is enough
https://github.com/rapidfuzz/RapidFuzz

@AurelienmartW
Copy link
Contributor Author

AurelienmartW commented Aug 20, 2024

Piste:

  • pour le modele et la marque:
  • Fuzzy matching pour la marque et le modèle -> Récupération du plus gros score, filtrage avec des seuils, verification avec typologie et type d'arme pour confirmer-> prévoir point avec les experts pour faire du matching typologie basegun et RGA
  • Voir dossier statistiques armes

Pour le calibre: Dossier classification legale arme, liste calibre

  • après le mot clé "cal"
  • prédéfinir une liste de calibres existants -> prévoir un point avec les experts car beaucoup de références variées dans le RGA
  • avant mm

[Update] Dans le RGA il y 627 calibres différents, existence de "familles" de calibre ? correspondance avec ce qui est écrit sur les armes ?

@AurelienmartW
Copy link
Contributor Author

AurelienmartW commented Aug 27, 2024

Concernant le requetage automatique du RGA afin d'avoir toujours la dernière version:

  • REquete possible utilisant l'API dataGouv
  • Possibilité d'accéder aux données sans téléchargement du fichier (écriture) ->OK
  • Possibilité de requeter datagouv depuis l'infra basegun: "depuis basegun on peut requeter data.gouv.fr sans soucis. C'est bien un site internet mais c'est un site considéré comme liste verte donc pas besoin d'authentification. Il faut seulement passer un proxy au niveau infra "

Prévoir de poser la question aux experts de la méthode de mise à jour du RGA pour déterminer si une methode plus simple/robuste est possible

[Update] Experimentation de requeter le RGA lors du run de la fonction d'extraction, On regarde d'abord de quand date la dernière version, si elle date de plus d'1 semaine on recupère la nouvelle sinon on garde l'ancienne.
Lors de la mise à jour du RGA, la requete prend ~1.2s (valeur indicative dépendante du réseau et de la machine)

@leihuayi
Copy link
Contributor

leihuayi commented Aug 29, 2024

  • analyse des recoupements/similitudes entre marques/modèles
  • point avec les experts -> voir prochain commentaire
  • conclusion sur licence : Basegun doit suivre AGPLv3 à cause d'ultralytics

@AurelienmartW
Copy link
Contributor Author

Point avec les experts en arme
Concernant la reconnaissance de marque et modèle:

  • Ok sur la démarche de se baser sur le RGA
  • Pour la verification typologie/RGA les experts s'occupent de remplir le tableau de correspondance avec 2 niveaux (cas classique, cas plus rare)

Concernant la reconnaissance de calibre,

  • Il existe de nombreux "mots-clés" pour reconnaitre les calibres, les experts nous préparent une liste détaillée
  • Certains calibres peuvent avoir plusieurs dénomination, la nomination officielle correspond au CIP et sont entrés comme cela dans le RGA -> Les experts nous prépare une liste de calibre avec les synonymes associés
  • Il faut une correspondance exacte du calibre pour faire une recherche dans le RGA
  • La verification du calibre par rapport aux typologies n'est pas possible
  • Pour les armes avec plusieurs canons et des calibres différents, ils sont généralement tous inscrit sur l'arme.

Concernant le RGA:

  • Se trouve dans le RGA les armes pyrotechniques, les armes d'alarmes et les armes à air avec une puissance >2 Joules
  • Pour avoir un accès plus direct au RGA, il est possible de demander un accés "pro" la demande en ligne a été réalisée, il faut demander validation aux experts

@AurelienmartW
Copy link
Contributor Author

Exploration de données

Marques et modèles

Possibles confusions entre marques et modèles, etude avec la metrique token_set-ratio de rapid fuzz pour la similitude croisée de tous les marques et modèles ( +14000 noms au total)
Voir si dessous la plot box associée des valeurs de similitudes entre les noms (100 similitude max)
Image

On peut voir que la mediane et le 3eme quartile sont assez faible (<20 et ~50) ce qui est rassurant pour le cas d'usage car cela signifie que la plupart des marques et modèles sont différents
Cependant il existe de nombreux outliers proche de 100.

Etude complémentaire pour définir un seuil
Afin de définir un seuil de similitude on veut etudier les précédents outliers afin d'éliminer le maximum de confusion entre les marques/modèles
Pour cela on va étudier la fonction de répartition des similitudes afin de déterminer un seuil correct pour éliminer le plus possible de confusion entre les modèles

Image

On remarque que la répartition est quasi nulle à partir d'une similitude de 50. Cependant il reste des confusions possibles.
Prenons l'exemple d'un seuil de 80.
A ce niveau il y a seuleument confusion de 0.06% de l'ensemble des marques modèles, cela peut sembler très peu. Cependant au vu du nombre de marque et modèles cela correspond à plus de 62000 couples de marque modèles qui sont confondus.

De plus même avec un seuil maximal de 100 des confusions persistent, cela vient du fait que certains noms de marques peuvent être inclu dans d'autres.
En conclusion, des confusions seront toujours possibles mais avec un seuil de 80 on élimine la plupart de ces cas, les autres seront gérés par des vérifications en post traitement (accord marque modèle, accord typologie RGA...)

Concernant les calibres

Il y a plus de 600 calibres différents dans le RGA, de plus certains peuvent avoir plusieurs dénominations.
Cependant ces calibres ne sont pas tous autant fréquents sur des modèles d'armes.
Une étude à été réalisée sur ces calibres pour les trier par occurence de fiche RGA. C'est à dire à combien d'armes différentes ils sont liés.
Les résultats montrent qu'il y a des calibres beaucoup plus utilisées.
Par exemple si on se limite au top 10 des calibres on traite 50% des fiches RGA, si on prend le top 100 on traite 92%
Voici le tableau détaillé

<style> </style>
Top X calibres Armes associées % RGA couvert
10 29128 50%
20 37831 64%
30 42979 73%
50 48320 82%
100 53915 92%
200 56863 97%
300 57853 99%

Ainsi dans un premier temps il n'y aura pas besoin de faire les 600 calibres du RGA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants