In che modo xarvio Digital Farming Solutions accelera il suo sviluppo con le capacità geospaziali di Amazon SageMaker

Nodo di origine: 1766079

Questo è un guest post co-scritto da Julian Blau, Data Scientist presso xarvio Digital Farming Solutions; BASF Digital Farming GmbH e Antonio Rodriguez, AI/ML Specialist Solutions Architect presso AWS

xarvio Digital Farming Solutions è un marchio di BASF Digital Farming GmbH, che fa parte della divisione BASF Agricultural Solutions. xarvio Digital Farming Solutions offre prodotti di agricoltura digitale di precisione per aiutare gli agricoltori a ottimizzare la produzione agricola. Disponibili a livello globale, i prodotti xarvio utilizzano l'apprendimento automatico (ML), la tecnologia di riconoscimento delle immagini e modelli avanzati di colture e malattie, in combinazione con i dati dei satelliti e dei dispositivi delle stazioni meteorologiche, per fornire raccomandazioni agronomiche accurate e tempestive per gestire le esigenze dei singoli campi. I prodotti xarvio sono adattati alle condizioni agricole locali, possono monitorare le fasi di crescita e riconoscere malattie e parassiti. Aumentano l'efficienza, fanno risparmiare tempo, riducono i rischi e forniscono una maggiore affidabilità per la pianificazione e il processo decisionale, il tutto contribuendo all'agricoltura sostenibile.

Lavoriamo con diversi dati geospaziali, comprese le immagini satellitari delle aree in cui si trovano i campi dei nostri utenti, per alcuni dei nostri casi d'uso. Pertanto, utilizziamo ed elaboriamo quotidianamente centinaia di file di immagini di grandi dimensioni. Inizialmente, abbiamo dovuto investire molto lavoro manuale e sforzi per acquisire, elaborare e analizzare questi dati utilizzando strumenti di terze parti, librerie open source o servizi cloud generici. In alcuni casi, potrebbero essere necessari fino a 2 mesi per costruire le pipeline per ogni progetto specifico. Ora, utilizzando le capacità geospaziali di Amazon Sage Maker, abbiamo ridotto questo tempo a sole 1–2 settimane.

Questo risparmio di tempo è il risultato dell'automazione delle pipeline di dati geospaziali per fornire i nostri casi d'uso in modo più efficiente, insieme all'utilizzo di componenti riutilizzabili integrati per accelerare e migliorare progetti simili in altre aree geografiche, applicando gli stessi passaggi comprovati per altri usi casi basati su dati simili.

In questo post, esaminiamo un caso d'uso esemplificativo per descrivere alcune delle tecniche che utilizziamo comunemente e mostriamo come implementarle utilizzando le funzionalità geospaziali di SageMaker in combinazione con altre funzionalità di SageMaker offra vantaggi misurabili. Includiamo anche esempi di codice in modo che tu possa adattarli ai tuoi casi d'uso specifici.

Panoramica della soluzione

Un tipico progetto di telerilevamento per lo sviluppo di nuove soluzioni richiede un'analisi passo dopo passo delle immagini acquisite da satelliti ottici come Sentinella or Landsat, in combinazione con altri dati, comprese le previsioni meteorologiche o le proprietà specifiche del campo. Le immagini satellitari ci forniscono preziose informazioni utilizzate nelle nostre soluzioni di agricoltura digitale per aiutare i nostri utenti a svolgere varie attività:

  • Rilevare precocemente le malattie nei loro campi
  • Pianificare la giusta alimentazione e i trattamenti da applicare
  • Ottenere approfondimenti su tempo e acqua per pianificare l'irrigazione
  • Previsione della resa del raccolto
  • Esecuzione di altre attività di gestione delle colture

Per raggiungere questi obiettivi, le nostre analisi richiedono in genere la preelaborazione delle immagini satellitari con diverse tecniche comuni nel dominio geospaziale.

Per dimostrare le capacità geospaziali di SageMaker, abbiamo sperimentato l'identificazione dei campi agricoli tramite modelli di segmentazione ML. Inoltre, abbiamo esplorato i modelli geospaziali SageMaker preesistenti e la funzionalità Bring Your Own Model (BYOM) su attività geospaziali come la classificazione dell'uso del suolo e della copertura del suolo o la classificazione delle colture, che spesso richiedono tecniche di segmentazione panottica o semantica come fasi aggiuntive del processo.

Nelle sezioni seguenti, esaminiamo alcuni esempi di come eseguire questi passaggi con le funzionalità geospaziali di SageMaker. Puoi anche seguirli nel notebook di esempio end-to-end disponibile di seguito Repository GitHub.

Come accennato in precedenza, abbiamo selezionato il caso d'uso della classificazione della copertura del suolo, che consiste nell'identificare il tipo di copertura fisica che abbiamo su una determinata area geografica sulla superficie terrestre, organizzata su un insieme di classi che includono vegetazione, acqua o neve. Questa classificazione ad alta risoluzione ci consente di rilevare i dettagli per l'ubicazione dei campi e dei suoi dintorni con elevata precisione, che possono essere successivamente concatenati con altre analisi come il rilevamento delle modifiche nella classificazione delle colture.

Configurazione del cliente

Innanzitutto, supponiamo di avere utenti con colture coltivate in una data area geografica che possiamo identificare all'interno di un poligono di coordinate geospaziali. Per questo post, definiamo un'area di esempio sopra la Germania. Possiamo anche definire un determinato intervallo di tempo, ad esempio nei primi mesi del 2022. Vedi il seguente codice:

### Coordinates for the polygon of your area of interest...
coordinates = [
    [9.181602157004177, 53.14038825707946],
    [9.181602157004177, 52.30629767547948],
    [10.587520893823973, 52.30629767547948],
    [10.587520893823973, 53.14038825707946],
    [9.181602157004177, 53.14038825707946],
]
### Time-range of interest...
time_start = "2022-01-01T12:00:00Z"
time_end = "2022-05-01T12:00:00Z"

Nel nostro esempio, lavoriamo con l'SDK geospaziale SageMaker tramite interazione programmatica o di codice, perché siamo interessati a creare pipeline di codice che possono essere automatizzate con i diversi passaggi richiesti nel nostro processo. Nota che puoi anche lavorare con un'interfaccia utente tramite le estensioni grafiche fornite con SageMaker geospaziale in Amazon Sage Maker Studio se preferisci questo approccio, come mostrato negli screenshot seguenti. Per accedere all'interfaccia utente di Geospatial Studio, apri SageMaker Studio Launcher e scegli Gestisci le risorse geospaziali. Puoi controllare maggiori dettagli nella documentazione a Inizia con le funzionalità geospaziali di Amazon SageMaker.

Interfaccia utente geospaziale principale

Elenco dei lavori dell'interfaccia utente geospaziale

Qui puoi creare, monitorare e visualizzare graficamente i risultati dei lavori di osservazione della Terra (EOJ) eseguiti con le funzionalità geospaziali di SageMaker.

Tornando al nostro esempio, il primo passo per interagire con l'SDK geospaziale di SageMaker è configurare il client. Possiamo farlo stabilendo una sessione con il botocore biblioteca:

import boto3
gsClient = boto3.client('sagemaker-geospatial')

Da questo punto in poi, possiamo utilizzare il client per eseguire qualsiasi EOJ di interesse.

Ottenere dati

Per questo caso d'uso, iniziamo raccogliendo immagini satellitari per la nostra data area geografica. A seconda della località di interesse, potrebbe esserci una copertura più o meno frequente da parte dei satelliti disponibili, che hanno le proprie immagini organizzate in quello che di solito viene chiamato collezioni raster.

Con le funzionalità geospaziali di SageMaker, hai accesso diretto a fonti di dati di alta qualità per ottenere direttamente i dati geospaziali, inclusi quelli da Scambio di dati AWS e la Registro di dati aperti su AWS, tra gli altri. Possiamo eseguire il seguente comando per elencare le raccolte raster già fornite da SageMaker:

list_raster_data_collections_resp = gsClient.list_raster_data_collections()

Ciò restituisce i dettagli per le diverse raccolte raster disponibili, tra cui Landsat C2L2 Surface Reflectance (SR), Landsat C2L2 Surface Temperature (ST) o Sentinel 2A e 2B. Convenientemente, le immagini di livello 2A sono già ottimizzate in GeoTIFF ottimizzati per il cloud (COG). Vedere il seguente codice:

…
{'Name': 'Sentinel 2 L2A COGs',
  'Arn': 'arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8',
  'Type': 'PUBLIC',
  'Description': 'Sentinel-2a and Sentinel-2b imagery, processed to Level 2A (Surface Reflectance) and converted to Cloud-Optimized GeoTIFFs'
…

Prendiamo quest'ultimo come esempio, impostando our data_collection_arn parametro per l'ARN della raccolta COG Sentinel 2 L2A.

Possiamo anche cercare le immagini disponibili per una determinata posizione geografica passando le coordinate di un poligono che abbiamo definito come nostra area di interesse (AOI). Ciò consente di visualizzare i riquadri immagine disponibili che coprono il poligono inviato per l'AOI specificato, incluso il Servizio di archiviazione semplice Amazon (Amazon S3) URI per queste immagini. Tieni presente che le immagini satellitari sono in genere fornite in diversi formati bande secondo la lunghezza d'onda dell'osservazione; ne discuteremo più avanti nel post.

response = gsClient.search_raster_data_collection(**eoj_input_config, Arn=data_collection_arn)

Il codice precedente restituisce gli URI S3 per i diversi riquadri immagine disponibili, che puoi visualizzare direttamente con qualsiasi libreria compatibile con GeoTIFF come rastero. Ad esempio, visualizziamo due dei riquadri True Color Image (TCI).

…
'visual': {'Href': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/32/U/NC/2022/3/S2A_32UNC_20220325_0_L2A/TCI.tif'},
…

Immagine a colori reali 1Immagine a colori reali 2

Tecniche di lavorazione

Alcune delle tecniche di pre-elaborazione più comuni che applichiamo includono la rimozione del cloud, il mosaico geografico, le statistiche temporali, la matematica delle bande o lo stacking. Tutti questi processi ora possono essere eseguiti direttamente tramite l'uso di EOJ in SageMaker, senza la necessità di eseguire la codifica manuale o l'utilizzo di strumenti di terze parti complessi e costosi. Ciò rende più veloce del 50% la creazione delle nostre pipeline di elaborazione dei dati. Con le funzionalità geospaziali di SageMaker, possiamo eseguire questi processi su diversi tipi di input. Per esempio:

  • Eseguire direttamente una query per qualsiasi raccolta raster inclusa nel servizio tramite il RasterDataCollectionQuery parametro
  • Passa le immagini archiviate in Amazon S3 come input attraverso il file DataSourceConfig parametro
  • Basta concatenare i risultati di un precedente EOJ attraverso il file PreviousEarthObservationJobArn parametro

Questa flessibilità ti consente di creare qualsiasi tipo di pipeline di elaborazione di cui hai bisogno.

Il seguente diagramma illustra i processi trattati nel nostro esempio.

Attività di elaborazione geospaziale

Nel nostro esempio, utilizziamo una query di raccolta dati raster come input, per la quale passiamo le coordinate del nostro AOI e l'intervallo di tempo di interesse. Specifichiamo anche una percentuale di massima copertura nuvolosa del 2%, perché vogliamo osservazioni chiare e prive di rumore della nostra area geografica. Vedere il seguente codice:

eoj_input_config = {
    "RasterDataCollectionQuery": {
        "RasterDataCollectionArn": data_collection_arn,
        "AreaOfInterest": {
            "AreaOfInterestGeometry": {"PolygonGeometry": {"Coordinates": [coordinates]}}
        },
        "TimeRangeFilter": {"StartTime": time_start, "EndTime": time_end},
        "PropertyFilters": {
            "Properties": [
                {"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 2}}}
            ]
        },
    }
}

Per ulteriori informazioni sulla sintassi delle query supportate, fare riferimento a Crea un lavoro di osservazione della Terra.

Rimozione del divario nel cloud

Le osservazioni satellitari sono spesso meno utili a causa dell'elevata copertura nuvolosa. Il riempimento del cloud gap o la rimozione del cloud è il processo di sostituzione dei pixel torbidi dalle immagini, che può essere eseguito con diversi metodi per preparare i dati per ulteriori fasi di elaborazione.

Con le funzionalità geospaziali di SageMaker, possiamo raggiungere questo obiettivo specificando a CloudRemovalConfig parametro nella configurazione del nostro job.

eoj_config =  {
    'CloudRemovalConfig': {
        'AlgorithmName': 'INTERPOLATION',
        'InterpolationValue': '-9999'
    }
}

Si noti che nel nostro esempio stiamo usando un algoritmo di interpolazione con un valore fisso, ma ci sono altre configurazioni supportate, come spiegato nel Crea un lavoro di osservazione della Terra documentazione. L'interpolazione permette di stimare un valore per la sostituzione dei pixel torbidi, considerando i pixel circostanti.

Ora possiamo eseguire il nostro EOJ con le nostre configurazioni di input e lavoro:

response = gsClient.start_earth_observation_job(
    Name =  'cloudremovaljob',
    ExecutionRoleArn = role,
    InputConfig = eoj_input_config,
    JobConfig = eoj_config,
)

Questo lavoro richiede alcuni minuti per essere completato a seconda dell'area di input e dei parametri di elaborazione.

Al termine, i risultati dell'EOJ vengono archiviati in una posizione di proprietà del servizio, da dove possiamo esportare i risultati in Amazon S3 o concatenarli come input per un altro EOJ. Nel nostro esempio, esportiamo i risultati in Amazon S3 eseguendo il seguente codice:

response = gsClient.export_earth_observation_job(
    Arn = cr_eoj_arn,
    ExecutionRoleArn = role,
    OutputConfig = {
        'S3Data': {
            'S3Uri': f's3://{bucket}/{prefix}/cloud_removal/',
            'KmsKeyId': ''
        }
    }
)

Ora siamo in grado di visualizzare le immagini risultanti memorizzate nella nostra posizione Amazon S3 specificata per le singole bande spettrali. Ad esempio, esaminiamo due delle immagini della banda blu restituite.

In alternativa, puoi anche controllare graficamente i risultati dell'EOJ utilizzando le estensioni geospaziali disponibili in Studio, come mostrato negli screenshot seguenti.

Interfaccia utente rimozione cloud 1   Interfaccia utente rimozione cloud 2

Statistiche temporali

Poiché i satelliti orbitano continuamente intorno alla terra, le immagini per una determinata area geografica di interesse vengono acquisite in intervalli di tempo specifici con una frequenza temporale specifica, ad esempio giornalmente, ogni 5 giorni o 2 settimane, a seconda del satellite. Il processo di statistica temporale ci consente di combinare diverse osservazioni prese in momenti diversi per produrre una vista aggregata, come una media annuale, o la media di tutte le osservazioni in un intervallo di tempo specifico, per una data area.

Con le funzionalità geospaziali di SageMaker, possiamo farlo impostando il TemporalStatisticsConfig parametro. Nel nostro esempio, otteniamo l'aggregazione media annuale per la banda del vicino infrarosso (NIR), poiché questa banda può rivelare differenze di densità della vegetazione al di sotto della sommità delle chiome:

eoj_config =  {
    'TemporalStatisticsConfig': {
        'GroupBy': 'YEARLY',
        'Statistics': ['MEAN'],
        'TargetBands': ['nir']
    }
}

Dopo alcuni minuti di esecuzione di un EOJ con questa configurazione, possiamo esportare i risultati in Amazon S3 per ottenere immagini come negli esempi seguenti, in cui possiamo osservare le diverse densità di vegetazione rappresentate con diverse intensità di colore. Si noti che EOJ può produrre più immagini come riquadri, a seconda dei dati satellitari disponibili per l'intervallo di tempo e le coordinate specificate.

Statistiche temporali 1Statistiche temporali 2

Matematica della banda

I satelliti per l'osservazione della Terra sono progettati per rilevare la luce in diverse lunghezze d'onda, alcune delle quali sono invisibili all'occhio umano. Ogni intervallo contiene bande specifiche dello spettro luminoso a diverse lunghezze d'onda, che combinate con l'aritmetica possono produrre immagini con ricche informazioni sulle caratteristiche del campo come la salute della vegetazione, la temperatura o la presenza di nuvole, tra molte altre. Questo viene eseguito in un processo comunemente chiamato matematica a bande o aritmetica a bande.

Con le funzionalità geospaziali di SageMaker, possiamo eseguire questa operazione impostando l'estensione BandMathConfig parametro. Ad esempio, otteniamo le immagini dell'indice di umidità eseguendo il seguente codice:

eoj_config =  {
    'BandMathConfig': {
        'CustomIndices': {
            'Operations': [
                {
                    'Name': 'moisture',
                    'Equation': '(nir08 - swir16) / (nir08 + swir16)'
                }
            ]
        }
    }
}

Dopo alcuni minuti di esecuzione di un EOJ con questa configurazione, possiamo esportare i risultati e ottenere immagini, come i due esempi seguenti.

Indice di umidità 1Indice di umidità 2Legenda indice di umidità

impilabile

Simile alla matematica delle bande, il processo di combinazione delle bande insieme per produrre immagini composite dalle bande originali è chiamato stacking. Ad esempio, potremmo impilare le bande di luce rossa, blu e verde di un'immagine satellitare per produrre l'immagine a colori veri dell'AOI.

Con le funzionalità geospaziali di SageMaker, possiamo farlo impostando il StackConfig parametro. Impiliamo le bande RGB come nell'esempio precedente con il seguente comando:

eoj_config =  {
    'StackConfig': {
        'OutputResolution': {
            'Predefined': 'HIGHEST'
        },
        'TargetBands': ['red', 'green', 'blue']
    }
}

Dopo alcuni minuti eseguendo un EOJ con questa configurazione, possiamo esportare i risultati e ottenere immagini.

Impilabile TCI 1Impilabile TCI 2

Modelli di segmentazione semantica

Come parte del nostro lavoro, utilizziamo comunemente modelli ML per eseguire inferenze sulle immagini preelaborate, come rilevare aree nuvolose o classificare il tipo di terreno in ciascuna area delle immagini.

Con le funzionalità geospaziali di SageMaker, puoi farlo affidandoti ai modelli di segmentazione integrati.

Per il nostro esempio, usiamo il modello di segmentazione della copertura del suolo specificando il LandCoverSegmentationConfig parametro. Questo esegue inferenze sull'input utilizzando il modello integrato, senza la necessità di addestrare o ospitare alcuna infrastruttura in SageMaker:

response = gsClient.start_earth_observation_job(
    Name =  'landcovermodeljob',
    ExecutionRoleArn = role,
    InputConfig = eoj_input_config,
    JobConfig = {
        'LandCoverSegmentationConfig': {},
    },
)

Dopo alcuni minuti di esecuzione di un lavoro con questa configurazione, possiamo esportare i risultati e ottenere immagini.

Copertura del suolo 1Copertura del suolo 2Copertura del suolo 3Copertura del suolo 4

Negli esempi precedenti, ogni pixel nelle immagini corrisponde a una classe di tipo di terreno, come mostrato nella seguente legenda.

Leggenda della copertura del suolo

Questo ci consente di identificare direttamente i tipi specifici di aree nella scena come la vegetazione o l'acqua, fornendo preziose informazioni per ulteriori analisi.

Porta il tuo modello con SageMaker

Se i modelli geospaziali all'avanguardia forniti con SageMaker non sono sufficienti per il nostro caso d'uso, possiamo anche concatenare i risultati di uno qualsiasi dei passaggi di pre-elaborazione mostrati finora con qualsiasi modello personalizzato integrato in SageMaker per l'inferenza, come spiegato in questo Modalità script SageMaker esempio. Possiamo farlo con qualsiasi modalità di inferenza supportata in SageMaker, inclusa sincrona con endpoint SageMaker in tempo reale, asincrona con endpoint asincroni SageMaker, batch o offline con trasformazioni batch SageMaker e serverless con l'inferenza serverless SageMaker. Puoi controllare ulteriori dettagli su queste modalità nel file Distribuire modelli per l'inferenza documentazione. Il diagramma seguente illustra il flusso di lavoro ad alto livello.

Opzioni del flusso di inferenza

Per il nostro esempio, supponiamo di aver integrato due modelli per eseguire una classificazione della copertura del suolo e una classificazione del tipo di coltura.

Dobbiamo solo indicare il nostro artefatto del modello addestrato, nel nostro esempio un modello PyTorch, simile al seguente codice:

from sagemaker.pytorch import PyTorchModel
import datetime

model = PyTorchModel(
    name=model_name, ### Set a model name
    model_data=MODEL_S3_PATH, ### Location of the custom model in S3
    role=role,
    entry_point='inference.py', ### Your inference entry-point script
    source_dir='code', ### Folder with any dependencies
    image_uri=image_uri, ### URI for your AWS DLC or custom container
    env={
        'TS_MAX_REQUEST_SIZE': '100000000',
        'TS_MAX_RESPONSE_SIZE': '100000000',
        'TS_DEFAULT_RESPONSE_TIMEOUT': '1000',
    }, ### Optional – Set environment variables for max size and timeout
)

predictor = model.deploy(
    initial_instance_count = 1, ### Your number of instances
    instance_type = 'ml.g4dn.8xlarge', ### Your instance type
    async_inference_config=sagemaker.async_inference.AsyncInferenceConfig(
        output_path=f"s3://{bucket}/{prefix}/output",
        max_concurrent_invocations_per_instance=2,
    ), ### Optional – Async config if using SageMaker Async Endpoints
)

predictor.predict(data) ### Your images for inference

Ciò ti consente di ottenere le immagini risultanti dopo l'inferenza, a seconda del modello che stai utilizzando.

Nel nostro esempio, quando si esegue una segmentazione personalizzata della copertura del suolo, il modello produce immagini simili alle seguenti, in cui confrontiamo le immagini di input e previsione con la legenda corrispondente.

Segmentazione della copertura del suolo 1  Segmentazione della copertura del suolo 2. Legenda della segmentazione della copertura del suolo

Quello che segue è un altro esempio di un modello di classificazione delle colture, in cui mostriamo il confronto tra i risultati della segmentazione panottica e semantica originale rispetto a quelli risultanti, con la legenda corrispondente.

Classificazione delle colture

Automatizzare le pipeline geospaziali

Infine, possiamo anche automatizzare i passaggi precedenti costruendo l'elaborazione dei dati geospaziali e le pipeline di inferenza con Pipeline di Amazon SageMaker. Concatenamo semplicemente ogni passaggio di pre-elaborazione richiesto attraverso l'uso di Gradini Lambda ed Passaggi di richiamata nelle condutture. Ad esempio, puoi anche aggiungere una fase di inferenza finale utilizzando una fase di trasformazione o direttamente tramite un'altra combinazione di fasi Lambda e fasi di richiamata, per eseguire un EOJ con uno dei modelli di segmentazione semantica integrati nelle funzionalità geospaziali di SageMaker.

Nota che stiamo utilizzando passaggi Lambda e passaggi di richiamata nelle pipeline perché gli EOJ sono asincroni, quindi questo tipo di passaggio ci consente di monitorare l'esecuzione del processo di elaborazione e riprendere la pipeline quando è completa tramite messaggi in un Servizio Amazon Simple Queue (Amazon SQS) coda.

Pipeline geospaziale

Puoi controllare il taccuino in Repository GitHub per un esempio dettagliato di questo codice.

Ora possiamo visualizzare il diagramma della nostra pipeline geospaziale tramite Studio e monitorare le esecuzioni in Pipelines, come mostrato nello screenshot seguente.

Interfaccia utente pipeline geospaziale

Conclusione

In questo post, abbiamo presentato un riepilogo dei processi che abbiamo implementato con le funzionalità geospaziali di SageMaker per la creazione di pipeline di dati geospaziali per i nostri prodotti avanzati di xarvio Digital Farming Solutions. L'utilizzo di SageMaker geospaziale ha aumentato l'efficienza del nostro lavoro geospaziale di oltre il 50%, attraverso l'uso di API predefinite che accelerano e semplificano le nostre fasi di pre-elaborazione e modellazione per ML.

Come passo successivo, stiamo integrando più modelli dal nostro catalogo a SageMaker per continuare l'automazione delle nostre pipeline di soluzioni e continueremo a utilizzare più funzionalità geospaziali di SageMaker man mano che il servizio si evolve.

Ti invitiamo a provare le funzionalità geospaziali di SageMaker adattando il notebook di esempio end-to-end fornito in questo post e a saperne di più sul servizio in Che cosa sono le funzionalità geospaziali di Amazon SageMaker?.


Informazioni sugli autori

Giuliano BlauGiuliano Blau è Data Scientist presso BASF Digital Farming GmbH, con sede a Colonia, in Germania. Sviluppa soluzioni digitali per l'agricoltura, rispondendo alle esigenze della base clienti globale di BASF utilizzando dati geospaziali e machine learning. Al di fuori del lavoro, ama viaggiare e stare all'aria aperta con amici e familiari.

Antonio RodríguezAntonio Rodríguez è un architetto specializzato in soluzioni di intelligenza artificiale e machine learning in Amazon Web Services, con sede in Spagna. Aiuta le aziende di tutte le dimensioni a risolvere le loro sfide attraverso l'innovazione e crea nuove opportunità di business con AWS Cloud e servizi AI/ML. Oltre al lavoro, ama passare il tempo con la sua famiglia e fare sport con i suoi amici.

Timestamp:

Di più da Apprendimento automatico di AWS