
Em breve, haverá um ano em que lançaremos o produto com a 'calibração do
rastreador ocular '
personalizada a bordo. Infelizmente, por vários motivos, ainda não funcionou para finalizar este artigo. No entanto, ocorreu recentemente um incidente engraçado que levou a concluir o que foi iniciado. Mas, primeiro as primeiras coisas. Espero que alguém ainda se beneficie da nossa experiência, apesar de o post ter sido úmido.
Em resumo, o
Eye-tracker é um dispositivo que permite rastrear a direção da visão, bem como a posição dos olhos e da cabeça.
Os rastreadores de olhos têm algumas áreas de aplicação, uma das quais é a indústria de jogos de computador (um
pouco mais ).
Freqüentemente, a detecção de olhar é responsável por ações secundárias (auxiliares), mas importantes em jogos:
- movimento da câmera;
- apontar;
- seleção de objetos para interação;
- seleção de armas;
- chamada de pausa automática após perda de visão;
- outros.
Na maioria dos casos, a calibração padrão (falaremos sobre o dispositivo
Tobii Eye Tracker 4C ) é suficiente para o uso confortável da era do
Eye Track .
Mas, infelizmente, para nossos propósitos, a precisão do dispositivo alcançada pela calibração padrão não é suficiente, porque, em nosso projeto, a aparência é a principal mecânica de controle.
A partir do exposto, a
tarefa foi formada: melhorar a calibração padrão;
condições : dispositivo
Tobii Eye Tracker 4C , a linguagem de desenvolvimento é
C # (WPF) .
Parece ser uma solução na superfície: se você quiser mais precisão - adicione mais pontos de calibração, mas não é tão simples.
O Tobii AB possui muitas
ferramentas para trabalhar com seus dispositivos. A Joy não tinha limites quando o
Tobii Pro SDK foi descoberto, que tem todos os recursos para trabalhar com
calibração , mas, como se viu mais tarde, esse
SDK não
é adequado para trabalhar especificamente com o modelo de
rastreador ocular que temos (embora seja estranho que a detecção de olhar do dispositivo ainda estava presente ao usar este
SDK ). Eu tive que facilitar as ferramentas -
Tobii.EyeX.Client .
Empiricamente, o número ideal de pontos de calibração e sua localização foram revelados: uma matriz
4x3 com
12 pontos de calibração localizados (cada um no centro da célula).
Os seguintes parâmetros também foram encontrados empiricamente:
Algoritmo de calibração (Simple to Madness)
A calibração é realizada sequencialmente, para cada célula da matriz de calibração:
- se a distância entre o ponto de calibração atual e o ponto recebido do dispositivo for menor que o desvio máximo permitido , esse ponto (recebido do dispositivo) cai na coleção para processamento adicional; caso contrário - a calibração da célula atual é redefinida para seu estado original (e tudo é novo) ;
- após o tempo de calibração por um ponto de calibração ter sido esgotado, obtemos o valor médio do deslocamento a partir dos dados coletados anteriormente.
Após a conclusão da calibração, temos uma coleção de 12
valores de viés médios por região (células da matriz).
Uso (ainda mais fácil)
- determinar em que região o ponto recebido do dispositivo se enquadra;
- mudamos o ponto recebido do dispositivo pelo valor médio do deslocamento nessa região.
Assim, foi possível melhorar programaticamente a precisão do dispositivo
Tobii Eye Tracker 4C (fazendo um complemento sobre a calibração padrão).
Infelizmente, devido ao contrato de não divulgação, não posso especificar o nome do software nem definir a fonte ou as capturas de tela. Felizmente, eles me permitiram compartilhar o algoritmo. Espero que alguém poste ainda seja útil.
O artigo fornece a descrição mais simples do processo principal de calibração. Além disso, há várias outras coisas:
- calcular a média do valor do ponto com o anterior (para suavidade);
- verificação de excesso de tela;
- rastreamento de perda de visão;
- rastreamento de mudanças na posição dos olhos no espaço;
- Rastreamento de status do Eye Tracker ;
- rastreamento de alterações na resolução da tela;
- rastreamento abortar calibração;
- seleção aleatória do tipo de marcas de calibração;
- e muito mais
E aqui está o mesmo evento que contribuiu para a "conclusão" do artigo: por alguma coincidência inconcebível, meu amigo (
do post anterior ) teve a chance de conversar ao vivo com o desenvolvedor da
Tobii AB . Durante a conversa, o desenvolvedor mencionou que a calibração padrão não era ideal e que nossos esforços não foram em vão.