Comment xarvio Digital Farming Solutions accélère son développement avec les capacités géospatiales d'Amazon SageMaker

Nœud source: 1766079

Il s'agit d'un article invité co-écrit par Julian Blau, Data Scientist chez xarvio Digital Farming Solutions ; BASF Digital Farming GmbH et Antonio Rodriguez, architecte de solutions spécialisées en IA/ML chez AWS

xarvio Digital Farming Solutions est une marque de BASF Digital Farming GmbH, qui fait partie de la division BASF Agricultural Solutions. xarvio Digital Farming Solutions propose des produits d'agriculture numérique de précision pour aider les agriculteurs à optimiser la production agricole. Disponibles dans le monde entier, les produits xarvio utilisent l'apprentissage automatique (ML), la technologie de reconnaissance d'images et des modèles avancés de cultures et de maladies, en combinaison avec des données provenant de satellites et d'appareils de stations météorologiques, pour fournir des recommandations agronomiques précises et opportunes pour gérer les besoins de chaque champ. Les produits xarvio sont adaptés aux conditions agricoles locales, peuvent surveiller les stades de croissance et reconnaître les maladies et les ravageurs. Ils augmentent l'efficacité, font gagner du temps, réduisent les risques et offrent une plus grande fiabilité pour la planification et la prise de décision, tout en contribuant à une agriculture durable.

Nous travaillons avec différentes données géospatiales, y compris des images satellites des zones où se trouvent les champs de nos utilisateurs, pour certains de nos cas d'utilisation. Par conséquent, nous utilisons et traitons quotidiennement des centaines de fichiers d'image volumineux. Au départ, nous avons dû investir beaucoup de travail manuel et d'efforts pour ingérer, traiter et analyser ces données à l'aide d'outils tiers, de bibliothèques open source ou de services cloud à usage général. Dans certains cas, cela pourrait prendre jusqu'à 2 mois pour nous de construire les pipelines pour chaque projet spécifique. Maintenant, en utilisant les capacités géospatiales de Amazon Sage Maker, nous avons réduit ce délai à seulement 1 à 2 semaines.

Ce gain de temps est le résultat de l'automatisation des pipelines de données géospatiales pour fournir nos cas d'utilisation plus efficacement, ainsi que de l'utilisation de composants réutilisables intégrés pour accélérer et améliorer des projets similaires dans d'autres zones géographiques, tout en appliquant les mêmes étapes éprouvées pour d'autres utilisations. cas basés sur des données similaires.

Dans cet article, nous passons en revue un exemple de cas d'utilisation pour décrire certaines des techniques que nous utilisons couramment et montrons comment leur mise en œuvre à l'aide des fonctionnalités géospatiales de SageMaker en combinaison avec d'autres fonctionnalités de SageMaker offre des avantages mesurables. Nous incluons également des exemples de code afin que vous puissiez les adapter à vos propres cas d'utilisation spécifiques.

Présentation de la solution

Un projet typique de télédétection pour le développement de nouvelles solutions nécessite une analyse étape par étape des images prises par des satellites optiques tels que Sentinelle or Landsat, en combinaison avec d'autres données, y compris des prévisions météorologiques ou des propriétés de champ spécifiques. Les images satellites nous fournissent des informations précieuses utilisées dans nos solutions d'agriculture numérique pour aider nos utilisateurs à accomplir diverses tâches :

  • Détecter les maladies tôt dans leurs champs
  • Planifier la bonne nutrition et les traitements à appliquer
  • Obtenir des informations sur la météo et l'eau pour planifier l'irrigation
  • Prédire le rendement des cultures
  • Effectuer d'autres tâches de gestion des cultures

Pour atteindre ces objectifs, nos analyses nécessitent généralement un prétraitement des images satellites avec différentes techniques courantes dans le domaine géospatial.

Pour démontrer les capacités de SageMaker géospatial, nous avons expérimenté l'identification des champs agricoles à l'aide de modèles de segmentation ML. De plus, nous avons exploré les modèles géospatiaux SageMaker préexistants et la fonctionnalité BYOM (Apportez votre propre modèle) sur des tâches géospatiales telles que l'utilisation des terres et la classification de la couverture terrestre, ou la classification des cultures, nécessitant souvent des techniques de segmentation panoptique ou sémantique comme étapes supplémentaires du processus.

Dans les sections suivantes, nous passons en revue quelques exemples de la façon d'effectuer ces étapes avec les capacités géospatiales de SageMaker. Vous pouvez également les suivre dans l'exemple de bloc-notes de bout en bout disponible ci-dessous. GitHub référentiel.

Comme mentionné précédemment, nous avons sélectionné le cas d'utilisation de la classification de la couverture du sol, qui consiste à identifier le type de couverture physique que nous avons sur une zone géographique donnée à la surface de la terre, organisée sur un ensemble de classes comprenant la végétation, l'eau ou la neige. Cette classification à haute résolution nous permet de détecter les détails de l'emplacement des champs et de ses environs avec une grande précision, qui peuvent ensuite être enchaînés avec d'autres analyses telles que la détection de changement dans la classification des cultures.

Configuration client

Supposons d'abord que nous ayons des utilisateurs avec des cultures cultivées dans une zone géographique donnée que nous pouvons identifier dans un polygone de coordonnées géospatiales. Pour cet article, nous définissons un exemple de zone au-dessus de l'Allemagne. On peut aussi définir une plage horaire donnée, par exemple dans les premiers mois de 2022. Voir le code suivant :

### 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"

Dans notre exemple, nous travaillons avec le SDK géospatial SageMaker par le biais d'une interaction programmatique ou de code, car nous souhaitons créer des pipelines de code qui peuvent être automatisés avec les différentes étapes requises dans notre processus. Notez que vous pouvez également travailler avec une interface utilisateur via les extensions graphiques fournies avec SageMaker géospatial dans Amazon SageMakerStudio si vous préférez cette approche, comme illustré dans les captures d'écran suivantes. Pour accéder à l'interface utilisateur de Geospatial Studio, ouvrez le lanceur SageMaker Studio et choisissez Gérer les ressources géospatiales. Vous pouvez vérifier plus de détails dans la documentation pour Premiers pas avec les fonctionnalités géospatiales d'Amazon SageMaker.

Interface utilisateur géospatiale principale

Liste des tâches de l'interface utilisateur géospatiale

Ici, vous pouvez créer, surveiller et visualiser graphiquement les résultats des travaux d'observation de la Terre (EOJ) que vous exécutez avec les fonctions géospatiales SageMaker.

Revenons à notre exemple, la première étape pour interagir avec le SDK géospatial SageMaker consiste à configurer le client. Nous pouvons le faire en établissant une session avec le botocore bibliothèque:

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

À partir de ce moment, nous pouvons utiliser le client pour exécuter tous les EOJ d'intérêt.

Obtenir des données

Pour ce cas d'utilisation, nous commençons par collecter des images satellite pour notre zone géographique donnée. Selon l'emplacement d'intérêt, il peut y avoir une couverture plus ou moins fréquente par les satellites disponibles, dont les images sont organisées en ce que l'on appelle généralement collections raster.

Avec les capacités géospatiales de SageMaker, vous avez un accès direct à des sources de données de haute qualité pour obtenir directement les données géospatiales, y compris celles de Échange de données AWS et les terres parsemées de Registre des données ouvertes sur AWS, entre autres. Nous pouvons exécuter la commande suivante pour lister les collections raster déjà fournies par SageMaker :

list_raster_data_collections_resp = gsClient.list_raster_data_collections()

Cela renvoie les détails des différentes collections raster disponibles, y compris la réflectance de surface (SR) Landsat C2L2, la température de surface (ST) Landsat C2L2 ou Sentinel 2A et 2B. De manière pratique, l'imagerie de niveau 2A est déjà optimisée dans les GeoTIFF optimisés pour le cloud (COG). Voir le code suivant :

…
{'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'
…

Prenons ce dernier pour notre exemple, en fixant notre data_collection_arn paramètre à l'ARN de collection des COG Sentinel 2 L2A.

Nous pouvons également rechercher les images disponibles pour un emplacement géographique donné en transmettant les coordonnées d'un polygone que nous avons défini comme notre zone d'intérêt (AOI). Cela vous permet de visualiser les tuiles d'image disponibles qui couvrent le polygone que vous soumettez pour l'AOI spécifiée, y compris le Service de stockage simple Amazon (Amazon S3) URI pour ces images. Notez que l'imagerie satellite est généralement fournie dans différents bandes selon la longueur d'onde de l'observation ; nous en discutons plus tard dans le post.

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

Le code précédent renvoie les URI S3 pour les différentes tuiles d'images disponibles, que vous pouvez visualiser directement avec n'importe quelle bibliothèque compatible avec les GeoTIFF comme trame. Par exemple, visualisons deux des tuiles 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'},
…

Image couleur vraie 1Image couleur vraie 2

Techniques de traitement

Certaines des techniques de prétraitement les plus courantes que nous appliquons incluent la suppression des nuages, la mosaïque géographique, les statistiques temporelles, les calculs de bande ou l'empilement. Tous ces processus peuvent désormais être effectués directement via l'utilisation des EOJ dans SageMaker, sans qu'il soit nécessaire d'effectuer un codage manuel ou d'utiliser des outils tiers complexes et coûteux. Cela accélère de 50 % la création de nos pipelines de traitement de données. Grâce aux capacités géospatiales de SageMaker, nous pouvons exécuter ces processus sur différents types d'entrées. Par exemple:

  • Exécutez directement une requête pour l'une des collections raster incluses avec le service via le RasterDataCollectionQuery paramètre
  • Transmettre les images stockées dans Amazon S3 en tant qu'entrée via le DataSourceConfig paramètre
  • Il suffit d'enchaîner les résultats d'un EOJ précédent à travers le PreviousEarthObservationJobArn paramètre

Cette flexibilité vous permet de créer tout type de pipeline de traitement dont vous avez besoin.

Le diagramme suivant illustre les processus que nous couvrons dans notre exemple.

Tâches de traitement géospatial

Dans notre exemple, nous utilisons une requête de collecte de données raster comme entrée, pour laquelle nous transmettons les coordonnées de notre AOI et la plage de temps d'intérêt. Nous spécifions également un pourcentage de couverture nuageuse maximale de 2%, car nous voulons des observations claires et sans bruit de notre zone géographique. Voir le code suivant :

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}}}
            ]
        },
    }
}

Pour plus d'informations sur la syntaxe de requête prise en charge, reportez-vous à Créer une tâche d'observation de la Terre.

Suppression de l'espace nuageux

Les observations satellitaires sont souvent moins utiles en raison de la forte couverture nuageuse. Le remplissage de l'espace nuageux ou la suppression des nuages ​​est le processus de remplacement des pixels nuageux des images, qui peut être fait avec différentes méthodes pour préparer les données pour d'autres étapes de traitement.

Avec les capacités géospatiales de SageMaker, nous pouvons y parvenir en spécifiant un CloudRemovalConfig paramètre dans la configuration de notre travail.

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

Notez que nous utilisons un algorithme d'interpolation avec une valeur fixe dans notre exemple, mais il existe d'autres configurations prises en charge, comme expliqué dans le Créer une tâche d'observation de la Terre Documentation. L'interpolation lui permet d'estimer une valeur de remplacement des pixels nuageux, en considérant les pixels environnants.

Nous pouvons maintenant exécuter notre EOJ avec nos configurations d'entrée et de travail :

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

Cette tâche prend quelques minutes en fonction de la zone d'entrée et des paramètres de traitement.

Une fois terminé, les résultats de l'EOJ sont stockés dans un emplacement appartenant au service, d'où nous pouvons soit exporter les résultats vers Amazon S3, soit les chaîner comme entrée pour un autre EOJ. Dans notre exemple, nous exportons les résultats vers Amazon S3 en exécutant le code suivant :

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

Nous sommes maintenant en mesure de visualiser les images résultantes stockées dans notre emplacement Amazon S3 spécifié pour les bandes spectrales individuelles. Par exemple, examinons deux des images de bande bleue renvoyées.

Alternativement, vous pouvez également vérifier graphiquement les résultats de l'EOJ en utilisant les extensions géospatiales disponibles dans Studio, comme illustré dans les captures d'écran suivantes.

Interface utilisateur de suppression du cloud 1   Interface utilisateur de suppression du cloud 2

Statistiques temporelles

Étant donné que les satellites orbitent en permanence autour de la Terre, les images d'une zone géographique d'intérêt donnée sont prises à des intervalles de temps spécifiques avec une fréquence temporelle spécifique, telle que quotidiennement, tous les 5 jours ou toutes les 2 semaines, selon le satellite. Le processus de statistiques temporelles nous permet de combiner différentes observations prises à différents moments pour produire une vue agrégée, telle qu'une moyenne annuelle, ou la moyenne de toutes les observations dans une plage de temps spécifique, pour la zone donnée.

Avec les capacités géospatiales de SageMaker, nous pouvons le faire en définissant le TemporalStatisticsConfig paramètre. Dans notre exemple, nous obtenons l'agrégation moyenne annuelle pour la bande Proche Infrarouge (NIR), car cette bande peut révéler des différences de densité de végétation sous le sommet des canopées :

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

Après quelques minutes d'exécution d'un EOJ avec cette configuration, nous pouvons exporter les résultats vers Amazon S3 pour obtenir des images comme les exemples suivants, dans lesquels nous pouvons observer les différentes densités de végétation représentées avec différentes intensités de couleur. Notez que l'EOJ peut produire plusieurs images sous forme de tuiles, en fonction des données satellites disponibles pour la plage de temps et les coordonnées spécifiées.

Statistiques temporelles 1Statistiques temporelles 2

Mathématiques de bande

Les satellites d'observation de la Terre sont conçus pour détecter la lumière dans différentes longueurs d'onde, dont certaines sont invisibles à l'œil humain. Chaque plage contient des bandes spécifiques du spectre lumineux à différentes longueurs d'onde, qui, combinées à l'arithmétique, peuvent produire des images riches en informations sur les caractéristiques du champ telles que la santé de la végétation, la température ou la présence de nuages, entre autres. Ceci est effectué dans un processus communément appelé mathématiques de bande ou arithmétique de bande.

Avec les capacités géospatiales de SageMaker, nous pouvons l'exécuter en définissant le BandMathConfig paramètre. Par exemple, obtenons les images d'indice d'humidité en exécutant le code suivant :

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

Après quelques minutes d'exécution d'un EOJ avec cette configuration, nous pouvons exporter les résultats et obtenir des images, comme les deux exemples suivants.

Indice d'humidité 1Indice d'humidité 2Légende de l'indice d'humidité

Empilement

Semblable aux calculs de bandes, le processus de combinaison de bandes pour produire des images composites à partir des bandes d'origine est appelé empilement. Par exemple, nous pourrions empiler les bandes de lumière rouge, bleue et verte d'une image satellite pour produire l'image en couleurs réelles de l'AOI.

Avec les capacités géospatiales de SageMaker, nous pouvons le faire en définissant le StackConfig paramètre. Empilons les bandes RVB comme dans l'exemple précédent avec la commande suivante :

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

Après quelques minutes d'exécution d'un EOJ avec cette configuration, nous pouvons exporter les résultats et obtenir des images.

Empilage TCI 1Empilage TCI 2

Modèles de segmentation sémantique

Dans le cadre de notre travail, nous utilisons couramment des modèles ML pour exécuter des inférences sur les images prétraitées, telles que la détection de zones nuageuses ou la classification du type de terrain dans chaque zone des images.

Avec les capacités géospatiales de SageMaker, vous pouvez le faire en vous appuyant sur les modèles de segmentation intégrés.

Pour notre exemple, utilisons le modèle de segmentation de l'occupation du sol en spécifiant le LandCoverSegmentationConfig paramètre. Cela exécute des inférences sur l'entrée en utilisant le modèle intégré, sans qu'il soit nécessaire de former ou d'héberger une infrastructure dans SageMaker :

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

Après quelques minutes d'exécution d'un travail avec cette configuration, nous pouvons exporter les résultats et obtenir des images.

Couverture terrestre 1Couverture terrestre 2Couverture terrestre 3Couverture terrestre 4

Dans les exemples précédents, chaque pixel des images correspond à une classe de type de terrain, comme le montre la légende suivante.

Légende de la couverture du sol

Cela nous permet d'identifier directement les types spécifiques de zones de la scène telles que la végétation ou l'eau, fournissant des informations précieuses pour des analyses supplémentaires.

Apportez votre propre modèle avec SageMaker

Si les modèles géospatiaux de pointe fournis avec SageMaker ne suffisent pas pour notre cas d'utilisation, nous pouvons également enchaîner les résultats de l'une des étapes de prétraitement présentées jusqu'à présent avec n'importe quel modèle personnalisé intégré à SageMaker pour l'inférence, comme expliqué dans ce Mode de script SageMaker Exemple. Nous pouvons le faire avec n'importe lequel des modes d'inférence pris en charge dans SageMaker, y compris synchrone avec les points de terminaison SageMaker en temps réel, asynchrone avec les points de terminaison asynchrones SageMaker, batch ou hors ligne avec les transformations par lots SageMaker et sans serveur avec l'inférence sans serveur SageMaker. Vous pouvez vérifier plus de détails sur ces modes dans le Déployer des modèles pour l'inférence Documentation. Le diagramme suivant illustre le flux de travail de haut niveau.

Options de flux d'inférence

Pour notre exemple, supposons que nous ayons intégré deux modèles pour effectuer une classification de la couverture terrestre et une classification des types de cultures.

Nous devons simplement pointer vers notre artefact de modèle entraîné, dans notre exemple un modèle PyTorch, similaire au code suivant :

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

Cela vous permet d'obtenir les images résultantes après inférence, selon le modèle que vous utilisez.

Dans notre exemple, lors de l'exécution d'une segmentation de la couverture terrestre personnalisée, le modèle produit des images similaires à ce qui suit, où nous comparons les images d'entrée et de prédiction avec la légende correspondante.

Segmentation de la couverture terrestre 1  Segmentation de la couverture terrestre 2. Légende de la segmentation de la couverture terrestre

Ce qui suit est un autre exemple de modèle de classification des cultures, où nous montrons la comparaison des résultats de segmentation panoptique et sémantique d'origine par rapport aux résultats résultants, avec sa légende correspondante.

Classement des cultures

Automatisation des pipelines géospatiaux

Enfin, nous pouvons également automatiser les étapes précédentes en construisant des pipelines de traitement et d'inférence de données géospatiales avec Pipelines Amazon SageMaker. Nous enchaînons simplement chaque étape de prétraitement requise grâce à l'utilisation de Étapes Lambda et les Étapes de rappel dans les canalisations. Par exemple, vous pouvez également ajouter une étape d'inférence finale à l'aide d'une étape de transformation, ou directement via une autre combinaison d'étapes Lambda et d'étapes de rappel, pour exécuter un EOJ avec l'un des modèles de segmentation sémantique intégrés dans les fonctions géospatiales SageMaker.

Notez que nous utilisons les étapes Lambda et les étapes de rappel dans les pipelines, car les EOJ sont asynchrones. Ce type d'étape nous permet donc de surveiller l'exécution de la tâche de traitement et de reprendre le pipeline lorsqu'il est terminé via des messages dans un Service Amazon Simple Queue (Amazon SQS) file d'attente.

Pipeline géospatial

Vous pouvez vérifier le bloc-notes dans le GitHub référentiel pour un exemple détaillé de ce code.

Nous pouvons maintenant visualiser le diagramme de notre pipeline géospatial via Studio et surveiller les exécutions dans Pipelines, comme illustré dans la capture d'écran suivante.

Interface utilisateur du pipeline géospatial

Conclusion

Dans cet article, nous avons présenté un résumé des processus que nous avons mis en œuvre avec les capacités géospatiales de SageMaker pour créer des pipelines de données géospatiales pour nos produits avancés de xarvio Digital Farming Solutions. L'utilisation de SageMaker géospatial a augmenté l'efficacité de notre travail géospatial de plus de 50 %, grâce à l'utilisation d'API prédéfinies qui accélèrent et simplifient nos étapes de prétraitement et de modélisation pour le ML.

Dans une prochaine étape, nous intégrons plus de modèles de notre catalogue à SageMaker pour poursuivre l'automatisation de nos pipelines de solutions, et continuerons à utiliser davantage de fonctionnalités géospatiales de SageMaker à mesure que le service évolue.

Nous vous encourageons à essayer les fonctionnalités géospatiales de SageMaker en adaptant l'exemple de bloc-notes de bout en bout fourni dans cet article et en apprenant plus sur le service dans Qu'est-ce que les capacités géospatiales d'Amazon SageMaker ?.


À propos des auteurs

Julien BlauJulien Blau est Data Scientist chez BASF Digital Farming GmbH, situé à Cologne, en Allemagne. Il développe des solutions numériques pour l'agriculture, répondant aux besoins de la clientèle mondiale de BASF en utilisant des données géospatiales et l'apprentissage automatique. En dehors du travail, il aime voyager et être à l'extérieur avec ses amis et sa famille.

Antonio RodriguezAntonio Rodriguez est un architecte de solutions spécialisées en intelligence artificielle et en apprentissage automatique chez Amazon Web Services, basé en Espagne. Il aide les entreprises de toutes tailles à résoudre leurs problèmes grâce à l'innovation et crée de nouvelles opportunités commerciales avec AWS Cloud et les services AI/ML. En dehors du travail, il aime passer du temps avec sa famille et faire du sport avec ses amis.

Horodatage:

Plus de Apprentissage automatique AWS