BR112014027853B1 - MARKERLESS SYSTEM AND METHOD FOR REAL-TIME MIXING OR COMPOSITION OF COMPUTER-GENERATED 3D OBJECTS AND A VIDEO SIGNAL FROM A VIDEO CAMERA - Google Patents

MARKERLESS SYSTEM AND METHOD FOR REAL-TIME MIXING OR COMPOSITION OF COMPUTER-GENERATED 3D OBJECTS AND A VIDEO SIGNAL FROM A VIDEO CAMERA Download PDF

Info

Publication number
BR112014027853B1
BR112014027853B1 BR112014027853-9A BR112014027853A BR112014027853B1 BR 112014027853 B1 BR112014027853 B1 BR 112014027853B1 BR 112014027853 A BR112014027853 A BR 112014027853A BR 112014027853 B1 BR112014027853 B1 BR 112014027853B1
Authority
BR
Brazil
Prior art keywords
camera
real
time
video
tracking
Prior art date
Application number
BR112014027853-9A
Other languages
Portuguese (pt)
Other versions
BR112014027853A2 (en
Inventor
Samuel Boivin
Brice Michoud
Original Assignee
Ncam Technologies Limited
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
Priority claimed from GBGB1208088.3A external-priority patent/GB201208088D0/en
Application filed by Ncam Technologies Limited filed Critical Ncam Technologies Limited
Publication of BR112014027853A2 publication Critical patent/BR112014027853A2/en
Publication of BR112014027853B1 publication Critical patent/BR112014027853B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/156Mixing image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals

Abstract

SISTEMA E MÉTODO DE MIXAGEM OU COMPOSIÇÃO EM TEMPO REAL, DE OBJETOS 3D GERADOS EM COMPUTADOR E UM SINAL DE VÍDEO DE UMA CÂMERA DE FILMAGEM, por tratar a invenção de um método de mixagem ou composição em tempo real, de objetos 3D gerados em computador e um sinal de vídeo de uma câmera de filmagem, sendo que o corpo da câmera de filmagem pode ser movimentado em 3D e sensores na ou acoplados à câmera de filmagem fornecem dados de posicionamento em tempo real definindo a posição 3D e a orientação 3D da câmera de filmagem, ou possibilitando que a posição 3D da câmera de filmagem possa ser calculada.SYSTEM AND METHOD FOR REAL-TIME MIXING OR COMPOSITION OF COMPUTER-GENERATED 3D OBJECTS AND A VIDEO SIGNAL FROM A FILMING CAMERA, for treating the invention of a method of real-time mixing or compositing of computer-generated 3D objects and a video signal from a film camera, where the body of the film camera can be moved in 3D and sensors on or attached to the film camera provide real-time positioning data defining the 3D position and 3D orientation of the film camera. filming, or enabling the 3D position of the filming camera to be calculated.

Description

Campo TécnicoTechnical Field

[001] A presente invenção se refere a um sistema de mixagem ou composição em tempo real, de objetos 3D gerados em computador e um sinal de vídeo de uma câmera de filmagem, tal como uma câmera de vídeo, para a geração de um vídeo em tempo real com realidade aumentada para transmissão de TV, cinema ou jogos de vídeo.[001] The present invention relates to a real-time mixing or compositing system of computer-generated 3D objects and a video signal from a film camera, such as a video camera, for generating a video in real-time with augmented reality for broadcast TV, cinema or video games.

Descrição da Arte AnteriorDescription of Prior Art

[002] Ao longo dos últimos 20 anos, houve considerável pesquisa e atividade comercial neste campo; referência pode ser feita à inserção de vídeo ou a sistemas de realidade aumentada de empresas tais como a Sportvision, Inc., que desenvolveu melhorias de visualização de televisão para eventos esportivos, como o futebol Americano, acrescentando uma primeira linha virtual de baixo que os telespectadores podem observar sobreposta ao campo. Outras empresas que desenvolveram sistemas nesta área incluem a PVI, Inc. Uma característica comum dos sistemas conhecidos reside no fato dos mesmos dependerem principalmente da análise das características do sinal de vídeo da câmera para determinar para qual parte da cena do mundo real a câmera está apontando; o sistema necessita criar antecipadamente um mapa 3D da cena, de tal maneira que uma vez sabendo para onde está apontando na cena, seja capaz de adicionar ou compor objetos gerados em computador (primeira linha virtual de baixo) no sinal de vídeo, de tal maneira que a posição do objeto e sua orientação pareçam fazer parte natural da cena. Desta maneira, uma desvantagem de depender exclusivamente do fluxo óptico reside no fato de que sistemas deste tipo podem ser pouco confiáveis[002] Over the past 20 years, there has been considerable research and commercial activity in this field; Reference may be made to video insertion or augmented reality systems from companies such as Sportvision, Inc., which has developed television viewing enhancements for sporting events such as American football, adding a virtual first line of bass that viewers can be observed superimposed on the field. Other companies that have developed systems in this area include PVI, Inc. A common feature of the known systems is that they rely primarily on analyzing the characteristics of the camera's video signal to determine which part of the real-world scene the camera is pointing at. ; the system needs to create in advance a 3D map of the scene, in such a way that once it knows where it is pointing in the scene, it is able to add or compose computer generated objects (first virtual line from the bottom) in the video signal, in such a way that the position of the object and its orientation appear to be a natural part of the scene. Therefore, a disadvantage of relying exclusively on optical flow lies in the fact that systems of this type can be unreliable.

[003] Outros sistemas contam com abordagens puramente baseadas em marcadores (Lightcraft Technologies, por exemplo). Estes requerem que um operador coloque marcadores físicos reais (com dimensões de 1 m x 1 m) no cenário, a serem detectados pelo sistema. Os mesmos são altamente ineficientes, uma vez que requerem horas ou dias de trabalho para a configuração de um cenário, o que é muito improvável de ser realizado em produção de filmes. Os mesmos também apresentam muitas limitações físicas, pois os marcadores necessitam sempre permanecer no campo de visão de seu sistema. Referências científicas também podem ser feitas aos documentos citados no Anexo 1.[003] Other systems rely on purely marker-based approaches (Lightcraft Technologies, for example). These require an operator to place real physical markers (with dimensions of 1 m x 1 m) on the scene, to be detected by the system. They are highly inefficient, as they require hours or days of work to set up a scenario, which is very unlikely to be done in film production. They also have many physical limitations, as the markers always need to remain in the system's field of vision. Scientific references can also be made to the documents cited in Annex 1.

Breve Descrição da InvençãoBrief Description of the Invention

[004] A presente invenção consiste, em um aspecto, de um sistema de mixagem ou composição de objetos 3D gerados em computador em tempo real e um sinal de vídeo de uma câmera de filmagem, tal como uma câmera de vídeo, para a geração de um vídeo em tempo real com realidade aumentada para transmissão de TV, cinema ou jogos de vídeo, no qual: (a) o corpo da câmera de filmagem pode ser movimentado em 3D e sensores na ou conectados direta ou indiretamente na câmera de filmagem fornecem dados de posicionamento em tempo real que definem a posição 3D e a orientação 3D da câmera de filmagem, ou que permitem que a posição 3D e a orientação 3D da câmera de filmagem possam ser calculadas, e (b) que os dados de posicionamento em tempo real são então utilizados automaticamente pelo sistema para criar, chamar, renderizar ou modificar objetos 3D gerados em computador e (c) os objetos 3D resultantes gerados em computador são então mixados ou compostos com o vídeo da câmera de filmagem para o fornecimento de um vídeo de realidade aumentada para transmissão de TV, cinema ou jogos de vídeo.[004] The present invention consists, in one aspect, of a system for mixing or compositing computer-generated 3D objects in real time and a video signal from a film camera, such as a video camera, for generating a real-time augmented reality video for broadcast TV, cinema or video games, in which: (a) the film camera body can be moved in 3D and sensors on or connected directly or indirectly to the film camera provide data real-time positioning data that define the 3D position and 3D orientation of the filming camera, or that allow the 3D position and 3D orientation of the filming camera to be calculated, and (b) real-time positioning data are then automatically used by the system to create, recall, render or modify computer-generated 3D objects and (c) the resulting computer-generated 3D objects are then mixed or composited with the video from the filming camera to provide a reality video enhanced for broadcast TV, cinema or video games.

[005] Características opcionais - das quais algumas ou todas podem ser combinadas umas com as outras, incluem as seguintes: • os objetos 3D gerados em computador são mixados ou compostos em tempo real com o vídeo em tempo real da câmera de filmagem. • As configurações em tempo real de zoom, foco e íris da câmera de filmagem são medidas e utilizadas, juntamente com os dados de posicionamento em tempo real, de tal maneira que os objetos 3D sejam corretamente renderizados em um local desejado e orientação em uma cena 3D. • Os sensores incluem um acelerômetro e um giroscópio (sensor 6DOF). • Os sensores incluem um acelerômetro de 3 eixos medindo a aceleração translacional em 3D, um giroscópio de 3 eixos medindo a velocidade angular em 3D, e um magnetômetro medindo a altura absoluta em 3D e, consequentemente, constituindo um sensor 9DOF. • Os sensores incluem um sensor de faixa 3D, tal como uma luz estruturada ou câmera de tempo de voo. • O sensor de faixa 3D captura a profundidade de cada pixel em uma saída de vídeo da câmera. • A profundidade das bordas é refinada através da retroprojeção das profundidades do sensor de faixa 3D sobre o vídeo de alta resolução da câmera de filmagem. • Os sensores são formados em uma unidade que pode ser firmemente fixada à câmera de filmagem. o A unidade inclui uma ou duas câmeras de prova. o A unidade inclui um sensor de faixa 3D que capta a profundidade de cada pixel em uma saída de vídeo. o A unidade inclui um sensor 6DOF ou 9DOF. o A unidade utiliza suportes comutáveis para permitir que a mesma seja fixada em diferentes tamanhos e modelos de câmeras de filmagem e hastes. o A unidade é extensível para incluir outros tipos de sensores. o A unidade pode formar um dispositivo de inspeção que pode ser utilizado para inspecionar uma cena complexa e transmitir os dados que definem a cena 3D sendo inspecionada, sem fio a um computador que então rastreia ou recupera o rastreamento da cena. o A câmera de filmagem inclui codificadores convencionais para ler o zoom, o foco e a íris da câmera. • O sistema inclui uma única câmera de prova (no caso monoscópico) ou duas câmeras de prova (no caso estereoscópico), equipadas com lentes que podem consistir de lentes olho de peixe de 180 graus. • A(s) câmera(s) de prova encontra-se deslocada da câmera de filmagem e este deslocamento é obtido com a utilização de um cartão de calibragem incluindo um primeiro e um segundo grupo de círculos, cada círculo encontrando-se em uma localização conhecida em relação a um ou mais dos outros círculos, e cada círculo sendo reconhecido com a utilização de um algoritmo de imagem blob. • A lente da câmera de filmagem é calibrada para distorção óptica com a utilização de um cartão de calibração incluindo diversos círculos, cada círculo encontrando-se em uma localização conhecida em relação a um ou mais dos outros círculos, e cada círculo sendo reconhecido com a utilização de um algoritmo de imagem blob. • A Câmera de Filmagem consiste de uma das seguintes: câmera de grua; câmera Steadicam; câmera de mão; câmera montada em carrinho, câmera montada em tripé, telefone inteligente, óculos de realidade aumentada. • A posição 3D e a orientação da câmera de filmagem são determinadas com referência a um mapa 3D do mundo real gerado, em parte com a utilização dos dados de posicionamento 3D em tempo real dos sensores, e também de um fluxo óptico no qual a(s) câmera(s) de prova inspeciona uma cena e um software em execução em um processador detecta marcadores naturais na cena ("pontos característicos") que não foram manualmente ou artificialmente adicionados a esta cena. • O sistema utiliza uma ou duas câmeras de prova de alta velocidade (com pelo menos 100 fps) para permitir que o sistema seja totalmente inicializado sem uma etapa separada apenas de inspeção da cena a ser rastreada (denominada de "inspeção instantânea"), mas ao invés disso, a inspeção é realizada continuamente à medida que câmera está sendo utilizada para a captura de vídeo. • O sistema estereoscópico permite que o software processe as imagens e, mesmo que o sistema de câmera não seja movimentado como um todo, que possa ser utilizado para a geração de uma nuvem instantânea de pontos 3D (por exemplo, associando um grande número de pontos da cena à sua posição em um espaço 3D utilizando o conhecimento sobre a separação entre as duas câmeras e a geometria epipolar). • A profundidade de cada pixel da nuvem de pontos 3D é obtida com a utilização de fragmentos de texturas 2D correspondentes obtidos de cada câmera estereoscópica de prova e um algoritmo epipolar de busca de linha. • O sistema executa um algoritmo de fusão que combina os dados de fluxo óptico do sistema de câmeras de prova com os dados de posicionamento em tempo real dos sensores de hardware. • O algoritmo de fusão baseia-se em uma técnica de predição/correção de Filtro Kalman Estendido para integrar as saídas de, e para recalibrar todos os sensores, que podem incluir um acelerômetro, um giroscópio, um magnetômetro, um sensor de faixa 3D, para determinar a posição e a orientação da câmera. • O algoritmo de fusão EKF utiliza dados de nível de confiança, associados com a saída de cada sensor, para determinar a maneira de mesclar os dados de cada sensor. • Os quadros-chave gerados pelo sistema de câmera de prova fazem parte do processo de rastreamento visual, e consistem de imagens em tempo real computadas com 4 diferentes níveis de resolução do sinal de vídeo da câmera de prova. • O sistema compreende (a) um computador de geração de conteúdo que fornece animações 3D de figuras virtuais, objetos e locais gerados em computador, e (b) um computador de renderização (que pode ser ou não ser separado do computador de geração de conteúdo), no qual os dados de posicionamento em tempo real que definem a posição de 3D da câmera de filmagem são utilizados por qualquer um ou ambos o computador de geração de conteúdo e o computador de renderização para fazer com que objetos 3D sejam gerados em computador em tempo real e possam ser inseridos e mixados em tempo real com o sinal de vídeo da câmera de filmagem para formar uma parte natural da cena mostrada neste sinal de vídeo. • Os objetos 3D gerados em computador consistem de animações que podem se mover em qualquer lugar dentro da cena e podem alterar sua forma e aparência de uma maneira determinada pelo computador de geração de conteúdo. • Os objetos 3D gerados em computador consistem de figuras animadas de pessoas ou criaturas que se movem (por exemplo, correm, dançam, caminham, lutam, voam, saltam,...) de maneira realística quando mixados na cena. • Os dados de posicionamento ou de rastreamento da câmera também são disponibilizados para uso em pós-produção para facilitar a CGI da pós-produção. • O sensor de faixa 3D é utilizado para aumentar a precisão da medição de profundidade associada a um ponto 3D reconstruído, ou para rejeitar este ponto 3D reconstruído. • O sensor de faixa 3D é utilizado para o chaveamento de profundidade em tempo real para permitir a oclusão dinâmica e suprimir a eventual utilização de um palco verde. • O sistema utiliza um pequeno objeto de registro de câmera, tal como um cartão de tamanho conhecido e coberto com um padrão conhecido, colocado na cena de tal maneira que um canto do padrão detectado seja tratado como a origem da nuvem de pontos 3D (e, portanto, do mundo). • O objeto de registro de câmera compreende, pelo menos, duas esferas de tamanho conhecido arranjadas em uma vertical verdadeira e reconhecidas com a utilização de um algoritmo de reconhecimento de imagem blob. • O sistema compreende um magnetômetro para indicar o Norte magnético, um acelerômetro para indicar a direção da gravidade (e com isso fornecer a vertical verdadeira), um giroscópio para indicar se o sistema está inclinado para cima/para baixo, ou se foi movimentado panoramicamente para a esquerda ou para a direita, ou se foi rotacionado em torno do eixo óptico, e um acelerômetro de 3 eixos para permitir a translação em 3D a partir de uma posição inicial a ser deduzida. • O software tenta gerar uma nuvem de pontos uniformemente distribuídos no mapa 3D para reduzir significativamente as perdas de rastreamento e para aumentar a precisão do rastreamento (uma paralaxe maior é gerada, e com isto a posição estimada da câmera é mais precisa). • O sistema de rastreamento da câmera pode ser conectado sem fio ao sistema da câmera e pode, portanto, ser rapidamente movimentado em torno do conjunto ao gerar a nuvem de pontos 3D - sem a necessidade trilhos de cabos sobre o conjunto, ao contrário dos sistemas de câmeras de prova anteriores. • O sistema de rastreamento da câmera combina inspeções em tempo real de uma cena 3D (no caso monoscópico) ou inspeções instantâneas (no caso estereoscópico) com o rastreamento da câmera de filmagem à medida que o diretor/operador de câmera rastreia, produz movimentos panorâmicos e inclina o sistema de rastreamento de câmera acoplado à câmera de filmagem. • O sistema automatiza totalmente todos os aspectos de rastreamento da câmera de filmagem, incluindo rotação, translação, foco, íris, distância focal; e automatiza o dimensionamento, posicionamento e orientação do conteúdo 3D gerado por computador a ser mixado com o vídeo. • O sistema permite inspeções contínuas de uma cena em tempo real, para gerar uma nuvem de pontos mais completa definindo a cena. • O sistema acopla descritores invariáveis de rotação, por exemplo, utilizando ORB, a pontos característicos detectados na cena para facilitar a recuperação do rastreamento. • O sistema utiliza um modelo de velocidade constante, associado com as informações fornecidas pelos sensores, para prever a próxima posição da câmera de filmagem utilizando a posição corretamente computada ou confirmada anteriormente. O mesmo utiliza esta previsão para reprojetar a nuvem de pontos 3D no quadro atual, para possibilitar que um algoritmo de coincidência de pontos coincida os pontos identificados no sinal de vídeo em tempo real do sistema de câmeras de prova e os pontos projetados na nova nuvem, de pontos 3D. • O sistema utiliza um esquema de minimização Levenberg-Marquardt de rastreamento de câmera para minimizar o erro entre os pontos identificados na transmissão de vídeo em tempo real do sistema de câmeras de prova e os pontos projetados na nova nuvem, de pontos 3D. • O usuário pode utilizar a nuvem de pontos 3D gerada pelo sistema de rastreamento de câmeras para definir máscaras 3D, tais como máscaras 3D de Coincidência de Lixo. • Os objetos 3D compreendem objetos estáticos, animações dinâmicas, mundos virtuais, pessoas virtuais, edifícios virtuais, cenários virtuais, conjuntos de filmagem virtuais, e todos os dados de um banco de dados de animação. • A câmera de filmagem e a câmera de prova são calibradas para um atraso na aquisição de quadros com a utilização de uma fonte de luz modulada, tal como com a comparação de curvas de intensidade de luz associadas a um LED intermitente. Outros Conceitos - cada um dos mesmos pode ser combinado com qualquer uma das características descritas acima, ou com qualquer outro conceito definido abaixo.[005] Optional features - some or all of which may be combined with each other, include the following: • computer-generated 3D objects are mixed or composited in real time with the real-time video from the filming camera. • The filming camera's real-time zoom, focus and iris settings are measured and used, along with real-time positioning data, such that 3D objects are correctly rendered in a desired location and orientation in a scene 3D. • Sensors include an accelerometer and a gyroscope (6DOF sensor). • The sensors include a 3-axis accelerometer measuring translational acceleration in 3D, a 3-axis gyroscope measuring angular velocity in 3D, and a magnetometer measuring absolute height in 3D and, consequently, constituting a 9DOF sensor. • Sensors include a 3D range sensor, such as a structured light or time-of-flight camera. • 3D range sensor captures the depth of each pixel in a camera's video output. • Edge depth is refined by back-projecting depths from the 3D range sensor onto the high-resolution video from the movie camera. • The sensors are formed into a unit that can be firmly attached to the film camera. o The unit includes one or two proof cameras. o The unit includes a 3D range sensor that captures the depth of each pixel in a video output. o The unit includes a 6DOF or 9DOF sensor. o The unit uses switchable brackets to allow it to be attached to different sizes and models of film cameras and booms. o The unit is extendable to include other types of sensors. o The unit can form an inspection device that can be used to inspect a complex scene and transmit data defining the 3D scene being inspected wirelessly to a computer that then tracks or recovers tracking of the scene. o The movie camera includes conventional encoders to read the camera's zoom, focus, and iris. • The system includes a single proof camera (in the monoscopic case) or two proof cameras (in the stereoscopic case), equipped with lenses that may consist of 180-degree fisheye lenses. • The test camera(s) is displaced from the filming camera and this displacement is obtained using a calibration card including a first and second group of circles, each circle being in a location known relative to one or more of the other circles, and each circle being recognized using a blob image algorithm. • The film camera lens is calibrated for optical distortion using a calibration card including a number of circles, each circle being in a known location relative to one or more of the other circles, and each circle being recognized with the use of a blob image algorithm. • The Filming Camera consists of one of the following: crane camera; Steadicam camera; handheld camera; cart mounted camera, tripod mounted camera, smart phone, augmented reality glasses. • The 3D position and orientation of the filming camera is determined with reference to a 3D map of the real world generated, in part using real-time 3D positioning data from sensors, and also from an optical flow in which the( The proof camera(s) inspects a scene and software running on a processor detects natural markers in the scene ("feature points") that have not been manually or artificially added to this scene. • The system uses one or two high-speed test cameras (at least 100 fps) to allow the system to be fully initialized without a separate step of just inspecting the scene to be tracked (called "instant inspection"), but instead, the inspection is performed continuously as the camera is being used to capture video. • The stereoscopic system allows the software to process the images and, even if the camera system is not moved as a whole, it can be used to generate an instantaneous 3D point cloud (for example, associating a large number of points from the scene to its position in 3D space using knowledge about the separation between the two cameras and epipolar geometry). • The depth of each pixel of the 3D point cloud is obtained using corresponding 2D texture fragments obtained from each test stereo camera and an epipolar line search algorithm. • The system runs a fusion algorithm that combines optical flow data from the probe camera system with real-time positioning data from hardware sensors. • The fusion algorithm relies on an Extended Kalman Filter prediction/correction technique to integrate the outputs of, and to recalibrate, all sensors, which may include an accelerometer, a gyroscope, a magnetometer, a 3D range sensor, to determine the position and orientation of the camera. • The EKF fusion algorithm uses confidence level data, associated with the output of each sensor, to determine how to merge data from each sensor. • The keyframes generated by the proof camera system are part of the visual tracking process, and consist of real-time images computed at 4 different resolution levels from the proof camera video signal. • The system comprises (a) a content generation computer that provides 3D animations of computer-generated virtual figures, objects and locations, and (b) a rendering computer (which may or may not be separate from the content generation computer ), in which the real-time positioning data that defines the 3D position of the filming camera is used by either or both the content-generating computer and the rendering computer to cause 3D objects to be computer-generated in real time and can be input and mixed in real time with the video signal from the film camera to form a natural part of the scene shown in that video signal. • Computer-generated 3D objects consist of animations that can move anywhere within the scene and can change their shape and appearance in a manner determined by the content-generating computer. • Computer generated 3D objects consist of animated figures of people or creatures that move (e.g. run, dance, walk, fight, fly, jump,...) realistically when mixed into the scene. • Camera positioning or tracking data is also made available for use in post-production to facilitate post-production CGI. • The 3D range sensor is used to increase the accuracy of the depth measurement associated with a reconstructed 3D point, or to reject this reconstructed 3D point. • The 3D range sensor is used for real-time depth keying to enable dynamic occlusion and suppress the potential use of a green stage. • The system uses a small camera recording object, such as a card of known size and covered with a known pattern, placed in the scene in such a way that a corner of the detected pattern is treated as the origin of the 3D point cloud (and , therefore, of the world). • The camera registration object comprises at least two spheres of known size arranged in a true vertical and recognized using a blob image recognition algorithm. • The system comprises a magnetometer to indicate magnetic North, an accelerometer to indicate the direction of gravity (and thus provide the true vertical), a gyroscope to indicate whether the system is tilted up/down, or whether it has been panned left or right, or whether it has been rotated around the optical axis, and a 3-axis accelerometer to allow 3D translation from an initial position to be deduced. • The software tries to generate a cloud of points evenly distributed on the 3D map to significantly reduce tracking losses and to increase tracking accuracy (a greater parallax is generated, and thus the estimated camera position is more accurate). • The camera tracking system can be connected wirelessly to the camera system and can therefore be quickly moved around the array when generating the 3D point cloud - without the need for cable tracks over the array, unlike systems from previous test cameras. • The camera tracking system combines real-time inspections of a 3D scene (in the monoscopic case) or instant inspections (in the stereoscopic case) with tracking of the filming camera as the director/camera operator tracks, produces panning movements and tilts the camera tracking system attached to the film camera. • The system fully automates all aspects of film camera tracking, including rotation, translation, focus, iris, focal length; and automates the sizing, positioning and orientation of computer-generated 3D content to be mixed with the video. • The system allows continuous inspections of a scene in real time, to generate a more complete point cloud defining the scene. • The system couples rotation invariant descriptors, for example, using ORB, to characteristic points detected in the scene to facilitate tracking recovery. • The system uses a constant velocity model, associated with the information provided by the sensors, to predict the next position of the filming camera using the correctly computed or previously confirmed position. It uses this prediction to reproject the 3D point cloud into the current frame, to enable a point matching algorithm to match the points identified in the real-time video signal from the test camera system and the points projected in the new cloud, of 3D points. • The system uses a camera tracking Levenberg-Marquardt minimization scheme to minimize the error between the points identified in the real-time video feed from the test camera system and the points projected in the new 3D point cloud. • The user can use the 3D point cloud generated by the camera tracking system to define 3D masks, such as Garbage Match 3D masks. • 3D objects comprise static objects, dynamic animations, virtual worlds, virtual people, virtual buildings, virtual sets, virtual sets, and all data from an animation database. • The film camera and test camera are calibrated for frame acquisition delay using a modulated light source, such as comparing light intensity curves associated with a flashing LED. Other Concepts - each of them can be combined with any of the characteristics described above, or with any other concept defined below.

[006] Um método de mixagem ou composição de objetos 3D gerados em computador em tempo real e um sinal de vídeo de uma câmera de filmagem, no qual o corpo da câmera de filmagem pode ser movimentado em 3D e sensores na ou conectados na câmera fornecem dados de posicionamento em tempo real que definem a posição 3D e a orientação 3D da câmera, ou que permitem que a posição 3D possa ser calculada.[006] A method of mixing or compositing real-time computer-generated 3D objects and a video signal from a film camera, in which the body of the film camera can be moved in 3D and sensors on or connected to the camera provide real-time positioning data that defines the 3D position and 3D orientation of the camera, or that allows the 3D position to be calculated.

[007] Um método de mixagem ou composição em tempo real, de objetos 3D gerados em computador e um sinal de vídeo de uma câmera de filmagem, tal como uma câmera de vídeo, para gerar vídeo de realidade aumentada para transmissão de TV, cinema ou jogos de vídeo, no qual: (a) o corpo da câmera de filmagem pode ser movimentado em 3D e sensores na ou conectados direta ou indiretamente na câmera de filmagem fornecem dados de posicionamento em tempo real que definem a posição 3D e a orientação 3D da câmera de filmagem, ou que permitem que a posição 3D e a orientação 3D da câmera de filmagem possam ser calculadas, e (b) que os dados de posicionamento em tempo real são então utilizados automaticamente pelo sistema para criar, chamar, renderizar ou modificar objetos 3D gerados em computador e (c) os objetos 3D resultantes gerados em computador são então mixados ou compostos com o vídeo da câmera de filmagem para o fornecimento de um vídeo de realidade aumentada para transmissão de TV, cinema ou jogos de vídeo.[007] A method of mixing or compositing in real time, computer-generated 3D objects and a video signal from a film camera, such as a video camera, to generate augmented reality video for broadcast TV, cinema or video games, in which: (a) the film camera body can be moved in 3D and sensors on or connected directly or indirectly to the film camera provide real-time positioning data that defines the 3D position and 3D orientation of the filming camera, or that allow the 3D position and 3D orientation of the filming camera to be calculated, and (b) that real-time positioning data is then automatically used by the system to create, recall, render or modify objects computer generated 3D and (c) the resulting computer generated 3D objects are then mixed or composited with video from the film camera to provide an augmented reality video for broadcast TV, cinema or video games.

[008] Métodos ou sistemas como os acima definidos e utilizados para possibilitar que um diretor (ou um diretor de fotografia) possa enquadrar em uma câmera a pré-produção de materiais 3D gerados em computador, tipicamente materiais de pré-visualização ou efeitos visuais em tempo real sobre a placa de filmagem da ação ao vivo ou imagens de vídeo gravadas pela câmera, possibilitando que o diretor explore possíveis ângulos e movimentos da câmera em tempo real, com os materiais 3D gerados pelo computador sendo automaticamente mixados ao vídeo observado pelo diretor.[008] Methods or systems such as those defined above and used to enable a director (or a director of photography) to frame on a camera the pre-production of computer-generated 3D materials, typically pre-visualization materials or visual effects in real-time footage over the live action footage or video footage recorded by the camera, enabling the director to explore possible camera angles and movements in real time, with the computer-generated 3D materials being automatically mixed into the video observed by the director.

[009] Métodos ou sistemas como os acima definidos, nos quais os dados de posicionamento em tempo real são gravados e carimbados com códigos de tempo para o fornecimento de dados de coincidência de movimentos para processos de pós-produção.[009] Methods or systems such as those defined above, in which real-time positioning data is recorded and stamped with time codes to provide motion coincidence data for post-production processes.

[010] Métodos ou sistemas como os acima definidos, utilizados para possibilitar que objetos virtuais ou imagens sejam inseridos em um fluxo de transmissão de vídeo.[010] Methods or systems such as those defined above, used to enable virtual objects or images to be inserted into a video transmission stream.

[011] Métodos ou sistemas como os acima definidos, utilizados para possibilitar uma ou mais das seguintes ações: • Rastreamento em tempo real de câmeras de estúdio • Rastreamento em tempo real de uma Steadicam • Rastreamento em tempo real de câmeras montadas em gruas • Rastreamento em tempo real de câmeras montadas em carrinhos • Rastreamento em tempo real de uma Steadicam • Rastreamento em tempo real de Transmissão Externa (OB) • Utilização de dados em tempo real (por exemplo, dados de rastreamento) para pós-produção em 2D • Utilização de dados em tempo real (por exemplo, dados de rastreamento) para pós-conversão em conteúdo estereoscópico em 3D • Utilização de dados em tempo real (por exemplo, dados de rastreamento) para conteúdo nativo estereoscópico em 3D • Inserção de gráficos 3D • Inserção de gráficos 3D para colocação em estúdio ou no local • Inserção de gráficos 3D para OB • Inserção de gráficos 3D em outras imagens patrocinadas • Inserção de gráficos 3D específica aos locais dos usuários • Inserção de gráficos 3D específica a usuários • Inserção de gráficos 3D específica a horários • Inserção de gráficos 3D para o preenchimento de cenas de multidões verdes • Inserção de gráficos 3D para a substituição de telas auxílio ao ensino, • Inserção em museus de gráficos e centros de 3D com conteúdo educativo de interpretação em locais culturais, históricos e naturais - Medição do tamanho absoluto ou relativo de objetos em uma cena.[011] Methods or systems as defined above, used to enable one or more of the following actions: • Real-time tracking of studio cameras • Real-time tracking of a Steadicam • Real-time tracking of crane-mounted cameras • Tracking real-time from cart-mounted cameras • Real-time tracking from a Steadicam • Real-time tracking from Offsite Broadcast (OB) • Using real-time data (e.g. tracking data) for 2D post-production • Usage of real-time data (e.g., tracking data) for post-conversion to stereoscopic 3D content • Using real-time data (e.g., tracking data) for native stereoscopic 3D content • Inserting 3D graphics • Insertion of 3D graphics for studio or on-site placement • 3D graphics insertion for OB • 3D graphics insertion into other sponsored images • 3D graphics insertion specific to user locations • User specific 3D graphics insertion • Specific 3D graphics insertion at times • Insertion of 3D graphics to fill in green crowd scenes • Insertion of 3D graphics to replace teaching aid screens, • Insertion of graphics in museums and 3D centers with educational interpretation content in cultural, historical and natural - Measurement of the absolute or relative size of objects in a scene.

[012] Métodos ou sistemas como os acima definidos, nos quais a câmera de filmagem consiste de uma das seguintes: - Todas as câmeras com uma cinta de segurança padronizada - Câmeras requerendo conexão tática de fibra óptica - Câmeras requerendo conexão de RF/sem fio[012] Methods or systems as defined above, in which the filming camera consists of one of the following: - All cameras with a standardized safety strap - Cameras requiring tactical fiber optic connection - Cameras requiring RF/wireless connection

[013] Métodos ou sistemas como os acima definidos, implementados em um dos seguintes mercados: - Filme/TV (não ao vivo) - Comercial (não ao vivo) - Comerciais ao vivo - Transmissão (não esportes) - Transmissão (OB) - Esportes baseados em estúdios - Esportes baseados em OB - Colocação de produto de TV ao vivo - Uso de internet (não ao vivo) - Internet ao vivo - Internet ao vivo com base no território - Colocação de produto de internet ao vivo - Conteúdo de museus/patrimônios - Comerciais sobre museus/patrimônios - Arquitetura - Jogos[013] Methods or systems as defined above, implemented in one of the following markets: - Film/TV (non-live) - Commercial (non-live) - Live commercials - Broadcast (non-sports) - Broadcast (OB) - Studio-Based Sports - OB-Based Sports - Live TV Product Placement - Internet Use (Non-Live) - Live Internet - Territory-Based Live Internet - Live Internet Product Placement - Museum Content /heritages - Commercials about museums/heritages - Architecture - Games

[014] Métodos ou sistemas como os acima definidos, utilizados para permitir que imagens de realidade aumentada sejam exibidas por qualquer dispositivo de visualização, incluindo um telefone inteligente, óculos de realidade aumentada, a aparência das imagens de realidade aumentada sendo alterada automaticamente na dependência dos dados de posicionamento em tempo real.[014] Methods or systems as defined above, used to allow augmented reality images to be displayed by any viewing device, including a smart phone, augmented reality glasses, the appearance of the augmented reality images being automatically changed depending on the real-time positioning data.

[015] Uma película, um filme, um programa de TV ou jogo de vídeo, no qual objetos 3D gerados em computador em tempo real são mixados com um sinal de vídeo de uma câmera, sendo que o corpo da câmera pode ser movimentado em 3D e sensores na ou acoplados à câmera fornecem dados de posicionamento em tempo real que definem a posição 3D da câmera, ou que permitem que a posição 3D possa ser calculada.[015] A film, film, TV show or video game, in which real-time computer-generated 3D objects are mixed with a video signal from a camera, and the camera body can be moved in 3D and sensors on or attached to the camera provide real-time positioning data that defines the 3D position of the camera, or that allows the 3D position to be calculated.

[016] Um dispositivo de inspeção e rastreamento de cena adaptado para ser acoplado a uma câmera convencional, no qual o corpo da câmera pode ser movimentado em 3D e sensores de hardware no dispositivo de inspeção e rastreamento de cena fornecem dados de posicionamento em tempo real que definem a posição 3D da câmera, ou que permitem que a posição 3D possa ser calculada.[016] A scene inspection and tracking device adapted to be coupled to a conventional camera, in which the camera body can be moved in 3D and hardware sensors in the scene inspection and tracking device provide real-time positioning data that define the 3D position of the camera, or that allow the 3D position to be calculated.

[017] Uma câmera de mão ou portátil incluindo sensores na ou acoplados à câmera que fornecem dados de posicionamento em tempo real e que definem a posição 3D e a orientação 3D da câmera em relação a um quadro de referência, ou que permitem, totalmente ou como parte de um sistema que analisa outros dados, tais como dados de fluxos ópticos, que a posição em 3D possa ser calculada.[017] A handheld or portable camera including sensors on or attached to the camera that provide real-time positioning data and that define the 3D position and 3D orientation of the camera relative to a frame of reference, or that allow, in full or as part of a system that analyzes other data, such as optical flow data, so that 3D position can be calculated.

[018] Uma câmera de filmagem, incluindo ou conectada a um sistema de câmera de prova estereoscópica, o sistema de câmera de prova gerando imagens estereoscópicas de grande angular (por exemplo, de 180 graus), permitindo que o software processe as imagens e, sem que o sistema de câmera como um todo seja rastreado/movimentado, gere uma nuvem instantânea de pontos 3D.[018] A filming camera, including or connected to a stereoscopic proof camera system, the proof camera system generating wide-angle (e.g., 180-degree) stereoscopic images, allowing the software to process the images, and, without the camera system as a whole being tracked/moved, it generates an instantaneous 3D point cloud.

[019] Um sistema de rastreamento para ser acoplado a uma câmera de filmagem, tendo o sistema de câmera de prova gerando imagens estereoscópicas, permitindo que o software processe as imagens e, sem que o sistema de câmera como um todo seja movimentado, gere uma nuvem instantânea de pontos 3D e forneça o rastreamento em tempo real (posição, orientação, zoom, foco e íris) da câmera de filmagem.[019] A tracking system to be coupled to a film camera, with the test camera system generating stereoscopic images, allowing the software to process the images and, without the camera system as a whole being moved, generate a instant 3D point cloud and provide real-time tracking (position, orientation, zoom, focus and iris) of the filming camera.

[020] Óculos de realidade aumentada incluindo sensores nos ou acoplados aos óculos para fornecer dados de posicionamento em tempo real, que definem a posição 3D e a orientação 3D dos óculos em relação a um quadro de referência, ou que permitem, totalmente ou como parte de um sistema que analisa outros dados, tais como dados de fluxos ópticos, que a posição em 3D possa ser calculada[020] Augmented reality glasses including sensors in or attached to the glasses to provide real-time positioning data, which define the 3D position and 3D orientation of the glasses relative to a frame of reference, or which allow, in whole or as part of a system that analyzes other data, such as optical flow data, so that 3D position can be calculated

[021] O sistema presentemente implementado é denominado Ncam. As várias aplicações do Ncam incluem as seguintes: Efeitos Visuais em Filmes, TV e Comerciais[021] The system currently implemented is called Ncam. Ncam's various applications include the following: Visual Effects in Film, TV and Commercials

[022] Efeitos visuais em pré-produção e produção: o sistema NCAM pretende auxiliar a preencher a lacuna existente entre as pré- visualizações (pré-produção) e VFX (pós-produção) durante o processo de gravação (produção). O sistema NCAM oferece uma solução para aqueles que desejam enquadrar no VFX na câmera, enquanto gravam em tempo real. Utilizando conteúdo anteriormente criado, frequentemente do processo de pré- visualização, o sistema NCAM é capaz de compor estes materiais de pré- visualização, normalmente modelos 3D e animações, na placa de filmagem de ação ao vivo em tempo real.[022] Visual effects in pre-production and production: the NCAM system aims to help bridge the gap between previews (pre-production) and VFX (post-production) during the recording process (production). The NCAM system offers a solution for those who want to frame in-camera VFX while recording in real time. Using previously created content, often from the preview process, the NCAM system is able to render these preview materials, typically 3D models and animations, onto the live action footage board in real time.

[023] A utilização das pré-visualizações cuidadosamente elaboradas e aprovadas no conjunto pode economizar enormes quantidades de tempo. Os produtores de filmes podem enquadrar as pré-visualizações ou VFX, tanto gravando em telas verdes e compondo um fundo virtual, como sobrepondo uma criatura ou objeto no primeiro plano. Os produtores de filmes têm então a capacidade de retomar o controle das pré-visualizações e VFX explorando possíveis ângulos e movimentos de câmera no momento e em tempo real, sem as restrições habituais.[023] Using carefully crafted and approved previews as a whole can save enormous amounts of time. Filmmakers can frame pre-visualizations or VFX, either by shooting on green screens and composing a virtual background, or by superimposing a creature or object in the foreground. Film producers then have the ability to take back control of pre-visualizations and VFX by exploring possible camera angles and movements in the moment and in real time, without the usual restrictions.

[024] Por sua vez, os dados são gravados e carimbados com códigos de tempo, dando à câmera VFX do departamento dados de coincidência de movimentos (a pista 6 DOF), ao mesmo tempo proporcionando um editorial com um 'temp' do VFX final.[024] In turn, the data is recorded and time-stamped, giving the department's VFX camera motion coincidence data (the 6 DOF track), while also providing an editorial with a 'temp' of the final VFX .

[025] Ao capturar o 'temp' VFX na câmera e com o desenho prévio do VFX no processo, é possível eliminar uma grande quantidade de trabalho de suposição do VFX no processo de pós-produção. Nós podemos diminuir o processo de desenho do VFX, com isto evitando desperdícios. Publicidade Virtual - Transmissão Ao Vivo[025] By capturing the VFX 'temp' in camera and pre-designing the VFX in the process, it is possible to eliminate a lot of VFX guess work in the post-production process. We can reduce the VFX design process, thus avoiding waste. Virtual Advertising - Live Broadcast

[026] A tecnologia do NCAM presta-se bem à publicidade virtual em tempo real com o espaço de transmissão. A colocação digital de produtos, na qual um produto é inserido após a gravação durante a pós- produção, ao contrário de um produto físico real gravado pela câmera, está se tornando mais popular. No entanto, com a capacidade de aumentar a colocação digital de produtos ao vivo, somos capazes de abrir várias possibilidades. Os exemplos podem incluir logotipos de marcas em campos desportivos ou bebidas em lata em novelas. Este é o ambiente no qual a capacidade de renderizar imagens CG fotorrealísticas, em tempo real, com base na iluminação de ambientes de gravação, torna-se crítica.[026] NCAM technology lends itself well to real-time virtual advertising with broadcast space. Digital product placement, in which a product is inserted after recording during post-production, as opposed to an actual physical product recorded on camera, is becoming more popular. However, with the ability to increase live digital product placement, we are able to open up several possibilities. Examples might include brand logos on sports fields or canned drinks on soap operas. This is the environment in which the ability to render photorealistic CG images, in real time, based on the lighting of shooting environments, becomes critical.

Jogos HolográficosHolographic Games

[027] A combinação da tecnologia NCAM com telas holográficas e óculos (tais como o Google Glass) pode proporcionar uma experiência de jogos totalmente envolvente, mixando o mundo real com mundos virtuais e personagens. As possibilidades são praticamente ilimitadas. Museus &Patrimônios[027] The combination of NCAM technology with holographic screens and glasses (such as Google Glass) can provide a fully immersive gaming experience, mixing the real world with virtual worlds and characters. The possibilities are practically limitless. Museums &Heritages

[028] A tecnologia NCAM oferece uma ampla gama de aplicações potenciais para os setores de museus e patrimônios.[028] NCAM technology offers a wide range of potential applications for the museum and heritage sectors.

[029] Como uma ferramenta exploratória, poderia ser útil na reconstrução de locais de patrimônio, como ruínas, mostrando a aparência que o local poderia ter em seus dias de glória.[029] As an exploratory tool, it could be useful in reconstructing heritage sites such as ruins, showing what the site might have looked like in its glory days.

[030] No interior de museus, o NCAM poderia ser utilizado como uma ferramenta educacional, talvez para demonstrar o tamanho de um dinossauro e seus movimentos, seus órgãos internos ou sua estrutura esquelética. Outro exemplo poderia ser a exploração do funcionamento de um motor de combustão integral, efetivamente visualizando um diagrama explodido animado, porém em um espaço 3D completamente envolvente.[030] Inside museums, NCAM could be used as an educational tool, perhaps to demonstrate the size of a dinosaur and its movements, its internal organs or its skeletal structure. Another example could be exploring the operation of an integral combustion engine, effectively visualizing an animated exploded diagram, but in a completely immersive 3D space.

Câmera Virtual - VCSVirtual Camera - VCS

[031] A tecnologia NCAM se presta perfeitamente para esta aplicação. A câmera virtual consiste essencialmente de uma tela LCD que mostra um ambiente CG 3D completo. À medida que o operador movimenta a tela LCD, a mesma se comporta como se fosse uma câmera física em termos de movimento. A câmera LCD é rastreada em translações e rotações XYZ e mostra todo o ambiente CG a partir de uma unidade de CG, em tempo real. Atualmente existem diversas soluções VCS (sistemas de câmera virtual) disponíveis, porém todas apresentam limitações em termos de tecnologia. As mesmas tendem a ser de instalação demorada, limitadas no espaço e no ambiente em que irão operar, e são caras. Um VCS baseado em NCAM teria provavelmente o formato de um tablet, sendo que o processamento seria calculado localmente em combinação com uma tela LCD. As computações CG poderiam ser realizadas a partir de um PC remoto ou eventualmente localmente dependendo dos requerimentos. A idéia é a de possibilitar acesso aberto através de usabilidade e pontos de preços a vários departamentos dentro de um filme, que anteriormente não tinham a capacidade de acesso a estas ferramentas. Este recurso é muito útil para projetistas, arquitetos, VFX, empresas de jogos e empresas de CG e animação, etc.[031] NCAM technology lends itself perfectly to this application. The virtual camera essentially consists of an LCD screen that displays a full 3D CG environment. As the operator moves the LCD screen, it behaves as if it were a physical camera in terms of movement. The LCD camera is tracked in XYZ translations and rotations and shows the entire CG environment from a CG unit, in real time. There are currently several VCS solutions (virtual camera systems) available, but they all have limitations in terms of technology. They tend to be time-consuming to install, limited in space and the environment in which they will operate, and are expensive. An NCAM-based VCS would likely be in the form factor of a tablet, with processing calculated locally in combination with an LCD screen. CG computations could be performed from a remote PC or possibly locally depending on the requirements. The idea is to enable open access through usability and price points to various departments within a film, who previously did not have the ability to access these tools. This feature is very useful for designers, architects, VFX, gaming companies, and CG and animation companies, etc.

[032] Este VCS também forma a espinha dorsal da solução potencial para museus e patrimônios.[032] This VCS also forms the backbone of the potential solution for museums and heritage sites.

Sistema Virtual de Reconhecimento - VSSVirtual Recognition System - VSS

[033] Imagine-se filmando um filme e este sendo realizado predominantemente em uma tela azul/tela verde. De que maneira, como produtor de filmes ou diretor, eu poderia determinar quais seriam os melhores ângulos e tomadas para a filmagem? Afinal de contas, eu posso ter uma pequena quantidade de espaço físico e alguns atores, porém não tenho a menor idéia, além da minha imaginação, quais os ângulos de câmera que seriam os melhores, e muito menos de como explicar para toda a equipe onde devemos posicionar as câmeras e como fazer uma escolha válida de lentes. Atualmente transportaríamos uma câmera de filmagem e todos os seus acessórios para um local de filmagem, configuraríamos o Ncam e daríamos uma olhada, apenas para perceber que outra posição seria a melhor. Se apenas tivéssemos um sistema portátil e leve para tomar estas decisões, de forma rápida e eficiente, este é o Ncam VSS.[033] Imagine filming a movie and it being shot predominantly on a blue screen/green screen. How could I, as a film producer or director, determine the best angles and shots for filming? After all, I may have a small amount of physical space and a few actors, but I have no idea, beyond my imagination, which camera angles would be best, let alone how to explain to the entire crew where we should position the cameras and how to make a valid choice of lenses. These days we would transport a film camera and all its accessories to a filming location, set up the Ncam and take a look, only to realize that another position would be best. If we only had a portable, lightweight system to make these decisions quickly and efficiently, this is Ncam VSS.

[034] O VSS é como o Ncam atualmente, porém integrado em uma câmera de fator de formato pequeno - pense em DSLR. O mesmo consiste essencialmente de um visor digital com os benefícios do Ncam. Estamos combinando todos os elementos do Ncam como é hoje, em um conjunto de filmagem, porém em um dispositivo portátil. A produção virtual de episódios de TV também se beneficiaria enormemente com esta ferramenta, pois sites de museus/patrimônios, bem como arquitetos, poderiam mostrar suas novas criações a potenciais investidores.[034] VSS is like Ncam today, but built into a small form factor camera - think DSLR. It essentially consists of a digital display with the benefits of Ncam. We are combining all the elements of Ncam as it is today, into one filming suite, but on a handheld device. The virtual production of TV episodes would also benefit greatly from this tool, as museum/heritage websites as well as architects could showcase their new creations to potential investors.

Breve Descrição dos DesenhosBrief Description of the Drawings

[035] Segue uma breve descrição dos desenhos de acordo com a presente invenção. - Figura 1: Descrição do hardware para a configuração 2.3. Observe que a versão aqui desenhada é a que possui a estação de trabalho de rastreamento e a estação de trabalho de renderização combinadas. - Figura 2: Algoritmo global de rastreamento para a obtenção da posição e a rotação de uma câmera de filmagem em tempo real. - Figura 3: O Objeto de Registro 3D de autonivelamento criado para o nosso sistema. Esse objeto é utilizado na cena real para computar automaticamente a origem, a orientação e o tamanho do mundo real no nosso software. Uma versão planar é mostrada na imagem da direita da Figura 5. - Figura 4: A Imagem Pirâmide utilizada para a detecção de marcadores naturais. Esta figura também mostra alguns fragmentos de texturas 2D associados aos marcadores. - Figura 5: Cartões de calibração desenvolvidos e utilizados no Ncam. Esquerda: cartão de calibração utilizado para calibrar todas as lentes. Meio: cartão de calibração utilizado no alinhamento da computação entre uma câmera de filmagem e uma câmera de prova. O cartão do lado esquerdo também pode ser utilizado para casos nos quais a distância focal da câmera de filmagem é curta o suficiente (experimentalmente decidida no local). Direita: versão planar do objeto de registro. Mais fácil de manusear e pode ser colocado em qualquer lugar sobre a superfície do solo. Os círculos proporcionam uma base ortonormal fornecendo a orientação do mundo, a escala e a origem (0,0,0) ao adicionar objetos virtuais à cena real. O centro do círculo superior esquerdo consiste da origem do mundo. - Figura 6: A Barra da Câmera a ser montada em uma câmera de filmagem com os diferentes tamanhos de suportes (para hastes de 15 mm e 19 mm). - Figura 7: O dispositivo de inspeção sem fio. Quando uma inspeção é necessária (por exemplo, no caso monoscópico, (veja a seção 2.1, ou em conjuntos muito complexos (veja o final da seção 2.1.3))), todo o processo de rastreamento é então obtido com a utilização deste dispositivo de inspeção. Quando a inspeção estiver concluída, todos os dados de rastreamento (nuvens de pontos, pontos-chave, etc.) são transmitidos sem fio para a Estação de Trabalho de Rastreamento/Renderização, que recupera instantaneamente o rastreamento e inicia a transmissão para fora dos dados de rastreamento e do resultado final composto. - Figura 8: A Caixa de Derivação Câmera/Computador. Observe que se encontra ilustrada uma versão utilizando vários cabos RJ45. Todas estas caixas de derivação apresentam também uma variante na qual estes cabos são substituídos por um único cabo tático de fibra óptica.[035] Below is a brief description of the drawings according to the present invention. - Figure 1: Hardware description for configuration 2.3. Note that the version drawn here is the one with the tracking workstation and rendering workstation combined. - Figure 2: Global tracking algorithm for obtaining the position and rotation of a filming camera in real time. - Figure 3: The self-leveling 3D Registration Object created for our system. This object is used in the real scene to automatically compute the origin, orientation and size of the real world in our software. A planar version is shown in the right image of Figure 5. - Figure 4: The Pyramid Image used for the detection of natural markers. This figure also shows some 2D texture fragments associated with the markers. - Figure 5: Calibration cards developed and used in Ncam. Left: Calibration card used to calibrate all lenses. Medium: calibration card used to align the computation between a film camera and a test camera. The card on the left can also be used for cases in which the focal length of the film camera is short enough (experimentally decided on site). Right: planar version of the registration object. Easier to handle and can be placed anywhere on the ground surface. Circles provide an orthonormal basis by providing world orientation, scale, and origin (0,0,0) when adding virtual objects to the real scene. The center of the upper left circle consists of the origin of the world. - Figure 6: The Camera Bar to be mounted on a film camera with the different sizes of supports (for 15 mm and 19 mm rods). - Figure 7: The wireless inspection device. When an inspection is required (e.g. in the monoscopic case, (see section 2.1, or in very complex assemblies (see end of section 2.1.3))), the entire tracking process is then achieved using this device inspection. When the inspection is complete, all tracking data (point clouds, keypoints, etc.) is transmitted wirelessly to the Tracking/Rendering Workstation, which instantly retrieves the tracking and begins streaming out the data tracking and the final composite result. - Figure 8: The Camera/Computer Junction Box. Note that a version using several RJ45 cables is illustrated. All of these junction boxes also have a variant in which these cables are replaced by a single tactical fiber optic cable.

Descrição Detalhada da InvençãoDetailed Description of the Invention

[036] A tecnologia da presente invenção se refere à mixagem de objetos 3D gerados em computador em tempo real e à transmissão de vídeo real ao vivo proveniente de uma câmera real (denominada câmera de filmagem no restante deste documento) em um local de filmagem, transmissão de TV ou jogo de vídeo. Os principais objetivos deste sistema consistem de: - Fornecer uma ferramenta de enquadramento em tempo real de personagens virtuais e ambientes para diretores de cinema. - Visualizar o resultado fotorrealístico em tempo real dos objetos virtuais diretamente mixados com o vídeo real. - Fornecer uma estimativa precisa da posição de uma câmera de filmagem (denominada rastreamento de câmera), tanto para a gravação no local como para a pós-produção. Todas as câmeras de filmagem são consideradas: câmeras de gruas, câmeras Steadycam, câmeras de mão, câmeras em tripés, etc. - Fornecer uma aproximação da modelagem geométrica 3D da cena real, manipulação oclusões entre os objetos reais (e/ou atores) e do ambiente virtual (objetos 3D, personagens, etc.).[036] The technology of the present invention relates to mixing computer-generated 3D objects in real time and transmitting real live video from a real camera (referred to as a film camera in the remainder of this document) at a filming location, TV broadcast or video game. The main objectives of this system are to: - Provide a real-time framing tool for virtual characters and environments for film directors. - View the real-time photorealistic result of virtual objects directly mixed with the real video. - Provide an accurate estimate of the position of a filming camera (called camera tracking), both for on-location recording and post-production. All film cameras are considered: crane cameras, Steadycam cameras, handheld cameras, cameras on tripods, etc. - Provide an approximation of 3D geometric modeling of the real scene, handling occlusions between real objects (and/or actors) and the virtual environment (3D objects, characters, etc.).

[037] A tecnologia aqui descrita consiste antes de tudo de um algoritmo poderoso de fusão de sensores, mixando assim marcadores naturais (ou seja, não adicionados manualmente na cena física) computados a partir de 3 (no caso estereoscópico) ou de 2 (no caso monoscópico) diferentes fluxos ópticos e da medição física de 4 outros sensores (giroscópio, acelerômetro, magnetômetro, sensor de faixa 3D). A tecnologia aqui descrita também consiste de um sistema totalmente não invasivo, que não requer a adição manual de quaisquer marcadores físicos ou outros objetos diretamente visíveis na cena real, para a realização de seu trabalho.[037] The technology described here consists first and foremost of a powerful sensor fusion algorithm, thus mixing natural markers (i.e., not added manually to the physical scene) computed from 3 (in the stereoscopic case) or 2 (in the stereoscopic case). monoscopic case) different optical flows and the physical measurement of 4 other sensors (gyroscope, accelerometer, magnetometer, 3D range sensor). The technology described here also consists of a completely non-invasive system, which does not require the manual addition of any physical markers or other objects directly visible in the real scene, to carry out its work.

1 Hardware1 Hardware

[038] A tecnologia apresenta 2 diferentes configurações possíveis de hardware, dependendo do tipo de dados que necessitam ser transmitidos para fora.[038] The technology presents 2 different possible hardware configurations, depending on the type of data that needs to be transmitted out.

[039] Todas estas 2 configurações possuem em comum o seguinte hardware, montado sobre um dispositivo denominado barra da câmera (veja a Figura 6 com os esquemas detalhados), bem como uma caixa de conexão em separado, que consiste essencialmente de uma caixa de derivação misturando ou separando todos os diferentes tipos de cabos em um ou vários chicotes independentes (veja a Figura 8 com os esquemas detalhados): • Uma ou duas câmeras de alta velocidade (de pelo menos 100 fps), denominadas de câmeras de prova, dependendo da abordagem selecionada (monoscópica ou estereoscópica). • Cada câmera de prova possui uma lente olho de peixe de 180 graus nela montada. • Um sensor 9-DOF, incluindo um giroscópio, magnetômetro e acelerômetro (ou um 6-DOF quando o magnetômetro não pode ser utilizado). • Um sensor de faixa 3D que capta a profundidade de um pixel.[039] All of these 2 configurations have in common the following hardware, mounted on a device called a camera bar (see Figure 6 with detailed diagrams), as well as a separate connection box, which essentially consists of a junction box mixing or separating all the different types of cables into one or several independent harnesses (see Figure 8 for detailed diagrams): • One or two high-speed cameras (at least 100 fps), called test cameras, depending on the selected approach (monoscopic or stereoscopic). • Each test camera has a 180-degree fisheye lens mounted on it. • A 9-DOF sensor, including a gyroscope, magnetometer, and accelerometer (or a 6-DOF when the magnetometer cannot be used). • A 3D range sensor that captures the depth of a pixel.

[040] Além da barra de câmera, todas as configurações apresentam codificadores regulares de lentes montados na câmera de filmagem para ler os valores de zoom, foco e íris. As mesmas também têm em comum um dispositivo de inspeção sem fio (veja a Figura 7 com os esquemas detalhados) para inspecionar a cena e conhecê-la. No entanto, note que, no caso de uma abordagem estereoscópica completa (veja a seção 2.5), e mais precisamente uma inspeção instantânea (veja a seção 2.5.1), este dispositivo de inspeção não é necessário.[040] In addition to the camera bar, all configurations feature regular lens encoders mounted on the filming camera to read zoom, focus, and iris values. They also have in common a wireless inspection device (see Figure 7 with detailed diagrams) to inspect the scene and learn about it. However, note that in the case of a full stereoscopic approach (see section 2.5), and more precisely an instantaneous inspection (see section 2.5.1), this inspection device is not necessary.

[041] Além destas características compartilhadas, as 2 configurações são descritas como se segue: Configuração 1: Transmissão de Câmera 1. Computador embarcado sem fio: (a) Um Computador Embarcado de Rastreamento é montado na câmera de filmagem. O mesmo transmite para fora sem fio a translação e a rotação da câmera de filmagem (RT) a uma estação de trabalho externa de renderização, bem como o zoom, o foco e a íris (ZFI) originados dos codificadores. (b) Uma Estação de Trabalho Externa de Geração de Conteúdo. Esta máquina executa tipicamente um software de computação gráfica para fornecer animações 3D geradas em computador e conteúdo relevante CG para a composição final. A mesma também transmite os dados de animação para a estação de trabalho externa de renderização (1- lc). (c) Uma Estação De Trabalho Externa de Renderização, que por um lado recebe os dados do computador embarcado (1-la), e que por outro lado também manipula os dados de animação provenientes da estação de geração de conteúdo (1- lb). Esta estação de trabalho de renderização utiliza a câmera de filmagem RT+ZFI vinda de 1-la para exibir o ambiente virtual 3D vindo de 1-lb, e mixa o resultado no fluxo de vídeo real procedente da câmera de filmagem. A mesma também transmite o resultado final composto de volta para a ocular da câmera de filmagem ou para um monitor de controle sem qualquer fio. 2. Computador embarcado com fio: (a) Um Computador Embarcado de Rastreamento é montado na câmera de filmagem. O mesmo transmite para fora sem fio a translação e a rotação da câmera de filmagem (RT) e os dados (ZFI) do codificador a uma estação de trabalho externa de renderização, utilizando cabos táticos de fibra óptica. (b) Semelhante à Configuração 1-1b. (c) Semelhante à Configuração 1-1c, exceto que o resultado final composto é enviado de volta para a câmera através de um cabo HD-SDI. Configuração 2: Transmissão Total 1. Computador embarcado sem fio: (a) Um computador embarcado de rastreamento é montado na câmera de filmagem. Nenhum processamento atual é realizado nesta unidade. O mesmo apenas transfere para fora sem fio todos os dados dos sensores para uma estação de rastreamento externa. 2 x fluxos de vídeo das câmeras de prova, dados 1x9DOF, 1 x dados de sensores de faixa são transmitidos para fora. A quantidade total de dados requer uma largura de banda mínima superior a 142 MB/sec (as câmeras de prova requerem 63 MB/sec, os sensores de faixa 74 MB/sec, e o sensor 9DOF 4,4 MB/sec). (b) Uma Estação de Trabalho de Rastreamento Externa que recebe os dados do computador de rastreamento embarcado. Esta unidade processa todos os dados dos sensores para calcular as matrizes de rotação e translação da câmera de filmagem. A mesma transmite para fora a Câmera RT+ZFI para a estação de trabalho de renderização externa. (2-ld). (c) Uma Estação de Trabalho de Geração de Conteúdo. Esta máquina roda tipicamente um software de computação gráfica para fornecer animações 3D geradas por computador e conteúdo CG relevante para a composição final. A mesma também transmite para fora os dados de animação para a estação de trabalho de renderização externa (2-1d). (d) Uma Estação de Renderização Externa que por um lado recebe os dados do computador embarcado (2-1b), e por outro lado também trata os dados animados provenientes da estação de trabalho de geração de conteúdo (2-1c). Esta estação de trabalho de renderização utiliza a RT+ZFI da câmera de filmagem vindo de 2-1b para exibir o ambiente virtual 3D vindo de 2- 1c, e mistura o resultado dentro do fluxo de vídeo real vindo da câmera de filmagem. A mesma também transmite o resultado final composto de volta para a ocular da câmera de filmagem ou para um monitor de controle sem qualquer fio. 2. Computador embarcado com fio: (a) Um computador embarcado de rastreamento é montado na câmera de filmagem. O mesmo transmite para fora a translação e a rotação (RT) da câmera de filmagem a uma estação de trabalho de renderização externa (2-2c) utilizando cabos táticos de fibra óptica ou cabos múltiplos RJ45 Cat-6. Novamente, codificadores são utilizados para zoom, foco e íris (ZFI). (b) Semelhante à Configuração 2-1c. (c) Semelhante à Configuração 2-1d, exceto que o resultado final composto é enviado de volta para a câmera através de um cabo HD-SDI. 3. Nenhum computador embarcado (veja a Figura 1 para uma ilustração gráfica: todas as outras versões podem ser facilmente derivadas desta uma): (a) Um único dispositivo de rastreamento de câmera (barra de câmera) está acoplado na câmera de filmagem, e conectado na caixa de derivação. (b) Uma estação de trabalho de rastreamento externa que recebe os dados do computador de rastreamento embarcado. Esta unidade processa todos os dados dos sensores para calcular as matrizes de rotação e translação da câmera de filmagem. Codificadores são novamente utilizados para zoom, foco e íris (ZFI). A mesma transmite para fora a RT+ZFI da câmera, a uma estação de trabalho de renderização 2-3d. (c) Semelhante à Configuração de 2-1c. (d) Semelhante à Configuração 2-1d, exceto que o resultado final composto é enviado de volta para a câmera através de um cabo HD-SDI.[041] In addition to these shared features, the 2 configurations are described as follows: Configuration 1: Camera Transmission 1. Wireless Onboard Computer: (a) An Onboard Tracking Computer is mounted on the filming camera. It wirelessly transmits the translation and rotation of the film camera (RT) to an external rendering workstation, as well as the zoom, focus and iris (ZFI) originating from the encoders. (b) An External Content Generation Workstation. This machine typically runs computer graphics software to provide computer-generated 3D animations and relevant CG content for the final composite. It also transmits animation data to the external rendering workstation (1- lc). (c) An External Rendering Workstation, which on the one hand receives data from the onboard computer (1-la), and which on the other hand also manipulates the animation data coming from the content generation station (1-lb) . This rendering workstation uses the RT+ZFI movie camera from 1-la to display the 3D virtual environment from 1-lb, and mixes the result into the real video stream from the movie camera. It also transmits the final composite result back to the film camera's eyepiece or to a control monitor wirelessly. 2. Wired Onboard Computer: (a) An Onboard Tracking Computer is mounted on the filming camera. It wirelessly transmits film camera translation and rotation (RT) and encoder data (ZFI) to an external rendering workstation using tactical fiber optic cables. (b) Similar to Configuration 1-1b. (c) Similar to Setup 1-1c, except that the final composite result is sent back to the camera via an HD-SDI cable. Configuration 2: Full Transmission 1. Wireless embedded computer: (a) An embedded tracking computer is mounted on the filming camera. No actual processing is performed on this unit. It simply wirelessly transfers all data from the sensors to an external tracking station. 2 x video streams from the proof cameras, 1x9DOF data, 1 x range sensor data are streamed out. The total amount of data requires a minimum bandwidth greater than 142 MB/sec (proof cameras require 63 MB/sec, range sensors 74 MB/sec, and the 9DOF sensor 4.4 MB/sec). (b) An External Tracking Workstation that receives data from the onboard tracking computer. This unit processes all sensor data to calculate the rotation and translation matrices of the filming camera. It outputs the RT+ZFI Camera to the external rendering workstation. (2-ld). (c) A Content Generation Workstation. This machine typically runs computer graphics software to provide computer-generated 3D animations and CG content relevant to the final composite. It also outputs the animation data to the external rendering workstation (2-1d). (d) An External Rendering Station that on the one hand receives data from the onboard computer (2-1b), and on the other hand also processes the animated data coming from the content generation workstation (2-1c). This rendering workstation uses the RT+ZFI of the movie camera coming from 2-1b to display the 3D virtual environment coming from 2-1c, and mixes the result into the real video stream coming from the movie camera. It also transmits the final composite result back to the film camera's eyepiece or to a control monitor wirelessly. 2. Wired embedded computer: (a) An embedded tracking computer is mounted on the filming camera. It outputs the translation and rotation (RT) of the film camera to an external rendering workstation (2-2c) using tactical fiber optic cables or RJ45 Cat-6 multiple cables. Again, encoders are used for zoom, focus and iris (ZFI). (b) Similar to Configuration 2-1c. (c) Similar to Setup 2-1d, except the final composite result is sent back to the camera via an HD-SDI cable. 3. No onboard computer (see Figure 1 for a graphical illustration: all other versions can be easily derived from this one): (a) A single camera tracking device (camera bar) is attached to the filming camera, and connected to the junction box. (b) An external tracking workstation that receives data from the onboard tracking computer. This unit processes all sensor data to calculate the rotation and translation matrices of the filming camera. Encoders are again used for zoom, focus and iris (ZFI). It transmits the camera's RT+ZFI out to a 2-3d rendering workstation. (c) Similar to Configuration of 2-1c. (d) Similar to Setup 2-1d, except the final composite result is sent back to the camera via an HD-SDI cable.

[042] Adicionalmente às configurações anteriores, cada uma das versões também tem possui outras duas variantes. Uma das mesmas possui a Estação de Trabalho de Geração de Conteúdo unida à Estação de Trabalho de Renderização Externa, e a segunda variante possui a Estação de Trabalho de Renderização Externa unida à Estação de Trabalho de Rastreamento.[042] In addition to the previous configurations, each version also has two other variants. One of them has the Content Generation Workstation joined to the External Rendering Workstation, and the second variant has the External Rendering Workstation joined to the Tracking Workstation.

2 Software2 Software

[043] Vários novos métodos científicos e softwares foram criados para alcançar resultados precisos de rastreamento e realidade aumentada em tempo real [19]. Estes métodos encontram-se descritos nas seções seguintes.[043] Several new scientific methods and software have been created to achieve accurate real-time tracking and augmented reality results [19]. These methods are described in the following sections.

2.1 Rastreamento Monoscópico sem Marcações do sinal de vídeo2.1 Markless Monoscopic Tracking of the Video Signal 2.1.1 Visão geral do processo2.1.1 Process overview

[044] A técnica monoscópica utilizada nesta tecnologia é baseada em duas etapas em separado que são, na verdade, tecnicamente praticamente as mesmas, exceto pelo fato de que uma delas requer uma interação do usuário enquanto que a outra é completamente automática.[044] The monoscopic technique used in this technology is based on two separate steps that are, in fact, technically practically the same, except for the fact that one of them requires user interaction while the other is completely automatic.

[045] O primeiro passo é denominado inspeção. Um usuário utiliza um dispositivo construído sobre o hardware descrito no segundo parágrafo da seção 1 (veja também a Figura 7) para escanear a cena real e o objeto de registro. Durante esta fase, os marcadores naturais são automaticamente aprendidos e calculados em 3D pelo sistema à medida que o usuário faz o escaneamento do ambiente andando em volta. Tão logo o usuário começa com a inspeção, o mesmo também deve capturar o objeto de registo (veja a seção 2.1.3.2) com o propósito de estimar automaticamente a escala, a origem e a orientação do mundo. Uma vez que este processo foi realizado, o usuário pode continuar a escanear o restante da cena para construir a melhor nuvem de pontos 3D possível a partir de marcadores naturais (um marcador natural é um ponto invisível ao olho humano e que é calculado pelos nossos algoritmos). Quanto mais minuciosa for esta inspeção, tanto melhor será o resultado final. A parte da inspeção consiste da tarefa mais importante do processo, sendo altamente crítica.[045] The first step is called inspection. A user uses a device built on the hardware described in the second paragraph of section 1 (see also Figure 7) to scan the real scene and the recording object. During this phase, natural markers are automatically learned and calculated in 3D by the system as the user scans the environment by walking around. As soon as the user starts with the inspection, he must also capture the registration object (see section 2.1.3.2) for the purpose of automatically estimating the scale, origin and orientation of the world. Once this process has been carried out, the user can continue to scan the rest of the scene to build the best possible 3D point cloud from natural markers (a natural marker is a point that is invisible to the human eye and is calculated by our algorithms ). The more thorough this inspection is, the better the final result will be. The inspection part is the most important task in the process and is highly critical.

[046] A segunda etapa consiste do rastreamento da câmera de filmagem (veja a seção 2.1.4) que é realizado a partir do dispositivo de rastreamento que foi colocado na câmera de filmagem. Diferentes configurações se aplicam, seguindo a descrição da seção anterior intitulada "Hardware" e de acordo com várias situações. Esta etapa é totalmente automática e geralmente não requer qualquer interação humana.[046] The second step consists of tracking the filming camera (see section 2.1.4) which is carried out from the tracking device that was placed on the filming camera. Different settings apply, following the description in the previous section titled "Hardware" and according to various situations. This step is completely automatic and generally does not require any human interaction.

2.1.2 Visão do Algoritmo2.1.2 Algorithm View

[047] A tecnologia descrita aqui consiste de um quadro de realidade aumentada com base em uma técnica de fusão de múltiplos sensores (veja a seção 2.3).[047] The technology described here consists of an augmented reality framework based on a multiple sensor fusion technique (see section 2.3).

[048] De fato, a mesma não se baseia nos dados únicos e habituais de fluxo óptico para rastrear uma câmera e inserir um objeto virtual. Tais técnicas têm demonstrado as suas limitações científicas e práticas em muitos casos. Por exemplo, se um usuário ocultar a câmera utilizada para o rastreamento, então o rastreamento falha e se perde. Este é exatamente o mesmo problema que surge quando a câmera aponta para a região que não foi inspecionada (veja a seção 2.1.3). Além disso, mesmo que a câmera de filmagem não esteja se movendo, ainda existem algumas questões inevitáveis de leves oscilações em função da precisão dos marcadores naturais detectados e computados pelo algoritmo de rastreamento puramente visual. A filtragem dos dados resolve parcialmente o problema, porém nunca se obtém um objeto virtual perfeitamente estável, especialmente ao utilizar lentes focais muito longas. Como a nossa tecnologia utiliza outros sensores para saber se a câmera está em movimento ou não, o nosso algoritmo de rastreamento não apresenta este problema.[048] In fact, it does not rely on the unique and usual optical flow data to track a camera and insert a virtual object. Such techniques have demonstrated their scientific and practical limitations in many cases. For example, if a user hides the camera used for tracking, then the tracking fails and is lost. This is exactly the same problem that arises when the camera points to the region that has not been inspected (see section 2.1.3). Furthermore, even if the filming camera is not moving, there are still some unavoidable issues of slight oscillations due to the accuracy of the natural markers detected and computed by the purely visual tracking algorithm. Data filtering partially solves the problem, but a perfectly stable virtual object is never obtained, especially when using very long focal lenses. As our technology uses other sensors to know whether the camera is moving or not, our tracking algorithm does not present this problem.

[049] Técnicas regulares de fluxo óptico tais como SLAM [9], PTAM [8], RSLAM [13], etc., utilizam informações contidas no vídeo capturado pela câmera para aproximar a sua posição e orientação. A nossa tecnologia apresenta uma abordagem semelhante para a sua parte de rastreamento visual (denominada rastreamento visual), exceto pelo fato de que, por um lado o núcleo do rastreamento não consiste de uma simples busca de quadros-chave quando o mesmo se perde, e por outro lado o mesmo utiliza todos os dados dos 7 sensores disponíveis (uma câmera de filmagem, duas câmeras de prova, um giroscópio, um acelerômetro, um magnetômetro e um sensor de faixa 3D) para computar a posição e orientação precisa da câmera.[049] Regular optical flow techniques such as SLAM [9], PTAM [8], RSLAM [13], etc., use information contained in the video captured by the camera to approximate its position and orientation. Our technology presents a similar approach to its visual tracking part (called visual tracking), except for the fact that, on the one hand, the core of the tracking does not consist of a simple search for keyframes when they are lost, and on the other hand, it uses all the data from the 7 available sensors (a film camera, two test cameras, a gyroscope, an accelerometer, a magnetometer and a 3D range sensor) to compute the precise position and orientation of the camera.

[050] Nós utilizamos um Filtro Kalman Estendido (EKF, consulte a seção 2.3.2) [7, 21] para integrar os seguintes sensores: giroscópio, acelerômetro, sensores de magnetômetro e câmeras de prova. A técnica EKF é o coração do nosso software e todos os algoritmos de previsão/correção são baseados em um método de fusão de dados que permite utilizar o melhor de cada um dos sensores. Este método proporciona uma robustez incomparável para casos simples e críticos, nos quais todas as outras técnicas falharam. Na verdade, quando um sensor perdeu a trilha (significando atualmente que suas medidas não são mais confiáveis), ainda assim o EKF é capaz de obter uma estimativa da posição/orientação com a mistura dos dados dos demais sensores confiáveis e restantes. Além disso, como cada sensor apresenta um nível de confiança, isto possui impacto sobre o algoritmo de fusão a fim de evitar que o sistema utilize informações imprecisas. Por exemplo, um giroscópio comum apresenta uma falha natural denominada deriva, que tende a modificar sua orientação mesmo quando não se encontra em movimento. Quanto mais o tempo passa, maior é o erro gerado pelo giroscópio. A correção da deriva do giroscópio é realizada com a utilização do rastreamento visual, e o rastreamento visual é corrigido pelo giroscópio quando o seu erro torna-se muito grande. O EKF é, portanto, capaz de encontrar a melhor posição e rotação da Câmera de Filmagem prevendo os movimentos da Câmera de Filmagem utilizando os valores anteriores corretamente estimados, e de então corrigir a sua previsão de acordo com as novas medidas fornecidas por todos os sensores.[050] We use an Extended Kalman Filter (EKF, see section 2.3.2) [7, 21] to integrate the following sensors: gyroscope, accelerometer, magnetometer sensors and probe cameras. The EKF technique is the heart of our software and all prediction/correction algorithms are based on a data fusion method that allows you to use the best of each sensor. This method provides unparalleled robustness for simple and critical cases where all other techniques have failed. In fact, when a sensor has lost track (currently meaning its measurements are no longer reliable), the EKF is still able to obtain a position/orientation estimate by mixing data from the other reliable and remaining sensors. Furthermore, as each sensor has a confidence level, this has an impact on the fusion algorithm in order to prevent the system from using inaccurate information. For example, a common gyroscope has a natural fault called drift, which tends to change its orientation even when it is not in motion. The more time passes, the greater the error generated by the gyroscope. Gyroscope drift correction is performed using visual tracking, and visual tracking is corrected by the gyroscope when its error becomes too large. The EKF is therefore able to find the best position and rotation of the Camcorder by predicting the movements of the Camcorder using previously correctly estimated values, and then correcting its prediction according to the new measurements provided by all sensors. .

[051] Além disso, as técnicas de rastreamento mais puras baseadas na óptica utilizam quadros-chave (ou seja, capturas) para localizar a câmera quando a mesma se perde. Se não houver nenhum quadro-chave da visão atual para a qual você está apontando para a câmera, então o sistema de recuperação falha. Técnicas mais robustas podem ser naturalmente utilizadas, tais como o SIFT [11] ou SURF [1] para solucionar os casos nos quais você simplesmente girou a câmera verticalmente, por exemplo. De fato, como todos estes sistemas comparam o quadro atual com o quadro-chave mais semelhante, é muito interessante a utilização de descritores invariáveis de rotação e escala para a obtenção de uma coincidência melhor e mais rápida. No entanto, caso não exista qualquer quadro-chave da posição na qual a câmera se encontra, não existe nenhuma maneira pela qual o sistema possa recuperar a sua posição. A nossa técnica utiliza o melhor de cada técnica (note que utilizamos ORB [18] como descritores de pontos-chave), e ao mesmo tempo executamos três tarefas diferentes para recuperar o rastreamento perdido (veja a seção 2.1.4.4 para mais detalhes). O processo de recuperação pode ser visto como um algoritmo global baseado em uma abordagem probabilística e estocástica. Quando o rastreamento se perde, o espaço 3D é amostrado instantaneamente em torno das últimas posições conhecidas utilizando uma abordagem elipsoidal, e todos os quadros-chave dentro desta elipsoide são comparados com o quadro-chave atual. Além disso, todos os outros dados provenientes dos sensores restantes (giroscópio, acelerômetro, magnetômetro, sensor de faixa 3D) ainda são mesclados na busca, permitindo que o nosso software desambigue todos os bons candidatos plausíveis. Evidentemente, se nenhum quadro-chave for um candidato bom o suficiente, então o sistema irá utilizar todos os outros sensores além do acompanhamento visual para calcular uma aproximação da posição atual. A consequência óbvia desta técnica reside no fato de que a nossa tecnologia permite que o usuário aponte a câmera para um local que não foi inspecionado, sem perder o rastreamento. No entanto, os nossos algoritmos nunca param de amostrar o espaço 3D para encontrar um quadro-chave (ou seja, melhor aproximação da RT) que coincida com a captura atual. Se um rastreamento visual for recuperado, todos os outros dados dos sensores são utilizados e atualizados para corrigir as suas próprias informações, além das informações da câmera (consulte Filtro Kalman Estendido, seção 2.3.2).[051] Furthermore, purer optical-based tracking techniques use keyframes (i.e., captures) to locate the camera when it is lost. If there is no keyframe of the current view you are pointing the camera at, then the recovery system fails. More robust techniques can naturally be used, such as SIFT [11] or SURF [1] to solve cases in which you simply rotated the camera vertically, for example. In fact, as all these systems compare the current frame with the most similar keyframe, it is very interesting to use rotation and scale invariant descriptors to obtain a better and faster match. However, if there is no keyframe for the position the camera is in, there is no way in which the system can recover its position. Our technique uses the best of each technique (note that we use ORB [18] as keypoint descriptors), and at the same time we perform three different tasks to recover the lost track (see section 2.1.4.4 for more details). The retrieval process can be viewed as a global algorithm based on a probabilistic and stochastic approach. When tracking is lost, 3D space is instantly sampled around the last known positions using an ellipsoidal approach, and all keyframes within this ellipsoid are compared to the current keyframe. Additionally, all other data coming from the remaining sensors (gyroscope, accelerometer, magnetometer, 3D range sensor) is still merged into the search, allowing our software to disambiguate all plausible good candidates. Of course, if no keyframe is a good enough candidate, then the system will use all other sensors besides visual tracking to calculate an approximation of the current position. The obvious consequence of this technique lies in the fact that our technology allows the user to point the camera at a location that has not been inspected, without losing tracking. However, our algorithms never stop sampling 3D space to find a keyframe (i.e. best approximation of RT) that matches the current capture. If a visual track is retrieved, all other sensor data is used and updated to correct its own information in addition to the camera information (see Extended Kalman Filter, section 2.3.2).

[052] A versão mais recente (ou seja, regular) da nossa tecnologia é a estereoscópica (veja a seção 2.5), o que significa que a mesma utiliza duas câmeras de prova espaçadas em 21 centímetros (veja a Figura 6). Esta tecnologia não requer qualquer cálculo de uma homografia ou qualquer tradução manual de uma única câmera de prova (veja a seção 2.1.3) para calcular a informação de profundidade de marcadores naturais detectados no sinal de vídeo. Este método simplifica nosso algoritmo principal, tornando a fase de inspeção obsoleta na maioria dos casos (veja a seção 2.5). Como na técnica monoscópica, o próprio rastreamento visual apresenta uma abordagem completa de subpixel, permitindo que o sistema rastreie a posição da câmera em 4 diferentes níveis de uma pirâmide de imagem (veja a Figura 4), enquanto que todas as outras tecnologias baseadas em fluxo óptico utilizam erroneamente uma abordagem de pixel em apenas duas diferentes resoluções de imagem na busca de pontos característicos.[052] The most recent (i.e. regular) version of our technology is stereoscopic (see section 2.5), which means that it uses two test cameras spaced 21 centimeters apart (see Figure 6). This technology does not require any calculation of a homography or any manual translation of a single proof camera (see section 2.1.3) to calculate the depth information of natural markers detected in the video signal. This method simplifies our main algorithm, making the inspection phase obsolete in most cases (see section 2.5). As with the monoscopic technique, visual tracking itself presents a complete subpixel approach, allowing the system to track the camera position at 4 different levels of an image pyramid (see Figure 4), whereas all other flow-based technologies optics mistakenly use a pixel approach at just two different image resolutions when searching for feature points.

2.1.3 1aFase: A Inspeção2.1.3 1st Phase: Inspection 2.1.3.1 Etapa de Inicialização2.1.3.1 Initialization Step

[053] O primeiro passo consiste do usuário fazendo uma translação horizontal física/manual com o dispositivo com o propósito de capturar dois quadros. O algoritmo detecta automaticamente os marcadores naturais (ou seja, pontos característicos) das imagens utilizando um método de detecção de bordas denominado FASTER [17]. Uma coincidência é aplicada para encontrar a correspondência entre pares de pontos. Para uma imagem, todos os pontos detectados devem permanecer no mesmo plano 3D para permitir o cálculo de uma homografia correta desse plano para a imagem. Isto proporciona uma rotação e translação da câmera em relação ao plano 3D. A segunda imagem segue o mesmo princípio e com isto obtemos uma segunda posição e translação da câmera para a imagem atual. Agora é possível computar a transformação de uma câmera para a outra e obter um primeiro ponto de nuvem 3D.[053] The first step consists of the user making a physical/manual horizontal translation with the device in order to capture two frames. The algorithm automatically detects natural markers (i.e., characteristic points) of images using an edge detection method called FASTER [17]. A match is applied to find the correspondence between pairs of points. For an image, all detected points must remain in the same 3D plane to allow calculation of a correct homography of that plane for the image. This provides rotation and translation of the camera in relation to the 3D plane. The second image follows the same principle and with this we obtain a second position and translation of the camera for the current image. It is now possible to compute the transformation from one camera to the other and obtain a first 3D point cloud.

[054] Vamos considerar dois pontos de vista (Esquerdo e Ddireita) capturados por uma câmera. Para cada visualização a câmera de prova estava apontada para um ponto M localizado em um plano. ML e MR são as projeções em perspectiva de M em vistas esquerdas e direitas, respectivamente.[054] Let's consider two points of view (Left and Right) captured by a camera. For each view, the test camera was pointed at a point M located on a plane. ML and MR are the perspective projections of M in left and right views, respectively.

[055] Podemos escrever: onde: • R é a matriz de rotação pela qual ML érotacionada em relação a MR. • N (A, B, C)é o vetor normal do plano ao qual o ponto M pertence. • D é a distância ao plano tal como Ax + By + Cz + D = 0.[055] We can write: where: • R is the rotation matrix by which ML is rotated with respect to MR. • N (A, B, C) is the normal vector of the plane to which point M belongs. • D is the distance to the plane such as Ax + By + Cz + D = 0.

[056] Solucionando H na equação 1 resulta em: [056] Solving H in equation 1 results in:

[057] Nosso algoritmo requer um mínimo de 4 pontos coplanares para realizar uma correta inicialização. É bastante comum que tenhamos atualmente muito mais pontos do que estes. Esta por essa razão que nós computamos n homografias possíveis utilizando 4 pontos entre todo o conjunto de pontos para cada homografia. Em seguida usamos um método RANSAC [4] para encontrar a melhor homografia possível e construir um conjunto de candidatos adequados e inadequados. Os candidatos inadequados serão rejeitados enquanto que os candidatos adequados serão refinados por um método de Gauss-Newton minimizando os erros de reprojeção dos pontos nas duas visualizações. Ter a melhor homografia calculada a partir do conjunto filtrado de pontos é agora necessário para estimar as matrizes de rotação e translação entre as visualizações esquerdas e direitas. Isto é facilmente obtido com a utilização da decomposição de valores singulares em duas matrizes ortogonais U, V e uma matriz diagonal Y. A matriz H pode agora ser escrita como: com: [057] Our algorithm requires a minimum of 4 coplanar points to perform a correct initialization. It is quite common that we currently have many more points than these. This is why we compute n possible homographies using 4 points among the entire set of points for each homography. We then use a RANSAC method [4] to find the best possible homography and construct a set of suitable and unsuitable candidates. Inadequate candidates will be rejected while suitable candidates will be refined by a Gauss-Newton method minimizing reprojection errors of points in both views. Having the best homography calculated from the filtered set of points is now necessary to estimate the rotation and translation matrices between the left and right views. This is easily achieved using the decomposition of singular values into two orthogonal matrices U, V and a diagonal matrix Y. The matrix H can now be written as: with:

[058] Como não tratamos de casos de homografias indeterminadas, a Equação 3 apresenta duas possíveis soluções: x1, x2 e x3 são os autovalores da matriz H da equação 2, e classificados tais como x1, x2 e x3 e x1 F x2 F x3. • Solução 2: x1, x2 e x3 são os autovalores da matriz H da equação 2, e classificados tais como x1, x2 e x3 e x1 F x2 F x3.[058] As we do not deal with cases of indeterminate homographies, Equation 3 presents two possible solutions: x1, x2 and x3 are the eigenvalues of the matrix H of equation 2, and classified as x1, x2 and x3 and x1 F x2 F x3. • Solution 2: x1, x2 and x3 are the eigenvalues of the matrix H of equation 2, and classified as x1, x2 and x3 and x1 F x2 F x3.

[059] Adicionalmente ao conjunto de pontos característicos, o algoritmo também capta duas posições chave como instantâneos do que as câmeras de prova visualizam a partir de cada ponto de vista. A aprendizagem de pontos adicionais consiste sempre da soma de três componentes: novos pontos detectados, posições chave e fragmentos, que se encontram descritos na seção 2.1.3.3.[059] In addition to the set of characteristic points, the algorithm also captures two key positions as snapshots of what the test cameras view from each point of view. Learning additional points always consists of the sum of three components: new detected points, key positions and fragments, which are described in section 2.1.3.3.

[060] Finalmente, deve ser observado que no caso de uma abordagem estereoscópica, (veja a seção 2.5), a fase de inspeção se torna automática e instantânea. Uma inspeção manual pode ainda assim ser utilizada para casos extremamente complexos (experimentalmente decididos no local), porém esta continua a ser anedótica.[060] Finally, it should be noted that in the case of a stereoscopic approach, (see section 2.5), the inspection phase becomes automatic and instantaneous. A manual inspection can still be used for extremely complex cases (experimentally decided on site), but this remains anecdotal.

2.1.3.2 Escala automática, origem e orientação do Mundo 3D2.1.3.2 Automatic scaling, origin and orientation of the 3D World

[061] Durante uma inspeção monoscópica, não é possível computar a origem exata, dimensão e orientação do mundo, pois este processo requereria ou o conhecimento prévio do objeto real incluindo seu formato e as dimensões exatas, ou a distância utilizada entre as duas visualizações para computar a homografia. Observe que, neste último caso, este não forneceria a origem ou a orientação do mundo de qualquer maneira. A maioria dos sistemas não leva esta parte em consideração. Muitas vezes os mesmos pedem que o usuário faça a escala manualmente, entrando com as dimensões de um objeto 3D visível nos vídeos. Outras opções permitem que um usuário escale os personagens virtuais 3D dentro de um software de modelagem/animação específico durante as filmagens, e também o alinhe devidamente com o mundo real. No entanto, qualquer erro de escala - mesmo pequeno - apresenta dramáticos impactos na qualidade da composição final, sendo por essa razão que o processo é tão cuidadosamente executado com a nossa tecnologia (veja abaixo). Uma das consequências mais comuns observadas de um mau dimensionamento é um sentimento para o usuário de que objetos virtuais estão deslizando no chão, ao invés de ficarem perfeitamente acoplados a ele.[061] During a monoscopic inspection, it is not possible to compute the exact origin, dimension and orientation of the world, as this process would require either prior knowledge of the real object including its shape and exact dimensions, or the distance used between the two views to compute the homography. Note that in the latter case this would not provide the origin or orientation of the world anyway. Most systems don't take this part into account. They often ask the user to scale manually, entering the dimensions of a 3D object visible in the videos. Other options allow a user to scale 3D virtual characters within specific modeling/animation software during filming, and also properly align it with the real world. However, any error in scale - even small - has dramatic impacts on the quality of the final composition, which is why the process is so carefully executed with our technology (see below). One of the most common observed consequences of poor sizing is a feeling for the user that virtual objects are sliding on the floor, instead of being perfectly coupled to it.

[062] Nós propomos um novo método que exige a colocação de um objeto de registro proprietário na cena durante a realização da inspeção. Este objeto é detectado automaticamente porque apresenta um formato muito bem conhecido, e todas as suas dimensões são também conhecidas. Absolutamente nenhuma interação do usuário é necessária.[062] We propose a new method that requires placing a proprietary recording object in the scene while performing the inspection. This object is automatically detected because it has a very well-known shape, and all its dimensions are also known. Absolutely no user interaction is required.

[063] Nosso objeto de registro é produzido de várias partes, que consistem essencialmente de esferas e pernas, como mostrado na Figura 3. As esferas são partes essenciais deste objeto em nosso sistema, uma vez que permitem a utilização de algoritmos de detecção blob para reconhecer o padrão através do vídeo. Os centros de gravidade das esferas projetadas (ou seja, círculos) são então computados, e como conhecemos com precisão as dimensões e as distâncias entre todas as esferas, o sistema é capaz de fornecer uma escala muito precisa para o mundo. Temos também uma versão planar do objeto de registro (veja a imagem da direita da Figura 5), que frequentemente é mais conveniente de ser movimentado de um lugar a outro em um cenário real.[063] Our registration object is produced from several parts, which essentially consist of spheres and legs, as shown in Figure 3. The spheres are essential parts of this object in our system, as they allow the use of blob detection algorithms to recognize the pattern through the video. The centers of gravity of the projected spheres (i.e. circles) are then computed, and because we precisely know the dimensions and distances between all the spheres, the system is able to provide a very accurate scale for the world. We also have a planar version of the registration object (see the right image of Figure 5), which is often more convenient to move from one place to another in a real scenario.

[064] Uma vez alcançado este objetivo, um usuário é capaz, por exemplo, de colocar um objeto virtual de 1,80 m de altura em um vídeo real e assegurar que o mesmo apareça corretamente e com esta altura. As outras abordagens falham em obter esta qualidade, em função do aspecto manual da tarefa.[064] Once this objective has been achieved, a user is able, for example, to place a virtual object 1.80 m high in a real video and ensure that it appears correctly and at this height. Other approaches fail to achieve this quality, due to the manual aspect of the task.

[065] O dimensionamento automático é algo realizado atualmente durante a própria inspeção, porém como acontece no início da inspeção, é importante considerá-lo também como uma etapa da inicialização. A escala computada é de fato utilizada nas etapas seguintes da inspeção para a construção de um conjunto preciso de marcadores naturais 3D. Vamos ver agora, em detalhes, a própria inspeção.[065] Automatic sizing is something currently carried out during the inspection itself, but as it happens at the beginning of the inspection, it is important to also consider it as an initialization step. The computed scale is actually used in the following inspection steps to construct an accurate set of 3D natural markers. Let's now look, in detail, at the inspection itself.

2.1.3.3 Processo de Inspeção e Construção da Nuvem de Pontos2.1.3.3 Point Cloud Inspection and Construction Process

[066] A inspeção exige que o usuário se mova através da cena utilizando o dispositivo de inspeção. Como o sistema sempre computa os novos pontos segundo a confiança que tem naqueles aprendidos anteriormente, a inspeção é sempre construída de uma maneira que a câmera de prova veja pontos suficientes do conjunto anterior para adicionar novos candidatos.[066] Inspection requires the user to move through the scene using the inspection device. Because the system always computes new points based on its confidence in those previously learned, the inspection is always constructed in such a way that the test camera sees enough points from the previous set to add new candidates.

[067] Durante os movimentos da câmera de prova, o algoritmo cria um mapa feito dos três conjuntos de dados aprendidos nos 4 diferentes níveis de uma pirâmide de imagem (veja a Figura 4): • Uma posição chave. Uma posição chave contém um instantâneo com 4 diferentes resoluções da imagem que a câmera de prova vê. O nível inferior da pirâmide consiste da resolução original da câmera de prova (640 x 480 no nosso caso). Esta posição chave também é utilizada pelo algoritmo para recuperar a posição da câmera quando o rastreamento está se tornando errado. • Um conjunto de pontos característicos 2D estimados pelo FASTER [17] em cada uma das imagens da posição chave. O FASTER é um algoritmo muito conhecido cuja principal característica consiste de ser um algoritmo detector de bordas. Cada ponto chave também apresenta um descritor ORB acoplado para assegurar uma recuperação muito mais rápida quando o sistema perde o rastreamento (veja a seção 2.1.4.4). • Um conjunto de fragmentos (texturas 2D 16 x 16) centrado em todos os pontos característicos detectados pela etapa anterior. Durante a detecção de novos pontos, não há nenhuma maneira de calcular a sua profundidade iniciando a partir de uma única visualização. Esta é a utilidade dos fragmentos. Uma busca epipolar (veja a Figura 2, retângulo Construtor de Ponto de Nuvem) pode ser aplicada através das 4 imagens das posições chave encontrando uma correspondência entre dois fragmentos em duas posições chave o mais próximo possíveis. Uma vez que um ponto (ou seja, uma textura) foi detectado em ambas as visualizações, é então possível computar um ponto característico 3D. O conjunto de pontos característicos 3D é denominado Mapa. Também é importante entender que esta pesquisa entre as duas posições chave A e B é obtida pela translação de níveis iguais da pirâmide A e B, mas também do subnível da pirâmide B' (veja a Figura 4).[067] During the movements of the test camera, the algorithm creates a map made of the three sets of data learned at the 4 different levels of an image pyramid (see Figure 4): • A key position. A key position contains a snapshot with 4 different resolutions of the image that the test camera sees. The bottom level of the pyramid consists of the original resolution of the test camera (640 x 480 in our case). This key position is also used by the algorithm to recover the camera position when tracking is becoming wrong. • A set of 2D feature points estimated by FASTER [17] in each of the key position images. FASTER is a well-known algorithm whose main characteristic is that it is an edge detector algorithm. Each key point also features a coupled ORB descriptor to ensure much faster recovery when the system loses track (see section 2.1.4.4). • A set of fragments (16 x 16 2D textures) centered on all characteristic points detected by the previous step. When detecting new points, there is no way to calculate their depth starting from a single view. This is the use of fragments. An epipolar search (see Figure 2, Point Cloud Builder rectangle) can be applied across the 4 key position images by finding a match between two fragments at two key positions as close as possible. Once a point (i.e., a texture) has been detected in both views, it is then possible to compute a 3D feature point. The set of 3D feature points is called Map. It is also important to understand that this search between the two key positions A and B is obtained by translating equal levels of the pyramid A and B, but also the sublevel of the pyramid B' (see Figure 4).

[068] Durante a construção do mapa, a câmera se move de acordo com o deslocamento do operador de inspeção. Neste momento, o nosso software só conhece os parâmetros da câmera que foram previamente computados (ou seja, rastreados). Com o propósito de computar a nova posição da câmera, necessitamos o quadro atual e a nuvem de pontos 3D dos marcadores naturais. Por um lado, o FASTER calcula um conjunto de marcadores 2D em vários níveis da pirâmide de imagem (nível atual e nível atual + 1), e por outro lado, a nuvem de pontos 3D é reprojetada sobre o quadro atual. Este último passo só pode ser obtido se soubermos a posição da câmera, à medida que os pontos estão sendo reprojetados a partir de seu ponto de vista. Porém, isto é precisamente o que estamos tentando computar. Portanto, o nosso software usa um modelo de velocidade constante associado com as informações fornecidas pelo nosso sensor 9-DOF (veja a seção 2.3) para prever a próxima posição da câmera utilizando a posição previamente e corretamente calculada. Utilizando esta previsão, a nuvem de pontos 3D pode ser reprojetada sobre o quadro atual, e um algoritmo de coincidência de pontos é aplicado para encontrar uma correspondência entre os pontos 2D que foram detectados pelo FASTER e os pontos projetados da nuvem de pontos 3D. O erro entre os dois conjuntos de marcadores são minimizados utilizando um algoritmo Levenberg-Marquardt [10, 12, 15], pois o mesmo é conhecido como sendo o melhor algoritmo de otimização para estes tipos de problemas. Se o número de pontos coincidentes dividido pelo número total de pontos projetados for maior do que um dado limiar, o sistema é capaz de rastrear com sucesso a câmera (o rastreamento é bom) e recebe a permissão de adicionar novas posições chave. Os pontos 2D detectados pelo FASTER e que não encontraram uma coincidência na nuvem de pontos 3D são armazenados na memória para uso posterior, bem como seus fragmentos 2D 16 x 16 relacionados. Os mesmos serão necessários para gerar novos pontos característicos 3D (veja o próximo parágrafo).[068] During the construction of the map, the camera moves according to the movement of the inspection operator. Right now, our software only knows the camera parameters that have been previously computed (i.e., tracked). For the purpose of computing the new camera position, we need the current frame and the 3D point cloud of the natural markers. On the one hand, FASTER calculates a set of 2D markers at various levels of the image pyramid (current level and current level + 1), and on the other hand, the 3D point cloud is reprojected onto the current frame. This last step can only be achieved if we know the position of the camera as the points are being reprojected from its point of view. However, this is precisely what we are trying to compute. Therefore, our software uses a constant velocity model associated with the information provided by our 9-DOF sensor (see section 2.3) to predict the next camera position using the previously and correctly calculated position. Using this prediction, the 3D point cloud can be reprojected onto the current frame, and a point matching algorithm is applied to find a correspondence between the 2D points that were detected by FASTER and the projected points from the 3D point cloud. The error between the two sets of markers is minimized using a Levenberg-Marquardt algorithm [10, 12, 15], as it is known to be the best optimization algorithm for these types of problems. If the number of coincident points divided by the total number of projected points is greater than a given threshold, the system is able to successfully track the camera (tracking is good) and is allowed to add new key positions. 2D points detected by FASTER that did not find a match in the 3D point cloud are stored in memory for later use, as well as their related 2D 16 x 16 fragments. They will be needed to generate new 3D characteristic points (see the next paragraph).

[069] As novas posições chave (e os novos pontos característicos) serão adicionadas se três condições forem atendidas. Em primeiro lugar, como informamos no parágrafo anterior, o rastreamento deve ser bom, no sentido de que é preciso o suficiente ou não perdido. Em segundo lugar, a posição chave é adicionada a cada 30 quadros (1 por segundo) para evitar a construção de um conjunto de dados excessivamente grande. Em terceiro lugar, a nova posição chave deve se encontrar a uma distância mínima de 10 cm da posição chave mais próxima. Este método impede que o sistema aprenda pontos adicionais quando se encontra em modo estacionário.[069] New key positions (and new characteristic points) will be added if three conditions are met. First of all, as we reported in the previous paragraph, the tracking must be good, in the sense that it is accurate enough or not lost. Second, the key position is added every 30 frames (1 per second) to avoid building an excessively large dataset. Thirdly, the new key position must be at least 10 cm away from the nearest key position. This method prevents the system from learning additional points when it is in stationary mode.

[070] Quando todos estes testes foram completados com sucesso, o software pode adicionar um novo instantâneo e novos pontos característicos 3D. O primeiro passo é o de utilizar novamente o FASTER para detectar novos pontos 2D relevantes do novo quadro (instantâneo). Como temos um conjunto de pontos característicos 2D não coincidentes provenientes da trilha, agora tentamos coincidir o ponto característico 2D "velho" com o recentemente computado. Isto é realizado através de uma pesquisa epipolar clássica utilizando os fragmentos de textura 2D do novo conjunto de pontos. Os fragmentos são movidos ao longo das linhas epipolares (veja a Figura 2) tentando coincidir o conjunto de fragmentos 2D do conjunto "velho" de pontos. Graças à restrição epipolar, é possível computar a profundidade do ponto 3D proveniente da correspondência de dois pontos 2D. Este processo é de fato semelhante à etapa de coincidência da fase de homografia (veja a seção 2). Se novos pontos foram adicionados ao mapa, um ajuste de pacote local é aplicado. Depois de ter refinado a posição e a rotação da câmera com a utilização destes novos pontos característicos, um algoritmo de otimização Levenberg-Marquardt é utilizado para refinar a posição 3D de todos os pontos característicos. Isto é realizado em uma janela k + 1 quadros, o que significa que a minimização leva em conta o instantâneo atual mais os k mais próximos para estimar corretamente a posição atual e a rotação da câmera (ajuste do pacote local). O valor de k pode ser determinado tanto empiricamente como pode ser computado adaptativamente de acordo com um dado limiar de erro para o algoritmo de minimização.[070] When all these tests have been completed successfully, the software can add a new snapshot and new 3D feature points. The first step is to use FASTER again to detect new relevant 2D points from the new frame (snapshot). Since we have a set of non-coincident 2D feature points coming from the track, we now try to match the "old" 2D feature point with the newly computed one. This is accomplished through a classic epipolar search using the 2D texture fragments from the new set of points. Fragments are moved along epipolar lines (see Figure 2) trying to match the set of 2D fragments to the "old" set of points. Thanks to the epipolar constraint, it is possible to compute the depth of the 3D point from the correspondence of two 2D points. This process is in fact similar to the coincidence step of the homography phase (see section 2). If new points have been added to the map, a local pack adjustment is applied. After you have refined the position and rotation of the camera using these new feature points, a Levenberg-Marquardt optimization algorithm is used to refine the 3D position of all feature points. This is performed in a k + 1 frame window, which means that the minimization takes into account the current snapshot plus the k nearest ones to correctly estimate the current position and rotation of the camera (local packet adjustment). The value of k can be determined either empirically or can be computed adaptively according to a given error threshold for the minimization algorithm.

[071] Adicionalmente ao ajuste do pacote local, um ajuste de pacote global também é aplicado em todas as posições chave existentes. Como o conjunto de posições chave fica cada vez maior ao longo do tempo, o sistema demora mais e mais tempo para realizar o ajuste global. Se novas posições chave estão sendo adicionados e o nosso software não teve tempo suficiente para realizar os ajustes de pacote locais e/ou globais, os ajustes são então apenas cancelados, deixando prioridade para a adição de novas posições chave. Os mesmos serão aplicados novamente assim que a adição de novas posições chave for realizada.[071] In addition to the local package adjustment, a global package adjustment is also applied to all existing key positions. As the set of key positions becomes larger and larger over time, the system takes longer and longer to perform the global adjustment. If new key positions are being added and our software has not had enough time to perform the local and/or global package adjustments, the adjustments are then just cancelled, leaving priority for adding new key positions. They will be applied again as soon as new key positions are added.

[072] Uma vez que existe a presença de uma nuvem de pontos, a câmera pode ser rastreada. Este processo é descrito na próxima seção.[072] Once there is the presence of a point cloud, the camera can be tracked. This process is described in the next section.

2.1.4 2aFase: Rastreamento da Câmera de Filmagem2.1.4 2nd Phase: Filming Camera Tracking 2.1.4.1 Calibração Geométrica da Câmera2.1.4.1 Camera Geometric Calibration

[073] A calibração da câmera tem vários objetivos. Por um lado, nos fornece uma relação matemática para descrever como a imagem é criada no sensor. Por outro lado, calcula uma matriz de transformação entre os pontos 3D e sua projeção sobre o plano da imagem da câmera.[073] Camera calibration has several objectives. On the one hand, it gives us a mathematical relationship to describe how the image is created on the sensor. On the other hand, it calculates a transformation matrix between the 3D points and their projection onto the camera image plane.

[074] Este importante pré-requisito do processo de inspeção e rastreamento significa que temos que computar dois tipos diferentes de propriedades: os parâmetros intrínsecos e extrínsecos. Os parâmetros intrínsecos estão relacionados com as propriedades da câmera e da lente e se movem de acordo com a forma como eles foram construídos fisicamente. Os mesmos englobam o formato da imagem, a distância entre o centro óptico da câmera e o plano da imagem, e o ponto principal. O formato da imagem é produzido de dois fatores de escala, relacionando os pixels com a distância. O ponto principal é a projeção do centro óptico sobre o plano da imagem (sendo preferencialmente no centro da imagem). Além disso, algumas lentes necessitam de ter a sua distorção óptica computada e considerada para o rastreamento. Durante um processo de calibragem, uma superfície plana com vários padrões circulares é sucessivamente capturada pela câmera (veja a Figura 5). Para todas as posições, os parâmetros extrínsecos (ou seja, a posição e a rotação da câmera) e os parâmetros intrínsecos (incluindo a distorção óptica) são computados através de um algoritmo de Minimização Levenberg-Marquardt que minimiza o erro de reprojeção entre todos os instantâneos.[074] This important prerequisite of the inspection and tracking process means that we have to compute two different types of properties: intrinsic and extrinsic parameters. Intrinsic parameters are related to the properties of the camera and lens and move according to how they were physically constructed. They include the image format, the distance between the optical center of the camera and the image plane, and the main point. The image format is produced from two scale factors, relating pixels to distance. The main point is the projection of the optical center onto the image plane (preferably in the center of the image). Additionally, some lenses need to have their optical distortion computed and considered for tracking. During a calibration process, a flat surface with several circular patterns is successively captured by the camera (see Figure 5). For all positions, extrinsic parameters (i.e., camera position and rotation) and intrinsic parameters (including optical distortion) are computed via a Levenberg-Marquardt Minimization algorithm that minimizes reprojection error between all positions. snapshots.

[075] Este processo consiste de uma técnica muito famosa baseada em trabalhos de Devernay e Faugeras [3].[075] This process consists of a very famous technique based on work by Devernay and Faugeras [3].

2.1.4.2 Deslocamento da Câmera de Filmagem2.1.4.2 Moving the Filming Camera

[076] O sistema global aqui desenvolvido requer a colocação um dispositivo de rastreamento diretamente acoplado na câmera alvo de filmagem. A posição e a orientação da câmera de prova são estimadas utilizando-se a técnica de rastreamento anteriormente descrita. No entanto, existe um problema de escala ao se utilizar o mesmo padrão para ambas as câmeras de filmagem e de prova. De fato, como nossas câmeras de prova utilizam lentes de 180 graus, os formatos circulares do padrão de calibração tendem a aparecer muito pequenos na visualização da câmera de prova, consequentemente tornando-os difíceis de serem detectados.[076] The global system developed here requires the placement of a tracking device directly coupled to the target camera for filming. The position and orientation of the probe camera are estimated using the tracking technique previously described. However, there is a scaling problem when using the same standard for both film and proof cameras. In fact, because our proof cameras use 180-degree lenses, the circular shapes of the calibration pattern tend to appear very small in the proof camera view, consequently making them difficult to detect.

[077] Nós criamos nosso próprio cartão de calibração que apresenta dois diferentes padrões de tamanho e contraste. Uma parte do cartão possui círculos pretos puros sobre um fundo branco puro (para as câmeras de prova). A segunda parte do cartão é feita de círculos brancos puros sobre um fundo preto puro (Câmera de Filmagem). Então utilizamos um detector de padrão muito simples para encontrar ambos os padrões para as câmeras de prova e de filmagem. Como conhecemos o posicionamento relativo exato de ambos os padrões, a posição e a rotação da câmera de filmagem podem ser encontradas através da "propagação"da posição e da rotação computadas da câmera de prova e vice-versa. Com efeito, uma vez que ambas as câmeras estão diretamente conectadas em conjunto, somos capazes de utilizar um algoritmo de alinhamento para computar com precisão o deslocamento 3D (R, T) entre as mesmas. Nós desenvolvemos um algoritmo de alinhamento com base nos padrões circulares anteriormente descritos. Os padrões, cujos tamanhos, formatos e posições exatas são conhecidos, são reconhecidos separadamente por ambas as câmeras, gerando assim uma relação matemática trivial (Rotação e Translação) entre as câmeras de prova e de filmagem.[077] We created our own calibration card that presents two different size and contrast standards. One part of the card has pure black circles on a pure white background (for the proof cameras). The second part of the card is made of pure white circles on a pure black background (Film Camera). We then use a very simple pattern detector to find both patterns for the proof and film cameras. Since we know the exact relative positioning of both patterns, the position and rotation of the film camera can be found by "propagating" the computed position and rotation of the proof camera and vice versa. In effect, since both cameras are directly connected together, we are able to use an alignment algorithm to accurately compute the 3D displacement (R, T) between them. We developed an alignment algorithm based on the previously described circular patterns. The patterns, whose exact sizes, shapes and positions are known, are recognized separately by both cameras, thus generating a trivial mathematical relationship (Rotation and Translation) between the proof and filming cameras.

2.1.4.3 Fase de Rastreamento2.1.4.3 Tracking Phase

[078] Separar a inspeção do processo de rastreamento é apenas uma forma pragmática de descrever como o sistema é utilizado em um local. Com efeito, o processo de rastreamento não é diferente do rastreamento descrito na Figura 2 e utilizado durante uma inspeção. O mesmo, no entanto, utiliza um dispositivo mais simples (veja a Figura 6), que é bastante próximo ao dispositivo de inspeção, exceto pelo fato de não incluir uma tela de toque por razões óbvias.[078] Separating inspection from the tracking process is just a pragmatic way of describing how the system is used at a location. In effect, the tracking process is no different from the tracking described in Figure 2 and used during an inspection. It, however, uses a simpler device (see Figure 6), which is very close to the inspection device, except for the fact that it does not include a touch screen for obvious reasons.

[079] O retângulo de Rastreamento Visual da Figura 2 mostra como uma correspondência é encontrada entre os marcadores naturais 2D detectados pelo FASTER em um quadro novo e na nuvem de pontos 3D existente. Os fragmentos de texturas 2D associados com cada marcador natural e originados de ambos os conjuntos de dados são comparados linearmente. Uma vez que todos os pontos característicos foram processados, um algoritmo de Gauss Newton é aplicado para encontrar a melhor correspondência possível e computar a posição e orientação da câmera. Um algoritmo de minimização deste tipo geralmente necessita de aproximadamente 10 interações para convergir para a solução. Com o propósito de aumentar a robustez dos critérios de minimização, nós utilizamos um Tukey M-Estimador estatístico (estimador do tipo máxima semelhança) [6]. Isto também assegura que a convergência não seja perturbada por critérios inadequados.[079] The Visual Tracking rectangle in Figure 2 shows how a correspondence is found between the 2D natural markers detected by FASTER in a new frame and the existing 3D point cloud. The 2D texture fragments associated with each natural marker and originating from both datasets are compared linearly. Once all feature points have been processed, a Gauss Newton algorithm is applied to find the best possible match and compute the position and orientation of the camera. A minimization algorithm of this type generally requires approximately 10 iterations to converge to the solution. In order to increase the robustness of the minimization criteria, we used a statistical Tukey M-Estimator (maximum similarity type estimator) [6]. This also ensures that convergence is not disturbed by inappropriate criteria.

[080] Cada rastreamento é realizado duas vezes e em dois diferentes níveis da pirâmide antes da obtenção dos parâmetros finais da câmera. Em primeiro lugar, a convergência do algoritmo é grandemente aumentada com a computação de uma aproximação da posição e orientação da câmera através de um nível grosso da pirâmide da imagem, e utilizando um subconjunto dos marcadores naturais. Em segundo lugar, a mesma computação é obtida em um conjunto muito maior (aproximadamente de 20 vezes maior) e sendo mesclada com a aproximação anterior para a obtenção de um resultado preciso final.[080] Each tracking is performed twice and at two different levels of the pyramid before obtaining the final camera parameters. First, the convergence of the algorithm is greatly increased by computing an approximation of the camera position and orientation across a coarse level of the image pyramid, and using a subset of the natural markers. Secondly, the same computation is obtained on a much larger set (approximately 20 times larger) and being merged with the previous approximation to obtain a final accurate result.

2.1.4.4 Falhas de Rastreamento e Recuperação2.1.4.4 Tracking and Recovery Failures

[081] Durante um rastreamento de uma câmera em um cenário real, muitas situações podem acontecer nas quais o rastreamento visual se perde. Isto ocorre frequentemente, por exemplo, quando pessoas permanecem na frente da câmera de prova ou a barra fica simplesmente oculta por objetos. Em todos os casos em que perdemos o rastreamento visual, três tarefas diferentes de recuperação são iniciadas ao mesmo tempo, e aquela que em primeiro lugar consegue uma recuperação, é aceita.[081] During a camera tracking in a real scenario, many situations can occur in which visual tracking is lost. This often occurs, for example, when people stand in front of the test camera or the bar is simply hidden by objects. In all cases where we lose visual tracking, three different recovery tasks are started at the same time, and the one that achieves a recovery first is accepted.

[082] Utilizando a função de previsão do Filtro Kalman Estendido (veja a seção 2.3.2), é possível tentar primeiramente uma recuperação da posição da câmera iniciando uma busca a partir dos parâmetros EKF previstos. Com efeito, como o EKF consiste de um algoritmo de previsão- correção, ele sempre tenta adivinhar qual será a próxima posição da câmera antes que ela realmente se mova para essa posição. Quando a previsão está correta é portanto possível obter uma recuperação instantânea. Na prática, esta previsão funciona muito bem quando a câmera de prova está oculta e quando o sistema está realizando o rastreando utilizando o IMU. No entanto, o mesmo muitas vezes apresenta falhas quando também houve uma translação significativa da câmera de filmagem ao ocultar as câmeras de prova.[082] Using the Extended Kalman Filter prediction function (see section 2.3.2), it is possible to first attempt to recover the camera position by starting a search from the predicted EKF parameters. In effect, as EKF consists of a prediction-correction algorithm, it always tries to guess what the camera's next position will be before it actually moves to that position. When the prediction is correct it is therefore possible to obtain an instant recovery. In practice, this prediction works very well when the test camera is hidden and when the system is tracking using the IMU. However, it often fails when there has also been a significant translation of the filming camera when hiding the evidence cameras.

[083] O segundo nível de recuperação é muito diferente. Cada ponto característico possui um descritor de rotação invariável associado ao mesmo, seguindo a técnica ORB (Oriented FAST and Rotated BRIEF) [18]. O mesmo baseia-se em primeiro lugar na famosa técnica FAST [16] para computar características de multiescala (ou seja, nos diferentes níveis da pirâmide de imagem, veja a Figura 4), associadas a uma escala Harris [5]. A orientação do descritor é computada com base em um centroide de intensidade. O segundo descritor é o rBRIEF, que consiste de um descritor rBRIEF [2] rotacionado seguindo a orientação do ponto chave. Com a utilização destes dois descritores, a nossa técnica é capaz de realizar a recuperação a partir de posições em que as técnicas regulares de rastreamento visual falham. Por exemplo, vamos assumir que perdemos o rastreamento visual por qualquer motivo. Suponha que agora executamos a translação e a rotação da câmera em 90 graus em torno do eixo Z enquanto ainda está perdida. A imagem atual visualizada pela câmera nunca foi aprendida antes, porém a câmera ainda está apontando para uma direção na qual adicionamos posições chave e pontos chave anteriormente aprendidos. No entanto, como um processo de recuperação regular não é de rotação invariável, estes sistemas não conseguem recuperar o rastreamento. No nosso caso, a utilização de descritores de rotação invariáveis associados a cada ponto chave permite uma rápida recuperação (utilizando uma técnica de correspondência de força bruta) tão logo a câmera de filmagem esteja apontando para algum lugar desta posição anterior (a rotação não importa).[083] The second level of recovery is very different. Each characteristic point has an invariable rotation descriptor associated with it, following the ORB (Oriented FAST and Rotated BRIEF) technique [18]. It is firstly based on the famous FAST technique [16] to compute multiscale features (i.e., at different levels of the image pyramid, see Figure 4), associated with a Harris scale [5]. The descriptor orientation is computed based on an intensity centroid. The second descriptor is rBRIEF, which consists of an rBRIEF [2] descriptor rotated following the orientation of the key point. Using these two descriptors, our technique is able to perform recovery from positions where regular visual tracking techniques fail. For example, let's assume we lose visual tracking for whatever reason. Suppose we now translate and rotate the camera by 90 degrees around the Z axis while it is still lost. The current image viewed by the camera has never been learned before, but the camera is still pointing in a direction in which we have added previously learned key positions and key points. However, as a regular recovery process is not rotation invariant, these systems cannot recover the trace. In our case, the use of invariant rotation descriptors associated with each key point allows a quick recovery (using a brute force matching technique) as soon as the filming camera is pointing somewhere from this previous position (the rotation does not matter). .

[084] Finalmente, a terceira tarefa de recuperação é mais brutal e computacionalmente intensiva. Um elipsoide (elipse 3D) é construído em torno da última posição conhecida da câmera. Este elipsoide tem um tamanho feito da covariância do parâmetro computado pelo Filtro Kalman Estendido. Múltiplas amostras são então geradas no interior do elipsoide seguindo a covariância de erro do EKF. Um algoritmo RANSAC é aplicado a este conjunto com o propósito de encontrar a melhor coincidência possível para a posição e orientação procuradas da câmera. 2.2 Zoom Dinâmico, Foco e Iris[084] Finally, the third retrieval task is more brutal and computationally intensive. An ellipsoid (3D ellipse) is constructed around the last known position of the camera. This ellipsoid has a size made up of the parameter covariance computed by the Extended Kalman Filter. Multiple samples are then generated within the ellipsoid following the EKF error covariance. A RANSAC algorithm is applied to this set with the purpose of finding the best possible match for the sought-after camera position and orientation. 2.2 Dynamic Zoom, Focus and Iris

[085] Durante o processo de rastreamento global, um diretor ou um diretor de fotografia, por exemplo, pode decidir dar um zoom ou foco em um personagem/objeto da cena. A nossa tecnologia integra vários codificadores regulares tais como aqueles propostos pela Arri, mas também é capaz de trabalhar com qualquer outro codificador para capturar um valor de zoom, foco e íris em tempo real. Este processo possibilita a aplicação de zoom dinâmico e profundidade de campo em uma cena. 2.3 Técnica de Fusão de Sensores[085] During the global tracking process, a director or director of photography, for example, may decide to zoom or focus on a character/object in the scene. Our technology integrates several regular encoders such as those proposed by Arri, but is also capable of working with any other encoder to capture a zoom, focus and iris value in real time. This process makes it possible to apply dynamic zoom and depth of field to a scene. 2.3 Sensor Fusion Technique

[086] Todas as técnicas sem marcadores baseadas em abordagens puramente ópticas podem falhar no rastreamento em muitas situações. O caso mais comum é a não existência de marcadores naturais suficientes na visualização atual da câmera de prova. Em situações ideais isto raramente acontece, pois o usuário normalmente presta atenção para não obstruir a lente com a mão, por exemplo. Em cenários reais, esta situação acontece simplesmente porque a equipe de câmera muitas vezes precisa substituir as lentes, modificar o equipamento de câmera, limpar as lentes, mover o equipamento de filmagem para outro lugar, etc. Em uma técnica regular baseada em marcadores e sem marcadores (baseada em fluxo óptico), esta situação impede que o sistema de rastreamento encontre uma boa estimativa de posição e rotação da câmera.[086] All markerless techniques based on purely optical approaches may fail to track in many situations. The most common case is that there are not enough natural markers in the current proof camera view. In ideal situations this rarely happens, as the user usually pays attention not to obstruct the lens with their hand, for example. In real-life scenarios, this situation happens simply because the camera crew often needs to replace lenses, modify camera equipment, clean lenses, move filming equipment to another place, etc. In a regular marker-based and markerless (optical flow-based) technique, this situation prevents the tracking system from finding a good estimate of camera position and rotation.

[087] Nós criamos um método de fusão de sensores que corrige automaticamente a posição e a rotação de uma câmera de prova utilizando múltiplos sensores: câmeras de prova, giroscópio, acelerômetro e magnetômetro. Essa técnica é o coração da nossa tecnologia. A primeira etapa consiste da calibração do sistema, ou seja, da calibração do 9-DOF IMU em relação às câmeras de prova. Este método consiste de uma etapa crítica para assegurar que todos os sensores realmente funcionem da mesma maneira. A relação entre o sensor 9-DOF e as câmeras de prova se encontra próxima a uma técnica denominada de mão-olho [20], porém nós adicionamos várias contribuições científicas interessantes para torná-la compatível com o nosso algoritmo de rastreamento.[087] We created a sensor fusion method that automatically corrects the position and rotation of a test camera using multiple sensors: test camera, gyroscope, accelerometer and magnetometer. This technique is the heart of our technology. The first step consists of calibrating the system, that is, calibrating the 9-DOF IMU in relation to the test cameras. This method is a critical step to ensure that all sensors actually work in the same way. The relationship between the 9-DOF sensor and the test cameras is close to a technique called hand-eye [20], but we added several interesting scientific contributions to make it compatible with our tracking algorithm.

2.3.1 Calibração da Câmera de Prova - IMU2.3.1 Calibration of the Test Chamber - IMU

[088] Vamos considerar a transformação RIMU^ C que computa a rotação do sensor 9-DOF (IMU) para uma das duas câmeras de prova (C). RIMU é conhecida em sua base local e Rc é também conhecida em sua própria base local. O objetivo é solucionar RIMU^ C para Rc = RIMU^ C • RIMU.[088] Let us consider the RIMU^ C transformation that computes the rotation of the 9-DOF sensor (IMU) for one of the two test cameras (C). RIMU is known in its local base and Rc is also known in its own local base. The objective is to solve RIMU^ C for Rc = RIMU^ C • RIMU.

[089] É assegurado que RIMU^ C seja sempre constante à medida que a relação entre IMU e as câmeras não se modifique com o decorrer do tempo (elas são ambas acopladas à barra estática da câmera).[089] It is ensured that RIMU^ C is always constant as the relationship between IMU and cameras does not change over time (they are both coupled to the camera's static bar).

[090] Portanto, é possível escrever para ti, i [0, n]: [090] Therefore, it is possible to write for ti, i [0, n]:

[091] Das equações anteriores podemos deduzir: [091] From the previous equations we can deduce:

[092] A medição da rotação dada pelo giroscópio e o rastreamento visual são sobrepostas ao mesmo. Portanto, é lógico considerar que RiMu e Rc descrevem os mesmos ângulos de rotação, porém em diferentes bases. Utilizando o mapa log da matriz de rotação em Algebra Lie definida como Log : SO(3) ^ so(3), é possível converter a matriz Rc em uma representação de eixo-angulo com tr( Rc)sendo o traço da matriz, tal como .[092] The rotation measurement given by the gyroscope and visual tracking are superimposed on it. Therefore, it is logical to consider that RiMu and Rc describe the same rotation angles, but in different bases. Using the log map of the rotation matrix in Lie Algebra defined as Log : SO(3) ^ so(3), it is possible to convert the Rc matrix into an axis-angle representation with tr( Rc) being the matrix trace, such as .

[093] Nós agora podemos escrever o seguinte sistema de equação sobredeterminado: [093] We can now write the following overdetermined equation system:

[094] Como para qualquer sistema sobredeterminado, é possível solucionar a matriz retangular anterior utilizando uma Decomposição de Valor Singular (SVD) como S = UrVt, com U sendo a matriz m x n dos vetores próprios S • St, V a matriz m x n dos vetores próprios St • S e D a matriz diagonal n x n dos valores singulares classificados de S.[094] As for any overdetermined system, it is possible to solve the previous rectangular matrix using a Singular Value Decomposition (SVD) as S = UrVt, with U being the m x n matrix of the eigenvectors S • St, V the m x n matrix of the eigenvectors St • S and D the n x n diagonal matrix of the sorted singular values of S.

[095] A solução da equação anterior é sujeito a interferências provenientes de medições. Por essa razão aplicamos um esquema de minimização Levenberg-Marquardt para minimizar o erro: [095] The solution to the previous equation is subject to interference from measurements. For this reason we apply a Levenberg-Marquardt minimization scheme to minimize the error:

[096] Agora que temos uma relação matemática entre a IMU e as câmeras de prova, é possível injetar todas as medições no Filtro Kalman Estendido, com o propósito de extrair o melhor de cada sensor e computar a Rotação e a Translação da câmera de filmagem.[096] Now that we have a mathematical relationship between the IMU and the test cameras, it is possible to inject all measurements into the Extended Kalman Filter, with the purpose of extracting the best from each sensor and computing the Rotation and Translation of the filming camera .

2.3.2 Filtro Kalman Estendido2.3.2 Extended Kalman Filter

[097] O Filtro Kalman Estendido (EKF) consiste de uma técnica muito conhecida em áreas de pesquisa Aeroespacial e Robótica para mesclar diferentes dados provenientes de múltiplos sensores diferentes. O mencionado filtro é essencialmente utilizado para estimar os parâmetros de um sistema não linear a partir de medições ruidosas computando um erro de estimativa e aplicando duas fases; previsão e correção. Na fase de previsão, o filtro Kalman computa os novos parâmetros assim como um erro relacionado a uma etapa de tempo, utilizando os parâmetros e o erro estimado na etapa de tempo anterior. A fase de correção atualiza a previsão com a utilização de novas medições ruidosas. Estas novas medições permitem computar novos parâmetros estimados e o erro dos parâmetros previstos, e erros. Se o erro for maior do que um dado limiar, os parâmetros são corrigidos.[097] The Extended Kalman Filter (EKF) consists of a well-known technique in Aerospace and Robotics research areas for merging different data from multiple different sensors. The aforementioned filter is essentially used to estimate the parameters of a nonlinear system from noisy measurements by computing an estimation error and applying two phases; prediction and correction. In the prediction phase, the Kalman filter computes the new parameters as well as an error related to a time step, using the parameters and the error estimated in the previous time step. The correction phase updates the forecast using new noisy measurements. These new measurements allow computing new estimated parameters and the error of the predicted parameters, and errors. If the error is greater than a given threshold, the parameters are corrected.

[098] No nosso caso presente, o EKF é desenvolvido de uma maneira muito específica, pois temos várias medições relacionadas a rotações 3D (giroscópio + câmeras de prova) e que não podem ser interpoladas facilmente.[098] In our present case, the EKF is developed in a very specific way, as we have several measurements related to 3D rotations (gyroscope + test cameras) and which cannot be interpolated easily.

[099] A ideia de um EKF para a nossa tecnologia é a de aplicar algum tipo de valor confiança para cada medição (câmera de prova, giroscópio, magnetômetro, acelerômetro) e corrigir de forma iterativa a posição e a rotação estimada atual utilizando o sensor que obtiver a melhor pontuação de confiança. Na prática, o EKF é um pouco mais complicado do que isso, e pode ser descrito matematicamente como um algoritmo de previsão-correção para sistemas não-lineares. Considerando-se um vetor de estado X (t) em uma etapa de tempo t, o algoritmo aplica o modelo físico atual das nossas equações de movimento para prever um novo estado do vector X (t) se tornando X(t)?f. A fase de correção então gera um novo vetor de estado X(t+?t)em uma etapa de tempo t + ?t.[099] The idea of an EKF for our technology is to apply some type of confidence value to each measurement (test camera, gyroscope, magnetometer, accelerometer) and iteratively correct the position and current estimated rotation using the sensor which gets the best confidence score. In practice, EKF is a little more complicated than this, and can be described mathematically as a prediction-correction algorithm for nonlinear systems. Considering a state vector X (t) at a time step t, the algorithm applies the current physical model of our equations of motion to predict a new state of the vector X (t) becoming X(t)?f. The correction phase then generates a new state vector X(t+?t) in a time step t + ?t.

[0100] O modelo EKF pode ser escrito da seguinte forma, no nosso caso: com h sendo as equações de estado para os nossos observáveis e Xt sendo o vetor de Translação, Rotação, Velocidade de Translação e Velocidade Angular na base global, e f a função de atualização do vetor de estado. B é o ruído global no sistema. [0100] The EKF model can be written as follows, in our case: with h being the state equations for our observables and B is the global noise in the system.

[0101] Se por um lado considerarmos as medições provenientes do rastreamento visual sem marcadores (ou seja, no caso das câmeras de prova) como hwitness, e por outro lado os requerimentos provenientes do IMU como hIMU, podemos dizer que h é produzido de dois tipos de observáveis, hwitness e hIMU. Por definição, h consiste de uma função trivial e a sua forma geral é dada pela identificação: Ywitness Dependendo do tipo de sensores que estão enviando as medições, podemos agora escrever duas versões diferentes de h e com isto reescrever a equação 11 para o caso do rastreamento visual como: sendo os observáveis y (y e ^12) do rastreamento visual em uma etapa de tempo t para a Translação (T, em metros),Rotação (R, em radianos)Velocidade (V, em m^s-1) e Velocidade Angular (Q, em rad • s-1).[0101] If on the one hand we consider the measurements coming from visual tracking without markers (i.e., in the case of test cameras) as hwitness, and on the other hand the requirements coming from the IMU as hIMU, we can say that h is produced from two types of observables, hwitness and hIMU. By definition, h consists of a trivial function and its general form is given by the identification: Ywitness Depending on the type of sensors that are sending the measurements, we can now write two different versions of h and thus rewrite equation 11 for the case of visual tracking as: the observables being y (ye ^12) of visual tracking in a time step t for Translation (T, in meters), Rotation (R, in radians) Velocity (V, in m^s-1) and Angular Velocity ( Q, in rad • s-1).

[0102] No caso no qual o sensor é um giroscópio, a equação 11 se torna: sendo os observáveis da IMU em uma etapa de tempo t para a Rotação (R, em radianos) e a Velocidade Angular (ß, em rad^s-1). De fato, não existe translação ou velocidade computável utilizando um sensor 9-DOF. com (t)?fsendo o vetor de estado previsto na etapa de tempo t + ?t, e X(t)o vetor de estado estimado na etapa de tempo t.[0102] In the case in which the sensor is a gyroscope, equation 11 becomes: being the IMU observables at a time step t for Rotation (R, in radians) and Angular Velocity (ß, in rad^s-1). In fact, there is no computable translation or velocity using a 9-DOF sensor. with (t)?f being the predicted state vector at time step t + ?t, and X(t) the estimated state vector at time step t.

[0103] A função f consiste da função de atualização do vetor de estado, sendo definida como: [0103] Function f consists of the state vector update function, being defined as:

[0104] Observe que a função de atualização regular do Filtro Kalman não é utilizável para o nosso caso, pois as Matrizes de Rotação não podem ser interpoladas e escritas de uma forma linear A • X + B.[0104] Note that the regular update function of the Kalman Filter is not usable for our case, as the Rotation Matrices cannot be interpolated and written in a linear A • X + B form.

Etapa de PrevisãoPrediction Step

[0105] A etapa de previsão é escrita com a utilização da definição do filtro Kalman: com: • Pf t a matriz covariante do erro previsto na etapa de tempo t + ?t • Pt a matriz covariante do erro previsto na etapa de tempo t • A matriz de transição tal como matriz jacobiana de f e computada como a soma das diferenças finitas: • Q é a matriz covariante 12 x 12 do ruído do vetor de estado. O ruído do vetor de estado de translação é heuristicamente colocado em 1.e-2, bem como ruído do vetor de estado de rotação em 1.e-3. [0105] The prediction step is written using the Kalman filter definition: with: • Pf the covariant matrix of the predicted error at time step t + ?t • Pt the covariant matrix of the predicted error at time step t • The transition matrix as Jacobian matrix of fe computed as the sum of finite differences: • Q is the 12 x 12 covariant matrix of the state vector noise. Translation state vector noise is heuristically placed in 1.e-2, as well as rotation state vector noise in 1.e-3.

Etapa de CorreçãoCorrection Step

[0106] Seguindo a definição de Kalman, a correção em nosso caso é escrita como: com: • I a matriz de identidade, • K ( t +?t) o ganho Kalman na etapa de tempo t + ?t, • H sendo a matriz jacobiana da função h, sendo a própria hwitness ou hIMU dependendo do sensor atualmente selecionado. [0106] Following Kalman's definition, the correction in our case is written as: with: • I the identity matrix, • K ( t +?t) the Kalman gain at time step t + ?t, • H being the Jacobian matrix of the h function, being hwitness itself or hIMU depending on the currently selected sensor .

[0107] No nosso caso, a jacobiana é computada como uma soma de diferenças finitas: • U(t + ?t) consiste da matriz covariante das medições de ruídos do sensor atualmente selecionado (câmera de prova ou IMU). Este valor é modificado dependendo da qualidade da medição (valor de confiança). No caso de um rastreamento visual, o mesmo baseia-se no erro de rastreamento e: [0107] In our case, the Jacobian is computed as a sum of finite differences: • U(t + ?t) consists of the covariant matrix of noise measurements from the currently selected sensor (test camera or IMU). This value is modified depending on the quality of the measurement (confidence value). In the case of visual tracking, it is based on tracking error and:

[0108] É inclusive mais fácil determinar U (t + ? t) para o IMU pois os erros de ruído são diretamente fornecidos pelos fabricantes de todos os sensores. A equação anterior é diretamente substituída por esses erros. • P (t + ? t) representa a matriz de covariância de erro na etapa de tempo t + ? t. • V e Q consistem da representação matricial do vetor de velocidade V e da velocidade angular Q, respectivamente. • Jwitness|IMU da equação 20 também está escrito seguindo os tipos de sensores: consistem da medição da Translação, Rotação, Velocidade e Velocidade angular, respectivamente. J.(a e {R, T, V, O}) é conhecido como a inovação Kalman. 2.4 Reconstrução 3D e Chaveamento de Profundidade[0108] It is even easier to determine U (t + ? t) for the IMU as noise errors are directly provided by the manufacturers of all sensors. The previous equation is directly replaced by these errors. • P (t + ? t) represents the error covariance matrix at time step t + ? t. • V and Q consist of the matrix representation of the velocity vector V and the angular velocity Q, respectively. • Jwitness|IMU from equation 20 is also written following the types of sensors: consist of measuring Translation, Rotation, Speed and Angular Speed, respectively. J.(ae {R, T, V, O}) is known as the Kalman innovation. 2.4 3D Reconstruction and Depth Keying

[0109] A reconstrução 3D em tempo real é conseguida com a utilização de um sensor de faixa 3D integrado em nossa barra da câmera. Este sensor de faixa pode consistir de um dispositivo de luz estruturada (Microsoft Kinect, Asus Xtion, por exemplo), ou de uma câmera de tempo-de-voo (tal como uma TigerEye da Advanced Scientific Concept), também conhecida como Flash Lidar. Ambas as técnicas apresentam limitações e a nossa tecnologia utiliza por enquanto apenas um sensor de reduzido alcance Asus Xtion. Como é habitual, uma etapa de calibração é necessária para determinar a posição do Asus Xtion relativamente às câmeras de prova. Nós simplesmente utilizamos exatamente a mesma técnica para as câmeras de prova como a do alinhamento da filmagem (veja a seção 2.1.4.2). Como o sensor de faixa possui uma câmera com escala de cinzas, utilizamos o nosso padrão de calibração costumeiro para que o mesmo seja detectado em ambas as câmeras: a câmera do sensor de faixa e uma de nossas câmeras de prova. Esse processo é bastante simples e semelhante ao 2.1.4.2.[0109] Real-time 3D reconstruction is achieved using a 3D range sensor integrated into our camera bar. This range sensor may consist of a structured light device (Microsoft Kinect, Asus Xtion, for example), or a time-of-flight camera (such as a TigerEye from Advanced Scientific Concept), also known as Flash Lidar. Both techniques have limitations and our technology currently uses only a low-range Asus Xtion sensor. As usual, a calibration step is necessary to determine the position of the Asus Xtion relative to the test cameras. We simply use exactly the same technique for the proof cameras as film alignment (see section 2.1.4.2). As the range sensor has a grayscale camera, we use our usual calibration standard so that it is detected on both cameras: the range sensor camera and one of our test cameras. This process is quite simple and similar to 2.1.4.2.

[0110] O sensor de faixa é utilizado com dois propósitos em nossa tecnologia. Por um lado, o mesmo auxilia a eliminar pontos característicos ruins muito afastados para trás de objetos, por exemplo. Uma simples reprojeção dos pontos característicos sobre o mapa de profundidade do sensor de faixa pode informar se o ponto característico é correto ou não. Durante o rastreamento estereoscópico (veja a seção 2.5), cada ponto criado pela geometria epipolar ainda pode estar mais próximo ou mais afastado do que a estimativa fornecida pelas linhas epipolares. Nós comparamos o ponto 3D reconstruído com o valor corrente de sua reprojeção sobre o mapa de profundidade do sensor de faixa, para melhorar a sua precisão ou simplesmente rejeitá-lo.[0110] The range sensor is used for two purposes in our technology. On the one hand, it helps to eliminate bad characteristic points too far behind objects, for example. A simple reprojection of the feature points onto the swath sensor depth map can tell you whether the feature point is correct or not. During stereoscopic tracking (see section 2.5), each point created by the epipolar geometry may still be closer or further away than the estimate provided by the epipolar lines. We compare the reconstructed 3D point with the current value of its reprojection onto the swath sensor depth map, to improve its accuracy or simply reject it.

[0111] A segunda utilização do sensor de faixa se baseia no próprio mapa de profundidade. Como o mesmo fornece a profundidade com uma distância máxima de 12 m, somos capazes de ocluir todas as pessoas (atores) no cenário dentro deste intervalo pelos personagens/objetos virtuais e vice-versa. Este processo é denominado oclusões dinâmicas e levanta outro nível de realismo para efeitos visuais em filmes e radiodifusão ao vivo. A nossa tecnologia utiliza o sinal principal da câmera de filmagem (isto também poderia ser obtido adicionando-se uma câmera de prova adicional de alta resolução) para melhorar a resolução do sensor de faixa, com a reprojeção da profundidade sobre a câmera de filmagem e o refinamento dos resultados (realce de bordas). Uma tecnologia deste tipo é capaz de fornecer chaveamento de profundidade em tempo real, eliminando, portanto, a utilização de uma tela de verde de ligação especialmente quando um sensor de faixa mais potente é utilizado (Flash Lidar). 2.5 Técnica Estereoscópica sem Marcadores[0111] The second use of the range sensor is based on the depth map itself. As it provides depth with a maximum distance of 12 m, we are able to occlude all people (actors) in the scene within this range by virtual characters/objects and vice versa. This process is called dynamic occlusions and raises another level of realism for visual effects in film and live broadcasting. Our technology uses the main signal from the film camera (this could also be achieved by adding an additional high-resolution test camera) to improve the resolution of the range sensor, with depth reprojection onto the film camera and the refinement of results (edge enhancement). A technology of this type is capable of providing real-time depth switching, therefore eliminating the use of a green screen connection especially when a more powerful range sensor is used (Flash Lidar). 2.5 Markerless Stereoscopic Technique

[0112] A técnica descrita anteriormente utilizando uma abordagem monoscópica na verdade não é suficientemente eficaz em situações reais. Como a mesma requer um objeto real conhecido a ser utilizado como um registro para computar a dimensão, a orientação e a posição do mundo, frequentemente é difícil utilizá-la em filmes, quando muitas pessoas estão sempre em seu caminho quando você está tentando registrar (detectar) o objeto. Porém, a principal limitação desta abordagem monoscópica reside no fato de que a mesma necessita inspecionar a cena. Como uma homografia deve ser utilizada para a inicialização do sistema, este fato implica que um técnico tenha que se deslocar ao local para iniciar a inspeção do cenário. Na prática, esta operação é raramente realizada com sucesso, pois as pessoas que trabalham no cenário nunca deixam o local antes dos últimos segundos.[0112] The previously described technique using a monoscopic approach is actually not effective enough in real situations. Because it requires a known real object to be used as a record to compute the size, orientation, and position of the world, it is often difficult to use in movies when many people are always in your way when you are trying to record ( detect) the object. However, the main limitation of this monoscopic approach lies in the fact that it requires inspecting the scene. As a homography must be used to initialize the system, this fact implies that a technician has to travel to the location to begin inspecting the scenario. In practice, this operation is rarely carried out successfully, as the people working on the scene never leave the scene before the last few seconds.

[0113] Nós construímos uma abordagem estereoscópica para eliminar esta limitação, trazendo com isto a noção totalmente original de inspeção instantânea e rastreamento. 2.5.1 Inspeção Instantânea[0113] We have constructed a stereoscopic approach to eliminate this limitation, bringing with it the entirely unique notion of instantaneous inspection and tracking. 2.5.1 Instant Inspection

[0114] A técnica estereoscópica embarcada no rastreamento da câmera consiste de um importante passo para frente na comparação com qualquer outra técnica, incluindo a nossa abordagem monoscópica descrita anteriormente. De fato, a utilização de 2 câmeras de prova pré-calibradas proporciona diversas vantagens. A primeira consiste da Inspeção Instantânea. Diferentemente da técnica descrita na abordagem monoscópica, não existe a pesquisa prévia requerida para a cena. Como a distância exata entre as duas câmeras de prova é perfeitamente conhecida, e como as mesmas são sincronizadas utilizando seus recursos internos de hardware de genlock, somos capazes de obter uma nuvem de pontos instantaneamente sem mover a barra. Então a homografia descrita no paragrafo não mais utilizada, pois a reconstrução 3D de um ponto é realizada pelas duas câmeras de prova através da teoria da Estereovisão. O segundo ponto importante é que não existe a necessidade de uma escala manual. Durante a captura dos dois fluxos de vídeo, executamos um esquema de minimização Levenberg-Marquardt para minimizar a soma do erros dos pixels, entre a projeção do ponto 3D estimada pela geometria epipolar e o ponto característico 2D detectado no sinal de vídeo corrente. 2.5.2 Registro Automático[0114] The stereoscopic technique embedded in camera tracking is an important step forward compared to any other technique, including our previously described monoscopic approach. In fact, the use of 2 pre-calibrated test cameras provides several advantages. The first consists of Instant Inspection. Unlike the technique described in the monoscopic approach, there is no prior research required for the scene. As the exact distance between the two test cameras is perfectly known, and as they are synchronized using their internal genlock hardware capabilities, we are able to obtain a point cloud instantly without moving the bar. Therefore, the homography described in the paragraph is no longer used, as the 3D reconstruction of a point is carried out by the two test cameras using the Stereovision theory. The second important point is that there is no need for a manual scale. During the capture of the two video streams, we run a Levenberg-Marquardt minimization scheme to minimize the sum of pixel errors between the 3D point projection estimated by the epipolar geometry and the 2D feature point detected in the current video signal. 2.5.2 Automatic Registration

[0115] A utilização de uma pesquisa instantânea levanta, no entanto, uma nova questão, que é a impossibilidade da utilização de um objeto de registro como o que foi detectado na abordagem monoscópica. A principal razão desta limitação surge do fato de que a barra da câmera encontra- se diretamente conectada à câmera de filmagem, e não é possível pedir que a equipe de filmagem mova a sua câmera em torno para conhecer o objeto de registro. É por esse motivo que nós adicionamos um segundo registro automático, que não requer qualquer objeto de registro físico a ser adicionado à cena. Ele exige, no entanto, que o usuário tenha duas interações diferentes com a nuvem de pontos: a seleção de ponto para informar ao sistema qual é o ponto que pretendemos utilizar como uma referência de solo, e uma rotação manual em torno do eixo Y (vertical) para orientar corretamente o conteúdo CG em relação à cena.[0115] The use of an instant search raises, however, a new issue, which is the impossibility of using a recording object like the one detected in the monoscopic approach. The main reason for this limitation arises from the fact that the camera bar is directly connected to the filming camera, and it is not possible to ask the film crew to move their camera around to see the recording object. It is for this reason that we have added a second automatic registration, which does not require any physical registration objects to be added to the scene. It requires, however, that the user has two different interactions with the point cloud: point selection to inform the system which point we intend to use as a ground reference, and manual rotation around the Y axis ( vertical) to correctly orient the CG content in relation to the scene.

[0116] Com o propósito de operar com apenas estas duas interações de usuário muito rápidas e muito simples, devemos então computar todos os outros graus esquerdos de liberdade, significando a computação de uma base ortonormal tendo um eixo Y perfeitamente vertical e um dimensionamento correto. A nossa tecnologia simplesmente aproveita o acelerômetro embutido na barra para computar a orientação da gravidade, isto é, o eixo Y. O magnetômetro fornece a direção norte e, portanto, fornece um vector aproximado que nos permite computar uma base ortonormal utilizando produtos cruzados regulares.[0116] For the purpose of operating with just these two very fast and very simple user interactions, we must then compute all other left degrees of freedom, meaning computing an orthonormal basis having a perfectly vertical Y axis and correct scaling. Our technology simply takes advantage of the accelerometer built into the bar to compute the orientation of gravity, i.e. the Y axis. The magnetometer provides the north direction and therefore provides an approximate vector that allows us to compute an orthonormal basis using regular cross products.

[0117] O dimensionamento é ainda muito mais fácil de computar. O mesmo é totalmente instantâneo e automático e não necessita de qualquer interação do usuário. Como a distância entre as câmeras de prova é conhecida com exatidão, todos os pontos 3D reconstruídos diretamente possuem a dimensão correta, e desta maneira não existe nenhum objeto adicional a ser detectado, como na estrutura pura e regular de algoritmos de movimento (SFM). 2.5.3 Rastreamento Instantâneo[0117] Scaling is still much easier to compute. It is completely instantaneous and automatic and does not require any user interaction. As the distance between the test cameras is known exactly, all directly reconstructed 3D points have the correct dimension, and in this way there is no additional object to be detected, as in the pure regular framework of motion (SFM) algorithms. 2.5.3 Instant Tracking

[0118] O processo de rastreamento é ligeiramente diferente do descrito para a abordagem monoscópica na seção 2.1.4.3. Cada novo ponto é criado utilizando-se a geometria epipolar, que assegura que a dimensão e a profundidade de um ponto característico 3D sejam sempre corretas. Isto significa que, assim que o nosso sistema é iniciado, o mesmo já está rastreando graças a essa inspeção precisa, de altíssima velocidade e instantânea.[0118] The tracking process is slightly different from that described for the monoscopic approach in section 2.1.4.3. Each new point is created using epipolar geometry, which ensures that the dimension and depth of a 3D feature point are always correct. This means that, as soon as our system starts, it is already tracking thanks to this precise, high-speed and instantaneous inspection.

[0119] Nós computamos a união de todos os pontos 3D reprojetados e visualizados a partir das câmeras da esquerda e da direita, para assegurar uma estabilidade máxima ao processo de rastreamento. A nuvem de pontos é simplesmente gerada pela interseção 3D das linhas epipolares combinadas com o descritor ORB das características coincidentes (veja a seção 2.1.4.4). A correspondência de características e o esquema de minimização global permanecem semelhantes aos utilizados na abordagem monoscópica.[0119] We compute the union of all 3D points reprojected and viewed from the left and right cameras to ensure maximum stability of the tracking process. The point cloud is simply generated by the 3D intersection of the epipolar lines combined with the ORB descriptor of the coincident features (see section 2.1.4.4). The feature matching and global minimization scheme remain similar to those used in the monoscopic approach.

[0120] Com o propósito de poder contar com a inspeção instantânea, também modificamos significativamente a maneira pela qual os novos pontos são construídos na nuvem de pontos. Adicionalmente à reconstrução estereoscópica do ponto, adicionamos a noção de dispersão de grade e de uniformidade de pontos característicos. Durante um algoritmo de rastreamento regular, um algoritmo de detecção de recurso 2D é lançado e pontos são reconstruídos em 3D como descrito na seção 2.1.3.3 e 2.1.4.4. No entanto, muitos destes pontos não são confiáveis (profundidade incorreta, pontos nas bordas, pontos móveis, pontos de sombra, etc.), e o algoritmo tende a aprender um grande número de pontos em áreas de alto contraste e nenhum em áreas de baixo contraste. Este processo gera uma grande quantidade de ruídos nos dados de rastreamento, que dão a sensação de que a câmera está balançando. A técnica de dispersão de grade que criamos tenta distribuir os marcadores naturais aprendidos pelo sistema de uma maneira praticamente uniforme. Primeiro, começamos utilizando um limiar extremamente alto para gerar um máximo de pontos característicos. Em seguida reduzimos o número de pontos característicos de acordo com um limiar fornecido pelo usuário (grade 16 x 16, 2 amostras por célula, por exemplo), utilizando uma pontuação de Harris (escolhemos os 2 melhores pontos, por exemplo). Cada ponto apresenta, portanto, um critério de qualidade utilizado para informar o quão confiável o mesmo é. Se a uniformidade não for boa o suficiente, o sistema também muda o limiar de contraste localmente para garantir a possibilidade da captura de pontos, mesmo em áreas de baixo contraste. O fato de que o nosso algoritmo distribui os pontos característicos através da imagem, também impede que o sistema perca o rastreamento facilmente. Na verdade, as abordagens monoscópicas normais sem uma técnica de dispersão de grade como a nossa, podem ter uma grande quantidade de pontos de rastreamento na parte inferior esquerda da imagem, por exemplo. Se um ator entrar nesta área, todos estes marcadores naturais serão ocultados e o rastreamento será instantaneamente perdido, o que é algo que não acontece em nosso caso, pois distribuímos as características em toda a imagem. 2.6 Aumentando o Mundo Real 2.6.1 O Problema de Retardo da Câmera de Prova[0120] In order to be able to rely on instant inspection, we have also significantly modified the way in which new points are constructed in the point cloud. In addition to the stereoscopic point reconstruction, we add the notion of grid dispersion and characteristic point uniformity. During a regular tracking algorithm, a 2D feature detection algorithm is launched and points are reconstructed in 3D as described in section 2.1.3.3 and 2.1.4.4. However, many of these points are unreliable (incorrect depth, edge points, moving points, shadow points, etc.), and the algorithm tends to learn a large number of points in high-contrast areas and none in low-contrast areas. contrast. This process generates a large amount of noise in the tracking data, which gives the sensation that the camera is shaking. The grid sparsity technique we created attempts to distribute the natural markers learned by the system in a roughly uniform manner. First, we start by using an extremely high threshold to generate a maximum of feature points. We then reduce the number of characteristic points according to a threshold provided by the user (16 x 16 grid, 2 samples per cell, for example), using a Harris score (we choose the 2 best points, for example). Each point therefore presents a quality criterion used to inform how reliable it is. If the uniformity is not good enough, the system also changes the contrast threshold locally to ensure that points can be captured even in low contrast areas. The fact that our algorithm distributes the characteristic points throughout the image also prevents the system from easily losing track. In fact, normal monoscopic approaches without a grid scattering technique like ours may have a large amount of tracking points in the lower left part of the image, for example. If an actor enters this area, all these natural markers will be hidden and tracking will be instantly lost, which is something that does not happen in our case, as we distribute the features throughout the image. 2.6 Augmenting the Real World 2.6.1 The Proof Camera Delay Problem

[0121] Como a câmera de filmagem e as câmeras de prova rodam em velocidades diferentes, as mesmas podem gerar diferentes retardos no processo de aquisição de quadros. A câmera de filmagem é a que realmente cria de longe o maior retardo, forçando-nos a computá-lo com o propósito de aumentar adequadamente o mundo real.[0121] As the filming camera and the proof cameras run at different speeds, they can generate different delays in the frame acquisition process. The movie camera is the one that actually creates by far the most delay, forcing us to compute it for the purpose of properly augmenting the real world.

[0122] Nós utilizamos novamente o nosso próprio dispositivo de calibração para computar automaticamente o retardo entre duas câmeras. Um pequeno LED brilhante como o sol e piscando na frequência de 1 Hz é colocado na frente de ambas as câmeras. Um algoritmo detector de blob, melhorado por uma técnica de limiar de intensidade, foi desenvolvido para detectar o LED em ambas as câmeras. As curvas de intensidade relacionadas, que são geradas a partir da captura da intensidade do LED nas câmeras, são comparadas utilizando um algoritmo de minimização, com o propósito de encontrar a melhor coerência temporal entre as amostras. Diversos parâmetros estatísticos são minimizados neste processo, e um retardo em milissegundos é automaticamente extraído da calibração em aproximadamente 10 segundos. 2.6.2 Renderização e Realidade Aumentada[0122] We again use our own calibration device to automatically compute the delay between two cameras. A small LED bright like the sun and blinking at a frequency of 1 Hz is placed in front of both cameras. A blob detector algorithm, enhanced by an intensity thresholding technique, was developed to detect the LED in both cameras. The related intensity curves, which are generated from capturing the LED intensity in the cameras, are compared using a minimization algorithm, with the purpose of finding the best temporal coherence between the samples. Several statistical parameters are minimized in this process, and a delay in milliseconds is automatically extracted from the calibration in approximately 10 seconds. 2.6.2 Rendering and Augmented Reality

[0123] Uma vez que temos um rastreamento de câmera em funcionamento, o nosso software pode receber dados de diferentes softwares de geração de conteúdo CG como Autodesk MotionBuilder, por exemplo. Estes dados são diretamente integrados e renderizados dentro do nosso software (no caso em que o rastreamento e a estação de trabalho de renderização são mesclados, veja a Figura 1), para serem compostos com o plano real de fundo ou frente (no caso de um cenário verde).[0123] Once we have a camera tracking in place, our software can receive data from different CG content generation software like Autodesk MotionBuilder, for example. This data is directly integrated and rendered within our software (in the case where the tracking and rendering workstation are merged, see Figure 1), to be composited with the real background or foreground (in the case of a green scenario).

[0124] Outra característica interessante inerente à nossa tecnologia é a Coincidência de Resíduos 3D. A Coincidência de Resíduos 3D certamente não é nossa invenção, porém é realizada de uma maneira inovadora no nosso caso. De fato, como o nosso algoritmo de rastreamento gera uma nuvem de pontos 3D precisa (graças à abordagem estereoscópica), todos esses pontos possuem uma representação em ambos 3D e 2D ao serem reprojetados sobre o vídeo da Câmera de Filmagem. Nós desenvolvemos uma interface de usuário simples que permite que o usuário selecione vários pontos dentro da nuvem de pontos 3D. Com este processo criamos um objeto 3D, triangulando todos os pontos selecionados com a utilização de um algoritmo de Percepção de Triangulação [14]. Esta nova superfície criada agora pode ser ativada como um Objeto de Coincidência de Resíduos, o que significa que cada pixel coberto pela projeção 2D desse objeto sobre o vídeo da câmera de filmagem é agora substituído pelo ambiente virtual 3D gerado pela Estação de Trabalho de Geração de Conteúdo 3D (veja a seção 1). Observe que no caso da utilização de um sensor de profundidade de longo alcance (isto é, de pelo menos, 50 m) a técnica de Coincidência de Resíduos torna-se inútil, pois o nosso método de chaveamento de profundidade a substitui facilmente (veja a seção 2.4). Apêndice 1 Referências [1] Herbert Bay, Tinne Tuytelaars, e Luc Van Gool. Surf: speeded up robust features. Em Proceedings of the 9th European conference on Computer Vision - Volume Part I, ECCV'06, páginas 404-417, Berlin, Heidelberg, 2006. Springer- Verlag. [2] Michael Calonder, Vincent Lepetit, Christoph Strecha, e Pascal Fua. Brief: binary robust independent elementary features. Em Proceedings of the 11th European conference on Computer vision: Part IV, ECCV'1O, páginas 778-792, Berlin, Heidelberg, 2010. Springer-Verlag. [3] Frederic Devernay e Olivier Faugeras. Straight lines have to be straight. Em In SPIE, volume 2567, 2001. [4] Martin A. Fischler e Robert C. Bolles. Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography. Communications of the ACM, 24(6):381-395, 1981. [5] Chris Harris e Mike Stephens. A combined corner and edge detector. Em In Proc. of Fourth Alve y Vision Conference, páginas 147-151, 1988. [6] D.C. Hoaglin, F. Mosteller, e J.W. Tukey. Understanding Robust and Exploratory Data Analysis. Wiley series in probability and mathematical statistics: applied probability and statistics. John Wiley and Sons, 1983. [7] Rudolph Emil Kalman. A new approach to linear filtering and prediction problems. Transactions of the ASM E-Journal of Basic Engineering, 82(Series D):35-45, 1960. [8] Georg Klein and David Murray. Parallel tracking and mapping for small ar workspaces. Em Proceedings of the 2007 6th IEEE and ACM International Symposium on Mixed and Augmented Reality, ISMAR '07, páginas 1-10, Washington, DC, USA, 2007. IEEE Computer Society. [9] J. J. Leonard e Durrant H. Whyte. Mobile robot localization by tracking geometric beacons. IEEE Transactions on Robotics and Automation, 7(3), 1991. [10] K . Levenberg. A method for the solution of certain problems in least squares. Quart. Appl. Math, 2:164-168, 1944. [11] David G. Lowe. Object recognition from local scaleinvariant features. Em Proceedings of the International Conference on Computer Vision- Volume 2 - Volume 2, ICCV '99, páginas 1150-, Washington, DC, USA, 1999. IEEE Computer Society. [12] D. Marquardt. An algorithm for least-squares estimation of nonlinear parameters. SIAM J. Appl. Math, 11:431-441, 1963. [13] Christopher Mei, Gabe Sibley, Mark Cummins, Paul Newman, e Ian Reid. Rslam: A system for large-scale mapping in constant-time using stereo. Int. J. Comput. Vision, 94(2):198-214, September 2011. [14] Gary Hosler Meisters. Polygons have ears. Amer. Math. Monthly, 82:648-651, 1975. [15] J. J. More'. The Levenberg-Marquardt algorithm: implementation and theory, páginas 105-116. Lecture Notes in Mathematics 630, SPRINGER, 1977. [16] Edward Rosten and Tom Drummond. Machine learning for high-speed corner detection. Em Proceedings of the 9th European conference on Computer Vision - Volume Part I, ECCV'06, pages 430-443, Berlin, Heidelberg, 2006. Springer- Verlag. [17] Edward Rosten, Reid Porter, e Tom Drummond. Faster and better: A machine learning approach to corner detection. IEEE Trans. Pattern Analysis and Machine Intelligence, 32:105-119, 2010. [18] Ethan Rublee, Vincent Rabaud, Kurt Konolige, e Gary Bradski. Orb: An efficient alternative to sift or surf. Em Proceedings of the 2011 International Conference on Computer Vision, ICCV '11, páginas 2564-2571, Washington, DC, USA, 2011. IEEE Computer Society. [19] Ivan E. Sutherland. A head-mounted three dimensional display. Em Proceedings of the December 9-11, 1968, fall joint computer conference, part I, AFIPS '68 (Fall, part I), páginas 757-764, New York, NY, USA, 1968. ACM. [20] Roger Y. Tsai e Reimer K. Lenz. A new technique for fully autonomous and efficient 3d robotics hand-eye calibration. Em Proceedings of the 4th international symposium on Robotics Research, páginas 287-297, Cambridge, MA, USA, 1988. MIT Press. [21] J.K. Ulhmann. Algorithms for multiple target tracking. American Scientist, 80(2):128-141,[0124] Another interesting feature inherent to our technology is 3D Residue Coincidence. 3D Residue Matching is certainly not our invention, but it is carried out in an innovative way in our case. In fact, as our tracking algorithm generates an accurate 3D point cloud (thanks to the stereoscopic approach), all these points have a representation in both 3D and 2D when reprojected onto the Camcorder video. We have developed a simple user interface that allows the user to select multiple points within the 3D point cloud. With this process we create a 3D object, triangulating all selected points using a Triangulation Perception algorithm [14]. This newly created surface can now be activated as a Residue Coincidence Object, which means that every pixel covered by the 2D projection of this object onto the video camera is now replaced by the 3D virtual environment generated by the Rendering Workstation. 3D content (see section 1). Note that in the case of using a long-range depth sensor (i.e., at least 50 m) the Residual Coincidence technique becomes useless, as our depth switching method easily replaces it (see the section 2.4). Appendix 1 References [1] Herbert Bay, Tinne Tuytelaars, and Luc Van Gool. Surf: speeded up robust features. In Proceedings of the 9th European conference on Computer Vision - Volume Part I, ECCV'06, pages 404-417, Berlin, Heidelberg, 2006. Springer-Verlag. [2] Michael Calonder, Vincent Lepetit, Christoph Strecha, and Pascal Fua. Brief: binary robust independent elementary features. In Proceedings of the 11th European conference on Computer vision: Part IV, ECCV'1O, pages 778-792, Berlin, Heidelberg, 2010. Springer-Verlag. [3] Frederic Devernay and Olivier Faugeras. Straight lines have to be straight. In In SPIE, volume 2567, 2001. [4] Martin A. Fischler and Robert C. Bolles. Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography. Communications of the ACM, 24(6):381-395, 1981. [5] Chris Harris and Mike Stephens. A combined corner and edge detector. In In Proc. of Fourth Alve y Vision Conference, pages 147-151, 1988. [6] D. C. Hoaglin, F. Mosteller, and J. W. Tukey. Understanding Robust and Exploratory Data Analysis. Wiley series in probability and mathematical statistics: applied probability and statistics. John Wiley and Sons, 1983. [7] Rudolph Emil Kalman. A new approach to linear filtering and prediction problems. Transactions of the ASM E-Journal of Basic Engineering, 82(Series D):35-45, 1960. [8] Georg Klein and David Murray. Parallel tracking and mapping for small air workspaces. In Proceedings of the 2007 6th IEEE and ACM International Symposium on Mixed and Augmented Reality, ISMAR '07, pages 1-10, Washington, DC, USA, 2007. IEEE Computer Society. [9] J. J. Leonard and Durrant H. Whyte. Mobile robot localization by geometric tracking beacons. IEEE Transactions on Robotics and Automation, 7(3), 1991. [10] K . Levenberg. A method for the solution of certain problems in least squares. Quart. Appl. Math, 2:164-168, 1944. [11] David G. Lowe. Object recognition from local scaleinvariant features. In Proceedings of the International Conference on Computer Vision- Volume 2 - Volume 2, ICCV '99, pages 1150-, Washington, DC, USA, 1999. IEEE Computer Society. [12] D. Marquardt. An algorithm for least-squares estimation of nonlinear parameters. SIAM J. Appl. Math, 11:431-441, 1963. [13] Christopher Mei, Gabe Sibley, Mark Cummins, Paul Newman, and Ian Reid. Rslam: A system for large-scale mapping in constant-time using stereo. Int. J. Comput. Vision, 94(2):198-214, September 2011. [14] Gary Hosler Meisters. Polygons have ears. Amer. Math. Monthly, 82:648-651, 1975. [15] J. J. More'. The Levenberg-Marquardt algorithm: implementation and theory, pages 105-116. Lecture Notes in Mathematics 630, SPRINGER, 1977. [16] Edward Rosten and Tom Drummond. Machine learning for high-speed corner detection. In Proceedings of the 9th European conference on Computer Vision - Volume Part I, ECCV'06, pages 430-443, Berlin, Heidelberg, 2006. Springer-Verlag. [17] Edward Rosten, Reid Porter, and Tom Drummond. Faster and better: A machine learning approach to corner detection. IEEE Trans. Pattern Analysis and Machine Intelligence, 32:105-119, 2010. [18] Ethan Rublee, Vincent Rabaud, Kurt Konolige, and Gary Bradski. Orb: An efficient alternative to sift or surf. In Proceedings of the 2011 International Conference on Computer Vision, ICCV '11, pages 2564-2571, Washington, DC, USA, 2011. IEEE Computer Society. [19] Ivan E. Sutherland. A head-mounted three-dimensional display. In Proceedings of the December 9-11, 1968, fall joint computer conference, part I, AFIPS '68 (Fall, part I), pages 757-764, New York, NY, USA, 1968. ACM. [20] Roger Y. Tsai and Reimer K. Lenz. A new technique for fully autonomous and efficient 3d robotics hand-eye calibration. In Proceedings of the 4th international symposium on Robotics Research, pages 287-297, Cambridge, MA, USA, 1988. MIT Press. [21] J. K. Ulhmann. Algorithms for multiple target tracking. American Scientist, 80(2):128-141,

Claims (23)

1. SISTEMA SEM MARCADORES, o sistema incluindo: (i) uma câmera de vídeo (j) ) sensores incluindo um acelerômetro e um giroscópio detectando em seis graus de liberdade; (k) i) duas câmeras de prova que formam um sistema estereoscópico; e (l) ) um processador; para mixar ou compor em tempo real, objetos 3D gerados por computador e um sinal de vídeo da câmera de vídeo, para a geração de vídeo em tempo real com realidade aumentada para transmissão de TV, cinema ou jogos de vídeo, caracterizado pelo fato de que: (m) o corpo da câmera de vídeo pode ser movimentado em 3D e os sensores, na ou conectados direta ou indiretamente na câmera de vídeo fornecem dados de posicionamento em tempo real que definem a posição 3D e a orientação 3D da câmera de vídeo, ou que permitem que a posição 3D e a orientação 3D da câmera de vídeo possam ser calculadas; (n) as duas câmeras de prova que formam o sistema estereoscópico são fixadas direta ou indiretamente na câmera de vídeo; (o) o sistema é configurado para usar estes dados de posicionamento em tempo real automaticamente para criar, chamar, renderizar ou modificar objetos 3D gerados em computador; (p) o sistema é configurado para mixar ou compor os objetos 3D resultantes gerados em computador com o sinal de vídeo da câmera de vídeo para o fornecimento de um vídeo de realidade aumentada para transmissão de TV, cinema ou jogos de vídeo; e no qual: (q) o sistema é configurado para determinar a posição 3D e a orientação da câmera de vídeo com referência a um mapa 3D do mundo real, em que o sistema é configurado para gerar o mapa 3D do mundo real, pelo menos em parte, com a utilização dos dados de posicionamento 3D em tempo real dos sensores e também de um fluxo óptico no qual as duas câmeras de prova que formam um sistema estereoscópico inspecionam uma cena e em que um software em execução no processador é configurado para detectar marcadores naturais na cena ('pontos característicos') que não foram manualmente ou artificialmente adicionados a esta cena; (r) o sistema é configurado para usar um modelo de velocidade constante associado aos dados de posicionamento 3D em tempo real dos sensores para prever uma próxima posição da câmera de vídeo usando uma posição previamente computada ou confirmada corretamente, e o sistema está configurado para usar essa previsão para projetar uma nuvem de pontos 3D em um quadro de câmera de prova atual e usar um algoritmo de correspondência de pontos para combinar pontos identificados em um feed de vídeo em tempo real do sistema estereoscópico e pontos projetados na nuvem de pontos 3D projetada.1. MARKERLESS SYSTEM, the system including: (i) a video camera (j) ) sensors including an accelerometer and a gyroscope detecting in six degrees of freedom; (k) i) two test cameras that form a stereoscopic system; and (l) ) a processor; for mixing or compositing in real time, computer-generated 3D objects and a video signal from the camcorder, for generating real-time video with augmented reality for broadcast TV, cinema or video games, characterized by the fact that : (m) the video camera body can be moved in 3D and sensors, on or connected directly or indirectly to the video camera provide real-time positioning data that defines the 3D position and 3D orientation of the video camera, or that allow the 3D position and 3D orientation of the video camera to be calculated; (n) the two test cameras that form the stereoscopic system are fixed directly or indirectly to the video camera; (o) the system is configured to use this real-time positioning data automatically to create, recall, render or modify computer-generated 3D objects; (p) the system is configured to mix or composite the resulting computer-generated 3D objects with the video signal from the video camera to provide an augmented reality video for broadcast TV, cinema or video games; and wherein: (q) the system is configured to determine the 3D position and orientation of the video camera with reference to a 3D map of the real world, wherein the system is configured to generate the 3D map of the real world at least in part, using real-time 3D positioning data from sensors and also an optical flow in which the two test cameras that form a stereoscopic system inspect a scene and in which software running on the processor is configured to detect natural markers in the scene ('feature points') that have not been manually or artificially added to this scene; (r) the system is configured to use a constant velocity model associated with real-time 3D positioning data from the sensors to predict an upcoming position of the video camera using a previously computed or correctly confirmed position, and the system is configured to use this prediction to project a 3D point cloud onto a current proof camera frame and use a point matching algorithm to match points identified in a real-time video feed from the stereoscopic system and projected points in the projected 3D point cloud. 2. SISTEMA de acordo com a reivindicação 1, caracterizado pelo fato de que os sensores incluem um sensor de faixa 3D, tal como uma luz estruturada ou câmera de tempo de voo, que captura a profundidade de cada pixel de uma saída de vídeo da câmera de vídeo.2. SYSTEM according to claim 1, wherein the sensors include a 3D range sensor, such as a structured light or time-of-flight camera, that captures the depth of each pixel of a video output from the camera of video. 3. SISTEMA de acordo com a reivindicação 2, caracterizado pelo fato de que a profundidade das bordas é refinada através da retroprojeção das profundidades do sensor de faixa 3D sobre o sinal de vídeo de alta resolução da câmera de vídeo.3. SYSTEM according to claim 2, characterized by the fact that the depth of the edges is refined by back-projecting the depths of the 3D range sensor onto the high-resolution video signal of the video camera. 4. SISTEMA de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de as duas câmeras de prova que formam um sistema estereoscópico operarem em pelo menos 100 fps para permitir que o sistema seja totalmente inicializado sem uma etapa separada apenas de inspeção da cena a ser rastreada (denominada de "inspeção instantânea"), mas ao invés disso, a inspeção é realizada continuamente à medida que a câmera de vídeo está sendo utilizada para a captura de vídeo.4. SYSTEM according to any one of the preceding claims, characterized in that the two test cameras forming a stereoscopic system operate at at least 100 fps to allow the system to be fully initialized without a separate stage of inspection of the scene only. be tracked (called "instant inspection"), but instead, inspection is performed continuously as the video camera is being used to capture video. 5. SISTEMA de acordo com a reivindicação 4, caracterizado pelo fato de que as duas câmeras de prova estereoscópicas que formam o sistema estereoscópico permitem que o software processe as imagens e, mesmo que o sistema de câmera não seja movimentado como um todo, para a geração de uma nuvem instantânea de pontos 3D (por exemplo, associando um grande número de pontos da cena à sua posição em um espaço 3D utilizando o conhecimento sobre a separação entre as duas câmeras e a geometria epipolar).5. SYSTEM according to claim 4, characterized by the fact that the two stereoscopic test cameras that form the stereoscopic system allow the software to process the images and, even if the camera system is not moved as a whole, for the generation of an instantaneous 3D point cloud (for example, associating a large number of scene points with their position in 3D space using knowledge about the separation between the two cameras and epipolar geometry). 6. SISTEMA de acordo com a reivindicação 5, caracterizado pelo fato de que a profundidade de cada ponto da nuvem de pontos 3D é obtida com a utilização de fragmentos de texturas 2D correspondentes, obtidos a partir de cada câmera de prova estereoscópica e de um algoritmo epipolar de busca de linha.6. SYSTEM according to claim 5, characterized by the fact that the depth of each point in the 3D point cloud is obtained using fragments of corresponding 2D textures, obtained from each stereoscopic test camera and an algorithm line search epipolar. 7. SISTEMA de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de executar um algoritmo de fusão que combina os dados de fluxo óptico do sistema de câmeras de prova com os dados de posicionamento em tempo real dos sensores.7. SYSTEM according to any one of the preceding claims, characterized in that it executes a fusion algorithm that combines optical flow data from the test camera system with real-time positioning data from the sensors. 8. SISTEMA de acordo com a reivindicação 7, caracterizado pelo fato de que o algoritmo de fusão baseia-se em uma técnica de predição/correção de Filtro Kalman Estendido para integrar as saídas de, e para recalibrar, todos os sensores, que podem incluir um magnetômetro, ou um sensor de faixa 3D, para determinar a posição e a orientação da câmera de vídeo.8. SYSTEM according to claim 7, characterized by the fact that the fusion algorithm is based on an Extended Kalman Filter prediction/correction technique to integrate the outputs of, and to recalibrate, all sensors, which may include a magnetometer, or a 3D range sensor, to determine the position and orientation of the video camera. 9. SISTEMA de acordo com a reivindicação 8, caracterizado pelo fato de que o algoritmo de fusão do Filtro Kalman Estendido utiliza dados de nível de confiança, associados com a saída de cada sensor, para determinar a maneira de mesclar os dados de cada sensor.9. SYSTEM according to claim 8, characterized by the fact that the Extended Kalman Filter fusion algorithm uses confidence level data, associated with the output of each sensor, to determine the way to merge the data from each sensor. 10. SISTEMA de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que os quadros-chave gerados pelas câmeras de prova fazem parte do processo de um rastreamento visual, e consistem de imagens em tempo real computadas com quatro diferentes níveis de resolução do sinal de vídeo da câmera de prova.10. SYSTEM according to any of the previous claims, characterized by the fact that the keyframes generated by the test cameras are part of the visual tracking process, and consist of real-time images computed with four different levels of resolution of the video signal from the test camera. 11. SISTEMA de acordo com qualquer uma das reivindicações anteriores, o sistema incluindo um sensor de faixa 3D, caracterizado pelo fato de que o sensor de faixa 3D é utilizado para aumentar a precisão da medição de profundidade associada a um ponto 3D reconstruído obtido utilizando as câmeras de prova que formam o sistema estereoscópico, ou para rejeitar este ponto 3D reconstruído obtido utilizando as câmeras de prova que formam o sistema estereoscópico.11. SYSTEM according to any one of the preceding claims, the system including a 3D range sensor, characterized in that the 3D range sensor is used to increase the accuracy of the depth measurement associated with a reconstructed 3D point obtained using the proof cameras that form the stereoscopic system, or to reject this reconstructed 3D point obtained using the proof cameras that form the stereoscopic system. 12. SISTEMA de acordo com a reivindicação 11, caracterizado pelo fato de que o sensor de faixa 3D é utilizado para o chaveamento de profundidade em tempo real para permitir a oclusão dinâmica e suprimir a eventual utilização de um cenário verde.12. SYSTEM according to claim 11, characterized by the fact that the 3D range sensor is used for real-time depth switching to allow dynamic occlusion and suppress the eventual use of a green scene. 13. SISTEMA de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que o sistema é configurado para alterar localmente um limite de contraste para incluir pontos mesmo em áreas de baixo contraste, na nuvem de pontos.13. SYSTEM according to any one of the preceding claims, characterized by the fact that the system is configured to locally change a contrast threshold to include points even in areas of low contrast, in the point cloud. 14. SISTEMA de acordo com qualquer uma das reivindicações 4, 5 ou 6, caracterizado pelo fato de que inclui um sistema de rastreamento da câmera que combina inspeções instantâneas com o rastreamento da câmera de vídeo à medida que um diretor/operador de câmera rastreia, produz movimentos panorâmicos e inclina o sistema de rastreamento de câmera acoplado à câmera de vídeo.14. SYSTEM according to any one of claims 4, 5 or 6, characterized by the fact that it includes a camera tracking system that combines instant inspections with video camera tracking as a director/camera operator tracks, pans and tilts the camera tracking system attached to the video camera. 15. SISTEMA de acordo com a reivindicação 4, caracterizado pelo fato de as duas câmeras de prova que formam o sistema estereoscópico permitirem inspeções contínuas de uma cena em tempo real, para gerar uma nuvem de pontos definindo a cena.15. SYSTEM according to claim 4, characterized in that the two test cameras that form the stereoscopic system allow continuous inspections of a scene in real time, to generate a cloud of points defining the scene. 16. SISTEMA de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de acoplar descritores invariáveis de rotação, por exemplo, utilizando ORB, a pontos característicos detectados na cena para facilitar a recuperação do rastreamento.16. SYSTEM according to any one of the previous claims, characterized by the fact that it couples rotation invariant descriptors, for example, using ORB, to characteristic points detected in the scene to facilitate tracking recovery. 17. SISTEMA de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de utilizar um esquema de minimização Levenberg-Marquardt para o rastreamento de câmeras para minimizar o erro entre os pontos identificados na transmissão de vídeo em tempo real do sistema estereoscópico e dos pontos projetados na nuvem de pontos 3D.17. SYSTEM according to any of the preceding claims, characterized by the fact that it uses a Levenberg-Marquardt minimization scheme for camera tracking to minimize the error between the points identified in the real-time video transmission of the stereoscopic system and the points projected onto the 3D point cloud. 18. SISTEMA de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que um usuário pode utilizar a nuvem de pontos 3D gerada pelo sistema de rastreamento de câmeras para definir máscaras 3D, tais como máscaras 3D de Coincidência de Resíduos.18. SYSTEM according to any one of the preceding claims, characterized by the fact that a user can use the 3D point cloud generated by the camera tracking system to define 3D masks, such as 3D Residue Coincidence masks. 19. SISTEMA de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que a câmera de vídeo e uma câmera de prova são calibradas para um atraso na aquisição de quadros com a utilização de uma fonte de luz modulada, tal como com a comparação de curvas de intensidade de luz associadas a um LED intermitente.19. SYSTEM according to any one of the preceding claims, characterized by the fact that the video camera and a test camera are calibrated for a delay in acquiring frames using a modulated light source, such as with comparison of light intensity curves associated with a flashing LED. 20. SISTEMA de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que a câmera de vídeo consiste de uma das seguintes: câmera de grua; câmera Steadicam; câmera de mão; câmera montada em carrinho, câmera montada em tripé, telefone inteligente, óculos de realidade aumentada.20. SYSTEM according to any one of the preceding claims, characterized by the fact that the video camera consists of one of the following: crane camera; Steadicam camera; handheld camera; cart mounted camera, tripod mounted camera, smart phone, augmented reality glasses. 21. MÉTODO SEM MARCADORES PARA MIXAGEM OU COMPOSIÇÃO EM TEMPO REAL DE OBJETOS 3D GERADOS EM COMPUTADOR E UM SINAL DE VÍDEO DE UMA CÂMERA DE VÍDEO, para a geração de vídeo em tempo real com realidade aumentada para transmissão de TV, cinema ou jogos de vídeo, caracterizado pelo fato de que: (a) o corpo da câmera de vídeo pode ser movimentado em 3D e sensores, incluindo um acelerômetro e um giroscópio detectando em seis graus de liberdade, na ou conectados direta ou indiretamente na câmera de vídeo fornecem dados de posicionamento em tempo real que definem a posição 3D e a orientação 3D da câmera de vídeo, ou que permitem que a posição 3D e a orientação 3D da câmera de vídeo possam ser calculadas; (b) duas câmeras de prova que formam um sistema estereoscópico são fixadas direta ou indiretamente na câmera de vídeo; (c) estes dados de posicionamento em tempo real são então utilizados automaticamente para criar, chamar, renderizar ou modificar objetos 3D gerados em computador; (d) os objetos 3D resultantes gerados em computador são então mixados ou compostos com o sinal de vídeo da câmera de vídeo para o fornecimento de um vídeo de realidade aumentada para transmissão de TV, cinema ou jogos de vídeo; e no qual: (e) a posição 3D e a orientação da câmera de vídeo são determinadas com referência a um mapa 3D do mundo real, em que o mapa 3D do mundo real é gerado, pelo menos em parte, com a utilização dos dados de posicionamento 3D em tempo real dos sensores e também de um fluxo óptico no qual as duas câmeras de prova que formam um sistema estereoscópico inspecionam uma cena e um software em execução em um processador detecta marcadores naturais na cena ('pontos característicos') que não foram manualmente ou artificialmente adicionados a esta cena; (f) um modelo de velocidade constante associado aos dados de posicionamento 3D em tempo real dos sensores é usado para prever a próxima posição da câmera de vídeo usando uma posição previamente calculada ou confirmada corretamente, e essa previsão é usada para projetar uma nuvem de pontos 3D em um quadro de câmera de prova atual, e um algoritmo de correspondência de pontos é usado para combinar pontos identificados em um feed de vídeo em tempo real do sistema estereoscópico e pontos projetados na nuvem de pontos 3D projetada.21. MARKERLESS METHOD FOR REAL-TIME MIXING OR COMPOSITION OF COMPUTER-GENERATED 3D OBJECTS AND A VIDEO SIGNAL FROM A VIDEO CAMERA, for generating real-time video with augmented reality for broadcast TV, cinema or video games , characterized by the fact that: (a) the body of the video camera can be moved in 3D and sensors, including an accelerometer and a gyroscope detecting in six degrees of freedom, on or connected directly or indirectly to the video camera provide data from real-time positioning that defines the 3D position and 3D orientation of the video camera, or that allows the 3D position and 3D orientation of the video camera to be calculated; (b) two test cameras forming a stereoscopic system are fixed directly or indirectly to the video camera; (c) this real-time positioning data is then automatically used to create, recall, render or modify computer-generated 3D objects; (d) the resulting computer-generated 3D objects are then mixed or composited with the video signal from the video camera to provide an augmented reality video for broadcast TV, cinema or video games; and wherein: (e) the 3D position and orientation of the video camera are determined with reference to a 3D map of the real world, wherein the 3D map of the real world is generated, at least in part, using the data real-time 3D positioning of sensors and also an optical flow in which the two test cameras that form a stereoscopic system inspect a scene and software running on a processor detects natural markers in the scene ('feature points') that do not were manually or artificially added to this scene; (f) a constant velocity model associated with real-time 3D positioning data from the sensors is used to predict the next position of the video camera using a previously calculated or correctly confirmed position, and this prediction is used to project a point cloud 3D in a current proof camera frame, and a point matching algorithm is used to match points identified in a real-time video feed from the stereoscopic system and projected points in the projected 3D point cloud. 22. MÉTODO de acordo com a reivindicação 21, caracterizado pelo fato de que os dados de posicionamento em tempo real são gravados e carimbados com códigos de tempo para o fornecimento de dados de coincidência de movimentos para processos de pós-produção.22. METHOD according to claim 21, characterized by the fact that real-time positioning data is recorded and stamped with time codes to provide motion coincidence data for post-production processes. 23. MÉTODO de acordo com a reivindicação 21 ou 22, caracterizado pelo fato de ser utilizado para: (i) . Rastreamento em tempo real de câmeras de estúdio; ou (ii) . Rastreamento em tempo real de uma Steadicam; ou (iii) . Rastreamento em tempo real de câmeras montadas em gruas; ou (iv) . Rastreamento em tempo real de câmeras montadas em carrinhos; ou (v) . Rastreamento em tempo real de Transmissão Externa (OB); ou (vi) . Rastreamento em tempo real implementado em um telefone inteligente; ou (vii) . Rastreamento em tempo real implementado em um dispositivo de computação usável, tal como óculos de realidade aumentada; ou (viii) . Fornecer dados de rastreamento em tempo real para pós-produção em 2D; ou (ix) . Fornecer dados de rastreamento em tempo real para pós-conversão em conteúdo estereoscópico 3D; ou (x). Fornecer dados de rastreamento em tempo real para conteúdo nativo estereoscópico 3D; ou (xi). Inserção de gráficos 3D; ou (xii). Inserção de gráficos 3D para colocação em estúdio ou no local; ou (xiii) . Inserção de gráficos 3D para OB; ou (xiv) . Inserção de gráficos 3D em imagens patrocinadas; ou (xv) . Inserção de gráficos 3D específica aos locais dos usuários; ou (xvi) . Inserção de gráficos 3D específica a usuários; ou (xvii) . Inserção de gráficos 3D específica a horários; ou (xviii) . Inserção de gráficos 3D para o preenchimento de cenas de multidões; ou (xix). Inserção de gráficos 3D para a substituição de telas verdes; ou (xx). Inserção de gráficos 3D com conteúdo educativo de auxílio ao ensino, em museus e centros de interpretação em locais culturais, históricos e naturais; ou (xxi). Medição do tamanho absoluto ou relativo de objetos em uma cena.23. METHOD according to claim 21 or 22, characterized by the fact that it is used for: (i) . Real-time tracking of studio cameras; or (ii). Real-time tracking from a Steadicam; or (iii). Real-time tracking of cameras mounted on cranes; or (iv). Real-time tracking of cart-mounted cameras; or V) . Real-time tracking of External Transmission (OB); I heard) . Real-time tracking implemented on a smart phone; or (vii). Real-time tracking implemented on a wearable computing device, such as augmented reality glasses; or (viii). Provide real-time tracking data for 2D post-production; or (ix). Provide real-time tracking data for post-conversion into 3D stereoscopic content; or (x). Provide real-time tracking data for native stereoscopic 3D content; or (xi). Insertion of 3D graphics; or (xii). Insertion of 3D graphics for placement in the studio or on location; or (xiii). Insertion of 3D graphics for OB; or (xiv). Insertion of 3D graphics in sponsored images; or (xv). Insertion of 3D graphics specific to user locations; or (xvi). Insertion of user-specific 3D graphics; or (xvii). Insertion of time-specific 3D graphics; or (xviii). Insertion of 3D graphics to fill crowd scenes; or (xix). Insertion of 3D graphics to replace green screens; or (xx). Insertion of 3D graphics with educational content to aid teaching, in museums and interpretation centers in cultural, historical and natural locations; or (xxi). Measuring the absolute or relative size of objects in a scene.
BR112014027853-9A 2012-05-09 2013-05-09 MARKERLESS SYSTEM AND METHOD FOR REAL-TIME MIXING OR COMPOSITION OF COMPUTER-GENERATED 3D OBJECTS AND A VIDEO SIGNAL FROM A VIDEO CAMERA BR112014027853B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1208088.3A GB201208088D0 (en) 2012-05-09 2012-05-09 Ncam
GB1208088.3 2012-05-09
PCT/GB2013/051205 WO2013167901A1 (en) 2012-05-09 2013-05-09 A system for mixing or compositing in real-time, computer generated 3d objects and a video feed from a film camera

Publications (2)

Publication Number Publication Date
BR112014027853A2 BR112014027853A2 (en) 2017-06-27
BR112014027853B1 true BR112014027853B1 (en) 2023-09-19

Family

ID=

Similar Documents

Publication Publication Date Title
US20230386148A1 (en) System for mixing or compositing in real-time, computer generated 3d objects and a video feed from a film camera
US11869205B1 (en) Techniques for determining a three-dimensional representation of a surface of an object from a set of images
Wagner et al. Real-time panoramic mapping and tracking on mobile phones
US10388025B2 (en) Interactive image based 3D panogragh
US6930685B1 (en) Image processing method and apparatus
Klein Visual tracking for augmented reality
WO2004042662A1 (en) Augmented virtual environments
Kim et al. Outdoor dynamic 3-D scene reconstruction
Côté et al. Live mobile panoramic high accuracy augmented reality for engineering and construction
Placitelli et al. Low-cost augmented reality systems via 3D point cloud sensors
Baker et al. Splat: Spherical localization and tracking in large spaces
Wither et al. Fast annotation and modeling with a single-point laser range finder
Baker et al. CasualStereo: Casual capture of stereo panoramas with spherical structure-from-motion
Kim et al. 3-d virtual studio for natural inter-“acting”
Chen Capturing fast motion with consumer grade unsynchronized rolling-shutter cameras
Kumar et al. 3D manipulation of motion imagery
Kim et al. Relocalization using virtual keyframes for online environment map construction
BR112014027853B1 (en) MARKERLESS SYSTEM AND METHOD FOR REAL-TIME MIXING OR COMPOSITION OF COMPUTER-GENERATED 3D OBJECTS AND A VIDEO SIGNAL FROM A VIDEO CAMERA
Babahajiani Geometric computer vision: Omnidirectional visual and remotely sensed data analysis
Rawlinson Design and implementation of a spatially enabled panoramic virtual reality prototype
Helala et al. Mosaic of near ground UAV videos under parallax effects
Wang Hybrid panoramic visual SLAM and point cloud color mapping
Watras Multi-View Video Stitching with Maximized Field of View for Enhanced Laparoscopic Visualization
Kim et al. Robust relocalization and its evaluation for online environment map construction
Bingham An Interest Point Based Illumination Condition Matching Approach to Photometric Registration Within Augmented Reality Worlds