BR102018075714A2 - Método e sistema de segmentação semântica recorrente para processamento de imagens - Google Patents

Método e sistema de segmentação semântica recorrente para processamento de imagens Download PDF

Info

Publication number
BR102018075714A2
BR102018075714A2 BR102018075714-8A BR102018075714A BR102018075714A2 BR 102018075714 A2 BR102018075714 A2 BR 102018075714A2 BR 102018075714 A BR102018075714 A BR 102018075714A BR 102018075714 A2 BR102018075714 A2 BR 102018075714A2
Authority
BR
Brazil
Prior art keywords
semantic
current
semantic segmentation
particularities
frame
Prior art date
Application number
BR102018075714-8A
Other languages
English (en)
Inventor
Shahar Fleishman
Naomi Ken Korem
Mark Kliger
Original Assignee
Intel Corporation
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 Intel Corporation filed Critical Intel Corporation
Publication of BR102018075714A2 publication Critical patent/BR102018075714A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/261Image signal generators with monoscopic-to-stereoscopic image conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Signal Processing (AREA)
  • Evolutionary Biology (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Image Analysis (AREA)

Abstract

um sistema, artigo e método de segmentação semântica recorrente para processamento de imagens levando em conta a segmentação semântica histórica.

Description

ANTECEDENTES [0001] A visão por computador fornece capacidades visuais aos computadores ou às máquinas automatizadas. Desse modo, é desejável na visão por computador fornecer a esses sistemas a capacidade de raciocinar sobre o mundo físico sendo capaz de entender o que está sendo visto em 3D e em imagens capturadas por câmeras, por exemplo. Em outras palavras, as aplicações na robótica, realidade virtual (RV), realidade aumentada (RA) e realidade mesclada (RM) podem necessitar entender o mundo em torno do robô ou da pessoa fornecendo o ponto de vista nas aplicações. Por exemplo, um robô necessita entender o que vê de modo a manipular (agarrar, mover, etc.) objetos. As aplicações RV, RA ou RM necessitam de entender o mundo em torno da pessoa fornecendo o ponto de vista de modo que quando a pessoa se move nesse mundo, a pessoa veja como evitar obstáculos nesse mundo, por exemplo. Essa capacidade permite igualmente que esses sistemas de visão por computador adicionem objetos virtuais semanticamente plausíveis ao ambiente mundial. Desse modo, um sistema que entenda que está vendo uma lâmpada pode entender o propósito e a operação da lâmpada. Para esses propósitos, pode ser formada uma representação semântica 3D do mundo na forma de um modelo de segmentação semântica (ou somente modelo semântico) usando técnicas de segmentação semântica 3D.
[0002] Essas técnicas de segmentação semântica muitas vezes envolvem construção de um modelo geométrico 3D, e depois a construção de um modelo semântico 3D com base no modelo geométrico onde o modelo semântico 3D é formado por voxels, aos
Petição 870180161488, de 11/12/2018, pág. 80/234
2/59 quais são atribuídas, a cada um deles, definições para o objeto do qual esses voxels fazem parte em um espaço 3D, como por exemplo mobiliário como cadeira, sofá, mesa ou partes da sala, como por exemplo chão ou parede, etc. O modelo semântico 3D é atualizado ao longo do tempo segmentando um frame atual para formar um frame segmentado, e registrando o frame segmentado no modelo com base em regras heurísticas ou em uma atualização Bayesiana, bem como na atual pose de câmera usada para formar o frame atual. O modelo semântico pode então ser usado por diferentes aplicações, como por exemplo visão por computador, para efetuar tarefas ou a análise do espaço 3D como descrito acima.
[0003] Todavia, essa atualização do modelo de segmentação semântica é muitas vezes imprecisa e resulta em baixo desempenho, uma vez que não leva adequadamente em conta a história da atualização semântica. Em outras palavras, a segmentação semântica é muitas vezes atualizada um frame de cada vez. Um frame atual é semanticamente segmentado para formar um frame segmentado ou de etiqueta, e isso é repetido para frames atuais individuais em uma sequência de vídeo. Cada frame semanticamente segmentado, dependendo da pose de uma câmera (ou um sensor) usada para formar o frame atual, é depois usado para atualizar o modelo semântico. Isso é tipicamente efetuado sem levar em conta a sequência ou história de atualização semântica que ocorreu anteriormente durante uma sequência de vídeo enquanto é efetuada a segmentação semântica do frame atual para formar o frame segmentado. Isso resulta em uma análise significativamente menos precisa resultando em erros e imprecisões em atribuições semânticas aos vértices ou voxels no modelo semântico.
DESCRIÇÃO DAS FIGURAS [0004] O material aqui descrito é ilustrado como exemplo e não
Petição 870180161488, de 11/12/2018, pág. 81/234
3/59 como limitação nas figuras anexas. Para simplicidade e clareza da ilustração, os elementos ilustrados nas figuras não se encontram necessariamente no tamanho real. Por exemplo, as dimensões de alguns elementos podem ser exageradas relativamente a outros elementos por motivos de clareza. Ademais, quando considerado apropriado, foram repetidas etiquetas de referência entre as figuras para indicar elementos correspondentes ou análogos. Nas figuras: [0005] a Figura 1 é um fluxograma esquemático mostrando um método de segmentação semântica convencional;
[0006] a Figura 2 é uma ilustração de uma imagem com segmentação geométrica;
[0007] a Figura 3 é uma ilustração de uma segmentação semântica de uma imagem por classificações etiquetadas;
[0008] a Figura 4 é um fluxograma de um método de segmentação semântica de imagens de acordo com as implementações aqui;
[0009] as Figuras 5A e 5B são um fluxograma detalhado de um método de segmentação semântica de imagens de acordo com as implementações aqui;
[0010] a Figura 6 é um diagrama esquemático de um sistema para efetuar segmentação semântica de imagens de acordo com as implementações aqui;
[0011] a Figura 7 é uma vista de perto de uma porção de uma imagem com segmentação semântica de acordo com as implementações de segmentação semântica aqui reveladas;
[0012] a Figura 8 é uma unidade de segmentação semântica do sistema da Figura 6 de acordo com as implementações de segmentação semântica aqui reveladas;
[0013] a Figura 9 é um diagrama ilustrativo de um sistema de exemplo;
[0014] a Figura 10 é um diagrama ilustrativo de outro sistema de
Petição 870180161488, de 11/12/2018, pág. 82/234
4/59 exemplo; e [0015] a Figura 11 ilustra outro dispositivo de exemplo, tudo disposto de acordo com, pelo menos, algumas implementações da presente revelação.
DESCRIÇÃO DETALHADA [0016] Uma ou mais implementações são agora descritas com referência às figuras inclusas. Embora sejam discutidas configurações e disposições específicas, convém entender que isso é efetuado somente para efeitos ilustrativos. Os versados na técnica irão reconhecer que podem ser empregues outras configurações e disposições sem sair do espírito e escopo da descrição. Será evidente para os versados na técnica que as técnicas e/ou disposições aqui descritas podem igualmente ser empregues em uma variedade de outros sistemas e aplicações para além dos aqui descritos.
[0017] Embora a seguinte descrição apresente várias implementações que podem se manifestar em arquiteturas, como por exemplo arquiteturas de sistema em um chip (SoC - System On a Chip), a implementação das técnicas e/ou disposições aqui descritas não se restringe a arquiteturas e/ou sistemas de computação particulares e as mesmas podem ser implementadas por qualquer arquitetura e/ou sistema de computação para propósitos similares. Por exemplo, várias arquiteturas empregando, por exemplo, múltiplos chips de circuito integrado (CI) e/ou pacotes, e/ou vários dispositivos de computação e/ou dispositivos eletrônicos de consumo (EC), como por exemplo dispositivos de imagem, câmeras digitais, smartphones, webcams, painéis de videogame ou consolas, decodificadores de televisão, tablets, etc., em que qualquer um pode ter sensores e/ou projetores de luz para efetuar detecção de objetos, medição de profundidade e outras tarefas, e podem implementar as técnicas e/ou disposições aqui descritas. Ademais, embora a seguinte descrição
Petição 870180161488, de 11/12/2018, pág. 83/234
5/59 possa apresentar inúmeros detalhes específicos, como por exemplo implementações lógicas, tipos e inter-relações de componentes de sistema, opções de integração/particionamento lógico, etc., a matéria em discussão reivindicada pode ser praticada sem esses detalhes específicos. Em outras instâncias, algum material, como por exemplo estruturas de controle e sequências de instruções de software completas, pode não ser mostrado em detalhe de modo a não ocultar o material aqui revelado. O material aqui revelado pode ser implementado em hardware, firmware, software ou qualquer combinação dos mesmos.
[0018] O material aqui revelado pode igualmente ser implementado como instruções armazenadas em uma memória ou um meio legível por máquina, que podem ser lidas e executadas por um ou mais processadores. Um meio legível por máquina pode incluir qualquer meio e/ou mecanismo para armazenamento ou transmissão de informações em uma forma legível por uma máquina (por exemplo, um dispositivo de computação). Por exemplo, um meio legível por máquina pode incluir memória somente de leitura (ROM - Read-Only Memory); memória de acesso aleatório (RAM - Random Access Memory); meios de armazenamento de disco magnético; meios de armazenamento óptico; dispositivos de memória flash; formas elétricas, ópticas, acústicas ou outras de sinais propagados (por exemplo, ondas portadoras, sinais infravermelhos, sinais digitais, etc.) e outros. Em outra forma, pode ser usado um artigo não transitório, como por exemplo um meio legível por computador não transitório, com qualquer um dos exemplos mencionados acima ou outros exemplos, à exceção de não incluir um sinal transitório per se. Inclui os elementos para além de um sinal per se que possam reter dados temporariamente de uma maneira transitória, como por exemplo RAM, etc.
Petição 870180161488, de 11/12/2018, pág. 84/234
6/59 [0019] As referências no relatório descritivo a uma implementação, uma implementação de exemplo, etc., indicam que a implementação descrita pode incluir uma particularidade, estrutura ou característica particular, mas todas as implementações podem não incluir necessariamente a particularidade, estrutura ou característica particular. Além do mais, essas expressões não se referem necessariamente à mesma implementação. Ademais, quando uma particularidade, estrutura ou característica particular é descrita em conexão com uma implementação, é sugerido que é do conhecimento de um versado na técnica que essa particularidade, estrutura ou característica pode ser efetuada em conexão com outras implementações, independente de ser ou não aqui explicitamente descrito.
[0020] Sistemas, artigos e métodos para fornecer segmentação semântica recorrente para processamento de imagens.
[0021] Como mencionado, a visão por computador muitas vezes é usada para raciocinar sobre o mundo físico. As aplicações na robótica, realidade virtual (RV), realidade aumentada (RA) e realidade mesclada (RM) podem necessitar entender o mundo em torno do sensor de câmera, quer o sensor de câmera se encontre em um robô quer para o ponto de vista (POV - Point of View) de um usuário. Por exemplo, um robô pode necessitar entender o que vê de modo a manipular (agarrar, mover, etc.) objetos. As aplicações RV/RA/RM podem necessitar entender o mundo de modo a evitar obstáculos à medida que o usuário se move, e adicionar objetos virtuais semanticamente plausíveis ao ambiente. Para esse propósito, pode ser usada uma representação semântica 3D do mundo na forma de um modelo semântico 3D.
[0022] Relativamente à Figura 1, algumas soluções existentes efetuam segmentação semântica 3D usando câmeras de profundidade
Petição 870180161488, de 11/12/2018, pág. 85/234
7/59 de esquema de cores vermelho-verde-azul (referido como RGBD Red-Green-Blue color scheme Depth) que forneçam dados de imagem de luminância e cores, bem como mapas de profundidade da imagem. Isso pode incluir a obtenção de imagens de uma única câmera (monocular) se movendo em torno de uma cena ou sistemas estéreo que usem múltiplas câmeras para capturar a mesma cena de diferentes ângulos. Geralmente, a segmentação semântica 3D pode primeiro incluir a construção de um modelo geométrico 3D desde os dados de imagem e profundidade e depois registrando imagens semanticamente segmentadas no modelo geométrico para formar um modelo semântico 3D. Desse modo, relativamente à Figura 1, pode ser efetuado um processo semântico 3D 100 em três operações principais: (1) um primeiro estágio geométrico ou canal direto 102 que use um algoritmo RGBD-localização e mapeamento simultâneos (RGBD-SLAM - Simultaneous Localization And Mapping) denso para reconstrução geométrica 3D, (2) um segundo estágio 104 que efetue segmentação semântica com base em um frame atual, e (3) um terceiro estágio de atualização de modelo semântico 106 que efetue uma atualização do modelo semântico 3D (com base em regras heurísticas ou em uma atualização Bayesiana).
[0023] Relativamente à operação de geração de modelo geométrico 3D 102, a mesma pode ter duas partes: (i) encontrar a posição da câmera de frames individuais e (ii) mapear o ambiente em torno da câmera. Segundo uma forma de exemplo, e inicialmente, isso pode envolver a obtenção de uma imagem de profundidade de entrada ou mapa de profundidade 108 do frame atual formado por triangulação, por exemplo, e além dos dados de croma ou luminância, como por exemplo dados RGB, geralmente referidos aqui como dados de imagem do frame atual, ou o próprio frame atual. O mapa de profundidade 108 e o frame atual podem depois ser usados para
Petição 870180161488, de 11/12/2018, pág. 86/234
8/59 formar um modelo geométrico 3D 110 da cena sendo capturada pela(s) câmera(s). O modelo geométrico 3D 110 pode ser uma grade volumétrica 3D armazenada, por exemplo. Primeiro, uma imagem renderizada 3D 112 do modelo 110 pode ser renderizada por Ray Casting de uma posição de câmara (pose k-1) anteriormente conhecida em um plano de imagem do modelo 110. A posição de câmera anteriormente conhecida pode ser uma pose de um primeiro ou apenas anterior frame em relação ao frame atual sendo analisado. Depois disso, os novos frames atuais individuais 114, ou cada um deles, na pose k são registrados em uma das imagens renderizadas 112 na pose k - 1 (ou anterior) do modelo 110 para computar uma nova posição de câmera ou estimativa de pose 116. Especificamente, o frame 114 atual pode ser registrado na renderização 112 do modelo usando um algoritmo de ponto iterativo mais próximo (ICP - IterativeClosest Point). Os algoritmos ICP podem ser usados para computar uma transformação rígida (rotação e translação) entre a renderização 112 de modelos e o frame 114 atual. Essa transformação é depois aplicada na anterior posição de câmera conhecida (pose k-1) 112 para obter a nova posição de câmera (Nova Est. de Pose) 116. Dada a nova posição de câmera 116 estimada, a localização 3D de cada pixel no mundo é conhecida relativamente a essa nova posição 116. Em seguida, o modelo geométrico 110 pode ser atualizado com dados de ponto ou posição de vértice da nova estimativa de pose 116. Por sua vez, a representação semântica volumétrica ou o modelo geométrico 122 pode ser atualizado nos estágios 2 e 3 (104 e 106) como é descrito abaixo.
[0024] Para efetuar a construção geométrica 3D, podem ser usados diversos algoritmos RGBD-SLAM diferentes. Um algoritmo RGBD-SLAM denso pode usar um algoritmo de reconstrução 3D que construa um modelo 3D de modo incremental, se referindo à adição de
Petição 870180161488, de 11/12/2018, pág. 87/234
9/59 incrementos, ou secções 3D, ao modelo geométrico 3D 110 um de cada vez, e que possa ser fornecido por diferentes frames de cada vez. Desse modo, novos pontos 3D em cada frame RGBD que surja são registrados no modelo existente, e o modelo é atualizado de uma maneira incremental. Consulte, por exemplo, Newcombe et al., KinectFusion: Real-time dense surface mapping and tracking, ISMAR (págs. 127 a 136), IEEE Computer Society (2011); e Finman et al., Efficient Incremental Map Segmentation in Dense RGB-D Maps, Proc. Int. Conf. on Robotics and Automation (ICRA), págs. 5488 a 5494 (2014). Nesse caso, denso se refere ao número relativamente grande de pontos que podem ser usados para construir o modelo. O modelo geométrico 3D pode ser representado como uma grade volumétrica usando um método de função de distância assinada (SDF - Signed-Distance-Function). Consulte Curless et al., A Volumetric Method for Building Complex Models from Range Images, SIGGRAPH (1996). Nesses algoritmos incrementais RGBD-SLAM densos, pode ser efetuada reconstrução 3D em tempo real e mantendo tipicamente um modelo da cena reconstruída localmente na memória de um dispositivo, como por exemplo smartphones ou acessório de cabeça RA, em vez de remotamente. Todavia, o RGBD-SLAM denso sozinho não recupera quaisquer informações semânticas sobre o modelo, e a segmentação semântica tipicamente envolve cargas computacionais muito grandes de modo a ser usualmente efetuada remotamente desde pequenos dispositivos.
[0025] Particularmente, relativamente ao segundo estágio (a segmentação semântica) 104, as informações semânticas podem ser capturadas com um algoritmo de segmentação semântica. Usualmente, esses algoritmos semânticos segmentam um único frame de cada vez, e a segmentação semântica de dados temporais, como por exemplo vídeos RGB ou RGBD, usualmente não se baseia em
Petição 870180161488, de 11/12/2018, pág. 88/234
10/59 informações 3D. Todavia, e como exemplificado pelo processo de segmentação 3D 100, um enquadramento de exemplo combina um algoritmo SLAM denso com um algoritmo de segmentação semântica 3D. Consulte Tateno et al., Real-time and scalable incremental segmentation on dense SLAM, IROS (2015). Esse processo de segmentação semântica cria um modelo semântico 3D 122 que mantém a etiqueta semântica de cada voxel.
[0026] Especificamente, Tateno revela a projeção do atual modelo global 122 para formar um mapa de etiquetas de modelo global. Entretanto, é usado um frame atual para formar um mapa de profundidade atual, e esse mapa de profundidade atual é segmentado, e os segmentos são etiquetados semanticamente. Segundo uma forma, isso inclui o uso de algoritmos de análise de componentes conectados em um mapa de bordas do mapa de profundidade, que pode gerar um mapa de etiquetas atual. Esse processo compara depois o atual mapa de etiquetas atual com o mapa de etiquetas de modelo global, encontrando os segmentos que têm a mesma etiqueta semântica, e comparando os mesmos para formar um mapa de etiquetas propagadas. O mapa de etiquetas propagadas pode ser modificado mesclando segmentos adjacentes com a mesma etiqueta.
[0027] Na atualização do terceiro estágio 106 para os sistemas que efetuam segmentação semântica sem dados 3D, a renderização ou nova estimativa de pose 116 é depois comparada com o (ou registrada no) frame de segmentação semântica 120 formado usando o frame 118 atual, e o modelo 122 é atualizado por um método heurístico (ou de votação), Bayesiano ou outro método similar. Em Tateno, onde são usados dados 3D, a atualização é concretizada usando o mapa de etiquetas propagadas para atualizar o modelo global dependendo de uma pontuação de confiança acumulada para as etiquetas semânticas de cada segmento.
Petição 870180161488, de 11/12/2018, pág. 89/234
11/59 [0028] Inicialmente, Tateno usou segmentação baseada no plano geométrico que foi depois substituída por um algoritmo de segmentação semântica de aprendizagem profunda. Consulte Tateno et al., CNN-SLAM: Real-time dense monocular SLAM with learned depth prediction, arXiv preprint arXiv:1704.03489 (2017). Em McCormac et al., essa ideia é expandida, e são mantidas pontuações de confiança por classe semântica em vez de manter uma única etiqueta semântica para cada voxel. Consulte McCormac et al. SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks, arXiv preprint arXiv: 1609.05130 (2016). As pontuações de confiança por classe são atualizadas rapidamente sempre que se encontrarem disponíveis novas observações. Como mencionado para esses sistemas Tateno, o algoritmo de segmentação semântica é aplicado em uma única imagem 118 e depois propagado para o modelo 122 para atualizar o modelo.
[0029] Esses sistemas de segmentação 3D convencionais têm diversas dificuldades. Para os sistemas que meramente analisam independentemente um frame de cada vez, a segmentação semântica é muitas vezes inadequada sobretudo devido a uma quantidade insuficiente de dados resultando em ruído e erros, como por exemplo saltos, inconsistência e etiquetas de segmento incorretas à medida que um frame de vídeo está sendo analisado relativamente à segmentação semântica. Esses sistemas não conseguem tratar adequadamente mudanças significativas nos dados de voxel devido a variações nos dados de imagem ao longo do tempo, como por exemplo com vídeos de objetos em movimento ou câmeras em movimento rápido.
[0030] Ademais, uma vez que a segmentação semântica convencional do frame atual não leva em conta a segmentação semântica de frames anteriores, a atualização de modelo global, se
Petição 870180161488, de 11/12/2018, pág. 90/234
12/59 estiver presente de todo, como por exemplo em Tateno, é limitada à análise local onde uma etiqueta de segmento atual é comparada com uma etiqueta global como descrito acima relativamente a Tateno. A mesma não tem a capacidade de efetuar uma análise global histórica (nesse caso, global se referindo a um frame inteiro) para determinar se as mudanças na distribuição de dados de imagem em um frame inteiro indicam certas etiquetas semânticas em um segmento específico. Essas distribuições podem capturar quando certas etiquetas são vistas juntas no mesmo frame, como por exemplo um automóvel e uma estrada, ou uma cadeira e uma mesa, aumentando assim substancialmente a eficiência da classificação. Desse modo, se um frame tiver dados de imagem variáveis ao longo do tempo (frame a frame) no sistema convencional, mudando assim a distribuição dos dados de imagem pelas grandes áreas de um frame ao longo do tempo, esses dados no sistema convencional não têm necessariamente um efeito nas probabilidades das etiquetas semânticas para segmentação semântica de um segmento específico em uma localização atual no frame no sistema Tateno. Isso resulta em segmentação semântica significativamente menos precisa, uma vez que esses sistemas conhecidos não conseguem etiquetar com precisão quando ocorrem grandes variações desconhecidas nos dados de segmento como mencionado acima.
[0031] Além do mais, nas soluções existentes, a etapa de atualização se baseia usualmente em regras determinísticas e é lenta em se adaptar, ou não consegue se adaptar de todo, a cenários ou dados específicos de situações particulares. De modo similar ao apresentado acima, essas regras são limitadas a análise local em vez de global. Por exemplo, a segmentação semântica é muitas vezes restrita a heurística ou operações Bayesianas ao usar uma pose atual para modificar um frame semanticamente segmentado para atualizar o
Petição 870180161488, de 11/12/2018, pág. 91/234
13/59 modelo semântico. Todavia, essas regras não consideram dados de outros segmentos nem o frame inteiro e ao longo do tempo, de modo que a distribuição dos dados em áreas amplas de um frame ao longo do tempo não seja considerada. Desse modo, essas regras rígidas também não conseguem levar em conta variações relativamente grandes em dados de segmento, incluindo as variações ao longo do tempo (frame a frame), que podem ser usadas para formar etiquetas mais precisas.
[0032] Igualmente, uma vez que são adicionados mais dados ao modelo semântico 3D sempre que é adicionado um frame, a complexidade computacional e o tamanho da rede sendo tratada para efetuar a segmentação semântica podem ser demasiado grandes para serem tratados em um pequeno dispositivo devido à memória, capacidade de processamento e capacidade de potência limitadas desses dispositivos quando o sistema analisa todo o modelo semântico 3D para efetuar a segmentação semântica 3D. Desse modo, a maioria da segmentação 3D é efetuada offline resultando em um atraso não razoável das transmissões de e para esse dispositivo. Desse modo, esses sistemas não são adequados para aplicações em tempo real em pequenos dispositivos. O funcionamento desses dispositivos ou computadores pode ser melhorado com segmentação semântica mais eficiente que reduza a carga computacional e, por consequência, a memória e a capacidade de potência usadas para segmentação semântica permitindo assim que a segmentação semântica seja efetuada em dispositivos mais pequenos. Uma dessas soluções é um algoritmo incremental fornecido por Finman et al., citado acima, que revele somente o melhoramento de secções recentemente adicionadas do modelo em vez de o modelo inteiro. Todavia, essa solução ainda é inadequada, uma vez que o modelo ainda pode crescer demasiado com cada frame adicionado, e os
Petição 870180161488, de 11/12/2018, pág. 92/234
14/59 dados de modelo já existente não são suficientemente atualizados para ocorrerem erros e imprecisões.
[0033] Finalmente, uma vez que Tateno mescla segmentos no mapa de etiquetas propagadas antes de atualizar o modelo global, não é possível reverter esse processo antes de fornecer uma etiqueta final e atualizar o modelo global. Isso pode manter imprecisões das etiquetas de segmento quando mais análise reconfirmar uma segmentação anterior onde dois segmentos originais unidos deviam ter sido mantidos separados em vez de serem unidos.
[0034] Para resolver essas questões, são aqui revelados um sistema e um método que usam recorrentemente dados semânticos históricos para efetuar segmentação semântica de um frame atual e para serem usados para atualizar um modelo semântico 3D. Nesse caso, histórico se refere ao uso de etiquetagem semântica anterior no modelo semântico 3D. É gerado um mapa de segmentação semântica renderizado usando projeção desde o modelo semântico 3D e para representar esses dados históricos, e o mapa de segmentação pode ser fornecido na mesma pose do frame atual sendo analisado. O mapa de segmentação renderizado pode ser fornecido para cada frame sendo analisado para estabelecer a recorrência.
[0035] Ademais, é usado um algoritmo de segmentação semântica 3D recorrente considerando como entrada o mapa de segmentação semântica renderizado do modelo além de uma imagem de entrada do frame atual. O algoritmo de segmentação semântica 3D recorrente pode incluir arquitetura baseada em CNN que recebe essa entrada emparelhada para analisar sinergicamente a distribuição dos dados de imagem na entrada em conjunto. Por exemplo, o uso de todo o frame permite ao sistema saber que classes aparecem juntas. Quando o sistema reconhece uma mesa, pode reconhecer facilmente uma cadeira, uma vez que se espera que apareça com uma mesa,
Petição 870180161488, de 11/12/2018, pág. 93/234
15/59 enquanto o sistema elimina outros objetos mais facilmente (por exemplo, provavelmente não existirá nenhum cavalo na imagem). A saída do sistema é uma representação 3D atualizada (modelo) do mundo com voxels individuais do modelo sendo classificados semanticamente.
[0036] No método e no sistema aqui revelados, o algoritmo de segmentação semântica 3D recorrente pode mesclar segmentação geométrica eficiente com a segmentação semântica 3D de alto desempenho. Por exemplo, usando SLAM (localização e mapeamento simultâneos) denso com base em dados RGB-D (dados de RGB e câmeras de profundidade, por exemplo, sensores de profundidade Intel RealSense) e a segmentação semântica com redes neurais convolucionais (CNN - Convolutional Neural Networks) de uma forma recorrente como aqui descrito. Desse modo, a segmentação semântica 3D pode incluir: (i) RGBD-SLAM denso para reconstrução 3D de geometria; (ii) segmentação recorrente baseada em CNN que recebe como uma entrada o frame atual e informações semânticas 3D de frames anteriores; e (iii) uma cópia dos resultados de (ii) para o modelo semântico 3D. É possível mencionar que a operação (ii) usa os frames anteriores e efetua tanto a segmentação como a atualização do modelo em uma única etapa. Em outras palavras, muitos sistemas de segmentação semântica convencionais efetuam um algoritmo de segmentação que obtém etiquetas de segmento primeiro, e depois efetua alguma espécie de comparação ou computação de valor de confiança com limiares para determinar se o modelo semântico deve ser atualizado com as etiquetas semânticas como em Tateno por exemplo. Em vez disso, o presente sistema efetua uma análise suficientemente precisa com extração de particularidades e redes neurais de segmentação semântica para obter as etiquetas de segmento semântico de modo que essa segunda etapa de valor de
Petição 870180161488, de 11/12/2018, pág. 94/234
16/59 confiança seja desnecessária.
[0037] Na presente solução, a operação de segmentação recorrente (uso das informações semânticas de frames anteriores como refletido no modelo semântico 3D) é aprendida desde os dados e ajustada a cenários específicos, e por consequência essa solução é mais precisa quando os dados de imagem estão mudando rapidamente e para uma maior variedade de cenários de dados de imagem. Desse modo, essa recorrência resulta em um sistema de segmentação semântica 3D de alta qualidade e computacionalmente eficiente.
[0038] Relativamente à Figura 2 por exemplo, uma imagem 200 mostra uma vista superior exposta de uma sala 202 com uma fronteira 206 realçada entre a sala 202 e um fundo 204 para mostrar segmentação geométrica. A sala 202 tem instalações e mobiliário 208 que podem igualmente ser geometricamente segmentados entre si e o fundo.
[0039] Relativamente à Figura 3, uma imagem 300 mostra a sala 202 (agora 301) da imagem 200, só que agora com a segmentação semântica 3D de exemplo revelada aplicada. Cada cor ou sombra de voxel representa uma classe de um objeto ao qual pertence. Com essa segmentação semântica, podem ser efetuadas ações dependendo da etiqueta semântica do segmento quer para visão por computador quer para outras aplicações, como por exemplo com realidade virtual ou aumentada, por exemplo.
[0040] No sistema e no método revelados, essas duas tarefas aplicadas à sala 202 são mescladas em um enquadramento comum que seja computacionalmente eficiente e produza segmentação semântica 3D de alta qualidade como aqui descrito. Ademais, contrariamente aos algoritmos de segmentação semântica típicos que operam em um único frame, os métodos revelados usam um algoritmo
Petição 870180161488, de 11/12/2018, pág. 95/234
17/59 que tira proveito da natureza incrementai por tempo de varredura de um ambiente desde múltiplos pontos de vista de modo a melhorar a segmentação e construir um modelo 3D que seja aumentado com informações semânticas. Esse processo de segmentação semântica pode ser uma segmentação semântica incremental por tempo de um ambiente no qual a entrada pode ser um fluxo RGB-D de frames (fluxos da câmera RGB e sensor/câmera de profundidade).
[0041] As aplicações robóticas e VR práticas necessitam muitas vezes de funcionar imediatamente assim que são iniciadas, reunir informações sobre o ambiente visível e melhorar de modo incremental o modelo semântico 3D ao longo do tempo. Além disso, esse algoritmo deve cooperar com mudanças no ambiente, ou seja, objetos, mobiliário e pessoas que se movem no ambiente. Por consequência, um algoritmo de reconstrução e segmentação offline não consegue resolver esse problema, e deve ser usado um algoritmo incremental em tempo real. Isso é concretizado usando o método de segmentação semântica aqui descrito que fornece eficazmente um processo incremental por tempo como igualmente aqui revelado.
[0042] Na solução revelada, o tempo de computação por frame é uma função do número de pixels nesse frame, e não de toda a história de frames ou do modelo, e por consequência esse método é computacionalmente eficiente e pode ser executado em tempo real em pequenos dispositivos. Particularmente, o sistema, com sua rede de segmentação semântica, recebe meramente um mapa semântico renderizado e de imagens atual do mesmo ponto de vista de imagem da entrada para o sistema que necessita ser colocado na memória para acesso de segmentação de processador. Esse mapa renderizado representa a história do modelo semântico 3D. Em vez disso, os sistemas convencionais recebem tipicamente todo o modelo semântico 3D como a entrada e colocam o mesmo na memória accessível, e por
Petição 870180161488, de 11/12/2018, pág. 96/234
18/59 consequência toda a história do modelo semântico 3D. Desse modo, a entrada para o sistema revelado aqui é uma entrada muito menor que a inserção de todo o modelo semântico como entrada adicional da rede de segmentação semântica. Uma vez que a entrada é um tamanho fixo de um frame tanto para o frame atual como para entradas de mapa de segmentação renderizado, o tempo de computação pode ser fixo e é independente do tamanho do modelo. Isso evita ainda um aumento no tempo de computação à medida que o modelo semântico 3D cresce, o crescimento sendo explicado acima, e evitando a dependência do tamanho crescente do modelo.
[0043] Finalmente, será notado que, uma vez que o mapa de segmentação é usado para formar o frame de segmentação em primeiro lugar, e mediante a entrada em uma ou mais camadas de rede neural suplementares que consideraram os pixels individualmente, esse processo evita problemas com a mescla de modo permanente de segmentos demasiado cedo como em Tateno. [0044] Relativamente à Figura 4, é fornecido um processo 400 para um método e sistema de segmentação semântica recorrente para processamento de imagens. Na implementação ilustrada, o processo 400 pode incluir uma ou mais operações, funções ou ações 402 a 412 numeradas com números pares. Como exemplo não limitativo, o processo 400 pode ser aqui descrito com referência ao sistema de processamento de imagens 600 de exemplo da Figura 6 ou sistema 900 da Figura 9, e quando relevante.
[0045] O processo 400 pode incluir obter uma sequência de vídeo de frames de dados de imagem e compreendendo um frame atual 402. Essa operação pode incluir a obtenção de dados de imagem em bruto pré-processados com RGB, YUV ou outros valores de espaço de cor além de valores de luminância para diversos frames de uma sequência de vídeo. Os valores de cor e luminância podem ser
Petição 870180161488, de 11/12/2018, pág. 97/234
19/59 fornecidos de muitas formas adicionais diferentes, como por exemplo gradientes, histogramas, etc. O pré-processamento pode incluir demosaicing, redução de ruído, linearização de pixels, compensação de sombreamento, redução de resolução, eliminação de vinhetas e/ou operações relacionadas com 3A incluindo modificações de balanço de brancos automático (AWB - Automatic White Balance), foco automático (AF - Automatic Focus) e/ou exposição automática (AE Automatic Exposure), etc.
[0046] Essa operação pode igualmente incluir a obtenção de dados de profundidade quando os dados de profundidade são usados para análise de segmentação. Os dados de imagem de profundidade podem ser determinados por um sistema de câmera estéreo, como por exemplo com câmeras RGBD, que captura imagens da mesma cena ou cena em movimento de múltiplos ângulos. O sistema pode efetuar diversas computações para determinar um espaço 3D para a cena na imagem e a dimensão de profundidade para cada ponto, pixel, particularidade ou objeto na imagem. Caso contrário, são possíveis outras formas de determinar três dimensões de uma única câmera, como por exemplo tempo de voo e tecnologias de luz estrutural ou codificada.
[0047] O processo 400 pode incluir opcionalmente gerar recorrentemente um mapa de segmentação semântica em uma vista de uma pose atual do frame atual e compreendendo a obtenção de dados para formar o mapa de segmentação semântica desde um modelo de segmentação semântica 3D, em que mapas de segmentação semântica individuais são, cada um deles, associados a um frame atual diferente da sequência de vídeo 404. Isso pode incluir a geração de um modelo de segmentação semântica 3D, com base em um modelo geométrico 3D (gerado pelo uso de RGB-SLAM por exemplo) com etiquetas semânticas registradas no modelo. Depois de
Petição 870180161488, de 11/12/2018, pág. 98/234
20/59 estabelecido, o modelo de segmentação semântica 3D pode ser projetado em um plano de imagem para formar um mapa de segmentação com as etiquetas semânticas do modelo que tem pixels ou voxels nesse plano. O plano de imagem pode ser o plano formado pela pose de câmera do frame atual sendo analisado. O modelo de segmentação semântica 3D pode ser atualizado com etiquetas de segmento semântico, cada frame atual sendo semanticamente analisado de modo que o modelo semântico 3D reflita ou represente a história da segmentação semântica do espaço 3D representado pelo modelo semântico 3D até um momento no tempo atual. Desse modo, por sua vez, o mapa de segmentação semântica irá igualmente representar essa história da segmentação.
[0048] Em seguida, o processo 400 pode incluir extrair particularidades semânticas historicamente influenciadas semanticamente do mapa de segmentação semântica 406, e por consequência um algoritmo de extração pode ser aplicado no mapa de segmentação. O algoritmo de extração pode incluir uma rede neural, como por exemplo uma CNN, com uma ou mais camadas e pode ser uma rede neural ResNet. O resultado dessa extração pode ser considerado como particularidades de alto nível de valor intermédio historicamente influenciadas que representem a etiquetagem semântica no mapa de segmentação. Nesse caso, as particularidades não são valores de probabilidade semântica ou classes de etiqueta. Essas particularidades ou esses valores de particularidade podem eventualmente ser usados como entradas (ou para computar entradas) para uma outra (ou última) rede neural de segmentação que forme probabilidades semânticas para classes semânticas e um pixel ou outra base, como por exemplo segmentos. As particularidades podem se encontrar na forma de tensores de matrizes, cada um formado por vetores de particularidades das particularidades, por exemplo. Abaixo,
Petição 870180161488, de 11/12/2018, pág. 99/234
21/59 são fornecidos mais detalhes. Uma vez que o mapa de segmentação já tem valores semânticos, essa operação pode ser referida igualmente como uma segmentação de refinamento.
[0049] Entretanto, o processo 400 pode incluir extrair particularidades semânticas atuais do frame atual 408, e isso pode incluir um algoritmo de extração de particularidades atual, que pode igualmente corresponder a uma ou mais camadas de rede neural. Isso pode corresponder a dados 3D ou 2D dependendo do algoritmo, e os resultados aqui podem igualmente se encontrar na forma de tensores de matrizes de vetores de particularidades semânticas, e onde as particularidades são particularidades de alto nível ou valores intermédios em vez de probabilidades ou classes semânticas das mesmas.
[0050] Em seguida, o processo 400 pode incluir gerar um frame semanticamente segmentado atual e histórico compreendendo o uso tanto das particularidades semânticas atuais como das particularidades semânticas historicamente influenciadas como entrada em uma rede neural que indica as etiquetas semânticas para áreas do frame semanticamente segmentado histórico atual 410. Isso pode ocorrer em diversas formas diferentes desde que tanto as particularidades semânticas atuais como as particularidades semânticas historicamente influenciadas sejam introduzidas para análise juntas, como por exemplo entrada em uma rede neural, como por exemplo uma CNN. Desse modo, as particularidades semânticas atuais e as particularidades semânticas historicamente influenciadas podem ser combinadas, ou segundo um exemplo concatenadas, antes de serem introduzidas na rede neural juntas. Isso pode incluir a concatenação das particularidades na forma de vetores de particularidades, ou matrizes ou tensores que incluam os vetores de particularidades. Segundo uma forma, é formado um tensor grande
Petição 870180161488, de 11/12/2018, pág. 100/234
22/59 com cada concatenação de dados de uma secção 3D das saídas do atual mapa de segmentação e imagens. Nesse exemplo, os vetores de particularidades das duas fontes diferentes são colocados juntos em um único grande vetor de particularidades e representam as mesmas localizações de pixel correspondentes no atual mapa de segmentação e imagens. Desse modo, essa operação pode igualmente envolver a correspondência das particularidades ou do frame atual e do mapa de segmentação para efetuar a concatenação, e isso pode ser efetuado automaticamente simplesmente pela ordem em que os dados são fornecidos ao sistema.
[0051] Os dados concatenados são depois introduzidos em outra ou última rede neural de segmentação (ou CNN segundo um exemplo) com uma ou mais camadas. Desse modo, a distribuição de dados em um frame e nos dados semânticos tanto atuais como históricos é analisada em conjunto resultando em uma segmentação semântica muito precisa. Essa saída forma um frame de segmentação de etiquetas ou probabilidades de segmentos no frame.
[0052] O processo 400 pode incluir atualizar semanticamente o modelo de segmentação semântica 3D compreendendo o uso do frame semanticamente segmentado atual e histórico 412, que se refere ao registro das etiquetas semânticas ou probabilidades do frame de segmentação no modelo semântico 3D. Isso pode ser efetuado projetando primeiro os segmentos do frame de segmentação em um plano de imagem na perspectiva de uma nova estimativa de pose desde o lado geométrico do sistema. Assim que se encontrar nessa nova estimativa de pose, essa imagem e seus dados semânticos são colocados na localização de correspondência apropriada no modelo semântico 3D. Isso registra eficazmente o frame RGBD de entrada no modelo semântico 3D. Os detalhes para determinação da nova estimativa de pose são fornecidos abaixo.
Petição 870180161488, de 11/12/2018, pág. 101/234
23/59 [0053] Relativamente às Figuras 5A e 5B, é fornecido um processo 500 para um método e sistema de segmentação semântica recorrente para processamento de imagens. Na implementação ilustrada, o processo 500 pode incluir uma ou mais operações, funções ou ações 502 a 538 numeradas com números pares. Como exemplo não limitativo, o processo 500 pode ser aqui descrito com referência ao sistema de processamento de imagens 600 de exemplo da Figura 6 ou sistema 900 da Figura 9, e quando relevante.
[0054] Relativamente às Figuras 6 e 8, particularmente, o processo 500 pode ser operado por um sistema de segmentação semântica 600 que tenha unidades que possam ser associadas a três estágios ou operações principais: segmentação geométrica 602, segmentação semântica 604 e atualização semântica do modelo semântico 3D 605. Como mencionado acima, o sistema 600 pode ser uma combinação de segmentação geométrica 602 como por exemplo por um algoritmo RGB-SLAM como descrito acima e que forneça a base para um modelo semântico 3D 616. O modelo semântico 616 é atualizado ou reconstruído efetuando segmentação semântica 604.
[0055] Para o primeiro estágio de segmentação geométrica 602, o sistema 600 pode ter uma unidade de nova estimativa de pose 610 que receba uma imagem 608 atual em uma pose k e uma imagem renderizada 606 na pose k - 1. A imagem renderizada 606 é gerada por Ray Casting desde um modelo reconstruído geométrico 3D 612. Uma unidade de atualização de modelo geométrico 614 depois usa a nova estimativa de pose para atualizar a geometria 3D do modelo geométrico 612. Outros detalhes são fornecidos abaixo com a descrição do processo 500.
[0056] Relativamente ao estágio de segmentação semântica 604, o sistema 600 tem uma unidade de mapas de segmentação semântica 620 que forma um mapa de segmentação 622 em um plano de
Petição 870180161488, de 11/12/2018, pág. 102/234
24/59 imagem na mesma pose do frame atual sendo analisado e projetado desde o modelo semântico 3D 616. O mapa de segmentação semântica projetado ou renderizado 622, junto com os dados de imagem RGB do frame 618 atual na pose k, é fornecido a uma unidade de segmentação de frames semânticos 624 para formar um frame semanticamente segmentado 626. A unidade de segmentação de frames semânticos 624 usa ambas as entradas para usar dados históricos para melhorar a precisão das etiquetas semânticas, e um exemplo da unidade de segmentação de frames semânticos 624 é fornecido pela Figura 8. A unidade de segmentação de frames semânticos 624 ou 800 pode ter uma unidade de extração de particularidades de alto nível de valor intermédio semânticas histórica (ou unidade de extração histórica) 808 que efetue uma extração de particularidades de alto nível no mapa de segmentação 804 (ou 622). A unidade de extração histórica 808 pode incluir uma unidade de préprocessamento 810, uma unidade de convolução 812 e/ou uma unidade ResNet 814, que são descritas abaixo. Na realidade, essas unidades podem se referir a certas funções e podem não ser etapas cronológicas separadas igualmente como descrito abaixo.
[0057] Igualmente, uma unidade de extração de particularidades de alto nível de valor intermédio semânticas atual (ou unidade de extração atual) 806 pode efetuar extração de particularidades no frame RGB k atual (ou frame atual na pose k). A unidade de extração atual 806 pode ter uma unidade de análise de rede neural de extração atual 816 para efetuar a extração com uma ou mais camadas de rede neural. Tanto para a extração semântica atual como para a extração semântica histórica, as particularidades na forma de vetores de particularidade (ou matrizes ou tensores) podem ser extraídas e podem ser fornecidas a uma unidade de combinação atual-histórica 820. Essa unidade pode efetuar a concatenação dos vetores de
Petição 870180161488, de 11/12/2018, pág. 103/234
25/59 particularidades extraídas atuais e históricas como descrito abaixo. Os vetores de particularidades concatenadas, ou então combinadas, são depois usados como entrada para uma unidade de saída de segmentação 822 que tenha uma última ou outra rede neural de segmentação. Segundo uma forma, as particularidades concatenadas se encontram na forma de tensores, e as particularidades são fornecidas à última ou outra rede neural de segmentação em conjunto, uma matriz do tensor de cada vez. A unidade de saída de segmentação 822 produz etiquetas semânticas, ou classe ou probabilidades para as etiquetas ou classes, e fornece as mesmas como parte do frame semanticamente segmentado (ou somente segmentado) atual-histórico (C-H - Current-Historical) 824.
[0058] Regressando à vista do sistema 600, uma unidade de atualização de segmentação semântica no estágio de atualização 605 pode receber o frame segmentado 626 ou 824 e projetar os dados semânticos desde o frame de segmentação em um plano de imagem na nova estimativa de pose desde a unidade de nova estimativa de pose 610 do estágio geométrico 602. A unidade de atualização 628 pode depois registrar a classe semântica indicada ou as etiquetas do frame segmentado 626 na nova estimativa de pose no modelo de segmentação 3D 616. Novamente, são fornecidos abaixo outros detalhes.
[0059] Agora, para a explicação do processo 500, esse método pode incluir obter dados de imagem do frame atual da sequência de vídeo 502 e, como mencionado acima, pode incluir a obtenção de dados RGB em bruto, o pré-processamento dos dados de imagem suficientes para segmentação geométrica e semântica, bem como outras aplicações. O frame a ser analisado é considerado o frame atual, e cada frame em uma sequência de vídeo sendo analisada pode ser considerado o frame atual. Será entendido que a segmentação
Petição 870180161488, de 11/12/2018, pág. 104/234
26/59 pode ser aplicada em cada frame em uma sequência de vídeo ou em alternativa algum intervalo de frames, como por exemplo cada 5° ou 10° frame, ou qualquer intervalo que tenha mostrado reduzir cargas computacionais ao mesmo tempo que ainda mantém segmentação semântica 3D atempada e suficientemente precisa para uma sequência de vídeo. Isso pode depender da aplicação usando a segmentação.
[0060] O processo 500 pode incluir gerar mapa de profundidade 504, onde um mapa de profundidade para a imagem atual pode ser formado para estabelecer um espaço 3D para a sequência de vídeo sendo analisada, e eventualmente usado para gerar um modelo geométrico 3D. Isso pode envolver geração de profundidade estéreo ou geração de profundidade de câmera única.
[0061] O processo 500 pode incluir gerar/atualizar modelo geométrico 3D 506, e igualmente como mencionado acima, o modelo geométrico 3D, que pode ser operado efetuando RGB-SLAM 508, ou outros métodos, pode inicialmente ser formado desde um ou mais mapas de profundidade. Segundo uma forma, esses métodos RGBSLAM são usados como revelado em Newcombe et al., KinectFusion: Real-time dense surface mapping and tracking, ISMAR (págs. 127 a 136), IEEE Computer Society (2011). Em seguida, o modelo geométrico 3D pode ser atualizado com cada um dos frames atuais que está sendo analisado. Deve ser notado que o sistema pode atualizar porções anteriormente conhecidas do modelo geométrico com cada frame atual sendo analisado. Desse modo, no RGBD-SLAM aqui, cada frame não só adiciona novas porções, como também refina e melhora áreas já existentes dos modelos geométricos que são vistos no frame.
[0062] O processo 500 pode incluir renderizar dados de imagem desde o modelo geométrico 3D na pose K - 1 510, e isso pode incluir
Petição 870180161488, de 11/12/2018, pág. 105/234
27/59
Ray Casting do modelo geométrico 3D em um plano de imagem formado quando a câmera se encontra na pose K - 1 (nesse caso, K e k se referem à mesma coisa e são usados alternadamente).
[0063] O processo 500 pode incluir determinar nova estimativa de pose usando pose K - 1 e o frame atual na pose K 512, ou em outras palavras, os dados de imagem do frame atual capturado quando a câmera se encontra na pose K e os dados de imagem do frame capturado quando a câmera se encontrava na pose K - 1 são usados por uma unidade de nova estimativa de pose para determinar a nova estimativa de pose. Isso pode ser efetuado por algoritmos de ponto mais próximo iterativo (ICP - Iterative Closest Point) comparando a imagem atual da pose k e uma imagem anterior na pose k - 1.
[0064] O processo 500 pode incluir atualizar geometria de modelo semântico 3D com dados de modelo geométrico 514. Nesse caso, a geometria do modelo semântico 3D pode ser construída formando o voxel ou a estrutura de malha 3D usando a estrutura de vértice 3D do modelo geométrico 3D para dispor os voxels e/ou a malha 3D do modelo semântico. As etiquetas semânticas são depois adicionadas ao modelo semântico 3D como geradas. Segundo um exemplo, o modelo semântico 3D se encontra na forma de uma grade de voxels ou uma malha 3D com informações semânticas por vértice. Igualmente, são contemplados outros métodos.
[0065] Relativamente à Figura 7, o processo 500 pode incluir renderizar mapa de segmentação desde o modelo semântico 3D 516, e isso pode envolver a obtenção da pose k do frame atual sendo analisado, e depois a projeção do modelo semântico 3D em um plano de imagem formado por uma câmera na pose k. Um mapa de segmentação 700 de exemplo é fornecido na pose atual (ou pose k) do frame atual, e onde as paredes 702, as cadeiras 704 e o chão 706 mostrados no mapa 700 são segmentados entre si e têm, cada um
Petição 870180161488, de 11/12/2018, pág. 106/234
28/59 deles, uma etiqueta semântica (parede, cadeira, chão, por exemplo) historicamente baseada (ou influenciada ou baseada em informações de frames anteriores) inicial. Em algumas formas, os objetos que são adjacentes entre si e têm a mesma etiqueta podem não aparecer como componentes separados no mapa de segmentação.
[0066] O processo 500 pode incluir efetuar segmentação semântica 518. Segundo os exemplos aqui, o método proposto não é limitado a nenhum tipo específico de arquitetura CNN. Em uma implementação específica, que foi usada em experiências, pode ser usada uma rede de análise de cenas em pirâmide (PSPNet - Rede PSP - Pyramid Scene Parsing) e como descrito por Zhao et al., como a arquitetura de rede de segmentação semântica de base. Consulte Zhao et al., Pyramid Scene Parsing Network, Computer Vision and Pattern Recognition (CVPR) (2017).
[0067] Igualmente, a segmentação recorrente pode ser efetuada rapidamente, e enquanto os mapas semânticos renderizados não são gerados com antecedência. As redes neurais usadas para a extração e segmentação podem ser treinadas anteriormente offline antes de serem fornecidas para execuções reais. O treinamento é explicado abaixo. Na prática, o sistema pode executar a segmentação em cada frame In°, (tipicamente In=10), em vez de executar a mesma em cada frame. Existem duas razões para isso: (i) o sistema pode usar uma arquitetura de segmentação de computação lenta enquanto os algoritmos RGBD-SLAM continuam seguindo a pose de câmera e atualizando a geometria do modelo; e (ii) reduzir o custo computacional do algoritmo que melhora a eficiência de potência do sistema.
[0068] Como parte da extração de particularidades, o processo 500 pode incluir extrair particularidades de valor intermédio de alto nível semânticas históricas 520. Nesse caso, a extração de
Petição 870180161488, de 11/12/2018, pág. 107/234
29/59 particularidades é efetuada no mapa de segmentação semântica, que já tem etiquetas semânticas no mapa do modelo semântico 3D, e reflete a etiquetagem semântica anterior no modelo semântico 3D. Essa extração pode ser efetuada separadamente da extração de particularidades da imagem atual RGBD. Especificamente, isso pode primeiro envolver uma operação de pré-processamento pela unidade de pré-processamento 810 (Figura 8) que converte a entrada de mapa semântico renderizado em um formato esperado para introdução em uma rede neural. Segundo um exemplo, cada pixel pode ser representado pelas etiquetas semânticas superiores mais prováveis. Desse modo, segundo uma forma, o frame de mapa de segmentação semântica renderizado pode ser fornecido em uma estrutura de tamanho W*H*3, onde são fornecidas três classes semânticas superiores para cada pixel, e sendo as três classes superiores na ordem descendente de probabilidade, por exemplo. A representação para uma rede neural pode assim se encontrar em uma estrutura W*H*C (onde W corresponde a largura, H corresponde a altura e C corresponde ao número de classes) ou, em outras palavras, um tensor, de modo que cada pixel na imagem seja representado por um vetor de tamanho C de classes semânticas diferentes mais prováveis. Cada entrada C representa uma classe, e a ordem pode ser constante (por exemplo, 1-cadeira, 2-mesa, 3-chão, etc.), e todos os outros valores de entradas correspondem a 0 exceto as três entradas que representam as 3 classes superiores no mapa renderizado. Por exemplo, a entrada que representa a melhor classe pode ter um valor de probabilidade de 1Z>, a seguinte pode corresponder a 1/3 e a seguinte pode corresponder a 1/6.
[0069] Para essa operação, o processo 500 pode incluir operar, pelo menos, uma camada de rede neural nos dados do mapa de segmentação histórica de pose atual 522. Desse modo, a entrada
Petição 870180161488, de 11/12/2018, pág. 108/234
30/59 mencionada acima pode ser entregue para extração de particularidades como entrada em uma rede neural de extração que tenha, pelo menos, uma camada de convolução e/ou uma camada ou camadas ResNet para propagação. Como efetuado em uma experiência, o sistema pode aplicar convoluções separadas e um bloco de construção ResNet com normalização em lotes na entrada de mapa de segmentação semântica. Consulte He et al., Deep residual learning for image recognition, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (2016). Como mencionado, a saída pode corresponder a pixel, voxel ou nível de segmento, particularidades de alto nível (ou valores semânticos intermédios) na forma de tensores ou vetores de particularidades modificados. Esses vetores de particularidades podem ser fornecidos para cada pixel, ou pixels individuais, (ou localizações de pixel) em todo o mapa de segmentação renderizado sendo analisado. Segundo uma forma, a rede neural de extração pode ser receber uma matriz W x H do tensor de cada vez, fornecendo assim um valor de classe dos pixels de cada vez.
[0070] Igualmente, o processo 500 pode incluir extrair particularidades de valor intermédio de alto nível semânticas atuais 524, e isso pode igualmente envolver operar pelo menos uma camada de rede neural nos dados do frame atual 526. Desse modo, essa extração usa igualmente uma rede neural de extração, como por exemplo CNNs, igualmente com uma ou mais camadas. Nesse caso, todavia, a entrada na rede neural de extração atual corresponde a dados de imagem da imagem atual que podem ser dados RGB e/ou dados de luminância YUV, dados de profundidade ou qualquer combinação desses, etc. Os resultados podem igualmente ser particularidades ou vetores de particularidades colocados em tensores para concatenação com as particularidades históricas e depois para
Petição 870180161488, de 11/12/2018, pág. 109/234
31/59 serem usados como entrada na rede neural de segmentação.
[0071] O processo 500 pode incluir combinar as particularidades tanto históricas como atuais 528, e isso pode ser fornecido pela unidade de combinação atual-histórica 820 segundo um exemplo. Nesse caso, o sistema concatena ou então combina particularidades que foram extraídas do frame atual, e particularidades que foram extraídas do mapa de segmentação semântico historicamente influenciado. Especificamente, os resultados tanto de passagens como de ramificações podem ser tensores (matrizes tridimensionais), mas podem igualmente ser considerados como vetores (matriz e tensores são simplesmente generalização de um vetor). Para fornecer um exemplo explicativo simplificado, assumamos que um resultado da extração de frame atual corresponde a um vetor de particularidades 3x1 (111, 222, 333) e um resultado da extração das particularidades do mapa de segmentação semântica corresponde a um vetor de particularidades 3x1 (444, 555, 666). No estágio de concatenação, dois vetores de particularidades podem ser concatenados em um único vetor de particularidades 6x1 (111, 222, 333, 444, 555, 666). Nesse caso, dois tensores de saída PxMxN e QxMxN são concatenados, e o resultado é um terceiro tensor (P+Q)xMxN. A segunda e terceira dimensões podem permanecer as mesmas enquanto a primeira dimensão é uma soma de tamanhos de ambos os tensores. Esse tensor resultante pode ser fornecido como a entrada em uma última ou outra rede neural com uma ou mais camadas CNN (que podem ser referidas como uma rede neural de segmentação separada ou CNN) e que produz classes de segmentação semântica ou probabilidades das mesmas para serem usados pixels para atualizar o modelo semântico 3D como detalhado em seguida.
[0072] As concatenações ou combinações resultantes correspondem a particularidades da mesma localização no frame atual
Petição 870180161488, de 11/12/2018, pág. 110/234
32/59 e no mapa de segmentação renderizado. Desse modo, o resultado da concatenação é um vetor longo onde cada vector representa uma área na imagem, e corresponde às particularidades de alto nível dessa dada área na imagem.
[0073] O processo 500 pode depois incluir introduzir combinações como entrada na rede neural de classificação de segmentação semântica 530, e isso pode envolver a aplicação de, pelo menos, uma camada de convolução nos dados concatenados em uma última ou outra rede neural de segmentação semântica antes de atualizar o modelo semântico 3D, e pode ser fornecido pela unidade de saída de segmentação 822 (Figura 8). Segundo um exemplo, um vetor concatenado, um tensor ou uma matriz corresponde à entrada na(s) última(s) camada(s) de rede neural e a saída corresponde à classe semântica ou probabilidades de etiqueta para cada segmento, ou segmentos individuais, (ou voxels ou pixels) no frame de segmentação. Será entendido que cada voxel pode ter múltiplas etiquetas, cada uma com uma probabilidade, e pode corresponder a todas as etiquetas ou classes possíveis. Segundo uma forma, todavia, as etiquetas semânticas com as probabilidades mais altas (como por exemplo três) podem ser mantidas para cada voxel como aqui explicado.
[0074] O processo 500 pode incluir registrar saídas de classe semântica para atualizar modelo semântico 3D 532, e isso é efetuado colocando as etiquetas semânticas da saída da última camada de rede neural e nos segmentos ou voxels correspondentes do modelo de segmentação semântica 3D. Para conservar memória, as etiquetas semânticas candidatas de classe X superior podem ser armazenadas em cada voxel. O modelo semântico 3D consiste em uma função de distância assinada truncada para cada voxel do algoritmo RGBDSLAM e dados semânticos na forma das classes semânticas X
Petição 870180161488, de 11/12/2018, pág. 111/234
33/59 superior. Na experiência aqui referida, X = 3.
[0075] Será entendido que o método aqui revelado é efetuado de uma maneira incremental por tempo, uma vez que são adicionados novos dados, e por sua vez uma nova área geográfica, ao modelo semântico 3D com cada análise de outro frame. Em oposição a Finman citado acima, todavia, o novo processo atualiza igualmente áreas já existentes no modelo semântico 3D usando os dados históricos do mapa de segmentação renderizado.
[0076] O processo 500 pode incluir fornecer modelo semântico 3D a aplicações considerando semântica 534 e, como mencionado, pode corresponder a aplicações de visão por computador, aplicações de auricular RV, RA ou RM ou qualquer outra aplicação que possa usar o modelo semântico 3D.
[0077] O processo 500 pode incluir uma consulta último frame da sequência? 536 e, se assim for, o processo termina. Caso contrário, o processo 500 pode incluir obter frame atual seguinte 538, quando a sequência de vídeo ainda não tiver terminado. Nesse caso, os dados de imagem do novo frame atual são obtidos e o processo volta a ser repetido na operação 504 para gerar o mapa de profundidade do frame atual seguinte.
Procedimento de treinamento [0078] O treinamento da arquitetura acima mencionada em locais de aprendizagem supervisionada pode incluir um conjunto de treinamento de sequência de vídeo RGBD, onde os frames em cada sequência têm informações semânticas. Esse vídeo pode ser obtido usando (i) um método de trabalho intensivo segmentando manualmente cada frame, (ii) segmentando um modelo 3D reconstruído ou (iii) usando dados sintéticos. Consulte Dai et al., Richly-annotated 3D Reconstructions of Indoor Scenes, Computer Vision and Pattern Recognition (CVPR) (2017).
Petição 870180161488, de 11/12/2018, pág. 112/234
34/59 [0079] Além disso, o treinamento de uma rede recorrente requer mapas semânticos renderizados do modelo semântico 3D. O treinamento pode ser efetuado em diversas operações.
[0080] A primeira operação de treinamento pode envolver inicialização treinando uma rede de segmentação semântica padrão. Primeiro, é treinado um algoritmo de segmentação semântica baseada em CNN de frame único padrão. Essa rede inicial resultante pode ser denotada como ni por exemplo.
[0081] A operação de treinamento seguinte pode envolver preparação de dados, que se refere à geração de dados de treinamento para a arquitetura recorrente. Dada a rede atual, os dados de treinamento foram gerados para a fase recorrente seguinte na forma de um tripleto (frame RGBD, mapa semântico renderizado do modelo semântico 3D, segmentação semântica de verdade terrestre) da seguinte maneira. O sistema é executado como mostrado nas Figuras 6 e 8 com a rede atual em sequências curtas de frames N, em que N corresponde a um parâmetro regulável. Um mapa semântico correspondente foi renderizado para o último frame desde a última pose de câmera em cada sequência, e depois guardado com o frame como dados de treinamento para o estágio seguinte. O mapa semântico foi representado como uma imagem de pixels H*W (o tamanho do frame) com canais C (o número de classes que o sistema suporta). Uma vez que somente probabilidades X<C são lembradas em cada voxel, as probabilidades C-X inferiores são truncadas em zero, e as restantes probabilidades X são novamente normalizadas para corresponderem a uma distribuição apropriada.
[0082] Uma outra operação de treinamento envolve então treinamento da arquitetura recorrente. Dados os novos dados de treinamento (frame RGBD, mapa semântico renderizado do modelo da última pose de câmera e segmentação semântica de verdade
Petição 870180161488, de 11/12/2018, pág. 113/234
35/59 terrestre), o treinamento (ou regulação) é continuado na rede anterior com a ramificação adicional, como descrito anteriormente, e operado como na Figura 8. O treinamento e a preparação de dados da arquitetura recorrente podem ser repetidos para diversas iterações. A rede final pode se denominar nfinai.
[0083] Além disso, qualquer uma ou mais das operações das Figuras 4 e 5A e 5B podem ser realizadas em resposta a instruções fornecidas por um ou mais produtos de programa de computador. Esses produtos de programa podem incluir meios portadores de sinais fornecendo instruções que, quando executadas por, por exemplo, um processador, possam fornecer a funcionalidade aqui descrita. Os produtos de programa de computador podem ser fornecidos em qualquer forma de um ou mais meios legíveis por máquina. Desse modo, por exemplo, um processador incluindo um ou mais núcleos de processador pode realizar uma ou mais das operações dos processos de exemplo aqui em resposta ao código de programa e/ou às instruções ou conjuntos de instruções conduzidos até ao processador por um ou mais meios legíveis por computador ou máquina. Em geral, um meio legível por máquina pode conduzir software na forma de código de programa e/ou instruções ou conjuntos de instruções que possam fazer com que qualquer um dos dispositivos e/ou sistemas funcione como aqui descrito. Os meios legíveis por máquina ou computador podem ser um meio ou artigo não transitório, como por exemplo um meio legível por computador não transitório, e podem ser usados com qualquer um dos exemplos mencionados acima ou outros exemplos, à exceção de não incluírem um sinal transitório per se. Incluem os elementos para além de um sinal per se que possam reter dados temporariamente de uma maneira transitória, como por exemplo RAM, etc.
[0084] Como usado em qualquer implementação aqui descrita, o
Petição 870180161488, de 11/12/2018, pág. 114/234
36/59 termo módulo se refere a qualquer combinação de lógica de software, lógica de firmware e/ou lógica de hardware configuradas para fornecer a funcionalidade aqui descrita. O software pode ser incorporado como um pacote de software, conjunto de códigos e/ou instruções ou instruções, e hardware, como usado em qualquer implementação aqui descrita, pode incluir, por exemplo, individualmente ou em qualquer combinação, conjunto de circuitos conectados, conjunto de circuitos programáveis, conjunto de circuitos de máquina de estado e/ou firmware de função fixa que armazenem instruções executadas pelo conjunto de circuitos programável. Os módulos podem, coletiva ou individualmente, ser contidos como conjunto de circuitos que faça parte de um sistema maior, por exemplo, um circuito integrado (CI), sistema em um chip (SoC), etc. Por exemplo, um módulo pode ser contido no conjunto de circuitos lógico para a implementação via software, firmware ou hardware dos sistemas de codificação aqui discutidos.
[0085] Como usado em qualquer implementação aqui descrita, o termo unidade lógica se refere a qualquer combinação de lógica de firmware e/ou lógica de hardware configuradas para fornecer a funcionalidade aqui descrita. As unidades lógicas podem, coletiva ou individualmente, ser incorporadas como conjunto de circuitos que faça parte de um sistema maior, por exemplo, um circuito integrado (CI), sistema em um chip (SoC), etc. Por exemplo, uma unidade lógica pode ser contida no conjunto de circuitos lógico para a implementação via firmware ou hardware dos sistemas de codificação aqui discutidos. Um versado na técnica irá reconhecer que as operações efetuadas por hardware e/ou firmware de função fixa podem ser alternativamente implementadas via software, que pode ser contido como um pacote de software, conjunto de códigos e/ou instruções ou instruções, e reconhecer igualmente que a unidade lógica pode igualmente utilizar
Petição 870180161488, de 11/12/2018, pág. 115/234
37/59 uma porção de software para implementar sua funcionalidade.
[0086] Como usado em qualquer implementação aqui descrita, o termo componente pode se referir a um módulo ou a uma unidade lógica, uma vez que esses termos são descritos acima. Conformemente, o termo componente pode se referir a qualquer combinação de lógica de software, lógica de firmware e/ou lógica de hardware configuradas para fornecer a funcionalidade aqui descrita. Por exemplo, um versado na técnica irá reconhecer que as operações efetuadas por hardware e/ou firmware podem alternativamente ser implementadas via um módulo de software, que pode ser contido como um pacote de software, conjunto de códigos e/ou instruções, e igualmente reconhecer que uma unidade lógica pode igualmente utilizar uma porção de software para implementar sua funcionalidade.
[0087] Relativamente à Figura 9, é disposto um sistema de processamento de imagens 900 de exemplo de acordo com, pelo menos, algumas implementações da presente revelação. Em várias implementações, o sistema de processamento de imagens 900 de exemplo pode ter um dispositivo de imagens 902 para formar ou receber dados de imagens capturadas. Isso pode ser implementado de várias formas. Desse modo, em uma forma, o sistema de processamento de imagens 900 pode corresponder a uma ou mais câmeras digitais ou outros dispositivos de captura de imagens, e o dispositivo de imagens 902, nesse caso, pode ser o hardware de câmera e software de sensor de câmera, módulo ou componente. Em outros exemplos, o sistema de processamento de imagens 900 pode ter um dispositivo de imagens 902 que inclua ou possa ser uma ou mais câmeras, e os módulos lógicos 904 possam comunicar remotamente com o, ou então possam ser comunicativamente acoplados no, dispositivo de imagens 902 para mais processamento
Petição 870180161488, de 11/12/2018, pág. 116/234
38/59 dos dados de imagem.
[0088] Desse modo, o sistema de processamento de imagens 900 pode ser uma única câmera sozinha ou se encontrar em um dispositivo de múltiplas câmeras, podendo ser um smartphone, tablet, laptop ou outro dispositivo móvel, mas particularmente aqui pode corresponder a sensores e câmaras de visão por computador, e/ou auriculares RV, RA ou RM, óculos ou outro acessório de cabeça posicionado sobre os olhos de uma pessoa. Caso contrário, o sistema 900 pode ser o dispositivo com múltiplas câmeras onde o processamento ocorre em uma das câmeras ou em uma localização de processamento separada comunicando com as câmeras quer dentro quer fora do dispositivo, e quer o processamento seja efetuado ou não em um dispositivo móvel.
[0089] Em qualquer um desses casos, essa tecnologia pode incluir uma câmera, como por exemplo um sistema de câmera digital, um dispositivo de câmara especializado, ou um tablet ou telefone de imagens, ou outra câmera de vídeo, câmera, incluindo um auricular que receba um smartphone por exemplo, ou alguma combinação dos mesmos. Desse modo, em uma forma, o dispositivo de imagens 902 pode incluir hardware de câmera e óptica incluindo um ou mais sensores, bem como foco automático, zoom, abertura, filtro ND, exposição automática, flash e controles de acionador. Esses controles podem fazer parte de um módulo de sensor ou componente para operação do sensor que possa ser usado para gerar imagens para um visor e capturar imagens estáticas ou vídeo. O dispositivo de imagens 902 pode igualmente ter uma lente, um sensor de imagens com um filtro de cor RGB Bayer, um amplificador analógico, um conversor A/D, outros componentes para converter luz incidente em um sinal digital, afins, e/ou combinações dos mesmos. O sinal digital pode igualmente ser aqui referido como os dados de imagem em bruto.
Petição 870180161488, de 11/12/2018, pág. 117/234
39/59 [0090] Outras formas incluem um dispositivo de imagens tipo sensor de câmera ou afins (por exemplo, uma webcam ou sensor de webcam ou outro sensor de imagens de tipo semicondutor de óxido de metal complementar (CMOS - Complementary Metal-OxideSemiconductor)) além, ou em vez, do uso de uma câmera de profundidade vermelho-verde-azul (RGB - Red-Green-Blue) e/ou matriz de microfone para localizar quem está falando. O sensor de câmera pode igualmente suportar outros tipos de obturadores eletrônicos, como por exemplo obturador global além, ou em vez, de obturador de rolamento, e muitos outros tipos de obturador. Em outros exemplos, poderão ser usadas uma câmera de profundidade RGB e/ou matriz de microfone em alternativa a um sensor de câmera. Nesses exemplos, além de um sensor de câmera, pode igualmente ser fornecido o mesmo sensor ou um sensor separado como projetor de luz, como por exemplo um projetor IV para fornecer uma imagem de profundidade separada que possa ser usada para triangulação com a imagem de câmera. Caso contrário, o dispositivo de imagens pode ter qualquer outra tecnologia conhecida para fornecer mapas de profundidade usando múltiplos dispositivos de câmera ou imagens, ou um único dispositivo de imagens.
[0091] No exemplo ilustrado e aqui relevante, os módulos lógicos 904 podem incluir uma unidade de tratamento de imagens em bruto 906 que efetue pré-processamento nos dados de imagem suficiente para segmentação, mas que possa igualmente ser suficiente para geração de um mapa de profundidade ou imagem de profundidade, uma unidade de geração de mapas de profundidade 908 que efetue algoritmos de profundidade tipicamente em múltiplas imagens da mesma cena, e para formar um espaço tridimensional onde os pixels ou pontos têm coordenadas tridimensionais (x, y, z) em um mapa de profundidade ou imagem de profundidade resultante que represente o
Petição 870180161488, de 11/12/2018, pág. 118/234
40/59 espaço tridimensional (ou imagem 2D ou conjunto de imagens da mesma cena).
[0092] Os módulos lógicos podem ter igualmente uma unidade de segmentação de imagens 910 para efetuar muitas das operações já aqui descritas. Desse modo, por exemplo, a unidade de segmentação 910 pode ter uma unidade de segmentação geométrica 912 que forme as novas estimativas de pose e mantenha o modelo geométrico 3D como descrito acima. Uma unidade de segmentação de frames semânticos 940 pode ser fornecida para efetuar a segmentação semântica recorrente como descrito acima. Para concretizar essas tarefas, a unidade de segmentação geométrica 912 pode ter uma unidade de renderização de pose K - 1 914, uma unidade de nova est. de pose 916 e uma unidade de atualização de modelos geométricos 918, e como descrito com unidades similarmente denominadas acima ou que efetuem facilmente tarefas reconhecidas como já descrito acima. Similarmente, a unidade de segmentação de frames semânticos 940 pode ter uma unidade de mapas de segmentação semântica 942, uma unidade de particularidades semânticas históricas de extração 944, uma unidade de particularidades atuais de extração 946, uma unidade de combinação atual-histórica 948 e uma unidade de saída de segmentação 950 efetuando tarefas como já descrito acima. É fornecida uma unidade de atualização de segmentação semântica 952 para atualizar um modelo semântico 3D com a saída semântica da unidade de saída de segmentação 952, igualmente como descrito acima.
[0093] O sistema de processamento de imagens 900 pode ter um ou mais processadores 920 que podem incluir um processador de sinais de imagem (ISP - Image Signal Processor) especializado 922, como por exemplo os armazenamentos de memória Intel Atom 924, um ou mais displays 928 para fornecer imagens 930, um codificador
Petição 870180161488, de 11/12/2018, pág. 119/234
41/59
932 e antena 926. Em uma implementação de exemplo, o sistema de processamento de imagens 900 pode ter o display 928, pelo menos um processador 920 comunicativamente acoplado no display e, pelo menos, uma memória 924 comunicativamente acoplada no processador. O codificador 932 pode ser um codificador, decodificador ou ambos. Como um codificador 932, e com antena 934, o codificador pode ser fornecido para comprimir dados de imagem para transmissão a outros dispositivos que possam apresentar ou armazenar a imagem. Será entendido que, como um decodificador, o codificador pode receber e decodificar dados de imagem para processamento pelo sistema 900 para receber imagens para segmentação além de, ou em vez de, capturar inicialmente as imagens com o dispositivo 900. Caso contrário, a imagem processada 930 pode ser apresentada no display 928 ou armazenada na memória 924. Como ilustrado, qualquer um desses componentes pode ter capacidade de comunicação entre si e/ou de comunicação com porções de módulos lógicos 904 e/ou dispositivo de imagens 902. Desse modo, os processadores 920 podem ser comunicativamente acoplados tanto no dispositivo de imagens 902 como nos módulos lógicos 904 para operar esses componentes. Segundo uma abordagem, embora o sistema de processamento de imagens 900, como mostrado na Figura 9, possa incluir um conjunto particular de blocos ou ações associados a componentes ou módulos particulares, esses blocos ou essas ações podem ser associados a diferentes componentes ou módulos em comparação com o componente ou módulo particular aqui ilustrado. [0094] Relativamente à Figura 10, um sistema 1000 de exemplo de acordo com a presente revelação opera um ou mais aspectos do sistema de processamento de imagens aqui descrito. Será entendido desde a natureza dos componentes de sistema descritos abaixo que esses componentes podem ser associados a, ou usados para operar,
Petição 870180161488, de 11/12/2018, pág. 120/234
42/59 certa parte ou certas partes do sistema de processamento de imagens 1000 descrito acima e, por consequência, usados para operar os métodos aqui descritos. Em várias implementações, o sistema 1000 pode ser um sistema de meios, embora o sistema 1000 não seja limitado a esse contexto. Por exemplo, o sistema 1000 pode ser incorporado em uma câmera fotográfica digital, uma câmera de vídeo digital, um dispositivo móvel com funções de câmera ou vídeo, como por exemplo um telefone de imagens, uma webcam, um computador pessoal (PC), um computador laptop, um computador ultra-laptop, um tablet com múltiplas câmeras, um touchpad, um computador portátil, um computador de mão, um computador palmtop, um assistente pessoal digital (PDA - Personal Digital Assistant), um telefone celular, uma combinação telefone celular/PDA, uma televisão, um dispositivo inteligente (por exemplo, smartphone, um tablet inteligente ou uma televisão inteligente), um dispositivo de Internet móvel (MID - Mobile Internet Device), um dispositivo de mensagens, um dispositivo de comunicação de dados, etc.
[0095] Em várias implementações, o sistema 1000 inclui uma plataforma 1002 acoplada em um display 1020. A plataforma 1002 pode receber conteúdo de um dispositivo de conteúdo, como por exemplo dispositivo(s) de serviços de conteúdo 1030 ou dispositivo(s) de distribuição de conteúdo 1040 ou outras fontes de conteúdo similares. Um controlador de navegação 1050 incluindo uma ou mais particularidades de navegação pode ser usado para interagir com, por exemplo, a plataforma 1002 e/ou o display 1020. Cada um desses componentes é descrito abaixo em maior detalhe.
[0096] Em várias implementações, a plataforma 1002 pode incluir qualquer combinação de um chipset 1005, um processador 1010, uma memória 1012, um armazenamento 1014, um subsistema de gráficos 1015, aplicações 1016 e/ou um rádio 1018. O chipset 1005 pode
Petição 870180161488, de 11/12/2018, pág. 121/234
43/59 fornecer intercomunicação entre processador 1010, memória 1012, armazenamento 1014, subsistema de gráficos 1015, aplicações 1016 e/ou rádio 1018. Por exemplo, o chipset 1005 pode incluir um adaptador de armazenamento (não retratado) com capacidade para fornecer intercomunicação com armazenamento 1014.
[0097] O processador 1010 pode ser implementado como um processador de Computador com um Conjunto Complexo de Instruções (CISC - Complex Instruction Set Computer) ou Computador com um Conjunto Reduzido de Instruções (RISC - Reduced Instruction Set Computer); processadores compatíveis com conjunto de instruções x86, múltiplos núcleos ou qualquer outro microprocessador ou unidade central de processamento (CPU - Central Processing Unit). Em várias implementações, o processador 1010 pode corresponder a processador(es) de núcleo duplo, processador(es) móveis de núcleo duplo, etc.
[0098] A memória 1012 pode ser implementada como um dispositivo de memória volátil, como por exemplo, mas não se limitando a, uma Memória de Acesso Aleatório (RAM), Memória de Acesso Aleatório Dinâmica (DRAM - Dynamic Random Access Memory) ou RAM Estática (SRAM - Static RAM).
[0099] O armazenamento 1014 pode ser implementado como um dispositivo de armazenamento não volátil, como por exemplo, mas não se limitando a, uma unidade de disco magnético, uma unidade de disco óptico, uma unidade de fita, um dispositivo de armazenamento interno, um dispositivo de armazenamento ligado, memória flash, SDRAM (DRAM síncrona) apoiada por bateria e/ou um dispositivo de armazenamento de rede acessível. Em várias implementações, o armazenamento 1014 pode incluir tecnologia para aumentar a proteção melhorada de desempenho de armazenamento para meios digitais valiosos quando se encontram incluídos múltiplos discos
Petição 870180161488, de 11/12/2018, pág. 122/234
44/59 rígidos, por exemplo.
[0100] O subsistema de gráficos 1015 pode efetuar processamento de imagens, como por exemplo, estáticas ou de vídeo para apresentação. O subsistema de gráficos 1015 pode ser uma unidade de processamento gráfico (GPU - Graphics Processing Unit) ou uma unidade de processamento visual (VPU - Visual Processing Unit), por exemplo. Uma interface analógica ou digital pode ser usada para acoplar comunicativamente o subsistema de gráficos 1015 e o display 1020. Por exemplo, a interface pode ser qualquer uma entre uma Interface Multimídia de Alta Definição (HDMI - High-Definition Multimedia Interface), Porta de Visualização, HDMI sem fio e/ou técnicas compatíveis com HD sem fio. O subsistema de gráficos 1015 pode ser integrado no processador 1010 ou chipset 1005. Em algumas implementações, o subsistema de gráficos 1015 pode ser um cartão autônomo acoplado comunicativamente no chipset 1005.
[0101] As técnicas de processamento de gráficos e/ou vídeo aqui descritas podem ser implementadas em várias arquiteturas de hardware. Por exemplo, a funcionalidade de gráficos e/ou vídeo pode ser integrada em um chipset. Em alternativa, pode ser usado um processador de gráficos e/ou vídeo distinto. Ainda como outra implementação, as funções de gráficos e/ou vídeo podem ser fornecidas por um processador de uso geral, incluindo um processador de múltiplos núcleos. Em outras implementações, as funções podem ser implementadas em um dispositivo de eletrônica de consumidor.
[0102] O rádio 1018 pode incluir um ou mais rádios com capacidade para transmitir e receber sinais usando várias técnicas de comunicação sem fio adequadas. Essas técnicas podem envolver comunicações em uma ou mais redes sem fio. As redes sem fio de exemplo incluem (mas não se limitam a) redes de área local sem fio (WLANs - Wireless Local Area Networks), redes de área pessoal sem
Petição 870180161488, de 11/12/2018, pág. 123/234
45/59 fio (WPANs - Wireless Personal Area Networks), redes de área metropolitana sem fio (WMANs - Wireless Metropolitan Area Networks), redes celulares e redes de satélite. Na comunicação nessas redes, o rádio 1018 pode operar de acordo com uma ou mais normas aplicáveis em qualquer versão.
[0103] Em várias implementações, o display 1020 pode incluir qualquer display ou monitor tipo televisão. O display 1020 pode incluir, por exemplo, um écran de display de computador, um display de écran tátil, um monitor de vídeo, um dispositivo tipo televisão e/ou uma televisão. O display 1020 pode ser digital e/ou analógico. Em várias implementações, o display 1020 pode ser um display holográfico. Igualmente, o display 1020 pode ser uma superfície transparente que possa receber uma projeção visual. Essas projeções podem conduzir várias formas de informação, imagens e/ou objetos. Por exemplo, essas projeções podem ser uma sobreposição visual para uma aplicação de realidade aumentada móvel (MAR - Mobile Augmented Reality). Sob o controle de uma ou mais aplicações de software 1016, a plataforma 1002 pode apresentar a interface de usuário 1022 no display 1020.
[0104] Em várias implementações, o(s) dispositivo(s) de serviços de conteúdo 1030 pode(m) ser alojado(s) por qualquer serviço nacional, internacional e/ou independente e, desse modo, acessível à plataforma 1002 via Internet, por exemplo. O(s) dispositivo(s) de serviços de conteúdo 1030 pode(m) ser acoplado(s) na plataforma 1002 e/ou no display 1020. A plataforma 1002 e/ou o(s) dispositivo(s) de serviços de conteúdo 1030 pode(m) ser acoplado(s) em uma rede 1060 para comunicar (por exemplo, enviar e/ou receber) informações de multimídia à, e desde a, rede 1060. O(s) dispositivo(s) de distribuição de conteúdo 1040 pode(m) igualmente ser acoplado(s) na plataforma 1002 e/ou no display 1020.
Petição 870180161488, de 11/12/2018, pág. 124/234
46/59 [0105] Em várias implementações, o(s) dispositivo(s) de serviços de conteúdo 1030 pode(m) incluir uma box de televisão a cabo, um computador pessoal, uma rede, um telefone, aparelho ou dispositivos ativados por Internet com capacidade para distribuir informações digitais e/ou conteúdo, e qualquer outro dispositivo similar com capacidade para comunicar unidirecional ou bidirecionalmente conteúdo entre fornecedores de conteúdo e a plataforma 1002 e display 1020, via rede 1060 ou diretamente. Será reconhecido que o conteúdo pode ser comunicado unidirecional e/ou bidirecionalmente para e desde qualquer um dos componentes no sistema 1000 e um fornecedor de conteúdo via rede 1060. Os exemplos de conteúdo podem incluir quaisquer informações de multimídia incluindo, por exemplo, vídeo, música, informações médicas e de jogos, etc.
[0106] O(s) dispositivo(s) de serviços de conteúdo 1030 pode(m) receber conteúdo, como por exemplo programação de televisão a cabo incluindo informações de multimídia, informações digitais e/ou outro conteúdo. Os exemplos de fornecedores de conteúdo podem incluir qualquer rádio ou televisão por satélite ou a cabo ou fornecedores de conteúdo de Internet. Os exemplos fornecidos não pretendem limitar de modo algum implementações de acordo com a presente revelação.
[0107] Em várias implementações, a plataforma 1002 pode receber sinais de controle do controlador de navegação 1050 tendo uma ou mais particularidades de navegação. As particularidades de navegação do controlador 1050 podem ser usadas para interagir com a interface de usuário 1022, por exemplo. Nas implementações, o controlador de navegação 1050 pode ser um dispositivo apontador que pode ser um componente de hardware de computador (especificamente, um dispositivo de interface humana) que permita a um usuário introduzir dados espaciais (por exemplo, contínuos e
Petição 870180161488, de 11/12/2018, pág. 125/234
47/59 multidimensionais) em um computador. Muitos sistemas, como por exemplo interfaces gráficas de usuário (GUI - Graphical User Interfaces), e televisões e monitores, permitem ao usuário controlar e fornecer dados ao computador ou à televisão usando gestos físicos. [0108] Os movimentos das particularidades de navegação do controlador 1050 podem ser replicados em um display (por exemplo, display 1020) por movimentos de um ponteiro, cursor, anel de focagem ou outros indicadores visuais apresentados no display. Por exemplo, sob o controle de aplicações de software 1016, as particularidades de navegação localizadas no controlador de navegação 1050 podem ser mapeadas para particularidades de navegação virtual apresentadas na interface de usuário 1022, por exemplo. Nas implementações, o controlador 1050 pode não ser um componente separado, mas pode ser integrado na plataforma 1002 e/ou no display 1020. A presente revelação, todavia, não é limitada aos elementos ou no contexto aqui mostrado ou descrito.
[0109] Em várias implementações, os controladores (não mostrados) podem incluir tecnologia para permitir aos usuários ligar e desligar instantaneamente a plataforma 1002, como uma televisão, com o toque de um botão após o arranque inicial, quando ativado, por exemplo. A lógica de programa pode permitir que a plataforma 1002 emita conteúdo em adaptadores de multimídia ou outro(s) dispositivo(s) de serviços de conteúdo 1030 ou dispositivo(s) de distribuição de conteúdo 1040 mesmo quando a plataforma se encontra desligada. Além disso, o chipset 1005 pode incluir suporte de hardware e/ou software para áudio de som surround 8.1 e/ou áudio de som surround (7.1) de alta definição, por exemplo. Os controladores podem incluir um controlador de gráficos para plataformas de gráficos integrados. Nas implementações, o controlador de gráficos pode compreender uma placa gráfica PCI
Petição 870180161488, de 11/12/2018, pág. 126/234
48/59 (Peripheral Component Interconnect - Interconexão do Componente Periférico) Express.
[0110] Em várias implementações, qualquer um ou mais dos componentes mostrados no sistema 1000 podem ser integrados. Por exemplo, podem ser integrados a plataforma 1002 e os dispositivos de serviços de conteúdo 1030, ou podem ser integrados a plataforma 1002 e o(s) dispositivo(s) de distribuição de conteúdo 1040, ou podem ser integrados a plataforma 1002, o(s) dispositivo(s) de serviços de conteúdo 1030 e (o)s dispositivo(s) de distribuição de conteúdo 1040, por exemplo. Em várias implementações, a plataforma 1002 e o display 1020 podem ser uma unidade integrada. O display 1020 e o(s) dispositivo(s) de serviço de conteúdo 1030 podem ser integrados, ou o display 1020 e o(s) dispositivo(s) de distribuição de conteúdo 1040 podem ser integrados, por exemplo. Esses exemplos não pretendem limitar a presente revelação.
[0111] Em várias implementações, o sistema 1000 pode ser implementado como um sistema sem fio, um sistema com fio ou uma combinação de ambos. Quando implementado como um sistema sem fio, o sistema 1000 pode incluir componentes e interfaces adequados para a comunicação em meios partilhados sem fio, como por exemplo uma ou mais antenas 1003, transmissores, receptores, transceptores, amplificadores, filtros, lógica de controle, etc. Um exemplo de meios partilhados sem fio pode incluir porções de um espectro sem fio, como por exemplo o espectro RF, etc. Quando implementado como um sistema com fio, o sistema 1000 pode incluir componentes e interfaces adequados para a comunicação em meios de comunicação com fio, como por exemplo adaptadores de entrada/saída (E/S), conectores físicos para conectar o adaptador de E/S com um meio de comunicação com fio correspondente, uma placa de interface de rede (NIC - Network Interface Card), controlador de disco, controlador de
Petição 870180161488, de 11/12/2018, pág. 127/234
49/59 vídeo, controlador de áudio e afins. Os exemplos de meios de comunicação com fio podem incluir um fio, um cabo, condutores de metal, placa de circuito impresso (PCB - Printed Circuit Board), infraestrutura de integração (backplane), estrutura de comutadores, material semicondutor, par de fios entrançados, cabo coaxial, fibra óptica, etc.
[0112] A plataforma 1002 pode estabelecer um ou mais canais lógicos ou físicos para a comunicação de informações. As informações podem incluir informações de multimídia e informações de controle. As informações de multimídia podem se referir a quaisquer dados representando conteúdo destinado a um usuário. Os exemplos de conteúdo podem incluir, por exemplo, dados de uma conversação de voz, videoconferência, transmissão em fluxo de vídeo, mensagem de correio eletrônico (e-mail), mensagem de texto (envio de SMS), formatos de mídia social, mensagem de voz (voice mail), símbolos alfanuméricos, gráficos, imagem, vídeo, texto, etc. Os dados de uma conversação de voz podem ser, por exemplo, informações de voz, períodos de silêncio, ruído de fundo, ruído de conforto, tons, etc. As informações de controle podem se referir a quaisquer dados representando comandos, instruções ou palavras de controle destinados a um sistema automatizado. Por exemplo, as informações de controle podem ser usadas para encaminhar informações de multimídia por um sistema, ou dar instruções a um nó para processar as informações de multimídia de uma maneira predeterminada. Todavia, as implementações não são limitadas aos elementos ou no contexto mostrado ou descrito na Figura 10.
[0113] Relativamente à Figura 11, um pequeno dispositivo de fator de forma 1100 é um exemplo dos estilos físicos variáveis ou fatores de forma nos quais podem ser contidos sistemas 900 ou 1000. Segundo essa abordagem, o dispositivo 1100 pode ser implementado como um
Petição 870180161488, de 11/12/2018, pág. 128/234
50/59 dispositivo de computação móvel com capacidades sem fio. Um dispositivo de computação móvel pode se referir a qualquer dispositivo tendo um sistema de processamento e uma fonte ou abastecimento de alimentação móvel, como por exemplo uma ou mais baterias, por exemplo.
[0114] Como descrito acima, os exemplos de um dispositivo de computação móvel podem incluir uma câmera fotográfica digital, uma câmera de vídeo digital, dispositivos móveis com funções de câmera ou vídeo, como por exemplo telefones de imagens, uma webcam, um computador pessoal (PC), um computador laptop, um computador ultra-laptop, um tablet, um touchpad, um computador portátil, um computador de mão, um computador palmtop, um assistente pessoal digital (PDA), um telefone celular, uma combinação telefone celular/PDA, uma televisão, um dispositivo inteligente (por exemplo, smartphone, um tablet inteligente ou uma televisão inteligente), um dispositivo de Internet móvel (MID), um dispositivo de mensagens, um dispositivo de comunicação de dados, etc.
[0115] Os exemplos de um dispositivo de computação móvel podem igualmente incluir computadores que sejam dispostos para serem usados por uma pessoa, como por exemplo um computador de pulso, computador de dedo, computador de anel, computador de óculos, computador de presilha de cinto, computador de braçadeira, computadores de sapato, computadores no vestuário e outros computadores usáveis. Em várias modalidades, por exemplo, um dispositivo de computação móvel pode ser implementado como um smartphone com capacidade para executar aplicações de computador, bem como comunicações de voz e/ou comunicações de dados. Embora algumas modalidades possam ser descritas com um dispositivo de computação móvel implementado como um smartphone como exemplo, deve ser reconhecido que podem ser implementadas
Petição 870180161488, de 11/12/2018, pág. 129/234
51/59 outras modalidades usando igualmente outros dispositivos de computação móveis sem fio. As implementações não são limitadas nesse contexto.
[0116] Como mostrado na Figura 11, o dispositivo 1100 pode incluir um invólucro com uma frente 1101 e uma traseira 1102. O dispositivo 1100 inclui um display 1104, um dispositivo de entrada/saída (E/S) 1106 e uma antena integrada 1108. O dispositivo 1100 pode igualmente incluir particularidades de navegação 1112. O dispositivo E/S 1106 pode incluir qualquer dispositivo E/S adequado para introdução de informações em um dispositivo de computação móvel. Os exemplos para o dispositivo E/S 1106 podem incluir um teclado alfanumérico, um teclado numérico, um touchpad, teclas de entrada, botões, comutadores, microfones, alto-falantes, software e dispositivo de reconhecimento de voz, etc. As informações podem igualmente ser introduzidas no dispositivo 1100 por microfone 1114 ou podem ser digitalizadas por um dispositivo de reconhecimento de voz. Como mostrado, o dispositivo 1100 pode incluir uma câmera 1105 (por exemplo, incluindo pelo menos uma lente, uma abertura e um sensor de imagens) e um iluminador 1110, como por exemplo os aqui descritos, integrados na traseira 1102 (ou em outro lugar) do dispositivo 1100. As implementações não são limitadas nesse contexto.
[0117] Várias formas dos dispositivos e processos aqui descritos podem ser implementadas usando elementos de hardware, elementos de software ou uma combinação de ambos. Os exemplos de elementos de hardware podem incluir processadores, microprocessadores, circuitos, elementos de circuito (por exemplo, transistores, resistores, condensadores, indutores, etc.), circuitos integrados, circuitos integrados de aplicação específica (ASIC Application Specific Integrated Circuits), dispositivos lógicos
Petição 870180161488, de 11/12/2018, pág. 130/234
52/59 programáveis (PLD - Programmable Logic Devices), processadores de sinais digitais (DSP - Digital Signal Processors), arranjo de portas programável em campo (FPGA - Field Programmable Gate Array), portas lógicas, registros, dispositivo semicondutor, chips, microchips, chipsets, etc. Os exemplos de software podem incluir componentes de software, programas, aplicações, programas de computador, programas de aplicação, programas de sistema, programas de máquina, software de sistema operacional, middleware, firmware, módulos de software, rotinas, sub-rotinas, funções, métodos, procedimentos, interfaces de software, interfaces de programação de aplicações (API - Application Program Interface), conjuntos de instruções, código de computação, código de computador, segmentos de código, segmentos de código de computador, palavras, valores, símbolos ou qualquer combinação dos mesmos. A determinação sobre se uma modalidade é implementada usando elementos de hardware e/ou elementos de software pode variar de acordo com um número qualquer de factores, como por exemplo taxa computacional desejada, níveis de potência, tolerâncias ao calor, provisão do ciclo de processamento, taxas de dados de entrada, taxas de dados de saída, recursos de memória, velocidades de barramento de dados e outras restrições de desenho ou desempenho.
[0118] Um ou mais aspectos de, pelo menos, uma modalidade podem ser implementados por instruções representativas armazenadas em um meio legível por máquina que represente várias lógicas dentro do processador, que quando lidas por uma máquina fazem com que a máquina fabrique lógica para efetuar as técnicas aqui descritas. Essas representações, conhecidas como núcleos IP, podem ser armazenadas em um meio legível por máquina tangível e fornecidas a vários clientes ou instalações de fabricação para carregar nas máquinas de fabricação que criam realmente a lógica ou o
Petição 870180161488, de 11/12/2018, pág. 131/234
53/59 processador.
[0119] Embora certas particularidades aqui apresentadas tenham sido descritas com referência a várias implementações, essa descrição não pretende ser interpretada em um sentido limitativo. Por isso, várias modificações das implementações aqui descritas, bem como outras implementações, que são evidentes para os versados na técnica aos quais pertencem a presente revelação, são consideradas como fazendo parte do espírito e escopo da presente revelação.
[0120] Os exemplos seguintes pertencem a mais implementações. [0121] Segundo uma implementação de exemplo, um método implementado por computador de segmentação semântica para processamento de imagens, compreendendo a obtenção de uma sequência de vídeo de frames de dados de imagem e compreendendo um frame atual; gerando recorrentemente um mapa de segmentação semântica em uma vista de uma pose atual do frame atual e compreendendo a obtenção de dados para formar o mapa de segmentação semântica de um modelo de segmentação semântica 3D, em que os mapas de segmentação semântica individuais são, cada um deles, associados a um diferente frame atual da sequência de vídeo; extraindo particularidades semânticas historicamente influenciadas do mapa de segmentação semântica; extraindo particularidades semânticas atuais do frame atual; gerando um frame semanticamente segmentado atual e histórico compreendendo o uso tanto das particularidades semânticas atuais como das particularidades semânticas historicamente influenciadas como entrada em uma rede neural que indique etiquetas semânticas para áreas do frame semanticamente segmentado atual e histórico; e atualizando semanticamente o modelo de segmentação semântica 3D compreendendo o uso do frame semanticamente segmentado atual e histórico.
Petição 870180161488, de 11/12/2018, pág. 132/234
54/59 [0122] Segundo outra implementação, esse método pode compreender a atualização de modo geométrico do modelo de segmentação semântica 3D com dados de frames atuais individuais à medida que a sequência de vídeo está sendo analisada; e renderização de um mapa de segmentação semântica atualizado em uma pose atual de cada frame atual usado para atualizar geometricamente o modelo de segmentação semântica 3D, em que a extração de particularidades semânticas historicamente influenciadas do mapa de segmentação semântica compreende a introdução de dados de etiqueta de segmentação semântica do mapa de segmentação semântica em uma rede neural de extração e a geração das particularidades semânticas, o método compreendendo a colocação dos dados de etiqueta de segmentação semântica na forma de tensores onde uma das dimensões do tensor corresponde a múltiplas etiquetas provavelmente semânticas para uma única localização de pixel, em que a rede neural usa uma rede neural convolutiva (CNN - Convolutive Neural Network) que é uma rede residual (ResNet - Residual Network), em que as atuais particularidades semânticas e as particularidades semânticas históricas se encontram ambas na forma de tensores em que uma das dimensões do tensor corresponde a múltiplas etiquetas provavelmente semânticas para uma única localização de pixel, e em que a geração do frame semanticamente segmentado atual e histórico compreende a concatenação das particularidades semânticas atuais e das particularidades semânticas historicamente influenciadas para formar um vetor de particularidades de entrada tanto com as particularidades semânticas atuais como com as particularidades semânticas historicamente influenciadas e para ser introduzido na rede neural. O método compreendendo a correspondência da localização de imagem das particularidades semânticas atuais e das particularidades
Petição 870180161488, de 11/12/2018, pág. 133/234
55/59 semânticas historicamente influenciadas, de modo que vetores de particularidades de entrada individuais representem uma única área da imagem, em que os vetores de particularidades constituem uma parte dos tensores, e a concatenação compreende concatenação de tensores formando os vetores de particularidades de entrada; e o método compreendendo a introdução de uma matriz em um momento na rede neural e desde os tensores concatenados, e em que o modelo de segmentação semântica 3D é geometricamente atualizado usando um esquema de profundidade vermelho, verde, azul com localização e mapeamento simultâneos (RGBD-SLAM), o método compreendendo a determinação de uma nova estimativa de pose usando tanto o frame atual em uma pose atual como uma imagem renderizada de uma pose anterior, em que a imagem renderizada é obtida por projeção Ray Casting desde um modelo geométrico 3D separado do modelo de segmentação semântica 3D; fornecendo o frame semanticamente segmentado atual e histórico na nova estimativa de pose; e atualizando o modelo de segmentação semântica 3D compreendendo o registro de etiquetas semânticas do frame semanticamente segmentado atual e histórico na nova estimativa de pose e no modelo de segmentação semântica 3D.
[0123] Segundo uma outra implementação, um sistema implementado por computador de segmentação semântica para processamento de imagens, compreendendo pelo menos um display; pelo menos uma memória; pelo menos um processador acoplado comunicativamente no display e na memória; e uma unidade de segmentação semântica operada pelo, pelo menos um, processador e para operar: obtendo uma sequência de vídeo de frames de dados de imagem e compreendendo um frame atual; gerando recorrentemente um mapa de segmentação semântica em uma vista de uma pose atual do frame atual e compreendendo a obtenção de dados para formar o
Petição 870180161488, de 11/12/2018, pág. 134/234
56/59 mapa de segmentação semântica desde um modelo de segmentação semântica 3D, em que mapas de segmentação semântica individuais são, cada um deles, associados a um diferente frame atual da sequência de vídeo; extraindo particularidades semânticas historicamente influenciadas do mapa de segmentação semântica; extraindo particularidades semânticas atuais do frame atual; gerando um frame semanticamente segmentado atual e histórico compreendendo o uso tanto das particularidades semânticas atuais como das particularidades semânticas historicamente influenciadas como entrada em uma rede neural que indique etiquetas semânticas para áreas do frame semanticamente segmentado atual e histórico; e atualizando semanticamente o modelo de segmentação semântica 3D compreendendo o uso do frame semanticamente segmentado atual e histórico.
[0124] O sistema pode igualmente incluir em que a unidade de segmentação semântica se destina a operar atualizando geometricamente o modelo de segmentação semântica 3D com dados de frames atuais individuais à medida que a sequência de vídeo está sendo analisada, em que a unidade de segmentação semântica se destina a operar renderizando um mapa de segmentação semântica atualizado em uma pose atual de frames atuais individuais usados para atualizar geometricamente o modelo de segmentação 3D, em que a extração de particularidades semânticas historicamente influenciadas do mapa de segmentação semântica compreende a introdução de dados de etiqueta de segmentação semântica desde o mapa de segmentação semântica em uma rede neural de extração e a geração das particularidades semânticas, em que a unidade de segmentação semântica se destina a operar colocando os dados de etiqueta de segmentação semântica na forma de tensores onde uma das dimensões do tensor corresponde a múltiplas etiquetas
Petição 870180161488, de 11/12/2018, pág. 135/234
57/59 provavelmente semânticas para uma única localização de pixel, em que a rede neural usa uma rede neural convolutiva (CNN) que seja uma rede residual (ResNet), em que a geração do frame semanticamente segmentado atual e histórico compreende a concatenação das particularidades semânticas atuais e das particularidades semânticas historicamente influenciadas para formar um vetor de particularidades de entrada tanto com as particularidades semânticas atuais como com as particularidades semânticas historicamente influenciadas e para ser introduzido na rede neural. [0125] Como outra implementação, pelo menos um meio legível por computador tendo armazenadas no mesmo instruções que, quando executadas, fazem com que um dispositivo de computação opere: obtendo uma sequência de vídeo de frames de dados de imagem e compreendendo um frame atual; gerando recorrentemente um mapa de segmentação semântica em uma vista de uma pose atual do frame atual e compreendendo a obtenção de dados para formar o mapa de segmentação semântica de um modelo de segmentação semântica 3D, em que os mapas de segmentação semântica individuais são, cada um deles, associados a um diferente frame atual da sequência de vídeo; extraindo particularidades semânticas historicamente influenciadas do mapa de segmentação semântica; extraindo particularidades semânticas atuais do frame atual; gerando um frame semanticamente segmentado atual e histórico compreendendo o uso tanto das particularidades semânticas atuais como das particularidades semânticas historicamente influenciadas como entrada em uma rede neural que indique etiquetas semânticas para áreas do frame semanticamente segmentado atual e histórico; e atualizando semanticamente o modelo de segmentação semântica 3D compreendendo o uso do frame semanticamente segmentado atual e histórico.
Petição 870180161488, de 11/12/2018, pág. 136/234
58/59 [0126] As instruções podem igualmente fazer com que o dispositivo de computação inclua em que a geração do frame semanticamente segmentado atual e histórico compreende a concatenação das particularidades semânticas atuais e das particularidades semânticas historicamente influenciadas para formar um vetor de particularidades de entrada tanto com as particularidades semânticas atuais como com as particularidades semânticas historicamente influenciadas e para ser introduzido na rede neural, em que as instruções fazem com que o dispositivo de computação opere correspondendo a localização de imagem das particularidades semânticas atuais e das particularidades semânticas historicamente influenciadas, de modo que vetores de particularidades de entrada individuais representem uma única área da imagem, em que os vetores de particularidades constituem parte dos tensores, e a concatenação compreende concatenação de tensores formando os vetores de particularidades de entrada; e o método compreendendo a introdução de uma matriz em um momento na rede neural e desde os tensores concatenados, em que o modelo de segmentação semântica 3D é geometricamente atualizado usando um esquema de profundidade vermelho, verde, azul com localização e mapeamento simultâneos (RGBD-SLAM), em que as instruções fazem com que o dispositivo de computação opere determinando uma nova estimativa de pose usando tanto a imagem atual em uma pose atual como uma imagem renderizada de uma pose anterior, em que a imagem renderizada é obtida por projeção Ray Casting desde um modelo geométrico 3D separado do modelo de segmentação semântica 3D; fornecendo o frame semanticamente segmentado atual na nova estimativa de pose; e atualizando o modelo semântico 3D compreendendo o registro de etiquetas semânticas do frame semanticamente segmentado atual na nova estimativa de pose e no
Petição 870180161488, de 11/12/2018, pág. 137/234
59/59 modelo semântico 3D.
[0127] Em um outro exemplo, pelo menos um meio legível por máquina pode incluir uma pluralidade de instruções que, em resposta a serem executadas em um dispositivo de computação, fazem com que o dispositivo de computação efetue o método de acordo com qualquer um dos exemplos acima.
[0128] Ainda em um outro exemplo, um aparelho pode incluir meios para efetuar os métodos de acordo com qualquer um dos exemplos acima.
[0129] Os exemplos acima podem incluir uma combinação específica de particularidades. Todavia, os exemplos acima não são limitados a esse respeito e, em várias implementações, os exemplos acima podem incluir a realização de um subconjunto dessas particularidades, a realização de uma ordem diferente dessas particularidades, a realização de uma combinação diferente dessas particularidades e/ou a realização de particularidades adicionais para além das particularidades explicitamente listadas. Por exemplo, todas as particularidades descritas com respeito a quaisquer métodos de exemplo aqui podem ser implementadas com respeito a qualquer aparelho de exemplo, quaisquer sistemas de exemplo e/ou quaisquer artigos de exemplo, e vice-versa.

Claims (25)

  1. REIVINDICAÇÕES
    1. Método implementado por computador de segmentação semântica para processamento de imagens caracterizado pelo fato de que compreende:
    obtenção de uma sequência de vídeo de frames de dados de imagem e compreendendo um frame atual;
    geração de modo recorrente de um mapa de segmentação semântica em uma vista de uma pose atual do frame atual e compreendendo a obtenção de dados para formar o mapa de segmentação semântica desde um modelo de segmentação semântica 3D, em que mapas de segmentação semântica individuais são, cada um deles, associados a um frame atual diferente da sequência de vídeo;
    extração de particularidades semânticas historicamente influenciadas do mapa de segmentação semântica;
    extração de particularidades semânticas atuais do frame atual;
    geração de um frame semanticamente segmentado atual e histórico compreendendo o uso tanto das particularidades semânticas atuais como das particularidades semânticas historicamente influenciadas como entrada em uma rede neural que indique etiquetas semânticas para áreas do frame semanticamente segmentado atual e histórico; e atualização de modo semântico do modelo de segmentação semântica 3D compreendendo o uso do frame semanticamente segmentado atual e histórico.
  2. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende a atualização de modo geométrico do modelo de segmentação semântica 3D com dados de frames atuais individuais à medida que a sequência de vídeo está
    Petição 870180161488, de 11/12/2018, pág. 139/234
    2/8 sendo analisada.
  3. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende a renderização de um mapa de segmentação semântica atualizado em uma pose atual de cada frame atual usado para atualizar geometricamente o modelo de segmentação semântica 3D.
  4. 4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a extração de particularidades semânticas historicamente influenciadas do mapa de segmentação semântica compreende a introdução de dados de etiqueta de segmentação semântica do mapa de segmentação semântica em uma rede neural de extração e a geração das particularidades semânticas.
  5. 5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende a colocação dos dados de etiqueta de segmentação semântica na forma de tensores onde uma das dimensões do tensor corresponde a múltiplas etiquetas provavelmente semânticas para uma única localização de pixel.
  6. 6. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a rede neural usa uma rede neural convolutiva (CNN) que é uma rede residual (ResNet).
  7. 7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que as particularidades semânticas atuais e as particularidades semânticas históricas se encontram ambas na forma de tensores em que uma das dimensões do tensor corresponde a múltiplas etiquetas provavelmente semânticas para uma única localização de pixel.
  8. 8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a geração do frame semanticamente segmentado atual e histórico compreende a concatenação das particularidades semânticas atuais e das particularidades semânticas
    Petição 870180161488, de 11/12/2018, pág. 140/234
    3/8 historicamente influenciadas para formar um vetor de particularidades de entrada tanto com as particularidades semânticas atuais como com as particularidades semânticas historicamente influenciadas e para ser introduzido na rede neural.
  9. 9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que compreende a correspondência da localização de imagens das particularidades semânticas atuais e das particularidades semânticas historicamente influenciadas, de modo que vetores de particularidades de entrada individuais representem uma única área da imagem.
  10. 10. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que os vetores de particularidades constituem uma parte dos tensores, e a concatenação compreende concatenação de tensores formando os vetores de particularidades de entrada; e o método compreendendo a introdução de uma matriz em um momento na rede neural e desde os tensores concatenados.
  11. 11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o modelo de segmentação semântica 3D é geometricamente atualizado usando um esquema de profundidade vermelho, verde, azul com localização e mapeamento simultâneos (RGBD-SLAM).
  12. 12. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que compreende a determinação de uma nova estimativa de pose usando tanto o frame atual em uma pose atual como uma imagem renderizada de uma pose anterior, em que a imagem renderizada é obtida por projeção Ray Casting desde um modelo geométrico 3D separado do modelo de segmentação semântica 3D;
    o fornecimento do frame semanticamente segmentado atual e histórico na nova estimativa de pose; e a atualização do modelo de
    Petição 870180161488, de 11/12/2018, pág. 141/234
    4/8 segmentação semântica 3D compreendendo o registro de etiquetas semânticas do frame semanticamente segmentado atual e histórico na nova estimativa de pose e no modelo de segmentação semântica 3D.
  13. 13. Sistema implementado por computador de segmentação semântica para processamento de imagens caracterizado pelo fato de que compreende:
    pelo menos um display;
    pelo menos uma memória;
    pelo menos um processador comunicativamente acoplado no display e na memória; e uma unidade de segmentação semântica operada pelo, pelo menos um, processador e para operar:
    obtendo uma sequência de vídeo de frames de dados de imagem e compreendendo um frame atual;
    gerando recorrentemente um mapa de segmentação semântica em uma vista de uma pose atual do frame atual e compreendendo a obtenção de dados para formar o mapa de segmentação semântica de um modelo de segmentação semântica 3D, em que mapas de segmentação semântica individuais são, cada um deles, associados a um frame atual diferente da sequência de vídeo;
    extraindo particularidades semânticas historicamente influenciadas do mapa de segmentação semântica;
    extraindo particularidades semânticas atuais do frame atual;
    gerando um frame semanticamente segmentado atual e histórico compreendendo o uso tanto das particularidades semânticas atuais como das particularidades semânticas historicamente influenciadas como entrada em uma rede neural que indique etiquetas semânticas para áreas do frame semanticamente segmentado atual e histórico; e
    Petição 870180161488, de 11/12/2018, pág. 142/234
    5/8 atualizando semanticamente o modelo de segmentação semântica 3D compreendendo o uso do frame semanticamente segmentado atual e histórico.
  14. 14. Sistema, de acordo com a reivindicação 13, caracterizado pelo fato de que a unidade de segmentação semântica se destina a operar atualizando geometricamente o modelo de segmentação semântica 3D com dados de frames atuais individuais à medida que a sequência de vídeo está sendo analisada.
  15. 15. Sistema, de acordo com a reivindicação 13, caracterizado pelo fato de que a unidade de segmentação semântica se destina a operar renderizando um mapa de segmentação semântica atualizado em uma pose atual de frames atuais individuais usados para atualizar geometricamente o modelo de segmentação 3D.
  16. 16. Sistema, de acordo com a reivindicação 13, caracterizado pelo fato de que a extração de particularidades semânticas historicamente influenciadas do mapa de segmentação semântica compreende a introdução de dados de etiqueta de segmentação semântica do mapa de segmentação semântica em uma rede neural de extração e a geração das particularidades semânticas.
  17. 17. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que a unidade de segmentação semântica se destina a operar colocando os dados de etiqueta de segmentação semântica na forma de tensores onde uma das dimensões do tensor corresponde a múltiplas etiquetas provavelmente semânticas para uma única localização de pixel.
  18. 18. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que a rede neural usa uma rede neural convolutiva (CNN) que é uma rede residual (ResNet).
  19. 19. Sistema, de acordo com a reivindicação 13, caracterizado pelo fato de que a geração do frame semanticamente
    Petição 870180161488, de 11/12/2018, pág. 143/234
    6/8 segmentado atual e histórico compreende a concatenação das particularidades semânticas atuais e das particularidades semânticas historicamente influenciadas para formar um vetor de particularidades de entrada tanto com as particularidades semânticas atuais como com as particularidades semânticas historicamente influenciadas e para ser introduzido na rede neural.
  20. 20. Meio de armazenamento que possui instruções armazenadas legíveis por computador caracterizado por acarretar que quando executadas essas instruções acarretam a execução de qualquer um dos métodos conforme definidos em qualquer uma das reivindicações de 1 a 12, que compreendem: :
    obter uma sequência de vídeo de frames de dados de imagem e compreendendo um frame atual;
    gerar recorrentemente um mapa de segmentação semântica em uma vista de uma pose atual do frame atual e compreendendo a obtenção de dados para formar o mapa de segmentação semântica de um modelo de segmentação semântica 3D, em que mapas de segmentação semântica individuais são, cada um deles, associados a um frame atual diferente da sequência de vídeo;
    extrair particularidades semânticas historicamente influenciadas do mapa de segmentação semântica;
    extrair particularidades semânticas atuais do frame atual;
    gerar um frame semanticamente segmentado atual e histórico compreendendo o uso tanto das particularidades semânticas atuais como das particularidades semânticas historicamente influenciadas como entrada em uma rede neural que indique etiquetas semânticas para áreas do frame semanticamente segmentado atual e histórico; e atualizar semanticamente o modelo de segmentação
    Petição 870180161488, de 11/12/2018, pág. 144/234
    7/8 semântica 3D compreendendo o uso do frame semanticamente segmentado atual e histórico.
  21. 21. Meio, de acordo com a reivindicação 20, caracterizado pelo fato de que a geração do frame semanticamente segmentado atual e histórico compreende a concatenação das particularidades semânticas atuais e das particularidades semânticas historicamente influenciadas para formar um vetor de particularidades de entrada tanto com as particularidades semânticas atuais como com as particularidades semânticas historicamente influenciadas e para ser introduzido na rede neural.
  22. 22. Meio, de acordo com a reivindicação 21, caracterizado pelo fato de que as instruções fazem com que o dispositivo de computação opere correspondendo a localização de imagens das particularidades semânticas atuais e das particularidades semânticas historicamente influenciadas, de modo que vetores de particularidades de entrada individuais representem uma única área da imagem.
  23. 23. Meio, de acordo com a reivindicação 22, caracterizado pelo fato de que os vetores de particularidades constituem uma parte dos tensores, e a concatenação compreende concatenação de tensores formando os vetores de particularidades de entrada; e o método compreendendo a introdução de uma matriz em um momento na rede neural e desde os tensores concatenados.
  24. 24. Meio de acordo com a reivindicação 20 caracterizado pelo fato de o modelo de segmentação semântico 3D ser geometricamente atualizado por utilizar um esquema de profundidade vermelho, verde, azul com localização simultânea e geração de imagem (RGBD-SLAM).
  25. 25. Meio de acordo com a reivindicação 24 caracterizado por operar para determinar uma nova estimativa de pose por uso de ambas a imagem atual e uma imagem renderizada a partir de pose
    Petição 870180161488, de 11/12/2018, pág. 145/234
    8/8 anterior, no qual a imagem renderizada é obtida por projeção raycast a partir de modelo geométrico 3D separado a partir de modelo de segmentação semântica 3D;
    prover o frame segmentado semanticamente atual na nova estimativa de pose; e atualizar o modelo semântico 3D que compreende registar rótulos semânticos do frame atual segmentado semanticamente na nova estimativa de pose e no modelo semântico 3D.
BR102018075714-8A 2018-01-12 2018-12-11 Método e sistema de segmentação semântica recorrente para processamento de imagens BR102018075714A2 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/870,608 US10685446B2 (en) 2018-01-12 2018-01-12 Method and system of recurrent semantic segmentation for image processing
US15/870,608 2018-01-12

Publications (1)

Publication Number Publication Date
BR102018075714A2 true BR102018075714A2 (pt) 2019-07-30

Family

ID=65230344

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102018075714-8A BR102018075714A2 (pt) 2018-01-12 2018-12-11 Método e sistema de segmentação semântica recorrente para processamento de imagens

Country Status (3)

Country Link
US (1) US10685446B2 (pt)
BR (1) BR102018075714A2 (pt)
DE (1) DE102018132245A1 (pt)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10402690B2 (en) * 2016-11-07 2019-09-03 Nec Corporation System and method for learning random-walk label propagation for weakly-supervised semantic segmentation
US11551064B2 (en) 2018-02-08 2023-01-10 Western Digital Technologies, Inc. Systolic neural network engine capable of forward propagation
US11461579B2 (en) 2018-02-08 2022-10-04 Western Digital Technologies, Inc. Configurable neural network engine for convolutional filter sizes
US10812711B2 (en) * 2018-05-18 2020-10-20 Samsung Electronics Co., Ltd. Semantic mapping for low-power augmented reality using dynamic vision sensor
US10853726B2 (en) * 2018-05-29 2020-12-01 Google Llc Neural architecture search for dense image prediction tasks
CN110555358B (zh) * 2018-06-01 2023-09-12 苹果公司 用于检测和识别ar/vr场景中的特征部的方法和设备
US10834413B2 (en) * 2018-08-24 2020-11-10 Disney Enterprises, Inc. Fast and accurate block matching for computer generated content
US10331983B1 (en) * 2018-09-11 2019-06-25 Gyrfalcon Technology Inc. Artificial intelligence inference computing device
CN110889851B (zh) * 2018-09-11 2023-08-01 苹果公司 针对深度和视差估计的语义分割的稳健用途
CN109493417B (zh) * 2018-10-31 2023-04-07 深圳大学 三维物体重建方法、装置、设备和存储介质
US11217012B2 (en) * 2018-11-16 2022-01-04 Uatc, Llc System and method for identifying travel way features for autonomous vehicle motion control
US10997473B2 (en) * 2018-11-27 2021-05-04 International Business Machines Corporation Object localization based on spatial relationships
CN111259686B (zh) * 2018-11-30 2024-04-09 华为终端有限公司 一种图像解析方法以及装置
US11532094B2 (en) * 2018-12-05 2022-12-20 Qualcomm Technologies, Inc. Systems and methods for three-dimensional pose determination
IN201911000737A (pt) * 2019-01-07 2019-09-22 Hcl Technologies Limited
JP7256368B2 (ja) * 2019-02-06 2023-04-12 ミツミ電機株式会社 測距カメラ
CN110163201B (zh) * 2019-03-01 2023-10-27 腾讯科技(深圳)有限公司 图像测试方法和装置、存储介质及电子装置
US20200302176A1 (en) * 2019-03-18 2020-09-24 Nvidia Corporation Image identification using neural networks
US11676284B2 (en) * 2019-03-22 2023-06-13 Nvidia Corporation Shape fusion for image analysis
US10929058B2 (en) 2019-03-25 2021-02-23 Western Digital Technologies, Inc. Enhanced memory device architecture for machine learning
US11783176B2 (en) 2019-03-25 2023-10-10 Western Digital Technologies, Inc. Enhanced storage device memory architecture for machine learning
CN110084274B (zh) * 2019-03-29 2022-09-06 南京邮电大学 实时图像语义分割方法及系统、可读存储介质和终端
US10810782B1 (en) 2019-04-01 2020-10-20 Snap Inc. Semantic texture mapping system
JP7138780B2 (ja) * 2019-04-02 2022-09-16 富士フイルム株式会社 画像処理装置とその作動方法および作動プログラム、運用装置とその作動方法および作動プログラム、並びに機械学習システム
US11288857B2 (en) * 2019-04-04 2022-03-29 Google Llc Neural rerendering from 3D models
US11159717B2 (en) * 2019-04-18 2021-10-26 eyecandylab Corporation Systems and methods for real time screen display coordinate and shape detection
US11281911B2 (en) * 2019-04-27 2022-03-22 Gyrfalcon Technology Inc. 2-D graphical symbols for representing semantic meaning of a video clip
US11176374B2 (en) * 2019-05-01 2021-11-16 Microsoft Technology Licensing, Llc Deriving information from images
US11070786B2 (en) 2019-05-02 2021-07-20 Disney Enterprises, Inc. Illumination-based system for distributing immersive experience content in a multi-user environment
US11244504B2 (en) * 2019-05-03 2022-02-08 Facebook Technologies, Llc Semantic fusion
CN110399840B (zh) * 2019-05-22 2024-04-02 西南科技大学 一种快速的草坪语义分割及边界检测方法
CN112013844B (zh) * 2019-05-31 2022-02-11 北京小米智能科技有限公司 建立室内环境地图的方法及装置
CN110288691B (zh) * 2019-06-06 2023-04-07 北京字节跳动网络技术有限公司 渲染图像的方法、装置、电子设备和计算机可读存储介质
KR20210000013A (ko) 2019-06-24 2021-01-04 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
CN110298320B (zh) * 2019-07-01 2021-06-22 北京百度网讯科技有限公司 一种视觉定位方法、装置及存储介质
CN110516533B (zh) * 2019-07-11 2023-06-02 同济大学 一种基于深度度量的行人再辨识方法
US20220292811A1 (en) * 2019-07-12 2022-09-15 Sony Interactive Entertainment Inc. Image processing device, image processing method, and program
US11407117B1 (en) * 2019-08-20 2022-08-09 X Development Llc Robot centered augmented reality system
US20210073429A1 (en) * 2019-09-10 2021-03-11 Apple Inc. Object Relationship Estimation From A 3D Semantic Mesh
US11321863B2 (en) * 2019-09-23 2022-05-03 Toyota Research Institute, Inc. Systems and methods for depth estimation using semantic features
CN110675488B (zh) * 2019-09-24 2023-02-28 电子科技大学 基于深度学习的创意三维体素模型的建模系统的构建方法
CN110728319B (zh) * 2019-09-30 2023-09-29 中国科学院深圳先进技术研究院 一种图像生成方法、装置以及计算机存储介质
US12072714B2 (en) * 2020-01-09 2024-08-27 Brain Corporation Systems and methods for detection of features within data collected by a plurality of robots by a centralized server
CN111551167B (zh) * 2020-02-10 2022-09-27 江苏盖亚环境科技股份有限公司 一种基于无人机拍摄和语义分割的全局导航辅助方法
CN113379748B (zh) * 2020-03-09 2024-03-01 北京京东乾石科技有限公司 一种点云全景分割方法和装置
CN113554719B (zh) * 2020-04-24 2023-05-09 武汉Tcl集团工业研究院有限公司 一种图像编码方法、解码方法、存储介质及终端设备
CN111627055B (zh) * 2020-05-07 2023-11-24 浙江大学 一种联合语义分割的场景深度补全方法
CN111625093B (zh) * 2020-05-19 2023-08-01 昆明埃舍尔科技有限公司 一种海量数字点云数据在mr眼镜中的动态调度显示方法
US11715299B1 (en) * 2020-05-29 2023-08-01 Apple Inc. Semantic labeling of negative spaces
CN112053362B (zh) * 2020-07-14 2024-02-06 北京百度网讯科技有限公司 图像分割方法、装置、电子设备及存储介质
CN112116656B (zh) * 2020-08-03 2024-05-31 歌尔股份有限公司 同步定位与地图构建slam中的增量建图方法和装置
US20220058452A1 (en) * 2020-08-24 2022-02-24 Qualcomm Incorporated Spatiotemporal recycling network
US11138410B1 (en) * 2020-08-25 2021-10-05 Covar Applied Technologies, Inc. 3-D object detection and classification from imagery
CN112037268B (zh) * 2020-09-02 2022-09-02 中国科学技术大学 一种动态场景下的基于概率传递模型的环境感知方法
US12062186B2 (en) * 2020-10-07 2024-08-13 Sri International RGBD video semantic segmentation with temporal and geometric consistency
US11145076B1 (en) * 2020-10-27 2021-10-12 R-Go Robotics Ltd Incorporation of semantic information in simultaneous localization and mapping
CN112102411B (zh) * 2020-11-02 2021-02-12 中国人民解放军国防科技大学 一种基于语义误差图像的视觉定位方法及装置
CN112308921B (zh) * 2020-11-09 2024-01-12 重庆大学 一种基于语义和几何的联合优化动态slam方法
US12003734B2 (en) * 2021-02-25 2024-06-04 Qualcomm Incorporated Machine learning based flow determination for video coding
CN113095136B (zh) * 2021-03-09 2024-07-26 山西三友和智慧信息技术股份有限公司 一种基于UVid-Net的无人机航拍视频的语义分割方法
CN113269140B (zh) * 2021-06-18 2024-05-24 北京灵汐科技有限公司 图像处理方法与装置、存储介质、电子设备
US11887248B2 (en) * 2021-06-24 2024-01-30 Toyota Research Institute, Inc. Systems and methods for reconstructing a scene in three dimensions from a two-dimensional image
CN113671522B (zh) * 2021-07-07 2023-06-27 中国人民解放军战略支援部队信息工程大学 基于语义约束的动态环境激光slam方法
US11935199B2 (en) * 2021-07-26 2024-03-19 Google Llc Augmented reality depth detection through object recognition
KR20230087750A (ko) 2021-12-10 2023-06-19 삼성전자주식회사 3차원 모델링 장치 및 방법
CN114708321B (zh) * 2022-01-12 2024-06-21 北京航空航天大学 一种基于语义的相机位姿估计方法及系统
CN114511813B (zh) * 2022-04-20 2022-06-28 天津市城市规划设计研究总院有限公司 视频语义描述方法及装置
WO2024005707A1 (en) * 2022-07-01 2024-01-04 Grabtaxi Holdings Pte. Ltd. Method, device and system for detecting dynamic occlusion
CN117021435B (zh) * 2023-05-12 2024-03-26 浙江闽立电动工具有限公司 修边机的修边控制系统及其方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8175379B2 (en) * 2008-08-22 2012-05-08 Adobe Systems Incorporated Automatic video image segmentation
US9754351B2 (en) * 2015-11-05 2017-09-05 Facebook, Inc. Systems and methods for processing content using convolutional neural networks
WO2017120271A1 (en) * 2016-01-04 2017-07-13 Meta Company Apparatuses, methods and systems for application of forces within a 3d virtual environment
US10089742B1 (en) * 2017-03-14 2018-10-02 Adobe Systems Incorporated Automatically segmenting images based on natural language phrases

Also Published As

Publication number Publication date
US10685446B2 (en) 2020-06-16
US20190043203A1 (en) 2019-02-07
DE102018132245A1 (de) 2019-07-18

Similar Documents

Publication Publication Date Title
BR102018075714A2 (pt) Método e sistema de segmentação semântica recorrente para processamento de imagens
US10360732B2 (en) Method and system of determining object positions for image processing using wireless network angle of transmission
US10867430B2 (en) Method and system of 3D reconstruction with volume-based filtering for image processing
US11687382B2 (en) Systems and methods for motion correction in synthetic images
US11423508B2 (en) Method and system of point cloud registration for image processing
US11335079B2 (en) Method and system of reflection suppression for image processing
US10715773B2 (en) Method and system of lens shading color correction using block matching
US9727775B2 (en) Method and system of curved object recognition using image matching for image processing
US10580140B2 (en) Method and system of real-time image segmentation for image processing
US11526704B2 (en) Method and system of neural network object recognition for image processing
US9727786B2 (en) Visual object tracking system with model validation and management
US9852513B2 (en) Tracking regions of interest across video frames with corresponding depth maps
US10509954B2 (en) Method and system of image segmentation refinement for image processing
US20170308734A1 (en) Eye contact correction in real time using neural network based machine learning
CN112270754B (zh) 局部网格地图构建方法及装置、可读介质和电子设备
US20130272609A1 (en) Scene segmentation using pre-capture image motion
US11871110B2 (en) Single image ultra-wide fisheye camera calibration via deep learning
US10846560B2 (en) GPU optimized and online single gaussian based skin likelihood estimation
CN118247186A (zh) 图像畸变矫正方法、电子设备、存储介质及芯片

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]