Riferimento per ultralytics/models/sam/modules/decoders.py
Nota
Questo file è disponibile su https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/models/ sam/modules/decoders .py. Se riscontri un problema, contribuisci a risolverlo inviando una Pull Request 🛠️. Grazie 🙏!
ultralytics.models.sam.modules.decoders.MaskDecoder
Basi: Module
Modulo di decodifica per la generazione di maschere e dei relativi punteggi di qualità, utilizzando un'architettura di trasformatori per predire maschere date immagini e incorporazioni richieste.
Attributi:
Nome | Tipo | Descrizione |
---|---|---|
transformer_dim |
int
|
Dimensione del canale per il modulo trasformatore. |
transformer |
Module
|
Il modulo trasformatore utilizzato per la previsione della maschera. |
num_multimask_outputs |
int
|
Numero di maschere da prevedere per disambiguare le maschere. |
iou_token |
Embedding
|
Incorporamento per il token IoU. |
num_mask_tokens |
int
|
Numero di token della maschera. |
mask_tokens |
Embedding
|
Incorporamento per i token della maschera. |
output_upscaling |
Sequential
|
Sequenza della rete neurale per l'upscaling dell'uscita. |
output_hypernetworks_mlps |
ModuleList
|
MLP ipernetwork per la generazione di maschere. |
iou_prediction_head |
Module
|
MLP per la previsione della qualità della maschera. |
Codice sorgente in ultralytics/models/sam/modules/decoders.py
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
|
__init__(*, transformer_dim, transformer, num_multimask_outputs=3, activation=nn.GELU, iou_head_depth=3, iou_head_hidden_dim=256)
Prevede le maschere date un'immagine e le incorporazioni richieste, utilizzando un'architettura a trasformatori.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
transformer_dim |
int
|
la dimensione del canale del modulo trasformatore |
richiesto |
transformer |
Module
|
il trasformatore utilizzato per prevedere le maschere |
richiesto |
num_multimask_outputs |
int
|
il numero di maschere da prevedere quando si disambiguano le maschere |
3
|
activation |
Module
|
il tipo di attivazione da utilizzare per l'upscaling delle maschere |
GELU
|
iou_head_depth |
int
|
la profondità della MLP utilizzata per prevedere la qualità della maschera |
3
|
iou_head_hidden_dim |
int
|
la dimensione nascosta della MLP utilizzata per prevedere la qualità della maschera |
256
|
Codice sorgente in ultralytics/models/sam/modules/decoders.py
forward(image_embeddings, image_pe, sparse_prompt_embeddings, dense_prompt_embeddings, multimask_output)
Prevedere le maschere date le immagini e le incorporazioni richieste.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
image_embeddings |
Tensor
|
le incorporazioni del codificatore di immagini |
richiesto |
image_pe |
Tensor
|
codifica posizionale con la forma di image_embeddings |
richiesto |
sparse_prompt_embeddings |
Tensor
|
le incorporazioni dei punti e delle caselle |
richiesto |
dense_prompt_embeddings |
Tensor
|
le incorporazioni degli ingressi della maschera |
richiesto |
multimask_output |
bool
|
Se restituire più maschere o una sola maschera. |
richiesto |
Restituzione:
Tipo | Descrizione |
---|---|
Tensor
|
torch.Tensor: maschere previste in batch |
Tensor
|
torch.Tensor: previsioni in batch della qualità della maschera |
Codice sorgente in ultralytics/models/sam/modules/decoders.py
predict_masks(image_embeddings, image_pe, sparse_prompt_embeddings, dense_prompt_embeddings)
Prevede maschere.
Per maggiori dettagli, consulta la sezione "Avanti".
Codice sorgente in ultralytics/models/sam/modules/decoders.py
ultralytics.models.sam.modules.decoders.MLP
Basi: Module
Modello MLP (Multi-Layer Perceptron) leggermente adattato da https://github.com/facebookresearch/MaskFormer/blob/main/mask_former/modeling/transformer/transformer_predictor.py
Codice sorgente in ultralytics/models/sam/modules/decoders.py
__init__(input_dim, hidden_dim, output_dim, num_layers, sigmoid_output=False)
Inizializza il modello MLP (Multi-Layer Perceptron).
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
input_dim |
int
|
La dimensionalità delle caratteristiche in ingresso. |
richiesto |
hidden_dim |
int
|
La dimensionalità degli strati nascosti. |
richiesto |
output_dim |
int
|
La dimensionalità dello strato di uscita. |
richiesto |
num_layers |
int
|
Il numero di strati nascosti. |
richiesto |
sigmoid_output |
bool
|
Applica un'attivazione sigmoide al livello di uscita. L'impostazione predefinita è False. |
False
|
Codice sorgente in ultralytics/models/sam/modules/decoders.py
forward(x)
Esegue il feedforward all'interno del modulo della rete neurale e applica l'attivazione.