Hinzufügen von Bildern zu Ihrem Datensatz - Amazon Lookout für Vision

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Hinzufügen von Bildern zu Ihrem Datensatz

Nachdem Sie einen Datensatz erstellt haben, möchten Sie dem Datensatz möglicherweise weitere Bilder hinzufügen. Wenn die Modellauswertung beispielsweise auf ein schlechtes Modell hinweist, können Sie die Qualität Ihres Modells verbessern, indem Sie mehr Bilder hinzufügen. Wenn Sie einen Testdatensatz erstellt haben, kann das Hinzufügen weiterer Bilder die Genauigkeit der Leistungskennzahlen Ihres Modells erhöhen.

Trainieren Sie Ihr Modell nach der Aktualisierung Ihrer Datensätze erneut.

Weitere Bilder hinzufügen

Sie können Ihren Datensätzen weitere Bilder hinzufügen, indem Sie Bilder von Ihrem lokalen Computer hochladen. Verwenden Sie den Vorgang, um mit dem SDK weitere beschriftete Bilder hinzuzufügen. UpdateDatasetEntries

Um Ihrem Datensatz weitere Bilder hinzuzufügen (Konsole)
  1. Wählen Sie Aktionen und wählen Sie den Datensatz aus, zu dem Sie Bilder hinzufügen möchten.

  2. Wählen Sie die Bilder aus, die Sie in den Datensatz hochladen möchten. Sie können die Bilder ziehen oder die Bilder auswählen, die Sie von Ihrem lokalen Computer hochladen möchten. Sie können bis zu 30 Bilder gleichzeitig hochladen.

  3. Wähle Bilder hochladen.

  4. Wählen Sie Änderungen speichern aus.

Wenn Sie mit dem Hinzufügen weiterer Bilder fertig sind, müssen Sie sie beschriften, damit sie zum Trainieren des Modells verwendet werden können. Weitere Informationen finden Sie unter Bilder klassifizieren (Konsole).

Weitere Bilder hinzufügen (SDK)

Verwenden Sie den UpdateDatasetEntriesVorgang, um weitere beschriftete Bilder mit dem SDK hinzuzufügen. Sie stellen eine Manifestdatei bereit, die die Bilder enthält, die Sie hinzufügen möchten. Sie können auch vorhandene Bilder aktualisieren, indem Sie das Bild im source-ref Feld der JSON-Zeile in der Manifestdatei angeben. Weitere Informationen finden Sie unter Erstellen einer Manifestdatei.

Um mehr Bilder zu einem Datensatz hinzuzufügen (SDK)
  1. Falls Sie dies noch nicht getan haben, installieren und konfigurieren Sie die AWS CLI und die AWS SDKs. Weitere Informationen finden Sie unter Schritt 4: Richten Sie die AWS SDKs AWS CLI und ein.

  2. Verwenden Sie den folgenden Beispielcode, um einem Datensatz weitere Bilder hinzuzufügen.

    CLI

    Ändern Sie die folgenden Werte:

    • project-namein den Namen des Projekts, das den Datensatz enthält, den Sie aktualisieren möchten.

    • dataset-typeauf den Datasettyp, den Sie aktualisieren möchten (trainodertest).

    • changesan den Speicherort der Manifestdatei, die Datensatz-Aktualisierungen enthält.

    aws lookoutvision update-dataset-entries\ --project-name project\ --dataset-type train or test\ --changes fileb://manifest file \ --profile lookoutvision-access
    Python

    Dieser Code stammt aus dem AWS Documentation SDK Examples GitHub Repository. Das vollständige Beispiel finden Sie hier.

    @staticmethod def update_dataset_entries(lookoutvision_client, project_name, dataset_type, updates_file): """ Adds dataset entries to an Amazon Lookout for Vision dataset. :param lookoutvision_client: The Amazon Rekognition Custom Labels Boto3 client. :param project_name: The project that contains the dataset that you want to update. :param dataset_type: The type of the dataset that you want to update (train or test). :param updates_file: The manifest file of JSON Lines that contains the updates. """ try: status = "" status_message = "" manifest_file = "" # Update dataset entries logger.info(f"""Updating {dataset_type} dataset for project {project_name} with entries from {updates_file}.""") with open(updates_file) as f: manifest_file = f.read() lookoutvision_client.update_dataset_entries( ProjectName=project_name, DatasetType=dataset_type, Changes=manifest_file, ) finished = False while finished == False: dataset = lookoutvision_client.describe_dataset(ProjectName=project_name, DatasetType=dataset_type) status = dataset['DatasetDescription']['Status'] status_message = dataset['DatasetDescription']['StatusMessage'] if status == "UPDATE_IN_PROGRESS": logger.info( (f"Updating {dataset_type} dataset for project {project_name}.")) time.sleep(5) continue if status == "UPDATE_FAILED_ROLLBACK_IN_PROGRESS": logger.info( (f"Update failed, rolling back {dataset_type} dataset for project {project_name}.")) time.sleep(5) continue if status == "UPDATE_COMPLETE": logger.info( f"Dataset updated: {status} : {status_message} : {dataset_type} dataset for project {project_name}.") finished = True continue if status == "UPDATE_FAILED_ROLLBACK_COMPLETE": logger.info( f"Rollback complated after update failure: {status} : {status_message} : {dataset_type} dataset for project {project_name}.") finished = True continue logger.exception( f"Failed. Unexpected state for dataset update: {status} : {status_message} : {dataset_type} dataset for project {project_name}.") raise Exception( f"Failed. Unexpected state for dataset update: {status} : {status_message} :{dataset_type} dataset for project {project_name}.") logger.info(f"Added entries to dataset.") return status, status_message except ClientError as err: logger.exception( f"Couldn't update dataset: {err.response['Error']['Message']}") raise
    Java V2

    Dieser Code stammt aus dem AWS Documentation SDK Examples GitHub Repository. Das vollständige Beispiel finden Sie hier.

    /** * Updates an Amazon Lookout for Vision dataset from a manifest file. * Returns after Lookout for Vision updates the dataset. * * @param lfvClient An Amazon Lookout for Vision client. * @param projectName The name of the project in which you want to update a * dataset. * @param datasetType The type of the dataset that you want to update (train or * test). * @param manifestFile The name and location of a local manifest file that you want to * use to update the dataset. * @return DatasetStatus The status of the updated dataset. */ public static DatasetStatus updateDatasetEntries(LookoutVisionClient lfvClient, String projectName, String datasetType, String updateFile) throws FileNotFoundException, LookoutVisionException, InterruptedException { logger.log(Level.INFO, "Updating {0} dataset for project {1}", new Object[] { datasetType, projectName }); InputStream sourceStream = new FileInputStream(updateFile); SdkBytes sourceBytes = SdkBytes.fromInputStream(sourceStream); UpdateDatasetEntriesRequest updateDatasetEntriesRequest = UpdateDatasetEntriesRequest.builder() .projectName(projectName) .datasetType(datasetType) .changes(sourceBytes) .build(); lfvClient.updateDatasetEntries(updateDatasetEntriesRequest); boolean finished = false; DatasetStatus status = null; // Wait until update completes. do { DescribeDatasetRequest describeDatasetRequest = DescribeDatasetRequest.builder() .projectName(projectName) .datasetType(datasetType) .build(); DescribeDatasetResponse describeDatasetResponse = lfvClient .describeDataset(describeDatasetRequest); DatasetDescription datasetDescription = describeDatasetResponse.datasetDescription(); status = datasetDescription.status(); switch (status) { case UPDATE_COMPLETE: logger.log(Level.INFO, "{0} Dataset updated for project {1}.", new Object[] { datasetType, projectName }); finished = true; break; case UPDATE_IN_PROGRESS: logger.log(Level.INFO, "{0} Dataset update for project {1} in progress.", new Object[] { datasetType, projectName }); TimeUnit.SECONDS.sleep(5); break; case UPDATE_FAILED_ROLLBACK_IN_PROGRESS: logger.log(Level.SEVERE, "{0} Dataset update failed for project {1}. Rolling back", new Object[] { datasetType, projectName }); TimeUnit.SECONDS.sleep(5); break; case UPDATE_FAILED_ROLLBACK_COMPLETE: logger.log(Level.SEVERE, "{0} Dataset update failed for project {1}. Rollback completed.", new Object[] { datasetType, projectName }); finished = true; break; default: logger.log(Level.SEVERE, "{0} Dataset update failed for project {1}. Unexpected error returned.", new Object[] { datasetType, projectName }); finished = true; } } while (!finished); return status; }
  3. Wiederholen Sie den vorherigen Schritt und geben Sie Werte für den anderen Datensatztyp an.