Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Valutazione dei modelli

Dopo aver addestrato un modello, AutoML Video Intelligence Object Tracking utilizza elementi del set di TEST per valutare la qualità e la precisione del nuovo modello.

Il monitoraggio oggetti AutoML Video Intelligence fornisce un insieme aggregato di metriche di valutazione che indicano il rendimento complessivo del modello, oltre a metriche di valutazione per ogni etichetta di categoria, indicando le prestazioni del modello per quell'etichetta.

  • IoU: intersezione sull'unione, una metrica utilizzata nel monitoraggio di oggetti per misurare la sovrapposizione di un riquadro di delimitazione previsto rispetto a quello effettivo per un'istanza di oggetto in un frame video. Più i valori previsti dei riquadri di delimitazione sono vicini ai valori effettivi, maggiori sono l'intersezione e il valore IoU.

  • AuPRC : Area sotto la curva Precisione/richiamo, nota anche come "precisione media". Generalmente tra 0,5 e 1,0. Valori più alti indicano modelli più accurati.

  • Le curve della soglia di affidabilità mostrano in che modo le diverse soglie di affidabilità possono influire su percentuali di precisione, richiamo, vero e falso positivo. Scopri di più sul rapporto di precisione e ricordo.

Utilizza questi dati per valutare l'idoneità del modello. Punteggi di AUC bassi o punteggi di precisione e richiamo bassi possono indicare che il tuo modello ha bisogno di dati di addestramento aggiuntivi o ha etichette incoerenti. Un punteggio AUC molto alto, nonché una precisione e un ricordo perfetti possono indicare che i dati sono troppo semplici e potrebbero non essere generalizzati.

Recupero valori valutazione modello

UI web

  1. Apri la pagina Modelli nell'interfaccia utente di monitoraggio degli oggetti video AutoML.

  2. Fai clic sulla riga del modello da valutare.

  3. Fai clic sulla scheda Valuta.

    Se l'addestramento è stato completato per il modello, AutoML Video Object Tracking mostra le relative metriche di valutazione.

    Valuta la scheda con le informazioni sul modello
  4. Per visualizzare le metriche per un'etichetta specifica, seleziona il nome dell'etichetta dall'elenco delle etichette nella parte inferiore della pagina.

REST &AM; LINEA CMD

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • model-id: sostituisci con l'identificatore del tuo modello
  • project-number: il numero del progetto
  • location-id: l'area geografica Cloud in cui deve avvenire l'annotazione. Le regioni cloud supportate sono: us-east1, us-west1, europe-west1, asia-east1. Se non viene specificata alcuna regione, verrà determinata una regione in base alla posizione del file video.

Metodo HTTP e URL:

GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id:modelEvaluations

Per inviare la richiesta, scegli una delle seguenti opzioni:

ricciolo

Esegui questo comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id:modelEvaluations"

PowerShell

Esegui questo comando:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id:modelEvaluations" | Select-Object -Expand Content
La risposta include una risorsa ModelEvaluation per il modello complessivo, ad esempio 8703337066443674578.

Java

import com.google.cloud.automl.v1beta1.AutoMlClient;
import com.google.cloud.automl.v1beta1.ModelEvaluation;
import com.google.cloud.automl.v1beta1.ModelEvaluationName;
import java.io.IOException;

class GetModelEvaluation {

  static void getModelEvaluation() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    String modelEvaluationId = "YOUR_MODEL_EVALUATION_ID";
    getModelEvaluation(projectId, modelId, modelEvaluationId);
  }

  // Get a model evaluation
  static void getModelEvaluation(String projectId, String modelId, String modelEvaluationId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AutoMlClient client = AutoMlClient.create()) {
      // Get the full path of the model evaluation.
      ModelEvaluationName modelEvaluationFullId =
          ModelEvaluationName.of(projectId, "us-central1", modelId, modelEvaluationId);

      // Get complete detail of the model evaluation.
      ModelEvaluation modelEvaluation = client.getModelEvaluation(modelEvaluationFullId);

      System.out.format("Model Evaluation Name: %s%n", modelEvaluation.getName());
      System.out.format("Model Annotation Spec Id: %s", modelEvaluation.getAnnotationSpecId());
      System.out.println("Create Time:");
      System.out.format("\tseconds: %s%n", modelEvaluation.getCreateTime().getSeconds());
      System.out.format("\tnanos: %s", modelEvaluation.getCreateTime().getNanos() / 1e9);
      System.out.format(
          "Evalution Example Count: %d%n", modelEvaluation.getEvaluatedExampleCount());

      System.out.format(
          "Video Object Tracking Evaluation Metrics: %s%n",
          modelEvaluation.getVideoObjectTrackingEvaluationMetrics());
    }
  }
}

Node.js

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const modelId = 'YOUR_MODEL_ID';
// const modelEvaluationId = 'YOUR_MODEL_EVALUATION_ID';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1beta1;

// Instantiates a client
const client = new AutoMlClient();

async function getModelEvaluation() {
  // Construct request
  const request = {
    name: client.modelEvaluationPath(
      projectId,
      location,
      modelId,
      modelEvaluationId
    ),
  };

  const [response] = await client.getModelEvaluation(request);

  console.log(`Model evaluation name: ${response.name}`);
  console.log(`Model annotation spec id: ${response.annotationSpecId}`);
  console.log(`Model display name: ${response.displayName}`);
  console.log('Model create time');
  console.log(`\tseconds ${response.createTime.seconds}`);
  console.log(`\tnanos ${response.createTime.nanos / 1e9}`);
  console.log(`Evaluation example count: ${response.evaluatedExampleCount}`);
  console.log(
    `Video object tracking model evaluation metrics: ${response.videoObjectTrackingEvaluationMetrics}`
  );

}

getModelEvaluation();

Python

from google.cloud import automl_v1beta1 as automl

# TODO(developer): Uncomment and set the following variables
# project_id = "YOUR_PROJECT_ID"
# model_id = "YOUR_MODEL_ID"
# model_evaluation_id = "YOUR_MODEL_EVALUATION_ID"

client = automl.AutoMlClient()
# Get the full path of the model evaluation.
model_path = client.model_path(project_id, "us-central1", model_id)
model_evaluation_full_id = f"{model_path}/modelEvaluations/{model_evaluation_id}"

# Get complete detail of the model evaluation.
response = client.get_model_evaluation(name=model_evaluation_full_id)

print("Model evaluation name: {}".format(response.name))
print("Model annotation spec id: {}".format(response.annotation_spec_id))
print("Create Time: {}".format(response.create_time))
print(
    "Evaluation example count: {}".format(response.evaluated_example_count)
)

print(
    "Video object tracking model evaluation metrics: {}".format(
        response.video_object_tracking_evaluation_metrics
    )
)

Iterazione sul modello

Se i livelli di qualità non sono soddisfacenti, puoi tornare ai passaggi precedenti per migliorare la qualità:

  • Potresti dover aggiungere diversi tipi di video, ad esempio con un angolo più ampio, una risoluzione maggiore o più bassa e punti di vista differenti.
  • Considera la possibilità di rimuovere completamente le etichette se non hai abbastanza video di formazione.
  • Ricorda che le macchine non possono leggere il nome della tua etichetta, è solo una stringa casuale di lettere. Se hai un'etichetta che dice "porta" e un'altra che dice "porta_con_manopola"; la macchina non ha modo di capire la sfumatura diversa dai video che fornisci.
  • Arricchisci i tuoi dati con più esempi di veri positivi e negativi. Gli esempi particolarmente importanti sono quelli che si trovano nelle vicinanze della decisione.

Dopo aver apportato modifiche, addestra e valuta un nuovo modello finché non raggiungi un livello di qualità sufficiente.