ES2938091B2 - Estructura basada en la nube para procesar, analizar y visualizar datos de imagenes - Google Patents

Estructura basada en la nube para procesar, analizar y visualizar datos de imagenes

Info

Publication number
ES2938091B2
ES2938091B2 ES202290072A ES202290072A ES2938091B2 ES 2938091 B2 ES2938091 B2 ES 2938091B2 ES 202290072 A ES202290072 A ES 202290072A ES 202290072 A ES202290072 A ES 202290072A ES 2938091 B2 ES2938091 B2 ES 2938091B2
Authority
ES
Spain
Prior art keywords
trees
region
map
image
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES202290072A
Other languages
English (en)
Other versions
ES2938091R1 (es
ES2938091A2 (es
Inventor
Ioannis Ampatzidis
Partel Victor H Meirelles
Costa Lucas Fideles
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Florida
University of Florida Research Foundation Inc
Original Assignee
University of Florida
University of Florida Research Foundation Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Florida, University of Florida Research Foundation Inc filed Critical University of Florida
Publication of ES2938091A2 publication Critical patent/ES2938091A2/es
Publication of ES2938091R1 publication Critical patent/ES2938091R1/es
Application granted granted Critical
Publication of ES2938091B2 publication Critical patent/ES2938091B2/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • G06V20/188Vegetation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/40Software arrangements specially adapted for pattern recognition, e.g. user interfaces or toolboxes therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0012Biomedical image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/38Registration of image sequences
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/16Image acquisition using multiple overlapping images; Image stitching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/945User interactive design; Environments; Toolboxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/95Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/96Management of image or video recognition tasks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • G06V20/17Terrestrial scenes taken from planes or by drones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/192Recognition using electronic means using simultaneous comparisons or correlations of the image signals with a plurality of references
    • G06V30/194References adjustable by an adaptive method, e.g. learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10032Satellite or aerial image; Remote sensing
    • G06T2207/10036Multispectral image; Hyperspectral image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10048Infrared image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20104Interactive definition of region of interest [ROI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30181Earth observation
    • G06T2207/30188Vegetation; Agriculture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A40/00Adaptation technologies in agriculture, forestry, livestock or agroalimentary production
    • Y02A40/10Adaptation technologies in agriculture, forestry, livestock or agroalimentary production in agriculture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Remote Sensing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Radiology & Medical Imaging (AREA)
  • Quality & Reliability (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Investigating Or Analysing Materials By Optical Means (AREA)

Description

DESCRIPCIÓN
ESTRUCTURA BASADA EN LA NUBE PARA PROCESAR, ANALIZAR Y VISUALIZAR
DATOS DE IMÁGENES
Referencia cruzada con solicitudes relacionadas
La presente solicitud reivindica el derecho con respecto a la Solicitud de Patente Provisional US No. de Serie 63/013.606, presentada el 22 de abril de 2020, que se incorpora a la presente memoria en su totalidad como referencia, incluidas cualesquier figuras, tablas y dibujos. Esta solicitud también reivindica el derecho con respecto a la Solicitud de Patente Provisional US. No. de Serie 63/199,961, presentada el 5 de febrero de 2021, se incorpora a la presente memoria en su totalidad como referencia, incluidas cualesquier figuras, tablas y dibujos.
Declaraciones de apoyo
La presente invención se realizó con apoyo gubernamental en virtud de AP19PPQS&T00C130 otorgado por el Departamento de Agricultura de Estados Unidos, APHIS. El gobierno tiene ciertos derechos en la invención.
Esta invención se hizo en todo o en parte gracias a una subvención recibida de los Programas de Cultivos Especiales del Departamento de Agricultura y Servicios al Consumidor de Florida derivados del apoyo estatal provisto por el Servicio de Comercialización Agrícola del Departamento de Agricultura de Estados Unidos.
Campo de la invención
Las formas de realización de la presente descripción se refieren en general a sistemas y métodos que usan una estructura basada en la nube para procesar, analizar y visualizar datos de imágenes.
Estado de la técnica
La agricultura de precisión tiene como objetivo optimizar el uso de recursos para obtener una mejor producción agrícola y reducir impactos ambientales. La evaluación del crecimiento de cultivos y respuestas estratégicas oportunas a variaciones en la producción de cultivos son desafíos fundamentales en la agricultura de precisión. Por ejemplo, en cultivos arbóreos, mediciones de parámetros individuales de árboles, tales como características de copa de árboles, son esenciales para monitorizar el crecimiento de árboles y optimizar la gestión de huertos. La detección, conteo y evaluación de árboles individuales en huertos permite la selección de prácticas hortícolas apropiadas tales como, por ejemplo, la aplicación oportuna de productos químicos y programación precisa de riego. Por lo tanto, el desarrollo de herramientas de fenotipado de bajo coste y alto rendimiento para cultivos arbóreos es fundamental en muchas aplicaciones de la agricultura de precisión.
Sin embargo, las tecnologías de detección tradicionales para evaluar fenotipos de campo en general se basan en muestreo manual y a menudo, requieren mucho trabajo y mucho tiempo, especialmente cuando cubren áreas grandes. Además, estudios de campo para detección de plagas y enfermedades, inventario de plantas y evaluaciones de salud de plantas pueden ser costosos, laboriosos y lentos. Por lo tanto, las técnicas de detección remota o teledetección se han aplicado ampliamente en agricultura de precisión para cultivos arbóreos. Se ha usado una variedad de plataformas de detección para este propósito, que incluyen imágenes rojas/verdes/azules (RGB), multiespectrales e hiperespectrales, también como detección de luz y alcance (LiDAR). En consecuencia, las plataformas de detección pueden implicar el uso de aparatos tan pequeños como vehículos aéreos no tripulados (UAV), aeronaves, satélites y/o dispositivos terrestres equipados con dichos sensores para simplificar el procedimiento topográfico, disminuir el tiempo de recopilación de datos y reducir los costos. Por ejemplo, las plataformas de detección permiten a los productores monitorizar el estado de salud de los cultivos, estimar las necesidades de agua de las plantas, detectar enfermedades y plagas y cuantificar estrategias e impactos de la poda. Representan un método de bajo coste para la adquisición de imágenes en alta resolución espacial y temporal y, como resultado, se han usado cada vez más para aplicaciones agrícolas.
Además, la inteligencia artificial también se ha usado cada vez más en la teledetección o detección remota de datos de imágenes. Esto se debe al creciente acceso a grandes cantidades de datos de imágenes recopilados por plataformas de imágenes, lo que permite que la inteligencia artificial desempeñe un papel esencial en el procesamiento de todos estos datos para obtener información valiosa. Sin embargo, la adopción de tecnologías de plataforma de imágenes en campos, tales como cultivos especiales, ha sido baja. Las principales razones se han basado, por lo menos en parte, en dos frentes. En primer lugar, el procesamiento y análisis de datos para generar información exacta y útil puede ser muy complejo y conllevar mucho tiempo. En segundo lugar, el software disponible en el mercado normalmente solo proporciona información práctica limitada para muchas aplicaciones. En consecuencia, hay necesidad en la industria que supere estas dos deficiencias y permita una mayor eficiencia de procesamiento de datos, seguridad de datos, escalabilidad y costes reducidos.
Descripción de la invención
En general, las formas de realización de la presente divulgación proporcionan métodos, aparatos, sistemas, dispositivos informáticos, entidades informáticas y/o similares para detectar una pluralidad de objetos ubicados en un área de interés. De acuerdo con un aspecto de la presente divulgación, está previsto un método.
En varias formas de realización, el método comprende: recibir, mediante una interfaz proporcionada por medio de una instancia general en un entorno de nube, comprendiendo los datos de imágenes una pluralidad de imágenes sin procesar recopiladas en el área de interés; tras recibir la pluralidad de imágenes sin procesar: activar, mediante la instancia general, una instancia enfocada en unidad de procesamiento central (CPU) en el entorno de nube, sobre la base, por lo menos en parte de una imagen de configuración de máquina enfocada en CPU que comprende un software para la unión imágenes; al activar la instancia enfocada en CPU, procesar, mediante la instancia enfocada en CPU, la pluralidad de imágenes sin procesar para unir conjuntamente cada una de las imágenes sin procesar de la pluralidad de imágenes sin procesar, para generar un mapa de imagen del área de interés y al completar la generación del mapa de imagen, cerrar, mediante la instancia general, la instancia enfocada en CPU en el entorno de nube y después de generar el mapa de imagen: activar, mediante la instancia general, una instancia enfocada en unidad de procesamiento gráfico (GPU) en el entorno de nube, sobre la base, por lo menos en parte de una imagen de configuración de máquina enfocada en GPU que comprende un software para efectuar algoritmos de procesamiento; al activar la instancia enfocada en GPU, efectuar la detección de objetos, por medio de la instancia enfocada en GPU, en por lo menos una región dentro del mapa de imagen mediante la aplicación de uno o más algoritmos de detección de objetos a la región del mapa de imagen para identificar ubicaciones de la pluralidad de objetos en la región del mapa de imagen y al finalizar la detección de la pluralidad de objetos para la región, cerrar, mediante la instancia general, la instancia enfocada en GPU en el entorno de nube y efectuar una o más acciones basadas en la nube, sobre la base por lo menos en parte de la pluralidad de objetos detectados para la región dentro del mapa de imagen.
De acuerdo con otro aspecto de la presente divulgación, está previsto un aparato que opera dentro de una instancia general de un entorno de nube. En varias formas de realización, el aparato incluye por lo menos un procesador y por lo menos una memoria, incluido el código de programa. Dicha por lo menos una memoria y el código de programa están configurados para, con dicho por lo menos un procesador, hacer que el aparato por lo menos: reciba, a través d una interfaz, datos de formación de imágenes que comprenden una pluralidad de imágenes sin procesar recopiladas en el área de interés; tras recibir la pluralidad de imágenes sin procesar: activar una instancia enfocada en unidad de procesamiento central (CPU) en el entorno de nube, sobre la base, por lo menos en parte, de una imagen de configuración de máquina enfocada en CPU que comprende un software para unión de imágenes, en donde, tras la activación de la instancia enfocada en CPU, la instancia enfocada en CPU procesa la pluralidad de imágenes sin procesar para unir cada una de las imágenes sin procesar de la pluralidad de imágenes sin procesar para generar un mapa de imagen del área de interés y tras la finalización de la generación del mapa de imagen, cerrar la instancia enfocada en CPU en el entorno de nube; y después de generar el mapa de imagen: activar una instancia enfocada en la unidad de procesamiento gráfico (GPU) en el entorno de nube, sobre la base, por lo menos en parte, de una imagen de configuración de máquina enfocada en GPU que comprende un software para efectuar algoritmos de procesamiento, en donde tras la activación de la Instancia enfocada en GPU, la instancia enfocada en GPU efectúa la detección de objetos en por lo menos una región dentro del mapa de imagen, mediante la aplicación de uno o más algoritmos de detección de objetos a la región del mapa de imagen para identificar las ubicaciones de la pluralidad de objetos en la región del mapa de imagen y tras la finalización de la detección de la pluralidad de objetos para la región, cerrar la instancia enfocada en GPU en el entorno de nube y efectuar una o más acciones basadas en la nube, sobre la base, por lo menos en parte de la pluralidad de objetos detectados para la región dentro del mapa de imagen.
De acuerdo con otro aspecto más de la presente divulgación, está previsto un producto de programa de computadora. En varias formas de realización, el producto de programa de computadora incluye un medio de almacenamiento de computadora no transitorio que tiene instrucciones almacenadas en el mismo. Las instrucciones son configuradas para provocar que uno o más procesadores que operan dentro de una instancia general de un entorno de nube efectúen por lo menos operaciones configuradas para: recibir, por medio de una interfaz, datos de imágenes que comprenden una pluralidad de imágenes sin procesar recopiladas en el área de interés; tras recibir la pluralidad de imágenes sin procesar: activar una instancia enfocada en unidad de procesamiento central (CPU) en el entorno de nube, en base, por lo menos en parte, en una imagen de configuración de máquina enfocada en CPU que comprende software para unión de imágenes, en donde, tras la activación de la instancia enfocada en CPU, la instancia enfocada en CPU procesa la pluralidad de imágenes sin procesar para unir cada una de las imágenes sin procesar de la pluralidad de imágenes sin procesar para generar un mapa de imagen del área de interés y tras la finalización de la generación del mapa de imagen, cerrar la instancia enfocada en CPU en el entorno de nube y después de generar el mapa de imagen: activar una instancia enfocada en unidad de procesamiento gráfico (GPU) en el entorno de nube, en base, por lo menos en parte, en una imagen de configuración de máquina enfocada en GPU que comprende software para efectuar algoritmos de procesamiento, en donde, tras la activación de la instancia enfocada en GPU, la instancia enfocada en GPU efectúa detección de objetos en por lo menos una región dentro del mapa de imagen mediante aplicación de uno o más algoritmos de detección de objetos a la región del mapa de imagen para identificar ubicaciones de la pluralidad de objetos en la región del mapa de imagen y tras la finalización de la detección de la pluralidad de objetos para la región, cerrar la instancia centrada en GPU en el entorno de nube y efectuar una o más acciones basadas en la nube, en base, por lo menos en parte en la pluralidad de objetos detectados para la región dentro del mapa de imagen.
En formas de realización particulares, la detección de objetos en la región dentro del mapa de imagen se efectúa mediante: procesamiento previo del mapa de imagen para reducir la variación en el mapa de imagen resultante de capturar la pluralidad de imágenes sin procesar; aplicar un primer algoritmo de detección de objetos de entre dicho uno o más algoritmos de detección de objetos para identificar ubicaciones iniciales de la pluralidad de objetos en la región del mapa de imagen; identificar uno o más patrones de objetos en el mapa de imagen; analizar dicho uno o más patrones de objetos para identificar uno o más falsos positivos en las ubicaciones iniciales de la pluralidad de objetos; eliminar dicho uno o más falsos positivos de las ubicaciones iniciales de la pluralidad de objetos y después de eliminar dicho uno o más falsos positivos de las ubicaciones iniciales de la pluralidad de objetos, aplicar un segundo algoritmo de detección de objetos de entre dicho uno o más algoritmos de detección de objetos a cada uno de los uno o más patrones de objetos para identificar las ubicaciones de la pluralidad de objetos. Además, en formas de realización particulares, la entrada se recibe por medio de una interfaz que se origina de un usuario, en donde la entrada comprende por lo menos uno de la región dentro del mapa de imagen, un espaciado de objetos que identifica un espacio promedio entre objetos ubicados en la región o una o más áreas de plantilla encontradas en la región a ser omitidas por dicho uno o más algoritmos de detección de objetos.
En formas de realización particulares, el área de interés comprende una arboleda, la pluralidad de objetos comprende una pluralidad de árboles, y dicho uno o más patrones de objetos comprenden una o más filas de árboles. En consecuencia, en algunas formas de realización, dicha una o más acciones basadas en la nube pueden comprender: generar datos procesados para la pluralidad de árboles, los datos de procesamiento comprenden por lo menos uno de un número total de árboles para la pluralidad de árboles, uno o más conteos de huecos de árbol, un valor promedio de altura de árboles, una altura de árbol para uno o más de la pluralidad de árboles, una estimación de área de copa de árbol para uno o más de la pluralidad de árboles, una estimación de rendimiento de fruta para uno o más de la pluralidad de árboles, una estimación de edades de árboles para uno o más de la pluralidad de árboles, una estimación de salud de árboles para uno o más de la pluralidad de árboles, unas concentraciones de nutrientes estimadas para uno o más de la pluralidad de árboles o un mapa de fertilidad basado por lo menos en parte en concentraciones de nutrientes estimadas para la pluralidad de árboles y proveer por lo menos una parte de los datos de procesamiento para su visualización por medio de la interfaz en un dispositivo de usuario. En estas formas de realización, dicha una o más acciones basadas en la nube también pueden comprender: recibir una entrada que indica una selección de la región de un usuario por medio del dispositivo de usuario y en respuesta a la recepción de la entrada que indica la selección de la región, proporcionar un mapa de la región para su visualización por medio de la interfaz en el dispositivo de usuario, el mapa muestra la pluralidad de árboles detectados para la región. Además, en algunas formas de realización, dicha una o más acciones basadas en la nube pueden comprender: generar un mapa de aplicación que identifique una tasa de aplicación para por lo menos la región dentro del mapa de imagen y descargar el mapa de aplicación a un sistema de atomizador inteligente configurado para usar el mapa de aplicación para controlar el flujo de un líquido que se aplica a la pluralidad de árboles en la región.
Breve descripción de los dibujos
Habiendo así presentado la descripción en términos generales, a continuación, se hará referencia a los dibujos adjuntos, que no están necesariamente dibujados a escala y en el que:
La figura 1 es un diagrama de una arquitectura de sistema que se puede usar en conjunción con varias formas de realización de la presente divulgación;
La figura 2 es un flujo de trabajo de intercambio de datos entre un entorno de nube y un sistema de atomizador inteligente de acuerdo con varias formas de realización de la presente descripción;
La figura 3 es un flujo de trabajo de un entorno de nube que emplea varias instancias de acuerdo con varias formas de realización de la presente descripción;
La figura 4 es un esquema de una entidad informática de acuerdo con varias formas de realización de la presente descripción;
La figura 5 es un flujo de proceso para procesar datos de formación de imágenes en un entorno de nube de acuerdo con varias formas de realización de la presente descripción;
La figura 6 es un flujo de proceso para procesar y analizar mapas de imagen en un entorno de nube, de acuerdo con varias formas de realización de la presente descripción;
La figura 7 es un ejemplo de un mapa de aplicación que se puede usar de acuerdo con varias formas de realización de la presente descripción;
Las figuras 8A y 8B son interfaces de usuario provistas a través de un entorno de nube de acuerdo con varias formas de realización de la presente descripción;
La figura 9 es un flujo de trabajo para procesar y analizar datos de imágenes en un entorno de nube, de acuerdo con varias formas de realización de la presente descripción.
Descripción detallada de unas formas de realización de la invención
Varias formas de realización de la presente descripción se describirán a continuación, más completamente a continuación con referencia a los dibujos adjuntos, en los cuales se muestran algunas, pero no todas las formas de realización de la descripción. De hecho, la descripción se puede implementar de muchas formas diferentes y no se debe interpretar como limitada a las formas de realización expuestas en la presente memoria; más bien, estas formas de realización se proporcionan de tal manera que esta descripción satisfaga los requisitos legales aplicables. El término "o” (también designado como “/”) se usa en la presente memoria en sentido alternativo y conjuntivo a no ser que se indique de otra manera. Los términos “ilustrativo” y “ejemplificativo” se usan para ser ejemplos sin indicación del nivel de calidad.
Los números semejantes se refieren a elementos semejantes de principio a fin.
I. Productos, Sistemas, Métodos y Entidades Informáticas de Programa de Computadora
Las formas de realización de la presente divulgación se pueden implementar de varias maneras, incluidos productos de programas de computadora que comprenden artículos de manufactura. Dichos productos de programas de computadora pueden incluir uno o más componentes de software, incluidos, por ejemplo, objetos de software, métodos, estructuras de datos y/o similares. Un componente de software puede ser codificado en cualquiera de una variedad de lenguajes de programación. Un lenguaje de programación ilustrativo puede ser un lenguaje de programación de nivel inferior, tal como un lenguaje ensamblador asociado con una arquitectura de hardware y/o plataforma de sistema operativo particular. Un componente de software que comprende instrucciones en lenguaje ensamblador puede requerir conversión a código de máquina ejecutable por un ensamblador antes de la ejecución por la arquitectura y/o plataforma de hardware. Otro lenguaje de programación de ejemplo puede ser un lenguaje de programación de nivel superior que puede ser portátil a través de múltiples arquitecturas. Un componente de software que comprende instrucciones de lenguaje de programación de nivel superior puede requerir conversión a una representación intermedia por un intérprete o un compilador antes de la ejecución.
Otros ejemplos de lenguajes de programación incluyen, pero no se limitan a, un lenguaje de macros, un lenguaje de comando oshell,un lenguaje de control de trabajos, un lenguaje de secuencias de comandos, una consulta de base de datos o un lenguaje de búsqueda y/o un lenguaje de redacción de informes. En una o más formas de realización ejemplificativas, un componente de software que comprende instrucciones en uno de los ejemplos anteriores de lenguajes de programación se puede ejecutar directamente por un sistema operativo u otros componentes de software sin ser transformado primero a otra forma. Un componente de software se puede almacenar como un archivo u otra construcción de almacenamiento de datos. Componentes de software de tipo similar o funcionalmente relacionados se pueden almacenar conjuntamente, tal como en un directorio, carpeta o biblioteca en particular. Los componentes de software pueden ser estáticos (por ejemplo, preestablecidos o fijos) o dinámicos (por ejemplo, creados o modificados al tiempo de la ejecución).
Un producto de programa de computadora puede incluir un medio de almacenamiento legible por computadora no transitorio que almacena aplicaciones, programas, módulos de programa, scripts o secuencias de comandos, código fuente, código de programa, código de objeto, código de byte, código compilado, código interpretado, código de máquina, instrucciones ejecutables y/o o similares (también denominados en la presente como instrucciones ejecutables, instrucciones para ejecución, productos de programas de computadora, código de programa y/o términos semejantes usados en el presente de manera intercambiable). Dichos medios de almacenamiento legibles por computadora no transitorios incluyen todos los medios legibles por computadora (incluidos medios volátiles y no volátiles).
En una forma de realización, un medio de almacenamiento legible por computadora no volátil puede incluir un disquete, un disco flexible, un disco duro, un almacenamiento de estado sólido (SSS) (por ejemplo, una unidad de estado sólido (SSD), una tarjeta de estado sólido (SSC), módulo de estado sólido (SSM), unidad flash empresarial, cinta magnética o cualquier otro medio magnético no transitorio y/o similares. Un medio de almacenamiento legible por computadora no volátil también puede incluir una tarjeta perforada, cinta de papel, hoja de marcas ópticas (o cualquier otro medio físico con patrones de agujeros u otros indicios reconocibles ópticamente), disco compacto de memoria de solo lectura (CD-ROM), disco compacto regrabable (CD-RW), disco versátil digital (DVD), Disco Blu-ray (BD), cualquier otro medio óptico no transitorio y/o similares. El medio de almacenamiento legible por computadora no volátil también puede incluir memoria de solo lectura (ROM), memoria de solo lectura programable (PROM), memoria programable borrable de solo lectura (EPROM), memoria programable borrable eléctricamente de solo lectura (EEPROM), memoriaflash(por ejemplo, serie, NAN D, NOR y/o similares), tarjetas de memoria multimedia (MMC), tarjetas de memoria digital seguras (SD), tarjetas SmartMedia, tarjetas CompactFlash (CF), tarjetas Memory Stick y/o similares. Además, un medio de almacenamiento legible por computadora no volátil también puede incluir memoria de acceso aleatorio de puente conductor (CBRAM), memoria de acceso aleatorio de cambio de fase (PRAM), memoria de acceso aleatorio ferroeléctrica (FeRAM), memoria de acceso aleatorio no volátil (NVRAM), memoria magnetorresistiva de acceso aleatorio (MRAM), memoria resistiva de acceso aleatorio (RRAM), memoria de óxido de silicio-nitruro-óxido-silicio (SONOS), memoria de acceso aleatorio de puerta de unión flotante (FJG RAM), memoria Millipede, memoria de pista de carreras y/o similares.
En una forma de realización, un medio de almacenamiento volátil legible por computadora puede incluir memoria de acceso aleatorio (RAM), memoria dinámica de acceso aleatorio (DRAM), memoria estática de acceso aleatorio (SRAM), memoria dinámica de acceso aleatorio en modo de página rápida (FPM DRAM), memoria de acceso aleatorio dinámica de salida de datos extendida (EDO DRAM), memoria de acceso aleatorio dinámico síncrono (SDRAM), memoria de acceso aleatorio dinámico síncrono de velocidad de datos doble (DDR SDRAM), memoria de acceso aleatorio dinámico síncrono de tipo de velocidad de datos doble (DDR2 SDRAM), memoria de acceso aleatorio dinámico síncrono tipo tres de velocidad de datos doble (DDR3 SDRAM), memoria de acceso aleatorio dinámico Rambus (RDRAM), RAM de transistor doble (TTRAM), RAM de tiristor (T-RAM), capacitor o condensador cero (Z-RAM), Módulo de memoria Rambus en línea (RIMM), módulo de memoria dual en línea (DIMM), módulo de memoria en línea individual (SIMM), memoria de acceso aleatorio de video (VRAM), memoria caché (incluidos varios niveles), memoriaflash,memoria de registro y/o similares. Se apreciará que cuando se describen formas de realización para usar un medio de almacenamiento legible por computadora, se pueden sustituir o usar otros tipos de medios de almacenamiento legibles por computadora además de los medios de almacenamiento legibles por computadora descritos anteriormente.
Como se debería apreciar, varias formas de realización de la presente divulgación también se pueden implementar como métodos, aparatos, sistemas, dispositivos informáticos, entidades informáticas y/o similares. Como tal, las formas de realización de la presente descripción pueden adoptar la forma de una estructura de datos, aparato, sistema, dispositivo informático, entidad informática y/o instrucciones similares de ejecución almacenadas en un medio de almacenamiento legible por computadora para efectuar ciertos pasos u operaciones. Por lo tanto, las formas de realización de la presente descripción también pueden tomar la forma de toda una modalidad de hardware, una toda una modalidad de producto de programa de computadora y/o una modalidad que comprende una combinación de productos de programa de computadora y hardware que efectúa operaciones o pasos específicos.
A continuación, se describen las formas de realización de la presente divulgación con referencia a diagramas de bloques e ilustraciones de diagramas de flujo. Por lo tanto, se debe entender que cada bloque de los diagramas de bloques e ilustraciones de diagramas de flujo se pueden implementar en forma de un producto de programa de computadora, una forma de realización completamente de hardware, una combinación de productos y/o aparatos, sistemas, dispositivos informáticos y hardware y programas de computadora, entidades informáticas y/o similares que llevan a cabo instrucciones, operaciones, pasos y palabras similares usadas indistintamente (por ejemplo, las instrucciones ejecutables, instrucciones para ejecución, código de programa y/o similares) en un medio de almacenamiento legible por computadora para ejecución. Por ejemplo, la recuperación, carga y ejecución de código se puede efectuar secuencialmente de tal manera que se recupera, carga y ejecuta una instrucción a la vez. En algunas formas de realización ejemplificativas, la recuperación, carga y/o ejecución se pueden efectuar en paralelo, de tal manera que se recuperan, cargan y/o ejecutan múltiples instrucciones conjuntamente. Por lo tanto, dichas formas de realización pueden producir máquinas configuradas específicamente que efectúen los pasos u operaciones especificados en los diagramas de bloques e ilustraciones de diagramas de flujo. En consecuencia, los diagramas de bloques e ilustraciones de diagramas de flujo soportan varias combinaciones de formas de realización para efectuar las instrucciones, operaciones o pasos especificados.
a. Arquitectura de sistema ejemplificativa
La figura 1 proporciona una ilustración de una arquitectura de sistema 100 que se puede usar de acuerdo con varias formas de realización de la divulgación. En este caso, se usa una plataforma de detección 115 para la adquisición de imágenes de un área de interés 130 que incluye uno o más dispositivos 120 configurados para adquirir las imágenes 135 del área de interés 130. Por ejemplo, el área de interés 130 puede ser una arboleda y dicho uno o más dispositivos de captura de imágenes 120 pueden ser UAV de cuadricóptero tal como, por ejemplo, Matrice 210 o DJI Phantom 4 Pro+ usados para capturar imágenes aéreas de la arboleda. La arquitectura de sistema 100 se muestra en la figura 1 con una plataforma de detección 115 que usa UAV. Sin embargo, los expertos en la materia deben entender que otras plataformas de detección 115, incluidos otros tipos de dispositivos de captura de imágenes 120, se pueden usar en otras formas de realización, dependiendo de la aplicación (por ejemplo, agricultura de precisión) para la cual se recopilan las imágenes.
En consecuencia, los dispositivos de captura de imágenes 120 en la plataforma de detección 115 usan uno o más sensores para capturar las imágenes 135, tales como, por ejemplo, cámaras multiespectrales, cámaras RGB y/o similares. Por ejemplo, las imágenes se pueden adquirir en cinco bandas: (i) azul, (ii) verde, (iii) rojo, (iv) borde rojo e (v) infrarrojo cercano. Además, la resolución de imagen puede variar dependiendo de la aplicación, como, por ejemplo, 5280 x 3956 píxeles (21 megapíxeles) o 5472 x 3648 (19,96 megapíxeles).
Además, la plataforma de detección 115 puede incluir un dispositivo de usuario 125 para controlar los dispositivos de captura de imágenes 120. En este caso, el dispositivo de usuario 125 puede incluir algún tipo de aplicación usada para controlar los dispositivos 120. Por ejemplo, el software Pix4DCapture se puede usar en instancias particulares en las cuales se están recopilando imágenes aéreas 135 para planificación de vuelo y control de misión. En consecuencia, la plataforma de detección 115 negocia el área de interés 130 (por ejemplo, negocia para que los UAV vuelen sobre la arboleda) y captura una o más imágenes 135 que luego se pueden cargar en un entorno de nube 150. En este caso, las imágenes 135 son capturadas usando los dispositivos de captura de imágenes y recopiladas en el dispositivo de usuario 125. A continuación, el dispositivo de usuario 125 puede acceder al entorno de nube 150 por medio de un sitio web a través de una red 145 tal como Internet o comunicación celular y cargar los datos de imágenes 140.
El entorno de nube 150 puede estar compuesto de una de entre varias soluciones de informáticas diferentes basadas en la nube que están disponibles de manera privada y/o comercial (por ejemplo, públicamente), tal como Amazon Web Services (AWS), por ejemplo, que proporciona una infraestructura altamente fiable y escalable para desplegar aplicaciones basadas en la nube. En formas de realización particulares, el entorno de nube 150 proporciona múltiples tipos de instancias, máquinas con diferentes configuraciones para aplicaciones de software específicas y permite el uso de múltiples máquinas similares, la creación de imágenes de instancias y la
instancia.
En este caso, el entorno de nube 150 puede incluir un servidor web 155 que proporciona uno o más sitios web (por ejemplo, una o más páginas web) para servir como una interfaz de usuario a través de la cual las partes remotas pueden acceder al entorno de nube 150 para cargar datos de imágenes 140 para procesamiento. Además, el servidor web 155 puede proporcionar uno o más sitios web (por ejemplo, una o más páginas web) a través de los cuales las partes remotas pueden acceder a los datos de imágenes 140 y procesar y analizar los datos 140 para producir información deseada (como se discute adicionalmente en la presente). Aunque la interfaz de usuario descrita en la presente memoria es proporcionada por uno o más sitios web a través de un servidor web 155, los expertos en la materia deben comprender que una interfaz de usuario se puede proporcionar a través de otras formas en otras formas de realización, tales como, por ejemplo, una interfaz convencional, una interfaz gráfica de usuario (GUI), una interfaz basada en formularios, una interfaz de programación de aplicaciones y/o similares. En consecuencia, una instancia general (por ejemplo, instancia de nube, instancia de servidor virtual y/o similares) se puede usar en varias formas de realización como una máquina de control de aplicaciones principal que sirve como interfaz para el entorno de nube 150 y controla otras instancias en el proceso al enviar comandos entre instancias y el entorno de nube 150.
Además, el entorno de nube 150 puede incluir uno o más servidores de aplicaciones 160 en los cuales los servicios pueden estar disponibles para efectuar la funcionalidad deseada, tal como procesamiento de datos de imágenes 140 para producir el mapa o mapas de imagen deseados e información correspondiente recopilada del mapa o mapas. Por ejemplo, un servicio puede estar disponible en varias formas de realización que usan un motor de unión para unir las imágenes sin procesar recopiladas (datos de imágenes 140) que se han cargado en uno o más mapas de imagen (por ejemplo, uno o más mapas de ortomosaicos). Por ejemplo, en un caso en el cual los datos de imágenes 140 incluyan imágenes aéreas, el servicio puede hacer uso del software del motor de unión Pix4Dmapper configurado para unir y corregir geométricamente las imágenes recopiladas en uno o más mapas aéreos que representan exactamente el área de interés 130. En este caso, se puede generar un mapa para cada una de las bandas que luego se combinan para crear uno o más mapas aéreos, tales como mapa o mapas de RGB, mapa o mapas de RNB y/o similares. Por ejemplo, un mapa de RNB que contiene un canal de infrarrojo cercano se puede usar en varias aplicaciones, tal como agricultura de precisión. Dicho mapa puede mostrar un mejor contraste visual entre la vegetación (por ejemplo, plantas y/o árboles) del entorno y, por lo tanto, puede proporcionar una mejor tasa de detección.
Además, puede estar disponible un servicio para procesar mapas de imagen para detectar objetos encontrados en los mapas, también como para identificar parámetros deseados para los objetos, para producir datos de procesamiento 175. Como se discute adicionalmente en la presente memoria, este servicio puede emplear uno o más algoritmos de detección de objetos en varias formas de realización para detectar los objetos y parámetros correspondientes de los objetos encontrados en los mapas de imagen. En este caso, los algoritmos de detección de objetos pueden usar inteligencia artificial (por ejemplo, uno o más modelos de aprendizaje automático). Se pueden usar varios algoritmos durante el proceso de detección para mejorar la detección de objetos y parámetros.
En consecuencia, en varias formas de realización, el servicio para procesar los datos de imágenes 140 puede emplear la primera instancia para un uso intensivo de CPU (por ejemplo, una instancia enfocada en CPU) y el servicio que usa uno o más algoritmos de detección de objetos puede emplear una segunda instancia diferente para uso intensivo de GPU (por ejemplo, una instancia enfocada en GPU). Para la escalabilidad y el procesamiento paralelo, ambas instancias pueden funcionar al crear una imagen para cada proceso que se ejecuta para los datos de imagen 140, de tal manera que se puedan generar múltiples mapas e información de parámetros correspondiente (datos de procesamiento 175) al mismo tiempo.
Finalmente, en formas de realización particulares, el entorno de nube 150 puede incluir almacenamiento de datos no volátil 165, tal como una unidad de almacenamiento de volumen de disco duro para almacenar datos de imágenes cargados 140, así como para procesar datos 175 generados de los datos de imágenes 140. Además, un usuario puede usar un dispositivo 170 para acceder al entorno de nube 150 por medio del servidor web 155 para usar los servicios disponibles para procesar mapas de imagen para generar los datos de procesamiento deseados 175, así como para ver los datos de procesamiento resultantes 175.
Además, en formas de realización particulares, el entorno de nube 150 puede estar en comunicación con uno u otros sistemas para permitir el intercambio de aplicación, procesamiento y/o datos recopilados como se detalla más adelante en la presente. Por ejemplo, en algunas formas de realización, el entorno de nube 150 puede estar en comunicación con un sistema de atomizador inteligente 180. En consecuencia, el sistema de atomizador inteligente 180 puede comprender hardware y/o software, configurados para la recopilación, el procesamiento y el control de datos de un atomizador para una aplicación de agricultura (por ejemplo, rociar una arboleda). Por ejemplo, en formas de realización particulares, el sistema de atomizador inteligente 180 incluye un sensor de detección e intervalo de luz (LiDAR) para recopilar datos espaciales tridimensionales (3D) de una arboleda, una o más cámaras (por ejemplo, cámaras RGB) que producen imágenes que se pueden usar para aplicaciones, tales como clasificación de árboles o no árboles, detección y/o conteo de frutos, estimación de tamaño de frutos y/o similares y un Sistema de Posicionamiento Global (GPS) para medir la posición y velocidad. En consecuencia, uno o más de estos diversos componentes pueden estar en el atomizador.
Volviendo ahora a la figura 2, se muestra un flujo de trabajo de intercambio de datos 200 entre el sistema de atomizador inteligente 180 y el entorno de nube 150 de acuerdo con varias formas de realización. Como se indica anteriormente, el entorno de nube 150 puede recibir datos de imágenes 140 de un área de interés 130 de una plataforma de detección 115. Como se describe más adelante en la presente memoria, el entorno de nube 150 puede procesar los datos de imágenes 140 al generar uno o más mapas de imagen que tienen información, tal como conteo de árboles 210, mediciones de árboles 215 (por ejemplo, edades de árboles, tamaños de copas de árboles, alturas de árboles, valores de salud de árboles), contenido de nutrientes de hojas de copas de árboles 220, predicción de rendimiento 225 y/o similares, también como uno o más mapas de fertilidad del suelo 230 se pueden generar de datos del suelo procesados por análisis de laboratorio. En consecuencia, en formas de realización particulares, el entorno de nube 150 puede generar un mapa de aplicación 235 de los varios mapas de imagen con información detallada de la cantidad de rociado que se debe aplicar por región que se provee al sistema de atomizador inteligente 180 como datos de aplicación 185. El sistema de atomizador inteligente 180 puede entonces usar el mapa de aplicación 235 en una aplicación de atomización 240 para controlar el flujo de líquido que se aplica a los árboles en el área de interés (por ejemplo, la arboleda) 130.
Además, el sistema de atomizador inteligente 180 en varias formas de realización recopila y procesa datos 190 que se pueden comunicar al entorno de nube 150. Por ejemplo, dichos datos recopilados 190 pueden incluir conteo de árboles 245, mediciones de árboles 250, estado de salud de árboles 255, conteo de frutos y/o estimación de tamaño de fruto 260, mapa de rendimiento 265, predicción de rendimiento 270, estimación de calidad de fruto, detección de brotes, conteo de flores y/o tamaño de flores y/o similares. En consecuencia, en algunas formas de realización, el entorno de nube 150 puede usar dichos datos recopilados 190 para actualizar la información en los varios mapas y/o procesar datos 175 generados por el entorno de nube 150, creando una capa de información robusta y precisa para los cultivadores.
En consecuencia, hospedar los servicios usados en el procesamiento y análisis de imágenes y/o datos recopilados 140, 190 en un entorno de nube 150 proporciona varias ventajas técnicas en varias formas de realización de la descripción con respecto al uso de tales servicios bajo una configuración convencional (local). Una de dichas ventajas es la escalabilidad y flexibilidad previstas en el entorno de nube 150 que permite acomodar la carga de imágenes de tamaño variable y/o datos recopilados 140, 190 y el procesamiento y análisis de tales datos 140, 190 para producir mapas de imagen deseados y/o parámetros detectados de objetos identificados en los mapas (por ejemplo, datos de procesamiento 175). Específicamente, el entorno de nube 150 permite el procesamiento de imágenes y/o datos recopilados 140, 190 y mapas de imagen que se van a distribuir en diferentes instancias y/o máquinas, también como que la capacidad de procesamiento se incremente o disminuya como sea necesario. Esto permite mejorar la eficiencia para llevar a cabo dichos servicios y esta capacidad puede ser bastante útil cuando se procesa una cantidad significativa de datos (por ejemplo, imágenes) usando inteligencia artificial. Del mismo modo, un entorno de nube 150 también puede adaptarse típicamente a la ampliación del ancho de banda cuando sea necesario para ayudar a cargar imágenes y/o datos recopilados 140, 190, también como acomodar la asignación de más memoria de almacenamiento cuando sea necesario para almacenar imágenes adicionales y/o datos recopilados 140, 190 y datos de procesamiento correspondientes 175.
Un entorno de nube 150, a menudo, también proporciona una mayor fiabilidad que las configuraciones convencionales al soportar la disponibilidad de los servicios y los datos de imágenes, recopilados y/o procesados 140, 175, 190. Dicho beneficio normalmente se alcanza gracias a la arquitectura empleada por muchos entornos de nube 150 que incluye una rápida escalabilidad y redundancia de la capacidad de procesamiento y almacenamiento 165 para responder a cualquier aumento de la demanda de recursos o falla del sistema dentro del entorno de nube 150. Esta capacidad también puede conllevar una mayor seguridad de datos y prevención de pérdida en varias formas de realización en las cuales la redundancia del almacenamiento de datos 165 que se encuentra en muchos entornos de nube 150 ayuda a facilitar la recuperación ante desastres de cualquier imagen perdida, datos recopilados y/o procesados 140, 175, 190.
Además, un entorno de nube 150 facilita permitir que múltiples usuarios y/o sistemas carguen y accedan a imágenes y/o datos recopilados 140, 190 en una ubicación centralizada, así como que múltiples usuarios y/o sistemas analicen, descarguen, usen, vean y/o similares, datos de imágenes, recopilados y/o procesados 140, 175, 190. En consecuencia, el entorno de nube 150 permite el control centralizado de los datos de imágenes, recopilados y/o procesados 140, 175, 190 y el procesamiento y visualización de dichos datos 140, 175, 190. Esta capacidad puede ayudar a facilitar un mejor control de calidad sobre los datos de imágenes, recopilados y/o procesados 140, 175, 190 almacenados en el entorno de nube 150, también como ayudar a facilitar una mayor colaboración entre usuarios y/o sistemas.
Por ejemplo, un primer cultivador puede recopilar y cargar datos de imágenes 140 al entorno de nube 150 para una arboleda comunal usada para cultivar manzanas. El primer cultivador puede analizar los datos de imágenes 140 para determinar el número de manzanos encontrados en el bosque y la altura y salud general de cada árbol (generar datos de procesamiento 175). Más tarde, un segundo productor puede recopilar y cargar datos de imágenes 140 para la misma arboleda comunal al entorno de nube 150. El segundo productor puede efectuar el mismo análisis en los datos de imágenes 140 que ha cargado para determinar el número de manzanos encontrados en la arboleda y la altura y salud general de cada árbol posteriormente (generar datos de procesamiento 175). Además, dado que los datos de procesamiento 175 del primer cultivador están disponibles en el entorno de nube 150, el segundo cultivador también puede comparar los datos de procesamiento 175 generados a partir de sus datos de imágenes 140 cargados con los datos de procesamiento 175 generados de los datos de imágenes cargados 140 del primer cultivador para obtener una mejor comprensión de las tendencias generales de salud y bienestar de los manzanos que se encuentran en la arboleda comunal. Por lo tanto, usar el entorno de nube 150 permite que el primer y segundo cultivador colaboren en sus hallazgos para comprender y gestionar mejor la arboleda comunal.
Volviendo ahora a la figura 3, se muestra una forma de realización de un flujo de trabajo 300 de un entorno de nube 150 que emplea las diversas instancias de procesamiento discutidas anteriormente. En este caso, los datos de imágenes 140 se cargan al entorno de nube 150 al usar una interfaz de usuario 315 proporcionada por medio de una instancia general, tal como la máquina de control de aplicaciones principal 310 accesible, por ejemplo, a través de un servidor web 155 alojado dentro del entorno de nube 150. Además, los datos recopilados 190 se pueden cargar al entorno de nube 150 desde un sistema (por ejemplo, por medio de una interfaz de programación de aplicaciones) tal como, por ejemplo, un sistema de atomizador inteligente 180. Al recibir nuevos datos de imágenes 140 para procesar, la instancia general 310 activa una instancia de una imagen (instancia de CPU 320) en formas de realización particulares para efectuar la unión de los datos de imagen 140 en uno o más mapas de imagen (por ejemplo, ortomosaico) y, en algunos casos, la generación de uno o más archivos de Modelo de Superficie Digital (DSM). Por ejemplo, en algunas formas de realización, la instancia de CPU 320 puede ser una instancia optimizada para cómputo, tal como una instancia c5.9xlarge. Una vez completada, la instancia de CPU 320 es cerrada en algunas formas de realización. La instancia general 310 puede activar entonces una instancia de una imagen (instancia de GPU 325) en formas de realización particulares para ejecutar uno o más algoritmos de detección de objetos en los mapas de imagen y/o archivos de DSM con fines de detección. Por ejemplo, en algunas formas de realización, la instancia de GPU 325 puede ser una instancia informática acelerada, tal como una instancia p3.2xlarge. Además, la instancia de GPU 325 se puede usar para procesar los datos recopilados 190 recibidos del sistema. Nuevamente, la instancia de GPU 325 puede ser cerrada en algunas formas de realización una vez que se completa la ejecución. En consecuencia, para la escalabilidad y el procesamiento en paralelo, ambas instancias funcionan en varias formas de realización al activar instancias adicionales para los diferentes procesos que se ejecutan para los datos de imágenes y/o datos recopilados 140, 190, de tal manera que se puedan generar múltiples mapas y/o datos de procesamiento 175 al mismo tiempo. Una vez que se ha completado el procesamiento, los mapas resultantes y/o datos de procesamiento 175 se pueden almacenar en una unidad de almacenamiento de volumen de disco duro 330 dentro del entorno de nube 150 de manera que se pueda acceder a ellos para visualizarlos usando la interfaz de usuario 315 disponible a través del servidor web 155.
b. Entidad informática Ejemplificativa
La figura 4 proporciona un esquema de una entidad informática 400 de acuerdo con varias formas de realización de la presente divulgación. Por ejemplo, la entidad informática 400 puede consistir en el servidor o servidores web 155 y/o servidor o servidores de aplicaciones 160 que se encuentran dentro del entorno de nube 150 descrito previamente en la figura 1. En general, los términos entidad informática, entidad, dispositivo, sistema y/o palabras semejantes usadas en la presente memoria de manera intercambiable se pueden referir, por ejemplo, a una o más computadoras, entidades informáticas, computadoras de escritorio, teléfonos móviles, tabletas, phablets, computadoras portátiles (del inglés,notebooks),computadoras portátiles (del inglés,laptops),sistemas distribuidos, artículos/dispositivos, terminales, servidores o redes de servidores, aspas, puertas de enlace, conmutadores, dispositivos de procesamiento, entidades de procesamiento, decodificadores, relevadores, enrutadores, puntos de acceso a red, estaciones base, similares y/o cualquier combinación de dispositivos o entidades adaptadas para efectuar las funciones, operaciones y/o procesos descritos en la presente. Dichas funciones, operaciones y/o procesos pueden incluir, por ejemplo, transmitir, recibir, operar, procesar, mostrar, almacenar, determinar, crear/generar, monitorear, evaluar, comparar y/o términos semejantes usados en la presente de manera intercambiable. En una forma de realización, estas funciones, operaciones y/o procesos se pueden efectuar en datos, contenido, información y/o términos semejantes usados en la presente de manera intercambiable.
Aunque se ilustra como una sola entidad informática, los expertos en la materia deben comprender que la entidad informática 400 que se muestra en la figura 4 se puede implementar como una pluralidad de entidades informáticas, herramientas y/o similares que operan colectivamente para efectuar uno o más procesos, métodos y/o pasos. Solo como un ejemplo no limitativo, la entidad informática 400 puede comprender una pluralidad de herramientas de datos individuales, cada una de las cuales puede efectuar tareas y/o procesos específicos.
Dependiendo de la forma de realización, la entidad informática 400 puede incluir una o más interfaces de red y/o de comunicaciones 425 para comunicarse con varias entidades informáticas, tal como mediante comunicación de datos, contenido, información y/o términos semejantes usados en la presente memoria de manera intercambiable que se pueden transmitir, recibir, operar en, procesar, mostrar, almacenar y/o similares. Por ejemplo, la entidad informática 400 se puede comunicar con otras entidades informática, tales como uno o más dispositivos de usuario 125, 170, sistemas y/o similares para cargar imágenes y/o datos recopilados 140, 190, descargar datos de aplicaciones 185 y/o mostrar datos de procesamiento 175. Por lo tanto, en ciertas formas de realización, la entidad informática 400 se puede configurar para recibir datos y/o transmitir/enviar datos a una o más fuentes de datos y/o dispositivos de usuario 125, 170, así como para recibir datos de y/o transmitir/enviar datos a un sistema, tal como el sistema de atomizador inteligente 180.
Dependiendo de la forma de realización, las redes usadas para comunicación pueden incluir, entre otras, cualesquiera o una combinación de diferentes tipos de redes de comunicaciones apropiadas tales como, por ejemplo, redes de cable, redes públicas (por ejemplo, Internet), redes privadas (por ejemplo, redes de retransmisión o redes frame-relay, redes inalámbricas, redes celulares, redes telefónicas (por ejemplo, una red telefónica pública conmutada) o cualquier otra red privada y/o pública apropiada. Además, las redes pueden tener cualquier intervalo de comunicación apropiado asociado con ellas y pueden incluir, por ejemplo, redes globales (por ejemplo, Internet), MAN, WAN, LAN o PAN. Además, las redes pueden incluir cualquier tipo de medio a través del cual se puede transportar el tráfico de red, incluidos, entre otros, cable coaxial, cable de par trenzado, fibra óptica, un medio híbrido de fibra coaxial (HFC), transceptores de microondas terrestres, medios de comunicación por radiofrecuencia, medios de comunicación por satélite o cualquier combinación de los mismos, también como una variedad de dispositivos de red y plataformas informática proporcionadas por proveedores de red u otras entidades.
En consecuencia, la comunicación se puede efectuar usando un protocolo de transmisión de datos por cable, tal como una interfaz de datos distribuidos por fibra (FDDI), línea de suscriptor digital (DSL), Ethernet, modo de transferencia asíncrona (ATM), frame-relay, especificación de interfaz de servicio de datos por cable (DOCSIS) o cualquier otro protocolo de transmisión por cable. De manera similar, la entidad informática 400 se puede configurar para comunicarse por medio de redes de comunicación externas inalámbricas usando cualquiera de una variedad de protocolos, tal como el servicio general de radio por paquetes (GPRS), Sistema Universal de Telecomunicaciones Móviles (UMTS), Acceso Múltiple por División de Código 2000 (CDMA2000), CDMA2000 IX (lxRTT), Acceso Múltiple por División de Código de Banda Ancha (WCDMA), Sistema Global para Comunicaciones Móviles (GSM), Velocidades de Datos Mejoradas para la Evolución del GSM (EDGE), Acceso Múltiple por División de Código Síncrono por División de Tiempo (TD-SCDMA), Evolución a Largo Plazo (del inglés,Long Term Evolution(LTE)), Red de Acceso por Radio Terrestre Universal Evolucionado (del inglés,Evolved Universal Terrestrial Radio Access Network(E-UTRAN)),Evolution-DataOptimized(EVDO), Acceso por Paquetes de Alta Velocidad (HSPA), Acceso por Paquetes de Enlace Descendente de Alta Velocidad (HSDPA), IEEE 802.11 (Wi-Fi), Wi-Fi Direct, 802.16 (WiMAX), protocolos de banda ultraancha (UWB), infrarrojos (IR), protocolos de comunicación de campo cercano (NFC), Wibree, protocolos Bluetooth, protocolos de bus serie universal inalámbrico (USB) y/o cualquier otro protocolo inalámbrico. La entidad informática analítica 65 puede usar dichos protocolos y estándares para comunicarse usando el Protocolo de Puerta de Enlace Fronteriza (BGP), Protocolo de Configuración Dinámica de Host (DHCP), Sistema de Nombres de Dominio (DNS), Protocolo de Transferencia de Archivos (FTP), Protocolo de Transferencia de Hipertexto (HTTP), HTTP sobre TLS/SSL/Secure, Protocolo de Acceso a Mensajes de Internet (IMAP), Protocolo de Tiempo de Red (NTP), Protocolo Simple de Transferencia de Correo (SMTP), Telnet, Seguridad de Capa de Transporte (TLS), Capa de Sockets Seguros (SSL), Protocolo de Internet (IP), Protocolo de Control de Transmisión (TCP), Protocolo de Datagramas de Usuario (UDP), Protocolo de Control de Congestión de Datagramas (DCCP), Protocolo de Transmisión de Control de Flujo (SCTP), Lenguaje de Marcado de Hipertexto (HTML) y/o similares.
Además, en varias formas de realización, la entidad informática 400 incluye o está en comunicación con uno o más elementos de procesamiento 410 (también denominados procesadores, circuitos de procesamiento y/o términos semejantes usados en la presente memoria de manera intercambiable) que se comunican con otros elementos dentro de la entidad informática 400 por medio de un bus 430, por ejemplo, o conexión de red. Como se comprenderá, el elemento de procesamiento 410 se puede implementar de varias maneras diferentes. Por ejemplo, el elemento de procesamiento 410 se puede implementar como uno o más dispositivos lógicos programables (CPLD) complejos, microprocesadores, procesadores multinúcleo, entidades de coprocesamiento, procesadores de conjuntos de instrucciones específicas de aplicación (ASIP) y/o controladores. Además, el elemento de procesamiento 410 se puede implementar como uno o más dispositivos o circuitos de procesamiento. El término circuitos o circuitería se puede referir a una forma de realización completamente de hardware o una combinación de productos de hardware y programas de computadora. Por lo tanto, el elemento de procesamiento 410 se puede implementar como circuitos integrados, circuitos integrados específicos de aplicación (ASIC), matrices de puertas programables en campo (FPGA), matrices lógicas programables (PLA), aceleradores de hardware, otros circuitos y/o similares. Por lo tanto, como se entenderá, el elemento de procesamiento 410 se puede configurar para un uso particular o configurarse para ejecutar instrucciones almacenadas en medios volátiles o no volátiles o accesibles de otra manera al elemento de procesamiento 410. Como tal, ya sea que esté configurado por hardware, productos de programas de computadora o una combinación de los mismos, el elemento de procesamiento 410 puede ser capaz de efectuar pasos u operaciones de acuerdo con formas de realización de la presente divulgación cuando se configura en consecuencia.
En varias formas de realización, la entidad informática 400 puede incluir o estar en comunicación con medios no volátiles (también denominados almacenamiento no volátil, memoria, almacenamiento de memoria, circuitos de memoria y/o términos semejantes usados en la presente memoria de manera intercambiable). Por ejemplo, el almacenamiento o memoria no volátil puede incluir uno o más medios de memoria o almacenamiento no volátil 420, tales como discos duros, ROM, PROM, EPROM, EEPROM, memoria flash, MMC, tarjetas de memoria SD, tarjetas Memory Stick, CBRAM, PRAM, FeRAM, RRAM, SONOS, memoria de carreras y/o similares. Como se reconocerá, el medio de memoria o almacenamiento no volátil 420 puede almacenar archivos, bases de datos, instancias de bases de datos, entidades de sistema de gestión de bases de datos, imágenes, datos, aplicaciones, programas, módulos de programa, guiones o secuencias de comandos, código fuente, código de objeto, código de bytes, código compilado, código interpretado, código de máquina, instrucciones ejecutables y/o similares. El término base de datos, instancia de base de datos, entidad de sistema de gestión de base de datos y/o términos semejantes usados en la presente memoria de manera intercambiable y en un sentido general para referirse a una colección estructurada o no estructurada de información/datos que se almacenan en un medio de almacenamiento legible por computadora.
En formas de realización particulares, los medios de memoria 420 también se pueden implementar como un dispositivo o dispositivos de almacenamiento de datos, como un servidor o servidores de bases de datos separados o independientes o como una combinación de dispositivos de almacenamiento de datos y servidores de bases de datos separados o independientes. Además, en algunas formas de realización, los medios de memoria 420 se pueden implementar como un depósito distribuido, de tal manera que parte de la información/datos almacenados se almacene centralmente en una ubicación dentro del sistema y otra información/datos se almacene en una o más ubicaciones remotas. Alternativamente, en algunas formas de realización, el depósito distribuido se puede distribuir entre una pluralidad de ubicaciones de almacenamiento remotas únicamente. Como ya se discutió, varias formas de realización contempladas en la presente memoria incluyen el almacenamiento de datos en la nube en el cual se puede almacenar parte o toda la información/datos requeridos para la operación del proceso de detección de objetos en datos de imágenes 140 y/o los datos de procesamiento resultantes 175.
En varias formas de realización, la entidad informática 400 puede además incluir o estar en comunicación con medios volátiles (también denominados almacenamiento volátil, memoria, almacenamiento de memoria, circuitos de memoria y/o términos semejantes usados en la presente de manera intercambiable). Por ejemplo, la memoria o almacenamiento volátil también puede incluir uno o más medios de memoria o almacenamiento volátil 415 como se describe anteriormente, tales como RAM, DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, RDRAM, RIMM, DIMM, SIMM, VRAM, memoria caché, memoria de registro y/o similares. Como se reconocerá, el medio de memoria o almacenamiento volátil 415 se puede usar para almacenar por lo menos porciones de las bases de datos, instancias de bases de datos, entidades del sistema de gestión de bases de datos, datos, imágenes, aplicaciones, programas, módulos de programa, guiones o secuencias de comandos (del inglés,script),código fuente, código de objeto, código de bytes, código compilado, código interpretado, código de máquina, instrucciones ejecutables y/o similares que son ejecutados mediante, por ejemplo, el elemento de procesamiento 410. Por lo tanto, las bases de datos, instancias de bases de datos, entidades del sistema de gestión de bases de datos, datos, imágenes, aplicaciones, programas, módulos de programa, guiones o secuencias de comandos, código fuente, código de objeto, código de bytes, código compilado, código interpretado, código de máquina, instrucciones ejecutables y/o similares se pueden usar para controlar ciertos aspectos de la operación de la entidad informática 400 con la asistencia del elemento de procesamiento 410 y sistema operativo.
Como se apreciará, uno o más de los componentes de entidad informática pueden ser ubicados de manera remota con respecto a otros componentes de entidad informática, tal como en un sistema distribuido. Además, uno o más de los componentes se pueden agregar y componentes adicionales que efectúan las funciones descritas en la presente memoria se pueden incluir en la entidad informática 400. Por lo tanto, la entidad informática 400 se puede adaptar para acomodar una variedad de necesidades y circunstancias.
II. Operación Del Sistema Ejemplificativa
Las operaciones lógicas descritas en la presente memoria se pueden implementar (1) como una secuencia de actos implementados por computadora o uno o más módulos de programa que se ejecutan en un sistema informática y/o (2) como circuitos lógicos de máquina interconectados o módulos de circuito dentro del sistema informática. La implementación es una cuestión de elección que depende del rendimiento y otros requisitos del sistema informática. En consecuencia, las operaciones lógicas descritas en la presente memoria se denominan de varias maneras como estados, operaciones, dispositivos estructurales, actos o módulos. Estas operaciones, dispositivos estructurales, actos y módulos se pueden implementar en software, en firmware, en lógica digital de propósito especial y cualquier combinación de los mismos. Se pueden efectuar más o menos operaciones que las mostradas en las figuras y descritas en la presente. Estas operaciones también se pueden efectuar en un orden diferente al descrito en la presente memoria.
a. Módulo de Procesamiento de Datos de Imágenes
Volviendo ahora a la figura 5, se proporcionan detalles adicionales con respecto a un flujo de proceso para procesar datos de imágenes 140 cargados en un entorno de nube 150 de acuerdo con varias formas de realización. Por motivos de simplicidad, la descripción se centrará en el procesamiento de datos de imágenes 140 tomadas para una aplicación de agricultura de precisión, tal como producción de cultivos (por ejemplo, frutas). Sin embargo, los expertos en la materia deben entender que el proceso también puede ser apropiado para uso en otros tipos de aplicaciones en las cuales se desee la detección de objetos en imágenes recopiladas para áreas de interés. En este caso, la figura 5 es un diagrama de flujo que muestra un módulo de procesamiento de datos de imágenes para efectuar dicha funcionalidad de acuerdo con varias formas de realización de la divulgación. Por ejemplo, el diagrama de flujo que se muestra en la figura 5 puede corresponder a operaciones llevadas a cabo por un elemento de procesamiento 410 en una entidad informática 400, tal como un servidor de aplicaciones 160 alojado en el entorno de nube 150 descrito en la figura 1, como lo ejecuta el módulo de procesamiento de datos de imagen almacenado en la memoria volátil y/o no volátil del dispositivo informática.
El flujo de proceso 500 comienza cuando el módulo de procesamiento de datos de imágenes accede a los datos de imágenes 140 en la Operación 510. En este caso, dependiendo de la forma de realización, el módulo de procesamiento de datos de imágenes puede acceder a los datos de imágenes 140 desde algún tipo de almacenamiento 165 que se encuentra dentro o fuera del entorno de nube 150. Mientras que, en otros casos, el módulo de procesamiento de datos de imágenes puede recibir los datos de imágenes 140 directamente como resultado de que un usuario que cargue los datos 140 al entorno de nube 150. En general, los datos de imágenes 140 se componen de imágenes sin procesar adquiridas de un área de interés. Por ejemplo, se puede usar una plataforma de detección 115 para recopilar los datos de imágenes 140 de un huerto usando uno o más UAV (o dispositivos similares de captura de imágenes 120). Una vez recopiladas, un usuario puede cargar las imágenes sin procesar directamente al entorno de nube 150 para procesarlas y generar uno o más mapas de imagen (por ejemplo, uno o más mapas de ortomosaicos).
En consecuencia, en varias formas de realización, el módulo de procesamiento de datos de imágenes procesa los datos de imágenes 140 para generar los mapas de imagen en la Operación 515. Por ejemplo, en formas de realización particulares, el módulo de procesamiento de datos de imágenes puede hacer uso de un motor de unión para generar uno o más mapas de imágenes al unir las imágenes sin procesar que se encuentran en los datos de imágenes 140. Por ejemplo, el módulo de procesamiento de datos de imágenes puede hacer uso de Pix4Dmapper, un motor de unión configurado para unir y corregir geométricamente las imágenes sin procesar recopiladas en uno o más mapas ortomosaicos que representan exactamente el área de interés 130. Mientras que, en otros casos, el módulo de procesamiento de datos de imágenes usa el conjunto de herramientas de código abierto OpenDroneMap (ODM). En este caso, ODM soporta imágenes JPEG sin procesar como entrada y genera una imagen ortorrectificada junto con un archivo de DSM. Por consiguiente, en formas de realización particulares, el archivo de DSM puede contener la información de altura del área de interés de la que se tomaron imágenes.
Por ejemplo, el motor de unión se puede configurar para unir las imágenes sin procesar al generar un mapa para cada banda (azul, verde, rojo e infrarrojo cercano) y combinar los mapas de bandas en uno o más mapas de imagen, tal como un mapa RGB, un Mapa RNB y/o similares. Como se menciona anteriormente, el mapa RNB puede usar el canal de infrarrojo cercano como la representación del canal verde. Como resultado, el mapa RNB en algunas formas de realización puede mostrar un mejor contrato visual entre los objetos (por ejemplo, árboles) y los alrededores y puede proporcionar una mejor tasa de detección que un mapa RGB.
Una vez que el módulo de procesamiento de datos de imágenes ha producido uno o más mapas de imagen a partir de los datos de imágenes 140, el módulo guarda el mapa o mapas de imagen (y archivo o archivos de DSM) en la Operación 520. En este caso, en formas de realización particulares, el módulo de procesamiento de datos de imágenes guarda el mapa o mapas de imagen en algún tipo de almacenamiento de datos no volátil 165 que se encuentra dentro del entorno de nube 150 o accesible por el entorno de nube 150. Dicha configuración permite que el mapa o mapas de imagen estén disponibles para múltiples usuarios a través del entorno de nube 150. Además, el uso del entorno de nube 150 permite la escalabilidad y flexibilidad al ajustar la disponibilidad de almacenamiento 165 para acomodar al almacenamiento del mapa o mapas de imagen y los datos de imágenes sin procesar 140.
En este punto, el mapa o mapas de imagen (y archivo o archivos de DSM) ya están disponibles para análisis. En consecuencia, como se discute adicionalmente en la presente memoria, varios usuarios pueden acceder al mapa o mapas de imagen a través del entorno de nube 150 para efectuar un análisis en el mapa o mapas para identificar objetos que se encuentran dentro del mapa o mapas, así como a parámetros de los objetos.
Finalmente, se observa que, en casos particulares, un usuario puede optar por procesar los datos de imágenes sin procesar 140 para generar uno o más mapas de imagen (mapas ortomosaicos) antes de cargarlos en el entorno de nube 150. Por lo tanto, en estos casos, los mapas de imagen se pueden guardar directamente para que sean accesibles a través del entorno de nube 150 sin usar primero el módulo de procesamiento de datos de imágenes para procesar los datos de imágenes sin procesar 140.
b. Módulo de Procesamiento de Mapas de imagen
Volviendo ahora a la figura 6, se proporcionan detalles adicionales con respecto al flujo de proceso para procesar y analizar uno o más mapas de imagen (y archivo o archivos de DSM) para fines de detección de objetos en un entorno de nube 150 de acuerdo con varias formas de realización. Una vez más, la descripción se centrará en el procesamiento y análisis de mapas de imagen generados para una aplicación de agricultura de precisión, tal como producción de cultivos. En particular, la figura 6 es un diagrama de flujo que muestra un módulo de procesamiento de mapas de imagen para llevar a cabo tal funcionalidad de acuerdo con varias formas de realización de la divulgación. Por ejemplo, el diagrama de flujo que se muestra en la figura 6 puede corresponder a operaciones llevadas a cabo por un elemento de procesamiento 410 en una entidad informática 400, tal como el servidor de aplicaciones 160 alojado en el entorno de nube 150 descrito en la figura 1, como lo ejecuta el módulo de procesamiento de mapa de imagen almacenado en la memoria volátil y/o no volátil del dispositivo informática.
El flujo de proceso 600 comienza cuando el módulo de procesamiento de mapa de imagen recibe entradas de un usuario en la Operación 610. En formas de realización particulares, un usuario puede acceder a uno o más mapas de imagen generados de datos de imágenes sin procesar 140 recopilados para un área de interés 130 a través del entorno de nube 150 al visitar un sitio web disponible por el entorno de nube 150. En este caso, el usuario puede estar interesado en analizar el mapa o mapas para identificar uno o más objetos encontrados en los mapas y parámetros relacionados con los objetos. Por ejemplo, el mapa o mapas de imagen pueden ser de un huerto, en el cual el usuario está interesado en identificar el número de manzanos que se encuentran en una región particular del bosque y la altura de cada árbol que se encuentra en la región. En consecuencia, el sitio web proporciona al usuario una interfaz 315 que le permite introducir una o más entradas.
En varias formas de realización, la entrada o entradas incluyen una región para analizar (por ejemplo, una región de interés) y, opcionalmente, la separación entre objetos. Por ejemplo, volviendo al ejemplo, la región que se va a analizar puede representar un área en el mapa o mapas de imagen en donde el usuario está interesado en ejecutar el algoritmo o algoritmos de detección de objetos (por ejemplo, árboles) (también conocidos como límites de campo) para identificar árboles. Mientras que la separación entre objetos o espaciado de objetos puede representar el espacio (por ejemplo, espacio promedio) entre árboles en la misma fila en metros o pies. En este caso, en formas de realización particulares, la interfaz de usuario 315 también puede proporcionar al usuario una herramienta que le permite seleccionar áreas en blanco dentro de la región para que el algoritmo o algoritmos salten/ignoren, tales como lagos o edificios.
En este punto, el módulo de procesamiento de mapas de imagen efectúa un procesamiento previo o preprocesamiento en el mapa o mapas de imagen en la Operación 615 para varias formas de realización. Por ejemplo, en formas de realización particulares, el módulo de procesamiento de mapas de imagen puede efectuar una calibración de color basada por lo menos en parte en los niveles promedio de RGB de la imagen original con fines de normalización para reducir variaciones que pueden resultar del uso de diferentes cámaras para capturar los datos de imagen 140, ya que diferentes cámaras pueden tener su propia calibración de color, exposición y saturación. En este caso, el procesamiento previo o preprocesamiento puede ayudar a aumentar la eficacia del algoritmo o algoritmos de detección de objetos.
Una vez que se completa el procesamiento previo, el módulo de procesamiento de mapas de imagen ejecuta uno o más algoritmos de detección de objetos en el mapa o mapas de imagen para identificar el número de objetos junto con parámetros interesados para los objetos en la Operación 620. Por ejemplo, volviendo al ejemplo que involucra la arboleda, el módulo de procesamiento de mapas de imagen puede ejecutar inicialmente un primer algoritmo de detección de objetos en el mapa o mapas de imagen para identificar un número inicial de árboles (por ejemplo, ubicaciones iniciales de árboles) que se encuentran en la región. En consecuencia, el módulo de procesamiento de mapas de imagen puede entonces analizar patrones de orientación de hileras de campo para estimar las distancias entre los árboles e hileras.
Por ejemplo, en formas de realización particulares, el módulo de procesamiento de mapas de imagen está configurado para reconocer uno o más patrones de árbol, tal como una orientación u orientaciones de filas, al efectuar operaciones de matriz para analizar y comparar el patrón o patrones de árboles (por ejemplo, fila o filas) y estimar distancias entre árboles y/o distancias entre el patrón o patrones (por ejemplo, espacio entre árboles). Después de reconocer la fila o filas de árboles, el módulo de procesamiento de mapas de imagen puede detectar (por ejemplo, predecir) árboles falsos positivos encontrados en la región al reconocer árboles detectados que no siguen una fila de árboles y/o están ubicados entre filas y pueden descartar/eliminar tales árboles de falsos positivos. En este punto, en algunas formas de realización, el módulo de procesamiento de mapa de imagen detecta (por ejemplo, predice) espacios entre árboles en la fila o filas de árboles al analizar la distancia entre árboles detectados en una fila de árboles y comparándola con el espacio/distancia promedio entre árboles (por ejemplo, espaciado de objetos). En consecuencia, las separaciones detectadas pueden ser separaciones positivas verdaderas, lo que significa que no hay un árbol presente en la ubicación o una separación positiva falsa, lo que significa que hay un árbol presente en la ubicación y no fue detectado.
Con la información de cada fila, el módulo de procesamiento de mapa de imagen puede ejecutar un segundo algoritmo de detección de objetos a lo largo de cada fila para una detección más precisa. En este caso, en formas de realización particulares, el primer algoritmo de detección de objetos puede hacer suposiciones de ubicaciones de árboles probables y el módulo de procesamiento de mapas de imagen puede usar esta información para ejecutar el segundo algoritmo de detección de objetos basado, por lo menos en parte, en las ubicaciones detectadas previamente (posiciones).
Como se indica anteriormente, en varias formas de realización, el algoritmo o algoritmos de detección de objetos pueden usar inteligencia artificial para mejorar la exactitud de detección. Por ejemplo, en formas de realización particulares, uno o más algoritmos de detección de objetos pueden ser uno o más modelos de aprendizaje automático. Por ejemplo, uno o más algoritmos de detección de objetos pueden ser redes neuronales convolucionales (CNN). Las redes neuronales se han usado en muchos casos relacionados con el reconocimiento de objetos en imágenes en lugar de procedimientos convencionales, debido a que los procedimientos convencionales en general hacen ciertas suposiciones acerca de las circunstancias bajo las cuales se tomó una imagen que rara vez se mantienen en entornos del mundo real. La mayoría de los procedimientos convencionales siguen el paradigma de reconocimiento de patrones que consiste en dos pasos en los cuales el primer paso calcula funciones complejas hechas a mano a partir de una imagen sin procesar y el segundo paso aprende clasificadores en base, por lo menos en parte, en las características obtenidas. Sin embargo, rara vez, se conoce en escenarios del mundo real qué características son importantes para la tarea en cuestión, ya que la elección de característica depende mucho del problema.
Sin embargo, los modelos de aprendizaje profundo (del inglés,Deep Learning),tales como redes neuronales, son una clase de máquinas que pueden aprender una jerarquía de características al integrar características de alto nivel a partir de las de bajo nivel, automatizando, de este modo, el proceso de construcción de características. Una red neuronal artificial es un algoritmo de aprendizaje inspirado por aspectos estructurales y funcionales de redes neuronales biológicas. Los cálculos son estructurados en términos de un grupo interconectado de neuronas artificiales, que procesan información usando un procedimiento conexionista informática. Las redes neuronales artificiales se usan típicamente para modelar relaciones complejas entre entradas y salidas para encontrar patrones en los datos o capturar una estructura estadística en una distribución de probabilidad conjunta desconocida entre variables observadas.
Las CNN tradicionales son un tipo de modelo de aprendizaje profundo, en el cual se aplican unos filtros entrenables y unas operaciones de agrupación de vecindarios locales alternativamente en imágenes de entrada sin procesar, dando como resultado una jerarquía de características cada vez más complejas. Las CNN pueden obtener un rendimiento superior en tareas de reconocimiento de objetos visuales sin depender de funciones artesanales. Por lo tanto, estos tipos de redes neuronales se usan en varias formas de realización debido a que han demostrado ser muy eficaces en el reconocimiento y clasificación de objetos visuales.
Las CNN se componen en general de cuatro operaciones principales (capas), siendo la primera una convolución. El propósito principal de convolución es extraer características de una imagen de entrada. En consecuencia, la convolución preserva la relación espacial entre píxeles al aprender características de imagen usando pequeños cuadrados de datos de entrada.
Un filtro (núcleo o detector de características) se desliza típicamente sobre una imagen por tantos píxeles a la vez (paso) y para cada posición, se calcula una multiplicación por elemento. A continuación, las salidas o resultados de multiplicación se suman para obtener un valor final (por ejemplo, número entero) que forma un solo elemento de la matriz de salida (activación o mapa de características). Diferentes filtros producen diferentes mapas de características para la misma imagen de entrada. Esto es, diferentes filtros detectan diferentes características de una imagen. En la práctica, una CNN aprende los valores de estos filtros por sí misma durante el proceso de entrenamiento. Por lo tanto, cuanto mayor sea el número de filtros que se usan, más características de imagen se extraen y mejor se vuelve la CNN para reconocer patrones en imágenes no vistas.
El tamaño del mapa de características es controlado por tres parámetros que se establecen antes de que se lleve a cabo la convolución. El primer parámetro es profundidad, que corresponde al número de filtros usados para la operación de convolución. Si se usan tres filtros diferentes, entonces la profundidad del mapa de características es tres (los tres mapas de características son matrices 2D apiladas). El segundo parámetro es un paso que identifica el número de píxeles por los cuales se desliza la matriz de filtro sobre la matriz de entrada. Un paso de uno significa que el filtro se mueve un píxel a la vez. Cuanto mayor sea el paso, más pequeños serán los mapas de características producidos. El tercer y último parámetro es el relleno de ceros (del inglés,zero-padding)que identifica si la matriz de imagen de entrada se rellena con ceros alrededor del borde. Se agrega relleno cero para que el filtro se pueda aplicar a los elementos que bordean la matriz de imagen de entrada. En consecuencia, el relleno cero permite controlar el tamaño de los mapas de características.
El tamaño de un mapa de características producido a partir de una convolución se puede determinar como ((tamaño de volumen de entrada - tamaño del filtro 2*relleno aplicado)/número de pasos) 1. Por lo tanto, si la imagen de entrada es 32 x 32 x 3 y se van a aplicar diez filtros, usando un solo paso y sin relleno, entonces el tamaño del mapa de características = ((32 - 3 2*0)/l) 1 = 30. Por lo tanto, haciendo que el mapa de características sea igual a 30, 30, 10.
La segunda operación en una CNN es típicamente una capa de unidad lineal rectificada (ReLU) que se puede usar después de cada operación de convolución. Esta operación reemplaza todos los valores de píxeles negativos en el mapa de características por cero. El propósito de ReLU es introducir no linealidad en la CNN, ya que la mayoría de los datos del mundo real que uno quisiera que la CNN aprendiera no son lineales. Debido a que la convolución es una operación lineal, la no linealidad se puede explicar mediante la introducción de una función no lineal tal como ReLU. El mapa de características de salida de esta operación se puede denominar mapa de características rectificado.
Una tercera operación en una CNN suele ser la agrupación espacial (submuestreo o reducción de muestreo). La agrupación espacial reduce la dimensionalidad de cada mapa de características, pero conserva la información más importante. Esto es, la función de la agrupación es reducir progresivamente el tamaño espacial de la representación de entrada. Dependiendo de la forma de realización, se pueden aplicar diferentes tipos de agrupación (del inglés,pooling),tal como máximo, promedio y suma. Por ejemplo, en agrupación máxima, se define una vecindad espacial (por ejemplo, una ventana de 2 x 2 ) y se toma el elemento más grande del mapa de características rectificado dentro de la ventana. La ventana se desliza sobre el mapa de características rectificado y se toma el valor máximo para cada deslizamiento (cada región). En consecuencia, en otros ejemplos, el promedio o suma de todos los elementos de ventana se podría tomar en lugar de esto.
Como resultado de la agrupación, las representaciones de entrada se hacen más pequeñas y manejables. El número de parámetros y cálculos se reducen en la CNN, controlando, de esta manera, el sobreajuste. La CNN se hace invariable a pequeñas transformaciones, distorsiones y traslaciones en la imagen de entrada. Esto es, una distorsión menor en la entrada no cambiará la salida de la agrupación ya que el valor máximo/promedio se toma en un vecindario local. Finalmente, la agrupación ayuda a llegar a una representación de imagen casi invariable en escala (el término exacto es “equivariante”). Esto es muy poderoso, ya que los objetos se pueden detectar en una imagen sin importar dónde se encuentren. Nótese que no es necesario tener una capa de agrupación después de cada capa convolucional en una arquitectura de CNN.
La cuarta y última operación en una CNN suele ser clasificación. La operación de clasificación representa una capa completamente conectada que es una percepción multicapa tradicional que usa una función de activación tal comosoftmax,por ejemplo, en la capa de salida (aunque se pueden usar otros clasificadores tal como SVM). En este caso, el término “completamente conectada” implica que cada neurona en la capa anterior es conectada a cada neurona en la siguiente capa. En consecuencia, la salida de las capas convolucional y de agrupación representa características de alto nivel de la imagen de entrada. El propósito de la capa completamente conectada es usar estas características para clasificar la imagen de entrada en varias clases, en base, por lo menos en parte, en un conjunto de datos de entrenamiento. La suma de probabilidades de salida de la capa completamente conectada es uno cuando se usa softmax como función de activación en la capa de salida. La función softmax toma un vector de puntajes arbitrarios de valor real y lo reduce a un vector de valores entre cero y uno que suma uno. Por lo tanto, las capas de convolución y agrupación actúan como extractores de características de la imagen de entrada y la capa completamente conectada actúa como clasificador.
Para entrenar una CNN tradicional usando un conjunto de datos de entrenamiento, todos los filtros y pesos de parámetros en general se inicializan con valores aleatorios. Luego se provee una imagen de entrenamiento como entrada a la CNN y la red pasa a través del paso de propagación directa y encuentra las probabilidades de salida para cada clase. Se calcula el error total en la capa de salida (por ejemplo, error total = suma de 0.5*(probabilidad objetivo -probabilidad de salida)A2) y se usa retropropagación para calcular los gradientes del error con respecto a todos los pesos en la CNN. El descenso de gradiente se puede usar para actualizar todos los pesos de filtros y parámetros para minimizar el error de salida. Los pesos se ajustan en proporción a su contribución al error total. Normalmente, parámetros tales como el número de filtros, tamaños de filtros, la arquitectura de la red, etc., se fijan antes de entrenar la CNN y no cambian durante el proceso de entrenamiento. Solo se actualizan los valores de la matriz de filtro y pesos de conexión.
Dado que se requiere identificar múltiples objetos (por ejemplo, árboles) en muchos casos dentro de una región de un mapa de imagen, se usan modelos de aprendizaje automático, tales como CNN a base de región (R-CNN) en varias formas de realización como un primer algoritmo de reconocimiento de objetos aplicado a la región. Por ejemplo, en algunas formas de realización, el primer algoritmo de reconocimiento de objetos se puede configurar como una R-CNN basada, por lo menos en parte, en el marco ResNetlOl. Las R-CNN primero seleccionan varias áreas propuestas de una imagen y luego, etiquetan sus categorías y cuadros delimitadores (del inglés,bounding box?).En este caso, se desarrolla un cuadro delimitador para cada objeto en la región de la imagen. A continuación, se usa una CNN para efectuar un cálculo directo para extraer características de cada área propuesta. Posteriormente, las características de cada área propuesta se usan para predecir sus categorías y cuadros delimitadores.
En general, las R-CNN pueden estar compuestas de cuatro partes. La primera parte consiste en efectuar una búsqueda selectiva en la región del mapa de imagen para seleccionar múltiples áreas propuestas. Estas áreas propuestas en general se seleccionan en múltiples escalas y tienen diferentes formas y tamaños. La categoría y el cuadro delimitador de verdad de campo de cada área propuesta son etiquetados. La segunda parte consiste en colocar una CNN previamente entrenada, en forma truncada, antes de la capa de salida. Esto transforma cada área propuesta en las dimensiones de entrada requeridas por la red y usa cálculo directo para emitir las características extraídas del área propuesta. La tercera parte consiste en combinar las características y categoría etiquetada de cada área propuesta como ejemplo para entrenar múltiples clasificadores tales como, por ejemplo, máquinas de vectores de soporte para clasificación de objetos. En este caso, cada máquina de vectores de soporte se usa para determinar si un ejemplo pertenece a una categoría específica. Finalmente, la cuarta parte combina las características y cuadro delimitador etiquetado para cada área propuesta como ejemplo para entrenar un modelo de regresión lineal para predicción de cuadro delimitador de verdad del terreno.
Aunque los modelos de R-CNN pueden usar efectivamente CNN preentrenadas para extraer de manera efectiva características de imagen para cada cuadro delimitador, un inconveniente que se encuentra a menudo es la lentitud. Típicamente, esto es el resultado de seleccionar un gran número de áreas propuestas de una sola imagen, lo que requiere miles de cálculos de reenvío de la CNN, y da como resultado una carga informática masiva para efectuar detección de objetos. Sin embargo, debido a que la arquitectura de sistema empleada en varias formas de realización de la divulgación implica el uso de un entorno de nube 150, dicha configuración permite que el cálculo se efectúe en una configuración dinámica que se puede ajustar como sea necesario para acomodar recursos adicionales necesarios. Por lo tanto, efectuar la funcionalidad (operaciones) del módulo de procesamiento de mapas de imagen en un entorno de nube 150 en varias formas de realización de la descripción ayuda a facilitar el uso de R-CNN y da como resultado una mejor exactitud en detección de objeciones en muchos casos.
Finalmente, se puede usar una R-CNN más rápida en formas de realización particulares para abordar todavía más el principal cuello de botella de rendimiento de un modelo R-CNN de características de extracción independientes para cada área propuesta. Ya que estas áreas pueden tener un alto grado de superposición, la extracción de características independientes puede generar un gran volumen de cálculos repetitivos. Por lo tanto, Faster R-CNN puede mejorar la R-CNN al efectuar solo el cálculo de avance de CNN en la región deseada del mapa de imagen como un todo. En comparación con un modelo de R-CNN, un modelo Faster RCNN usa la imagen completa como entrada de CNN para extracción de características, en lugar de cada área propuesta.
En cuanto al segundo algoritmo de reconocimiento de objetos, varias formas de realización hacen uso de un modelo de aprendizaje profundo, tal como YOLO ("tu solo miras una vez” del inglés,You Only Look Once)CNN. Por ejemplo, en formas de realización particulares, el segundo algoritmo de reconocimiento de objetos puede ser una CNN, tal como una red Darknetl9 entrenada usando el marco YOLOv4. En este caso, el modelo aplica una sola red neuronal a toda la región del mapa de imagen y a continuación, divide el mapa en secciones y predice cuadros delimitadores y probabilidades para cada sección. Las probabilidades predichas pesan estos cuadros delimitadores. Por lo tanto, el modelo "solo mira una vez” en la región del mapa de imagen en el sentido de que solo requiere un paso de propagación hacia adelante a través de la red neuronal para hacer predicciones. Después de la supresión no máxima (que se asegura que el algoritmo de detección de objetos solo detecte cada objeto una vez), emite luego objetos reconocidos junto con los cuadros delimitadores.
Finalmente, el módulo de procesamiento de mapas de imagen puede generar diferentes datos de procesamiento 175 como salida en la Operación 625 dependiendo de la forma de realización. Por ejemplo, volviendo al ejemplo de la agricultura de precisión, junto con la detección de árboles, el módulo de procesamiento de mapas de imagen puede emitir separaciones de árboles individuales en uno o más mapas de imagen, área y/o altura de árboles individuales, estimaciones del área de copa de los árboles y/o similares para árboles individuales. El módulo de procesamiento de mapas de imagen puede además generar y emitir estimaciones de edades de árboles, estimaciones de salud de árboles, estimaciones de concentración de nutrientes de árboles y/o similares.
Por ejemplo, en formas de realización particulares, el módulo de procesamiento de mapas de imagen puede generar un área/tamaño de copa de árbol para un árbol detectado, sobre la base por lo menos en parte de un índice de vegetación de diferencia normalizada (NDVI). En este caso, se puede calcular un NDVI promedio para una región seleccionada y el módulo de procesamiento de mapas de imagen puede comparar el NDVI de píxeles individuales con el promedio para clasificar los píxeles en "suelo” o "copa de árbol”. En algunos casos, se puede aplicar un umbral empírico para clasificar un píxel como "suelo” o "copa de árbol”. Por ejemplo, el módulo de procesamiento de mapas de imagen se puede configurar para clasificar un píxel como "copa de árbol” si el valor de NDVI del píxel es mayor que el valor promedio de NDVI multiplicado por el umbral empírico (por ejemplo, 0.85).
Como otro ejemplo, en formas de realización particulares, el módulo de procesamiento de mapas de imagen puede generar una altura de árbol o una estimación de altura de árbol, para un árbol detectado. El módulo de procesamiento de mapas de imagen puede efectuar algoritmos de filtro en mapas de imagen (y/o archivos de DSM) para generar valores de altura de árbol para varios árboles detectados. En varias formas de realización, un mapa de imagen es una imagen binaria (blanco/negro) del área de interés y la "blancura” o valor de cada píxel de la imagen binaria corresponde a una altura o elevación de un punto o un área correspondiente al píxel. Los píxeles clasificados como "suelo” o de otra manera, píxeles que no se identifican como árboles, se filtran para determinar una curva superficial del suelo, debido a que se entiende que el suelo puede no estar perfectamente nivelado (por ejemplo, uniformemente elevado). Asimismo, los píxeles clasificados como "copa de árboles” pueden tener una distribución de valores correspondiente a una distribución de alturas o elevaciones. A continuación, en varias formas de realización, se puede generar un valor de altura de árbol para un árbol detectado en base por lo menos en parte a valores de píxeles clasificados como "copa de árbol” y valores de píxeles clasificados como "suelo”. Específicamente, se puede generar un valor de altura de árbol en base, por lo menos en parte, en una diferencia entre el 20% superior de valores de píxeles de "copa de árboles” y valores de píxeles de "suelo” en un área cercana al árbol (por ejemplo, determinada por medio de la curva de superficie del suelo).
El módulo de procesamiento de mapas de imagen también puede generar un valor de salud del árbol para un árbol detectado. NDVI se puede usar nuevamente en este caso para identificar píxeles importantes de "copa de árboles”. Por ejemplo, NDVI se puede usar para identificar píxeles de "copa de árboles” con valores más altos y filtrar píxeles de "copa de árboles” con valores más bajos (por ejemplo, píxeles de hojas en sombras u hojas oscuras). El módulo de procesamiento de mapa de imagen puede usar un algoritmo de reconocimiento en píxeles de "copa de árbol” de alto valor identificados para generar un valor o puntuación de salud de árbol. En varias formas de realización, los árboles detectados se clasifican en categorías de salud basadas por lo menos en parte en el valor o puntuación de salud de árbol.
Además, en formas de realización particulares, el módulo de procesamiento de mapa de imagen puede generar unos datos de aplicación 185 (por ejemplo, un mapa de aplicación 235) para un sistema tal como el sistema de atomizador inteligente 180 descrito anteriormente. En este caso, por ejemplo, el mapa de aplicación 235 puede incluir información detallada de cuanta atomización debe aplicar el sistema de atomizador inteligente 180 a la región, también como otras regiones que han sido analizadas para el área de interés. En la figura 7, se muestra un ejemplo de un mapa de aplicación 235. Cada región 700, 710, 715 del mapa de aplicación 235 corresponde a una tasa de aplicación diferente que usará el atomizador. En consecuencia, el sistema de atomizador inteligente 180 puede usar el mapa de aplicación 235 en una aplicación de atomización 240 para controlar el flujo de líquido que se aplica a los árboles en el área de interés (por ejemplo, la arboleda) 130.
En varias formas de realización, se genera un mapa de aplicación 235 sobre la base por lo menos en parte de varios datos, valores y puntajes generados para árboles detectados. Por ejemplo, se genera un mapa de aplicación 235 sobre la base por lo menos en parte de valores de altura de árbol, valores o puntuaciones de salud de árbol y/o similares. En una forma de realización en donde una aplicación de atomización 240 controla el flujo de pesticida que se aplica a los árboles en el área de interés 130, el módulo de procesamiento de mapas de imagen puede generar un mapa de aplicación 235 sobre la base por lo menos en parte de valores o puntajes de salud de árboles, de tal manera que regiones donde los árboles no son saludables y tienen bajos valores de salud de árbol se pueden identificar para una mayor aplicación de pesticidas, por ejemplo. En otra forma de realización, en la que una aplicación de atomización 240 controla el flujo de fertilizante, el módulo de procesamiento de imágenes de mapa puede generar un mapa de aplicación 235 sobre la base, por lo menos en parte del análisis de nutrientes de cada árbol. Por ejemplo, el análisis de nutrientes identifica los niveles de nutrientes de un árbol, que se pueden comparar con requisitos de nutrientes del árbol. Los niveles de nutrientes también se pueden comparar con niveles de nutrientes de otros árboles en el área de interés 130. A continuación, se puede generar un mapa de aplicación 235 en base, por lo menos en parte, en el análisis de nutrientes y requisitos de nutrientes de los árboles en el área de interés 130. Por ejemplo, un árbol con niveles de potasio inferiores al promedio o un árbol con niveles bajos de potasio en relación con los requisitos de potasio se pueden identificar en el mapa de aplicación 235 para una tasa de aplicación de fertilizante más alta. En varias formas de realización, el mapa de aplicación 235 se basa, por lo menos en parte, en un mapa de fertilidad generado a partir de concentraciones de nutrientes de árboles o estimaciones de concentraciones de nutrientes de árboles.
Además, en formas de realización particulares, el módulo de procesamiento de mapas de imagen puede generar datos de procesamiento 175 sobre la base por lo menos en parte de los datos recopilados 190 recibidos de un sistema tal como, por ejemplo, el sistema de atomizador inteligente 180. Por ejemplo, los datos recopilados 190 recibidos del sistema de atomizador inteligente 180 pueden incluir información de estimación de rendimiento en varios árboles para frutas, flores y/o similares. Además, los datos recopilados 190 pueden incluir otros tipos de información acerca de árboles, tal como estado de salud, valor de salud, puntuación de salud, edad, concentración de nutrientes y/o similares para un árbol, también como una clasificación de salud para el árbol. Por ejemplo, los datos recopilados 190 incluyen un mapa de fertilidad basado por lo menos en parte en concentraciones de nutrientes de árboles. En este caso, en formas de realización particulares, el módulo de procesamiento de mapas de imagen puede generar datos de procesamiento 175 mediante el uso de mapas de imagen y/o datos generados usando el mapa o mapas de imagen para complementar los datos recopilados 190, tales como estimaciones de rendimiento, estado de salud de árbol, clasificación de salud de árboles y/o similares, así como generar datos de procesamiento adicionales 175, tales como uno o más mapas de rendimiento para la región y/o área de interés. En varias formas de realización, los datos recopilados 190 se etiquetan geográficamente y/o se asocian con información de ubicación e información de tiempo. Por ejemplo, los datos recopilados 190 comprenden puntos de datos que incluyen datos LiDAR, datos de cámara RGB, datos de velocidad, datos de medidor de flujo, datos de modelo y/o similares, cada uno con una etiqueta geográfica con una ubicación y una hora. Por lo tanto, los datos de procesamiento 175 se pueden generar sobre la base por lo menos en parte de los datos recopilados 190, así como de la información de ubicación la información de tiempo referenciada y correspondiente a los datos recopilados 190.
En este punto, el usuario que visita el sitio web alojado por el entorno de nube 150 puede revisar los datos de procesamiento 175. Por ejemplo, en formas de realización particulares, el usuario puede ver el mapa procesado final en una interfaz 315 proporcionada a través del entorno de nube 150. Volviendo ahora a las figuras 8A y 8B, se muestra una interfaz 315 de acuerdo con varias formas de realización. En este caso, la interfaz 315 se puede configurar para permitir que el usuario seleccione ("haga clic en”) un campo (por ejemplo, un huerto de cítricos) 810 y se muestra una ventana con varios análisis de campo (por ejemplo, número total de árboles, conteos de huecos de árboles, tamaño de campo, valores promedio de altura de árboles, área de copa de árbol, estimación de rendimiento y/o similares) para el campo seleccionado 815. Información adicional acerca del campo seleccionado (por ejemplo, un nuevo mapa con detecciones de árboles y espacios entre árboles) se puede proveer cuando el usuario hace clic en un botón 820 de "Ver bloque”. Además, la interfaz 315 se puede configurar para permitir que el usuario seleccione mostrar múltiples categorías sobre la base, por lo menos en parte, de parámetros tales como, por ejemplo, altura de árbol, tamaño de copa y salud del árbol 825. Además, la interfaz 315 se puede configurar para permitir al usuario seleccionar mostrar en el mapa solo objetos que pertenecen a una categoría específica. Por ejemplo, todos los árboles de menos de dos metros (siete pies) de altura. En este caso, el usuario puede llevar a cabo esto al deseleccionar las otras categorías en el histograma provisto. El número total de árboles que pertenecen a una categoría específica se puede encontrar al seleccionar una categoría en el histograma provisto.
Se observa que el módulo de procesamiento de mapas de imagen se puede configurar en formas de realización particulares para procesar y analizar uno o más mapas de imagen (y archivos de DSM) para fines de detección de objetos sin ser invocado, en base, por lo menos en parte en la entrada del usuario. Por ejemplo, en algunas formas de realización, el módulo de procesamiento de mapas de imagen puede ser invocado por otro módulo, tal como el módulo de procesamiento de datos de imágenes. En este caso, por ejemplo, el módulo de procesamiento de datos de imágenes puede invocar el módulo de procesamiento de mapas de imagen al generar uno o más mapas de imagen para datos de imágenes 140 cargados al entorno de nube 150. En consecuencia, cualquier entrada que pueda necesitar el módulo de procesamiento de mapas de imagen puede ser provista por el módulo de procesamiento de datos de imágenes o se puede recuperar del almacenamiento de datos 165. Dicha configuración puede tener como resultado proporcionar información acerca de los objetos detectados y/o procesar datos 175 más rápidamente a través de la interfaz 315, ya que no se requiere que el módulo de procesamiento de mapas de imagen procese y analice dicho uno o más mapas de imagen al tiempo cuando el usuario puede estar interesado en ver datos para una región de uno o más mapas de imagen.
Además, una o más de las operaciones efectuadas por el módulo de procesamiento de mapas de imagen pueden ser efectuadas por otro módulo en formas de realización particulares. Por ejemplo, en algunas formas de realización, se puede usar otro módulo para generar uno o más de los parámetros que se encuentran en los datos de procesamiento 175. En este caso, por ejemplo, el módulo de procesamiento de mapa de imagen se puede configurar para efectuar la detección de objetos en el uno o más mapas de imagen, mientras que otro módulo se puede configurar para efectuar la operación para generar los datos de procesamiento 175 para parámetros, tales como altura del árbol, estimación de copa del árbol, salud, y/o similares en el objeto detectado (por ejemplo, árboles).
c. Flujo de Trabajo para Procesar y Analizar Datos de Imágenes en un Entorno de Nube
Volviendo ahora a la figura 9, se proporcionan detalles adicionales con respecto a un flujo de trabajo 900 para procesar y analizar datos de imágenes 140 en un entorno de nube 150 con fines de detección de objetos, de acuerdo con varias formas de realización. En este caso, el flujo de trabajo 900 enseña los componentes usados en el procesamiento y análisis de datos de imágenes 140 que están alojados en el entorno de nube 150 para permitir un mejor rendimiento y realización de ventajas del uso de dicho entorno 150.
Específicamente, el flujo de trabajo 900 comienza con la adquisición de datos de imágenes 140 en el paso 910 mediante el uso de algún tipo de plataforma de detección 115. Este paso particular del flujo de trabajo 900 se efectúa fuera del entorno de nube 150 e implica la recopilación de datos de imágenes sin procesar 140 que luego típicamente se cargan en el paso 915 al entorno de nube 150 por medio de una interfaz, tal como un sitio web alojado por el entorno de nube 150. Además, otras fuentes pueden proporcionar los datos recopilados 190 al entorno de nube 150 tal como, por ejemplo, un sistema de atomizador inteligente 180.
En este caso, los datos de imágenes cargados 140 contienen en general varias imágenes recopiladas que suman un volumen significativo de datos. En consecuencia, el flujo de trabajo 900 continúa con el procesamiento de los datos de imágenes 140 en el paso 920. Por ejemplo, en formas de realización particulares, un servicio alojado dentro del entorno de nube 150 puede usar un motor de unión para unir las imágenes recopiladas que se encuentran en los datos de imágenes 140 en uno o más mapas de imagen (por ejemplo, mapas ortomosaicos). En formas de realización particulares, este paso particular del flujo de trabajo 900 puede ser efectuado por el servicio que emplea una instancia para uso intensivo de CPU. En consecuencia, alojar el servicio en el entorno de nube 150 permite que varias formas de realización de la divulgación escalen el procesamiento de los datos de imágenes 140 con respecto a la capacidad de procesamiento, ancho de banda y/o velocidad de manera apropiada, en base, por lo menos en parte, en el volumen de datos que componen las imágenes recopiladas. Además, el entorno de nube 150 permite escalar el almacenamiento 165 para acomodar el almacenamiento de los datos de imágenes 140 y mapas de imagen generados.
En este punto, un usuario puede visitar el sitio web alojado por el entorno de nube 150 y ver los mapas de imagen en el paso 925. En este caso, el usuario puede decidir efectuar un análisis en una región de interés particular que se encuentra en uno o más de los mapas de imagen. En consecuencia, en varias formas de realización, el usuario puede proporcionar información en el paso 930 para identificar la región de interés y otra información correspondiente. Por ejemplo, como se describe anteriormente, el usuario puede identificar un área particular de arboleda visualizada en uno o más mapas de imagen y la separación entre árboles para los árboles que se encuentran en la arboleda. En este caso, el usuario puede estar interesado en analizar el área de la arboleda para determinar información tal como, por ejemplo, conteo y ubicaciones geográficas de árboles y claros de árboles (ubicaciones de árboles muertos o sin árboles), altura de árbol, tamaño de la copa y/o salud y estado de árboles individuales identificados en la región de interés.
En consecuencia, el flujo de trabajo 900 continúa en varias formas de realización con la realización de una o más operaciones de procesamiento previo en el mapa o mapas de imagen con fines de normalización en el paso 935. Este paso particular se efectúa en el flujo de trabajo 900 para estas formas de realización particulares para ayudar a mejorar la exactitud del análisis efectuado en la región de interés. En este punto, el análisis del mapa o mapas de imagen procesados previamente se efectúa en el paso 940. En este caso, el análisis en general implica un servicio alojado por el entorno de nube 150 que efectúa algún tipo de detección de objetos (por ejemplo, árboles) en la región de interés identificada para determinar la información deseada. Como se menciona anteriormente, la detección de objetos puede implicar el uso de uno o más algoritmos de detección de objetos para detectar objetos particulares dentro de la región de interés junto con ciertos parámetros para los objetos.
Nuevamente, este paso particular del flujo de trabajo 000 se efectúa en el entorno de nube 150 en varias formas de realización para conseguir varias ventajas provistas por tal entorno 150. Por ejemplo, en formas de realización particulares, el servicio que efectúa la detección de objetos hace uso de una instancia de uso intensivo de GPU. En este caso, el entorno de nube 150 permite escalabilidad y flexibilidad para asignar capacidad de procesamiento, ancho de banda y/o velocidad para la instancia de GPU usada para efectuar la detección de objetos. En otras palabras, el entorno de nube 150 permite un rendimiento mejorado en analizar los mapas de imagen en varias formas de realización que, de otra manera, no se realizarían en un entorno de procesamiento convencional (local).
Una vez que se ha completado la detección de objetos en la región de interés, el flujo de trabajo 900 en varias formas de realización puede continuar al almacenar los datos de procesamiento 175 resultantes del análisis en el entorno de nube 150. De nuevo, usando el entorno de nube 150 para almacenar los datos de procesamiento 175 permite formas de realización particulares de la descripción para realizar varias ventajas provistas por tal entorno 150 en que el entorno de nube 150 permite escalabilidad y flexibilidad en capacidad de almacenamiento. Además, el uso del entorno de nube 150 para almacenar los datos de procesamiento 175 permite el control centralizado de estos datos 175, lo que da como resultado mejor control de calidad y mayor acceso a datos 175 para varios usuarios. Por ejemplo, varios usuarios diferentes 955 pueden acceder y ver los datos 950 en el paso 945 a través del sitio web alojado por el entorno de nube 150 usando varios dispositivos diferentes. Por lo tanto, una ventaja de usar el entorno de nube 150 en varias formas de realización es que los usuarios 955 pueden acceder y ver los datos de procesamiento 175 generados del análisis de los datos de imagen 140 en varios dispositivos independientes diferentes.
IV. Conclusión
Muchas modificaciones y otras formas de realización de la invención expuesta en la presente memoria vendrán a la mente del experto en la materia a la cual se refiere la presente invención, que incluyen los beneficios de las enseñanzas presentadas en las descripciones anteriores y los dibujos asociados. Por lo tanto, se debe entender que las invenciones no se limitarán a las formas de realización específicas descritas y que modificaciones y otras formas de realización pretenden ser incluidas dentro del alcance de las reivindicaciones adjuntas. Aunque se emplean términos específicos en la presente memoria, se usan solo en un sentido genérico y descriptivo y no con fines limitativos.

Claims (18)

REIVINDICACIONES
1. Método para detectar una pluralidad de objetos ubicados en un área de interés, estando el método caracterizado por que comprende:
recibir, por medio de una interfaz prevista a través de una instancia general en un entorno de nube, datos de imágenes que comprenden una pluralidad de imágenes sin procesar recopiladas en el área de interés; en el que el área de interés comprende una arboleda y la pluralidad de objetos comprende una pluralidad de árboles;
tras recibir la pluralidad de imágenes sin procesar:
activar, por medio de la instancia general, una instancia enfocada en unidad de procesamiento central, CPU, en el entorno de nube, basado por lo menos en parte en una imagen de configuración de máquina enfocada en CPU;
tras activar la instancia enfocada en CPU, procesar, por medio de la instancia enfocada en CPU la pluralidad de imágenes sin procesar para unir cada una de las imágenes sin procesar de la pluralidad de imágenes sin procesar para generar un mapa de imagen del área de interés; y
tras finalizar la generación del mapa de imagen, cerrar, por medio de la instancia general, la instancia enfocada en CPU en el entorno de nube; y
después de generar el mapa de imagen:
activar, por medio de la instancia general, una instancia enfocada en unidad de procesamiento gráfico, GPU, en el entorno de nube, sobre la base por lo menos en parte de una imagen de configuración de máquina enfocada en GPU;
tras activar la instancia enfocada en GPU, efectuar la detección de objetos, por medio de la instancia enfocada en GPU, en por lo menos una región dentro del mapa de imagen mediante la aplicación de uno o más algoritmos de detección de objetos a la región del mapa de imagen para identificar las ubicaciones de la pluralidad de objetos en la región del mapa de imagen y
tras finalizar la detección de la pluralidad de objetos para la región, cerrar, por medio de la instancia general, la instancia enfocada en GPU en el entorno de nube; y
efectuar una o más acciones basadas en la nube, sobre la base, por lo menos en parte, de la pluralidad de objetos detectados para la región dentro del mapa de imagen; en el que dicha una o más acciones basadas en la nube comprenden:
generar un mapa de aplicación que identifica una tasa de aplicación para por lo menos la región dentro del mapa de imagen; y
descargar el mapa de aplicación a un sistema de atomizador inteligente configurado para usar el mapa de aplicación para controlar el flujo de un líquido que se aplica a la pluralidad de árboles en la región.
2. Método según la reivindicación 1, caracterizado porque efectuar la detección de objetos en la región dentro del mapa de imagen comprende:
procesar previamente el mapa de imagen para reducir la variación en el mapa de imagen resultante de la captura de la pluralidad de imágenes sin procesar;
aplicar un primer algoritmo de detección de objetos de entre dicho uno o más algoritmos de detección de objetos para identificar ubicaciones iniciales de entre la pluralidad de objetos en la región del mapa de imagen;
identificar uno o más patrones de objetos en el mapa de imagen;
analizar dicho uno o más patrones de objetos para identificar uno o más falsos positivos en las ubicaciones iniciales de la pluralidad de objetos;
eliminar dicho uno o más falsos positivos de las ubicaciones iniciales de la pluralidad de objetos; y
después de eliminar dicho uno o más falsos positivos de las ubicaciones iniciales de la pluralidad de objetos, aplicar un segundo algoritmo de detección de objetos de entre dicho uno o más algoritmos de detección de objetos a cada uno de entre dicho uno o más patrones de objetos para identificar las ubicaciones de la pluralidad de objetos.
3. Método según la reivindicación 2, caracterizado por que dicho uno o más patrones de objetos comprenden una o más hileras de árboles.
4. Método según la reivindicación 1, caracterizado por que comprende además recibir la entrada, por medio de la interfaz, que se origina a partir de un usuario, en el que la entrada comprende por lo menos uno de entre la región dentro del mapa de imagen, un espaciado de objetos que identifica un espacio promedio entre objetos ubicados en la región, o una o más áreas en blanco encontradas en la región que deben ser saltadas por dicho uno o más algoritmos de detección de objetos.
5. Método según la reivindicación 1, caracterizado porque dicha una o más acciones basadas en la nube comprenden:
generar unos datos de procesamiento para la pluralidad de árboles, comprendiendo los datos de procesamiento por lo menos uno de entre un número total de árboles para la pluralidad de árboles, uno o más conteos de huecos de árboles, un valor promedio de alturas de árboles, una altura de árboles para uno o más de la pluralidad de árboles, una estimación de área de copa para uno o más de la pluralidad de árboles, una estimación de rendimiento de fruta para uno o más de la pluralidad de árboles, una estimación de edades de árboles para uno o más de la pluralidad de árboles, una estimación de la salud del árbol para uno o más de la pluralidad de árboles, unas concentraciones estimadas de nutrientes para uno o más de la pluralidad de árboles o un mapa de fertilidad basado por lo menos en parte en las concentraciones de nutrientes estimadas para la pluralidad de árboles; y
proporcionar por lo menos una parte de los datos de procesamiento para su visualización por medio de la interfaz en un dispositivo de usuario.
6. Método según la reivindicación 5, caracterizado por que dicha una o más acciones basadas en la nube comprenden:
recibir una entrada que indica una selección de la región de un usuario por medio del dispositivo de usuario; y
en respuesta a la recepción de la entrada que indica la selección de la región, proporcionar un mapa de la región para su visualización por medio de la interfaz en el dispositivo de usuario, visualizando el mapa la pluralidad de árboles detectados para la región.
7. Aparato que opera dentro de una instancia general de un entorno de nube para detectar una pluralidad de objetos ubicados en un área de interés, estando el aparato caracterizado por que por lo menos un procesador y por lo menos una memoria que incluye un código de programa, estando dicha por lo menos una memoria y el programa código configurados con dicho por lo menos un procesador para hacer que el aparato por lo menos:
reciba, por medio de una interfaz, datos de imágenes que comprenden una pluralidad de imágenes sin procesar recopiladas en el área de interés; el área de interés comprende una arboleda y la pluralidad de objetos comprende una pluralidad de árboles;
tras recibir la pluralidad de imágenes sin procesar:
activar una instancia enfocada en unidad de procesamiento central, CPU, en el entorno de nube sobre la base por lo menos en parte de una imagen de configuración de máquina enfocada en CPU, en el que, tras la activación de la instancia enfocada en CPU, la instancia enfocada en CPU procesa la pluralidad de imágenes sin procesar para unir cada una de las imágenes sin procesar de la pluralidad de imágenes sin procesar para generar un mapa de imagen del área de interés; y
una vez finalizada la generación del mapa de imagen, cerrar la instancia enfocada en CPU en el entorno de nube; y
después de generar el mapa de imagen:
activar una instancia enfocada en unidad de procesamiento gráfico, GPU, en el entorno de nube, sobre la base, por lo menos en parte, de una imagen de configuración de máquina enfocada en GPU, en la que, tras la activación de la instancia enfocada en GPU, la instancia enfocada en la GPU efectúa la detección de objetos en por lo menos una región dentro del mapa de imagen mediante la aplicación de uno o más algoritmos de detección de objetos a la región del mapa de imagen, para identificar ubicaciones de la pluralidad de objetos en la región del mapa de imagen; y
tras finalizar la detección de la pluralidad de objetos para la región, cerrar la instancia enfocada GPU en el entorno de nube; y
efectuar una o más acciones basadas en la nube sobre la base por lo menos en parte de la pluralidad de objetos detectados para la región dentro del mapa de imagen; en el que dicha una o más acciones basadas en la nube comprenden:
generar un mapa de aplicación que identifique una tasa de aplicación para por lo menos la región dentro del mapa de imagen; y
descargar el mapa de aplicación a un sistema de atomizador inteligente.
8. Aparato según la reivindicación 7, caracterizado por que la instancia enfocada en GPU efectúa la detección de objetos en la región dentro del mapa de imagen al:
procesar previamente el mapa de imagen para reducir la variación en el mapa de imagen resultante de la captura de la pluralidad de imágenes sin procesar;
aplicar un primer algoritmo de detección de objetos de entre dicho uno o más algoritmos de detección de objetos para identificar las ubicaciones iniciales de la pluralidad de objetos en la región del mapa de imagen;
identificar uno o más patrones de objetos en el mapa de imagen;
analizar dicho uno o más patrones de objetos para identificar uno o más falsos positivos en las ubicaciones iniciales de la pluralidad de objetos;
eliminar dicho uno o más falsos positivos de las ubicaciones iniciales de la pluralidad de objetos; y
después de eliminar dicho uno o más falsos positivos de las ubicaciones iniciales de la pluralidad de objetos, aplicar un segundo algoritmo de detección de objetos de entre dicho uno o más algoritmos de detección de objetos a cada uno de entre dicho uno o más patrones de objetos para identificar las ubicaciones de la pluralidad de objetos.
9. Aparato según la reivindicación 8, caracterizado por que dicho uno o más patrones de objetos comprenden una o más hileras de árboles.
10. Aparato según la reivindicación 7, caracterizado por que la instancia enfocada en GPU efectúa la detección de objetos de la región del mapa de imagen al recibir entrada, por medio de la interfaz, que se origina a partir de un usuario, comprendiendo la entrada por lo menos una de entre la región dentro del mapa de imagen, una separación de objetos que identifica un espacio promedio entre objetos ubicados en la región, o una o más áreas en blanco encontradas en la región que deben ser saltadas por dicho uno o más algoritmos de detección de objetos.
11. Aparato según la reivindicación 7, caracterizado por que dicha una o más acciones basadas en la nube comprenden:
generar datos de procesamiento para la pluralidad de árboles, comprendiendo los datos de procesamiento por lo menos uno de entre el número total de árboles para la pluralidad de árboles, uno o más conteos de huecos de árboles, un valor promedio de alturas de árboles, una altura de árbol para uno o más de la pluralidad de árboles, una estimación de área de copa para uno o más más de la pluralidad de árboles, una estimación de rendimiento de fruta para uno o más de la pluralidad de árboles, una estimación de edades de árboles para uno o más de la pluralidad de árboles, una estimación de la salud del árbol para uno o más de la pluralidad de árboles, unas concentraciones estimadas de nutrientes para uno o más de la pluralidad de árboles o un mapa de fertilidad basado por lo menos en parte en concentraciones estimadas de nutrientes para la pluralidad de árboles; y
proporcionar por lo menos una parte de los datos de procesamiento para la visualización por medio de la interfaz en un dispositivo de usuario.
12. Aparato según la reivindicación 11, caracterizado por que dicha una o más acciones basadas en la nube comprenden:
recibir una entrada que indica una selección de la región de un usuario por medio del dispositivo de usuario; y
en respuesta a la recepción de la entrada que indica la selección de la región, proporcionar un mapa de la región para su visualización por medio de la interfaz en el dispositivo de usuario, visualizando el mapa la pluralidad de árboles detectados para la región.
13. Sistema informático para detectar una pluralidad de objetos ubicados en un área de interés que comprende:
un sistema de atomizador inteligente;
uno o más procesadores que operan dentro de una instancia general de un entorno de nube; y
un medio de almacenamiento de computadora no transitorio que comprende instrucciones; caracterizado por que las instrucciones están configuradas para hacer que dichos uno o más procesadores efectúen por lo menos operaciones configuradas para:
recibir, por medio de una interfaz, datos de imágenes que comprenden una pluralidad de imágenes sin procesar recopiladas en el área de interés; en el que el área de interés comprende una arboleda y la pluralidad de objetos comprende una pluralidad de árboles;
tras recibir la pluralidad de imágenes sin procesar:
activar una instancia enfocada en unidad de procesamiento central, CPU, en el entorno de nube sobre la base por lo menos en parte de una imagen de configuración de máquina enfocada CPU, en la que, tras la activación de la instancia enfocada en CPU, la instancia enfocada en CPU procesa la pluralidad de imágenes sin procesar para unir cada una de las imágenes sin procesar de la pluralidad de imágenes sin procesar para generar un mapa de imagen del área de interés; y
una vez finalizada la generación del mapa de imagen, cerrar la instancia enfocada en CPU en el entorno de nube; y
después de generar el mapa de imagen:
activar una instancia enfocada en unidad de procesamiento gráfico (GPU) en el entorno de nube, sobre la base por lo menos en parte de una imagen de configuración de máquina enfocada en unidad de procesamiento gráfico, GPU, en la que al activar la instancia enfocada en GPU, la instancia enfocada en GPU efectúa la detección de objetos en por lo menos un región dentro del mapa de imagen al aplicar uno o más algoritmos de detección de objetos a la región del mapa de imagen para identificar las ubicaciones de la pluralidad de objetos en la región del mapa de imagen; y
al finalizar la detección de la pluralidad de objetos para la región, cerrar la instancia enfocada en GPU en el entorno de nube; y
efectuar una o más acciones basadas en la nube, sobre la base, por lo menos en parte de la pluralidad de objetos detectados para la región dentro del mapa de imagen; en el que dicha una o más acciones basadas en la nube comprenden:
generar un mapa de aplicación que identifique una tasa de aplicación para por lo menos la región dentro del mapa de imagen; y
descargar el mapa de aplicación a dicho sistema de atomizador inteligente;
en el que dicho sistema de atomizador inteligente está configurado para usar el mapa de aplicación para controlar el flujo de un líquido que se aplica a la pluralidad de árboles en la región.
14. Sistema informático según la reivindicación 13, caracterizado por que la instancia enfocada en GPU efectúa la detección de objetos en la región dentro del mapa de imagen al:
procesar previamente el mapa de imagen para reducir la variación en el mapa de imagen resultante de la captura de la pluralidad de imágenes sin procesar;
aplicar un primer algoritmo de detección de objetos de entre dicho uno o más algoritmos de detección de objetos para identificar unas ubicaciones iniciales de la pluralidad de objetos en la región del mapa de imagen;
identificar uno o más patrones de objetos en el mapa de imagen;
analizar dicho uno o más patrones de objetos para identificar uno o más falsos positivos en las ubicaciones iniciales de la pluralidad de objetos;
eliminar dicho uno o más falsos positivos de las ubicaciones iniciales de la pluralidad de objetos; y
después de eliminar dicho uno o más falsos positivos de las ubicaciones iniciales de la pluralidad de objetos, aplicar un segundo algoritmo de detección de objetos de entre dicho uno o más algoritmos de detección de objetos a cada uno de entre dicho uno o más patrones de objetos para identificar las ubicaciones de la pluralidad de objetos.
15. Sistema informático según la reivindicación 14, caracterizado por que dicho uno o más patrones de objetos comprenden una o más filas de árboles.
16. Sistema informático según la reivindicación 13, caracterizado por que la instancia enfocada en unidad de procesamiento gráfico, GPU, efectúa la detección de objetos de la región del mapa de imagen al recibir una entrada, por medio de la interfaz, que se origina a partir de un usuario, comprendiendo la entrada por lo menos uno de entre de la región dentro del mapa de imagen, una separación de objetos que identifica la separación promedio entre objetos ubicados en la región o una o más áreas en blanco encontradas en la región que debe ser saltada por dicho uno o más algoritmos de detección de objetos.
17. Sistema informático según la reivindicación 13, caracterizado por que dicha una o más acciones basadas en la nube comprenden:
generar datos de procesamiento para la pluralidad de árboles, comprendiendo los datos de procesamiento por lo menos uno de entre un número total de árboles para la pluralidad de árboles, uno o más conteos de huecos de árboles, un valor promedio de alturas de árboles, una altura de árboles para uno o más de la pluralidad de árboles, una estimación de área de copla para uno o más de la pluralidad de árboles, una estimación de rendimiento de fruta para uno o más de la pluralidad de árboles, una estimación de edades de árboles para uno o más de la pluralidad de árboles, una estimación de la salud de árboles para uno o más de la pluralidad de árboles, unas concentraciones de nutrientes estimadas para uno o más de la pluralidad de árboles o un mapa de fertilidad basado por lo menos en parte en concentraciones de nutrientes estimadas para la pluralidad de árboles; y
proporcionar por lo menos una parte de los datos de procesamiento para su visualización por medio de la interfaz en un dispositivo de usuario.
18. Sistema informático según la reivindicación 17, caracterizado por que dicha una o más acciones basadas en la nube comprenden:
recibir una entrada que indica una selección de la región de un usuario por medio del dispositivo de usuario; y
en respuesta a la recepción de la entrada que indica la selección de la región, proporcionar un mapa de la región para su visualización por medio de la interfaz en el dispositivo de usuario, visualizando el mapa la pluralidad de árboles detectados para la región.
ES202290072A 2020-04-22 2021-04-21 Estructura basada en la nube para procesar, analizar y visualizar datos de imagenes Active ES2938091B2 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063013606P 2020-04-22 2020-04-22
US202163199961P 2021-02-05 2021-02-05
PCT/US2021/028298 WO2021216637A1 (en) 2020-04-22 2021-04-21 Cloud-based framework for processing, analyzing, and visualizing imaging data

Publications (3)

Publication Number Publication Date
ES2938091A2 ES2938091A2 (es) 2023-04-04
ES2938091R1 ES2938091R1 (es) 2023-04-11
ES2938091B2 true ES2938091B2 (es) 2024-01-29

Family

ID=78269989

Family Applications (1)

Application Number Title Priority Date Filing Date
ES202290072A Active ES2938091B2 (es) 2020-04-22 2021-04-21 Estructura basada en la nube para procesar, analizar y visualizar datos de imagenes

Country Status (5)

Country Link
US (2) US11710214B2 (es)
BR (1) BR112022019271A2 (es)
ES (1) ES2938091B2 (es)
MX (1) MX2022011994A (es)
WO (1) WO2021216637A1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11710415B2 (en) * 2019-08-01 2023-07-25 Halkin Inc. Methods and devices for unmanned aerial vehicle based site inspection and scale rendered analysis
US11710214B2 (en) 2020-04-22 2023-07-25 University Of Florida Research Foundation, Incorporated Cloud-based framework for processing, analyzing, and visualizing imaging data
CN114338281B (zh) * 2021-11-11 2023-04-07 广州软件应用技术研究院 一种基于边缘计算网关的模型分发应用设计方法及系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4823268A (en) 1987-06-23 1989-04-18 Clemson University Method and apparatus for target plant foliage sensing and mapping and related materials application control
US5278423A (en) 1992-12-30 1994-01-11 Schwartz Electro-Optics, Inc. Object sensor and method for use in controlling an agricultural sprayer
US20020140924A1 (en) 1999-01-08 2002-10-03 Richard J. Wangler Vehicle classification and axle counting sensor system and method
US9323572B2 (en) * 2011-06-02 2016-04-26 International Business Machines Corporation Autoconfiguration of a cloud instance based on contextual parameters
US9135189B2 (en) 2011-09-07 2015-09-15 Microsoft Technology Licensing, Llc Delivering GPU resources across machine boundaries
CN105636436B (zh) * 2014-09-24 2019-06-11 上海星让实业有限公司 一种智能成像系统以及安装有该智能成像系统的捕虫装置
US9760990B2 (en) 2014-12-14 2017-09-12 International Business Machines Corporation Cloud-based infrastructure for feedback-driven training and image recognition
CA2994834C (en) * 2015-08-06 2021-05-04 Digitalglobe, Inc. Choreographing automated and manual processes in support of mosaic generation
CA3014446A1 (en) * 2016-02-29 2017-11-23 Urugus S.A. System for planetary-scale analytics
US9940724B2 (en) * 2016-09-13 2018-04-10 Intelligent Fusion Technology, Inc. Method and system for detecting multiple moving objects from real-time aerial images
US10249047B2 (en) * 2016-09-13 2019-04-02 Intelligent Fusion Technology, Inc. System and method for detecting and tracking multiple moving targets based on wide-area motion imagery
US10721859B2 (en) 2017-01-08 2020-07-28 Dolly Y. Wu PLLC Monitoring and control implement for crop improvement
US11100264B2 (en) 2017-05-12 2021-08-24 Harris Lee Cohen Computer-implemented methods, computer readable medium and systems for a precision agriculture platform that integrates a satellite date model and an orchard data model
EP3658340A2 (en) * 2017-07-25 2020-06-03 MBL Limited Systems and methods for operating a robotic system and executing robotic interactions
US11093793B2 (en) * 2017-08-29 2021-08-17 Vintra, Inc. Systems and methods for a tailored neural network detector
WO2019094266A1 (en) * 2017-11-07 2019-05-16 University Of Florida Research Foundation Detection and management of target vegetation using machine vision
US20190303648A1 (en) * 2018-04-02 2019-10-03 QRI Group, LLC Smart surveillance and diagnostic system for oil and gas field surface environment via unmanned aerial vehicle and cloud computation
CN108875620B (zh) * 2018-06-06 2021-11-05 中国农业科学院深圳农业基因组研究所 入侵植物的监测方法及系统
CA3035225A1 (en) 2019-02-28 2020-08-28 Daniel Mccann System and method for field treatment and monitoring
US20200394804A1 (en) * 2019-06-17 2020-12-17 Guard, Inc. Analysis and deep learning modeling of sensor-based object detection data in bounded aquatic environments
US11562645B2 (en) * 2019-10-14 2023-01-24 Fujitsu Limited Edge-accelerated artificial intelligence for collaborative sensing of physical intelligent moving objects
CN110852282B (zh) 2019-11-13 2023-04-07 榆林学院 一种基于机器视觉的农田病害监测系统
CN111476306B (zh) * 2020-04-10 2023-07-28 腾讯科技(深圳)有限公司 基于人工智能的物体检测方法、装置、设备及存储介质
US11710214B2 (en) 2020-04-22 2023-07-25 University Of Florida Research Foundation, Incorporated Cloud-based framework for processing, analyzing, and visualizing imaging data
US20220250108A1 (en) 2021-02-05 2022-08-11 University Of Florida Research Foundation, Incorporated Smart sprayer systems and methods

Also Published As

Publication number Publication date
US11710214B2 (en) 2023-07-25
US20230325972A1 (en) 2023-10-12
US20230124398A1 (en) 2023-04-20
US12008730B2 (en) 2024-06-11
WO2021216637A1 (en) 2021-10-28
ES2938091R1 (es) 2023-04-11
ES2938091A2 (es) 2023-04-04
BR112022019271A2 (pt) 2022-11-16
MX2022011994A (es) 2022-10-20

Similar Documents

Publication Publication Date Title
ES2938091B2 (es) Estructura basada en la nube para procesar, analizar y visualizar datos de imagenes
Kamilaris et al. Deep learning in agriculture: A survey
Nguyen et al. Monitoring agriculture areas with satellite images and deep learning
Apolo-Apolo et al. A cloud-based environment for generating yield estimation maps from apple orchards using UAV imagery and a deep learning technique
Alibabaei et al. A review of the challenges of using deep learning algorithms to support decision-making in agricultural activities
Jiménez-Brenes et al. Automatic UAV-based detection of Cynodon dactylon for site-specific vineyard management
Ajayi et al. Effect of varying training epochs of a faster region-based convolutional neural network on the accuracy of an automatic weed classification scheme
Farjon et al. Deep-learning-based counting methods, datasets, and applications in agriculture: A review
Saddik et al. RETRACTED ARTICLE: Computer development based embedded systems in precision agriculture: tools and application
Bai et al. Rice plant counting, locating, and sizing method based on high-throughput UAV RGB images
Rist et al. Weed mapping using very high resolution satellite imagery and fully convolutional neural network
Lu et al. Citrus green fruit detection via improved feature network extraction
Uryasheva et al. Computer vision-based platform for apple leaves segmentation in field conditions to support digital phenotyping
Yan et al. High-resolution mapping of paddy rice fields from unmanned airborne vehicle images using enhanced-TransUnet
Mathivanan et al. Utilizing satellite and UAV data for crop yield prediction and monitoring through deep learning
Hobbs et al. Large-scale counting and localization of pineapple inflorescence through deep density-estimation
Rehman et al. Long short term memory deep net performance on fused Planet-Scope and Sentinel-2 imagery for detection of agricultural crop
Shahid et al. Aerial imagery-based tobacco plant counting framework for efficient crop emergence estimation
Yu et al. Maize tassel number and tasseling stage monitoring based on near-ground and UAV RGB images by improved YoloV8
Dinca et al. Halyomorpha halys detection in orchard from UAV images using convolutional neural networks
Cuong et al. Pest Early Detection in Greenhouse Using Machine Learning.
Popescu et al. Orchard monitoring based on unmanned aerial vehicles and image processing by artificial neural networks: a systematic review
Marreiros et al. Progress in Artificial Intelligence: 20th EPIA Conference on Artificial Intelligence, EPIA 2021, Virtual Event, September 7–9, 2021, Proceedings
Sassu Machine learning and Unmanned Aerial Systems for crop monitoring and agrochemicals distribution optimization in orchard and horticultural systems
Lomotey et al. Automatic detection and diagnosis of cocoa diseases using mobile tech and deep learning

Legal Events

Date Code Title Description
BA2A Patent application published

Ref document number: 2938091

Country of ref document: ES

Kind code of ref document: A2

Effective date: 20230404

EC2A Search report published

Ref document number: 2938091

Country of ref document: ES

Kind code of ref document: R1

Effective date: 20230331

FG2A Definitive protection

Ref document number: 2938091

Country of ref document: ES

Kind code of ref document: B2

Effective date: 20240129