$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Cette étude n’utilise que des ensembles de données accessibles au public (UCF-Crime13 et ShanghaiTech14). Toutes les vidéos ont été obtenues à partir des versions officielles des ensembles de données, qui anonymisent les informations personnellement identifiables dans la mesure fournie par les responsables de l’ensemble de données. Aucune collecte de données supplémentaire ou interaction avec un sujet humain n’a été effectuée par les auteurs ; par conséquent, aucune nouvelle approbation du CISR n’était requise. L’utilisation des données est conforme aux licences et aux conditions d’utilisation des ensembles de données respectifs.
Préparation des données et extraction des caractéristiques
Préparation de l’ensemble de données : Les ensembles de données UCF-Crime13 (1 610 trains/290 vidéos de test) et ShanghaiTech14 (238 trains/199 vidéos de test) ont été adoptés dans le cadre de leurs divisions standard. Les vidéos ont été prétraitées à l’aide de FFmpeg pour assurer la reproductibilité, réencodées en H.264, rééchantillonnées à 25 ips et redimensionnées à une résolution de 256 x 256 avec la commande : ffmpeg -i v.mp4 -vf « fps=25,scale=256:256 » -c :v libx264 -crf 23 -preset veryfast pre/.
Extraction de caractéristiques : Les caractéristiques RVB ont été extraites par un backbone I3D15 pré-entraîné sur le jeu de données Kinetics16. Les vidéos ont été divisées en clips de 16 images qui ne se chevauchaient pas ; Chaque clip a été recadré au centre à 224 x 224 pixels. Les activations de l’avant-dernière couche ont été regroupées en moyenne pour obtenir une caractéristique 1024-D par clip. Dans PyTorch, cela correspond à l’acheminement des tenseurs de forme [B, 3, T, H, W] à travers le squelette I3D et à l’application de adaptive_avg_pool3d suivie d’un aplatissement. Les caractéristiques extraites ont été enregistrées dans des fichiers .npy (un par vidéo) avec les horodatages des clips pour une reproductibilité exacte (graine = 123). Pour chaque vidéo, features///
Architecture du modèle et méthodologie
Détection de base : fusion de contextes temporels
À partir d’une séquence de clip vidéo représentée par une matrice de caractéristiques Z
RTx1024, le module TCF (Temporal Context Fusion) a d’abord calculé des représentations de requêtes, de clés et de valeurs à l’aide de trois projections linéaires apprises :
Q =ZW Q, K = ZWK, V = ZWV (1)
où WQ, WK, WV
RTx1024x d sontdes paramètres pouvant être entraînés (PyTorch : trois nn. Couches linéaires (1024,d)). L’affinité intersegment était S =
, un plongement de relationnalité temporelle (TRE) a été incorporé, où chaque élément a été calculé comme Rij = α exp (
) + β . L’affinité sensible à l’emplacement était
= S + R. Une carte de contexte global A = softmax(
) agrégée V pour obtenir des entités à large aire G = AV. Les caractéristiques locales L ont été calculées avec une convolution 1-D en profondeur (nn. Conv1d) de la taille du noyau 3 sur Z. Une porte dynamique g = σ(MLP ([G ;L])) a mélangé les deux : U = g
G + (1 - g)
L . Enfin, la normalisation de la couche et une couche linéaire résiduelle ont été appliquées pour produire Y (Pytorch :LayerNorm+Linear+residual).
Détection de base : prédicteur temporel causal
La sortie Y a été transmise à travers deux circonvolutions 1D causales avec GELU et dropout (Pytorch :padding='causal' ou conv masquée) pour obtenir des logits d’anomalie par clip. L’application de la fonction sigmoïde a donné des valeurs
de probabilité [0,1]T.
Amélioration sémantique : apprentissage rapide avec des connaissances externes
Construire des ancres sémantiques : Pour chaque anomalie de classe c, les concepts Kc ont été interrogés à partir de Wikidata11, et encodés chaque phrase de concept a été encodé avec l’encodeur de texte12de BLIP à ei
R768. L’ancre de classe était la moyenne normalisée l2 Dc = norme(
Σi ei) . Pour réduire le bruit, les concepts dont la similarité cosinus avec le nom de la classe est inférieure à 0,2 ont été abandonnés et le score M supérieur par TF-IDF a été conservé.
Effectuer une séparation contextuelle : Les poids de premier plan αt = softmax(rst) ont été calculés à partir des scores de détecteur de base st, et des poids d’arrière-plan bt = softmax(r(1 - st)). Les caractéristiques pondérées sont ffg = Σt αzt et fbg = Σtbzt .
Aligner les fonctionnalités visuelles et sémantiques
Définir l’objectif d’alignement : au cours de l’étape d’alignement, l’objectif est de minimiser la distance entre l’élément visuel de premier plan et son ancrage sémantique correspondant de la catégorie anormale dans l’espace des entités. Créez une collection de guides sémantiques,
comprenant des guides sémantiques de catégorie anormale C et un guide sémantique normal standard. Déterminer la vraisemblance, P(Dk|v), qu’une caractéristique visuelle, v, correspond au k-ième guide sémantique, Dk. Calculez cela en utilisant la similarité cosinus à l’échelle de la température suivie de la normalisation Softmax, comme indiqué dans l’équation (2).
(2)
L’entropie croisée a été minimisée pour rapprocher les paires positives et les paires négatives, en fixant τs comme paramètre apprenable et en l’initialisant à 10. Réalisez l’alignement en optimisant la probabilité de corréler des paires d’échantillons positives tout en réduisant la probabilité de corréler des paires d’échantillons négatives.
Module d’interprétabilité basé sur des modèles
Sur la base de la représentation de caractéristiques améliorée par l’apprentissage rapide avec connaissances externes (PLE), un classificateur linéaire produit des logits par classe, qui ont ensuite été normalisés en probabilités de classe par la fonction softmax ; Le type d’anomalie prédit a été déterminé comme étant la catégorie avec la probabilité la plus élevée. Pendant ce temps, un score d’anomalie global a été calculé à partir de la sortie du détecteur. Pour déterminer le niveau de gravité, ce score a été comparé à trois seuils prédéfinis optimisés par la recherche en grille sur l’ensemble de validation.
Les seuils par défaut ont été fixés à θélevé = 0,8, θmoyen = 0,5 et θfaible = 0,2. Plus précisément, si le score était supérieur à θélevé, la gravité était étiquetée comme élevée ; si le score se situe entre θmoyen et θélevé, il a été étiqueté comme moyen ; si entre θfaible et θmoyen, il était étiqueté comme faible ; sinon, il était marqué comme aucun.
Lors de la phase de génération d’explications, un modèle correspondant au type prédit a été sélectionné à partir d’une bibliothèque de modèles prédéfinie, le Fichier Supplémentaire 1. Cette bibliothèque contient plusieurs variantes de modèles qui ont été validées par plusieurs annotateurs17 afin d’améliorer la diversité du texte généré. Si le type prédit existe dans la bibliothèque de modèles, un modèle correspondant a été sélectionné de manière aléatoire ; sinon, un modèle par défaut pour le type Inconnu a été utilisé. Enfin, un texte explicatif structuré a été généré en intégrant le type prédit, le score d’anomalie global, la description de la gravité et le modèle sélectionné. Le système renvoie le type d’anomalie prédit, le score d’anomalie global et le texte explicatif généré en tant que sortie finale. Les résultats sont illustrés à la figure 2.
Tous les paramètres de seuil ont été optimisés à l’aide de la recherche par grille sur l’ensemble de validation, et la qualité des explications générées a été évaluée de manière exhaustive à l’aide d’une évaluation humaine et de mesures automatisées. Les résultats sont présentés dans le tableau 1.
Formation et évaluation du modèle
Formation : Le modèle a été entraîné de bout en bout avec Adam (lr 1 x 10-4, perte de poids 5 x 10-4), taille de lot 128, 50 époques, recuit cosinus pour lr. Les valeurs de départ aléatoires ont été définies à 123 pour Python/Numpy/Pytorch et ont activé torch.backends.cudnn.deterministic=True. Les points de contrôle ont été enregistrés toutes les 5 époques dans checkpoints//epoch_XX.pt, et le meilleur modèle a été sélectionné par AUC de validation. Toutes les expériences ont été menées sur un système équipé d’un GPU NVIDIA GeForce RTX 4060 Ti (16 Go) exécutant Windows 11, avec Python 3.8.20, PyTorch 1.8.0 et CUDA 11.1. Le temps d’entraînement approximatif par époque était de 30 s pour l’ensemble de données ShanghaiTech et de 3,5 minutes pour l’ensemble de données UCF-Crime.
Perte : L’objectif global est L = LMIL+ λ • Lalign. L’hyperparamètre λ a été balayé sur l’ensemble {0.01,0.1,0.5,1,5,1,5,10} sur l’ensemble de validation, et la meilleure valeur a été fixée pour le rapport de test. Voir la figure 3 pour l’agrégation MIL top-K et l’équation (3-4) pour les définitions.
(3)
(4)
Évaluation : L’AUC au niveau de l’image a été calculée selon le protocole standard utilisé par les travaux précédents de WS-VAD 2,5. Pour la reconnaissance de type à grain fin sur UCF-Crime, mAP à IoU 0,1-0,5 et mAP AVG ont été rapportés, comme résumé dans le tableau 2 ; les ASC par classe sont présentées à la figure 4 et les résultats globaux aux tableaux 3 et 4 ; l’intégration de la séparabilité et de la dynamique du score d’anomalie sont illustrées à la figure 4, à la figure 5 et à la figure 6.