Valutazione dei modelli

Dopo l'addestramento di un modello, AutoML Video Intelligence Object Tracking utilizza gli elementi del set di TEST per valutare la qualità e l'accuratezza del nuovo modello.

AutoML Video Intelligence Object Tracking fornisce un set aggregato di metriche di valutazione che indicano il livello di rendimento complessivo del modello, nonché metriche di valutazione per ciascuna etichetta di categoria, che indicano le prestazioni del modello per quell'etichetta.

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

  • AuPRC : area sotto la curva di precisione/richiamo, chiamata anche "precisione media". Di solito tra 0,5 e 1,0. Valori più alti indicano modelli più accurati.

  • Le curve della soglia di confidenza mostrano in che modo le diverse soglie di confidenza possono influire sulla precisione, sul richiamo e sui tassi di veri e falsi positivi. Scopri il rapporto tra precisione e richiamo.

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

Ottieni valori di valutazione del modello

UI web

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

  2. Fai clic sulla riga del modello da valutare.

  3. Fai clic sulla scheda Valuta.

    Se l'addestramento del modello è stato completato, AutoML Video Object Tracking mostra le sue metriche di valutazione.

    Scheda Valuta con informazioni sul modello
  4. Per visualizzare le metriche relative a un'etichetta specifica, seleziona il nome dell'etichetta dall'elenco nella parte inferiore della pagina.

REST

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

  • model-id: sostituisci con l'identificatore del modello
  • project-number: il numero del progetto
  • location-id: la regione Cloud in cui deve avvenire l'annotazione. Le regioni cloud supportate sono: us-east1, us-west1, europe-west1 e asia-east1. Se non viene specificata alcuna regione, verrà determinata 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:

arricciatura

Esegui questo comando:

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

PowerShell

Esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }

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

Per eseguire l'autenticazione in AutoML Video Object Tracking, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per eseguire l'autenticazione in AutoML Video Object Tracking, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

/**
 * 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

Per eseguire l'autenticazione in AutoML Video Object Tracking, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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(f"Model evaluation name: {response.name}")
print(f"Model annotation spec id: {response.annotation_spec_id}")
print(f"Create Time: {response.create_time}")
print(f"Evaluation example count: {response.evaluated_example_count}")

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

Esegui l'iterazione sul modello

Se i livelli qualitativi non ti soddisfano, puoi tornare ai passaggi precedenti per migliorare la qualità:

  • Potrebbe essere necessario aggiungere diversi tipi di video, ad esempio da un'angolazione più ampia, con una risoluzione maggiore o minore e da punti di vista diversi.
  • Valuta la possibilità di rimuovere del tutto le etichette se non disponi di un numero sufficiente di video di formazione.
  • Ricorda che le macchine non possono leggere il nome dell'etichetta; è solo una stringa casuale di lettere. Se ci sono un'etichetta con la scritta "porta" e un'altra con la dicitura "porta_con_manopola", la macchina non ha modo di cogliere le sfumature a parte i video forniti da te.
  • Arricchisci i tuoi dati con più esempi di veri positivi e negativi. Gli esempi particolarmente importanti sono quelli che si avvicinano ai confini decisionali.

Dopo aver apportato le modifiche, addestra e valuta un nuovo modello fino a raggiungere un livello qualitativo sufficientemente elevato.