Etichetta Studio

Utilizzare Label Studio per etichettare i set di dati.

Il servizio Data Labeling di Oracle non è più valido. È necessario eseguire la migrazione di qualsiasi set di dati etichettati in Label Studio, uno strumento di etichettatura open source e supportato dal marketplace. Con l'obsolescenza dell'etichettatura dei dati, questa sezione fornisce dettagli sulla conversione delle esportazioni istantanee dell'etichettatura dei dati nei formati di importazione di Label Studio e di esportazione JSON di Label Studio. È possibile utilizzare questi formati per ulteriori annotazioni in Label Studio o per l'addestramento diretto dei modelli.

Per addestrare i modelli personalizzati, sono necessari i due file riportati di seguito.

File manifesto
Questo file contiene metadati sui file di annotazione e in genere ha un'estensione .jsonl.
File record

Questo è il data set esportato da Label Studio dopo l'annotazione. Il file ha un'estensione .json.

  • Per il valore KV personalizzato, il file dei record è in formato JSON-MIN.

  • Per CD personalizzato, il file dei record è in formato JSON standard.

1. Impostazione dell'ambiente Label Studio

È possibile utilizzare l'ambiente virtuale o Conda:
  1. Creare il file requirement.txt:
    label-studio==1.19.0
    pdf2image
    oci
    label-studio-ml
  2. Creare l'ambiente:
    • Utilizzo dell'ambiente virtuale:
      python3 -m venv env_name
    • Utilizzando Conda:
      conda create --name env_name
  3. Attivare l'ambiente:
    • Utilizzo dell'ambiente virtuale:
      source env_name/bin/activate
    • Utilizzando Conda:
      conda activate env_name
  4. Installare Label Studio con le relative dipendenze
    pip install -r requirements.txt
  5. Abilita il servizio file locale.
    Poiché i file vengono memorizzati localmente, è necessario esportare le seguenti variabili di ambiente per consentire a Label Studio di accedervi e annotarle:
    export LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true
    export LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=<absolute-path-to-parent-directory-of-folder-where-documents-are-stored>
    Per ulteriori informazioni, vedere Impostare le variabili di ambiente nella documentazione di Label Studio.

1.1 Avviare Label Studio

  1. Avvia Label Studio.
    Per impostazione predefinita, Label Studio viene eseguito sulla porta 8080. Se la porta è già in uso o per specificare una porta diversa, avviare Label Studio con il seguente comando:
    label-studio start --port <port_number>
    Per ulteriori informazioni, vedere Start Label Studio nella documentazione di Label Studio.
  2. Creare un conto.

    Quando si avvia Label Studio per la prima volta , viene visualizzata la schermata di registrazione.

    1. Crea un account con il tuo indirizzo email e una password.
    2. Eseguire il login a Label Studio.

2. Workflow etichettatura per estrazione valore chiave personalizzato

Label Studio non supporta l'annotazione PDF in modo nativo per ulteriori informazioni. Vedere Strumenti fondamentali per l'etichettatura PDF nella documentazione di Label Studio.

Esiste una soluzione alternativa per l'etichettatura con più immagini pagate.

Per assegnare un'etichetta ai PDF, attenersi alla procedura riportata di seguito.

  1. Convertire i PDF in immagini. Per ulteriori informazioni, fare riferimento alla esercitazione sul codice.
  2. Memorizza le immagini accessibili da Label Studio.
  3. Creare un nuovo progetto Label Studio e caricare i dati.
    Per ogni attività, hai un elenco di URL corrispondenti alla posizione di ogni immagine (o pagina) nel documento. Questi sono gli URL in cui è ospitato il documento.
  4. Utilizzare il nuovo modello di annotazione documenti con più pagine per configurare l'etichettatura.
  5. Etichetta i dati.
  6. Scaricare gli script di utility ed estrarre utility_scripts_kv.zip per l'annotazione dei valori chiave.

2.1 Genera elenco di task

Se i documenti di formazione sono in formato PDF, dovrai prima convertirli in immagini. La funzione pdf_to_images esegue questa conversione e salva le immagini in una cartella output_images (Images_input_root), che viene creata alla radice della directory di input fornita. Per ogni PDF, viene creata una cartella separata (dal nome del file PDF) all'interno della directory output_images per memorizzare le immagini corrispondenti.

  1. Per l'annotazione Label Studio, è necessario generare un elenco di task. Ogni task corrisponde all'annotazione di un singolo documento.
  2. Da una riga di comando, eseguire il file generate_tasks.kv.pv contenuto negli script di utility scaricati nel passo 6 dell'attività precedente.

2.2 Impostazione integrazione OCR per preanntazione

Per semplificare il flusso di lavoro delle annotazioni e ridurre al minimo l'impegno manuale, è possibile abilitare la preanntazione interattiva in Label Studio. Questa impostazione consente la generazione automatica di riquadri mediante il servizio OCR. OCI OCR è integrato come backend ML per generare riquadri nelle immagini per l'annotazione key-value. Duplicare il repository seguente e installare le dipendenze richieste:

Per ulteriori informazioni, vedere Scrivere il backend ML personale nella documentazione di Label Studio.

  1. Installare label-studio-ml-backend:
    git clone https://github.com/HumanSignal/label-studio-ml-backend.git
    cd label-studio-ml-backend/
    pip install -e .
  2. Configurare i parametri per chiamare il servizio di estrazione testo OCI:
    CONFIG_PROFILE = "DEFAULT"
    COMPARTMENT_ID = "ocid1.compartment.oc1.xxxxxxxxxxxxxxxxxxxxxxxx"
    SERVICE_ENDPOINT = "https://document-preprod.aiservice.xxxxxxxxxxxxxxxx"
    LANGUAGE="ENG"
  3. Avvia servizio Estrazione testo:
    1. Scaricare gli script di utility ed estrarre il contenuto di ociocr.zip nella directory label-studio-ml-backend/label_studio_ml/examples/.
    2. Eseguire il comando seguente per avviare il servizio OCR:
      label-studio-ml start ./ociocr --port <port>

2.3 Creazione e configurazione di progetti

  1. Creare un nuovo progetto seguendo la procedura descritta nella documentazione di Label Studio.
  2. Aggiungere lo storage dei dati di origine.
    1. In Impostazioni, selezionare Cloud Storage.
    2. Selezionare File locali.
    3. Immettere i percorsi di memorizzazione dei file locali per la cartella input_pdf e la cartella output_images. Per ulteriori informazioni, consultare la documentazione di Label Studio sulla memoria locale.
  3. Impostare la configurazione dell'assegnazione etichette.
    1. In Impostazioni, selezionare Interfaccia etichetta.
    2. Selezionare Codice.
    3. Aggiungere il codice seguente per la configurazione dell'assegnazione etichette:
      <View>
        <Repeater on="$pages" indexFlag="{{idx}}" mode="pagination">
          <View style="display:flex;align-items:start;gap:8px;flex-direction:row">
            <Image name="page_{{idx}}" value="$pages[{{idx}}].page" inline="true"/>
              <Labels name="labels_{{idx}}" toName="page_{{idx}}" showInline="false">
                <Label value="ignore" background="#FFA39E"/>
                <Label value="Invoice_Number" background="#a59eff"/>
                <Label value="Invoice_Date" background="#0dd377"/>
                <Label value="Total" background="#ffdf6b"/>
              </Labels>
          </View>
           
          <Rectangle name="bbox_{{idx}}" smart="true" toName="page_{{idx}}" strokeWidth="3"/>
          <TextArea name="transcription_{{idx}}" toName="page_{{idx}}" editable="true" perRegion="true" required="true" maxSubmissions="1" rows="5" placeholder="Recognized Text" displayMode="region-list"/>
        
        </Repeater>
      </View>
    4. Salvarlo.
    5. Selezionare Visuale per aggiungere o rimuovere le etichette in base alle esigenze.
  4. Abilita la preanntazione interattiva (impostare l'opzione del modello di connessione per chiamare l'OCR OCI).
    1. In Impostazioni, selezionare Modello.
    2. Selezionare Aggiungi modello.
    3. Aggiungere o aggiornare i seguenti elementi:
      • Abilitare il modello di connessione nelle impostazioni del progetto di Label Studio.

      • Configurare l'URL backend per puntare all'endpoint OCR OCI.

      • Assicurarsi che le chiavi di autenticazione richieste si trovino nel file .env per connettersi in modo sicuro a OCI OCR.

      • Dopo la connessione, Label Studio invia automaticamente ogni documento caricato al servizio OCR OCI e visualizza le caselle di delimitazione previste come preannunci.

      • È possibile rivedere, modificare o accettare i risultati preannunciati in modo interattivo.

Annotazione set di dati 2.4 in Label Studio

  1. Creare una nuova annotazione del data set.
    1. Generare un JSON task per l'annotazione come indicato nella sezione 2.1 Genera elenco task.
    2. Importare per l'annotazione.
  2. Estendere i dati esistenti con assegnazione etichette dati in Label Studio.
    1. Eseguire la migrazione dei set di dati con assegnazione etichette dati nel formato compatibile con Label Studio.
    2. Dopo la conversione, questi set di dati possono essere importati in Label Studio per estendere, perfezionare o completare le annotazioni in base alle esigenze. Usare lo script DLS2LS_conversion_ky.py negli script di utility.
  3. Importare i task per le annotazioni.
    1. Importare il file tasks.json generato come creato nel passo 1a per una nuova annotazione.
    2. Per le annotazioni Data Labeling esistenti, convertirle in formato Label Studio.
    3. Importare in Label Studio per estendere, perfezionare o completare le annotazioni in base alle esigenze.
  4. Iniziare l'etichettatura seguendo la procedura descritta nella documentazione di Label Studio.
  5. Esportare le annotazioni in formato JSON-MIN.

    I file dei record vengono esportati direttamente da Label Studio dopo aver completato il processo di annotazione.

  6. Generare il file manifesto utilizzando lo script Generate_manifest.py, dagli script di utility.
  7. Caricare il file manifesto, il file di record e i documenti immagine o pdf nel bucket e nel percorso definiti nel manifesto.
    Nota

    La directory document_root locale viene mappata a <bucket_name/prefix> nel cloud. Mantenere la stessa struttura di cartelle della memoria locale. La pipeline di formazione si aspetta questa struttura e si basa su di essa per trovare i file correttamente.

3. Flusso di lavoro etichettatura per classificazione documento personalizzato

Label Studio non supporta l'annotazione PDF in modo nativo per ulteriori informazioni. Vedere Strumenti fondamentali per l'etichettatura PDF nella documentazione di Label Studio.

Esiste una soluzione alternativa per l'etichettatura con più immagini pagate.

Per etichettare i PDF, attenersi alla procedura seguente:

  1. Convertire i PDF in immagini. Per ulteriori informazioni, fare riferimento alla esercitazione sul codice.
  2. Memorizza le immagini accessibili da Label Studio.
  3. Creare un nuovo progetto Label Studio e caricare i dati.
    Per ogni attività, hai un elenco di URL corrispondenti alla posizione di ogni immagine (o pagina) nel documento. Questi sono gli URL in cui è ospitato il documento.
  4. Utilizzare il nuovo modello di annotazione documenti con più pagine per configurare l'etichettatura.
  5. Etichetta i dati.
  6. Scaricare gli script di utility ed estrarre utility_scripts_dc.zip per l'annotazione di classificazione dei documenti.

3.1 Genera elenco di task

Se i documenti di formazione sono in formato PDF, dovrai prima convertirli in immagini. La funzione pdf_to_images esegue questa conversione e salva le immagini in una cartella output_images (Images_input_root), che viene creata alla radice della directory di input fornita. Per ogni PDF, viene creata una cartella separata (dal nome del file PDF) all'interno della directory output_images per memorizzare le immagini corrispondenti.

  1. Per l'annotazione Label Studio, è necessario generare un elenco di task. Ogni task corrisponde all'annotazione di un singolo documento.
  2. Da una riga di comando, eseguire il file generate_tasks_dc.pv contenuto negli script delle utility scaricati al passo 6 dell'attività precedente.

3.2 Creazione e configurazione di progetti

  1. Creare un nuovo progetto seguendo la procedura descritta nella documentazione di Label Studio.
  2. Aggiungere lo storage dei dati di origine.
    1. In Impostazioni, selezionare Cloud Storage.
    2. Selezionare File locali.
    3. Immettere i percorsi di memorizzazione dei file locali per la cartella input_pdf e la cartella output_images. Per ulteriori informazioni, consultare la documentazione di Label Studio sulla memoria locale.
  3. Impostare la configurazione dell'assegnazione etichette.
    1. In Impostazioni, selezionare Interfaccia etichetta.
    2. Selezionare Codice.
    3. Aggiungere il codice seguente per la configurazione dell'assegnazione etichette:
      <View style="display: flex; flex-direction: row;">
        <Image valueList="$pages" name="pdf"/>
        <Choices name="choices" toName="pdf" choice="single" perItem="true" layout="vertical" style="margin-left: 20px;">
          <Choice value="Label1"/>
          <Choice value="Label2"/>
        </Choices>
      </View>

      Per le etichette singole, impostare choice="single". Per la classificazione con più etichette, impostare choice="multiple".

    4. Salvarlo.
    5. Selezionare Visuale per aggiungere o rimuovere le etichette in base alle esigenze.

Annotazione set di dati 3.3 per classificazione documento in Label Studio

  1. Creare una nuova annotazione del data set.
    1. Generare un JSON task per l'annotazione come indicato nella sezione 3.1 Genera elenco task.
    2. Importare per l'annotazione.
  2. Estendere i dati esistenti con assegnazione etichette dati in Label Studio.
    1. Eseguire la migrazione dei set di dati con assegnazione etichette dati nel formato compatibile con Label Studio.
    2. Dopo la conversione, questi set di dati possono essere importati in Label Studio per estendere, perfezionare o completare le annotazioni in base alle esigenze. Usare lo script DLS2LS_conversion_dc.py negli script di utility.
  3. Importare i task per le annotazioni.
    1. Importare il file tasks.json generato come creato nel passo 1a per una nuova annotazione.
    2. Per le annotazioni Data Labeling esistenti, convertirle in formato Label Studio.
    3. Importare in Label Studio per estendere, perfezionare o completare le annotazioni in base alle esigenze.
  4. Assegnare un'etichetta a ogni pagina.
  5. Esportare le annotazioni in formato JSON.

    I file dei record vengono esportati direttamente da Label Studio dopo aver completato il processo di annotazione.

  6. Generare il file manifesto utilizzando lo script Generate_manifest.py, dagli script di utility.
  7. Caricare il file manifesto, il file di record e i documenti immagine o pdf nel bucket e nel percorso definiti nel manifesto.
    Nota

    La directory document_root locale viene mappata a <bucket_name/prefix> nel cloud. Mantenere la stessa struttura di cartelle della memoria locale. La pipeline di formazione si aspetta questa struttura e si basa su di essa per trovare i file correttamente.