[go: up one dir, main page]

ES2905450T3 - Seguimiento asistido por transportador - Google Patents

Seguimiento asistido por transportador Download PDF

Info

Publication number
ES2905450T3
ES2905450T3 ES16904279T ES16904279T ES2905450T3 ES 2905450 T3 ES2905450 T3 ES 2905450T3 ES 16904279 T ES16904279 T ES 16904279T ES 16904279 T ES16904279 T ES 16904279T ES 2905450 T3 ES2905450 T3 ES 2905450T3
Authority
ES
Spain
Prior art keywords
payload
target
image
conveyor
control signals
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
ES16904279T
Other languages
English (en)
Inventor
Yan Wang
Bo Zang
Chenyu Xiang
Dicong Qiu
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.)
SZ DJI Osmo Technology Co Ltd
Original Assignee
SZ DJI Osmo Technology Co Ltd
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 SZ DJI Osmo Technology Co Ltd filed Critical SZ DJI Osmo Technology Co Ltd
Application granted granted Critical
Publication of ES2905450T3 publication Critical patent/ES2905450T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16MFRAMES, CASINGS OR BEDS OF ENGINES, MACHINES OR APPARATUS, NOT SPECIFIC TO ENGINES, MACHINES OR APPARATUS PROVIDED FOR ELSEWHERE; STANDS; SUPPORTS
    • F16M13/00Other supports for positioning apparatus or articles; Means for steadying hand-held apparatus or articles
    • F16M13/04Other supports for positioning apparatus or articles; Means for steadying hand-held apparatus or articles for supporting on, or holding steady relative to, a person, e.g. by chains, e.g. rifle butt or pistol grip supports, supports attached to the chest or head
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16MFRAMES, CASINGS OR BEDS OF ENGINES, MACHINES OR APPARATUS, NOT SPECIFIC TO ENGINES, MACHINES OR APPARATUS PROVIDED FOR ELSEWHERE; STANDS; SUPPORTS
    • F16M11/00Stands or trestles as supports for apparatus or articles placed thereon ; Stands for scientific apparatus such as gravitational force meters
    • F16M11/02Heads
    • F16M11/04Means for attachment of apparatus; Means allowing adjustment of the apparatus relatively to the stand
    • F16M11/06Means for attachment of apparatus; Means allowing adjustment of the apparatus relatively to the stand allowing pivoting
    • F16M11/10Means for attachment of apparatus; Means allowing adjustment of the apparatus relatively to the stand allowing pivoting around a horizontal axis
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16MFRAMES, CASINGS OR BEDS OF ENGINES, MACHINES OR APPARATUS, NOT SPECIFIC TO ENGINES, MACHINES OR APPARATUS PROVIDED FOR ELSEWHERE; STANDS; SUPPORTS
    • F16M11/00Stands or trestles as supports for apparatus or articles placed thereon ; Stands for scientific apparatus such as gravitational force meters
    • F16M11/02Heads
    • F16M11/18Heads with mechanism for moving the apparatus relatively to the stand
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16MFRAMES, CASINGS OR BEDS OF ENGINES, MACHINES OR APPARATUS, NOT SPECIFIC TO ENGINES, MACHINES OR APPARATUS PROVIDED FOR ELSEWHERE; STANDS; SUPPORTS
    • F16M11/00Stands or trestles as supports for apparatus or articles placed thereon ; Stands for scientific apparatus such as gravitational force meters
    • F16M11/20Undercarriages with or without wheels
    • F16M11/2007Undercarriages with or without wheels comprising means allowing pivoting adjustment
    • F16M11/2035Undercarriages with or without wheels comprising means allowing pivoting adjustment in more than one direction
    • F16M11/2071Undercarriages with or without wheels comprising means allowing pivoting adjustment in more than one direction for panning and rolling
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S3/00Direction-finders for determining the direction from which infrasonic, sonic, ultrasonic, or electromagnetic waves, or particle emission, not having a directional significance, are being received
    • G01S3/78Direction-finders for determining the direction from which infrasonic, sonic, ultrasonic, or electromagnetic waves, or particle emission, not having a directional significance, are being received using electromagnetic waves other than radio waves
    • G01S3/782Systems for determining direction or deviation from predetermined direction
    • G01S3/785Systems for determining direction or deviation from predetermined direction using adjustment of orientation of directivity characteristics of a detector or detector system to give a desired condition of signal derived from that detector or detector system
    • G01S3/786Systems for determining direction or deviation from predetermined direction using adjustment of orientation of directivity characteristics of a detector or detector system to give a desired condition of signal derived from that detector or detector system the desired condition being maintained automatically
    • G01S3/7864T.V. type tracking systems
    • G01S3/7865T.V. type tracking systems using correlation of the live video image with a stored image
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03BAPPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
    • G03B17/00Details of cameras or camera bodies; Accessories therefor
    • G03B17/56Accessories
    • G03B17/563Camera grips, handles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/242Aligning, centring, orientation detection or correction of the image by image rotation, e.g. by 90 degrees
    • 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
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/67Focus control based on electronic image sensor signals
    • H04N23/675Focus control based on electronic image sensor signals comprising setting of focusing regions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/695Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16MFRAMES, CASINGS OR BEDS OF ENGINES, MACHINES OR APPARATUS, NOT SPECIFIC TO ENGINES, MACHINES OR APPARATUS PROVIDED FOR ELSEWHERE; STANDS; SUPPORTS
    • F16M2200/00Details of stands or supports
    • F16M2200/04Balancing means
    • F16M2200/041Balancing means for balancing rotational movement of the head
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16MFRAMES, CASINGS OR BEDS OF ENGINES, MACHINES OR APPARATUS, NOT SPECIFIC TO ENGINES, MACHINES OR APPARATUS PROVIDED FOR ELSEWHERE; STANDS; SUPPORTS
    • F16M2200/00Details of stands or supports
    • F16M2200/04Balancing means
    • F16M2200/044Balancing means for balancing rotational movement of the undercarriage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/61Control of cameras or camera modules based on recognised objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/62Control of parameters via user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/685Vibration or motion blur correction performed by mechanical compensation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Electromagnetism (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Studio Devices (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Toys (AREA)
  • Manipulator (AREA)

Abstract

Un método, que comprende: capturar una imagen por un sensor de imágenes (103, 602, 704, 1102, 1302, 1304) de una carga útil (102, 306, 402, 600, 1), estando la carga útil (102, 306, 402, 600, 701) acoplada de forma liberable a un transportador (100, 304, 404, 702); identificar, mediante una unidad de seguimiento (708) de la carga útil (102, 306, 402, 600, 701), un objetivo de la imagen; detectar, mediante uno o más procesadores de la carga útil (102, 306, 402, 600, 701), una desviación del objetivo desde una posición esperada de objetivo dentro de la imagen; derivar una velocidad angular con respecto a un eje de rotación del transportador (100, 304, 404, 702) a partir de la desviación detectada del objetivo; y generar, mediante uno o más procesadores, una o más señales de control para el transportador (100, 304, 404, 702) en base a la desviación detectada del objetivo, las una o más señales de control que causan que el transportador (100, 304, 404 , 702) cambie una pose de la carga útil (102, 306, 402, 600, 701) para reducir la desviación detectada en una imagen posterior capturada por el sensor de imágenes (103, 602, 704, 1102, 1302, 1304), donde las una o más señales de control incluyen la velocidad angular.

Description

DESCRIPCIÓN
Seguimiento asistido por transportador
Antecedentes de la invención
Los dispositivos móviles modernos, como los teléfonos inteligentes y las tabletas, a menudo están equipados con cámaras y se utilizan para tomar fotografías o videos de objetos en el entorno circundante. Sin embargo, surge un desafío cuando los movimientos de los objetos requieren que un operador del dispositivo móvil mueva el dispositivo móvil en consecuencia para mantener los objetos a la vista. Es posible que se requieran aún más habilidades por parte del operador para mantener objetos que se mueven rápidamente en ubicaciones específicas de la imagen.
El documento US 2015/241713 A1 describe métodos y aparatos de dispositivos de soporte de cámara. El sujetador de cámara puede sujetarse con una mano y usarse para estabilizar automáticamente una cámara, por ejemplo, una cámara diseñada para sujetarse con una mano. La estabilización la proporcionan los giroscopios solos o en combinación con el control de orientación de la cámara de circuito/lazo cerrado que puede utilizar la información de uno o más sensores incluidos en la cámara. El sujetador de cámara está diseñado de modo que, al menos para algunas pero no necesariamente todas las cámaras que pueden colocarse en el sujetador de la cámara, el eje de rotación controlable intersecta con el centro de masa de la cámara cuando la cámara está presente, el sujetador requiere poca energía para controlar y/o mantener la orientación de la cámara.
El documento US 2016/031559 A1 divulga sistemas, métodos y dispositivos relacionados con el seguimiento de objetivos mediante UAVs (vehículos aéreos no tripulados, por sus siglas en inglés). El UAV puede configurarse para recibir información del objetivo desde un terminal de control relacionado con un objetivo que va a ser seguido por un dispositivo de formación de imágenes acoplado al UAV. La información del objetivo puede ser utilizada por el UAV para seguir automáticamente el objetivo a fin de mantener la posición y/o el tamaño predeterminados del objetivo dentro de una o más imágenes capturadas por el dispositivo de formación de imágenes. El terminal de control puede configurarse para mostrar imágenes del dispositivo de formación de imágenes así como para permitir la entrada del usuario relacionada con la información del objetivo.
El documento US 7,038,709 B1 describe un sistema de seguimiento de imágenes para generar cuadros/fotogramas de imágenes digitalizados de un objeto en movimiento utilizando un dispositivo de captura de imágenes y un dispositivo de control de posición. El dispositivo de captura de imágenes y la determinación de un valor de ubicación para una imagen de objeto dentro de cada uno de los cuadros de imagen digitalizados. El dispositivo de control de posición está acoplado al dispositivo de captura de imágenes para recibir el valor de ubicación de la imagen del objeto y genera una pluralidad de señales de control que se envían al dispositivo de manipulación de posición. El dispositivo de control de posición también utiliza la pluralidad de señales de control y genera una pluralidad de movimientos de rotación que posicionan el dispositivo de captura de imágenes, de modo que el valor de ubicación de la imagen del objeto permanece dentro de una región central de cada uno de los cuadros de imagen digitalizados y de tal manera que la rotación a lo largo de diferentes ejes de rotación se produce de forma independiente.
El documento US 2012/019660 A1 divulga un sistema y método para compensar las distorsiones de imagen formadas por el movimiento de un sistema de cámara computarizado montado en una plataforma móvil. El sistema de cámara incluye una cámara, donde la cámara adquiere una pluralidad de cuadros de imagen que incluyen imágenes del entorno visto desde dentro del campo de visión de la cámara. La distorsión se forma en el cuadro de la imagen adquirida, durante y entre las adquisiciones de imágenes. Durante la adquisición de imágenes, la cámara se puede maniobrar en el espacio, típicamente, en el eje de giro e inclinación. El método incluye los pasos de proporcionar señales de maniobra de la cámara, proporcionar sensores para detectar otros movimientos de la cámara, calcular el vector de movimiento agregado de la cámara antes de la adquisición, determinando así la distorsión de la imagen antes de la adquisición y compensando la distorsión de la imagen antes de la adquisición determinada mediante un vector equivalente, en una dirección opuesta a la dirección del vector de movimiento agregado previo a la adquisición.
El documento US 2010/238296 A1 divulga un aparato de seguimiento de imágenes de objetos móviles que incluye: una base; un primer cardán; un segundo cardán; un pasaje de guía de imágenes configurado para guiar una imagen recibida a través de una porción de abertura de entrada del segundo cardán a la base; un dispositivo de captura de imágenes; un sensor de ángulo; un detector de errores de seguimiento configurado para detectar un primer error de seguimiento de los datos de una imagen; un circuito de retardo; una calculadora de error de seguimiento configurada para calcular un segundo error de seguimiento en base al primer error de seguimiento, un primer ángulo de rotación retrasado y un segundo ángulo de rotación retrasado; un procesador de velocidad angular configurado para generar una primera velocidad angular objetivo y una segunda velocidad angular objetivo en base al primer ángulo de rotación, el segundo ángulo de rotación y el segundo error de seguimiento; y un controlador de actuador configurado para controlar el primer cardán y el segundo cardán en base a la primera y segunda velocidades angulares objetivo.
El documento CN 104914649 A describe un estabilizador adecuado para disparar con cámara en movimiento. El estabilizador se caracteriza porque el estabilizador incluye un motor del eje X, un motor del eje Y y un motor del eje Z distribuidos de manera ortogonal en el espacio, donde el motor del eje X controla el movimiento de cabeceo, el motor del eje Y controla el movimiento de balanceo y el motor del eje Z controla el movimiento del eje de rumbo; un eje giratorio del motor del eje Z está conectado con un estator del motor del eje Y; un rotor del motor del eje Y está conectado con un estator del motor del eje X. El estabilizador también incluye un soporte de fijación y un módulo Bluetooth. El soporte de fijación está dispuesto en un eje giratorio del motor del eje X. El soporte de fijación está conectado con el eje giratorio del motor del eje X a través de un tablero de postura. El módulo Bluetooth está en conexión de comunicación de puerto serie con un circuito de control del eje Z. El módulo Bluetooth está dispuesto en una caja de control. Un estator del motor del eje Z está dispuesto en la caja de control.
Breve descripción de la invención de la invención
La presente invención se refiere a un método según la reivindicación 1, uno o más medios de almacenamiento legibles por ordenador no transitorios según la reivindicación 9 y un sistema según la reivindicación 10. Las reivindicaciones 2 a 8 se refieren a realizaciones especialmente ventajosas del método según la reivindicación 1; y las reivindicaciones 11 y 12 se refieren a realizaciones específicamente ventajosas del sistema según la reivindicación 10.
El método puede comprender además identificar, mediante uno o más procesadores de la carga útil, el objetivo dentro de la imagen basándose al menos en parte en la información inicial del objetivo. La información de objetivo inicial se puede recibir desde una interfaz de usuario proporcionada por la carga útil. Identificar el objetivo puede incluir determinar una posición actual del objetivo dentro de la imagen y el método puede comprender además provocar el ajuste de una distancia focal del sensor de imágenes basado al menos en parte en la posición actual del objetivo.
La desviación se puede detectar en base al menos en parte a la información de objetivo esperada que comprende una posición del objetivo esperado o un tamaño del objetivo esperado. La información de objetivo esperada se puede recibir desde una interfaz de usuario proporcionada por la carga útil.
La transmisión, mediante la carga útil, de una o más señales de control al portador puede utilizar una conexión inalámbrica. La conexión inalámbrica puede ser una conexión Bluetooth, Wifi o comunicación de campo cercano (NFC).
En algunas realizaciones, el seguimiento del objeto comprende la identificación del objeto que puede basarse, al menos en parte, en la información inicial del objetivo recibida desde la interfaz de usuario proporcionada por el dispositivo móvil.
En algunas realizaciones, el seguimiento del objeto puede comprender la generación de señales de control para controlar un transportador del dispositivo móvil.
Otros objetos y características de la presente invención se harán evidentes mediante una revisión de la memoria descriptiva, las reivindicaciones y las figuras adjuntas.
Breve descripción de los dibujos
Las características novedosas de la invención se exponen con particularidad en las reivindicaciones adjuntas. Se obtendrá una mejor comprensión de las características y ventajas de la presente invención con referencia a la siguiente descripción detallada que establece realizaciones ilustrativas, en las que se utilizan los principios de la invención, y dibujos adjuntos de los cuales:
La FIG. 1 ilustra un transportador, de acuerdo con las realizaciones.
La FIG. 2 ilustra otra vista del transportador, de acuerdo con realizaciones.
La FIG. 3 ilustra un soporte de mano sobre el que se puede montar un transportador, de acuerdo con las realizaciones. La FIG. 4 ilustra la comunicación ejemplar entre los componentes del sistema, de acuerdo con las realizaciones. La FIG.
5 ilustra un proceso ejemplar para implementar el seguimiento de objetivos, de acuerdo con las realizaciones. La FIG. 6 ilustra componentes ejemplares de una carga útil, de acuerdo con las realizaciones.
La FIG. 7 ilustra un proceso ejemplar para el seguimiento de objetivos, de acuerdo con las realizaciones.
La FIG. 8 ilustra un método ejemplar para mantener una posición esperada de un objetivo dentro de una imagen, de acuerdo con las realizaciones.
La FIG. 9 ilustra un método ejemplar para mantener una posición esperada de un objetivo dentro de una imagen, de acuerdo con las realizaciones.
La FIG. 10 ilustra un proceso ejemplar para implementar el seguimiento de objetivos, de acuerdo con las realizaciones. La FIG. 11 ilustra un primer proceso de ejemplo para el procesamiento de imágenes utilizando tecnologías existentes, de acuerdo con las realizaciones.
La FIG. 12 ilustra un segundo proceso de ejemplo para el procesamiento de imágenes utilizando tecnologías existentes, de acuerdo con las realizaciones.
La FIG. 13 ilustra un proceso ejemplar para el procesamiento de imágenes, de acuerdo con las realizaciones.
La FIG. 14 ilustra otro proceso ejemplar para el procesamiento de imágenes, de acuerdo con las realizaciones.
Descripción detallada de la invención
El sistema y los métodos de la presente invención proporcionan técnicas para seguir objetos utilizando una carga útil (por ejemplo, un dispositivo móvil) sin depender únicamente de las habilidades de los operadores. Específicamente, la asistencia la proporciona un transportador que está acoplado a la carga útil, que puede controlarse para permitir que la carga útil se mueva en relación con el transportador (por ejemplo, hasta tres ejes de libertad). La carga útil está configurada para identificar un objetivo a seguir a partir de imágenes capturadas por un sensor de imágenes de la carga útil. En algunas realizaciones, la identificación del objetivo por parte de la carga útil puede basarse en la información inicial del objetivo (por ejemplo, posición inicial y/o tamaño) proporcionada a través de una interfaz de usuario proporcionada por la carga útil o de otras fuentes. La carga útil puede configurarse para mostrar las imágenes en una pantalla donde el objetivo seguido se resalta o se indica de otro modo (por ejemplo, mediante un cuadro delimitado alrededor del objetivo). Cuando el objetivo se desvía de una posición esperada en la imagen, la carga útil genera señales de control para que el transportador compense la desviación. En función de las señales de control, el portador cambia la pose de la carga útil (por ejemplo, gira la carga útil con respecto a uno o más ejes), cambiando así el campo de visión del sensor de imágenes de la carga útil para acercar el objetivo percibido a la posición esperada. En algunas realizaciones, la carga útil también puede configurarse para ajustar uno o más parámetros del sensor de imágenes (por ejemplo, la distancia focal). Por ejemplo, el objetivo puede enfocarse dada su posición actual ajustando la distancia focal del sensor de imágenes. Como otro ejemplo, el objetivo puede mantenerse en un tamaño percibido esperado acercándose o alejándose. Ventajosamente, el sistema y los métodos descritos proporcionan un seguimiento simple pero efectivo de objetivos mediante cargas útiles (por ejemplo, teléfonos inteligentes). Al controlar directamente un transportador de la carga útil para ajustar la pose de la carga útil, la carga útil puede lograr un cambio de pose más rápido y más preciso que el proporcionado por un usuario humano, lo que da como resultado un seguimiento más efectivo.
También se describen técnicas para el procesamiento eficiente de imágenes. Las técnicas de seguimiento descritas en este documento pueden requerir que los datos de imagen de entrada tengan un tamaño de píxel y/o un formato de color que sean diferentes a los de los datos de imagen sin procesar generados por el sensor de imágenes. Por lo tanto, los datos de imagen sin procesar se pre-procesan para que tengan el tamaño y/o el formato correctos antes de usarse para un procesamiento adicional (por ejemplo, para identificar el objetivo y/o generar las señales de control). Este pre­ procesamiento normalmente se realiza a nivel de software mediante un mandato de unidad de procesamiento central (CPU) de propósito general con una memoria principal compartida, lo que resulta en un rendimiento lento. Las técnicas mejoradas se basan en una unidad de procesamiento de gráficos acelerada por hardware (por ejemplo, GPU) para realizar la mayor parte de dicho procesamiento de imágenes, lo que reduce el retardo entre el sensor de imágenes y el módulo de seguimiento y mejora el rendimiento del proceso de seguimiento general.
La FIG. 1 ilustra un transportador 100, de acuerdo con las realizaciones. El transportador 100 está acoplado de forma liberable (desmontable) a una carga útil 102 y se utiliza para controlar una disposición espacial (pose) de la carga útil acoplada 102. Por ejemplo, el transportador se puede usar para cambiar la orientación de la carga útil 102 con respecto a hasta tres ejes de libertad en relación con el transportador, un primer eje 104, un segundo eje 106 y un tercer eje 108. La carga útil 102 puede incluir una cámara, un teléfono inteligente, una tableta u otros dispositivos móviles. La carga útil puede ser capaz de capturar imágenes (por ejemplo, utilizando un sensor de imágenes 103 acoplado a la carga útil 102). Además, la carga útil 102 se puede configurar para proporcionar señales de control al transportador 100. Las señales de control se pueden usar para cambiar la disposición espacial de la carga útil 102 para seguir un objetivo en el entorno circundante (por ejemplo, usando el sensor de imágenes 103).
El transportador 100 puede incluir un sujetador de carga útil 110, uno o más conjuntos de rotación 114, 118 y 122, una unidad de comunicación (no mostrada) y un controlador de transportador (no mostrado). El sujetador de carga útil 110 se puede configurar para acoplarse con una carga útil 102 (por ejemplo, usando ajuste a presión, abrazaderas, soportes, cunas, marcos, imanes, etc.). Los conjuntos de rotación pueden ser controlados por el controlador de transportador para cambiar una disposición espacial del sujetador de carga útil 110 (y por lo tanto la carga útil acoplada). La unidad de comunicación se puede configurar para recibir datos y/o transmitir datos a la carga útil, un soporte de base (no mostrado) y/o cualquier otro dispositivo. El controlador puede configurarse para controlar uno o más actuadores de los conjuntos de rotación, por ejemplo, en base a las señales de control recibidas por la unidad de comunicación. Más detalles sobre la unidad de comunicación y el controlador se discuten en relación con la FIG. 4.
En algunas realizaciones, el sujetador de carga útil 110 se puede adaptar para acomodar cargas útiles de varias dimensiones. Por ejemplo, el sujetador de carga útil 110 puede incluir uno o más soportes 111 que pueden extenderse o retraerse a lo largo de una o más dimensiones. En otro ejemplo, el sujetador de carga útil 110 puede incluir una plataforma que se puede acoplar magnéticamente a un lado de la carga útil 102 sin el uso de sujetadores como abrazaderas. En algunas realizaciones, la carga útil se puede asegurar al soporte de la carga útil de manera que el eje óptico 105 de la carga útil sea sustancialmente paralelo a uno de los ejes de rotación del transportador (por ejemplo, el eje 106). Alternativamente, el eje óptico 105 puede no ser paralelo a los ejes de rotación.
El sujetador de carga útil 110 se puede acoplar a un primer conjunto de rotación 114 que se puede controlar para girar el sujetador de carga útil 110 y la carga útil 102 (cuando se acopla con el sujetador de carga útil) alrededor de un primer eje de rotación 104. El primer conjunto de rotación 114 se puede acoplar a un segundo conjunto de rotación 118 que se puede configurar para girar el primer conjunto de rotación 114, el sujetador de carga útil 110 y la carga útil 102 alrededor de un segundo eje de rotación 106. El segundo conjunto de rotación 118 se puede acoplar a un tercer conjunto de rotación 122 que se puede configurar para girar el segundo conjunto de rotación 118, el primer conjunto de rotación 114, el sujetador de carga útil 110 y la carga útil 102 alrededor de un tercer eje de rotación 108.
El primer conjunto de rotación 114 puede incluir un primer brazo de rotación 112 que está acoplado al sujetador de carga útil 110 y un primer actuador (como un motor, no mostrado) que puede controlarse para provocar la rotación del primer brazo de rotación 112 con respecto a un segundo brazo de rotación 116 del segundo conjunto de rotación 118. El segundo conjunto de rotación 118 puede incluir el segundo brazo de rotación 116 que está acoplado con el primer conjunto de rotación 114 y un segundo actuador (como un motor, no mostrado) que puede controlarse para provocar la rotación del segundo brazo de rotación 116 con respecto a un tercer brazo de rotación 120 del tercer conjunto de rotación 122. El tercer conjunto de rotación 122 puede incluir el tercer brazo de rotación 120 que está acoplado con el segundo conjunto de rotación 118 y un tercer actuador (como un motor, no mostrado) que puede controlarse para provocar la rotación del tercer brazo de rotación 120 con respecto a un soporte de base (no mostrado) que se puede acoplar al tercer conjunto de rotación 122 (por ejemplo, a través de un conjunto de montaje).
La longitud de un brazo de rotación de los conjuntos de rotación puede ser ajustable a lo largo de una o más direcciones (por ejemplo, por un usuario o por un proceso automatizado). Dichos brazos de rotación ajustables pueden ser útiles para reposicionar un centro de gravedad de al menos una porción de la carga útil, el sujetador de carga útil, el primer conjunto de rotación, el segundo conjunto de rotación y/o el tercer conjunto de rotación más cerca de un eje de rotación de los conjuntos de rotación para proporcionar eficiencia. Por ejemplo, el segundo brazo de rotación 116 puede extenderse o retraerse a lo largo de una o más direcciones (por ejemplo, sustancialmente paralelo al primer eje 104 o al segundo eje 106). De manera similar, el tercer brazo de rotación 120 puede extenderse o retraerse a lo largo de una o más direcciones (por ejemplo, sustancialmente paralelo al segundo eje 106 o al tercer eje 108).
Los ejes de rotación 104, 106 y 108 pueden ser ejes ortogonales. Alternativamente, los ejes de rotación pueden ser ejes no ortogonales. En algunas realizaciones, la rotación alrededor de los ejes de rotación provoca las correspondientes rotaciones de cabeceo (“pitch”), inclinación (“yaw”) y balanceo (“roll”) de la carga útil acoplada 102 (y por tanto del sensor de imágenes 103). Un eje de cabeceo se refiere a un eje de rotación que provoca una rotación de cabeceo para una carga útil. De manera similar, un eje de inclinación se refiere a un eje de rotación que provoca una rotación de inclinación de la carga útil. Y un eje de balanceo se refiere a un eje de rotación que provoca una rotación de balanceo de la carga útil. Un actuador de cabeceo se refiere a un actuador que está configurado para provocar una rotación de cabeceo. Un actuador de inclinación se refiere a un actuador que está configurado para provocar una rotación de inclinación. Y un actuador de balanceo se refiere a un actuador que está configurado para causar una rotación de balanceo.
El primer eje de rotación 104, el segundo eje de rotación 106 y el tercer eje de rotación 108 pueden corresponder respectivamente a un eje de cabeceo, un eje de balanceo y un eje de inclinación, respectivamente. En algunas otras realizaciones, los ejes de rotación 104, 106, 108 pueden corresponder a otra combinación ordenada de ejes, como cabeceo-inclinación-balanceo, balanceo-cabeceo-inclinación, balanceo-inclinación-cabeceo, inclinación-balanceocabeceo o inclinación- cabeceo-balanceo.
El transportador 100 está configurado para permitir que la carga útil se mueva con respecto al transportador. Por ejemplo, el transportador 100 puede controlar la orientación de la carga útil con respecto a menos de tres ejes de libertad. El transportador puede incluir solo un subconjunto de los tres conjuntos de rotación discutidos anteriormente. Por ejemplo, cuando el transportador está configurado para proporcionar dos ejes de libertad, el transportador puede incluir solo dos conjuntos de rotación acoplados entre sí de forma giratoria, como el primer conjunto de rotación 114 y el segundo conjunto de rotación 118 (para proporcionar rotación alrededor del primer eje 104 y el segundo eje 106), el primer conjunto de rotación 114 y el tercer conjunto de rotación 122 (para proporcionar rotación alrededor del primer eje 104 y el tercer eje 108), o el segundo conjunto de rotación 118 y el tercer conjunto de rotación 122 (para proporcionar rotación alrededor del segundo eje 106 y el tercer eje 108). Un conjunto de rotación de los dos conjuntos de rotación se puede acoplar a un sujetador de carga útil 110, mientras que el otro conjunto de rotación se puede acoplar a un soporte de base tal como se describe en otra parte.
De manera similar, cuando el transportador está configurado para proporcionar solo un eje de libertad, el transportador puede incluir solo el primer conjunto de rotación 114 (para proporcionar rotación alrededor del primer eje 104), solo el segundo conjunto de rotación 118 (para proporcionar rotación alrededor del segundo eje 106), o solo el tercer conjunto de rotación 122 (para proporcionar rotación alrededor del tercer eje 108). El conjunto de rotación se puede acoplar a un sujetador de carga útil 110 en un extremo y un soporte de base tal como se describe en otra parte.
La FIG. 2 ilustra otra vista del transportador 100, de acuerdo con las realizaciones. Específicamente, la FIG. 2 muestra una pantalla 124 de una carga útil 102 acoplada al transportador 100. La pantalla 124 puede estar dispuesta en un lado diferente (por ejemplo, opuesto) de la carga útil del sensor de imágenes 103. Alternativamente, la pantalla 124 puede estar dispuesta en el mismo lado del sensor de imágenes 103.
La pantalla se puede utilizar para proporcionar una interfaz de usuario proporcionada por una aplicación que se ejecuta en la carga útil (por ejemplo, una aplicación de seguimiento). En algunas realizaciones, la interfaz de usuario puede configurarse para recibir entradas de un usuario (por ejemplo, selección de un objeto para seguir o indicación de iniciar o terminar el seguimiento), así como mostrar datos de salida al usuario. Los datos de salida pueden incluir imágenes en tiempo real o casi en tiempo real (incluidas imágenes fijas y videos) capturadas por uno o más sensores de imagen de la carga útil. Los datos de salida también pueden incluir datos que no sean imágenes, como un indicador del objetivo seguido (por ejemplo, un cuadro delimitado alrededor del objetivo), información sobre un objetivo que se está siguiendo (por ejemplo, ubicación, tamaño, forma del objetivo), información sobre un modo o estado de seguimiento, y similares.
La FIG. 2 también muestra, con más detalle, un par de sujetadores extensibles 111 del sujetador de carga útil 110. Los sujetadores 111 se pueden extender para alejarse más entre sí (por ejemplo, a lo largo de la dimensión ilustrada 126) para acomodar una carga útil más grande. De manera similar, los sujetadores 111 pueden retraerse para estar más cerca uno del otro (por ejemplo, a lo largo de la dimensión ilustrada 126) para acomodar una carga útil más pequeña.
En varias realizaciones, el transportador descrito en este documento se puede montar en un soporte de base adecuado, que puede incluir un objeto móvil (por ejemplo, una bicicleta, un UAV), un adaptador de base acoplado a un objeto móvil, un trípode, un soporte de mano o similares. La FIG. 3 ilustra un soporte de mano 302 sobre el que se puede montar un transportador 304, de acuerdo con las realizaciones. El transportador 304 se puede acoplar a una carga útil 306 de la manera que se explicó anteriormente. El transportador 304 se puede montar en un soporte de base 302 a través de un conjunto de montaje 308.
En algunas realizaciones, el transportador 304 se puede acoplar de forma liberable (desmontable) al soporte de la base usando un mecanismo de acoplamiento de liberación rápida. Un mecanismo de acoplamiento de liberación rápida puede permitir que un usuario acople y/o desacople mecánicamente rápidamente una pluralidad de componentes con una secuencia corta de movimientos simples (por ejemplo, movimientos de rotación o giro; movimientos deslizantes; presionando un botón, interruptor o émbolo; etc. ).
En algunas realizaciones, el soporte de base 302 puede incluir una unidad de comunicación que está configurada para admitir comunicación por cable y/o inalámbrica con la carga útil 306, el transportador 304, un control remoto, un ordenador conectado u otros dispositivos externos. Por ejemplo, el soporte de base 302 puede incluir uno o más puertos 314 para permitir el intercambio de datos con los dispositivos externos.
En algunas realizaciones, el soporte de base 302 puede incluir componentes de entrada/salida. Los componentes de entrada pueden usarse para controlar o comunicarse de otro modo con un transportador acoplado 304, una carga útil 306, un control remoto o similar. Los ejemplos de dichos componentes de entrada pueden incluir botones, palancas, joysticks, pantalla táctil, micrófono, cámara y similares. Por ejemplo, se pueden usar uno o más botones de control 312 para bloquear, restablecer, cambiar o controlar de otro modo una pose del transportador. Los componentes de salida se utilizan para proporcionar salida o retroalimentación a un usuario. Por ejemplo, los componentes de salida pueden incluir una pantalla, un altavoz y similares.
La FIG. 4 ilustra la comunicación ejemplar 400 entre los componentes discutidos aquí, de acuerdo con la presente invención. Específicamente, una carga útil 402 se comunica con un transportador 404 acoplado a la carga útil para controlar un estado del transportador 404. Opcionalmente, el transportador 404 también puede ser controlado por un soporte de base 406 acoplado al transportador 404. El soporte de base 406 puede configurarse para comunicarse con uno o más dispositivos externos 408.
La carga útil 402 comprende una aplicación 410 configurada para transmitir señales de control al transportador 404 para provocar un cambio en la pose de la carga útil 402. Como se usa aquí, los términos señales de control y datos de control se usan indistintamente para referirse a cualquier información útil para controlar un estado de una entidad controlada (por ejemplo, el transportador 404). Los términos señales de retroalimentación y datos de retroalimentación se usan indistintamente para referirse a cualquier información indicativa de un estado de una entidad controlada (por ejemplo, el transportador 404). En una realización, la aplicación 402 es una aplicación de seguimiento descrita en otra parte del presente documento. Las señales de control pueden ser generadas por la aplicación de seguimiento basándose, al menos en parte, en una desviación detectada de un objetivo desde una posición esperada en una imagen capturada por la carga útil. Una posición de un objetivo generalmente se refiere a las coordenadas de un punto central del objetivo. Las señales de control pueden usarse para compensar o corregir la desviación detectada para mantener el objetivo en la posición esperada o cerca de ella en una imagen subsiguiente capturada por la carga útil.
El transportador 404 incluye una unidad de comunicación 412, un controlador de transportador 414 y una pluralidad de actuadores 416, 418, 420. Cada uno de los actuadores 416, 418 y 420 puede ser parte de los respectivos conjuntos de rotación descritos en las FIG. 1-2. La unidad de comunicación 412 puede ser capaz de comunicación unidireccional o bidireccional con la carga útil 402. Por ejemplo, la unidad de comunicación 412 se puede configurar para recibir las señales de control de la carga útil 402. En algunas realizaciones, la aplicación 410 de la carga útil 402 proporciona las señales de control a una unidad de comunicación (no mostrada) de la carga útil 402, que luego transmite las señales de control al transportador 404. En algunas realizaciones, la unidad de comunicación 412 del portador también se puede configurar para transmitir datos de retroalimentación que incluyen información de estado sobre el transportador 404 a la carga útil 402. Por ejemplo, la información de estado puede ser una disposición espacial, una aceleración, una velocidad u otra información sobre el transportador o un componente del mismo. La información de estado puede generarse en base a datos de sensores proporcionados por sensores acoplados al transportador. En varias realizaciones, la comunicación entre la carga útil 402 y el transportador 404 puede implementarse utilizando una conexión por cable, una conexión inalámbrica o ambas. Por ejemplo, la transmisión de las señales de control y/o desde la carga útil 402 a la unidad de comunicación 412 del transportador 404 se puede realizar mediante una conexión inalámbrica, como Bluetooth, Wifi o comunicación de campo cercano (NFC).
La unidad de comunicación 412 y el controlador de transportador 414 se pueden conectar a cualquier porción adecuada del transportador 404. Por ejemplo, la unidad de comunicación 412 o el controlador de transportador 414 pueden unirse al soporte de carga útil o a cualquiera de los conjuntos de rotación del transportador.
El controlador de transportador 414 puede configurarse para recibir las señales de control de carga útil desde la unidad de comunicación de carga útil 412 y/o transmitir señales de retroalimentación de transportador a la unidad de comunicación 412. La comunicación entre el controlador de transportador 414 y la unidad de comunicación 412 puede llevarse a cabo en cualquier formato de datos adecuado en cualquier canal de comunicación adecuado. Por ejemplo, en un ejemplo, los bits de datos se transmiten secuencialmente utilizando receptores/transmisores asíncronos universales (UARTs). Alternativamente, los bits de datos pueden transmitirse en paralelo.
Las señales de control de carga útil desde la carga útil 402 al transportador 404 se pueden usar para ajustar el estado de uno o más actuadores 416, 418, 420 del transportador 404 para cambiar la posición de la carga útil. Un estado de un actuador puede incluir un estado de encendido o apagado, una aceleración, una velocidad, una posición angular y similares. En algunas realizaciones, las señales de control pueden incluir una, dos o más velocidades angulares para los actuadores respectivos. Las velocidades angulares pueden ser velocidades angulares reales o esperadas (percibidas). Por ejemplo, las señales de control pueden incluir solo una velocidad angular para un actuador con respecto a un eje de rotación del actuador. El eje de rotación puede corresponder o ser sustancialmente paralelo a un eje de cabeceo, inclinación o balanceo para la carga útil. En otro ejemplo, las señales de control pueden incluir dos velocidades angulares, una primera velocidad angular para un primer actuador con respecto a un primer eje de rotación y/o una segunda velocidad angular para un segundo actuador con respecto a un segundo eje de rotación. El primer eje de rotación y el segundo eje de rotación pueden corresponder o ser sustancialmente paralelos a un eje de cabeceo y un eje de inclinación, respectivamente. Alternativamente, el primer eje de rotación y el segundo eje de rotación pueden corresponder o ser sustancialmente paralelos a un eje de cabeceo y un eje de balanceo, o un eje de inclinación y un eje de balanceo. En otro ejemplo más, las señales de control pueden incluir tres velocidades angulares para tres actuadores diferentes. Alternativamente o adicionalmente, las señales de control pueden incluir una o más posiciones angulares para uno o más actuadores.
El controlador de transportador 414 se puede configurar para generar señales de control de transportador para algunos o todos los actuadores 416, 418, 420 en función de las señales de control de carga útil recibidas de la carga útil 402. Las señales de control de transportador pueden incluir cualquier señal para controlar los actuadores a fin de implementar las señales de control de la carga útil recibidas. Las señales de control de transportador pueden incluir, por ejemplo, uno o más valores esperados o reales de par a aplicar por los actuadores respectivos. Por ejemplo, si las señales de control de la carga útil incluyen una velocidad angular con respecto a un eje de cabeceo, el controlador de transportador 414 puede generar un par para el actuador de cabeceo que corresponde a la velocidad angular del eje de cabeceo. De manera similar, si las señales de control de la carga útil incluyen una velocidad angular con respecto a un eje de inclinación, el controlador de transportador 414 puede generar un par para el actuador de inclinación que corresponde a la velocidad angular del eje de inclinación. Si las señales de control de la carga útil incluyen una velocidad angular con respecto a un eje de balanceo, el controlador de transportador 414 puede generar un par para el actuador de balanceo que corresponde a la velocidad angular del eje de balanceo.
El controlador de transportador 414 también puede configurarse para recibir señales de retroalimentación que representan información de estado para los actuadores 416, 418, 420 u otros componentes del transportador. Las señales de retroalimentación pueden incluir, por ejemplo, una o más posiciones angulares de los respectivos actuadores con respecto a sus ejes de rotación. En algunas realizaciones, las señales de retroalimentación se pueden usar para determinar un estado actual de los actuadores u otros componentes del transportador y/o generar señales de control de transportador subsiguientes, como se analiza a continuación.
En algunas realizaciones, el transportador 404 puede comprender uno o más sensores de transportador (no mostrados) útiles para determinar un estado del transportador o la carga útil 402 transportada por el transportador 404. La información de estado puede incluir una disposición espacial (por ejemplo, posición, orientación o actitud), una velocidad (por ejemplo, velocidad lineal o angular), una aceleración (por ejemplo, aceleración lineal o angular) y/u otra información sobre el transportador, un componente del mismo, y/o la carga útil 402. En algunas realizaciones, la información de estado adquirida o calculada a partir de los datos del sensor puede usarse como datos de retroalimentación para controlar la rotación de los componentes del transportador. Los ejemplos de dichos sensores de transportador pueden incluir sensores de movimiento (por ejemplo, acelerómetros), sensores de rotación (por ejemplo, giroscopio), sensores de inercia y similares.
Los sensores de transportador pueden estar acoplados a cualquier porción o porciones adecuadas del transportador (por ejemplo, soporte de carga útil, conjuntos de rotación y/o actuadores) y pueden o no ser móviles en relación con la carga útil. Como alternativa o adicionalmente, al menos algunos de los sensores de transportador pueden acoplarse directamente a la carga útil transportada por el transportador.
Los sensores de transportador pueden estar acoplados con algunos o todos los actuadores del transportador. Por ejemplo, tres sensores de transportador pueden acoplarse respectivamente a los tres actuadores para un transportador de tres ejes y configurarse para medir la conducción de los respectivos actuadores para el transportador de tres ejes. Dichos sensores pueden incluir potenciómetros u otros sensores similares. En una realización, se puede insertar un sensor (por ejemplo, un potenciómetro) en el eje del motor de un motor para medir la posición relativa del rotor del motor y el estator del motor, midiendo así la posición relativa del rotor y el estator y generando una señal de posición representante de la misma. En una realización, cada sensor acoplado al actuador está configurado para proporcionar una señal de posición para el actuador correspondiente que mide. Por ejemplo, se puede usar un primer potenciómetro para generar una señal de primera posición para el primer actuador, se puede usar un segundo potenciómetro para generar una segunda señal de posición para el segundo actuador y se puede usar un tercer potenciómetro para generar una tercera señal de posición para el tercer actuador. En algunas realizaciones, los sensores de transportador también se pueden acoplar a algunos o todos los miembros del marco del transportador. Los sensores pueden ser capaces de transmitir información sobre la posición y/o la orientación de uno o más miembros del marco del transportador y/o la carga útil. Los datos del sensor pueden usarse para determinar la posición y/o la orientación de un sensor de imágenes con respecto a una carga útil y/o un marco de referencia.
Los sensores de transportador pueden proporcionar datos de posición y/u orientación que pueden transmitirse a uno o más controladores de transportador 414, que pueden estar acoplados al transportador y/o a la carga útil. Los datos del sensor se pueden utilizar en un esquema de control basado en retroalimentación. El esquema de control se puede usar para controlar el accionamiento de uno o más actuadores, como uno o más motores. Uno o más controladores 414 pueden generar señales de control para accionar los actuadores. En algunos casos, las señales de control se pueden generar en base al menos en parte a los datos recibidos de los sensores de transportador que indican la disposición espacial del transportador o la carga útil transportada por el transportador. Ventajosamente, el esquema de control se puede usar para proporcionar control de realimentación para accionar los actuadores de un transportador, permitiendo así una rotación más precisa y precisa de los componentes del transportador.
Aun haciendo referencia a la FIG. 4, el controlador de transportador 414 puede implementarse mediante uno o un conjunto de dispositivos controladores como microcontroladores, microprocesadores y controladores de actuadores (también denominados accionadores de actuadores) como arrancadores de motores, arrancadores de voltaje reducido, unidades de velocidad ajustable, controladores de motor inteligentes (IMCs), y similares. En un ejemplo, el controlador de transportador 414 se implementa al menos en parte mediante un microcontrolador o microprocesador integrado en una unidad de medición inercial (IMU). Un controlador de actuador puede incluir componentes de hardware y/o software adecuados para controlar el accionamiento de un actuador correspondiente y recibir señales de posición de un sensor correspondiente (por ejemplo, un potenciómetro).
En algunas realizaciones, el controlador de transportador 414 se implementa mediante un solo dispositivo controlador que controla directamente una pluralidad de actuadores. En algunas otras realizaciones, el controlador de transportador 414 se implementa mediante múltiples niveles de dispositivos controladores. Por ejemplo, un controlador de nivel superior puede controlar una pluralidad de controladores de nivel bajo en función de las señales de control de la carga útil. Cada uno de los controladores de nivel bajo puede entonces controlar directamente uno o más actuadores basándose en las señales de control del controlador de nivel superior. En tal ejemplo, el controlador de nivel superior puede ser un microcontrolador o un microprocesador y los controladores de nivel bajo pueden ser controladores de actuadores. Alternativamente, los controladores de nivel bajo pueden controlar a su vez controladores de nivel aún más bajo, que controlan directamente los actuadores. Y así sucesivamente.
Las señales de control de transportador se pueden transmitir simultáneamente a los controladores de los actuadores o a los controladores de nivel bajo para producir el accionamiento simultáneo de los actuadores. Alternativamente, las señales de control de transportador pueden transmitirse secuencialmente, o solo a uno de los controladores de actuador o controladores de nivel bajo.
En algunas realizaciones, el controlador de transportador se puede adaptar para realizar varios niveles de cálculo en función de las señales de control de la carga útil entrantes desde la carga útil. Las señales de control de carga útil pueden incluir información de control de nivel más alto o más bajo que la información de velocidad angular discutida anteriormente. En algunas realizaciones, las señales de control de carga útil de la carga útil pueden incluir información de control de nivel relativamente alto, como posiciones reales y/o esperadas de un objetivo rastreado. En este caso, el controlador de transportador necesitaría realizar un procesamiento más complejo que cuando las señales de control de carga útil incluyen velocidades angulares. Por ejemplo, en un ejemplo que no está dentro del alcance de las reivindicaciones, el controlador de transportador puede configurarse para determinar cómo cambiar una pose de la carga útil para mantener el objetivo seguido en la posición esperada o cerca de ella, y los cambios en el estado de los actuadores (por ejemplo, velocidades angulares) para lograr la pose cambiada. La determinación puede basarse, al menos en parte, en una pose actual del portador de carga útil o de la carga útil. La pose actual se puede determinar usando datos de sensor de sensores de transportador como se discutió anteriormente. En algunos ejemplos, las velocidades angulares pueden usarse para generar valores de par para los actuadores respectivos. En algunas realizaciones, el controlador de transportador puede implementar un controlador proporcional-integral-derivativo (controlador PID) para determinar las señales de control de transportador basándose en las señales de control de carga útil. En su lugar, la carga útil puede implementar un controlador PID similar cuando la carga útil proporciona información de velocidad angular.
En algunas realizaciones, las señales de control de la carga útil de la carga útil pueden incluir información de control de nivel relativamente bajo, como valores de par para los actuadores respectivos. En este caso, el controlador de transportador necesitaría realizar un procesamiento menos complejo que cuando las señales de control de la carga útil incluyen velocidades angulares. En algunas realizaciones, la información de control de nivel bajo se puede proporcionar directamente a los actuadores o controladores de actuadores.
El transportador 404 puede acoplarse opcionalmente a un soporte de base 406 (tal como un soporte de mano 302 de la FIG. 3). El soporte de base 406 puede incluir un controlador de base 422 que se comunica con el controlador de transportador 414 y/o los actuadores de transportador 416, 418, 420. En varias realizaciones, el controlador de transportador 414, el controlador de base 422 y/o los actuadores 416, 416, 418 pueden comunicarse entre sí utilizando un bus de red de área de controlador (CAN) o cualquier otra red de comunicación adecuada.
El controlador de base 422 puede generar señales de control para controlar los actuadores de transportador. Por ejemplo, el controlador de base 422 puede generar señales de control para los actuadores con el fin de mantener una posición predeterminada de la carga útil transportada por el transportador. Alternativamente, el controlador de base 422 puede generar señales de control para el controlador de soporte 414, que a su vez controla los actuadores de transportador. El controlador de base 422 puede configurarse para generar señales de control basadas en datos de sensores asociados con el transportador 404 o la carga útil 402. El controlador de base 422 puede recibir los datos del sensor de los sensores de transportador discutidos aquí. En algunas realizaciones, el controlador de base puede configurarse para generar señales de control basadas en comandos locales o remotos. Por ejemplo, un usuario puede controlar manualmente el transportador usando botones, palancas, pantalla táctil u otros mecanismos de entrada de usuario provistos por el soporte de base 406. Como otro ejemplo, el soporte de base 406 puede configurarse para recibir datos de control proporcionados por un controlador remoto y dichos datos de control pueden ser utilizados por el controlador de base 422 para generar las señales de control para el transportador 404.
Como se discutió anteriormente, el transportador 404 puede ser controlado solo por la carga útil 402, tanto por la carga útil 402 como por el controlador de base 422, o en un ejemplo que no está dentro del alcance de las reivindicaciones, solo por el controlador de base 422. En algunas realizaciones, el transportador 404 puede controlarse mediante dispositivos adicionales, como un control remoto. Cuando el controlador de transportador 414 recibe señales de control de múltiples fuentes, el controlador de transportador 414 puede configurarse para filtrar, priorizar o combinar las señales de control de las diferentes fuentes. Por ejemplo, si un usuario indica, utilizando un dispositivo de entrada conectado al controlador 422 basado, una indicación para mover el transportador 404, mientras que una aplicación 410 en la carga útil (por ejemplo, una aplicación de seguimiento) también controla el transportador para cambiar una pose de la carga útil para mantener un objetivo en una posición esperada o cerca de ella en una pantalla, entonces tanto el controlador de base 422 como la aplicación 410 pueden enviar señales de control al controlador de transportador 414 al mismo tiempo o en diferentes puntos en el tiempo.
El controlador de transportador puede determinar si y/o cuándo ejecutar las señales de control desde la aplicación 410 o el controlador de base 422 basándose en prioridades predeterminadas. Tal tratamiento preferencial de las señales de control puede ser necesario, por ejemplo, si las señales de control de ambas fuentes están destinadas a controlar el mismo actuador o actuadores. Las señales de control de la fuente seleccionada pueden ejecutarse, mientras que las señales de control de la fuente no seleccionada pueden ignorarse todas juntas o posponerse para ejecutarse en un momento posterior. Alternativamente, el controlador de transportador puede combinar las señales de ambas fuentes según reglas o algoritmos predeterminados. Por ejemplo, si la aplicación pretende controlar un actuador determinado para que gire a una primera velocidad angular y el controlador de base pretende controlar el mismo actuador para que gire a una segunda velocidad angular, entonces el controlador de soporte puede controlar el actuador para que gire a una velocidad angular promedio, un máximo o un mínimo de la primera velocidad angular y la segunda velocidad angular. Como otro ejemplo, si la aplicación tiene la intención de controlar un primer actuador y el controlador de base tiene la intención de controlar un segundo actuador diferente, entonces el controlador de transportador puede generar señales de control tanto para el primer actuador (basado en las señales de control de la aplicación) como para el segundo actuador (basado en las señales de control del controlador de base). En algunas realizaciones, el controlador de transportador puede seleccionar algunas de las señales de control de una fuente determinada para su ejecución, pero ignora o difiere el resto de las señales de control de esa fuente.
En algunas realizaciones, la forma en que el controlador de transportador lleva a cabo las señales de control de múltiples fuentes puede estar determinada por el estado del transportador, la carga útil, el soporte de base o similar. El estado puede incluir una disposición o pose espacial, una aceleración o velocidad, un estado operativo (por ejemplo, modo de seguimiento) y similares. Por ejemplo, las señales de control de la carga útil pueden prevalecer sobre las señales de control del soporte de base cuando el modo de seguimiento está activado. Las señales de control del soporte de base tienen prioridad cuando el soporte de base se mueve rápidamente. Los factores adicionales para determinar cómo llevar a cabo las señales de control de múltiples fuentes pueden incluir factores ambientales como la ubicación geográfica, el tiempo, la temperatura y similares.
Aun haciendo referencia a la FIG. 4, el controlador de base 422 puede comunicarse opcionalmente con uno o más dispositivos externos 408 tales como dispositivos informáticos 424 y accesorios 426. Los dispositivos informáticos 424 pueden incluir ordenadores personales (PC), portátiles, tabletas, teléfonos inteligentes, consolas de juegos, cajas de configuración/decodificadores, dispositivos portátiles y similares. Los accesorios pueden incluir tarjetas de memoria, baterías, pantallas, trípodes, soportes para automóviles, brazos/varillas de extensión, adaptadores de montaje y similares que se pueden unir al soporte de la base. El controlador de base 422 puede configurarse para comunicarse con los dispositivos externos utilizando cualquier canal de comunicación alámbrico o inalámbrico adecuado. En un ejemplo, el controlador de base 422 se puede conectar a la computadora 424 usando una conexión USB y un accesorio 426 usando una conexión UART.
La FIG. 5 ilustra un proceso ejemplar 500 para implementar el seguimiento de objetivos, de acuerdo con las realizaciones. El proceso 500 es realizado por componentes de un transportador como se describe aquí. Algunos o todos los aspectos del proceso 500 (o cualquier otro proceso descrito en este documento, o variaciones y/o combinaciones de los mismos) pueden realizarse bajo el control de uno o más sistemas informáticos/de control configurados con instrucciones ejecutables y pueden implementarse como código (por ejemplo, instrucciones ejecutables, uno o más programas informáticos o una o más aplicaciones) que se ejecutan colectivamente en uno o más procesadores, por hardware o combinaciones de los mismos. El código puede almacenarse en un medio de almacenamiento legible por ordenador, por ejemplo, en forma de un programa de ordenador que comprende una pluralidad de instrucciones ejecutables por uno o más procesadores. El medio de almacenamiento legible por ordenador puede ser no transitorio. El orden en el que se describen las operaciones no pretende interpretarse como una limitación, y cualquier número de las operaciones descritas puede combinarse en cualquier orden y/o en paralelo para implementar los procesos.
En el bloque 502, un transportador recibe una o más señales de control de carga útil desde una carga útil acoplada al transportador. La carga útil está acoplada de forma liberable al transportador. El transportador puede configurarse para permitir que la carga útil se mueva con respecto a hasta tres ejes de libertad (por ejemplo, cabeceo, balanceo, inclinación) como se describe en otra parte del presente documento.
Las señales de control de carga útil pueden ser recibidas por una unidad de comunicación del transportador utilizando una conexión por cable o inalámbrica. Por ejemplo, las señales de control de carga útil pueden recibirse mediante una conexión Bluetooth, Wifi o NFC. La conexión puede admitir comunicación unidireccional o bidireccional entre la carga útil y el transportador.
Las señales de control de carga útil son generadas por la carga útil con el propósito de rastrear objetivos. Por ejemplo, las señales de control de carga útil se generan en respuesta a la detección de una desviación de un objetivo desde una posición esperada del objetivo dentro de una imagen capturada por la carga útil (por ejemplo, usando un sensor de imágenes). Las señales de control de carga útil se utilizan para hacer que el transportador cambie la posición de la carga útil para reducir o corregir la desviación detectada, es decir, acercar el objetivo a la posición esperada del objetivo en imágenes posteriores capturadas por la carga útil.
Las señales de control de carga útil pueden comprender información para lograr una pose esperada para la carga útil. Dicha información puede incluir velocidades angulares, posiciones angulares, par a aplicar y similares con respecto a algunos o todos los ejes de libertad proporcionados por el transportador. Por ejemplo, las señales de control de carga útil pueden incluir información de velocidad angular con respecto a uno, dos o tres ejes para un transportador de tres ejes, información de velocidad angular con respecto a uno o dos ejes para un transportador de dos ejes e información de velocidad angular con respecto a un eje para un transportador de un eje.
En el bloque 504, el transportador genera una o más señales de control de transportador en base a las señales de control de la carga útil. Las señales de control de carga útil son proporcionadas por la unidad de comunicación a un controlador de transportador del transportador. A continuación, el controlador de transportador genera señales de control de transportador basándose en las señales de control de carga útil. Por ejemplo, el controlador del transportador puede determinar un par que se aplicará a un actuador en función de una velocidad angular especificada por las señales de control de la carga útil y un estado actual del actuador (por ejemplo, la posición angular).
La cantidad de procesamiento realizado por el controlador de transportador puede depender del nivel de especificidad de las señales de control de carga útil. Cuanto más bajas o más específicas sean las señales de control de carga útil, se requiere menos procesamiento de las señales de control de carga útil por parte del transportador para usar esas señales de control de carga útil para controlar los actuadores. Por ejemplo, cuando las señales de control de la carga útil especifican instrucciones generales de alto nivel (por ejemplo, cambiar una pose de la carga útil para mover un objetivo cerca de una posición esperada en la imagen), el transportador puede necesitar determinar cómo cambiar la posición de la carga útil para mover el objetivo cerca de la posición esperada y cómo cambiar el estado de los actuadores respectivos para cambiar la pose. Como otro ejemplo, cuando las señales de control de carga útil especifican instrucciones más específicas y de nivel bajo (por ejemplo, aplicar un par de torsión particular a un actuador), el procesamiento realizado por el transportador puede ser mínimo, si es que lo hace.
En un caso extremo, las señales de control de carga útil pueden proporcionarse directamente a los actuadores o controladores de actuadores de nivel bajo.
En el bloque 506, el transportador acciona los actuadores del transportador para cambiar la posición de la carga útil basándose al menos en parte en las señales de control de transportador. Las señales de control de transportador se pueden proporcionar a los actuadores o controladores de actuadores para cambiar un estado de los actuadores (por
1
ejemplo, arranque, parada, velocidad angular) para provocar la rotación de uno o más componentes del transportador. Por ejemplo, los actuadores pueden hacer que el soporte de carga útil y/o los brazos de rotación del transportador se muevan con respecto a uno o más ejes, provocando así que la carga útil acoplada cambie la orientación de la carga útil con respecto a uno o más ejes.
En algunas realizaciones, cambiar la pose de la carga útil permite que la carga útil realice un mejor seguimiento de un objetivo específico. En particular, la carga útil puede capturar imágenes adicionales con la pose cambiada, de modo que el objetivo esté más cerca de una posición esperada del objetivo en las imágenes adicionales que en una imagen anterior antes del cambio de pose.
La FIG. 6 ilustra componentes ejemplares de una carga útil 600, de acuerdo con las realizaciones. En algunas realizaciones, la carga útil 600 puede ser un dispositivo móvil adecuado para capturar imágenes y enviar/recibir información de acuerdo con las realizaciones descritas en este documento. Por ejemplo, sin limitación, en varias realizaciones, la carga útil 600 puede incluir una o más referencias diversas como un teléfono móvil, un teléfono celular, un teléfono inteligente (por ejemplo, sin limitación, un teléfono inteligente como: el teléfono iPhone® disponible de Apple Inc. de Cupertino, California; teléfonos basados en el sistema operativo Android™, disponibles de Google de Mountain View, California; y/o similares), un dispositivo móvil de mano, una tableta, un teclado web, un asistente digital personal (PDA), un portátil, un ordenador de mano, un ordenador portátil, un ordenador de vehículo y/o similares.
La carga útil 600 incluye uno o más sensores de imagen 602, un módulo de entrada 604, una pantalla 606, un módulo de comunicación 608, un módulo de procesamiento 610 y un módulo de almacenamiento 612, todos interconectados a través de un bus o una red similar.
Los sensores de imagen 602 (también denominados cámaras) están configurados para convertir señales ópticas en señales electrónicas. En varias realizaciones, los sensores de imagen pueden incluir dispositivos semiconductores de acoplamiento de carga (CCD), sensores de píxeles activos que utilizan tecnologías complementarias de semiconductores de óxido de metal (CMOS) o semiconductores de óxido de metal de tipo N (NMOS, Live MOS), o cualesquiera otros tipos de sensores. El sensor de imágenes y/o el dispositivo de formación de imágenes pueden configurarse para capturar imágenes, vídeos o cualquier otro dato de imagen con cualquier parámetro adecuado, como ancho, altura, relación de aspecto, número de megapíxeles, resolución o calidad, y similares. Por ejemplo, el dispositivo de formación de imágenes puede configurarse para capturar videos de alta o ultra alta definición (por ejemplo, 720p, 1080i, 1080p, 1440p, 2000p, 2160p, 2540p, 4000p, 4320p, etc.).
Los sensores de imagen pueden estar unidos de forma fija a la carga útil de modo que los sensores de imagen no se muevan con respecto al resto de la carga útil. En tales realizaciones, un cambio de pose para la carga útil se traduce directamente en un cambio de pose equivalente para los sensores de imagen. Alternativamente, los sensores de imagen pueden moverse con respecto a la carga útil. En tales casos, se puede usar un cambio de pose para la carga útil para derivar el cambio de pose para los sensores de imagen en función de una relación espacial entre la carga útil y los sensores de imagen.
El módulo de entrada 604 puede tener uno o más elementos de entrada para permitir que un usuario ingrese información en la carga útil 600. A modo de ejemplo, sin limitación, los elementos de entrada pueden incluir uno o más de un teclado, una bola de seguimiento, una pantalla táctil, un panel táctil, un dispositivo señalador, un micrófono, un sensor biométrico (por ejemplo, un lector de huellas dactilares, un dispositivo de reconocimiento de voz, una cámara, un lector de retina), o cualquier otro mecanismo adecuado para que el usuario proporcione información. Además, los elementos de entrada pueden configurarse para obtener información de un dispositivo externo. Por ejemplo, los elementos de entrada pueden incluir un lector de tarjetas capaz de leer información de una tarjeta de memoria, una tarjeta de pago, una tarjeta de identificación y similares.
Los elementos de entrada pueden ser utilizados por un usuario para proporcionar información a una aplicación de seguimiento que se ejecuta en la carga útil. Por ejemplo, un usuario puede utilizar los elementos de entrada para indicar si iniciar o detener el seguimiento de un objetivo y para proporcionar información sobre un objetivo que será rastreado o rastreado por la carga útil (por ejemplo, utilizando los sensores de imagen). Tal información puede incluir información de objetivo inicial del objetivo a seguir (por ejemplo, posición, tamaño, color, textura), información de objetivo esperada con fines de seguimiento (por ejemplo, posición o tamaño esperado) y similares. Los elementos de entrada también se pueden usar para ajustar otros aspectos de la carga útil o componente de la misma, como parámetros de la cámara (por ejemplo, acercamiento/zoom, enfoque), parámetros de visualización (por ejemplo, brillo) y similares.
El módulo de visualización 606 se puede configurar para mostrar cualquier información a un usuario. Dicha información puede incluir información recibida por la carga útil, como datos de detección (por ejemplo, imágenes capturadas por los sensores de imágenes) o datos de un dispositivo externo (por ejemplo, transportador, soporte de base, otro dispositivo móvil, servidor remoto). Además, la información puede incluir la salida de una aplicación (por ejemplo, una aplicación de seguimiento) que se ejecuta en la carga útil. En algunas realizaciones, el módulo de visualización 606 puede implementarse mediante el mismo dispositivo que implementa el módulo de entrada 606 (por ejemplo, una pantalla táctil). En otras realizaciones, el módulo de visualización 606 puede implementarse mediante un dispositivo que está separado (pero que puede estar acoplado operativamente) al dispositivo que implementa el módulo de entrada 604. En algunas realizaciones, la carga útil 600 puede incluir otros dispositivos de salida distintos del módulo de visualización 606, como altavoces, puertos de red/datos y similares.
El módulo de comunicación 608 puede configurarse para transmitir datos y/o recibir datos de uno o más dispositivos externos (por ejemplo, transportador, soporte de base, estación base, red celular, servidor remoto, otro dispositivo móvil). Por ejemplo, el módulo de comunicación 608 puede transmitir señales de control a un transportador acoplado a la carga útil, las señales de control utilizadas para accionar el transportador para cambiar una disposición espacial de la carga útil. El módulo de comunicación 608 también puede recibir información del transportador, como datos de retroalimentación que indican un estado del transportador o un componente del mismo. El módulo de comunicación 608 puede incluir un transmisor y un receptor configurados respectivamente para transmitir y recibir datos hacia y desde dispositivos externos. En algunas realizaciones, el módulo de comunicación puede incluir un transceptor que combina las funcionalidades del transmisor y el receptor. El módulo de comunicación 608 puede incluir uno o más receptores, transmisores y/o transceptores. El módulo de comunicación 608 puede configurarse para admitir cualquier tipo adecuado de comunicación, incluida la comunicación por cable o inalámbrica. Por ejemplo, el módulo de comunicación puede incluir antenas, sensores inalámbricos (por ejemplo, para detectar señales de Bluetooth, NFC o Wifi), transceptores de radio, tarjetas de red y similares.
La carga útil 600 incluye un módulo de procesamiento 610. El módulo de procesamiento 610 puede tener uno o más procesadores o unidades de procesamiento. Algunos de los procesadores pueden estar especializados para tareas de procesamiento específicas. Por ejemplo, una unidad de procesamiento de gráficos (GPU) 616 puede incluir un circuito electrónico especializado diseñado para manipular y alterar rápidamente la memoria para acelerar la creación de imágenes en una memoria intermedia de cuadros destinada a la salida a una pantalla. Otros procesadores, como una unidad de procesamiento central (CPU) 618, pueden diseñarse para procesamiento de propósito general y compartirse con aplicaciones no relacionadas con gráficos. En algunas realizaciones, las unidades de procesamiento pueden incluir un arreglo de compuertas programables en campo (FPGA) y/o uno o más procesadores ARM.
En algunas realizaciones, la CPU 610 puede incluir uno o más procesadores vectoriales 628 y uno o más procesadores escalares 630. Los procesadores vectoriales 628 pueden configurarse para implementar un conjunto de instrucciones que contenga instrucciones que operen en matrices unidimensionales de datos (vectores). Los procesadores escalares 630 pueden configurarse para implementar instrucciones que operan en elementos de datos individuales. En comparación con los procesadores escalares 630, los procesadores vectoriales 628 pueden mejorar el rendimiento de la CPU 610 con concurrencia.
El módulo de procesamiento 610 puede estar conectado operativamente al módulo de almacenamiento 612. El módulo de almacenamiento 612 puede incluir medios de almacenamiento transitorios y/o no transitorios configurados para almacenar lógica, código y/o instrucciones de programa ejecutables por el módulo de procesamiento 610 y/o datos. Por ejemplo, el módulo de almacenamiento 612 puede almacenar instrucciones de lógica, código y/o programa para un sistema operativo (O/S) 624 y una o más aplicaciones o rutinas 626 para implementar cualquier realización adecuada de los métodos descritos en este documento. Por ejemplo, las aplicaciones 626 pueden incluir una aplicación de seguimiento que implementa los métodos descritos en las FIG. 7-10.
Según la configuración y el tipo de la carga útil 600, los medios de almacenamiento pueden ser volátiles (como la memoria de acceso aleatorio (RAM)) y/o no volátiles (como la memoria de solo lectura (ROM), la memoria flash, etc.). En algunas realizaciones, el módulo de almacenamiento 612 puede incluir diferentes tipos de unidades de memoria. Por ejemplo, el módulo de almacenamiento puede incluir una memoria de visualización (también conocida como memoria de gráficos) 620 y una memoria principal 622. La memoria de visualización 620 puede estar dedicada a la GPU 616 para almacenar datos usados o producidos por la GPU 616. Los ejemplos de memoria de visualización pueden incluir rA m de salida de datos extendida (EDORAM), RAM dinámica multibanco (MDRAM), RAM dinámica síncrona (SDRAM), RAM de gráficos síncronos (SGRAM), RAM de video (VRAM), RAM de ventana (w Ra M), RAM dinámica síncrona de tasa de datos dobles de gráficos (GDDR SDRAM), y similares. La memoria principal 622 puede ser utilizada por la CPU 618 para almacenar datos utilizados o producidos por diversas aplicaciones 626.
En algunas realizaciones, la carga útil 600 puede incluir opcionalmente otros sensores además de los sensores de imagen 602. Por ejemplo, los sensores pueden incluir sensores de inercia (por ejemplo, acelerómetro, giroscopio), sensor de orientación (por ejemplo, magnetómetro), sensor de ubicación (por ejemplo, sensor GPS), sensor de proximidad (por ejemplo, lidar, infrarrojo), sensor de presión (por ejemplo, barómetro), sensor de luz, sensor táctil y similares. Los sensores pueden usarse para determinar un estado de la carga útil 600, como una disposición espacial, velocidad y/o aceleración de la carga útil 6 0 0 .
La FIG. 7 ilustra un proceso ejemplar 700 para el seguimiento de objetivos, de acuerdo con las realizaciones. El proceso 700 se implementa mediante una carga útil 701. La carga útil 701 puede estar soportada por un transportador 702 que proporciona hasta tres ejes de libertad para la carga útil 701, como se describe en otra parte del presente documento. La carga útil 701 se puede configurar para controlar el transportador 702 para mover la carga útil 701 a fin de facilitar el seguimiento de objetivos usando un sensor de imágenes 704 de la carga útil 701.
El sensor de imágenes 704 está configurado para capturar imágenes de un entorno circundante de la carga útil 701. Las imágenes capturadas por el sensor de imágenes 704 pueden ser preprocesadas por la unidad de preprocesamiento 706. La unidad de preprocesamiento 706 puede incluir cualquier hardware, software o una combinación de los mismos. Los ejemplos de la unidad de preprocesamiento 706 pueden incluir una GPU, un arreglo de compuertas programables en campo (FPGA) y similares. La unidad de preprocesamiento 706 se puede acoplar operativamente al sensor de imágenes 704 para el preprocesamiento de los datos de imagen sin procesar antes de que los datos de imagen preprocesados se utilicen para extraer información específica. Los ejemplos de tareas realizadas por la unidad de preprocesamiento 706 pueden incluir conversión de formato, remuestreo, reducción de ruido, mejora de contraste, representación de espacio de escala y similares. En algunas realizaciones, la unidad de preprocesamiento 706 puede implementarse utilizando las técnicas de procesamiento de imágenes analizadas en las FIG. 13-14.
Los datos de imagen, como preprocesados por la unidad de preprocesamiento 706, son procesados adicionalmente por una unidad de seguimiento 708. La unidad de seguimiento 708 está configurada para identificar un objetivo dentro de una o más imágenes capturadas por el sensor de imágenes 704 en base a los datos de imagen preprocesados. Con ese fin, la unidad de seguimiento 708 puede configurarse para realizar cualquiera de las siguientes tareas, incluidas, pero no limitadas a, extracción de características en cualquier nivel adecuado de complejidad, segmentación de imágenes, verificación de datos, reconocimiento de imágenes, registro de imágenes, comparación de imágenes y similares. La unidad de seguimiento 708 puede implementarse mediante una unidad de procesamiento que está operativamente acoplada a la unidad de preprocesamiento 706 (por ejemplo, a través de una conexión de controlador de memoria de propósito general (GPMC)). La unidad de procesamiento 706 puede incluir una o más GPUs, CPUs y similares.
La unidad de seguimiento 708 produce información de seguimiento que representa el estado actual del objetivo que está siendo seguido por la carga útil. La información de seguimiento puede incluir, por ejemplo, una posición actual, tamaño u otras características de un objetivo dentro de una o más imágenes. La información de seguimiento se puede usar para generar datos adicionales para superponerlos o combinarlos con los datos de la imagen original. Por ejemplo, la información de seguimiento se puede usar para generar un cuadro delimitado u otro indicador de seguimiento gráfico adecuado que se muestra con el objeto seguido en una pantalla para que el usuario pueda ver lo que se está siguiendo. La información de seguimiento puede generarse en base a la información de objetivo inicial proporcionada por un usuario a través de la interfaz de usuario 710 proporcionada por una aplicación de la carga útil 701. La información de objetivo inicial puede incluir información sobre un objetivo específico identificado por un usuario o información general sobre un objetivo aún por identificar. Por ejemplo, en algunas realizaciones, la interfaz de usuario 710 puede mostrar una imagen capturada por el sensor de imágenes 704 en una pantalla y un usuario puede interactuar con la interfaz de usuario para indicar el objetivo a seguir en una imagen mostrada. El usuario puede seleccionar un área en la pantalla que corresponda al objetivo. En función de la interacción del usuario, se puede determinar la información de objetivo inicial sobre el objetivo identificado, como la posición del objetivo (por ejemplo, las coordenadas de píxeles), el tamaño y similares.
En algunas realizaciones, en lugar de identificar explícitamente un objetivo a seguir, el usuario puede especificar características generales sobre un objetivo a identificar y seguir, como color, textura, patrón, tamaño, forma, dimensión y similares. Dicha información de objetivo inicial sobre un objetivo no identificado puede ser utilizada por la unidad de seguimiento 708 para buscar e identificar automáticamente el objetivo a seguir en las imágenes utilizando cualquier técnica de reconocimiento de imágenes y/o comparación de imágenes adecuada. En algunas realizaciones alternativas, la información de objetivo inicial puede no recibirse desde la interfaz de usuario 710. En su lugar, la información de objetivo inicial puede codificarse en la lógica de control ejecutada por la unidad de seguimiento 708, almacenarse en un almacén de datos local y/o remoto a la carga útil 701 u obtenerse de otras fuentes adecuadas.
La interfaz de usuario 710 también puede permitir que un usuario especifique la información de objetivo esperada, que especifica las características que se espera que mantenga el objetivo que se está siguiendo en las imágenes capturadas por el sensor de imágenes o en una pantalla. La información de objetivo esperada puede incluir una posición o tamaño esperado dentro de las imágenes o en la pantalla. Por ejemplo, la posición esperada del objetivo seguido puede estar en o cerca del centro de una imagen o pantalla, o fuera del centro. En algunas realizaciones, un usuario puede indicar la posición esperada del objetivo seleccionando un objetivo en una pantalla y arrastrando el objetivo seleccionado a la posición deseada en la pantalla antes de soltar el toque. El tamaño esperado del objetivo seguido puede ser de una cierta cantidad de píxeles. La información de objetivo esperada puede o no ser la misma que la información de objetivo inicial. En algunas realizaciones alternativas, la información de objetivo esperada puede no recibirse desde la interfaz de usuario 710. En su lugar, la información de objetivo esperada puede codificarse en la lógica de control ejecutada por la unidad de seguimiento 708, almacenarse en un almacén de datos local y/o remoto a la carga útil 701 u obtenerse de otras fuentes adecuadas.
La información de objetivo esperada (por ejemplo, la posición de objetivo esperada) y la posición de objetivo actual) se pueden proporcionar a una unidad de control 712. La unidad controladora 712 puede configurarse para determinar una desviación del objetivo del estado esperado determinando la diferencia entre el estado actual del objetivo (por ejemplo, posición o tamaño actual del objetivo) y el estado esperado del objetivo (por ejemplo, posición o tamaño esperado del objetivo) . En respuesta a la desviación detectada, la unidad controladora puede generar señales de control para controlar el transportador 702 (por ejemplo, una o más velocidades angulares) y/o señales de control para la carga útil 701 (por ejemplo, para cambiar el acercamiento o el enfoque del sensor de imágenes) para corregir, reducir o minimizar la desviación en las imágenes subsiguientes capturadas por el sensor de imágenes 704. Los procesos ejemplares para corregir una desviación en la posición del objetivo y el tamaño del objetivo se analizan en las FIGs. 8 y 9, respectivamente.
1
En algunas realizaciones, la unidad controladora 712 puede implementar un mecanismo de retroalimentación de bucle/lazo de control tal como un controlador proporcional-integral-derivativo (PID). El controlador PID se puede configurar para calcular un valor de error como la diferencia entre el estado actual del objetivo (por ejemplo, la posición actual del objetivo o el tamaño actual del objetivo) y un estado esperado del objetivo (por ejemplo, la posición esperada del objetivo o el tamaño esperado del objetivo), e intenta minimizar el error con el tiempo ajustando una variable de control (por ejemplo, una velocidad angular o una distancia focal).
La función de transferencia para el controlador PID puede ser la siguiente ecuación:
Figure imgf000014_0001
En la ecuación anterior, kP, kl, y kD denote los coeficientes para los términos proporcional, integral y derivado, respectivamente. El ajuste de la variable de control (por ejemplo, la velocidad angular con respecto a un eje particular) a un nuevo valor se puede determinar mediante una suma ponderada:
Figure imgf000014_0002
Los parámetros para el controlador PID generalmente se determinan en función de los valores medidos en los experimentos. Los nuevos valores para las variables de control (por ejemplo, velocidades angulares) se pueden transmitir al transportador 702 acoplado a la carga útil 701 como se explica en otra parte de este documento.
La unidad controladora 708 puede implementarse mediante una unidad de procesamiento que comprenda una o más GPUs, CPUs y similares. La unidad de control 708 puede o no ser implementada por la misma unidad de procesamiento que implementa la unidad de seguimiento 708.
La carga útil 701 puede implementar opcionalmente una unidad de enfoque automático 709, que está configurada para mejorar o corregir automáticamente un enfoque del objetivo en función de la posición actual del objetivo determinada por la unidad de seguimiento 708. Se puede utilizar cualquier método de enfoque automático adecuado, como la medición de fase y la detección de contraste. En la detección de contraste, el enfoque automático se logra midiendo el contraste dentro de un campo de sensor a través de la lente. La diferencia de intensidad entre los píxeles adyacentes del sensor generalmente aumenta con el enfoque correcto de la imagen. Por lo tanto, el sistema óptico de la cámara 704 se puede ajustar hasta que se detecte el máximo contraste. En un ejemplo no limitativo, la información de contraste para un objetivo seguido se puede medir usando la siguiente ecuación:
Varianza = ( ^ ( ¡ ( i , j ) — ¡(media)')2) /S
En la ecuación anterior, l(i, j) es el valor de píxel en la posición de objetivo (i, j), l(media) es la media de los valores de píxeles dentro del objetivo, S es el número total de píxeles cubiertos por el objetivo. Durante el proceso de seguimiento, la variación anterior se calcula en tiempo real para el objetivo. Cuando se reduce la varianza, se puede ajustar una distancia focal para aumentar la varianza hasta que la varianza alcanza la convergencia máxima y así se obtiene la distancia focal correcta.
En algunas realizaciones, la carga útil 701 puede implementar opcionalmente una unidad de ajuste de acercamiento 711, que está configurada para ajustar automáticamente un acercamiento del sensor de imágenes para aumentar o disminuir el tamaño percibido del objetivo en base al tamaño actual del objetivo y el tamaño esperado del objetivo, como se analiza con mayor detalle en la FIG. 9.
La unidad de enfoque automático 709 y el módulo de ajuste de acercamiento 711 pueden implementarse mediante una o más unidades de procesamiento que comprenden una o más GPUs, CPUs y similares. La unidad de enfoque automático 709 y el módulo de ajuste de acercamiento 711 pueden o no ser implementados por la misma unidad de procesamiento que implementa la unidad de seguimiento 708 y/o la unidad de controlador 712.
El proceso ilustrado 700 se puede repetir para las imágenes entrantes durante el modo de seguimiento para generar continuamente señales de control para ajustar el transportador 702 con el fin de seguir un objetivo. Mientras que la FIG.
700 ilustra la obtención de la información de objetivo inicial y la información de objetivo esperada desde la interfaz de usuario 710, se entiende que la entrada del usuario ya no es necesaria una vez que la información de objetivo inicial y la información de objetivo esperada se obtienen de la interfaz de usuario 710. En su lugar, la información del objetivo inicial y/o la información de objetivo esperada se pueden almacenar en un módulo de almacenamiento. La unidad de seguimiento 708 y la unidad de controlador 702 pueden recuperar la información de objetivo inicial almacenada y/o la información de objetivo esperada desde el módulo de almacenamiento en lugar de desde la interfaz de usuario 710 para seguir el objetivo en imágenes posteriores, hasta que el usuario decida cambiar la información de objetivo inicial y/o esperada.
En un ejemplo que no está dentro del alcance de las reivindicaciones, una porción del procesamiento discutido anteriormente puede ser realizado por el transportador 702 en lugar de la carga útil 701. Por ejemplo, el controlador 712 puede ser implementado por el transportador 702 en lugar de la carga útil 701. En lugar de proporcionar información de velocidad angular al transportador 702, la carga útil 701 puede configurarse para proporcionar la información de objetivo actual (salida de la unidad de seguimiento 708) y la información de objetivo esperada al transportador 702, que luego determina las velocidades angulares para los ejes respectivos en base a la información de objetivo actual y esperada usando una lógica similar a la implementada por el controlador 712 discutido anteriormente.
La FIG. 8 ilustra un método ejemplar para mantener una posición esperada de un objetivo dentro de una imagen 800, de acuerdo con las realizaciones. La imagen es capturada por un dispositivo de formación de imágenes (por ejemplo, un sensor de imágenes) de una carga útil. La carga útil puede estar acoplada a un transportador que permita que la carga útil se mueva en relación con el transportador con respecto a hasta tres ejes de libertad, como se describe en este documento. Suponga que la imagen tiene un ancho de W píxeles y una altura de H píxeles (donde W y H son números enteros positivos). Una posición dentro de la imagen se puede definir mediante un par de coordenadas a lo largo de un eje horizontal 801 (a lo largo del ancho de la imagen) y un eje vertical 803 (a lo largo de la altura de la imagen), donde la esquina superior izquierda de la imagen tiene coordenadas (0, 0) y la esquina inferior derecha de la imagen tiene coordenadas (W, H).
Suponga que un objetivo, tal y como se captura en la imagen 800, está situado en la posición P (u, v) 802, y la posición de objetivo esperada es P0 (u0, v0) 804 que es diferente de P 802. En algunas realizaciones, la posición esperada del objetivo P0 (u0, v0) puede estar cerca del centro de la imagen, de modo que u0 = W/2, y/o v0 = H/2. En otra realización, la posición esperada del objetivo puede ubicarse en cualquier otro lugar dentro de la imagen (por ejemplo, fuera del centro). En varias realizaciones, la posición esperada del objetivo puede o no ser la misma que la posición de objetivo inicial. Suponiendo que la posición actual P se desvía de la posición esperada P0 de tal manera que la desviación supera un umbral predeterminado (como el expresado por un ®x de u0, y un ®y de v0), entonces se requiere un ajuste para acercar la posición objetivo de P a la posición esperada P0.
En algunas realizaciones, la desviación de la posición objetivo esperada se puede usar para derivar una o más velocidades angulares para rotar el campo de visión del dispositivo de formación de imágenes (por ejemplo, sensor de imágenes) alrededor de uno o más ejes. Por ejemplo, la desviación a lo largo del eje horizontal 801 de la imagen (por ejemplo, entre u y u0) se puede utilizar para derivar una velocidad angular o Y 812 para rotar el campo de visión del dispositivo de formación de imágenes alrededor del eje Y (inclinación) 806, como sigue:
Figure imgf000015_0001
La rotación alrededor del eje Y para el campo de visión de un dispositivo de formación de imágenes se puede lograr mediante una rotación de la carga útil (a través del transportador). En la ecuación (1), a es una constante que se puede predefinir y/o calibrar en función de la configuración del portador. En algunas realizaciones, a es mayor que cero (a> 0). En otras realizaciones, a no puede ser mayor que cero (a < 0). En algunas realizaciones, a se puede usar para asignar un valor de píxel calculado a una cantidad o sensibilidad de palanca de control correspondiente para controlar la velocidad angular alrededor de un cierto eje (por ejemplo, eje de guiñada). En general, la palanca de control se puede usar para controlar el movimiento angular o lineal de un objeto controlable (por ejemplo, el transportador). Mayor cantidad de palanca de control corresponde a mayor sensibilidad y mayor velocidad (para movimiento angular o lineal). En algunas realizaciones, la cantidad de palanca de control o un rango de la misma puede determinarse mediante parámetros de configuración de un sistema de control para el transportador. Los límites superior e inferior del rango de la cantidad de palanca de control pueden incluir cualquier número arbitrario. Por ejemplo, el rango de la cantidad de palanca de control puede ser (1000, -1000) para un sistema de control y (-1000, 1000) para otro sistema de control.
Como ejemplo, suponga que las imágenes tienen un ancho de W = 1024 píxeles y una altura de H = 768 píxeles. Así, el tamaño de las imágenes es de 1024*768. Suponga además que la posición esperada del objetivo tiene una u0 = 512. Por lo tanto, (u -u0) e (-512, 512). Suponga que el rango de la cantidad de palanca de control alrededor del eje de inclinación es (-1000, 1000), entonces la cantidad de palanca de control máxima o la sensibilidad máxima es 1000 y a = 1000/512. Así, el valor de a puede verse afectado por la resolución o el tamaño de la imagen proporcionada por el dispositivo de imágenes, el rango de la cantidad de palanca de control (por ejemplo, alrededor de un determinado eje de rotación), la cantidad de palanca de control máxima o la sensibilidad máxima y/u otros factores.
Como se ilustra aquí, la dirección de la rotación alrededor del eje Y (inclinación) puede depender del signo de u - u0. Por ejemplo, si la posición esperada se ubica a la derecha de la posición real (como se ilustra en la FIG. 8), entonces u - u0 < 0, y el campo de visión necesita rotar en sentido contrario a las agujas del reloj alrededor del eje de inclinación 806 (por ejemplo, girar a la izquierda) para llevar el objetivo a la posición esperada. Por otro lado, si la posición esperada se encuentra a la izquierda de la posición real, entonces u - u0 > 0, y el campo de visión necesita girar en el sentido de las agujas del reloj alrededor del eje de inclinación 806 (por ejemplo, girar a la derecha) para llevar el objetivo a la posición esperada.
Como se ilustra aquí, la velocidad de rotación (por ejemplo, el valor absoluto de la velocidad angular) alrededor de un eje
1
dado (por ejemplo, el eje Y (inclinación)) puede depender de la distancia entre la posición esperada y la posición real del objetivo a lo largo del eje (es decir, | u - u0|). Cuanto mayor sea la distancia, mayor será la velocidad de rotación. Asimismo, cuanto más cercana es la distancia, más lenta es la velocidad de rotación. Cuando la posición esperada coincide con la posición del objetivo a lo largo del eje (por ejemplo, u = u0), entonces la velocidad de rotación alrededor del eje es cero y la rotación se detiene.
El método para ajustar la desviación de la posición objetivo esperada y la posición objetivo real a lo largo del eje horizontal 801, como se explicó anteriormente, se puede aplicar de manera similar para corregir la desviación del objetivo a lo largo de un eje diferente 803. Por ejemplo, la desviación a lo largo del eje vertical 803 de la imagen (por ejemplo, entre v y v0) puede usarse para derivar una velocidad angular rox 814 para el campo de visión del dispositivo de formación de imágenes alrededor del eje X (cabeceo) 808, como sigue:
rnx = ) * (v — v0) donde ) e R (2)
La rotación alrededor del eje X para el campo de visión de un dispositivo de formación de imágenes se puede lograr mediante una rotación de la carga útil (a través de un transportador). Por lo tanto, en la ecuación (2), f ie s una constante que se puede predefinir y/o calibrar en función de la configuración del transportador. En algunas realizaciones, f es mayor que cero f > 0). En otras realizaciones, f no puede ser mayor que cero (f < 0). En algunas realizaciones, f se puede utilizar para asignar un valor de píxel calculado a una cantidad de palanca de control correspondiente para controlar la velocidad angular alrededor de un cierto eje (por ejemplo, el eje de cabeceo). En general, la palanca de control se puede usar para controlar el movimiento angular o lineal de un objeto controlable (por ejemplo, un transportador). Mayor cantidad de palanca de control corresponde a mayor sensibilidad y mayor velocidad (para movimiento angular o lineal). En algunas realizaciones, la cantidad de palanca de control o un rango de la misma puede determinarse mediante parámetros de configuración de un sistema de control de transportador para un transportador. Los límites superior e inferior del rango de la cantidad de palanca de control pueden incluir cualquier número arbitrario. Por ejemplo, el rango de la cantidad de palanca de control puede ser (1000, -1000) para un sistema de control y (-1000, 1000) para otro sistema de control.
Continúe con el ejemplo anterior donde las imágenes tienen un ancho de W = 1024 píxeles y una altura de H = 768 píxeles, suponga que la posición esperada del objetivo tiene un v0 = 384. Por lo tanto, (v - v0) e (-384, 384). Suponga también que el rango de la cantidad de palanca de control alrededor del eje de cabeceo es (-1000, 1000), entonces la cantidad de palanca de control máxima o la sensibilidad máxima es 1000 y f = 1000/384. Así, el valor de f puede verse afectado por la resolución o el tamaño de la imagen proporcionada por el dispositivo de imágenes, el rango de la cantidad de palanca de control (por ejemplo, alrededor de un determinado eje de rotación), la cantidad de palanca de control máxima o la sensibilidad máxima y/u otros factores.
Como se ilustra aquí, la dirección de la rotación alrededor del eje X (inclinación) puede depender del signo de v - v0. Por ejemplo, si la posición esperada se encuentra por encima de la posición real (como se ilustra en la FIG. 8), entonces v -v0 > 0, y el campo de visión necesita girar en el sentido de las agujas del reloj alrededor del eje de cabeceo 808 (por ejemplo, cabeceo hacia abajo) para llevar el objetivo a la posición esperada. Por otro lado, si la posición esperada se encuentra por debajo de la posición real, entonces v - v0 < 0, y el campo de visión necesita girar en sentido contrario a las agujas del reloj alrededor del eje de cabeceo 608 (por ejemplo, cabeceo hacia arriba) para llevar el objetivo a la posición esperada.
Como se ilustra aquí, la velocidad de rotación (por ejemplo, el valor absoluto de la velocidad angular) depende de la distancia entre la posición esperada y la posición real del objetivo (es decir, |v - v0 |) a lo largo de un eje dado (por ejemplo, el eje X (cabeceo)). Cuanto mayor sea la distancia, mayor será la velocidad de rotación. Cuanto más cercana es la distancia, más lenta es la velocidad de rotación. Cuando la posición esperada coincide con la posición del objetivo (por ejemplo, v = v0), entonces la velocidad de rotación es cero y la rotación se detiene.
En algunas realizaciones, los valores de las velocidades angulares calculados anteriormente pueden estar limitados o modificados de otro modo por diversas limitaciones del sistema. Tales restricciones pueden incluir la velocidad máxima y/o mínima que puede alcanzar el transportador, el rango de cantidad de palanca de control o la cantidad de palanca de control máxima o la sensibilidad máxima del sistema de control para el transportador, y similares. Por ejemplo, la velocidad de rotación puede ser el mínimo de la velocidad de rotación calculada y la velocidad máxima permitida.
En algunas realizaciones, se pueden proporcionar indicadores de advertencia cuando las velocidades angulares calculadas necesitan modificarse de acuerdo con las restricciones descritas en este documento. Los ejemplos de dichos indicadores de advertencia pueden incluir texto, audio (por ejemplo, sirena o pitido), visual (por ejemplo, cierto color de luz o luz intermitente), mecánico, cualquier otro tipo de señal adecuada. Dichos indicadores de advertencia pueden ser proporcionados directamente por el transportador. Como alternativa o adicionalmente, la carga útil puede proporcionar indicadores de advertencia (por ejemplo, a través de una pantalla).
La FIG. 9 ilustra un método ejemplar para mantener una posición esperada de un objetivo dentro de una imagen 900, de acuerdo con las realizaciones. Se muestra una imagen ejemplar 900. Suponga que un objetivo 902 es capturado por la imagen 900. El tamaño real del objetivo dentro de la imagen puede ser de s píxeles (tal como calculado como el producto
1
del ancho del objetivo y la altura del objetivo). El tamaño de objetivo esperado S puede ser más pequeño (por ejemplo, el objetivo esperado puede estar representado por 904 y S = s0) o más grande (por ejemplo, el objetivo esperado puede estar representado por 905 y S = s1) que el tamaño real s. El tamaño de objetivo esperado puede o no ser el mismo que el tamaño de objetivo inicial (por ejemplo, tal como se recibe desde una interfaz de usuario). Suponiendo que el tamaño actual s se desvía del tamaño esperado s0 o s1 de tal manera que la desviación supera un umbral predeterminado (como unos ®s píxeles predefinidos), entonces se requiere un ajuste para acercar el tamaño objetivo al tamaño esperado S0 o S1.
Aunque el área de visualización de la imagen y el objetivo se muestra como rectángulos, es solo para fines ilustrativos y no pretende ser una limitación. Más bien, el área de visualización de la imagen y/o el objetivo puede tener cualquier forma adecuada en varias realizaciones, como círculos, óvalos, polígonos y similares. Asimismo, aunque las áreas discutidas en este documento se expresan en píxeles, estas son solo para fines ilustrativos y no pretenden ser limitativos. En otras realizaciones, las áreas pueden expresarse en cualquier unidad adecuada, como megapíxeles, mm2, cm2, pulgadas2 y similares.
La desviación entre el tamaño real del objetivo y el tamaño esperado del objetivo se puede utilizar para derivar el ajuste de los parámetros operativos del dispositivo de formación de imágenes, como el nivel de acercamiento o la distancia focal, para corregir la desviación. Un ejemplo de ajuste de distancia focal F se puede expresar como:
, = - * ( l — s/c¿) donde - e R (3)
Donde y es una constante que se define en base a la configuración del dispositivo de formación de imágenes. En algunas realizaciones, y es mayor que cero (y > 0). En otras realizaciones, y no es mayor que cero (y < 0). El valor de y puede definirse en función de los tipos de lentes y/o dispositivos de imagen.
Si el tamaño real s del objetivo es más pequeño que el tamaño esperado S, entonces F > 0 y la distancia focal aumenta en |F| para aumentar el tamaño del objetivo como se captura en las imágenes. Por otro lado, si el tamaño real s del objetivo es mayor que el tamaño esperado S, entonces F < 0 y la distancia focal disminuye en |F| para reducir el tamaño del objetivo como se captura en las imágenes. Por ejemplo, en una realización, y = 10. Esto significa que, por ejemplo, cuando el tamaño real del objetivo es el doble del tamaño esperado S, la distancia focal debe reducirse en 10 mm en consecuencia (es decir, F = 10 * (1 - 2/1) = -10) y viceversa.
En algunas realizaciones, el ajuste de los parámetros operativos del dispositivo de formación de imágenes, como la distancia focal, puede verse limitado o modificado de otro modo por diversas limitaciones del sistema. Tales restricciones pueden incluir, por ejemplo, las distancias focales máximas y/o mínimas que puede lograr el dispositivo de formación de imágenes. Como ejemplo, suponga que el rango de longitud focal es (20 mm, 58 mm). Suponga además que la distancia focal inicial es de 40 mm. Luego, cuando s > S, la distancia focal debe disminuirse de acuerdo con la ecuación (3); y cuando s < S, la distancia focal debe aumentarse de acuerdo con la ecuación (3). Sin embargo, dicho ajuste está limitado por los límites inferior y superior del rango de longitud focal (por ejemplo, de 20 mm a 58 mm). En otras palabras, la distancia focal posterior al ajuste no debe ser inferior a la distancia focal mínima (por ejemplo, 20 mm) ni superior a la distancia focal máxima (por ejemplo, 58 mm).
Como se discutió anteriormente en la FIG. 8, se pueden proporcionar indicadores de advertencia cuando el ajuste calculado (por ejemplo, la distancia focal) se modifica o se restringe de otro modo de acuerdo con las restricciones descritas en este documento. Los ejemplos de dichos indicadores de advertencia pueden incluir texto, audio (por ejemplo, sirena o pitido), visual (por ejemplo, cierto color de luz o luz intermitente), mecánico, cualquier otro tipo de señal adecuada. En un ejemplo, dichos indicadores pueden ser proporcionados por la carga útil (por ejemplo, a través de la pantalla).
La FIG. 10 ilustra un proceso ejemplar 1000 para implementar el seguimiento de objetivos, de acuerdo con las realizaciones. El proceso 1000 es realizado por componentes de una carga útil como se describe aquí. La carga útil puede estar soportada por un transportador que permita que la carga útil se mueva hasta en tres ejes. La carga útil está configurada para rastrear un objetivo en imágenes capturadas por la carga útil y controlar el portador para cambiar la posición de la carga útil para mantener aproximadamente una posición de objetivo esperada en las imágenes. Opcionalmente, la carga útil puede configurarse para ajustar aspectos del sensor de imagen para mantener aproximadamente un tamaño esperado del objetivo dentro de las imágenes y/o para mejorar el enfoque en el objetivo.
En el bloque 1002, una carga útil recibe la información inicial del objetivo para un objetivo a seguir. La información de objetivo inicial puede incluir características (por ejemplo, posición de píxel, tamaño) asociadas con un objetivo específicamente identificado o aquellas asociadas con un objetivo aún por identificar. La información de objetivo inicial puede recibirse desde una interfaz de usuario proporcionada por una aplicación que se ejecuta en la carga útil. Por ejemplo, un usuario puede interactuar con la interfaz de usuario tocando o seleccionando de otro modo una región asociada con un objetivo deseado en una imagen mostrada por la interfaz de usuario utilizando un dedo, un lápiz óptico o cualquier otro dispositivo de entrada adecuado. La imagen puede haber sido capturada previamente por un sensor de imagen de la carga útil. En función de la interacción del usuario, se puede determinar la información del objetivo inicial. En algunas otras realizaciones, la interfaz de usuario puede permitir que un usuario ingrese información sobre un objetivo
1
aún por identificar, como tamaño, color, textura y similares. En algunas realizaciones, la información del objetivo inicial puede obtenerse usando mecanismos distintos a una interfaz de usuario. Por ejemplo, la información de objetivo inicial puede cargarse previamente en la carga útil o ser proporcionada por otro dispositivo (por ejemplo, dispositivo par, controlador, servidor).
En el bloque 1004, se recibe la información de objetivo esperada para el objetivo. La información de objetivo esperada puede incluir una posición esperada del objetivo (por ejemplo, coordenadas de píxeles dentro de una imagen o en una pantalla), un tamaño esperado del objetivo u otras características esperadas del objetivo seguido dentro de las imágenes capturadas o en una pantalla. La información de objetivo esperada puede ser especificada por un usuario usando una interfaz de usuario de la carga útil usando cualquier dispositivo de entrada adecuado (por ejemplo, pantalla táctil, lápiz), o recibida desde otro dispositivo.
En el bloque 1006, se obtiene una imagen del sensor de imagen. La imagen puede ser la misma imagen que utiliza el usuario para indicar la información de objetivo inicial y/o la información de objetivo esperada, o puede ser una imagen diferente. En algunas realizaciones, los datos de imagen sin procesar del sensor de imagen se pueden preprocesar, tal como se describe en las FIG. 13-14, de modo que los datos de imagen preprocesados puedan ser utilizados por otras unidades de procesamiento para el seguimiento de objetivos.
En el bloque 1008, el objetivo se identifica en la imagen basándose en la información de objetivo inicial. Por ejemplo, si se conocen la posición inicial y el tamaño inicial del objetivo, entonces se puede realizar una búsqueda limitada cerca de la posición inicial en la imagen para un objeto del tamaño inicial. También se puede usar otra información de objetivo inicial, como el color y la textura, para identificar el objetivo. En algunas realizaciones, la información de objetivo inicial puede actualizarse con el tiempo en función de los resultados del procesamiento de imágenes anteriores. Por ejemplo, la información de objetivo inicial puede actualizarse para reflejar las características del objetivo en la última imagen en la que se identificó el objetivo. Las características adicionales del objetivo pueden extraerse de las imágenes y usarse para facilitar una identificación del objetivo más eficiente (por ejemplo, más rápida y/o que requiera menos cómputo).
En algunas realizaciones, se puede mostrar en la imagen un indicador de seguimiento gráfico (por ejemplo, un cuadro delimitado, un óvalo, un círculo u otra forma geométrica) para mostrar la posición actual del objetivo dentro de la imagen. El indicador de seguimiento gráfico se puede actualizar con cada nueva imagen para seguir la posición del objetivo en la nueva imagen.
En el bloque 1010, se detecta una desviación del objetivo desde una posición esperada del objetivo dentro de la imagen. Una vez que se identifica el objetivo, se puede determinar la información de objetivo actual (por ejemplo, posición actual, tamaño actual). La información de objetivo actual se puede comparar con la posición esperada del objetivo para determinar si hay una desviación. En algunas realizaciones, se pueden usar uno o más umbrales predeterminados para determinar si existe una desviación. Por ejemplo, un desplazamiento de la posición de objetivo actual desde la posición de objetivo esperada por menos de un número umbral de píxeles A (por ejemplo, 5 píxeles) puede no considerarse una desviación en la posición de objetivo. Sólo cuando el desplazamiento es igual o superior al umbral A predeterminado se considera una desviación. De manera similar, un cambio en el tamaño del tamaño de objetivo esperado de menos de un número umbral de píxeles B (por ejemplo, 10 píxeles) puede no considerarse una desviación en el tamaño objetivo. Sólo cuando el cambio es igual o superior al umbral B predeterminado se considera una desviación.
En el bloque 1012, se generan una o más señales de control para controlar un transportador que soporta la carga útil para corregir la desviación en imágenes posteriores capturadas por la carga útil. Una corrección de la desviación incluye una corrección completa, donde ya no hay ninguna desviación, o una corrección parcial donde se reduce la desviación. Las señales de control pueden usarse para provocar (directa o indirectamente) un cambio de posición de la carga útil (y por lo tanto el campo de visión del sensor de imagen de la carga útil) con respecto a uno o más ejes. Por ejemplo, como se discute aquí, las señales de control pueden incluir una velocidad angular con respecto a un eje de inclinación para corregir un desplazamiento horizontal y/o una velocidad angular con respecto a un eje de cabeceo para corregir un desplazamiento vertical.
En el bloque 1014, las señales de control se transmiten al transportador. Las señales de control pueden ser transmitidas por un módulo de comunicación analizado en la FIG. 6 y recibidas por una unidad de comunicación 412 del transportador discutido en la FIG. 4. Las señales de control pueden transmitirse a través de una conexión por cable o inalámbrica (por ejemplo, Bluetooth, Wifi, NFC).
En el bloque 1016, los parámetros del sensor de imagen pueden ajustarse opcionalmente, cuando sea necesario, para seguir mejor el objetivo. Los parámetros pueden incluir una distancia focal, nivel de acercamiento, modo de imagen, resolución de imagen, profundidad de campo, exposición, velocidad de la lente, campo de visión y similares. Por ejemplo, si se detecta una desviación del tamaño esperado del objetivo, se puede cambiar la distancia focal del sensor de imagen (por ejemplo, acercar o alejar) para aumentar o disminuir el tamaño del objetivo en imágenes posteriores, tal como se describe en la FIG. 9. Como otro ejemplo, se puede mejorar el enfoque del objetivo usando cualquier técnica de enfoque automático adecuada, tal como se describe en la FIG. 7.
En el bloque 1018, se determina si continuar el seguimiento. La determinación puede basarse en una entrada de usuario
1
a través de la interfaz de usuario. Por ejemplo, el usuario puede indicar que el seguimiento debe finalizar tocando un botón de "detener" en la interfaz de usuario o mediante un controlador (por ejemplo, un soporte de base acoplado al transportador). El proceso 1000 finaliza en el bloque 1020 si se detiene el seguimiento. En algunos casos, un usuario también puede indicar si desea cambiar el objetivo de seguimiento, por ejemplo, tocando o seleccionando un objeto diferente en la pantalla y seleccionando "iniciar". Si se va a realizar el seguimiento de un objetivo diferente, entonces el proceso 1000 vuelve al bloque 1002, donde se obtiene la información de objetivo inicial y/o esperada. Si se va a realizar un seguimiento del mismo objetivo (por ejemplo, el usuario no finalizó el seguimiento o seleccionó un objetivo diferente para realizar el seguimiento), entonces el proceso 1000 vuelve al bloque 1006.
Ventajosamente, el sistema y los métodos descritos proporcionan un seguimiento simple pero efectivo de objetivos mediante cargas útiles (por ejemplo, teléfonos inteligentes). Al controlar directamente un transportador de la carga útil para ajustar la pose de la carga útil, la carga útil puede lograr un cambio de pose más rápido y más preciso que el proporcionado por un usuario humano, lo que da como resultado un seguimiento más efectivo.
El procesamiento de imágenes puede optimizarse. Específicamente, las técnicas descritas se pueden usar para optimizar la transformación de los datos de imagen sin procesar adquiridos por el sensor de imagen a una forma diferente (por ejemplo, tamaño y/o formato) que requiere un proceso de objetivo (es decir, un proceso que toma como introducir los datos transformados). El procesamiento de los datos de imagen sin procesar puede incluir un nuevo muestreo para cambiar el tamaño de píxel de los datos de imagen, convertir los datos de imagen de un formato de color a otro, y similares. Como se discutió en relación con la FIG. 7, los datos de imagen sin procesar capturados por el sensor de imágenes generalmente necesitan ser procesados o transformados (por ejemplo, por la unidad de preprocesamiento 706) para que los datos de imagen sean adecuados para su posterior procesamiento (por ejemplo, por la unidad de seguimiento 708 y la unida de controlador 712 de una aplicación de seguimiento). La velocidad a la que se transforman los datos de imagen sin procesar puede ser importante para el proceso de objetivo. Por ejemplo, es posible que la aplicación de seguimiento deba recibir una imagen con el formato correcto poco después de la captura de una imagen por un sensor de imágenes, para identificar un objetivo en movimiento dentro de la imagen, actualice la imagen en una pantalla para mostrar (por ejemplo, con un cuadro delimitado) el objetivo, y generar señales de control para un transportador y/o un sensor de imágenes para continuar el seguimiento del objetivo casi en tiempo real.
Las tecnologías existentes suelen utilizar recursos informáticos compartidos o de uso general, como la CPU y la memoria principal, para la mayoría de dichas transformaciones de imágenes, lo que da como resultado un rendimiento lento y un uso ineficiente de los recursos. La ralentización del rendimiento puede ser significativa para una aplicación de seguimiento, donde es necesario procesar una gran cantidad de imágenes en un corto período de tiempo para facilitar el seguimiento en tiempo real o casi en tiempo real de un objetivo.
Las técnicas descritas mejoran el rendimiento de dicho procesamiento de imágenes al trasladar la mayor parte de dicho procesamiento de imágenes de los recursos informáticos de uso general a los recursos informáticos dedicados y especializados, como GPU, procesadores vectoriales y memoria de visualización, lo que reduce las paradas o los retardos causados por la contención de los recursos compartidos. Además, las técnicas descritas utilizan recursos de hardware (por ejemplo, GPU) para acelerar algunos de los pasos de procesamiento de imágenes que normalmente se implementan en el software.
Las FIGs. 11-12 ilustran un procesamiento de imagen ejemplar realizado por tecnologías existentes. La FIG. 11 ilustra un primer proceso ejemplar 1100 para el procesamiento de imágenes usando tecnologías existentes. En un ejemplo, el proceso 1100 puede implementarse mediante un dispositivo iOS. Como se ilustra, un sensor de imágenes 1102 del dispositivo puede capturar imágenes y generar datos de imagen sin procesar 1106 (por ejemplo, utilizando un módulo de recopilación de imágenes 1104). Los datos de la imagen sin procesar 1106 pueden digitalizarse y pueden incluir datos de píxeles de la imagen (por ejemplo, valor de escala de grises o información de color para cada píxel) y metadatos de la imagen (por ejemplo, configuraciones de la cámara, como modelo de cámara y número de serie, velocidad de obturación, apertura, distancia focal, resolución).
Los datos de imagen sin procesar 1106 pueden almacenarse en una memoria de visualización 1108 asociada con una GPU 1114. La memoria de visualización 1108 puede ser dedicada para ser utilizada solo por la GPU 1114 o compartida con otras unidades de procesamiento. La GPU 1114 puede configurarse para implementar un módulo de codificación 1112, que recupera un conjunto de datos de imagen de memoria de visualización 1110 (por ejemplo, una muestra bidimensional que representa uno o más cuadros de datos de imagen o una porción de los mismos) de la memoria de visualización 1108 y transforma los datos de la memoria de visualización 1110 en un formato adecuado para ser procesados por una CPU 1132. Por ejemplo, el módulo de codificación 1112 puede configurar el tamaño de los datos de la imagen para que sea igual a la resolución de la cámara (por ejemplo, 1920 x 1080). La salida del módulo de codificación 1112, unidades de píxeles (por ejemplo, bytes de píxeles) de datos de imagen, puede proporcionarse a la memoria principal 1118 y ser utilizada por la c Pu 1132. La c Pu 1132 puede ser una CPU de propósito general configurada para ejecutar diferentes aplicaciones y la memoria principal 1118 puede compartirse entre diferentes aplicaciones.
Dependiendo de la configuración del sensor de imágenes y otras configuraciones (por ejemplo, el sistema operativo del dispositivo), los datos de imagen sin procesar 1106 proporcionados por el sensor de imágenes 1102, los datos de imagen de memoria de visualización 1110 proporcionados por la memoria de visualización 1108 y/o la los datos de imagen 1116
1
proporcionados por la GPU 1114 pueden tener un tamaño de imagen específico (por ejemplo, número de píxeles) y/o un formato específico (por ejemplo, un formato de color o espacio de color). Por ejemplo, un formato de color puede comprender un conjunto ordenado de canales de color. Dicho tamaño y formato pueden denominarse tamaño de imagen de origen (o tamaño de origen) y formato de imagen de origen (o formato de color de origen o formato de origen), respectivamente.
El tamaño de imagen de origen y/o el formato de imagen de origen pueden no ser los mismos que requiere un proceso de objetivo 1130. Los ejemplos de un proceso objetivo pueden incluir un proceso de seguimiento que es implementado por la unidad de seguimiento 708 de la FIG. 8. Por ejemplo, el tamaño de imagen de origen y el formato de imagen de origen pueden ser 1920 x 1080 (igual o diferente que la resolución de píxeles predeterminada del sensor de imágenes 1102) y rojo verde azul alfa (RGBA), respectivamente. Por otro lado, el tamaño de imagen de objetivo (también denominado tamaño de objetivo) y/o el formato de imagen de objetivo (también denominado formato de color de objetivo o formato de objetivo) requerido por el proceso de objetivo 1130 puede ser 640 x 360 y azul verde rojo (BGR), respectivamente, o lo que se determine para el proceso de objetivo 1130. Como tal, los datos de imagen adquiridos por el sensor de imágenes normalmente necesitan transformarse desde el tamaño y/o formato de origen al tamaño y/o formato de objetivo adecuado antes de que los datos de imagen puedan ser utilizados por el proceso de objetivo 1130.
La mayor parte de la transformación de datos que implica el cambio de tamaño y la conversión de formato normalmente la realiza la CPU de uso general 1132 junto con la memoria principal 1118. Como se ilustra en la FIG. 11, la CPU 1132 puede implementar un módulo de remuestreo 1122 configurado para aumentar o disminuir el tamaño de una imagen. En una implementación, se evalúa cada píxel de la imagen (almacenada en la memoria principal 1118) y, para cada píxel, se interpolan sus valores de color de píxel (por ejemplo, usando interpolación bilineal) para obtener una imagen remuestreada con el tamaño de imagen deseado (por ejemplo, 640x360). Los datos de imagen remuestreada pueden almacenarse en la memoria principal 1118.
La CPU 1132 también puede implementar un módulo de conversión de formato 1126 configurado para convertir el formato de color (por ejemplo, RGBA) de los datos de imagen remuestreada 1124 en datos de imagen reformateada 1128 con un formato de color diferente (por ejemplo, BGR). En una implementación, se evalúa cada píxel de la imagen (almacenada en la memoria principal 1118) y para cada píxel, se elimina al menos un canal de color (por ejemplo, el canal A) y se cambia el orden de los canales restantes (por ejemplo, de RGB a BGR). Los datos de imagen reformateada 1128 con el nuevo formato de color pueden almacenarse en la memoria principal 1118 y ser utilizados por el proceso de objetivo 1130.
El enfoque ilustrado en la FIG. 11 adolece de varios inconvenientes. Los datos de la imagen sin procesar primero deben codificarse y copiarse de la memoria de la pantalla a la memoria principal, lo que puede ralentizar el proceso. La mayor parte del procesamiento para convertir los datos de imagen sin procesar implica operaciones en serie píxel por píxel realizadas por una CPU de propósito general a nivel de software, que puede ser lento en comparación con una implementación de hardware. Por ejemplo, tanto el módulo de remuestreo 1122 como el módulo de conversión de formato 1126 se implementan usando operaciones en serie píxel por píxel, que pueden ser lentas en comparación con las operaciones en paralelo. Además, compartir la CPU 1132 y la memoria principal 1118 entre diferentes aplicaciones puede provocar disputas por los recursos y ralentizar el rendimiento de algunas o todas las aplicaciones.
La FIG. 12 ilustra un segundo proceso ejemplar 1200 para el procesamiento de imágenes usando tecnologías existentes. En un ejemplo, el proceso 1200 puede implementarse mediante un dispositivo Android. Los aspectos del proceso 1200 son similares al proceso 1100 descrito anteriormente, excepto que el formato fuente de los datos de imagen es YUVA en lugar de RGBA. Además, se realiza un paso de conversión de formato adicional (por ejemplo, mediante el módulo de conversión de formato 1217 implementado por la CPU 1232) para convertir datos de imagen de la memoria de visualización 1208 a un formato intermedio, y Uv , y almacenar los datos reformateados en la memoria principal 1218.
En consecuencia, el enfoque ilustrado en la FIG. 12 adolece de inconvenientes similares a los discutidos en la FIG. 11. En particular, los datos de imagen sin procesar primero deben codificarse y copiarse desde la memoria de visualización a la memoria principal. La mayor parte del procesamiento para convertir los datos de imagen sin procesar implica operaciones en serie píxel por píxel realizadas por una CPU de propósito general. Aquí, tres módulos (por ejemplo, módulo de conversión de formato 1217, módulo de remuestreo 1222, módulo de conversión de formato 1226) en lugar de dos (como se muestra en la FIG. 11) se implementan utilizando operaciones en serie píxel por píxel.
La FIG. 13 ilustra un proceso ejemplar 1300 para el procesamiento de imágenes que aborda los inconvenientes de las tecnologías existentes, de acuerdo con las realizaciones. El proceso 1300 se implementa mediante una carga útil analizada en este documento. A diferencia de las tecnologías existentes, la mayor parte del procesamiento de imágenes en la FIG. 13 se implementa mediante la GPU mediante aceleración de hardware en lugar de una CPU de uso general, lo que mejora el rendimiento.
Como se ilustra, un módulo de recopilación de imágenes 1304 de un sensor de imágenes 1302 puede capturar imágenes y emitir datos de imágenes sin procesar 1306 que representan las imágenes capturadas. Los datos de imagen sin procesar 1306 se pueden almacenar en la memoria de visualización 1308 dedicada a la GPU 1314. Dependiendo del tipo de sensor de imágenes 1304 y otras configuraciones (por ejemplo, el sistema operativo de la carga útil), los datos de imagen sin procesar pueden tener diferentes formatos u otras características. Por ejemplo, los datos de imagen sin procesar pueden
2
tener un formato RGBA o un formato YUVA para un dispositivo iOS o un dispositivo Android, respectivamente.
En lugar de copiar los datos de la imagen en la memoria principal y volver a muestrear y reformatear los datos de la imagen en la memoria principal mediante una CPU de propósito general, los datos de la imagen se pueden transformar de manera más eficiente en la memoria de visualización 1308 utilizando una GPU 1314. Por ejemplo, un conjunto de datos de imagen 1310 a representar o procesar (por ejemplo, un cuadro de imagen o una porción del mismo) puede recuperarse de la memoria de visualización 1308 y proporcionarse como entrada a un módulo de remuestreo 1312 implementado por la GPU 1314. El módulo de remuestreo 1312 puede configurarse para cambiar el tamaño de la imagen directamente al tamaño de imagen de objetivo (por ejemplo, 640 x 360) requerido por el proceso de objetivo 1330. En lugar de depender de operaciones secuenciales píxel por píxel por una CPU de uso general como se describe en las FIG.
11-12, la GPU 1314 puede programarse para ejecutar operaciones simultáneamente en múltiples píxeles de los datos de la imagen. Dichas operaciones pueden incluir cualquier método de remuestreo adecuado, como métodos de interpolación (por ejemplo, interpolación del vecino más cercano, interpolación bilineal, interpolación bicúbica, interpolación basada en Fourier, interpolación dirigida por el borde), vectorización, conversión SFG y similares.
Los datos remuestreados 1316 pueden procesarse adicionalmente mediante el módulo de conversión de formato 1318, también implementado por la g Pu 1314 junto con la memoria de visualización 1308. La conversión de formato se puede configurar para cambiar el formato (por ejemplo, formato de color) de los datos de imagen remuestreados 1316 de un formato de origen (por ejemplo, RGBA para un dispositivo iOS y YUVA para un dispositivo Android) a un formato de objetivo (por ejemplo, RGB) requerido por el proceso de objetivo 1330. Según los formatos de origen y de objetivo, la conversión de formato puede incluir la transformación y eliminación de canales. La transformación de canales puede incluir cambiar los valores de los canales de color para cada píxel de una imagen. Por tanto, la transformación de canales puede cambiar el formato de los datos de imagen de entrada desde un formato fuente a un formato intermedio. La eliminación de canales puede incluir la eliminación de uno o más valores de canales de color para un píxel. La eliminación de canales puede cambiar el formato de los datos de imagen de entrada del formato intermedio al formato de origen. En algunas realizaciones, el formato de los datos de la imagen se puede cambiar a más de un formato intermedio antes de alcanzar el formato de objetivo.
Algunos aspectos de las operaciones discutidas anteriormente, que normalmente se implementarían secuencialmente de píxel a píxel por una CPU de propósito general, se pueden realizar simultáneamente en hardware con programación de GPU. En realizaciones alternativas, los datos de imagen se pueden convertir en formato antes de remuestrearlos. Cuando se usa el remuestreo para reducir una imagen (por ejemplo, reducir la cantidad de píxeles), el remuestreo antes de la conversión de formato puede ser más eficiente que la conversión de formato antes del remuestreo, porque se reduce la cantidad de datos que se deben reformatear. Lo contrario puede ser cierto cuando se utiliza el remuestreo para ampliar la imagen (por ejemplo, aumentando el número de píxeles).
En varias realizaciones, los módulos de GPU discutidos anteriormente (por ejemplo, el módulo de remuestreo 1312 y el módulo de conversión de formato 1318) pueden implementarse utilizando cualquier interfaz de programación de aplicaciones (API) o kit de desarrollo de software (SDK) compatible con la GPU subyacente 1314.
Los datos de imagen reformateados 1320 que tienen el formato de objetivo (por ejemplo, BGR) pueden proporcionarse a la memoria principal 1324 y ser utilizados por el proceso de objetivo 1326 implementado por la CPU de propósito general 1332. El proceso de objetivo 1326 puede incluir o estar incluido pero no limitado a un proceso de seguimiento discutido aquí. Por ejemplo, el proceso de seguimiento puede usar los datos de imagen redimensionados y reformateados para identificar un objetivo que se va a seguir dentro de la imagen representada por los datos de imagen. Por ejemplo, se puede determinar la posición actual, el tamaño y/u otras características del objetivo dentro de la imagen. La identificación del objetivo puede basarse en la información inicial del objetivo, que puede proporcionarse a través de una interfaz de usuario o de otros medios. En base a la información del objetivo actual, la imagen se puede representar en una pantalla con un indicador de seguimiento visual (por ejemplo, un cuadro delimitado) que indica dinámicamente la información de objetivo actual (por ejemplo, el tamaño actual). La información de objetivo actual se puede utilizar para determinar si existe una desviación de la posición y/o el tamaño esperados del objetivo, y si se pueden requerir acciones correctivas, como se describe en el presente documento. Si se requieren acciones correctivas, se pueden generar señales de control para provocar las acciones correctivas, como señales de control para cambiar el estado de un transportador que transporta la carga útil para provocar un cambio en la posición de la carga útil y, por lo tanto, un cambio en el campo de vista del sensor de imágenes de la carga útil. Las señales de control también pueden incluir instrucciones para cambiar los parámetros del sensor de imágenes (por ejemplo, la distancia focal) para ajustar un enfoque en el objetivo, para acercar o alejar el objetivo, o para provocar otros cambios.
En algunas realizaciones, parte o la totalidad del procesamiento de imágenes (por ejemplo, remuestreo, reformateo) puede realizarse mediante un componente de procesamiento en paralelo de una CPU de uso general para mejorar el rendimiento. Un componente de procesamiento paralelo puede ser capaz de realizar un procesamiento paralelo y puede incluir uno o más procesadores vectoriales, como los procesadores vectoriales 628 descritos en la FIG. 6. La f Ig . 14 ilustra otro proceso 1400 para el procesamiento de imágenes, donde al menos parte del procesamiento lo realiza un procesador vectorial. El proceso 1400 es realizado por una carga útil como se describe en este documento. Como se ilustra, el remuestreo de los datos de imagen puede ser realizado por la GPU 1414 junto con la memoria de visualización 1408, de la manera descrita anteriormente en la FIG. 13.
La porción de transformación de canales de la conversión de formato puede ser realizada por la GPU 1414 junto con la memoria de visualización 1408. Por lo tanto, la transformación de canales puede cambiar el formato de los datos de imagen de entrada desde un formato de origen a uno o más formatos intermedios o al formato de objetivo. En un ejemplo, la información de color para cada píxel de los datos de imagen se representa mediante un conjunto ordenado de datos correspondiente al conjunto ordenado de canales de color para el formato de color de los datos de imagen. Por ejemplo, una codificación RGBA para un píxel puede incluir un byte (8 bits) de datos para el canal R, seguido de un byte de datos para el canal G, seguido de un byte de datos para el canal B y un byte de datos para el canal A. Como otro ejemplo, una codificación YUV de un píxel puede incluir un byte de datos para el canal Y, seguido de un byte de datos para el canal U, seguido de un byte de datos para el canal V. Como otro ejemplo, una codificación BGR de un píxel puede incluir un byte de datos para el canal B, seguido de un byte de datos para el canal G, seguido de un byte de datos para el canal R. En varias realizaciones, la cantidad de datos para codificar cada canal puede ser mayor o menor que un byte en diferentes implementaciones.
La transformación de los canales puede incluir reorganizar el orden de los datos del canal y/o cambiar los datos para los canales. Para cada píxel de los nuevos datos de imagen, su información de color (por ejemplo, datos de canal de color) se puede determinar en base a la información de color del píxel correspondiente en los datos de imagen antiguos. Según el formato de origen y/o el formato de objetivo, se pueden utilizar diferentes algoritmos de transformación de canal. En un ejemplo, como cuando el sistema operativo de la carga útil es iOS, el formato de origen es RGBA y el formato de objetivo es BGR. En este ejemplo, la transformación de canales se realiza para cada píxel utilizando la siguiente matriz de transformación:
Figure imgf000022_0001
Aquí, la nueva codificación de color para cada píxel son los datos del canal B (obtenidos del canal B de la información de color anterior), seguidos de los datos del canal G (obtenidos del canal G anterior), seguidos de los datos del canal R (obtenidos del canal R anterior) y seguido por los datos del canal W (cero). El BGRW es un formato intermedio y el canal adicional W debe eliminarse mediante el proceso de eliminación de canales que se describe a continuación.
En otro ejemplo, como cuando el sistema operativo de la carga útil es Android, el formato de origen es YUV y el formato de objetivo es BGR. En este ejemplo, la transformación de canales incluye no solo el reordenamiento de canales, sino también la transformación de datos. Específicamente, la transformación de canales para cada píxel se realiza utilizando la siguiente matriz de transformación:
Figure imgf000022_0002
Aquí, el canal W se puede agregar a los formatos de origen e intermedio como un canal ficticio porque la GPU solo admite operaciones de cuatro canales. El canal W se eliminará mediante el proceso de eliminación de canales que se describe a continuación.
Los datos transformados del canal (por ejemplo, en un formato intermedio como BGRW) pueden almacenarse en la memoria de visualización 1408 y hacerse accesibles a un procesador externo como un procesador vectorial 1434. El procesador vectorial 1434 puede implementar un módulo de eliminación de canales 1422, que toma los datos transformados del canal (por ejemplo, en formato BGRW) como entrada, elimina el canal de color extra (por ejemplo, el canal W) para cada píxel y almacena los datos eliminados del canal (por ejemplo, en formato BGR) a la memoria principal 1426 para uso del proceso de objetivo 1430 (por ejemplo, proceso de seguimiento). El módulo de eliminación de canales 1422 puede implementarse utilizando cualquier a Pi o SDK adecuado para el procesador vectorial 1434, como el marco de trabajo vImage proporcionado por Apple. En particular, el procesador vectorial 1434 se puede programar para ejecutar operaciones concurrentes en múltiples píxeles, mejorando así el rendimiento sobre las operaciones en serie mediante un procesador escalar (por ejemplo, el procesador escalar 630 de la FIG. 6).
Son posibles variaciones del procesamiento anterior. Por ejemplo, las técnicas de optimización descritas en este documento se pueden utilizar para cambiar el tamaño de las imágenes desde cualquier tamaño de origen adecuado a cualquier otro tamaño de objetivo. Asimismo, las técnicas de optimización descritas en este documento se pueden utilizar para convertir imágenes de cualquier formato de origen adecuado (por ejemplo, que tenga cualquier número y tipo de canales de color) a cualquier otro formato de objetivo adecuado (por ejemplo, que tenga cualquier número y tipo de canales de color). Además, según el formato de origen y el formato de objetivo y las configuraciones de hardware/software de la GPU y/o la CPU, es posible que solo se requiera uno de los pasos de transformación o eliminación del canal para convertir el formato de datos. Por ejemplo, en algunas realizaciones, solo se puede requerir la transformación de canales si el formato de origen es RGBA y el formato de objetivo es BGRA. Es posible que solo se requiera la eliminación de canales si el formato de origen es RGBA y el formato de objetivo es RGB. En algunas realizaciones, el orden de transformación de canales y eliminación de canales se puede invertir para que la eliminación de canales se realice antes de la transformación de canales. La conversión de formato puede requerir la adición de canales en lugar de o además de la eliminación de canales. La GPU o un componente de procesamiento paralelo de la CPU (por ejemplo, uno o más procesadores vectoriales) puede realizar cualquiera o cualquier combinación de los pasos de transformación de canal, eliminación de canal y adición de canal para mejorar el rendimiento.
En comparación con las técnicas convencionales descritas en las FIG. 11-12, las técnicas descritas aquí proporcionan varias ventajas. Debido a que el sensor de imágenes generalmente almacena datos de imágenes sin procesar directamente en la memoria de la pantalla, es más eficiente usar la GPU junto con la memoria de la pantalla y realizar la mayoría de los pasos de procesamiento de imágenes (por ejemplo, remuestreo y reformateo). La GPU puede acceder directamente a la memoria de la pantalla y operar con los datos de imagen almacenados en la memoria de la pantalla, ahorrando el costo asociado con las operaciones de almacenamiento de datos, como la asignación de espacio de almacenamiento en la memoria principal, el almacenamiento de datos en el espacio asignado y la recuperación del espacio. Además, la GPU, con soporte de simultaneidad/concurrencia para el procesamiento de imágenes a nivel de hardware, puede acelerar las operaciones de procesamiento de imágenes que la CPU suele realizar en serie a nivel de software. El uso del componente de procesamiento paralelo de la CPU también mejora el rendimiento al introducir más simultaneidad en las operaciones de procesamiento de imágenes. Además, las técnicas descritas permiten que la CPU dedique más recursos para manejar otros procesos, lo que aumenta el tiempo de respuesta para estos procesos, lo que puede traducirse en una mejor experiencia del usuario. Por ejemplo, un usuario puede experimentar una mejor capacidad de respuesta en una interfaz de usuario proporcionada por una aplicación que ahora recibe más tiempo de CPU.
Si bien aquí se han mostrado y descrito realizaciones preferidas de la presente invención, será obvio para los expertos en la técnica que dichas realizaciones se proporcionan únicamente a modo de ejemplo. A los expertos en la técnica se les ocurrirán ahora numerosas variaciones, cambios y sustituciones sin apartarse de la invención. Deben de entenderse que varios procesos, que pueden traducirse en una mejor experiencia de usuario. Por ejemplo, un usuario puede experimentar una mejor capacidad de respuesta en una interfaz de usuario proporcionada por una aplicación que ahora recibe más tiempo de CPU.
2

Claims (12)

REIVINDICACIONES
1. Un método, que comprende:
capturar una imagen por un sensor de imágenes (103, 602, 704, 1102, 1302, 1304) de una carga útil (102, 306, 402, 600, 701), estando la carga útil (102, 306, 402, 600, 701) acoplada de forma liberable a un transportador (100, 304, 404, 702); identificar, mediante una unidad de seguimiento (708) de la carga útil (102, 306, 402, 600, 701), un objetivo de la imagen; detectar, mediante uno o más procesadores de la carga útil (102, 306, 402, 600, 701), una desviación del objetivo desde una posición esperada de objetivo dentro de la imagen;
derivar una velocidad angular con respecto a un eje de rotación del transportador (100, 304, 404, 702) a partir de la desviación detectada del objetivo; y
generar, mediante uno o más procesadores, una o más señales de control para el transportador (100, 304, 404, 702) en base a la desviación detectada del objetivo, las una o más señales de control que causan que el transportador (100, 304, 404,702) cambie una pose de la carga útil (102, 306, 402, 600, 701) para reducir la desviación detectada en una imagen posterior capturada por el sensor de imágenes (103, 602, 704, 1102, 1302, 1304), donde las una o más señales de control incluyen la velocidad angular.
2. El método de la reivindicación 1, que comprende además preprocesar, mediante uno o más procesadores de la carga útil (102, 306, 402, 600, 701), la imagen capturada por el sensor de imágenes (103, 602, 704, 1102, 1302 , 1304), y generar, mediante los uno o más procesadores, las una o más señales de control basadas en la imagen preprocesada.
3. El método de la reivindicación 2, donde preprocesar la imagen comprende remuestrear la imagen a un tamaño de imagen de objetivo y/o reformatear la imagen a un formato de imagen de objetivo.
4. El método de la reivindicación 3, donde remuestrear y/o reformatear la imagen se realiza simultáneamente en múltiples píxeles usando una unidad de procesamiento de gráficos, GPU, incluida en la carga útil (102, 306, 402, 600, 701).
5. El método de cualquiera de las reivindicaciones 1 a 4, que comprende además identificar, mediante los uno o más procesadores de la carga útil (102, 306, 402, 600, 701), el objetivo dentro de la imagen (800, 900) en base a la información de objetivo inicial.
6. El método de la reivindicación 5, donde la información de objetivo inicial se recibe desde una interfaz de usuario (710) proporcionada por la carga útil (102, 306, 402, 600, 701),
o
donde identificar el objetivo incluye determinar una posición actual del objetivo dentro de la imagen y comprender además provocar el ajuste de una distancia focal del sensor de imágenes (103, 602, 704, 1102, 1302, 1304) en base a la posición actual del objetivo.
7. El método de cualquiera de las reivindicaciones 1 a 4, donde la desviación se detecta en base a la información de objetivo esperada que comprende una posición de objetivo esperada o un tamaño de objetivo esperado.
donde preferiblemente la información de objetivo esperada se recibe desde una interfaz de usuario (710) proporcionada por la carga útil (102, 306, 402, 600, 701).
8. El método de cualquiera de las reivindicaciones 1 a 4, que comprende además transmitir, mediante la carga útil (102, 306, 402, 600, 701), una o más señales de control al transportador (100, 304, 404, 702) utilizando un conexión inalámbrica, preferiblemente una conexión Bluetooth, Wifi o comunicación de campo cercano (NFC).
9. Uno o más medios de almacenamiento legibles por ordenador no transitorios que almacenan instrucciones ejecutables por ordenador que, cuando son ejecutadas por un sistema informático de una carga útil (102, 306, 402, 600, 701) acoplada de manera liberable a un transportador (100, 304, 404, 702), configuran el sistema informático para realizar un método según una de las reivindicaciones anteriores.
10. Un sistema que comprende un transportador (100, 304, 404, 702) y una carga útil (102, 306, 402, 600, 701) acoplada de forma liberable al transportador (100, 304, 404, 702), el transportador (100, 304, 404, 702) estando configurado para soportar la carga útil (102, 306, 402, 600, 701), donde la carga útil (102, 306, 402, 600, 701) comprende:
- un sensor de imágenes (103, 602, 704, 1102, 1302, 1304) configurado para capturar una imagen;
- una unidad de seguimiento (708) configurada para identificar un objetivo de la imagen; y
- uno o más procesadores configurados para detectar una desviación del objetivo de una posición de objetivo esperada dentro de la imagen, derivar una velocidad angular con respecto a uno o más ejes a partir de la desviación detectada del objetivo y generar una o más señales de control de carga útil en respuesta a la detección de la desviación, las una o más señales de control de carga útil que comprenden la velocidad angular,
y donde el transportador (100, 304, 404, 702) comprende:
- uno o más actuadores configurados para permitir la rotación de la carga útil (102, 306, 402, 600, 701) con respecto al transportador (100, 304, 404, 702) con respecto a uno o más ejes;
- una unidad de comunicación (412) configurada para recibir una o más señales de control de carga útil desde la carga útil (102, 306, 402, 600, 701); y
- un controlador de transportador (414) acoplado de manera comunicativa a la unidad de comunicación (412) y los uno o más actuadores, estando configurado el controlador de transportador (414) para controlar los actuadores para cambiar una pose de la carga útil (102, 306, 402, 600, 701) en base a las una o más señales de control de carga útil.
11. El sistema de la reivindicación 13, donde la unidad de comunicación (412) está configurada para recibir las una o más señales de control de carga útil utilizando una conexión inalámbrica, donde la conexión inalámbrica incluye preferiblemente una conexión Bluetooth, Wifi o comunicación de campo cercano (NFC).
12. El sistema de la reivindicación 13, donde el controlador de transportador (414) está configurado además para generar señales de control de transportador para controlar los actuadores en base a las señales de control de carga útil, o
donde el controlador de transportador (414) está además configurado para controlar los actuadores en base a las señales de control de base proporcionadas por un soporte de base (302, 406) acoplado al transportador.
ES16904279T 2016-06-06 2016-06-06 Seguimiento asistido por transportador Active ES2905450T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/084955 WO2017210826A1 (en) 2016-06-06 2016-06-06 Carrier-assisted tracking

Publications (1)

Publication Number Publication Date
ES2905450T3 true ES2905450T3 (es) 2022-04-08

Family

ID=60577450

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16904279T Active ES2905450T3 (es) 2016-06-06 2016-06-06 Seguimiento asistido por transportador

Country Status (6)

Country Link
US (2) US11106928B2 (es)
EP (2) EP3465085B1 (es)
CN (1) CN109477715A (es)
DK (1) DK3465085T3 (es)
ES (1) ES2905450T3 (es)
WO (1) WO2017210826A1 (es)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017167281A1 (zh) * 2016-03-31 2017-10-05 纳恩博(北京)科技有限公司 一种地面移动装置及稳定器、一种云台和机器人头部
TWM560035U (zh) * 2017-11-13 2018-05-11 鄭宇傑 影像追蹤裝置
CN108317379B (zh) * 2018-02-09 2019-01-22 桂林智神信息技术有限公司 控制手持云台的方法、装置及手持云台
WO2019241909A1 (en) * 2018-06-19 2019-12-26 Hangzhou Taro Positioning Technology Co., Ltd. Camera mobile device holder with stablization
WO2020019319A1 (zh) * 2018-07-27 2020-01-30 深圳市大疆创新科技有限公司 云台的控制方法及控制装置、云台、移动小车
USD914794S1 (en) * 2019-04-12 2021-03-30 SZ DJI Technology Co., Ltd. Gimbal with handle
DE102019215537A1 (de) * 2019-10-10 2021-04-15 Robert Bosch Gmbh Verfahren zur Erkennung einer Zielposition einer Anzeige- und/oder Steuereinheit in eine Haltevorrichtung sowie entsprechende Anzeige- und/oder Steuereinheit
EP4058968A4 (en) * 2019-11-15 2023-05-03 Catalina Marketing Corporation PERSONALIZED PRODUCT SERVICE
CN111513492A (zh) * 2020-07-03 2020-08-11 支付宝(杭州)信息技术有限公司 用于陈列物品的智能设备和物品监测的方法
CN111901528B (zh) 2020-08-05 2022-01-18 深圳市浩瀚卓越科技有限公司 拍摄设备稳定器
CN113301189A (zh) * 2021-04-07 2021-08-24 厦门市思芯微科技有限公司 基于CamShift的移动客户端跟随拍摄方法和装置
US11438514B1 (en) * 2021-05-24 2022-09-06 Getac Technology Corporation Performing image collection adjustment within a body-mounted camera
US12132994B2 (en) * 2021-12-17 2024-10-29 Matterport, Inc. Motor mount for image capture of surrounding environment
US12235315B2 (en) * 2022-03-31 2025-02-25 Advantest Test Solutions, Inc. Test system support component exchange system and method

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5012270A (en) * 1988-03-10 1991-04-30 Canon Kabushiki Kaisha Image shake detecting device
DE4413916A1 (de) * 1994-04-21 1995-11-02 Bodenseewerk Geraetetech Einrichtung zur passiven Freund/Feind-Unterscheidung
JPH08321984A (ja) * 1995-03-22 1996-12-03 Sony Corp 自動追尾撮像装置
US6226388B1 (en) * 1999-01-05 2001-05-01 Sharp Labs Of America, Inc. Method and apparatus for object tracking for automatic controls in video devices
US7038709B1 (en) 2000-11-01 2006-05-02 Gilbert Verghese System and method for tracking a subject
CN1554193A (zh) * 2001-07-25 2004-12-08 �����J��ʷ����ɭ 摄像机控制装置及方法
US7046823B2 (en) * 2002-08-01 2006-05-16 Raytheon Company Correlation tracker breaklock detection
US7681846B1 (en) * 2003-07-23 2010-03-23 Vladan Mijailovic Steadying camera support platform
KR100588170B1 (ko) * 2003-11-20 2006-06-08 엘지전자 주식회사 감시용 카메라에서의 프라이버시 마스킹 설정방법
US7742077B2 (en) * 2004-02-19 2010-06-22 Robert Bosch Gmbh Image stabilization system and method for a video camera
DE102004052642A1 (de) * 2004-10-29 2006-05-18 Straßer, Gerald Schwebestativ Vorrichtung zum Stabilisieren von Kameras
IL165190A (en) * 2004-11-14 2012-05-31 Elbit Systems Ltd System and method for stabilizing an image
US7642741B2 (en) * 2005-04-27 2010-01-05 Sidman Adam D Handheld platform stabilization system employing distributed rotation sensors
US8179078B2 (en) * 2005-04-27 2012-05-15 Sidman Adam D Handheld or vehicle-mounted platform stabilization system
JP4709101B2 (ja) * 2006-09-01 2011-06-22 キヤノン株式会社 自動追尾カメラ装置
WO2008128205A1 (en) 2007-04-13 2008-10-23 Presler Ari M Digital cinema camera system for recording, editing and visualizing images
US8064691B2 (en) 2007-05-15 2011-11-22 Creative Lifestyle, Inc. Method for identifying color in machine and computer vision applications
US8212880B2 (en) * 2007-12-20 2012-07-03 Utah State University Research Foundation Three-axis image stabilization system
JP4982407B2 (ja) * 2008-02-22 2012-07-25 株式会社東芝 移動体画像追尾装置及び方法
US9740922B2 (en) * 2008-04-24 2017-08-22 Oblong Industries, Inc. Adaptive tracking system for spatial input devices
DE102008039468A1 (de) * 2008-08-25 2010-03-04 Stefan Reich Vorrichtung und Verfahren zur Lagestabilisierung von Kameras
US20100134632A1 (en) 2008-12-03 2010-06-03 Electronics And Telecommunications Research Institute Apparatus for tracking an object using a moving camera and method thereof
JP5010634B2 (ja) * 2009-03-17 2012-08-29 株式会社東芝 移動体画像追尾装置
JP4810582B2 (ja) * 2009-03-26 2011-11-09 株式会社東芝 移動体画像追尾装置および方法
WO2010116370A1 (en) 2009-04-07 2010-10-14 Nextvision Stabilized Systems Ltd Camera systems having multiple image sensors combined with a single axis mechanical gimbal
US20110228098A1 (en) * 2010-02-10 2011-09-22 Brian Lamb Automatic motion tracking, event detection and video image capture and tagging
US9213220B2 (en) * 2010-04-06 2015-12-15 Youbiq, Llc Camera control
US9681065B2 (en) * 2010-06-15 2017-06-13 Flir Systems, Inc. Gimbal positioning with target velocity compensation
US9007432B2 (en) 2010-12-16 2015-04-14 The Massachusetts Institute Of Technology Imaging systems and methods for immersive surveillance
TWI394087B (zh) 2010-12-31 2013-04-21 Ind Tech Res Inst 追蹤目標物的方法及裝置
TW201234886A (en) * 2011-01-07 2012-08-16 Delphian Systems Llc System and method for access control via mobile device
DE102012217146A1 (de) * 2012-09-24 2014-03-27 Robert Bosch Gmbh Mobile Empfangseinheit, Verfahren zur Bedienung der mobilen Empfangseinheit sowie Computerprogramm
US9137488B2 (en) 2012-10-26 2015-09-15 Google Inc. Video chat encoding pipeline
DE102012111974A1 (de) * 2012-12-07 2014-06-12 Blackcam 4D Gmbh Kamerawagen und Aufnahmesystem
KR20140095333A (ko) 2013-01-24 2014-08-01 한남대학교 산학협력단 영상에서 객체 추적 방법 및 장치
US20140209777A1 (en) * 2013-01-25 2014-07-31 Informericials, Inc. Trigger actuated clamp for smart phone camera
KR20140102443A (ko) * 2013-02-14 2014-08-22 삼성전자주식회사 카메라를 이용한 물체 추적 방법 및 이를 위한 카메라 시스템
WO2014140356A1 (en) * 2013-03-15 2014-09-18 Freefly Systems Inc. Method for enabling manual adjustment of a pointing direction of an actively stabilized camera
US8903568B1 (en) * 2013-07-31 2014-12-02 SZ DJI Technology Co., Ltd Remote control method and terminal
US9561870B2 (en) * 2013-12-10 2017-02-07 SZ DJI Technology Co., Ltd. Carrier having non-orthogonal axes
WO2015101822A1 (en) * 2014-01-02 2015-07-09 Mastortech Limited Camera stabilisation mounting
US20150241713A1 (en) * 2014-02-21 2015-08-27 The Lightco Inc. Camera holder methods and apparatus
CN103984193B (zh) * 2014-03-14 2020-10-16 广州虹天航空科技有限公司 拍摄设备稳定器及其控制方法
CN103927745A (zh) 2014-03-28 2014-07-16 北京中海新图科技有限公司 面向可穿戴设备的跟踪与匹配并行计算方法
US10068311B2 (en) 2014-04-05 2018-09-04 Sony Interacive Entertainment LLC Varying effective resolution by screen location by changing active color sample count within multiple render targets
JP2015207886A (ja) * 2014-04-18 2015-11-19 ソニー株式会社 撮像装置および把持部材
JP6370140B2 (ja) * 2014-07-16 2018-08-08 キヤノン株式会社 ズーム制御装置、撮像装置、ズーム制御装置の制御方法、ズーム制御装置の制御プログラムおよび記憶媒体
EP3060966B1 (en) 2014-07-30 2021-05-05 SZ DJI Technology Co., Ltd. Systems and methods for target tracking
US9219870B1 (en) 2014-07-31 2015-12-22 Apple Inc. Sensor data rescaler for image signal processing
KR20160024143A (ko) * 2014-08-25 2016-03-04 삼성전자주식회사 영상 처리 방법 및 전자 장치
US9554030B2 (en) * 2014-09-29 2017-01-24 Yahoo! Inc. Mobile device image acquisition using objects of interest recognition
CN105485189A (zh) * 2014-10-01 2016-04-13 碧阁系统株式会社 开放式视野维持水平装置
CN204188937U (zh) * 2014-11-13 2015-03-04 梁勇 竖握式三轴陀螺仪电子稳定器
US20180176483A1 (en) 2014-12-29 2018-06-21 Metaio Gmbh Method and sytem for generating at least one image of a real environment
US10091432B2 (en) * 2015-03-03 2018-10-02 Canon Kabushiki Kaisha Image capturing apparatus, control method thereof and storage medium storing control program therefor
CN104680558B (zh) 2015-03-14 2017-07-28 西安电子科技大学 使用GPU硬件加速的Struck目标跟踪方法
US9697796B2 (en) 2015-03-26 2017-07-04 Intel Corporation Adaptive linear luma domain video pipeline architecture
US9243741B1 (en) * 2015-04-20 2016-01-26 Intellectual Fortress, LLC Telescoping monopod apparatus for holding photographic instrument
CN104767906A (zh) * 2015-04-28 2015-07-08 姬志刚 一种高速运动成像检测器
US9927225B2 (en) 2015-05-28 2018-03-27 The Arizona Board Of Regents On Behalf Of The University Of Arizona Measuring dynamic displacement
US20160381271A1 (en) * 2015-06-25 2016-12-29 DelTron Intelligence Technology Limited Handheld camera stabilizer with integration of smart device
CN104914649A (zh) * 2015-06-30 2015-09-16 桂林飞宇电子科技有限公司 一种适用于运动拍摄的稳定器
KR102370374B1 (ko) * 2015-08-04 2022-03-04 삼성전자주식회사 촬상 장치 모듈, 이를 채용한 사용자 단말 장치 및 사용자 단말 장치의 작동 방법
CN105184220B (zh) 2015-08-04 2018-06-29 厦门大学 基于gpu的交替霍夫森林实时目标跟踪方法
US9648261B2 (en) 2015-08-26 2017-05-09 Apple Inc. Account for clipped pixels in auto-focus statistics collection
JP6574645B2 (ja) * 2015-08-28 2019-09-11 キヤノン株式会社 撮像装置を制御する制御装置、撮像装置の制御方法、及びプログラム
US9754182B2 (en) 2015-09-02 2017-09-05 Apple Inc. Detecting keypoints in image data
CN107883122B (zh) 2015-09-29 2019-11-01 深圳市大疆灵眸科技有限公司 手柄云台及其控制方法
JP6590628B2 (ja) * 2015-10-09 2019-10-16 キヤノン株式会社 撮像装置、その制御方法、およびプログラム、並びに記憶媒体
CN105405138B (zh) 2015-11-10 2018-05-29 上海交通大学 基于显著性检测的水面目标跟踪方法
CN105447811A (zh) 2015-11-23 2016-03-30 武汉珞珈德毅科技股份有限公司 空间数据处理方法、装置及系统
US10602187B2 (en) 2015-11-30 2020-03-24 Intel Corporation Efficient, compatible, and scalable intra video/image coding using wavelets and HEVC coding
CN105486288A (zh) * 2015-11-30 2016-04-13 上海电机学院 一种基于机器视觉的视觉伺服对准系统
US10270973B2 (en) * 2015-12-08 2019-04-23 Canon Kabushiki Kaisha Control device and imaging apparatus with a subject selectable mode with higher image blur correction
CN205226838U (zh) * 2015-12-26 2016-05-11 武汉智能鸟无人机有限公司 一种带跟踪功能的手持云台
CN105513087A (zh) 2016-03-03 2016-04-20 北京志光伯元科技有限公司 激光瞄准与跟踪设备及其控制方法
CN105592269B (zh) 2016-03-03 2019-03-15 司马大大(北京)智能系统有限公司 运动目标捕捉与跟踪设备及运动目标捕捉与跟踪方法
US10116916B2 (en) 2016-03-17 2018-10-30 Nvidia Corporation Method for data reuse and applications to spatio-temporal supersampling and de-noising
WO2017167281A1 (zh) * 2016-03-31 2017-10-05 纳恩博(北京)科技有限公司 一种地面移动装置及稳定器、一种云台和机器人头部

Also Published As

Publication number Publication date
WO2017210826A1 (en) 2017-12-14
EP3465085B1 (en) 2021-12-29
EP3465085A1 (en) 2019-04-10
US11568626B2 (en) 2023-01-31
CN109477715A (zh) 2019-03-15
EP3465085A4 (en) 2019-12-25
US11106928B2 (en) 2021-08-31
US20210390327A1 (en) 2021-12-16
US20190108412A1 (en) 2019-04-11
EP3982626A1 (en) 2022-04-13
DK3465085T3 (da) 2022-03-07

Similar Documents

Publication Publication Date Title
ES2905450T3 (es) Seguimiento asistido por transportador
US20210150732A1 (en) Image processing for tracking
US10412302B2 (en) Image processing apparatus, image processing method, and imaging system
US10992862B2 (en) Electronic apparatus and method for controlling electronic apparatus thereof
US9135678B2 (en) Methods and apparatus for interfacing panoramic image stitching with post-processors
US11151731B2 (en) Apparatus and method for efficient regularized image alignment for multi-frame fusion
WO2018032436A1 (zh) 云台控制方法、装置、存储介质以及无人机
US20150181123A1 (en) Image orientation adjustment based on camera orientation
CN108805938B (zh) 一种光学防抖模组的检测方法、移动终端及存储介质
CN114765667A (zh) 用于多视图拼接的固定图案校准
US11195259B2 (en) Apparatus and method for dynamic multi-camera rectification using depth camera
US11094041B2 (en) Generation of bokeh images using adaptive focus range and layered scattering
US9843724B1 (en) Stabilization of panoramic video
US11373273B2 (en) Method and device for combining real and virtual images
WO2015101979A1 (en) Device and method with orientation indication
US10785470B2 (en) Image processing apparatus, image processing method, and image processing system
CN100451544C (zh) 一种基于视频图像测量飞行器姿态参数的方法
US10540809B2 (en) Methods and apparatus for tracking a light source in an environment surrounding a device
US10218920B2 (en) Image processing apparatus and control method for generating an image by viewpoint information
KR102629927B1 (ko) 전자 장치 및 이의 제어 방법
CN114157848B (zh) 投影设备校正方法、装置、存储介质以及投影设备
US20160255265A1 (en) Operating method and apparatus for detachable lens type camera
CN108564533A (zh) 周视瞄准镜中图像消旋及全景图像拼接技术
US20240257301A1 (en) Information processing apparatus and information processing system
WO2021107384A1 (en) Generation of bokeh images using adaptive focus range and layered scattering