<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gonzalo vallejos bobadilla</title>
	<atom:link href="http://gonzalo.gled.cl/feed/" rel="self" type="application/rss+xml" />
	<link>http://gonzalo.gled.cl</link>
	<description>sitio personal</description>
	<lastBuildDate>Fri, 07 May 2010 13:42:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Kolmogorov-Smirnov de 40°</title>
		<link>http://gonzalo.gled.cl/2010/04/20/kolmogorov-smirnov-de-40%c2%b0/</link>
		<comments>http://gonzalo.gled.cl/2010/04/20/kolmogorov-smirnov-de-40%c2%b0/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 03:58:38 +0000</pubDate>
		<dc:creator>gonzalo</dc:creator>
				<category><![CDATA[Matemáticas]]></category>
		<category><![CDATA[Miscelaneo]]></category>

		<guid isPermaLink="false">http://gonzalo.gled.cl/?p=37</guid>
		<description><![CDATA[Hace un par de años, mientras estudiaba la convergencia del Teorema de Glivenko-Cantelli (conocido también como el teorema fundamental de la estadística) me encontré varias veces con el estadístico Kolmogorov-Smirnov, el cual al leerlo me dije instantáneamente &#8220;¡Pero que buen nombre de Vodka!&#8220;, y no resistí simular cómo quedaría un test de hipótesis con grado [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un par de años, mientras estudiaba la convergencia del <strong>Teorema de Glivenko-Cantelli</strong> (conocido también como el <em><strong>teorema fundamental de la estadística</strong></em>) me encontré varias veces con el estadístico <strong>Kolmogorov-Smirnov</strong>, el cual al leerlo me dije instantáneamente &#8220;<em><strong>¡Pero que buen nombre de Vodka!</strong></em>&#8220;, y no resistí simular cómo quedaría un test de hipótesis con grado etílico:</p>
<p style="text-align: center;"><a href="http://gonzalo.gled.cl/KS-vodka.jpg"><img class="aligncenter" title="KS vodka" src="http://gonzalo.gled.cl/KS-vodka.jpg" alt="" width="400" height="574" /></a></p>
<p>Para quienes no conozcan los teoremas que acabo de mencionar, el de <strong>Glivenko-Cantelli</strong> es muy importante para el estudio de las <strong>Máquinas de Aprendizaje</strong>, de hecho <strong>Vapnik</strong> lo cita bastante al principio de su libro <strong><em>Statistical Learning Theory</em></strong> ya que sin un teorema tan poderoso podría ser absurdo buscar máquinas de aproximación si no existe convergencia entre una observación y un fenómeno. El <strong>Teorema de Glivenko-Cantelli</strong> asegura que si la muestra de una distribución empírica tiende a infinito, entonces la distribución converge en probabilidad a la distribución desconocida del fenómeno:</p>
<p style="text-align: center;"><img class="aligncenter" title="glivenko-cantelli" src="http://upload.wikimedia.org/math/f/f/3/ff365a30bbdf64a3e49077ca0160be30.png" alt="" width="320" height="32" /></p>
<p>El estadístico de <strong>Kolmogorov-Smirnov</strong> se utiliza para analizar las distribuciones de probabilidad y efectuar un test de hipótesis que pueda determinar si dos distribuciones son iguales:</p>
<p style="text-align: center;"><img class="aligncenter" title="Ks-formula" src="http://upload.wikimedia.org/math/0/5/1/051cf93dd036b27d93b5945d825304f9.png" alt="" width="208" height="30" /></p>
<p>Si lo relacionamos con el <strong>Teorema de Glivenko-Cantelli</strong>, el estadístico <em>converge a cero</em> si la distribución de probabilidad empírica se forma a partir de muestras obtenidas de la distribución del fenómeno F(x).</p>
<p>Hermoso, ¿cierto? Aunque esto es sólo una pincelada, ya que el análisis de los matemáticos mencionados para llegar a tales conclusiones es mucho más interesante, y hablando de cosas interesantes, merece especial atención el aporte de Kolmogorov a la teoría de la complejidad computacional.</p>
<p>Kolmogorov y Smirnov merecen tener un vodka en su honor.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonzalo.gled.cl/2010/04/20/kolmogorov-smirnov-de-40%c2%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retornando</title>
		<link>http://gonzalo.gled.cl/2010/04/20/retornando/</link>
		<comments>http://gonzalo.gled.cl/2010/04/20/retornando/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 03:57:16 +0000</pubDate>
		<dc:creator>gonzalo</dc:creator>
				<category><![CDATA[Sin Categoría]]></category>

		<guid isPermaLink="false">http://gonzalo.gled.cl/?p=40</guid>
		<description><![CDATA[Después de un año de abandono, me dieron ganas de revivir este sitio para seguir escribiendo cosas que sólo a mi me interesan&#8230; o eso creo, al menos para varios eran útiles las cosas que tengo para bajar en la sección Material de Estudio.
]]></description>
			<content:encoded><![CDATA[<p>Después de un año de abandono, me dieron ganas de revivir este sitio para seguir escribiendo cosas que sólo a mi me interesan&#8230; o eso creo, al menos para varios eran útiles las cosas que tengo para bajar en la sección Material de Estudio.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonzalo.gled.cl/2010/04/20/retornando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criptografía Visual</title>
		<link>http://gonzalo.gled.cl/2008/10/12/criptografia-visual/</link>
		<comments>http://gonzalo.gled.cl/2008/10/12/criptografia-visual/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 17:40:15 +0000</pubDate>
		<dc:creator>gonzalo</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Criptografía]]></category>
		<category><![CDATA[Imágenes]]></category>

		<guid isPermaLink="false">http://gonzalo.gled.cl/12/10/2008/32/</guid>
		<description><![CDATA[Revisando cosas en mundocripto me encontré con este post bastante entretenido, aquí un copy/paste:
Lugar: sede de la ACMS (Agencia Castellana de Máxima Seguridad). Despacho del Gran Jefe. Alguien llama a la puerta y pasa.
Bienvenido X28, tengo aquí los detalles de su nueva misión. En primer lugar, usted y el agente Y6 tienen que reunirse con [...]]]></description>
			<content:encoded><![CDATA[<p>Revisando cosas en <a href="http://www.mundocripto.com">mundocripto</a> me encontré con este post bastante entretenido, aquí un copy/paste:</p>
<p><em>Lugar: sede de la ACMS (Agencia Castellana de Máxima Seguridad). Despacho del Gran Jefe. Alguien llama a la puerta y pasa.</em></p>
<p><em>Bienvenido X28, tengo aquí los detalles de su nueva misión. En primer lugar, usted y el agente Y6 tienen que reunirse con su contacto en Quintanamartingalindez que les dará más instrucciones.</em></p>
<p><em>Me temo que no sé dónde queda Quintanamartingalindez, jefe.</em></p>
<p><em>No me haga perder el tiempo X28, mírelo en el mapa. Aquí tiene la imagen que le permitirá identificar a la persona que buscan&#8230;</em></p>
<p style="text-align: center;"><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/10/sombra1.png" alt="sombra1.png" /></p>
<p><em>Je, je, me parece que esta foto no ha salido demasiado bien, va a tener que repetirla si quiere que lo reconozca.</em></p>
<p><em>Déjeme acabar de hablar. Esta es sólo una sombra de la fotografía original, su compañero Y6 tiene la otra, Cuando se reúnan unirán sus fotos obteniendo una copia casi exacta de la original aunque menos contrastada.</em></p>
<p><em>Con el debido respeto jefe, esto es sólo un fondo gris plano, si lo uno con otro igual no obtendré más que gris.</em></p>
<p><em>Sólo aparentemente X28, el ojo humano no es suficiente para distinguir matices de gris tan similares. Fíjese en un volcado hexadecimal de los primeros bytes de su imagen:</em></p>
<pre class="bash">  <span style="color: #000000;">00000000</span> 50360a323030203232310a3235350a80 |P6<span style="color: #000000;">.200</span> <span style="color: #000000;">221.255</span>..|
  <span style="color: #000000;">00000010</span> 80808080807f7f7f8080807f7f7f7f7f |................|
  <span style="color: #000000;">00000020</span> 7f7f7f7f8080807f7f7f7f7f7f7f7f7f |................|
  <span style="color: #000000;">00000030</span> 7f7f7f80808080808080808080808080 |................|
  <span style="color: #000000;">00000040</span> 80808080807f7f7f7f7f7f7f7f7f7f7f |................|
  ...</pre>
<p><em>Vea, después de la cabecera siguen una serie de grupos de bytes (pixels) que son o bien (80, 80, 80) o bien (7f, 7f, 7f) y ya que 80h=128 y 7Fh=127 tenemos dos grises muy similares. Además observe que en binario 80h=10000000b y 7Fh=01111111b luego los bits que están a cero en uno, en el otro están a uno y viceversa.</em></p>
<p><em>Sigo sin entender&#8230;</em></p>
<p><em>Bueno. La imagen original estaba formada sólo por pixels blancos (FF,FF,FF) o negros (00,00,00). Lo que nuestro laboratorio supersecreto hizo fue arrojar una moneda por cada uno de los pixels (tienen mucha paciencia estos chicos) y decidir de acuerdo con la siguiente tabla.</em></p>
<table cellpadding="4">
<tbody>
<tr>
<td><strong>Pixel</strong></td>
<td><strong>Resultado</strong></td>
<td><strong>Sombra 1</strong></td>
<td><strong>Sombra 2</strong></td>
</tr>
<tr>
<td>Blanco</td>
<td>Cara</td>
<td>80h = 1000 0000</td>
<td>7Fh = 0111 1111</td>
</tr>
<tr>
<td></td>
<td>Cruz</td>
<td>7Fh = 0111 1111</td>
<td>80h = 1000 0000</td>
</tr>
<tr>
<td>Negro</td>
<td>Cara</td>
<td>80h = 1000 0000</td>
<td>80h = 1000 0000</td>
</tr>
<tr>
<td></td>
<td>Cruz</td>
<td>7Fh = 0111 1111</td>
<td>7Fh = 0111 1111</td>
</tr>
</tbody>
</table>
<p><em>De esta manera si la imagen original era un pixel blanco su sombra podría tener por ejemplo un valor 80h que unido (operación lógica OR) con el 7Fh de su compañero daría lugar a FFh=1111 1111 es decir el blanco original.</em></p>
<p><em>Hum. Pero jefe, cuando mi sombra tenga un valor 80h y la de mi compañero también, la unión será de nuevo 80h y no 00h que era el negro original.</em></p>
<p><em>Veo que presta atención X28, tanto en este caso como en el otro (7Fh con 7Fh) se obtiene un gris oscuro en lugar del negro original, por eso dije que la imagen saldría menos contrastada. Aun así es perfectamente reconocible.</em></p>
<p><em>Pero si una agencia rival obtiene mi imagen o la de mi compañero,¿ no serán capaces de ver la original?</em></p>
<p><em>No, fíjese que por depender los resultados del azar, un byte 80h puede con igual probabilidad provenir de un byte negro como de uno blanco, <strong>todos</strong> los bitmaps en blanco y negro son igualmente posibles y su imagen podría ser perfectamente una foto del acueducto de Segovia.</em></p>
<p><em>Bueno jefe, ahora estoy más tranquilo, voy a buscar un mapa y salgo inmediatamente.</em></p>
<p><em>Buen viaje X28.</em></p>
<p><em>El jefe se reclina en su sillón pensativo. Luego levanta la pantalla de su portátil y mira satisfecho</em></p>
<p><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/10/contacto.png" alt="" /> <img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/10/final.png" alt="" /></p>
<p>Aquí termina el copy/paste&#8230;</p>
<p>Personalmente me gustó bastante este método, ya que es muy sencillo de implementar, pero lamentablemente <strong>es muy básico</strong> ya que si tienes las dos imágenes es muy fácil deducir que hay una operación OR, AND o XOR en la criptografía. Propondría una mejora más matemática, quizás aplicar algoritmos de convolución y dar soporte a colores para permitir una mayor complejidad de decriptación, de tal forma que al tener las dos imágenes además sea indispensable el algoritmo para poder descubrir la imagen real, permitiendo una funcionalidad similar a un public-key (criptografía asimétrica). Aún así, aparte de ser entretenido, no le encuentro alguna utilidad jajaja.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonzalo.gled.cl/2008/10/12/criptografia-visual/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Caminando al estilo de Voronoi</title>
		<link>http://gonzalo.gled.cl/2008/05/16/caminando-al-estilo-de-voronoi/</link>
		<comments>http://gonzalo.gled.cl/2008/05/16/caminando-al-estilo-de-voronoi/#comments</comments>
		<pubDate>Fri, 16 May 2008 08:11:07 +0000</pubDate>
		<dc:creator>gonzalo</dc:creator>
				<category><![CDATA[Matemáticas]]></category>

		<guid isPermaLink="false">http://gonzalo.gled.cl/16/05/2008/29/</guid>
		<description><![CDATA[Usualmente cuando camino por la calle acostumbro jugar a pisar las lineas, o pisar bloques con un solo pie sin tocar los bordes. Es una manera un tanto infantil pero entretenida para pasar el tiempo caminando por el centro. Sin embargo, en ocasiones cuando veo caminos estrechos me gusta hacer otro juego, intento seguir un [...]]]></description>
			<content:encoded><![CDATA[<p>Usualmente cuando camino por la calle acostumbro jugar a pisar las lineas, o pisar bloques con un solo pie sin tocar los bordes. Es una manera un tanto infantil pero entretenida para pasar el tiempo caminando por el centro. Sin embargo, en ocasiones cuando veo caminos estrechos me gusta hacer otro juego, intento seguir un camino que equidiste de ambos lados tal como se ve en la figura de a continuación, es decir, la linea azul representa la ruta por la que camino y las lineas de los lados son bordes.</p>
<p style="text-align: center"><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/05/ruta.jpg" alt="ruta" /></p>
<p>Lo que no había imaginado es que Dirichlet alrededor de 1850 se había cuestionado un problema similar el cual fue estudiado en profundidad por Voronoi después del 1900. El problema era buscar caminos entre varios puntos de tal forma que equidisten entre ellos formando una región máxima alrededor de cada punto.</p>
<p>En la siguiente figura se entiende mejor la idea:</p>
<p style="text-align: center"><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/05/voronoi.jpg" alt="voronoi" /></p>
<p>Si se fijan, las lineas negras intentan pasar justo por el centro entre los puntos formando poligonos alrededor de ellos. A esto se le llama Diagrama de Voronoi.</p>
<p>Descubrí esto viendo aplicaciones a la rápida de la triangulación de Delaunay, la cual he ocupado para eliminar falsas rectas en búsqueda de cuadriláteros teniendo un conjunto de puntos.</p>
<p>Una triangulación es simplemente formar una malla de triángulos uniendo con rectas los puntos de un conjunto de puntos. La condición de Delaunay dice que no debe haber ningún punto en el interior de una circunferencia circunscrita en uno de los triángulos formados, por ejemplo el siguiente caso es correcto:</p>
<p style="text-align: center"><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/05/del01.jpg" alt="delaunay01" /></p>
<p>Pero el siguiente es incorrecto ya que un cuarto punto esta adentro de las circunferencias de los triángulos formados:</p>
<p style="text-align: center"><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/05/del02.jpg" alt="delaunay02" /></p>
<p>Esta triangulación da una solución al problema del diagrama de Voronoi, simplemente se deben unir los centros de las circunferencias de los triangulos formados, esta unión va a formar el polígono que rodea a los puntos tal como se ve en la siguiente figura:</p>
<p style="text-align: center"><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/05/del_voro.jpg" alt="dv" /></p>
<p>Como ven, no es nada de otro mundo, nada espectacular, pero me parecieron entretenidos estos diagramas y por eso quise escribir sobre ellos, quizás mas adelante escriba sobre los convex hulls cuando lea mas sobre ellos, y quizás ahora al caminar me preocupe de pisar los centros de las circunferencias cuando vea algún conjunto de puntos en el suelo para variar mis juegos con los pies al caminar.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonzalo.gled.cl/2008/05/16/caminando-al-estilo-de-voronoi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Video demo de iveo</title>
		<link>http://gonzalo.gled.cl/2008/04/27/video-demo-de-iveo/</link>
		<comments>http://gonzalo.gled.cl/2008/04/27/video-demo-de-iveo/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 00:53:54 +0000</pubDate>
		<dc:creator>gonzalo</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Miscelaneo]]></category>

		<guid isPermaLink="false">http://gonzalo.gled.cl/blog/27/04/2008/23/</guid>
		<description><![CDATA[Iveo fue el software que desarrollamos el año pasado para la feria de software, nació para usar realidad aumentada con álbumes de figuritas coleccionables, ahora lo estamos ampliando a la publicidad. El video a continuación no muestra todas las características, y mi compañero Anibal (quien sale hablando) no modula muy bien en la explicación, pero [...]]]></description>
			<content:encoded><![CDATA[<p>Iveo fue el software que desarrollamos el año pasado para la feria de software, nació para usar realidad aumentada con álbumes de figuritas coleccionables, ahora lo estamos ampliando a la publicidad. El video a continuación no muestra todas las características, y mi compañero Anibal (quien sale hablando) no modula muy bien en la explicación, pero al menos se puede apreciar el resultado gráfico de nuestro trabajo.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/jBHImeXCBRQ&#038;hl=en_US&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/jBHImeXCBRQ&#038;hl=en_US&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Como algunos se darán cuenta por mis post anteriores, mi trabajo se concentra en la estimación geométrica de la imagen reconocida.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonzalo.gled.cl/2008/04/27/video-demo-de-iveo/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Image Registration (Parte II)</title>
		<link>http://gonzalo.gled.cl/2008/04/15/image-registration-parte-ii/</link>
		<comments>http://gonzalo.gled.cl/2008/04/15/image-registration-parte-ii/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 23:56:22 +0000</pubDate>
		<dc:creator>gonzalo</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Imágenes]]></category>

		<guid isPermaLink="false">http://gonzalo.gled.cl/blog/15/04/2008/16/</guid>
		<description><![CDATA[Antes habia puesto una imagen de lo que hice un rato de ocio en verano, ahora explicaré un poco mas los pasos que tuve que realizar para un caso de ejemplo en el primer informe para el ramo optimización combinatoria.

 Puntos Característicos: El primer paso es encontrar features similares en ambas imágenes, lo mas sencillo [...]]]></description>
			<content:encoded><![CDATA[<p>Antes habia puesto una imagen de lo que hice un rato de ocio en verano, ahora explicaré un poco mas los pasos que tuve que realizar para un caso de ejemplo en el primer informe para el ramo optimización combinatoria.</p>
<ul>
<li> <strong>Puntos Característicos:</strong> El primer paso es encontrar features similares en ambas imágenes, lo mas sencillo es utilizar un algoritmo que encuentre esquinas como el método de Harris. En las siguientes imágenes restringí la zona a buscar puntos, y el máximo (solo hasta 7 puntos) ya que mi versión de LINGO sólo me permite hasta 50 variables <img src='http://gonzalo.gled.cl/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </li>
</ul>
<p><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/04/puntosp_.jpg" alt="puntosp_.jpg" /> <img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/04/puntosq_.jpg" alt="puntosq_.jpg" /></p>
<ul>
<li><strong>Normalized Cross-Correlation:</strong> Con los puntos encontrados, obtenemos la correlación con cada punto de la otra imagen en una ventana de píxeles, yo elegí una ventana de 9&#215;9, el resultado de la correlación nos da un valor entre -1 y 1 que nos dice qué tan parecidas son las ventanas (mientras más cercano a 1 es más similar)</li>
<li><strong>Matching:</strong> Aquí va la parte principal de mi proyecto, donde usé la asignación de tipo Stable Marriage Problem para elegir la correspondencia de puntos según los valores de las correlaciones. El resultado fue el siguiente (las lineas verdes muestran el matching correcto, la roja es un matching equivocado y eliminado):</li>
</ul>
<p><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/04/matching_.jpg" alt="matching_.jpg" /></p>
<ul>
<li> <strong>Transformación Espacial:</strong> Con las relaciones encontradas, calculamos la homografía y transformamos una de las dos imágenes, ahora saqué el promedio de los píxeles en las zonas comunes. El resultado final es el siguiente:</li>
</ul>
<p><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/04/registered_.jpg" alt="registered_.jpg" /></p>
<p>Y eso es todo, como ven bastante sencillo porque obviamente el resultado no fue muy profesional, pero hasta aquí lo considero suficiente, no me quiero especializar en registro de imágenes.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonzalo.gled.cl/2008/04/15/image-registration-parte-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Levenberg-Marquardt Optimization (Parte I)</title>
		<link>http://gonzalo.gled.cl/2008/04/11/levenberg-marquardt-optimization-parte-i/</link>
		<comments>http://gonzalo.gled.cl/2008/04/11/levenberg-marquardt-optimization-parte-i/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 19:27:43 +0000</pubDate>
		<dc:creator>gonzalo</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Imágenes]]></category>

		<guid isPermaLink="false">http://gonzalo.gled.cl/blog/11/04/2008/14/</guid>
		<description><![CDATA[Había mencionado anteriormente que agregaría este algoritmo iterativo a uno de los mas importantes del siglo pasado, lamentablemente no se ha usado mucho, pero para mi al menos los resultados han sido sorprendentes.
Básicamente, lo que logra es refinar parámetros usando el hessiano, aproximado por un jacobiano de las variables involucradas. Es una variante de la [...]]]></description>
			<content:encoded><![CDATA[<p>Había mencionado anteriormente que agregaría este algoritmo iterativo a uno de los mas importantes del siglo pasado, lamentablemente no se ha usado mucho, pero para mi al menos los resultados han sido sorprendentes.</p>
<p>Básicamente, lo que logra es refinar parámetros usando el hessiano, aproximado por un jacobiano de las variables involucradas. Es una variante de la optimización iterativa Gauss-Newton. No explicaré por ahora como funciona el algoritmo porque no tengo tiempo (tengo clases en unos minutos mas), pero mostraré en qué me ha servido.</p>
<p>Como algunos saben, mi principal trabajo está relacionado con visión computacional y estimación geométrica para aplicaciones con realidad aumentada. El siguiente ejemplo es una estimación directa (usando un truco con la homografía) pero con exceso de ruido y algunos parametros mal estimados a propósito:</p>
<p><img src="http://gonzalo.gled.cl/cosas/Nolm002.png" border="0" alt="" width="414" height="294" /></p>
<p>Como ven el resultado no es preciso, los cubos deberían posicionarse exactamente sobre los 4 puntos negros (la linea roja indica el lado &#8220;base&#8221; del cubo, es el lado inferior de la imagen reconocida). Ahora con esa estimación inicial, tratamos de refinar los parámetros de pose (posición y rotación) con Levenberg-Marquardt. Con sólo 2 iteraciones llegamos al siguiente resultado:</p>
<p><img src="http://gonzalo.gled.cl/cosas/Lm002.png" border="0" alt="" width="414" height="294" /></p>
<p>La primera vez quedé impresionado, no tiene un costo computacional muy alto, y el resultado fue muy preciso (en todas las pruebas que realicé se llegó a una convergencia). Su dificultad de implementación es lo que probablemente lo hace ser poco usado, pero últimamente he pensado en muchos problemas que se podrían llegar a resolver con un refinamiento de parámetros tan óptimo, quizás intente algo para problemas de clasificación en Support Vector Machines, ya que en mi clase de ayer de Machine Learning vimos un problema que se resuelve con el lagrangiano, y quizás pueda llegar a ser mas útil mi amigo iterativo Levenberg-Marquardt si logro hacer un buen diseño del problema.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonzalo.gled.cl/2008/04/11/levenberg-marquardt-optimization-parte-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Image Registration</title>
		<link>http://gonzalo.gled.cl/2008/04/08/image-registration/</link>
		<comments>http://gonzalo.gled.cl/2008/04/08/image-registration/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 06:53:21 +0000</pubDate>
		<dc:creator>gonzalo</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Imágenes]]></category>

		<guid isPermaLink="false">http://gonzalo.gled.cl/blog/08/04/2008/10/</guid>
		<description><![CDATA[En el verano hice esto de puro ocio:
 +  =


Debería haber sacado un promedio de los píxeles comunes entre las imágenes para que no se notara la diferencia de luminocidad&#8230; pero bueno, era solo para probar. Ese cuadrado blanco fue puesto a propósito para poder estimar con mejor facilidad la correspondencia de puntos entre [...]]]></description>
			<content:encoded><![CDATA[<p>En el verano hice esto de puro ocio:</p>
<p><a href="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/04/reg01.jpg" title="reg01.jpg"><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/04/reg01.thumbnail.jpg" alt="reg01.jpg" /></a> + <a href="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/04/reg02.jpg" title="reg02.jpg"><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/04/reg02.thumbnail.jpg" alt="reg02.jpg" /></a> =<a href="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/04/reg02.jpg" title="reg02.jpg"><br />
</a></p>
<p><a href="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/04/resultado01.jpg" title="resultado011.jpg"><img src="http://gonzalo.gled.cl/blog/wp-content/uploads/2008/04/resultado011.jpg" alt="resultado011.jpg" /></a></p>
<p>Debería haber sacado un promedio de los píxeles comunes entre las imágenes para que no se notara la diferencia de luminocidad&#8230; pero bueno, era solo para probar. Ese cuadrado blanco fue puesto a propósito para poder estimar con mejor facilidad la correspondencia de puntos entre las imágenes, y su respectiva relación espacial (u homografía como había escrito anteriormente).</p>
]]></content:encoded>
			<wfw:commentRss>http://gonzalo.gled.cl/2008/04/08/image-registration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Top Ten Algorithms of the Century</title>
		<link>http://gonzalo.gled.cl/2008/04/08/the-top-ten-algorithms-of-the-century/</link>
		<comments>http://gonzalo.gled.cl/2008/04/08/the-top-ten-algorithms-of-the-century/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 06:02:20 +0000</pubDate>
		<dc:creator>gonzalo</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Matemáticas]]></category>

		<guid isPermaLink="false">http://gonzalo.gled.cl/blog/08/04/2008/7/</guid>
		<description><![CDATA[Sin lugar a dudas, han existido algoritmos que han influenciado enormemente los avances tecnológicos, y sin ellos probablemente el enfoque de la computación seria otro mucho menos eficiente, no existirían las compresiones de archivos ni las optimizaciones por dar un pequeño ejemplo.
En este artículo se mencionan los 10 algoritmos mas influyentes del siglo pasado, a [...]]]></description>
			<content:encoded><![CDATA[<p>Sin lugar a dudas, han existido algoritmos que han influenciado enormemente los avances tecnológicos, y sin ellos probablemente el enfoque de la computación seria otro mucho menos eficiente, no existirían las compresiones de archivos ni las optimizaciones por dar un pequeño ejemplo.</p>
<p>En <a href="http://www.uta.edu/faculty/rcli/TopTen/topten.pdf" target="_blank">este artículo</a> se mencionan los 10 algoritmos mas influyentes del siglo pasado, a continuación los menciono:</p>
<ol>
<li>the Monte Carlo method or Metropolis algorithm, devised by John von Neumann, Stanislaw Ulam, and Nicholas Metropolis;</li>
<li>the simplex method of linear programming, developed by George Dantzig;</li>
<li>the Krylov Subspace Iteration method, developed by Magnus Hestenes, Eduard Stiefel, and Cornelius Lanczos;</li>
<li>the Householder matrix decomposition, developed by Alston Householder;</li>
<li>the Fortran compiler, developed by a team lead by John Backus;</li>
<li>the QR algorithm for eigenvalue calculation, developed by J Francis;</li>
<li>the Quicksort algorithm, developed by Anthony Hoare;</li>
<li>the Fast Fourier Transform, developed by James Cooley and John Tukey;</li>
<li>the Integer Relation Detection Algorithm, developed by Helaman Ferguson and Rodney Forcade; (given N real values XI, is there a nontrivial set of integer coefficients AI so that sum ( 1 &lt;= I &lt;= N ) AI * XI = 0?</li>
<li>the fast Multipole algorithm, developed by Leslie Greengard and Vladimir Rokhlin; (to calculate gravitational forces in an N-body problem normally requires N^2 calculations. The fast multipole method uses order N calculations, by approximating the effects of groups of distant particles using multipole expansions)</li>
</ol>
<p>De esa lista no conocía el 3, el 9 ni el 10.</p>
<p>Como referencias rápidas de los que conozco, el 1 es esencial para simulación, el 2 increiblemente necesario para resolver modelos matemáticos lineales,  el 4 para darle sentido al álgebra computacional, el 5 para potenciar los lenguajes de programación, el 6 para resolver montones de problemas algebraicos, el 7 para ordenar datos de manera inteligentemente rápida, y el 8 para aplicaciones en todo donde convenga usar datos en el espacio de frecuencias.</p>
<p>Personalmente, habría agregado el algorítmo Levenberg-Marquardt iteration, a mi parecer es el algoritmo más elaborado para refinamiento iterativo de datos, tiene buena convergencia y no es tan costoso como otros métodos menos eficientes. También me hubiese gustado ver la descomposición de matrices SVD, si bien es cierto que es mas útil el uso de QR, SVD no se queda atrás y yo al menos lo uso bastante. Por último, habria agregado RANSAC no por su influencia histórica, sino porque personalmente me gusta mucho como funciona y aunque no es muy rápido entrega resultados muy robustos.</p>
<p>Les recomiendo que lean el artículo, es bastante interesante.</p>
]]></content:encoded>
			<wfw:commentRss>http://gonzalo.gled.cl/2008/04/08/the-top-ten-algorithms-of-the-century/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Homografía es una Homografía</title>
		<link>http://gonzalo.gled.cl/2008/03/13/homografia-es-una-homografia/</link>
		<comments>http://gonzalo.gled.cl/2008/03/13/homografia-es-una-homografia/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 02:20:54 +0000</pubDate>
		<dc:creator>gonzalo</dc:creator>
				<category><![CDATA[Matemáticas]]></category>
		<category><![CDATA[Miscelaneo]]></category>

		<guid isPermaLink="false">http://gonzalo.gled.cl/blog/13/03/2008/6/</guid>
		<description><![CDATA[En la literatura inglesa existen dos palabras muy similares: Homograph y Homography. La primera tiene una traducción oficial al español como Homografía. Una Homografía es un fenómeno de la lingüista que ocurre cuando dos palabras se escriben de forma idéntica pero tienen significado o incluso (en el caso del inglés) pronunciación diferente. Sin embargo, la [...]]]></description>
			<content:encoded><![CDATA[<p>En la literatura inglesa existen dos palabras muy similares: Homograph y Homography. La primera tiene una traducción oficial al español como Homografía. Una Homografía es un fenómeno de la lingüista que ocurre cuando dos palabras se escriben de forma idéntica pero tienen significado o incluso (en el caso del inglés) pronunciación diferente. Sin embargo, la segunda palabra que describí al principio, Homography, no tiene una traducción estandarizada al español, personalmente yo le digo Homografía (por similitud a todas las palabras que tienen como postfijo &#8220;phy&#8221;).</p>
<p>Y bueno, ¿Qué es una Homography para que me preocupe tanto de cómo decirla en español?</p>
<p>Es una relación matemática que he usado mucho para mi trabajo con <a href="http://en.wikipedia.org/wiki/Pose_%28computer_vision%29">estimación de pose</a> en <a href="http://en.wikipedia.org/wiki/Augmented_reality">realidad aumentada</a>. Consiste en pasar los puntos (representados en forma homogenea) que se encuentran en un sistema de coordenadas a otro sistema diferente. Esta relación se logra gracias a una Homography Matrix como la siguiente:</p>
<p>Tenemos los siguientes puntos a y b, y su correspondiente Homography Matrix de 9 componentes</p>
<p style="text-align: center"><img src="http://upload.wikimedia.org/math/d/f/8/df8ac10e3f426d32cc31fa82eacebb8d.png" height="75" width="397" /></p>
<p>Luego, se logra la siguiente propiedad:</p>
<p style="text-align: center"><img src="http://upload.wikimedia.org/math/2/a/7/2a740828b0b9d2d89edf77c6386f1691.png" height="22" width="97" /></p>
<p>Es decir, si tenemos la matriz H podremos pasar cualquier punto de un sistema de coordenadas a otro, encontrar la matriz H es un problema que no voy a abordar (por ahora).</p>
<p>Ese era un ejemplo para mostrar la importancia de la palabra Homography, y de ahora en adelante le seguiré diciendo Homografía como acostumbro hacerlo, por lo tanto dada la similitud de las palabras en español, para mi la palabra Homografía es una Homografía (a no ser que a otra persona se le ocurra una mejor traducción a Homography).</p>
]]></content:encoded>
			<wfw:commentRss>http://gonzalo.gled.cl/2008/03/13/homografia-es-una-homografia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

