6 votos

¿Cómo generar reconocible punto de los patrones en un avión?

Recientemente he aprendido que algunas smartpens (por ejemplo, Livescribe) tiene una cámara en su parte frontal. Que película el papel. Usted tiene que utilizar papel especial que se ve como si alguien hubiera hecho un montón de pequeños agujeros con una aguja en ese papel. Los agujeros no están en un patrón regular. Están espaciados de tal manera que el lápiz puede decidir tomar sólo una imagen de la parte del papel cerca de la punta de la pluma -, donde en el papel.

Yo no puedo conseguir que este problema fuera de mi cabeza. Es diferente de lo que he visto hasta ahora y tengo curiosidad de cómo esto puede ser abordado / resuelto.

Ahora supongamos que tenemos

  • ordinario de papel de tamaño A4 (210 mm × 297 mm),
  • la cámara puede ver un área $10 \text{mm} \times 10 \text{mm}$
  • los puntos en el papel son los círculos con un diámetro de 0,5 mm
  • una medición de distancia (o impresión) de precisión (de puntos) de 0,1 mm

La filmado área de $A$ se define por su punto central $(x,y)$. $$A(x,y) = [x-5\text{mm},x+5\text{mm}] \times[y-5\text{mm},y+5\text{mm}]$$ con $x \in [5,205], y \in[5, 292]$.

(Cómo) puede que los puntos se extendió sobre el papel de manera que cada una de las $A(x,y)$ es único?

Si no es posible, ¿cómo podrían los cuatro valores (tamaño del papel, la cámara de área, diámetro del círculo de precisión) ajustarse de modo que lo haría el trabajo?

Fuerza bruta solución

Un ataque de fuerza bruta solución sería agregar una cuadrícula de 0.1 mm espaciado de líneas (debido a la precisión) en el papel. Entonces podríamos generar todas las posibles distribuciones de puntos simplemente por contar. Sin embargo, esto requeriría una gran cantidad de comprobar si una distribución dada es válida:

  • Hay $\frac{205\text{mm}-5\text{mm}}{0.1 \text{mm}} \cdot \frac{292\text{mm}-5\text{mm}}{0.1 \text{mm}} = 5,740,000$ posibles centros para la punta del lápiz.
  • Tendríamos que comparar cada uno de aquellos, resultando en $\frac{5,740,000^2 + 5,740,000}{2} = 16,473,802,870,000 \approx 16 \cdot 10^{12}$ comparaciones.

Que es demasiado.

1voto

Matthew Scouten Puntos 2518

Además de la precisión los problemas, todo lo que usted necesita es distribuir los puntos de tal manera que

  1. la cámara se ve siempre al menos dos puntos
  2. las distancias entre dos puntos lo suficientemente cerca para ser visto simultáneamente todos somos únicos.

1voto

Joe Gauterin Puntos 9526

Como se mencionó en el comentario, Livescribe utiliza un patrón de punto de la tecnología de la licencia de una compañía sueca Anoto. El patrón de puntos es más probable es que el cubierto por la patente de la WO/03/038741.

Edward Aboufadel tiene un papel de la Posición de Codificación lo que explica las ideas matemáticas detrás Anoto el patrón de puntos.

La construcción en esta respuesta utiliza ideas de Aboufadel del papel. No es el utilizado por Livescribe ni el que explícitamente se discutió en Aboufadel del papel.

Todos los errores y los malentendidos de la mina.

Deje $P = \{ 0, 1, 2, \ldots, p - 1 \} \subset \mathbb{N}$ el conjunto de los enteros no negativos a menos que algún entero positivo $p$. Dado cualquier secuencia finita

$$A = (a_0, a_1, \ldots, a_{m-1}) \in P^{m}$$

Podemos extender a una secuencia de más de $\mathbb{Z}$ por periodicidad. yo.e

$$P^m \ni \mapsto A' = (\ldots una'_{-2},'_{-1},'_{0},'_1 un'_2,\ldots) \P^{\mathbb{Z}} \;\;\text{ s.t. }\;\; un'_k = a_{k\!\pmod m} \;\;\text{ para } k \in \mathbb{Z} $$ Si existe un $n$ de manera tal que el $m$ finito subsecuencias de longitud $n$ $$ (un'_0, un'_1, \ldots,'_{n-1}),\, (un'_1, un'_2, \ldots,'_{n}),\, \ldots,\, ('_{m-1},'_{m}, \ldots,'_{n+m-2})$$ son todos distintos, vamos a llamar a la secuencia de $A'$ $p$- ary pseudo De Bruijn secuencia de orden de $n$ y la longitud de la $m$. En el caso especial $m = 2^n$, $A'$ se llama una secuencia De Bruijn.

La propiedad más importante de este tipo de secuencias es que si conocemos el valor de $n$ términos consecutivos de una secuencia, vamos a conocer la posición relativa de los términos modulo $m$.

A partir de ahora, nos vamos a abusar de la notación con una caída de la $'$ y el uso de $A = (a_k)$ a representar tanto el original secuencia finita y genera una secuencia infinita.

Los siguientes son algunos ejemplos de binaria pseudo secuencias De Bruijn:

$$\begin{array}{lcl} n = 4, m = 16 &:& A = (a_k) = 0000110101111001\ldots\\ n = 3, m = 8 &:& B = (b_k) = 00010111\ldots\\ n = 3, m = 7 &:& C = (c_k) = 0001011\ldots\\ n = 3, m = 5 &:& D = (d_k) = 00111\ldots\\ n = 3, m = 3 &:& E = (e_k) = 001\ldots \end{array}$$

Aviso de las secuencias de $B,C,D,E$ por encima de todo tener un orden $n = 3$ y sus longitudes son relativos prime el uno al otro. Si construimos una secuencia hexadecimal $F = (f_k) \in \{ 0,\ldots, 15\}^{\mathbb{Z}}$ por

$$f_k = 8 b_k + 4 c_k + 2 d_k + e_k\quad\text{ for } k \in \mathbb{Z}$$

la secuencia de $F$ será un pseudo De Bruijn secuencia de orden de $3$ y la longitud $\text{lcm}(8,7,5,3) = 840$.

Si se nos dan los valores de los tres (3)$f_k, f_{k+1}, f_{k+2}$, podemos recuperar los valores de $k \pmod{840}$ por el siguiente procedimiento:

  • desglose $( f_{k}, f_{k+1}, f_{k+2} )$ en sus bits, recuperar los valores de $$ ( b_k, b_{k+1}, b_{k+2} ),\, ( c_k, c_{k+1}, c_{k+2} ),\, ( d_k, d_{k+1}, d_{k+2} ),\,\text{ y } ( e_k, e_{k+1}, e_{k+2} )$$
  • Desde $B$ es pesudo Bruijn con una longitud corta relativa $8$, se puede utilizar una tabla look-up para descubrir el valor de $k \pmod{8}$.
  • Si hacemos la misma cosa $C$, $D$ y $E$, vamos a descubrir el valor de $k \pmod{7}$, $k \pmod{5}$ $k \pmod{3}$ respectivamente.
  • A continuación, podemos utilizar teorema del resto Chino para recuperar el valor de $k \pmod{840}$.

Deje $\varphi : \mathbb{Z} \to \{0, \ldots, 15\}$ y $X, Y : \mathbb{Z}^2 \to \{ 0, 1 \}$ ser las funciones definidas por

$$\varphi(x) = \sum_{k=0}^{x-1} f_k \pmod{16} \quad\text{ y }\quad \begin{cases} X(x,y) &= a_{y + \varphi(x)}\\ Y(x,y) &= a_{x + \varphi(y)} \end{casos}$$ donde $(a_k) = A$ es el primer ejemplo de De Bruijn secuencias anteriores.

Para cada una de las $(x,y) \in [1,209] \times [1, 296]$, pongamos un punto cerca de $(x,y)$ basado en los valores de $X(x,y)$$Y(x,y)$:

$$\begin{array}{|cc:c|} \hline X(x,y) & Y(x,y) & \text{center}\\ \hline 0 & 0 & (x-0.1,y)\\ 0 & 1 & (x+0.1,y)\\ 1 & 0 & (x,y-0.1)\\ 1 & 1 & (x,y+0.1)\\ \hline \end{array}$$

Desde el rodado de la zona de la cámara, tiene dimensión $10\text{mm} \times 10\text{mm}$, siempre contiene una $9 \times 9$ plaza de puntos. Para nuestra actual ubicación de puntos, sólo necesitamos el $4 \times 4$ plaza de puntos cerca del centro de la vista.

Digamos que la cámara ha decodificado los desplazamientos para un $4 \times 4$ plaza de puntos y nos devuelven con dos $4 \times 4$ matriz de números binarios. Uno de $X$ y otro para $Y$. Veamos el $4 \times 4$ matriz de números binarios para $X$:

$$\begin{array}{r|cccc} X & x & x+1 & x+2 &x+2\\ \hline y & g_{00} & g_{10} & g_{20} & g_{30}\\ y+1 & g_{01} & g_{11} & g_{21} & g_{31}\\ y+2 & g_{02} & g_{12} & g_{22} & g_{32}\\ y+3 & g_{03} & g_{13} & g_{23} & g_{33}\\ \end{array}$$

A través de cualquier columna, dicen que la columna de la izquierda, $$( g_{00}, g_{01}, g_{02}, g_{03}) = (a_{y+\varphi(x)}, a_{y+\varphi(x)+1}, a_{y+\varphi(x)+2}, a_{y+\varphi(x)+3})$$ es una sub-secuencia de longitud $4$ para la secuencia De Bruijn $A$ cuyo fin también es $4$. Podemos ver el valor de $y + \varphi(x) \pmod{16}$ a partir de una tabla de $16$ entradas.

Si hacemos lo mismo para las otras 3 columnas, vamos a obtener los valores de $y + \varphi(x) + f_x \pmod{16}$, $y + \varphi(x) + f_x + f_{x+1}\pmod{16}$ y $y + \varphi(x) + f_x + f_{x+1} + f_{x+2} \pmod{16}$ respectivamente. Podemos combinar estas cuatro piezas de información para obtener los valores de $f_x$, $f_{x+1}$ y $f_{x+2}$. Por el procedimiento descrito anteriormente, se puede deducir el valor de $x$.

Por un procedimiento similar, se puede deducir el valor de $y$ de la $4 \times 4$ matriz de números binarios para $Y$.

Desde el pseudo secuencia De Bruijn $F = (f_k)$ tiene una longitud de $840$ mayor que la dimensión del papel, todos los "$4 \times 4$ plaza de puntos" son distintos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X