1 Dispositivos, rastreamento e graus de liberdade — Exercícios

Os três problemas desta página têm em comum uma pergunta que nenhuma imagem responde: o que o sistema sabe sobre onde está quem observa. Você vai contar parâmetros de pose, calcular frações a partir de uma contagem de quadros e julgar um relatório de capacidades que afirma quatro coisas, das quais duas ninguém verificou. Nada aqui pede que você abra um projeto seu nem continue algo em andamento: cada cenário está descrito por inteiro no enunciado, com os números e as unidades ao lado deles.

Como trabalhar estes três. Resolva com lápis, calculadora e prosa — nenhum deles exige executar código, e todos exigem que você diga por quê. Faça na ordem: o primeiro se resolve com a definição de pose, o segundo pede duas contas e uma comparação, e o terceiro junta inferência de capacidade, correção de mapa e consequência sobre quem usa o ambiente. Sempre que a resposta natural for “eu olharia o aparelho para saber”, desconfie: quase tudo o que se sabe sobre um aparelho é o que a plataforma aceitou declarar sobre ele.

1.1 Exercício 1: Metade da pose, dois destinos diferentes

Nível Básico — aplicação direta de conceitos

Um visor estima apenas a orientação da cabeça de quem o veste, e o mesmo visor é usado em dois ambientes. No primeiro, quem observa está dentro de uma fotografia panorâmica: a imagem envolve a pessoa por todos os lados e não há nela nada a distância reconhecível — o horizonte fotografado está tão longe quanto um horizonte real. No segundo, há uma bancada de montagem desenhada a cerca de um metro de quem observa, com peças apoiadas sobre ela. Nos dois casos a pessoa pode girar a cabeça à vontade, e nos dois casos ela acaba dando um passo à frente.

A pose de um corpo rígido é o par formado pela posição e pela orientação dele, e cada uma dessas metades tem três parâmetros independentes. O visor deste enunciado mede uma delas inteira e não mede a outra.

flowchart TB
    C["cabeça de quem observa<br/>seis parâmetros independentes"]
    C --> O["orientação<br/>três parâmetros"]
    C --> P["posição<br/>três parâmetros"]
    O --> M["o sistema estima"]
    P --> N["o sistema ignora"]
    M --> A["cena panorâmica<br/>imagem distante, sem objeto próximo"]
    M --> B["bancada desenhada a um metro<br/>objeto a distância reconhecível"]
    N -.-> A
    N -.-> B
    A --> RA["quem observa gira e a cena responde"]
    B --> RB["quem observa dá um passo<br/>e a cena permanece onde estava"]
Figura 1: As duas metades da pose, o que este visor estima e os dois ambientes em que a mesma lacuna produz efeitos distintos.

O que peço de você: escreva, em prosa, o diagnóstico dos dois ambientes, em três partes. Em (a), diga qual das duas metades da pose este visor estima e qual ele ignora, e explique por que o corpo da pessoa continua tendo os seis parâmetros mesmo quando o sistema descreve só três. Em (b), explique por que o passo à frente passa despercebido na fotografia panorâmica e incomoda diante da bancada; a sua explicação precisa dizer qual sinal do corpo entra em desacordo com qual imagem, e por que o desacordo não aparece no primeiro ambiente. Em (c), alguém propõe uma correção: como o sistema não sabe para onde a pessoa andou, que ele estime o deslocamento por conta própria e mova a cena de acordo. Diga se você aceita a proposta e justifique em duas ou três frases.

Uma pista sobre o que não é resposta: nada aqui depende de o visor ser caro ou barato, nem de a imagem ter mais ou menos resolução. Se a sua justificativa em (b) mencionar qualidade de imagem, ela ainda não chegou ao ponto.

Você terá terminado quando as duas metades estiverem nomeadas em (a), quando (b) apontar dois relatos que se contradizem e disser por que só um dos ambientes os coloca em conflito, e quando (c) contiver uma decisão explícita com a razão ao lado.

1.2 Exercício 2: Vinte e sete quadros que não são vinte e sete

Nível Intermediário — comparação e cálculo

Um ambiente tridimensional pede a pose de quem observa uma vez por quadro, e às vezes ela não vem: o quadro chega, a sessão continua viva, e a pergunta sobre onde está a cabeça volta sem resposta. Um contador registra três números por janela de observação — quadros com pose, quadros sem pose e quadros ocultos, que são aqueles em que a sessão continua existindo mas não está sendo apresentada a ninguém, como acontece quando alguém abre o menu do próprio aparelho para ver a hora.

Duas janelas de 200 quadros consecutivos foram registradas em ambientes físicos diferentes. No aparelho A houve 20 quadros ocultos e 27 quadros sem pose, todos os 27 fora do trecho oculto; esses 27 vieram em três sequências de nove quadros seguidos. No aparelho B não houve quadro oculto algum e houve 30 quadros sem pose, todos isolados, espalhados pela janela sem nunca dois em seguida.

flowchart LR
    J["janela observada<br/>200 quadros consecutivos"] --> OC["quadros ocultos<br/>menu do sistema aberto"]
    J --> OB["quadros observáveis<br/>sessão visível"]
    OB --> CP["quadros com pose"]
    OB --> SP["quadros sem pose"]
    SP --> D1["distribuição A<br/>sequências longas e seguidas"]
    SP --> D2["distribuição B<br/>ocorrências isoladas e esparsas"]
    D1 --> Q["mesma fração, efeitos diferentes<br/>sobre quem está usando"]
    D2 --> Q
    OC -.-> X["comportamento normal do sistema<br/>não é degradação de rastreamento"]
Figura 2: A janela de observação repartida em três contagens, e as duas distribuições possíveis para a mesma quantidade de quadros sem pose.

O que peço de você: compare as duas janelas em quatro partes curtas. Em (a), calcule a fração de quadros sem pose do aparelho A de dois jeitos — sobre os 200 quadros da janela e sobre os quadros observáveis, que são os que sobram depois de descontar os ocultos — e apresente os dois resultados em porcentagem. Em (b), calcule a fração do aparelho B e diga qual das duas frações de (a) é a comparável com ela, explicando o que o denominador errado faria com a comparação. Em (c), diga qual das duas distribuições — três sequências de nove ou trinta ocorrências isoladas — é mais grave para quem está dentro do ambiente, e sustente a resposta com o que acontece à cena durante cada uma. Em (d), suponha que a mesma caminhada seja repetida no mesmo ambiente físico uma semana depois, e diga o que você espera que se repita se o que mede a pose estiver fixo no ambiente, e o que espera se ele estiver embarcado no próprio aparelho — em cada caso, diga onde mora a região problemática.

Uma restrição de honestidade que faz parte do exercício: em nenhum momento eu lhe peço para dizer por que os quadros sem pose aconteceram. Superfície sem textura, luz fraca e movimento brusco produzem exatamente a mesma linha de contagem, e escolher uma delas a partir destes números seria inventar o diagnóstico junto com a medida. Se a sua resposta nomear a causa, corte a frase.

Você terá terminado quando tiver três porcentagens calculadas entre (a) e (b), uma escolha justificada em (c), e duas previsões distintas em (d), cada uma dizendo se a região ruim fica onde está ou viaja junto com quem se move.

1.3 Exercício 3: O relatório que afirmava o que ninguém verificou

Nível Desafiador — integração de conceitos e transferência

Uma equipe que você nunca viu escreveu uma sonda de capacidades: um programa que abre o mesmo endereço em vários aparelhos, pergunta à plataforma o que cada um oferece e grava as respostas numa tabela. A tabela é bem formatada, o que é parte do problema — todas as linhas têm a mesma aparência, e nada nelas distingue o que foi medido do que foi suposto. Quatro registros dela estão reproduzidos a seguir, e cada um tem um detalhe conhecido por quem escreveu a sonda e não anotado na tabela.

A linha 1 diz não suporta sessão imersiva para um celular. O detalhe: naquele navegador a interface de sessões não existe, e a consulta não chegou a ser respondida. A linha 2 diz seis graus de liberdade para um visor, valor que a sonda obteve inferindo a partir do espaço de referência que a sessão concedeu, já que a plataforma não informa esse número. A linha 3 diz recurso negado para um recurso opcional pedido na abertura da sessão; o detalhe é que aquela sessão não reportou lista alguma de recursos habilitados. A linha 4 não é de capacidade: registra a posição de um objeto virtual preso a um ponto do ambiente físico, guardada como um trio de coordenadas absolutas anotado no início. Depois de meia hora de uso, o objeto aparece deslocado, e ninguém o moveu.

flowchart TB
    S["sonda de capacidades<br/>mesmo endereço, três aparelhos"] --> L1["linha 1: tipo de sessão<br/>gravado como NAO SUPORTA"]
    S --> L2["linha 2: graus de liberdade<br/>gravado como SEIS"]
    S --> L3["linha 3: recurso opcional<br/>gravado como NEGADO"]
    S --> L4["linha 4: posição do objeto<br/>coordenadas absolutas guardadas"]
    L1 --> E1["a interface de sessões<br/>não existia naquele navegador"]
    L2 --> E2["inferido do espaço de referência concedido"]
    L3 --> E3["a sessão não reportou lista alguma"]
    L4 --> E4["o mapa foi corrigido<br/>depois de um reencontro"]
    E1 --> DEC["decisão tomada semanas depois<br/>a partir do relatório"]
    E2 --> DEC
    E3 --> DEC
    E4 --> DEC
Figura 3: As quatro linhas do relatório, o que estava por trás de cada uma e o ponto em que todas convergem.

O que peço de você: escreva um parecer técnico sobre esse relatório, em cinco partes, na ordem abaixo. Em (a), corrija as linhas 1 e 3, dizendo em cada caso qual valor deveria estar gravado no lugar do que está e qual é a diferença entre não ter recebido resposta e ter recebido uma resposta negativa. Em (b), avalie a linha 2: diga se a inferência é legítima, sob que premissa ela se apoia e em que situação concreta ela devolveria seis para um sistema que estima três. Em (c), explique a linha 4 pelo mecanismo — o aparelho estima a própria trajetória e desenha o mapa do ambiente ao mesmo tempo, e reconhecer um lugar por onde já passou o faz corrigir o mapa para trás — e proponha o que deveria ter sido guardado no lugar das coordenadas.

Em (d), entra a única parte deste conjunto que é sobre custo de computação. Para reconhecer um lugar, a alternativa ingênua é comparar a vista atual contra tudo o que já foi visto desde o início do percurso; a alternativa adotada na prática guarda uma descrição compacta de cada lugar, compara descrições e só verifica em detalhe os poucos candidatos que sobrevivem ao filtro. Explique por que a primeira alternativa é inviável dentro do tempo de um quadro, dizendo como o trabalho dela cresce à medida que o percurso se estende, e por que a segunda muda essa relação. Diga também qual dos dois erros de reconhecimento é mais caro — deixar de reconhecer um lugar conhecido, ou reconhecer um lugar onde nunca se esteve — e o que cada um estraga.

Em (e), feche pela consequência. Semanas depois, alguém consulta esse relatório para decidir a quem oferecer o regime imersivo, lê não suporta na linha 1 e conclui que quem tem aquele aparelho fica de fora. Diga quem é excluído por uma anotação que ninguém verificou, e por que o formato bem cuidado da tabela torna essa decisão mais provável, e não menos. Encerre com uma frase sobre o que separa um registro que se pode contestar de um que só se pode obedecer.

Você terá terminado quando o parecer trouxer dois valores corrigidos em (a), uma premissa nomeada em (b), um mecanismo e uma proposta em (c), a comparação de custo mais o erro mais caro em (d), e um parágrafo em (e) que aponte quem paga pela linha errada sem atribuir a falha a quem lê a tabela.

Método, para quando você travar. Nos três, a pergunta que destrava é a mesma: quem afirmou isso, e com base em que observação? Muita coisa que parece propriedade de um aparelho é resposta de uma camada de software que decidiu responder assim, e a diferença entre as duas aparece justamente quando o mesmo endereço é aberto em dois aparelhos diferentes. Escreva os números com unidade e com o denominador explícito, sempre: fração sobre a janela inteira e fração sobre os quadros observáveis se parecem no papel e afirmam coisas distintas. E quando você registrar um valor, guarde ao lado dele um terceiro estado para o caso em que ninguém respondeu — é o único jeito de um relatório poder contradizer quem o escreveu.