RasterObjectDetector
Accepte une entrée raster et produit des géométries rectangulaires décrivant le contour du ou des objets détectés. Le Transformer utilise le classificateur en cascade d'OpenCV pour la détection d'objets et permet de sélectionner différents types d'objets et modèles de détection ou classificateurs. Chaque classificateur est entraîné à détecter un objet spécifique, par exemple : les corps humains, les visages et les yeux. Plusieurs classificateurs peuvent être utilisés dans le même Transformer sur le(s) même(s) raster(s) source(s) pour produire différents ensembles de résultats, regroupés par modèle de détection.
Les modèles de détection utilisent une fenêtre de noyau de détection qui est déplacée sur l'ensemble du raster. Si le motif de pixels d'une zone spécifique du raster correspond "suffisamment" au noyau, cette zone est traitée comme un objet détecté. Pour les besoins de la correspondance, le noyau et le raster source sont mis à l'échelle, respectivement, pour détecter des objets plus petits et plus grands.
Un rectangle de délimitation grossier de l'objet détecté sera attaché individuellement à une entité et sortira via le port Detected. Les paramètres de détection, le facteur d'échelle, le nombre minimum de voisins et la taille des objets détectés fonctionnent ensemble pour aider à équilibrer le nombre d'objets détectés, la vitesse de traitement et la précision de la détection. Consultez la section sur les paramètres pour plus de détails.
Configuration
Ports en entrée
Le Transformer accepte les entités d'entrée avec des géométries raster. Toutes les entités avec une géométrie non raster ou une géométrie raster invalide seront rejetées. Les géométries raster d'entrée peuvent être des images ou d'autres types de données mais doivent avoir entre 1 et 4 bandes, avec toutes les bandes de 8 ou 16 bits, des interprétations autorisées. Le raster d'entrée est consommé au cours du processus. Les interprétations de raster acceptées sont Gray8, Gray16, GrayAlpha16, GrayAlpha32, RGB24, RGB48, RGBA32 et RGBA64.
Ports de sortie
Pour chaque objet détecté dans la géométrie du raster d'entrée, une entité sera produite contenant une géométrie rectangulaire qui représente une boîte de délimitation de l'objet détecté. Si la partie appariée du raster d'entrée est souhaitée, envisagez d'utiliser un Transformer Clipper après le RasterObjectDetector et d'acheminer les boîtes détectées dans le port Clipper d'entrée et le raster d'entrée dans le port Clippee.
Les entités détectées en sortie sont étiquetées avec un attribut nommé _detected_object_type par défaut dont la valeur contient le nom du modèle de détection qui a produit cette entité détectée particulière (par exemple, 'LBP - Visage frontal'). Le nom de l'attribut de détection peut être modifié à l'aide du paramètre Nom d'attribut en sortie.
L'attribut fme_basename peut aussi être utile pour déterminer la source raster des géométries détectées en sortie.
Les entités non raster ou les entités avec des géométries raster invalides ressortent par ce port.
Gestion des entités rejetées : ce paramètre permet d'interrompre la traduction ou de la poursuivre lorsqu'elle rencontre une entité rejetée. Ce paramètre est disponible à la fois comme option par défaut de FME et comme paramètre de traitement.
Paramètres
Type de détection |
Le paramètre détermine un groupe d'entités à détecter :
Pour chaque type de détection, plusieurs modèles de détection peuvent être sélectionnés en utilisant le paramètre Detection Model. |
Conserver les attributs |
Indique si les entités de sortie de l'objet détecté doivent conserver les attributs de l'entité raster d'entrée. Par défaut, les attributs d'entrée sont conservés. |
Ces paramètres permettent à l'utilisateur de choisir plusieurs modèles de détection comme un seul type de détection.
Le Transformer offre deux principales approches de la détection d'objet : le classificateur en cascade de Haar et les Motifs Binaires Locaux (MBL, ou LBP pour Local Binary Patterns).
Les classificateurs en cascade basés sur des caractéristiques Haar sont une méthode de détection d'objets, dans laquelle une fonction en cascade est entraînée à partir d'un grand échantillon d'images positives et négatives, d'où sont extraites des entités qui décrivent l'image. Dans ce contexte, le mot "cascade" indique que les classificateurs sont constitués d'un certain nombre de classificateurs plus simples enchaînés. Un très grand ensemble d'entités de définition est nécessaire pour classer ou détecter un objet, c'est pourquoi cette méthode est généralement légèrement plus lente que la LBP.
https://en.wikipedia.org/wiki/Haar-like_feature
https://docs.opencv.org/3.4/d5/d54/group__objdetect.html
Local Binary Pattern utilise les différences entre une cellule particulière et les voisins qui l'entourent, à une taille de fenêtre spécifiée. Pour chaque cellule, tous les voisins autour de la cellule centrale sont analysés (d'abord à 1 cellule, puis à 2, etc.) et leur différence avec le centre est calculée. Les résultats sont mis dans un histogramme de fréquence d'apparition de chaque valeur voisine.
https://en.wikipedia.org/wiki/Local_binary_patterns
Liste catégorisée de modèles de détection intégrés :
Face |
|
||||||||||||||||||||||||||||||||||||||||
Corps |
|
||||||||||||||||||||||||||||||||||||||||
Animal |
|
||||||||||||||||||||||||||||||||||||||||
Objet |
|
||||||||||||||||||||||||||||||||||||||||
Modèle de détection personnalisé |
Ce paramètre vous permet de fournir un modèle de détection d'objets personnalisé. Vous pouvez en savoir plus sur la formation de votre propre modèle dans la documentation officielle d'OpenCV. |
Pourcentage de facteur d'échelle |
La fenêtre de détection originale du modèle de détection est souvent petite, c'est pourquoi le raster d'entrée est mis à l'échelle pour tenter de détecter des objets plus grands. Le facteur d'échelle détermine l'ampleur de la réduction de l'image en pourcentages, allant de 1 % à 300 % inclus. La détection des objets est effectuée à chaque échelle du raster, mais pas entre les échelles. En d'autres termes, si le facteur d'échelle est de 100 %, la détection s'effectuera sur le raster d'origine, puis sur le raster réduit à l'échelle x2, x4, etc.
Le tableau ci-dessus indique certaines des valeurs utilisées pour réduire l'échelle du raster. La valeur par défaut est de 3%. Si le facteur d'échelle est faible, il y aura plus de chances de trouver un objet. Cependant, comme les objets sont recherchés à une échelle plus granulaire, le Transformer peut prendre plus de temps pour traiter le raster. Avec une granularité plus élevée, il y a aussi un potentiel de bruit ou de détections faussement positives, et d'autres paramètres du Transformer peuvent aider à les réduire. L'inverse est également vrai pour les facteurs d'échelle plus importants. |
||||||||||
Nombre minimum de voisin |
Lorsqu'une fenêtre de détection (noyau) est déplacée sur le raster, un objet peut être détecté plusieurs fois dans la même zone. Ces détections de zones similaires sont appelées voisins. Le Nombre minimum de voisins spécifie le nombre de voisins dont chaque objet détecté candidat a besoin avant d'être accepté comme un objet détecté valide. La valeur par défaut est de 2 voisins. Lorsque le Nombre minimum de voisins est égal à 0, tous les objets détectés sont conservés. Par conséquent, la confiance dans chaque correspondance sera faible. Quand le Nombre minimum de voisins est supérieur à 0, l'algorithme retiendra un objet détecté seulement s'il a au moins le nombre de voisins spécifié, augmentant par conséquent la confiance dans chaque objet mis en sortie. |
||||||||||
Unités de taille d'objet |
Ce paramètre affecte les paramètres de taille de détection minimum et maximum.
|
||||||||||
Largeur et hauteur minimum et maximum d'objet |
Les tailles minimale et maximale de détection des objets spécifient les limites de taille des objets détectés ; ceux qui sont plus petits ou plus grands que les tailles spécifiées, respectivement, seront ignorés. Si aucune valeur n'est fournie, la détection se fera à toutes les échelles définies par le paramètre Pourcentage Facteur d'échelle. Si les tailles minimale et maximale sont spécifiées et sont identiques, la détection se produit uniquement à la taille spécifiée. La spécification de la taille minimale peut améliorer considérablement les performances de détection. La taille maximale est souvent inutile mais peut également affecter les performances. Par défaut, la taille maximale n'est pas définie et la largeur et la hauteur minimales sont de 4 %. |
Type d'objet détecté |
Ce paramètre détermine le nom de l'attribut qui sera utilisé pour marquer l'entité de chaque objet détecté avec le nom du modèle de détection qui a produit l'objet. Par défaut, cet attribut s'appelle _detected_object_type. |
Éditer les paramètres des Transformers
À l'aide d'un ensemble d'options de menu, les paramètres du Transformer peuvent être attribués en faisant référence à d'autres éléments de traitement. Des fonctions plus avancées, telles qu'un éditeur avancé et un éditeur arithmétique, sont également disponibles dans certains Transformers. Pour accéder à un menu de ces options, cliquez sur à côté du paramètre applicable. Pour plus d'informations, voir Options de menus et paramètres de Transformer.
Définir les valeurs
Il existe plusieurs façons de définir une valeur à utiliser dans un Transformer. La plus simple est de simplement taper une valeur ou une chaîne de caractères, qui peut inclure des fonctions de différents types comme des références d'attributs, des fonctions mathématiques et de chaînes de caractères, et des paramètres de traitement. Il existe un certain nombre d'outils et de raccourcis qui peuvent aider à construire des valeurs, généralement disponibles dans le menu contextuel déroulant adjacent au champ de valeur.
Utilisation de l'éditeur de texte
L'éditeur de texte fournit un moyen efficace de construire des chaînes de textes (dont les expressions régulières) à partir de données source diverses, telles que des attributs, des paramètres et des constantes, et le résultat est directement utilisé dans le paramètre.
Utilisation de l'éditeur arithmétique
L'éditeur arithmétique fournit un moyen simple de construire des expressions mathématiques à partir de plusieurs données source, telles que des attributs et des fonctions, et le résultat est directement utilisé dans un paramètre.
Valeur conditionnelle
Définit des valeurs selon un ou plusieurs tests.
Fenêtre de définition de conditions
Contenu
Les expressions et chaînes de caractères peuvent inclure des fonctions, caractères, paramètres et plus.
Lors du paramétrage des valeurs - qu'elles soient entrées directement dans un paramètre ou construites en utilisant l'un des éditeurs - les chaînes de caractères et les expressions contenant des fonctions Chaîne de caractères, Math, Date et heure ou Entité FME auront ces fonctions évaluées. Par conséquent, les noms de ces fonctions (sous la forme @<nom_de_fonction>) ne doivent pas être utilisés comme valeurs littérales de chaîne de caractères.
Ces fonctions manipulent les chaînes de caractères. | |
Caractères spéciaux |
Un ensemble de caractères de contrôle est disponible dans l'éditeur de texte. |
Plusieurs fonctions sont disponibles dans les deux éditeurs. | |
Fonctions Date/heure | Les fonctions de dates et heures sont disponibles dans l'Editeur texte. |
Ces opérateur sont disponibles dans l'éditeur arithmétique. | |
Elles retournent des valeurs spécifiques aux entités. | |
Les paramètres FME et spécifiques au traitement peuvent être utilisés. | |
Créer et modifier un paramètre publié | Créer ses propres paramètres éditables. |
Options - Tables
Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.
Réordonner
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
|
Couper, Copier et Coller
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
Copier, copier et coller peuvent être utilisés au sein d'un Transformer ou entre Transfromers. |
Filtre
|
Commencez à taper une chaîne de caractères, et la matrice n'affichera que les lignes correspondant à ces caractères. Recherche dans toutes les colonnes. Cela n'affecte que l'affichage des attributs dans le Transformer - cela ne change pas les attributs qui sont sortis. |
Importer
|
Le bouton d'import remplit la table avec un jeu de nouveaux attributs lus depuis un jeu de données. L'application spécifique varie selon les Transformers. |
Réinitialiser/Rafraîchir
|
Réinitialise la table à son état initial, et peut fournir des options additionnelles pour supprimer des entrées invalides. Le comportement varie d'un Transformer à l'autre. |
Note : Tous les outils ne sont pas disponibles dans tous les Transformers.
FME Community
FME Community est l'endroit où trouver des démos, des tutoriaux, des articles, des FAQ et bien plus encore. Obtenez des réponses à vos questions, apprenez des autres utilisateurs et suggérez, votez et commentez de nouvelles entités.
Voir tous les résultats à propos de ce Transformer sur FME Community.