Comment nous reconnaissons les équipements de protection individuelle

Vous vous êtes probablement demandé toute votre vie comment former un réseau de neurones pour reconnaître les gens dans les casques et les gilets orange! Non? Mais nous vous le dirons quand même.

Notre nom est Tatyana Voronova et Elvira Dyaminova. Nous sommes engagés dans l'analyse des données dans la société Center 2M, nous travaillons beaucoup avec les usines et les entreprises les plus réelles. En raison de violations de la sécurité, ils subissent des pertes de plusieurs millions de dollars, les employés sont blessés, il serait donc agréable de pouvoir détecter de telles violations de manière systématique et le plus tôt possible. Le meilleur de tous - automatiquement. Nous avons donc des problèmes liés à la reconnaissance des équipements de protection individuelle (EPI) sur vidéo et à l'identification des personnes ou des équipements dans la zone de danger.

image

Pour la plupart, des commandes nous parviennent pour déterminer les casques (plus précisément leur absence) et les vêtements de travail. Nous avons déjà acquis de l'expérience dans l'exécution de ces tâches et nous pouvons maintenant décrire les problèmes que nous avons rencontrés et comment les résoudre.

Étant donné que, selon les termes de la coopération, nous n'avons pas le droit de publier des images des objets du client, nous illustrerons l'article avec des images d'Internet, sur lesquelles les casques sourient souvent et ont fière allure. Malheureusement, dans le domaine public pas pour toutes les caractéristiques des tâches auxquelles nous sommes confrontés en réalité, vous pouvez trouver de bons exemples. En particulier, dans la vie, les casques sont moins susceptibles de sourire et le problème des chauves (nous en reparlerons un peu plus tard) sur Internet n'est pas vraiment révélé!

Image provenant d'Internet (taille 1920x1280):

image

La reconnaissance des EPI peut être réduite à l'un des deux problèmes classiques de la vision par ordinateur: la classification des images et la détection des objets. Dans la pratique, il s'est avéré préférable de ne pas utiliser l'une de ces approches, mais de choisir la plus adaptée à chaque cas particulier, ainsi que de les combiner de manière flexible. Par exemple, on peut d'abord déterminer où se trouvent les personnes sur l'image, puis classer les images découpées par silhouette en classes «en tenue de travail» et «sans», et détecter la présence d'un casque lors du deuxième passage.

Sur des figures de personnes prédécoupées, la classification de la présence de casques et de vêtements de travail ressemble à ceci (vue de la photo originale):

Le résultat du travail des modèles pour la classification des vêtements de travail et des casques

image

Sur les mêmes figures humaines préalablement sélectionnées, l'application de l'approche cette fois avec détection pour casques.

Le résultat du modèle de classification des vêtements de travail et d'un modèle de détection des casques:

image

Première étape: détection humaine


La qualité de définition des petits objets (casques / lunettes / gants) sur les grands cadres est telle. Il est beaucoup plus facile pour un ordinateur, comme une personne, de comprendre d’abord où se trouvent les gens, puis de comprendre ce qu’ils portent. Donc, tout commence par l'identification des personnes dans le cadre.

À la suite des expériences, nous avons découvert que le réseau de neurones F-R plus rapide avec Inception v2 comme extraction de caractéristiques est bien adapté à la détection de personnes. TensorFlow dispose déjà de réseaux de neurones pré- formés pour détecter des objets.

Pour nous, Faster R-CNN Inception v2 (formé sur le jeu de données COCO) est la méthode de base que nous essayons en premier pour résoudre de tels problèmes.

Dans un premier temps, nous détectons des personnes sur le cadre (puis sur les personnes trouvées, nous trouvons des EPI):

image

Notez que nous avons augmenté la boîte englobante «avec une personne» le long de l'axe y :

image

Sur cette photo, le travailleur a été photographié sous un bon éclairage et sur un fond contrasté (avec des images trouvées sur Internet, cela se produit tout le temps). Par conséquent, la boîte englobante avec la personne était bien construite. Cependant, dans notre pratique, il y a des cas fréquents (surtout dans des conditions de visibilité insuffisante) où le modèle de détection coupe un casque chez une personne, après quoi il est inutile de le chercher sur une image recadrée. À cet égard, le long de l'axe y, nous augmentons le cadre de délimitation prévu de 15% avant de passer à la deuxième étape.

Lors de la détection de personnes, nous rencontrons de petits problèmes désagréables. Premièrement, lorsque deux personnes marchent ou se tiennent l'une derrière l'autre, elles commencent souvent à être détectées comme une seule personne. Deuxièmement, il arrive qu'un objet statique entre dans le champ de vision de la caméra, dans lequel le modèle peut reconnaître une personne, comme une bouche d'incendie. Ces problèmes peuvent être résolus de différentes manières. Par exemple, comment nous l'avons fait: conciliez-les et acceptez-les, car en général, le modèle nous convient en termes de productivité et de qualité.

Un problème plus fondamental est que les locaux industriels dans lesquels il y a une «zone de danger» sont souvent énormes et, par conséquent, les personnes dans les cadres sont très petites. Notre méthode de base basée sur Faster R-CNN Inception v2 a montré de mauvais résultats dans de tels cas, et à la fin nous avons essayéR-CNN Nas plus rapide . Les résultats étaient impressionnants, les gens étaient bien reconnus même à distance, mais la vitesse était bien inférieure à celle du modèle de base. Avec des ressources suffisantes et le besoin d'une grande précision, vous pouvez utiliser Faster R-CNN Nas .

Deuxième étape: détermination des contrevenants malveillants


Selon la tâche, les éléments suivants sont souvent utilisés:

  • Modèle de classification d'images - Inception v3
  • Modèle de détection d'objets - Création plus rapide de R-CNN v2

Classification des vêtements de travail et des casques


Nous avons testé différentes architectures de réseaux de neurones pour classer les images, et nous nous sommes finalement tournés vers Inception v3, décidant de tirer parti du fait qu'il est conçu pour fonctionner avec des tailles d'images variables. Nous avions déjà beaucoup de photos découpées avec des gens, et il n'était pas difficile de calculer les valeurs médianes pour la hauteur et la largeur. Nous sommes donc arrivés à la conclusion que pour la formation des classificateurs, nous avons commencé à apporter des images à une taille de 150x400.

Afin de former le réseau à reconnaître les EPI, tout d'abord, il est nécessaire de collecter un ensemble de données à partir d'exemples étiquetés. Dans ce processus, il y a des subtilités, dont la réalisation vient avec l'expérience. Par exemple, il est préférable de supprimer les personnes coupées au-dessus des hanches de l'ensemble de données. Cela rapprochera l'ensemble de données des conditions réelles, car la plupart du temps, les gens sont vus à pleine hauteur sur la vidéo des caméras de surveillance. Bien entendu, des cas de chevauchement se produisent également, mais les silhouettes complètes de l'échantillon cible sont beaucoup plus caractéristiques.

Exemples de notre ensemble de données de vêtements de travail:

image

Nous n'avons rien inventé de spécifique en tant que métrique, nous utilisons le rappel et la précision.

Modèle de classification de la présence / absence de vêtements de travail:

résultats sur un échantillon de validation

image

Détection d'EPI


Le modèle de classification fonctionne plus rapidement que le modèle de détection d'objets, mais étant donné que les lunettes de sécurité et les gants sont petits dans l'image, il est difficile de créer un bon classificateur pour un tel EPI. Par conséquent, nous avons formé le réseau neuronal Faster R-CNN sur un ensemble de données avec six classes:

  • lunettes / pas_lunettes
  • gants / pas_gants
  • casque / not_helmet

image

Collecte et balisage des données


Les principaux problèmes étaient liés à l'ensemble de données des casques. C'était une manière fascinante: nous sommes passés par des gens chauves, des gens avec des casques à la main, et même par des gens chauves avec des casques à la main.

Puisqu'au tout début du voyage, nous n'avions pas beaucoup d'images dans des conditions réelles, nous avons collecté le jeu de données du mieux que nous pouvions: nous filmer, prendre des images sur Internet ou sur des chantiers. Un peu plus tard, nous avons commencé à recevoir beaucoup de vidéos de diverses entreprises, nous avons donc commencé à enrichir l'ensemble de données uniquement avec des images de conditions réelles. À un moment donné, le nombre d'images marquées a dépassé 5k, et la qualité de l'ajout de nouveaux exemples a cessé de s'améliorer, à cet égard, nous avons révisé l'approche du balisage.

Nous décrirons les étapes de l'amélioration de l'ensemble de données du casque en utilisant l'exemple d'images provenant d'Internet, donc l'angle et la qualité ne correspondent pas tout à fait à ce que nous avions.

En plus de l'image ci-dessus, recadrée au-dessus des hanches, nous avons supprimé les images dans lesquelles les casques sont recadrés plus de la moitié pour éviter toute confusion avec les casquettes.

image

Nous avons également été confrontés au fait que si une personne a un casque dans les mains, le modèle ne voit souvent aucune violation: y a-t-il un casque? Il y a. Par conséquent, nous avons supprimé de l'ensemble de données d'entraînement toutes les images dans lesquelles une personne tient un casque avec sa main, même si le casque est sur sa tête à ce moment.

En général, nous avons essayé de supprimer les images avec un fond éclairé ou dans des pièces sombres, puis nous avons minimisé le nombre de photos prises par nous, en laissant principalement des images de la production. En conséquence, nous avons réduit de moitié l'ensemble de données.

De plus, nous avons enrichi l'ensemble de données avec des personnes chauves, sinon elles seront toujours dans des casques, même si ce n'est pas le cas, et avec des blondes avec des carrés, pour lesquelles, avec un certain angle, le détecteur détermine également le casque.

Après avoir supprimé les images inappropriées, nous avons procédé directement au balisage (pour détecter les objets). Il s'est avéré que ce n'était pas si simple. Il s'avère que la qualité du détecteur final dépend en grande partie de ce que exactement la zone dans l'image est marquée comme "casque" ou "gants". Au départ, nous avons attribué des casques et des lunettes sans saisir les visages et des gants avec les mains saisissantes. Cependant, avec l'expérience, nous avons progressivement amélioré notre approche en examinant les erreurs du premier et du deuxième type, où les gens tiennent un casque dans leurs mains, et quelque chose de rond sur quelque chose de long se révèle être un «gant». Maintenant, lors du marquage des casques et des lunettes, nous essayons de saisir le visage jusqu'au bout du nez, et lors du marquage des gants, au contraire, nous nous sommes limités à une brosse.

image

À la suite de nos manipulations sur l'ensemble de données, nous avons obtenu les résultats suivants.

Modèle de détection de la présence / absence d'EPI en utilisant des casques à titre d'exemple:
résultats sur un échantillon de validation avant le début du «travail global» sur l'ensemble de données

image


Résultats finaux sur l'échantillon de validation

image

L'intégralité de la reconnaissance des casques s'est légèrement affaiblie, mais en même temps, les mesures de détection des violations se sont améliorées, et c'est ce que nous voulions atteindre.

Modèle de classification de la présence / absence de casques:
résultats sur un échantillon de validation avant le début du «travail global» sur l'ensemble de données

image

Résultats finaux sur l'échantillon de validation

image

Il est à noter que nous n'avons pas de division en lunettes et lunettes pour la vision, elles passent sous le même tag «lunettes», et les gants de teintes claires peuvent être perçus comme une brosse nue. Nous avons essayé de maximiser la gamme de couleurs des casques et des vêtements de travail dans nos jeux de données, mais pour plus de fiabilité, nous y avons ajouté la technique la plus simple et la plus fiable: si nécessaire, pour détecter les gants, nous disons aux clients que les couleurs vives aident à augmenter la précision.

À l'heure actuelle, nous avons des modèles universels que nous utilisons pour le salon initial pour le client. Cependant, il faut comprendre qu'il est impossible de créer un modèle universel pour tout le monde, il faut s'adapter à chaque client, identifier et prendre en compte de nouvelles nuances, enrichir les jeux de données ou les recréer pour répondre à des besoins spécifiques.

image

Prime


En règle générale, les clients souhaitent traiter autant de caméras que possible, en utilisant le moins de ressources possible. Le butch, bien sûr, est une bonne chose, mais des astuces supplémentaires pour optimiser le processus ne sont pas interdites.

Par exemple, mes collègues et moi du centre client IBM de Moscou avions l'hypothèse que le regroupement de plusieurs personnes pour détecter davantage les casques augmenterait le nombre de caméras par serveur avec une perte de précision sans principe.

Comme base, nous avons décidé de prendre la taille de 1000x600 pour la toile sur laquelle les gens seront "appliqués". Deux options de mise en page ont été initialement envisagées:

  • Largeur et hauteur fixes (200x600), avec cette approche, il y a 5 personnes sur le cadre.
  • Largeur et hauteur fixes (125x600), 8 personnes.

Cette décision est due au fait qu'avec des données fixes, nous connaissons exactement le nombre de personnes sur la photo, ce qui nous donne une prévision de la charge. Cependant, au cours du développement, nous avons envisagé une telle option:
  • Hauteur fixe et largeur proportionnelle (*** x600), nombre de personnes différent.

On a supposé qu'avec l'augmentation des tailles et le maintien des proportions, les résultats seraient meilleurs par rapport à d'autres options de mise en page. Le nombre de personnes variait de 3 à 5 (+/–).

En conséquence, nous avons obtenu que l'option avec une largeur et une hauteur fixes (200x600) soit la meilleure parmi celles considérées. Bien sûr, cette méthode ne convient pas pour détecter des lunettes et des gants, car les objets sont petits, mais pour détecter des casques / manque de casques, cette méthode a donné de bons résultats.

Par exemple, dans un échantillon de validation:

image

image

: (tvoronova), (elviraa)

All Articles