Les méthodes d'apprentissage invite existantes ont démontré certaines capacités de détection hors distribution (OOD), mais leur manque de perception des images OOD dans l'ensemble de données cible peut conduire à des décalages entre les images OOD et les catégories en distribution (ID), conduisant à un taux de faux positif élevé. Pour résoudre ce problème, nous introduisons une nouvelle méthode de détection OOD, nommée «Negprompt», qui est conçue pour apprendre un ensemble d'invites négatives, chacune représentant une connotation négative d'une étiquette de classe donnée, pour délimiter les limites entre les images ID et OOD. Il apprend de telles invites négatives avec les données d'ID uniquement, éliminant sa dépendance à l'égard des données externes. En outre, les méthodes actuelles supposent la disponibilité d'échantillons de toutes les classes d'identification, ce qui les rend inefficaces dans les scénarios d'apprentissage à vocabulaire ouvert où l'étape d'inférence peut contenir de nouvelles classes d'identification non présentes dans les données de formation. En revanche, nos invites négatives apprises sont transférables à de nouvelles étiquettes de classe. Des expériences sur diverses références basées sur l'imaget démontrent que Negprompt dépasse les méthodes de détection OOD basées sur l'apprentissage rapide de pointe et maintient un plomb cohérent dans la détection dure dure dans les scénarios de classification fermée et ouverte. Le texte intégral est disponible arxiv.

Les environnements de négpropmt doivent être préparés:
conda create -n NegPrompt python=3.8
conda activate NegPrompt
pip install -r requirements.txtTout d'abord, faites un nouveau répertoire ./Data pour stocker l'ensemble de données.
Ensuite, téléchargez l'ensemble de données comme https://github.com/atsumiyai/loop.
Organiser le répertoire de données comme ceci:
NegPrompt
|-- data/
|-- ImageNet1k/
|-- ILSVRC/
|-- Data/
|-- CLS-LOC/
|-- train/
|-- val/
|protocols/
|-- iNaturalist/
|--images/
|-- SUN/
|--images/
|-- Places/
|--images/
|-- dtd/
|--images/
...
Pour entraîner le négropt pour la conventition OOD:
conda activate NegPrompt
python ./scripts/train_test_ood.pyPour entraîner le négropt pour un OOD dur:
conda activate NegPrompt
python ./scripts/train_test_openset.py @inproceedings { li2024learning ,
title = { Learning Transferable Negative Prompts for Out-of-Distribution Detection } ,
author = { Li, Tianqi and Pang, Guansong and Bai, Xiao and Miao, Wenjun and Zheng, Jin } ,
booktitle = { Proceedings of the IEEE/CVF conference on computer vision and pattern recognition } ,
year = { 2024 }
}