BR102019000927A2 - Projetar uma projeção de raio a partir de uma vista em perspectiva - Google Patents

Projetar uma projeção de raio a partir de uma vista em perspectiva Download PDF

Info

Publication number
BR102019000927A2
BR102019000927A2 BR102019000927-6A BR102019000927A BR102019000927A2 BR 102019000927 A2 BR102019000927 A2 BR 102019000927A2 BR 102019000927 A BR102019000927 A BR 102019000927A BR 102019000927 A2 BR102019000927 A2 BR 102019000927A2
Authority
BR
Brazil
Prior art keywords
mask
convolution
camera
branched
sets
Prior art date
Application number
BR102019000927-6A
Other languages
English (en)
Inventor
Yuanyi XUE
Joseph Inzerillo
Dirk Van Dall
Original Assignee
Bamtech, Llc
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 Bamtech, Llc filed Critical Bamtech, Llc
Publication of BR102019000927A2 publication Critical patent/BR102019000927A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/2163Partitioning the feature space
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • G06V20/42Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items of sport video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/26Techniques for post-processing, e.g. correcting the recognition result
    • G06V30/262Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
    • G06V30/274Syntactic or semantic context, e.g. balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/103Static body considered as a whole, e.g. static pedestrian or occupant recognition
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2113Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
    • 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/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • 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/30221Sports video; Sports image
    • 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/30221Sports video; Sports image
    • G06T2207/30224Ball; Puck
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2628Alteration of picture size, shape, position or orientation, e.g. zooming, rotation, rolling, perspective, translation

Landscapes

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

Abstract

um dispositivo, sistema e método projetam uma projeção de raio a partir de uma vista em perspectiva. o método inclui determinar uma primeira máscara para um primeiro objeto a partir de um primeiro quadro capturado por uma primeira câmera. o método inclui determinar uma segunda máscara para o primeiro objeto a partir de um segundo quadro capturado por uma segunda câmera. o método inclui gerar uma máscara 3d ao associar a primeira máscara e a segunda máscara. o método inclui determinar uma localização da máscara 3d. o método inclui gerar a projeção de raio da máscara 3d a partir de uma perspectiva de um segundo objeto.

Description

“PROJETAR UMA PROJEÇÃO DE RAIO A PARTIR DE UMA VISTA EM PERSPECTIVA”
Reivindicação de Prioridade/Incorporação por Referência [0001] Este pedido reivindica prioridade do Pedido Provisório U.S. 62/619.588, intitulado Projetar uma projeção de Raio a Partir de uma vista em perspectiva”, depositado em 19 de janeiro de 2018, a totalidade do qual é incorporada no presente pedido por referência.
Estado da técnica [0002] Os espectadores de alguns eventos esportivos podem desejar ver um ponto de vista de um objeto ou um participante (por exemplo, Atleta) associado ao evento esportivo. Por exemplo, no hóquei no gelo, pode ser desejável exibir as áreas em torno da boca do gol de um gol obstruído por objetos/jogadores (por exemplo, goleiro, jogadores defensivos, jogadores ofensivos, equipamentos etc.) a partir de um ponto de vista de um disco de hóquei (por exemplo, parado ou em movimento) ou de um jogador atirando o disco (por exemplo, um campo de visão a partir da perspectiva do jogador). Outros eventos esportivos também podem incluir gols para os quais as áreas obstruídas da boca do gol podem ser exibidas (por exemplo, futebol, polo aquático, etc.) Abordagens convencionais que tentam gerar uma máscara correspondente às áreas obstruídas da boca do gol podem ser imprecisas, e uma ren derização resultante baseada na máscara imprecisa pode não retratar com precisão as condições.
Breve descrição dos desenhos [0003] A Figura 1 ilustra um sistema para projetar uma projeção de raio de acordo com várias modalidades exemplares descritas no presente pedido.
[0004] A Figura 2A ilustra uma primeira visualização exemplar de uma projeção de raio a partir de uma primeira perspectiva de acordo
Petição 870190005176, de 17/01/2019, pág. 16/63
2/35 com várias modalidades exemplares descritas no presente pedido.
[0005] A Figura 2B ilustra uma segunda visualização exemplar de uma projeção de raio a partir de uma segunda perspectiva de acordo com várias modalidades exemplares descritas no presente pedido.
[0006] A Figura 3 ilustra um método exemplar para gerar uma projeção de raio a ser lançada em uma área de acordo com várias modalidades exemplares descritas no presente pedido.
[0007] A Figura 4 ilustra um método de treinamento sequencial exemplar de segmentação semântica de acordo com uma modalidade exemplar.
[0008] A Figura 5 ilustra um método de treinamento ramificado exemplar de segmentação semântica de acordo com uma modalidade exemplar.
[0009] A Figura 6 ilustra máscaras em escala de cinza exemplares derivadas a partir de um quadro de vídeo de acordo com várias modalidades exemplares descritas no presente pedido.
Descrição detalhada [0010] As modalidades exemplares podem ser melhor compreendidas com referência à seguinte descrição de modalidades exemplares e aos desenhos em anexo relativos, em que elementos semelhantes possuem os mesmos números de referência. As modalidades exemplares referem-se a projetar uma projeção de raio a partir de uma vista em perspectiva de um objeto (por exemplo, inanimado ou vivo). As modalidades exemplares são configuradas para encontrar os limites de um volume do mundo real para determinar a oclusão a partir de um ponto projetado numa área. A projeção de raio pode ser projetada na área que ilustra a oclusão a partir de objetos oclusos identificados.
[0011] As modalidades exemplares são descritas com
Petição 870190005176, de 17/01/2019, pág. 17/63
3/35 referência ao esporte de hóquei no gelo. Em particular, serão feitas referências a uma arena de hóquei, gols de hóquei, um disco de hóquei, jogadores de hóquei, tacos de hóquei, etc. No entanto, os versados na técnica entenderão que as modalidades exemplares podem se relacionar a outros eventos esportivos, que incluem gols semelhantes ao hóquei tal como, mas não limitado a futebol, hóquei em campo, lacrosse, polo aquático, etc. Além disso, as modalidades exemplares podem ser estendidas a outros esportes onde os gols são diferentes, por exemplo, no futebol americano, os pilares podem ser considerados o gol estacionário; no basquete, a tabela pode ser considerada o gol estacionário, etc. Nesses exemplos, os limites de um volume do mundo real e oclusão determinada podem ser qualquer (isquer) jogador (es) ou equipamento entre um objeto (incluindo outro jogador) e o gol. Os versados na técnica compreenderão adicionalmente que as modalidades exemplares podem ser utilizadas em eventos esportivos que não envolvam um gol ou cenários não relacionados com esporte, tais como aqueles que incluem reconhecer um objeto (s) e projetar uma projeção de raio a partir de uma vista em perspectiva desejada para uma área.
[0012] As modalidades exemplares são descritas com características particulares do hóquei no gelo e características particulares ou descritores de componentes. Por exemplo, as modalidades exemplares são descritas a partir de uma perspectiva de um disco ou uma cabeça de um jogador. No entanto, o uso do disco ou da cabeça é apenas exemplar e pode representar qualquer objeto a partir do qual uma perspectiva pode ser usada na projeção de projeção de raio. Conforme referido acima, quando as modalidades exemplares são implementadas num evento diferente (por exemplo, futebol), as modalidades exemplares podem utilizar uma perspectiva de um objeto diferente (por exemplo, bole de futebol). Em outro exemplo, as modalidades exemplares podem incluir uma pluralidade de câmaras que capturam uma boca do gol, está posicionada
Petição 870190005176, de 17/01/2019, pág. 18/63
4/35 para capturar uma passarela, etc. Contudo, os descritores da boca do gol, a passarela, etc., são apenas exemplares e usados para fins ilustrativos considerando uma implementação específica das modalidades exemplares. Portanto, qualquer referência a uma característica ou descritor particular, conforme utilizado no presente pedido, pode representar qualquer característica ou descritor que possa ser implementado pelas modalidades exemplificativas.
[0013] A Figura 1 ilustra um sistema exemplar 100 para projetar uma projeção de raio de acordo com várias modalidades exemplares descritas no presente pedido. O sistema 100 pode incluir uma arena 110, um gol 115, uma câmera de boca do gol 120, uma câmera de passarela 125, um servidor de processamento 130, uma rede 135 e um dispositivo de usuário final 140. A câmera de boca do gol 120 pode estar posicionada para estar voltada para a boca do gol, do gol 115. A Figura 2A mostra uma vista exemplificativa conforme vista pela câmera da boca do gol. A câmera de boca do gol 120 pode estar voltada para a boca do gol, do gol 115 numa posição paralela, elevada ou deslocada. A câmera de boca do gol 120 pode ser orientada para capturar uma imagem de uma área, de tal modo que dimensões selecionadas de objetos na área possam ser determinadas em relação a um ponto de referência. Consequentemente, a câmera de boca do gol 120 pode ser posicionada de qualquer maneira e pode representar qualquer componente de captura configurado para fornecer esta informação dimensional dos objetos. Conforme será descrito no presente pedido, a câmera da boca do gol 120 pode ser configurada para fornecer informações dimensionais de objetos ao longo de um eixo x e um eixo y no espaço. Contudo, esta informação dimensional e a orientação correspondente da câmera de boca do gol 120 (juntamente com a sua descrição como uma câmera voltada para uma boca do gol) é apenas para fins ilustrativos e a câmera de boca do gol 120 pode ser configurada para capturar menos ou mais dimensões. Conforme será descrito em
Petição 870190005176, de 17/01/2019, pág. 19/63
5/35 detalhe abaixo, a Figura 2A mostra uma projeção de raio resultante que é projetada na boca do gol de acordo com as modalidades exemplares a partir de uma primeira perspectiva.
[0014] A câmera de passarela 125 pode estar posicionada acima do gol 115. Alternativamente, a câmera de passarela 125 pode estar posicionada em um deslocamento a partir um centro (por exemplo, coordenada 0,0,0) do gol 115. A câmera de passarela 125 pode gerar informação dimensional que complementa a informação dimensional da câmera de boca do gol 120 para objetos na área. Por exemplo, a câmera de passarela pode ser orientada para capturar uma imagem da área em relação ao mesmo ponto de referência. É notado que as áreas capturadas pela câmera de boca do gol 120 e pela câmera de passarela 125 podem ser calibradas, de modo que pelo menos uma porção de cada uma das imagens cubra a mesma área no espaço nas respectivas dimensões. A câmera de passarela 125 também pode estar posicionada de qualquer maneira e pode representar qualquer componente de captura configurado para fornecer informação dimensional complementar dos objetos. Tal como será descrito no presente pedido, a câmera de passarela 125 pode ser configurada para fornecer informação dimensional complementar de objetos ao longo de pelo menos um eixo z no espaço (por exemplo, o eixo x e o eixo z). Contudo, esta informação dimensional e a orientação correspondente da câmera de passarela 125 (juntamente com a sua descrição como uma câmera posicionada numa passarela) é apenas para fins ilustrativos e a câmera de passarela 125 pode ser configurada para capturar as dimensões complementares de qualquer maneira. A figura 2B mostra uma vista exemplar conforme vista pela câmera de passarela. Conforme será descrito em detalhes abaixo, a Figura 2B mostra a projeção de raio resultante que é projetada na boca do gol correspondente à Figura 2A a partir de uma segunda perspectiva.
Petição 870190005176, de 17/01/2019, pág. 20/63
6/35 [0015] Deve ser entendido que a câmera de boca do gol 120 e a câmera de passarela 125 podem gravar na mesma resolução ou em resoluções diferentes. Por exemplo, a câmera de boca do gol 120 pode gravar em alta definição 4k, e a câmera de passarela 125 pode gravar em 1080p regular. Além disso, a câmera de boca do gol 120 e a câmera de passarela 125 podem ser qualquer tipo de câmera configurada para capturar imagens e fornecer dados correspondentes para processamento de acordo com as modalidades exemplares. Por exemplo, as câmeras 120, 125 podem estar estáticas ou em movimento, as câmeras podem ser instrumentadas (por exemplo, uma câmera pan-tilt-zoom (PTZ)instrumentada), etc. Embora as modalidades exemplares estejam relacionadas a duas câmeras de vídeo, os versados na técnica entenderiam que o uso de câmeras de vídeo é exemplar. Outros dispositivos de captura de dados podem ser usados em vez da, ou além da, câmera de boca do gol 120 ou da câmera de passarela 125, tal como sensores inerciais, detectores, armas de radar, sensores LIDAR, etc. Também deve ser entendido que o uso de dois dispositivos de captura de movimento é apenas exemplar, e que qualquer número de dispositivos de captura de movimento pode ser usado. Para fins ilustrativos, o sistema 100 é descrito em relação a duas câmaras separadas. Contudo, conforme será descrito mais detalhadamente abaixo, o sistema 100 também pode utilizar uma única câmera (por exemplo, quando a única câmera é uma câmera PTZ instrumentada, quando os metadados compensando uma segunda câmera estão disponíveis, quando uma calibração quadro a quadro está disponível quando a única câmera está em movimento, quando um sensor de profundidade colocalizado está disponível para fornecer informações de profundidade, etc.).
[0016] Nas modalidades exemplares, a câmera de passarela 125 e a câmera de boca do gol 120 são ortogonais entre si. O plano de câmera da câmera de passarela 125 é paralelo à superfície do gelo e o plano da
Petição 870190005176, de 17/01/2019, pág. 21/63
7/35 câmera da câmera de boca do gol 120 é paralelo ao plano da abertura de boca do gol. Desta maneira, a câmera de boca do gol 120 pode ser configurada para gerar máscaras binárias de objetos/jogadores enquanto a câmera de passarela 125 pode ser configurada para gerar uma máscara indicativa de onde objetos/jogadores estão localizados em relação um ao outro No entanto, deve ser entendido que essa orientação não é um requisito. Os métodos de calibração da câmera permitem variações dos planos da câmera com base na orientação física das câmeras que são usadas nos processos exemplares descritos no presente pedido. Os planos da câmera podem ter variações devido a, por exemplo, limitações físicas associadas a arenas particulares. Por exemplo, por causa de equipamento de iluminação ou som, a câmera de passarela 125 pode ter que ser deslocada a partir do centro do gol. Em outro exemplo, por causa da interferência do gol oposto, a câmera de boca do gol 120 pode ser colocada num nível levemente superior. No entanto, conforme descrito acima, uma vez que os parâmetros da arena são conhecidos ou podem ser medidos, por exemplo, o tamanho exato da boca do gol, a distância das câmeras até a boca do gol/gelo, etc., as câmeras ainda podem ser calibradas quando fora do eixo dos planos descritos acima. Além disso, devido à tolerância oferecida pela calibração da câmera, a variação da instalação de estádio para estádio pode ser tratada com uma quantidade mínima de intervenção humana. Conforme descrito acima, o uso de duas câmeras é apenas exemplar. Por exemplo, câmeras adicionais com perspectivas diferentes também podem ser usadas. O uso de câmeras adicionais pode fornecer informações adicionais que podem aumentar a precisão na qual projetar uma projeção de raio de acordo com as modalidades exemplares.
[0017] A câmera de boca do gol 120 e a câmera de passarela 125 podem gravar dados de um evento, tal como um jogo de hóquei, e alimentar os dados para o servidor de processamento 130. Os dados podem
Petição 870190005176, de 17/01/2019, pág. 22/63
8/35 incluir quadros gravados por cada câmera. Cada quadro pode ter marca temporal para ligar quadros capturados pela câmera de boca do gol 120 a quadros capturados pela câmera de passarela 125. Por exemplo, os dois quadros mostrados nas Figuras 2A e 2B podem ter marca temporal para indicar que ambos foram capturados em um mesmo momento no tempo. Os versados na técnica compreenderão que o sistema 100 pode utilizar qualquer mecanismo de sincronização, de modo que os quadros são alinhados (por exemplo, sincronização por meio de um relógio do sistema, sincronização de relógios individuais, determinação da semelhança, etc.).
[0018] O servidor de processamento 130 pode processar os dados para projetar a projeção de raio na boca do gol. O servidor de processamento 130 pode executar uma pluralidade de operações nos dados recebidos da câmera de boca do gol 120 e da câmera de passarela 125 para determinar uma projeção de raio em uma área a ser renderizada em um dispositivo. O servidor de processamento 130 pode incluir o hardware, software ou firmware necessário para executar a sua funcionalidade descrita no presente pedido. Por exemplo, o servidor de processamento 130 pode incluir um processador, uma disposição de memória, um receptor, etc. Tal como se tornará aparente mais abaixo, a projeção da projeção de raio de acordo com modalidades exemplares pode utilizar um conjunto de operações que melhora uma precisão de gerar a projeção de raio de um modo que melhora a eficiência com a qual o processador é usado e usando dados selecionados e conjuntos de recurso que também melhora a eficiência com que a disposição de memória é usada. Conforme usado no presente pedido, um conjunto de recurso pode representar uma saída intermediária dentro de uma rede neural. O servidor de processamento 130 pode, em seguida, transmitir os dados processados, por meio da rede 135, para o dispositivo de usuário final 140 para visualização por um visualizador.
Petição 870190005176, de 17/01/2019, pág. 23/63
9/35 [0019] A rede 135 pode ser qualquer tipo de rede com fio ou sem fio. A rede 135 pode ser configurada para conectar de forma comunicativa os vários componentes do sistema 100 para trocar dados. A rede 135 pode representar qualquer rede única ou pluralidade de redes utilizadas pelos componentes do sistema 100 para comunicação entre si. Por exemplo, a rede 135 pode estar conectada à Internet. Deve-se notar que a rede 135 e todas as redes que podem ser incluídas podem ser qualquer tipo de rede. Por exemplo, a rede de comunicações 110 pode ser uma rede de área local (LAN), uma rede de longa distância (WAN), uma LAN virtual (VLAN), uma rede WiFi, um ponto de acesso, uma rede de celular (por exemplo, 3G, 4G, Long Term Evolution (LTE), etc.), uma rede em nuvem, uma forma com fio dessas redes, uma forma sem fio dessas redes, uma forma combinada com/sem fio dessas redes, etc. A rede 135 também pode incluir qualquer número de componentes (por exemplo, servidores que incluem o servidor de processamento 130, roteadores, disposições de gerenciamento de rede, etc.).
[0020] O terminal de usuário final 140 pode ser uma televisão, um computador pessoal, um telefone celular, um tablet, um dispositivo de realidade aumentada, um dispositivo de realidade virtual, etc. O terminal de usuário final 140 pode incluir o hardware, software ou firmware necessário para gerar uma representação visual da projeção de raio sendo projetada em uma área (por exemplo, boca do gol) correspondente aos dados recebidos do servidor de processamento 130. Por exemplo, o terminal de usuário final 140 pode incluir um processador, uma disposição de memória, um transceptor, um dispositivo de exibição, etc.
[0021] A Figura 3 ilustra um método exemplar para gerar uma projeção de raio a ser lançada em uma área de acordo com várias modalidades exemplares. O método 300 ilustra um processo modo de calibração
Petição 870190005176, de 17/01/2019, pág. 24/63
10/35 exemplar e um processo modo operacional exemplar executado pelo servidor de processamento 130 para a câmera de boca do gol 120 e a câmera de passarela 125. O método 300 ilustra ainda mais os processos modo de calibração e os processos modo de funcionamento, gerando um raio de projeção e obtendo um resultado renderizado e uma saída de máscara de sombra crua. Conforme notado acima, o servidor de processamento 130 pode receber dados da câmera de boca do gol 120 e da câmera de passarela 125 (por exemplo, usando um caminho de comunicação direta de uma maneira sem fio ou com fio, conforme ilustrado na Figura 1, por meio da rede 135, etc.). Consequentemente, as operações do método 300 podem ser realizadas utilizando os componentes do servidor de processamento 130 (por exemplo, o processador, a disposição de memória, o transceptor, etc.).
[0022] No modo de calibração, o servidor de processamento 130 pode usar pontos de referência pré-definidos 302, 308 para calibrar 304, 310 a câmera de boca do gol 120 e a câmera de passarela 125, respectivamente. Em hóquei no gelo, os pontos de referência pré-definidos 302, 308 podem incluir o gol, as placas, o gelo, os anúncios, os bancos, etc. Os versados na técnica irão entender que para eventos esportivos diferentes, diferentes pontos de referência pré-definidos e cálculos podem ser determinados. O servidor de processamento 130 pode, então, gerar uma matriz de calibração de boca do gol 306 e uma matriz de calibração de passarela 312 para câmera de boca do gol 120 e a câmera de passarela 125, respectivamente. Numa modalidade exemplar, uma matriz de calibração pode ser determinada por matrizes de câmera intrínseca/extrínseca usando o método de Bouguet, uma calibração unidimensional, método baseado em algoritmo genérico, etc. Os versados na técnica compreenderão que um objetivo da calibração é conhecer a relação entre a visão da câmera (ou coordenadas) e a visão do mundo real (ou
Petição 870190005176, de 17/01/2019, pág. 25/63
11/35 coordenadas).
[0023] A matriz de calibração de boca do gol 306 e a matriz de calibração de passarela 312 podem incluir um sistema de coordenadas para fornecer medições. Numa modalidade exemplar, um sistema de coordenadas tridimensional pode ser usado. Num exemplo, uma origem de (0,0,0) pode ser definida no centro da linha do gol no gelo, que, consequentemente, seria o centro da boca do gol no nível do gelo. O eixo x do sistema de coordenadas pode prolongar-se ao longo da linha do gol. O eixo y do sistema de coordenadas pode prolongar-se ao longo da altura, a partir do gelo em direção à barra transversal do gol. O eixo z do sistema de coordenadas pode prolongar-se ao longo da profundidade, a partir da origem até a câmera de boca do gol. O eixo y e o eixo z estão rotulados na Figura 1, o eixo x sendo o terceiro eixo ortogonal que se prolonga para fora da página.
[0024] Numa modalidade exemplificativa, a matriz de calibração de boca do gol 306 e a matriz de calibração da passarela 312 podem utilizar eixos diferentes do plano de coordenadas para fazer medições. Por exemplo, a matriz de calibração de boca do gol 306 pode usar o eixo x e o eixo y, e a matriz de calibração da passarela 312 pode usar o eixo z. Em outro exemplo, a matriz de calibração de passarela 312 pode usar o eixo x e o eixo z. A matriz de calibração da passarela 312 pode usar uma ou mais dimensões dependendo se a passarela estiver posicionada perpendicularmente acima do gol 115 ou em um deslocamento. Alternativamente, a matriz de calibração de passarela 312 pode usar duas ou mais dimensões para auxiliar na associação de uma posição de um jogador visto pela câmera de boca do gol 120.
[0025] No modo operacional, o servidor de processamento 130 pode identificar objetos, tal como um jogador (es), o bastão do jogador, o árbitro, o disco, etc. Numa modalidade exemplar, o modo operacional pode usar
Petição 870190005176, de 17/01/2019, pág. 26/63
12/35 um modelo de fundo pré-determinado ou gerado 314, 324 para a câmera de boca do gol 120 e para a câmera de passarela 125, respectivamente, para identificar os objetos. Por exemplo, o servidor de processamento 130 pode identificar os objetos ao determinar quais pixels que estão em movimento ou quais pixels estão em contraste com o modelo de fundo. Conforme será descrito abaixo, ao identificar os objetos, a partir de uma perspectiva selecionada para uma área, os objetos que ocluem a área também podem ser identificados, de modo que a projeção de raios possa ser determinada.
[0026] No método 300, duas técnicas são ilustradas para identificar os objetos (por exemplo, em movimento ou estacionário). Para os dados da câmera de boca do gol 120, uma operação de segmentação semântica 318 pode ser usada para identificar os objetos e gerar contornos para os objetos identificados. Numa modalidade exemplar, a operação de segmentação semântica 318 pode contar com uma rede neural pré-treinada 316. Especificamente, a rede neural 316 pode ter acesso a um conjunto de dados que inclui dados para diferentes categorias de objetos. No exemplo do hóquei no gelo, as categorias de objetos podem incluir o disco de hóquei, os jogadores, o bastão de hóquei, etc. A rede neural pré-treinada 416 pode ser baseada em qualquer combinação de dados coletados anteriormente, dados de dados disponíveis publicamente, dados de teste, etc. Usando a combinação de dados, um modelo comum pode ser gerado para a arena (por exemplo, arena de hóquei). O modelo comum pode, então, ser ajustado para diferentes arenas para obter melhor precisão.
[0027] A operação de segmentação semântica 318 fornece uma saída de uma máscara de segmentação que tem a mesma resolução que o quadro de entrada. Por exemplo, a operação de segmentação semântica 318 fornece um conjunto de quadros de máscara do mesmo tamanho que os quadros de entrada, nos quais cada pixel indica a probabilidade de pertencer a um tipo
Petição 870190005176, de 17/01/2019, pág. 27/63
13/35 específico dos objetos pré-definidos (por exemplo, jogador, bastão, disco, árbitro, etc.). Esta máscara de segmentação é fornecida com base em um algoritmo a ser descrito abaixo com relação aos métodos de treinamento ilustrados nas Figuras 4 e 5. Conforme será descrito mais detalhadamente abaixo, as Figuras 4 e 5 mostram o aspecto de treinamento da operação de segmentação semântica 318 onde o servidor de processamento 130 é treinado utilizando o conjunto de dados. Conforme mostrado na Figura 4, a operação de treinamento de segmentação inclui um único caminho ou operação sequencial, enquanto na Figura 5, a operação de treinamento de segmentação se estende em uma operação multicaminho ou ramificada. Algumas características deste algoritmo, incluindo os parâmetros de rede descritos acima, utilizados neste exemplo incluem (1) refletir o número de tipos de objetos comumente vistos no hóquei no gelo; (2) representar a natureza da câmera de boca do gol; e (3) reduzir o número de camadas totalmente conectadas para simplificar a complexidade do modelo.
[0028] A Figura 4 ilustra um método de treinamento sequencial exemplar 400 da operação de segmentação semântica 318 de acordo com uma modalidade exemplar. O método 400 ilustra um conjunto inicial de operações da segmentação semântica 318, na qual os dados 405 da câmera de boca do gol 120 são processados a partir de uma camada de convolução para uma camada de agrupamento. O método 400 pode processar os dados 405 utilizando um ou mais conjuntos de operações de agrupamento, em que cada conjunto de operação de agrupamento gera um conjunto de recursos de agrupamento respectivo. Cada conjunto de operação de agrupamento pode incluir um ou mais conjuntos de operação de convolução e uma operação de agrupamento. Cada conjunto de operação de convolução pode incluir uma operação de convolução para gerar um conjunto de recurso de convolução que é processado com um retorno com um retificador (por exemplo, um retificador não
Petição 870190005176, de 17/01/2019, pág. 28/63
14/35 linear).
[0029] Conforme ilustrado, os dados 405 podem ser alimentados em um primeiro conjunto de operação de agrupamento 410. Uma saída do primeiro conjunto de operação de agrupamento 410 pode ser um primeiro conjunto de recurso de agrupamento 450 (por exemplo, Agrupamento1). O primeiro conjunto de recurso de agrupamento 450 pode ser usado em um segundo conjunto de operação de agrupamento 455 que produz um segundo conjunto de recurso de agrupamento 460 (por exemplo, Agrupamento2). Este processo pode continuar até que um enésimo conjunto de operação de agrupamento 465 produza um enésimo conjunto de recurso de agrupamento 470 (por exemplo, AgrupamentoN). Conforme os versados na técnica compreenderão, no processamento de imagem, cada conjunto de recurso de agrupamento pode ser um conjunto refinado de um conjunto de dados ou recursos de entrada que leva a uma maior probabilidade de identificar bordas ou limites semânticos de objetos (por exemplo, objetos com um significado semântico coerente, incluindo um humano, um disco, um bastão, etc.) que, por sua vez, são usados para gerar as máscaras correspondentes dos objetos.
[0030] Para gerar cada conjunto de recurso de agrupamento, os conjuntos de operação de agrupamento 410, 455, 465 podem ser usados para processar o conjunto de dados ou recursos de entrada. Um ou mais conjuntos de operação de convolução podem ser usados. Conforme ilustrado, os dados 405 podem ser introduzidos no primeiro conjunto de operação de agrupamento 410, nomeadamente num primeiro conjunto de operação de convolução 415. O primeiro conjunto de operação de convolução 415 pode produzir dados para um segundo conjunto de operação de convolução 435. Este processo pode continuar até que os dados sejam fornecidos para um enésimo conjunto de operação de convolução 440. O enésimo conjunto de operação de
Petição 870190005176, de 17/01/2019, pág. 29/63
15/35 convolução 440 pode gerar uma saída que é fornecida a uma operação de agrupamento 445. Note-se que a disposição do método 400 é apenas exemplificativa. As modalidades exemplificativas também podem utilizar modificações nos conjuntos de operação de agrupamento, nos conjuntos de operação de convolução, etc. em relação a quando executar o conjunto de operação, como executar o conjunto de operação, etc. Num primeiro exemplo, a operação de agrupamento pode ser usada em um número pré-determinado de camadas de convolução (por exemplo, 2). Num segundo exemplo, o método 400 descreve o uso da operação de agrupamento 445 como um Agrupamento Max, mas outros métodos de agrupamento podem ser utilizados (por exemplo, o agrupamento de média, agrupamento norma-L2, grau de agrupamento, etc). As modalidades exemplares também podem utilizar estas várias modificações ao método de 400 (por exemplo, levando ao processamento subsequente, conforme será descrito mais abaixo).
[0031] Como os versados na técnica compreenderão, cada conjunto de operação de convolução pode ser usado para executar uma operação de convolução. Conforme ilustrado, o primeiro conjunto de operação de convolução 415 pode incluir uma operação de convolução 420 para gerar um conjunto de recurso de convolução 425 (por exemplo, conv1_1, denotando um primeiro conjunto de recurso de convolução no primeiro conjunto de operação de convolução 415) que pode ser ativado ou inclinado com uma operação de retificador 430 (por exemplo, empregando unidades lineares retificadas (ReLU)). Assim, cada um dos conjuntos de operação de convolução 415, 435, 440 pode produzir um conjunto de recurso de convolução respectiva. A operação de convolução 420 pode ser realizada com base em um valor definido para um tamanho de kernel (por exemplo, A1), um stride (por exemplo, B1), e um pad (por exemplo, C1). O tamanho de kernel pode indicar um tamanho ou matriz de filtro no
Petição 870190005176, de 17/01/2019, pág. 30/63
16/35 qual a operação de convolução 420 é executada (por exemplo, um tamanho de kernel bidimensional de 3x3, embora um tamanho de kernel tridimensional também possa ser usado). Em uma implementação específica, o tamanho do kernel pode corresponder a um kernel usado para detecção de borda. O stride pode indicar uma distância a ser movida (por exemplo, distância do pixel) na imagem para uma etapa de processamento resultante da operação de convolução 420. O pad pode indicar uma distância entre as unidades do kernel que devem ser incluídas (por exemplo, um número de pixels). A operação de agrupamento 445 também pode utilizar os respectivos do tamanho de kernel (por ex., D1), o stride (por exemplo, E1) e o pad (por exemplo, F1).
[0032] Cada um dos conjuntos de operação de convolução 415, 435, 440 pode utilizar uma operação de convolução tendo valores respectivos para um tamanho de kernel, um stride e um pad. Ou seja, as operações de convolução podem ou não ter os mesmos valores definidos para esses parâmetros. Por exemplo, o segundo conjunto de operações de convolução 435 pode usar um tamanho de kernel respectivo (por exemplo, A2 (não mostrado)), um stride respectivo (por exemplo, B2 (não mostrado)) e um pad respectivo (por exemplo, C2 (não mostrado)) para gerar um conjunto de recurso de convolução (por exemplo, conv 1_2 (não mostrado) denotando um segundo conjunto de recurso de convolução no primeiro conjunto de operação de convolução 415). Conforme será descrito em uma implementação exemplar, as operações de convolução selecionadas podem usar os mesmos valores, enquanto outras operações de convolução podem usar valores diferentes.
[0033] O método 400 sendo ilustrado com pelo menos três conjuntos de operação de convolução e pelo menos três conjuntos de operação de agrupamento é apenas exemplificativo. Os versados na técnica apreciarão que pode haver qualquer número de conjuntos operação de convolução e qualquer
Petição 870190005176, de 17/01/2019, pág. 31/63
17/35 número de conjuntos de operação de agrupamento. Conforme será descrito numa implementação exemplar, os conjuntos de operação de agrupamento selecionados podem incluir menos de três conjuntos de operação de convolução, enquanto outros podem incluir três ou mais conjuntos de operação de convolução. Utilizações selecionadas do método 400 podem incluir mais conjuntos de operação de agrupamento. O número de conjuntos de operação de convolução e os conjuntos de operação de agrupamento podem basear-se em vários fatores (por exemplo, necessidades de processamento, requisitos de eficiência, etc.).
[0034] De acordo com uma implementação exemplar do método 400 (por exemplo, utilizando uma arquitetura VGG-16 para construir uma rede neural), os dados 405 da câmera de boca do gol 120 podem ser processados num conjunto de recurso de agrupamento refinado para processamento adicional (a ser descrito abaixo). A implementação exemplar pode utilizar cinco conjuntos de operação de agrupamento para, finalmente, gerar um quinto conjunto de recurso de agrupamento. Ao gerar o primeiro conjunto de recurso de agrupamento, o primeiro conjunto de operação de agrupamento pode utilizar dois conjuntos de operação de convolução e uma operação de agrupamento. Os conjuntos de operação de convolução podem ter os mesmos valores definidos para o tamanho de kernel, stride e pad (por exemplo, 3, 1, 1). A operação de agrupamento pode ter valores respectivos para o tamanho de kernel, stride e pad (por exemplo, 3, 2, 1). Utilizando o primeiro conjunto de recurso de agrupamento como entrada, ao gerar o segundo conjunto de recurso de agrupamento, o segundo conjunto de operação de agrupamento pode utilizar, novamente, dois conjuntos de operação de convolução e uma operação de agrupamento. Os conjuntos de operação de convolução e a operação de agrupamento do segundo conjunto de operação de agrupamento podem ter os mesmos valores que os conjuntos de operação de convolução e a operação de agrupamento do primeiro conjunto de operação de
Petição 870190005176, de 17/01/2019, pág. 32/63
18/35 agrupamento (por exemplo, 3, 1, 1 e 3, 2, 1, respectivamente). Utilizando o segundo conjunto de recurso de agrupamento como entrada, ao gerar o terceiro conjunto de recurso de agrupamento, o terceiro conjunto de operação de agrupamento pode utilizar três conjuntos de operação de convolução e uma operação de agrupamento. Os conjuntos de operação de convolução e a operação de agrupamento da terceira operação de agrupamento pode ter os mesmos valores que os conjuntos de operação de convolução e a operação de agrupamento da segunda operação de agrupamento (por exemplo, 3, 1, 1 e 3, 2, 1, respectivamente). Usando o terceiro conjunto de recurso de agrupamento como a entrada, para gerar o quarto conjunto de recurso de agrupamento, o quarto conjunto de operação de agrupamento pode, novamente, utilizar três conjuntos de operação de convolução e uma operação de agrupamento. Os conjuntos de operação de convolução da quarta operação de agrupamento podem ter os mesmos valores que os conjuntos de operação de convolução da terceira operação de agrupamento (por exemplo, 3, 1, 1). No entanto, a operação de agrupamento da quarta operação de agrupamento pode ser modificada (por exemplo, 3, 1, 1). Usando o quarto conjunto de recurso de agrupamento como a entrada, para gerar o quinto conjunto de recurso de agrupamento, o quinto conjunto de operação de agrupamento pode, novamente, utilizar três conjuntos de operação de convolução e uma operação de agrupamento. Os conjuntos de operação de convolução da quinta operação de agrupamento podem ser modificados, mas consistentes (por exemplo, 3, 1, 2). A operação de agrupamento da quinta operação de agrupamento pode ter os mesmos valores que a operação de agrupamento do quarto conjunto de operação de agrupamento (por exemplo, 3, 1, 1). Os versados na técnica compreenderão que a descrição acima foi apenas um exemplo de uma implementação exemplar fornecida para o contexto. Outras implementações podem usar qualquer número de conjuntos de operação de
Petição 870190005176, de 17/01/2019, pág. 33/63
19/35 agrupamento, conjuntos de operação de convolução ou valores de tamanho de kernel, stride e pad.
[0035] A Figura 5 ilustra um método de treino ramificado exemplar 500 da operação de segmentação semântica 318 de acordo com uma modalidade exemplar. O método 500 pode ilustrar uma maneira expandida ou abrangente na qual o servidor de processamento 130 realiza a operação de segmentação semântica 318 de acordo as modalidades exemplares. Por exemplo, com base numa entrada da câmera de boca do gol (indicada como dados de segmentação 502), o servidor de processamento 130 pode processar os dados para gerar dados precisos utilizados para determinar máscaras de objetos/jogadores. Conforme será indicado abaixo, o método 500 pode incorporar o método 400. Nota-se que o método 500 pode ilustrar uma fase de treinamento para desenvolver a rede neural utilizada nas modalidades exemplares. Contudo, os versados na técnica compreenderão que o método 500 pode incluir modificações selecionadas para também ilustrar uma fase de operação normal para utilizar a rede neural de acordo com as modalidades exemplares, selecionar as modificações que estão a ser descritas aqui.
[0036] Os dados de segmentação 502 podem ser gerados pela câmera de boca do gol 120 e fornecidos para o servidor de processamento 130. Numa modalidade exemplar, os dados de segmentação 502 podem ser inicialmente filtrados, de modo que os dados de imagem que são capturados sejam pelo menos um de estreitado, formatado, configurado, etc., para dados de segmentação 502 (por exemplo, ImageSegData) a serem utilizados para a operação de segmentação semântica 318 usando qualquer operação de processamento de dados conhecida. Os dados de segmentação 502 podem, então, ser processados de várias maneiras. Por exemplo, uma operação de rotulagem pode ser executada nos dados de segmentação 502 para gerar um
Petição 870190005176, de 17/01/2019, pág. 34/63
20/35 conjunto de dados rotulados 508. Uma operação de interpretação 510 pode ser executada no conjunto de dados rotulados 508 para gerar um conjunto de dados rotulados interpretados 512. O conjunto de dados rotulados interpretados 512 será descrito mais detalhadamente abaixo. O conjunto de dados rotulados interpretados 512 pode representar dados de ground truth aplicados a uma outra saída à medida que os dados de segmentação 502 são processados de acordo com as modalidades exemplares. Nota-se que os conjuntos de dados rotulados 508 e o conjunto de dados rotulados interpretados 512 podem ser componentes utilizados durante a fase de treinamento e podem ser omitidos da fase normal de operação.
[0037] Os dados de segmentação 502 também podem ser processados adicionalmente para a operação de segmentação semântica 318. Por exemplo, os dados de segmentação 502 podem ser configurados como dados 514 (correspondendo aos dados 405 no método 400 da Figura 4). Os dados 514 podem ser introduzidos no método de treinamento sequencial 400 (indicado como uma arquitetura de agrupamento 516, um exemplo da qual é uma arquitetura VGG16). Conforme indicado no método 500, o método de treinamento sequencial 400 pode ser utilizado até que um quinto conjunto de recurso de agrupamento 518 (por exemplo, agrupamento5) seja gerado. Por exemplo, a implementação exemplar descrita acima usando os valores indicados para o tamanho de kernel, stride e pad juntamente com o número de conjuntos de operação de convolução e conjuntos de operação de agrupamento pode ser usado para criar o quinto conjunto de recurso de agrupamento 518.
[0038] O quinto conjunto de recurso de agrupamento 518 pode ser usado para processamento adicional ao longo de uma via ramificada 520. De acordo com as modalidades exemplares, o quinto conjunto de recurso de agrupamento 518 pode ser processado na via ramificada 520 como blocos
Petição 870190005176, de 17/01/2019, pág. 35/63
21/35 totalmente conectados utilizando valores diferentes para o tamanho de kernel, stride e pad nas operações de convolução. Conforme ilustrado, a via ramificada 520 pode incluir três ramificações com um primeiro conjunto de blocos totalmente conectados, um segundo conjunto de blocos totalmente conectados e um terceiro conjunto de blocos totalmente conectados. A utilização de três ramos de blocos totalmente conectados é apenas exemplificativa, e as modalidades exemplares podem utilizar qualquer pluralidade de ramos para o processamento adicional como uma extensão do método de treinamento sequencial (por exemplo, a arquitetura de agrupamento 516). O número de ramos na via ramificada 520 pode ser baseado em várias condições. Por exemplo, uma distância entre um ponto a partir do qual uma perspectiva da projeção de raio é determinada para uma área pode definir um número de ramos a serem usados. Consequentemente, distâncias relativamente pequenas podem usar um número menor de ramos, enquanto distâncias relativamente grandes podem usar um maior número de ramos.
[0039] De acordo com uma implementação exemplificativa, quando a câmera de boca do gol 120 captura imagens em uma resolução de 4k, o valor de pad pode ser modificado adequadamente para aumentar a taxa na qual a frequência de segmentação é executada. Portanto, a via ramificada 520 pode incluir três ramos com três valores de pad diferentes. O tamanho de kernel também pode ser modificado com base no valor de pad. Conforme ilustrado, um primeiro ramo por meio de uma operação de convolução 522 pode utilizar um tamanho de kernel, stride e pad tendo valores 3, 1, 10; um segundo ramo por meio de uma operação de convolução 542 pode utilizar um tamanho de kernel, stride e pad tendo valores 3, 1, 18; e um terceiro ramo por meio de uma operação de convolução 562 pode utilizar um tamanho de kernel, stride e pad tendo valores 5, 1, 28. Nota-se que o valor de pad pode afetar a operação de convolução em relação às respectivas considerações para usar os diferentes ramos. O valor de
Petição 870190005176, de 17/01/2019, pág. 36/63
22/35 pad pode afetar o intervalo de amostragem da matriz (por exemplo, tamanho de kernel). Portanto, os intervalos entre dois elementos de kernel podem ser espaçados com base no valor de pad, resultando em uma aplicação para pixels que são espaçados pelo valor de pad. Por exemplo, um valor de pad de 18 significa que dois elementos no kernel são aplicados a dois pixels separados por 18 unidades. Conforme os versados na técnica entenderão, um valor de pad menor em conjunto com o kernel pode fornecer uma maior precisão para o processo de segmentação.
[0040] Em uma implementação particular em relação a um jogo de hóquei, as três operações ramificadas com diferentes valores de pad podem representar a natureza de um típico cenário de tiro ao gol de hóquei no gelo. Por exemplo, pode haver três camadas de profundidade em que os jogadores estão agrupados (por exemplo, uma primeira camada de uma parede de defesa que tenta interferir no tiro, uma segunda camada de jogadores mais próximos da boca do gol e uma terceira camada de um goleiro sozinho). As diferenças nas profundidades nas diferentes camadas em relação à câmera de boca do gol resultam em objetos/jogadores aparecendo menores ou maiores nas imagens devido à geometria da perspectiva. Para capturar fielmente esses três agrupamentos, três operações ramificadas com diferentes valores de pad são projetadas para incorporar essas diferenças. Nota-se que os valores de pad podem ditar como os kernels estão amostrando as imagens e, por sua vez, podem ter uma sensibilidade correta a diferentes tamanhos de jogadores/objetos em diferentes profundidades. Nota-se, também, que este projeto e configuração podem ser dinâmicos e flexíveis para acomodar diferentes configurações e implementações usando valores de pad correspondentes.
[0041] Cada ramo da via ramificada 520 pode incluir, adicionalmente, camadas totalmente conectadas. Conforme ilustrado no método
Petição 870190005176, de 17/01/2019, pág. 37/63
23/35
500, cada ramo pode ter duas camadas adicionais totalmente conectadas. Contudo, nota-se que o uso de duas camadas adicionais totalmente conectadas é apenas exemplificativo e qualquer número de camadas adicionais totalmente conectadas pode ser usado no método 500. Conforme mencionado acima, o número de camadas adicionais totalmente conectadas pode ser definido com base em vários fatores (por exemplo, limite de precisão pretendido).
[0042] No primeiro ramo, a operação de convolução 522 (por exemplo, usando tamanho de kernel, stride e pad de 3, 1, 0) pode gerar um conjunto de recurso de convolução 524 (a pluralidade de conjuntos de recurso de convolução referida na Figura 5 como F.Set). O conjunto de recurso de convolução 524 pode ser processado com uma operação de retificador 528. O método 500 também mostra que uma operação de dropout 530 pode ser usada para refinar o conjunto de recurso de convolução 524. No entanto, o uso da operação de dropout 530 é apenas exemplar e o método 500 pode omitir a operação de dropout 530 (por exemplo, usando a operação de dropout 530 somente durante uma fase de treinamento e omitindo a operação de dropout 530 durante uma fase normal de operação). O conjunto de recurso de convolução 524 pode ser introduzido para uma operação de convolução adicional 526 ao longo dos blocos totalmente conectados deste ramo. A operação de convolução 526 pode usar um tamanho de kernel, stride e pad tendo valores 1, 1, 0. A operação de convolução 526 pode gerar um conjunto de recurso de convolução 532. A operação de convolução 526 pode representar uma primeira camada adicional totalmente conectada para este primeiro ramo. O conjunto de recurso de convolução 532 pode ser processado com uma operação de retificador 536 e uma operação de dropout 538. O conjunto de recurso de convolução 532 pode, então, ser inserido numa operação de convolução adicional 534 ao longo dos blocos totalmente conectados deste ramo. A operação de convolução 534 pode
Petição 870190005176, de 17/01/2019, pág. 38/63
24/35 representar uma segunda camada adicional totalmente conectada para o primeiro ramo. A operação de convolução 534 pode produzir um conjunto de recurso de convolução de primeiro ramo 540 (a pluralidade de conjuntos de recurso de convolução de ramo referida na Figura 5 como B.F.Set), que será descrito abaixo.
[0043] No segundo ramo, a operação de convolução 542 (por exemplo, usando tamanho de kernel, stride e pad de 3, 1, 18) pode gerar um conjunto de recurso de convolução 544. O conjunto de recurso de convolução 544 pode ser processado com uma operação de retificador 548 e uma operação de dropout 550. O conjunto de recurso de convolução 544 pode ser introduzido para uma operação de convolução adicional 546 ao longo dos blocos totalmente conectados deste ramo. A operação de convolução 546 pode usar um tamanho de kernel, stride e pad tendo valores 1, 1, 0. A operação de convolução 546 pode gerar um conjunto de recurso de convolução 552. A operação de convolução 546 pode representar uma primeira camada adicional totalmente conectada para este segundo ramo. O conjunto de recurso de convolução 552 pode ser processado com uma operação de retificador 556 e uma operação de dropout 558. O conjunto de recurso de convolução 552 pode, então, ser inserido numa operação de convolução adicional 554 ao longo dos blocos totalmente conectados deste ramo. A operação de convolução 554 pode representar uma segunda camada adicional totalmente conectada para o segundo ramo. A operação de convolução 554 pode produzir um segundo conjunto de recurso de convolução de ramo 560, que será descrito abaixo.
[0044] No terceiro ramo, a operação de convolução 562 (por exemplo, usando tamanho de kernel, stride e pad de 5, 1, 28) pode gerar um conjunto de recurso de convolução 564. O conjunto de recurso de convolução 564 pode ser processado com uma operação de retificador 568 e uma operação de
Petição 870190005176, de 17/01/2019, pág. 39/63
25/35 dropout 570. O conjunto de recurso de convolução 564 pode ser introduzido para uma operação de convolução adicional 566 ao longo dos blocos totalmente conectados deste ramo. A operação de convolução 566 pode usar um tamanho de kernel, stride e pad tendo valores 1, 1, 0. A operação de convolução 566 pode gerar um conjunto de recurso de convolução 572. A operação de convolução 566 pode representar uma primeira camada adicional totalmente conectada para este terceiro ramo. O conjunto de recurso de convolução 572 pode ser processado com uma operação de retificador 576 e uma operação de dropout 578. O conjunto de recurso de convolução 572 pode, então, ser inserido numa operação de convolução adicional 574 ao longo dos blocos totalmente conectados deste ramo. A operação de convolução 574 pode representar uma segunda camada adicional totalmente conectada para o terceiro ramo. A operação de convolução 574 pode produzir um terceiro conjunto de recurso de convolução de ramo 580, que será descrito abaixo.
[0045] O primeiro conjunto de recurso de convolução de ramo 540, o segundo conjunto de recurso de convolução de ramo 560 e o terceiro conjunto de recurso de convolução de ramo 580 podem ser introduzidos a uma operação de combinação 582 (por exemplo, uma operação Eltwise). A operação de combinação 582 pode processar os conjuntos de recurso de convolução 540, 560, 580 individualmente e em combinação para produzir um conjunto de dados de convolução de combinação 584 (por exemplo, Conjunto de Dados Convo.). O conjunto de dados de convolução de combinação 584 com conjunto de dados rotulados interpretados 512 pode ser usado em uma operação de perda 586 (por exemplo, para omitir ou remover dados desnecessários para a operação de segmentação semântica 318, utilizando, por exemplo, um Softmax Com Operação de Perda) e uma operação de precisão 588 (por ex., para determinar uma precisão em relação a um limite de precisão para a detecção de borda de objetos
Petição 870190005176, de 17/01/2019, pág. 40/63
26/35 para a operação de segmentação semântica 318, utilizando, por exemplo, uma operação de Precisão de Segmentação). A operação de precisão 588 pode, então, produzir uma estimativa de precisão 590 para os objetos na imagem a partir da câmera de boca do gol 120. Nota-se que a operação de perda 586 e a operação de precisão 588 podem ser componentes utilizados durante a fase de treinamento e podem ser omitidas da fase de operação normal. Portanto, sem o conjunto de dados rotulados interpretados 512, a operação de perda 586 e a operação de precisão 588, o conjunto de dados de convolução de combinação 584 pode ser produzido utilizando as modalidades exemplares durante a fase de operação normal.
[0046] Voltando ao método 300, a operação de segmentação semântica 318 (por exemplo, conforme descrito acima em relação aos métodos 400, 500) pode ser usada para detecção de objetos para gerar máscaras correspondentes (por exemplo, objetos tendo uma precisão maior que o limite de precisão são identificados positivamente para uma máscara a ser gerada). Consequentemente, a operação de segmentação semântica 318 pode produzir máscaras binárias 320 de objetos. O servidor de processamento 130 pode aplicar o algoritmo de aprendizagem de operação de segmentação semântica 318 usando dados armazenados ou históricos e os dados para objetos no quadro atual para identificar cada um dos objetos no quadro. Como a operação de segmentação semântica 318 é um algoritmo de aprendizado, à medida que mais dados são coletados, o servidor de processamento 130 deve melhorar na detecção de objetos específicos e o servidor de processamento 130 deve melhorar na identificação de objetos específicos e seus contornos. Isso ocorre porque, pelo menos em parte, à medida que mais dados são coletados, os dados podem ser usados para afinar a rede neural pré-treinada 316. Em um primeiro exemplo, a saída da operação de segmentação semântica 318 pode incluir uma
Petição 870190005176, de 17/01/2019, pág. 41/63
27/35 máscara binária 320 de objetos (por exemplo, jogadores). A máscara binária 320 pode ser considerada uma simples determinação SIM ou NÃO (ou 1 ou 0) de se um objeto ocupa atualmente uma localização específica (por exemplo, pixel correspondendo a uma coordenada do mundo real). A utilização da máscara binária 320 será descrita mais detalhadamente abaixo.
[0047] Deve ser entendido que a operação de segmentação semântica 318 também pode diferenciar objetos da mesma categoria. Por exemplo, a operação de segmentação semântica 318 pode diferenciar entre um primeiro jogador e um segundo jogador, e cada jogador pode ser enviado como uma máscara binária independente.
[0048] Num segundo exemplo, a saída da operação de segmentação semântica 318 pode incluir uma máscara em escala de cinza. A máscara em escala de cinza pode indicar a probabilidade ou a confiança de um pixel ser um objeto (por exemplo, jogador). Deve-se notar que, enquanto as restantes modalidades exemplares serão descritas em relação à máscara binária 320, a máscara em escala de cinza pode ser usada de forma intercambiável com a máscara binária 320. A Figura 6 mostra algumas máscaras em escala de cinza 600 exemplares derivadas de um quadro de vídeo.
[0049] Em uma segunda modalidade exemplar, uma operação de filtragem morfológica 326 pode ser usada para filtrar objetos capturados pela câmera de passarela 125. A operação de filtragem morfológica 326 (por exemplo, OpenCV) é uma operação de filtragem, em que as máscaras são determinadas e adequadamente filtradas. O filtro pode ser baseado em qualquer característica como tamanho, forma, etc. Numa modalidade exemplar, a operação de filtragem morfológica 326 pode filtrar pequenas máscaras semelhantes a ruído e suavizar ou combinar máscaras próximas para obter uma melhor consistência em relação a vários objetos (por exemplo, objetos comumente
Petição 870190005176, de 17/01/2019, pág. 42/63
28/35 vistos em uma aplicação típica). A operação de filtragem morfológica 326 pode ser utilizada para a câmera de passarela 125 para reduzir as máscaras de ruído que são produzidas pelas operações anteriores. Novamente, como a filtragem é realizada ao longo do tempo, as características de filtragem podem ser ajustadas para identificar com precisão diferentes objetos. Semelhante à operação de segmentação semântica 318, a saída da operação de filtragem morfológica 326 também pode ser um conjunto de máscaras binárias 328 (ou máscaras em escala de cinza) associadas a cada objeto identificado. Contudo, ao contrário das máscaras binárias 320 geradas pela operação de segmentação semântica 318, as máscaras binárias 328 (ou máscaras em escala de cinza) geradas pela operação de filtragem morfológica 326 podem ser filtradas adicionalmente utilizando uma operação de filtragem de máscara 330 para refinar adicionalmente as máscaras binárias 328. Por exemplo, a operação de filtragem de máscara 330 pode determinar um centro de massa para cada máscara binária 328. Para determinar o centro de massa, o processo de filtragem 330 pode utilizar os dados da matriz de calibração passarela 312. Um dos objetivos da operação de filtragem de máscara 330 é igualar o número de máscaras obtidas para o quadro de câmera de passarela 125 com o número de máscaras obtidas para o quadro de câmera de boca do gol 120.
[0050] Deve ser entendido que, embora o acima descreva duas maneiras exemplares de identificação de objetos ou objetos de interesse em quadros correspondentes capturados pelas duas câmaras 120 e 125, também podem ser utilizados outros métodos ou algoritmos de identificação. Isto é, conforme pode ser visto nos exemplos acima, o objetivo das operações de identificação é identificar os mesmos objetos nos quadros diferentes e qualquer maneira de realizar a identificação pode ser usada.
[0051] Em 332, o servidor de processamento 130 pode
Petição 870190005176, de 17/01/2019, pág. 43/63
29/35 associar o primeiro conjunto de máscaras binárias com o segundo conjunto de máscaras binárias para criar uma máscara 3D. Numa primeira modalidade exemplar, a mascará binária da câmera de boca do gol 120 pode ser combinada com a máscara binária da câmera de passarela 125 pela aparência física, tal como camisa de um jogador, o número de um jogador, a cor de um jogador, etc. Numa segunda modalidade exemplar, a máscara binária da câmera de boca do gol 120 pode ser combinada com a máscara binária da câmera de passarela 125 por consistência geométrica. A consistência geométrica pode incluir uma combinação de distância, uma combinação de centro de massa, etc. O primeiro conjunto de máscaras binárias e o segundo conjunto de máscaras binárias podem fornecer as coordenadas das suas respectivas máscaras binárias, as quais serão utilizadas para gerar uma localização de máscara 3D em 334. Por exemplo, a máscara binária da câmera de boca do gol 120 pode fornecer a coordenada do eixo x e a coordenada do eixo y e a máscara binária da câmera de passarela 125 pode fornecer a coordenada do eixo z.
[0052] Em 334, o servidor de processamento 130 pode gerar uma localização de máscara 3D para cada máscara 3D. Numa modalidade exemplar, a localização de máscara 3D máscara pode ser gerada utilizando pelo menos uma das coordenadas do sistema de coordenadas tridimensional. Por exemplo, conforme discutido acima, a localização de máscara 3D pode ser gerada usando a coordenada do eixo x, a coordenada do eixo y e a coordenada do eixo z determinada em 332. Consequentemente, a localização de máscara 3D pode ser relativa a um sistema de coordenadas com um ponto de referência selecionado, tal como o sistema de coordenadas implementado no sistema 100 da Figura 1.
[0053] Em 338, o servidor de processamento 130 pode gerar uma projeção de raio do disco em direção à boca do gol. A projeção de raio pode ser considerada como uma câmera virtual e indicar uma área (s) da boca
Petição 870190005176, de 17/01/2019, pág. 44/63
30/35 do gol que esteja obstruída pelo jogador (es) e os bastões dos jogadores conforme percebido a partir de uma localização atual do disco, uma jogador ofensivo, etc. O servidor de processamento 130 pode utilizar a matriz de calibração de boca do gol 306, uma identificação de boca do gol 322, a localização de máscara 3D 334 e os dados de posicionamento de disco 336 para gerar a projeção de raio 338. Os dados de posicionamento de disco 336 podem ser determinados durante o modo operacional usando os métodos descritos acima ou também podem ser gerados a partir de outros métodos de rastreamento de objetos conhecidos. Em 340, os resultados podem ser renderizados para visualização pelo dispositivo de usuário final 140. Além disso, uma saída de máscara de sombra crua 342 pode ser gerada pelo servidor de processamento 130.
[0054] Deve-se entender que o uso de uma perspectiva de disco é apenas exemplar e que o raio de projeção pode ser gerado a partir do ponto de vista de qualquer jogador, qualquer objeto ou a partir de qualquer localização na arena. Por exemplo, a projeção de raio pode ser gerada a partir da perspectiva do jogador que está atirando o disco ou do jogador prestes a receber um passe. Em outro exemplo, relacionado ao esporte do futebol americano, a projeção de raio pode ser gerada a partir da perspectiva do quarterback ou do futebol americano.
[0055] Por exemplo, após 334, o servidor de processamento 130 tem os contornos do jogador e sua posição 3D em coordenadas do mundo real. Portanto, em vez de fornecer dados de disco em 336, qualquer posição do objeto interessado poderia ser fornecida (por exemplo, os olhos do jogador de hóquei, os olhos do quarterback, etc.). Então, em 338, os raios podem ser projetados a partir dessa perspectiva do objeto. Isso permite muitas possibilidades de narrativas. As modalidades exemplares permitem que este raio seja projetado a partir de diferentes perspectivas, uma vez que as
Petição 870190005176, de 17/01/2019, pág. 45/63
31/35 modalidades exemplares encontram os limites de um volume do mundo real (não apenas um centro de massa) para determinar a oclusão de um ponto projetado para uma área de gol. Portanto, as modalidades exemplares são diferentes dos sistemas de rastreio de jogador atuais, os quais só podem fornecer um ponto generalizado a partir do qual é possível projetar o raio do ponto de vista (POV) do jogador.
[0056] No exemplo atual, os contornos e a posição do disco podem ser atualizados em uma base por quadro, de modo que, para cada novo quadro, um novo contorno de jogador é obtido e raios são gerados. Contudo, em 332, ao associar máscaras, uma verificação de consistência de geometria é executada para levar em conta quadros anteriores, de modo que as máscaras dos objetos correspondentes não façam um movimento precipitado que seja improvável. Em um exemplo, uma média móvel de janela de 5 quadros com pesos de decaimento para quadros anteriores pode ser usada para executar essa verificação de geometria.
[0057] Como se vê na Figura 2A, a projeção de raio lança uma sombra 202 na boca do gol a partir da vista da câmera de boca do gol 120. A sombra pode mostrar uma área da boca do gol que está obstruída pelo goleiro ou outro jogador ou objeto. Deve-se notar que nenhuma sombra dos jogadores de número 12 e 28 são projetadas na boca do gol, porque sua posição não obstrui a trajetória do disco em relação à boca do gol. A figura 2B mostra a projeção de raio a partir da vista da câmera de passarela 125. Novamente, uma sombra 204 mostra uma área da boca do gol que está obstruída pelo goleiro. Os versados na técnica compreenderão que podem ser utilizados diferentes efeitos visuais para mostrar a projeção de raio, tal como, por exemplo, uma barra 206 na linha do gol, conforme visto na Figura 2B.
[0058] Numa modalidade exemplar, o servidor de
Petição 870190005176, de 17/01/2019, pág. 46/63
32/35 processamento 130 pode determinar pontos de acesso de uma área (s) na boca do gol em que o disco é mais provável de atravessar a linha do gol. Os pontos de acesso podem ser projetados na boca do gol. Por exemplo, referindo-se à figura 2A, o servidor de processamento 130 pode determinar que a área no lado esquerdo superior da boca do gol é a área mais provável em que o disco pode atravessar a linha do gol. Isto pode ser indicado, por exemplo, por um mapa de calor, mas os versados na técnica entenderíam que outros métodos podem ser usados para indicar o (s) ponto (s) de acesso. O ponto de acesso pode ser determinado com base em um ou mais fatores, que podem incluir, por exemplo, dados estatísticos relacionados a locais onde o disco cruzou a linha de gol, dados estatísticos relacionados ao goleiro na rede, a distância do goleiro a áreas desobstruídas na boca do gol, a proximidade do poste da baliza ou barra transversal, ângulo ou velocidade do disco, etc.
[0059] As modalidades exemplares descritas acima estão relacionadas ao uso da câmera de boca do gol 120 e da câmera de passarela 125 para fornecer dados de imagem respectivos, de modo que um processamento paralelo seja realizado até convergir na associação de máscara 332. No entanto, como notado acima, as modalidades exemplares podem ser realizadas com uma única câmera (por exemplo, a câmera de boca do gol 120). Em tal modalidade, o servidor de processamento 130 pode ser configurado para receber ou determinar informação adicional ou metadados em relação à área sendo capturada, a câmera de boca do gol 120, etc. Desta forma, as informações correspondentes à câmera de passarela 125 usada pela associação de máscara 332 pode ser determinada sem receber dados de imagem da câmera da passarela 125, mas ainda compensado para executar o restante do método 300.
[0060] As modalidades exemplares também podem ser modificadas para fornecer recursos adicionais. Num primeiro exemplo, os dados
Petição 870190005176, de 17/01/2019, pág. 47/63
33/35 de posicionamento de disco 336 são fornecidos para gerar a projeção de raio 338 no método 300. Os dados de posicionamento de disco 336 podem ser fornecidos devido a imagens sendo capturadas pela câmera de boca do gol 120 (mesmo em resolução de 4k) sendo borrada e incapaz de identificar um local do disco porque o disco está se movendo em alta velocidade. Quando o disco é selecionado para a perspectiva a partir do qual a projeção de raio é projetada, os dados de posicionamento de disco 336 podem ser recebidos para a projeção de raio adequada a ser gerada. No entanto, quando a câmera de boca do gol 120 está configurada com um mecanismo de captura de velocidade mais alta ou o servidor de processamento 130 está adequadamente configurado para processar as imagens da câmera de boca do gol 120 para eliminar a desfocagem para identificar um objeto, o servidor de processamento 130 pode gerar a projeção de raio 338 sem os dados de posicionamento de disco 336 ou quaisquer outros dados de posicionamento de objetos anteriormente desfocados. Quando a posição do disco é identificada/o servidor de processamento 130 pode ser configurado adicionalmente para identificar o disco na operação de segmentação semântica 318.
[0061] Num segundo exemplo, o servidor de processamento 130 pode ser configurado para selecionar várias perspectivas a partir das quais é feita a projeção de raio. Por exemplo, as modalidades exemplares são descritas em relação à perspectiva do disco. No entanto, uma projeção de raio também pode ser gerada com base em uma perspectiva de um jogador disparando. De acordo com uma modalidade exemplar, a operação de segmentação semântica 318 pode ser configurada para gerar uma ou mais máscaras para os vários objetos. Por exemplo, a operação de segmentação semântica 318 pode gerar uma máscara para o disco. Em outro exemplo, a operação de segmentação semântica 318 pode gerar uma pluralidade de
Petição 870190005176, de 17/01/2019, pág. 48/63
34/35 máscaras para diferentes partes do corpo de um jogador. Num outro exemplo, uma parte do corpo individual pode incluir uma pluralidade de máscaras. Desta maneira, a operação de segmentação semântica 318 pode identificar esses objetos como componentes ou como um todo para gerar máscaras correspondentes. Essa separação de máscaras para um único objeto pode permitir uma precisão maior ou uma granularidade mais fina na detecção de bordas ou limites semânticos de objetos para uma geração aprimorada da projeção de raio. A pluralidade de máscaras também pode permitir uma perspectiva melhorada de um jogador com base em um ponto de vista (por exemplo, olhos) do jogador. Quando uma máscara da cabeça do jogador é gerada, uma estimativa dos olhos em relação a um comprimento da cabeça (por exemplo, 2/3 da distância a partir de uma parte inferior da cabeça) pode ser utilizada para identificar o ponto de vista do jogador. Desta maneira, o servidor de processamento 130 pode ser configurado para determinar a projeção de raio com base na informação que é determinada a partir das imagens da câmera (s) sem o uso de dados sendo recebidos (por exemplo, dados de posicionamento de disco 336, dados de identificação de jogador, etc.).
[0062] Portanto, as modalidades exemplares descritas acima podem permitir que os telespectadores de eventos esportivos vejam um ponto de vista de um objeto associado com o evento esportivo. Deve ser entendido que as modalidades exemplares acima podem ser aplicadas durante o evento ao vivo ou durante uma repetição do evento. Por exemplo, a projeção de raio pode ser projetada na boca do gol enquanto os espectadores de um jogo de hóquei estão assistindo o jogo ao vivo, ou a projeção de raio pode ser lançada na boca do gol durante uma repetição de uma determinada sequência de eventos.
[0063] Os versados na técnica entenderão que as modalidades exemplares descritas acima podem ser implementadas em qualquer
Petição 870190005176, de 17/01/2019, pág. 49/63
35/35 número de questões, incluindo como um módulo de software, tal como uma combinação de hardware e software, etc. Por exemplo, as funções do servidor de processamento 1130 podem ser incorporadas num programa armazenado num meio de armazenamento não transitório e contendo linhas de código que, quando compiladas, podem ser executadas por um processador.
[0064] Será evidente para os versados na técnica que várias modificações podem ser feitas às modalidades exemplares, sem sair do espírito ou do escopo da invenção. Portanto, pretende-se que a presente invenção abranja modificações e variação desta invenção desde que estejam dentro do âmbito das reivindicações anexas e seus equivalentes.

Claims (20)

  1. REIVINDICAÇÕES
    1. Método, caracterizado pelo fato que compreende: identificar um primeiro objeto, num primeiro quadro capturado por uma primeira câmera usando uma operação de segmentação semântica, a operação de segmentação semântica incluindo um processo de treino ramificado que convolui dados de imagem associados ao primeiro objeto no primeiro quadro ao longo de uma pluralidade de caminhos ramificados possuindo respectivos parâmetros de convolução, os dados de imagem convoluida de cada um dos caminhos ramificados sendo combinados num conjunto de dados de convolução de combinação;
    determinar uma primeira máscara para o primeiro objeto com base no primeiro quadro capturado pela primeira câmera e pelo conjunto de dados de convolução de combinação;
    determinar uma segunda máscara para o primeiro objeto com base num segundo quadro capturado por uma segunda câmera;
    gerar uma máscara 3D ao associar a primeira máscara e a segunda máscara;
    determinar um local da máscara 3D; e gerar uma projeção de raio da máscara 3D a partir de uma perspectiva de um segundo objeto.
  2. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente:
    determinar uma primeira matriz de calibração para a primeira câmera, em que a projeção é gerada com base pelo menos em parte na primeira matriz de calibração.
  3. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente:
    Petição 870190005176, de 17/01/2019, pág. 51/63
    2/6 determinar uma segunda matriz de calibração para a segunda câmera, em que a localização da máscara 3D é determinada com base pelo menos em parte na segunda matriz de calibração.
  4. 4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que que o primeiro objeto é um de um jogador de hóquei, um taco de hóquei ou um árbitro de hóquei e o segundo objeto é um disco de hóquei.
  5. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a operação de segmentação semântica utiliza uma rede neural pré-formada que identifica categorias de objetos.
  6. 6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o processo de treino ramificado inclui uma pluralidade de conjuntos de operação de agrupamento ramificado configurados em paralelo para gerar respectivos conjuntos de recurso de agrupamento ramificado, cada um dos conjuntos de operação de agrupamento ramificado incluindo uma pluralidade de conjuntos de operação de convolução que gera respectivos conjunto de recurso de convolução e uma operação de agrupamento ramificado que gera os respectivos conjuntos de recurso de agrupamento ramificado, o processo de treino ramificado incluindo adicionalmente uma operação de combinação para combinar os conjunto de recurso de agrupamento ramificado no conjunto de dados de convolução de combinação.
  7. 7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que cada um dos conjuntos de operação de agrupamento ramificado inclui pelo menos um bloco totalmente conectado, cada bloco totalmente conectado incluindo um respectivo conjunto de operação de convolução.
  8. 8. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que cada um dos conjuntos de operação de convolução inclui uma respectiva operação de convolução definida com respectivos de um valor de
    Petição 870190005176, de 17/01/2019, pág. 52/63
    3/6 tamanho de kernel, um valor de stride e uma valor de pad.
  9. 9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente:
    identificar primeiro objeto a partir do primeiro quadro usando uma operação de filtragem morfológica.
  10. 10. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que cada uma da primeira máscara e da segunda máscara é uma máscara binária, uma máscara em escala de cinza ou uma combinação das mesmas.
  11. 11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente:
    identificar o primeiro objeto em pelo menos um do primeiro quadro ou do segundo quadro com base em um modelo de fundo.
  12. 12. Servidor de processamento, caracterizado pelo fato de que compreende:
    um transceptor configurado para receber um primeiro quadro capturado por uma primeira câmera e um segundo quadro capturado por uma segunda câmera; e um processador configurado para identificar um primeiro objeto em um primeiro quadro capturado por uma primeira câmera usando uma operação de segmentação semântica, a operação de segmentação semântica incluindo um processo de treino ramificado que convolui os dados de imagem associados ao primeiro objeto no primeiro quadro ao longo de uma pluralidade de caminhos ramificados tendo respectivos parâmetros de convolução, os dados de imagem convoluida de cada um dos caminhos ramificados sendo combinados em um conjunto de dados de convolução de combinação, o processador configurado para determinar uma primeira máscara para o primeiro objeto com base no
    Petição 870190005176, de 17/01/2019, pág. 53/63
    4/6 primeiro quadro e o conjunto de dados de convolução de combinação e determinar uma segunda máscara para o primeiro objeto com base no segundo quadro, o processador configurado para gerar uma máscara 3D ao associar a primeira máscara e a segunda máscara, o processador configurado para determinar um local da máscara 3D, o processador configurado para gerar um projeção de raio da máscara 3D a partir de uma perspectiva de um segundo objeto.
  13. 13. Servidor de processamento, de acordo com a reivindicação 12, caracterizado pelo fato de que o processador é configurado adicionalmente para determinar uma primeira matriz de calibração para a primeira câmera, em que a projeção de raio é gerada com base pelo menos em parte na primeira matriz de calibração, uma segunda matriz de calibração para a segunda câmera, em que a localização da máscara 3D é determinada com base pelo menos em parte na segunda matriz de calibração, ou uma combinação dos mesmos.
  14. 14. Servidor de processamento, de acordo com a reivindicação 12, caracterizado pelo fato de que o primeiro objeto é um de um jogador de hóquei, um taco de hóquei ou um árbitro de hóquei e o segundo objeto é um disco de hóquei.
  15. 15. Servidor de processamento, de acordo com a reivindicação 12, caracterizado pelo fato de que a operação de segmentação semântica utiliza uma rede neural pré-formada que identifica categorias de objetos.
  16. 16. Servidor de processamento, de acordo com a reivindicação 12, caracterizado pelo fato de que o processo de treino ramificado inclui uma pluralidade de conjuntos de operação de agrupamento, cada conjunto de operação de agrupamento incluindo uma pluralidade de conjuntos de operação de convolução e uma operação de agrupamento, cada conjuntos de operação de
    Petição 870190005176, de 17/01/2019, pág. 54/63
    5/6 convolução incluindo uma pluralidade de operações de convolução.
  17. 17. Servidor de processamento, de acordo com a reivindicação 16, caracterizado pelo fato de que cada um dos conjuntos de operação de convolução inclui uma respectiva operação de convolução definida com respectivos de um valor de tamanho de kernel, um valor de stride e um valor de pad.
  18. 18. Servidor de processamento, de acordo com a reivindicação 12, caracterizado pelo fato de que o processador é configurado adicionalmente para identificar o primeiro objeto do primeiro quadro usando uma operação de filtragem morfológica.
  19. 19. Servidor de processamento, de acordo com a reivindicação 12, caracterizado pelo fato de que cada uma da primeira máscara e da segunda máscara é uma máscara binária, uma máscara em escala de cinza ou uma combinação das mesmas.
  20. 20. Método, caracterizado pelo fato que compreende: receber um primeiro quadro capturado por uma primeira câmera;
    executar um processo de treino sequencial no primeiro quadro para identificar um primeiro objeto no primeiro quadro com base no primeiro quadro, o processo de treino sequencial incluindo uma pluralidade de conjuntos de operação de agrupamento sequencial configurados sequencialmente para gerar respectivos conjuntos de recurso de agrupamento sequencial, cada um dos conjuntos de operação de agrupamento sequencial incluindo uma pluralidade de conjuntos operação de convolução que geram os respectivos conjuntos de recurso de convolução e uma operação de agrupamento sequencial que gera os respectivos conjuntos de recurso de agrupamento sequencial;
    realizar um processo de treino ramificado no primeiro quadro
    Petição 870190005176, de 17/01/2019, pág. 55/63
    6/6 para identificar o primeiro objeto no primeiro quadro com base em uma saída do processo de treino sequencial, o processo de treino ramificado incluindo uma pluralidade de conjuntos de operação de agrupamento ramificado configurados em paralelo para gerar respectivos conjuntos de recurso de agrupamento ramificado, cada um dos conjuntos de operação de agrupamento ramificado incluindo uma pluralidade de conjuntos de operação de convolução que geram respectivos conjuntos de recurso de convolução e uma operação de agrupamento ramificado que gera os respectivos conjuntos de recurso de agrupamento ramificado, o processo de treino ramificado incluindo adicionalmente uma operação de combinação para combinar os conjuntos de recurso de agrupamento ramificado em um conjunto de dados de combinação;
    determinar uma estimativa de precisão de um limite semântico do primeiro objeto; e gerar uma primeira máscara para o primeiro objeto no primeiro quadro com base na estimativa de precisão.
BR102019000927-6A 2018-01-19 2019-01-17 Projetar uma projeção de raio a partir de uma vista em perspectiva BR102019000927A2 (pt)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862619588P 2018-01-19 2018-01-19
US62/619.588 2018-01-19
US16/215,110 US10922871B2 (en) 2018-01-19 2018-12-10 Casting a ray projection from a perspective view
US16/215.110 2018-12-10

Publications (1)

Publication Number Publication Date
BR102019000927A2 true BR102019000927A2 (pt) 2019-08-06

Family

ID=64959153

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102019000927-6A BR102019000927A2 (pt) 2018-01-19 2019-01-17 Projetar uma projeção de raio a partir de uma vista em perspectiva

Country Status (5)

Country Link
US (1) US10922871B2 (pt)
EP (1) EP3514761A1 (pt)
BR (1) BR102019000927A2 (pt)
CA (1) CA3030488A1 (pt)
MX (1) MX2019000801A (pt)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200242771A1 (en) * 2019-01-25 2020-07-30 Nvidia Corporation Semantic image synthesis for generating substantially photorealistic images using neural networks
US10977524B2 (en) * 2019-04-11 2021-04-13 Open Text Sa Ulc Classification with segmentation neural network for image-based content capture
US20210170229A1 (en) * 2019-12-06 2021-06-10 Acronis International Gmbh Systems and methods for providing strategic game recommendations in a sports contest using artificial intelligence
CN111080720B (zh) * 2019-12-26 2023-07-04 重庆盟讯电子科技有限公司 一种模组校正方法
CN112329860B (zh) * 2020-11-05 2024-02-27 深圳市微埃智能科技有限公司 混合型深度学习视觉检测方法、装置、设备及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL108957A (en) 1994-03-14 1998-09-24 Scidel Technologies Ltd Video sequence imaging system
US5627915A (en) 1995-01-31 1997-05-06 Princeton Video Image, Inc. Pattern recognition system employing unlike templates to detect objects having distinctive features in a video field
US6741725B2 (en) 1999-05-26 2004-05-25 Princeton Video Image, Inc. Motion tracking using image-texture templates
GB2452508A (en) 2007-09-05 2009-03-11 Sony Corp Generating a three-dimensional representation of a sports game
US8451265B2 (en) 2007-11-16 2013-05-28 Sportvision, Inc. Virtual viewpoint animation
US9031279B2 (en) 2008-07-09 2015-05-12 Disney Enterprises, Inc. Multiple-object tracking and team identification for game strategy analysis
US8786596B2 (en) 2008-07-23 2014-07-22 Disney Enterprises, Inc. View point representation for 3-D scenes
GB2467932A (en) * 2009-02-19 2010-08-25 Sony Corp Image processing device and method
US8731239B2 (en) 2009-12-09 2014-05-20 Disney Enterprises, Inc. Systems and methods for tracking objects under occlusion
WO2011121117A1 (en) * 2010-04-02 2011-10-06 Imec Virtual camera system
US9600933B2 (en) * 2011-07-01 2017-03-21 Intel Corporation Mobile augmented reality system
US20140313293A1 (en) * 2013-04-23 2014-10-23 Speech Innovation Consulting Group Co., Ltd. Depth measuring schemes
US9530240B2 (en) 2013-09-10 2016-12-27 Disney Enterprises, Inc. Method and system for rendering virtual views
US10726560B2 (en) * 2014-10-31 2020-07-28 Fyusion, Inc. Real-time mobile device capture and generation of art-styled AR/VR content
US9524450B2 (en) 2015-03-04 2016-12-20 Accenture Global Services Limited Digital image processing using convolutional neural networks
CN106295678B (zh) * 2016-07-27 2020-03-06 北京旷视科技有限公司 神经网络训练与构建方法和装置以及目标检测方法和装置
GB2560948B (en) * 2017-03-29 2020-12-30 Imagination Tech Ltd Camera Calibration

Also Published As

Publication number Publication date
US10922871B2 (en) 2021-02-16
US20190228559A1 (en) 2019-07-25
MX2019000801A (es) 2019-09-04
EP3514761A1 (en) 2019-07-24
CA3030488A1 (en) 2019-07-19

Similar Documents

Publication Publication Date Title
BR102019000927A2 (pt) Projetar uma projeção de raio a partir de uma vista em perspectiva
US20200167936A1 (en) True space tracking of axisymmetric object flight using diameter measurement
US20220314092A1 (en) Virtual environment construction apparatus, video presentation apparatus, model learning apparatus, optimal depth decision apparatus, methods for the same, and program
US9605960B2 (en) System and method for photographing moving subject by means of camera, and acquiring actual movement trajectory of subject based on photographed image
US8189857B2 (en) Methods and processes for detecting a mark on a playing surface and for tracking an object
Theobalt et al. Pitching a baseball: tracking high-speed motion with multi-exposure images
US11551428B2 (en) Methods and apparatus to generate photo-realistic three-dimensional models of a photographed environment
JP7051315B2 (ja) ボールの回転を測定するための方法、システム、及び非一時的なコンピュータ読み取り可能な記録媒体
GB2575843A (en) Method and system for generating an image
BRPI1001472A2 (pt) dispositivo, sistema e método de processamento de imagem, e software de computador
BRPI0902350A2 (pt) método, aparelho e interface gráfica de usuário para gerar um registro de evento dos eventos do jogo associados com um elemento presente em um evento esportivo, e, programa de computador
JP7076955B2 (ja) ボールの画像の明るさを補正するための方法、システム、及び非一時的なコンピュータ読み取り可能な記録媒体
US20240082683A1 (en) Kinematic analysis of user form
CN112330710A (zh) 运动目标的识别追踪方法、装置、服务器及可读存储介质
JP7198661B2 (ja) オブジェクト追跡装置及びそのプログラム
EP2668771A1 (en) Motion vector based comparison of moving objects
KR101703316B1 (ko) 영상을 기반으로 속도를 측정하는 방법 및 장치
US10776929B2 (en) Method, system and non-transitory computer-readable recording medium for determining region of interest for photographing ball images
Kim et al. Smart vision system for soccer training
US12002214B1 (en) System and method for object processing with multiple camera video data using epipolar-lines
KR101971060B1 (ko) 모듈형 고속 촬영 장치, 고속 영상 기반의 공 운동 인식 장치 및 방법
TWI822380B (zh) 球體追蹤系統及方法
WO2023106201A1 (ja) プレイ分析装置、プレイ分析方法、及びコンピュータ読み取り可能な記録媒体
WO2022261848A1 (en) Method and system of automatically estimating a ball carrier in team sports
Oldham Table tennis event detection and classification

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]