2 - 2 - l2.2.a. local binary patterns (13-12)

Upload: wolalo

Post on 15-Mar-2016

1 views

Category:

Documents


0 download

DESCRIPTION

asdasdasdasdasdasdasd xcfcfsdsssssssssssssssssddddddddddddddddddddddd ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg

TRANSCRIPT

  • Hola.Continuamos con el tema declasificacin de objetos.En el vdeo anterior vimos que dosingredientes fundamentales de unclasificador son por un lado el descriptorde las ventanas que hemos de clasificar ypor otro lado la frontera enel espacio del descriptor quenos va a permitir distinguir losobjetos de inters del resto.En este vdeo nos vamos a centrar en undescriptor muy concreto, conocido comolocal binary patterns y que es muy popularen la comunidad de visin por computador.En este caso prefiero mantenerla terminologa en ingls paraque a posteriori sea ms fcilbuscar informacin adicional.Muy bien, en esta diapositiva vemos a laizquierda una imagen en niveles de gris,en particular los nivelesvan de cero a 255.En esta imagen de la derecha, lo que vemoses el resultado para cada uno de lospixeles de la imagen de la izquierda,aplicar el mtodo de localbinary patterns o abreviado LBP.Es decir, para cada uno de lospixeles que tenemos en esta imagen, enesta otra vamos a tener un cdigo asociadode los posibles cdigos que hay en LBP.Una particularidad de los LBPs esque tiene distintas invarianzas.Una de ellas es invarianzaa cambios monotnicos de nivelde gris y otras es a la traslacincomo veremos ms tarde.Muy bien, veamos ahora cmo se calcula elcdigo LBP para cada pixel de la imagen.Supongamos que esto es una imagen ycada uno de estos cuadrados es un pixel.Ahora vamos a considerar el clculo delcdigo LBP para este pixel central.Ese clculo se va a basar en primerodefinir una vecindad del pixel y luegoir comparando los niveles de gris de estepixel central con esos de los vecinos.En este caso como vecindad hemos definidotodos aquellos pixeles que tocanel pixel central, que seran todosestos que le rodean en este caso.Y aqu estos nmeros que se ven,siete, dos, ocho, siete,ocho son los niveles degris en este ejemplo.Bien, ahora lo que tenemos quehacer es para cada pixel vecinohemos de aplicar esta regla.Para eso hemos de escoger tambin un orden

  • a la orden de visitar a esos vecinos.El orden es arbitrario pero siemprehemos de respetar el mismo.En este ejemplo he decididoempezar por este pixel.luego continuar por este otro,luego este otro y as sucesivamente.Muy bien, en este caso he de compararel valor siete con el valor dos.La regla dice si el valor delnivel del gris del vecino esmayor o igual del nivel de gris delpixel central entonces a ese vecinole he de asignar un uno y en otrocaso le he de asignar un cero.Como en este caso dos no es mayoro igual que el valor siete,he de asignar el valor cero.Y eso es lo que hago aqu, un cero.A continuacin comparoeste siete con siete,como s que es mayor oigual asignamos un uno.Lo mismo sucede en este caso, un uno.En este caso no sucede, es deciruno no es mayor o igual que siete,por tanto cero y as sucesivamente.Como hay ocho vecinos,en realidad esto es un bytedonde pues evidentemente puescada bit tendr un valor decero o uno segn el resultado de aplicaresta regla a cada uno de los vecinos.Y como esto es un cdigo binario,pues lo podemos traducira un cdigo decimal.En este caso tenemos por aqu cero,como estoes un uno contribuye con dos a la uno quees un dos, como esto es la posicin dosdel byte y tenemos un uno pues contribuyecon dos a la dos que es un cuatro,y as sucesivamente ir sumando todos estosvalores el valor que se obtiene es 182.Por tanto,el cdigo LBP de ese pixel central es 182.Muy bien, you se ve que bueno,hemos pasado de un valoren la imagen originalde gris que va de cero a 255a otro valor en la imagende los LBPs que en realidadtambin va de cero a 255.La diferencia es que este valor esdirectamente el que captura la cmaraque hemos utilizado, normalmente ser asy en este valor se codifican ms cosas,porque lo que se codifica es la relacindel nivel de gris que haba en estepixel en la imagen original con el

  • nivel de gris de los pixeles vecinos.Por tanto, la informacin es un poco msde alto nivel, no solo es informacindel propio pixel sino de cmo serelaciona con los pixeles vecinos,Muy bien, pues con ese algoritmoque acabamos de ver ahora,pues dado una imagen de entrada como estade aqu, podemos producir una imagende salida donde en cada pixeltengamos un cdigo LBP.Si calculo el cdigo LBPde este pixel pues tendrel valor en su correspondientepixel en la imagen de salida.Lo mismo para este, lo mismo paraeste otro y en realidad lo que vamosa hacer pues es un barrido de la imagencalculando todos esos cdigos LBP.Una cuestin es que,una cuestin tcnica es que en losbordes de la imagen hay problemas.Imaginemos que queremos calcularel valor LBP de esta esquina,claro no tenemos el nivel de gris ni aqu,ni aqu, ni aqu, ni aqu, ni aqu.Entonces el procedimiento en estoscasos you depende de la aplicacin,en algunos casos suponemos que elnivel de gris que hay aqu es el mismoque hay aqu, que el nivel de gris que hayaqu es el mismo que hay aqu, etctera,o simplemente ignoramoslos bordes en el sentidoque no calculamos losLBP para estos bordes.Es decir, que aqu en realidad enel borde no tendramos cdigos LBP.Pero como digo esto youdepende de la aplicacin.Muy bien, veamos aqu un ejemplo eneste caso con imgenes de texturas.He utilizado imgenes de texturasporque en realidad los local binarypatterns se definieron inicialmentepara distinguir texturas,como por ejemplo esta que se produce aqugracias a una repeticin de ladrillos yesta que se produce aqu que es gracias alcsped que tiene su textura particular,que es diferente de la texturaparticular que vemos aqu.Muy bien, en este caso tambin aprovechopara comentar que estas son imgenesde color como se puede ver, por tantoson imgenes con tres canales, el rojo,el verde y el azul, pero el LBP sedefine para imgenes en niveles de gris.Para arreglar este problema lonico que hemos de hacer es

  • transformar las imgenesRGB en su correspondienteimagen de intensidad que esla que vemos en este caso.Entonces a estas imgenes de intensidades a las que realmente se aplica el LBP.Y aqu podemos ver las imgenes LBPcorrespondientes a cada uno de los casos.Es decir aqu tenemos niveles degris y aqu tenemos cdigos LBP.En realidad, para describir estasimgenes no se usa toda este,todo este array de cdigos.Lo que se hace es un histograma,un histogramanormalizado de lasimgenes de cdigos LBP.Por ejemplo, este es el histograma, estede aqu es el histograma normalizado deesta imagen LBP donde vemos que no llegaal 20% pero hay bastantespixeles con cdigos LBP bajos.Y lo mismo pasa en este otro extremo,hay bastantes pixeles concdigo LBP alto aunque ningunode ellos llega al 20%.En este caso de aqu,pues hay bastantes pixeles con un nivel,con un cdigo LBP bastantebajo superando ese nmerode pixeles a 20% y lo mismo para losniveles, para los cdigos ms altos.Es decir, aqu el histograma tienems o menos una forma como esta yentonces que aqu tiene unaforma ms como esta otra.Entonces la idea es que esto esun descriptor de 256 dimensiones,esto es un descriptor de 256dimensiones y siguiendo conla idea que vimos el primer da deesta segunda semana lo que haramos estener un espacio de 256 dimensionesy all intentaramos poner pues,por ejemplo un hiperplano que separaraestos casos de aqu de estos otros.Bien, al inicio hemosdicho que los LBP soninvariantes a cambios monotnicosde nivel de gris y a traslaciones.Qu es un cambio de nivel de gris?En este caso pues nos referimosa que tenemos unos grises,unos niveles de gris de entrada,unos niveles de gris de salida y habr unatransformacin que me lleva los nivelesde gris de entrada a los de salida.Que esa transformacin sea monotnica loque quiere decir es que tendr un aspectocomo este, es decir que siempre crece.

  • Aqu puedo tener un nivel de gris a queme dar lugar a un nivel de gris a prima,aqu tendr un nivel de gris b que medar lugar a un nivel de gris b prima.Lo que sucede aqu es que la distanciade a a b puede cambiar respectoa la distancia de a prima b prima, perolo que no cambia es el orden relativo,es decir a es menor que b y aqua prima sigue siendo menor que b prima.Por tanto, como los local binary patternsse basan en comparaciones ente niveles degris, en realidad si lo quehago es coger una imageny aplicarle esta transformacin,el local binary pattern de esta imageny el de esta ser exactamente el mismo.Por ejemplo, aqu tenemos la mismaimagen ms aclarada y ms oscurecida.Sin embargo, el local binary patternes el mismo para las dos porqueestas transformaciones que han sufridolas imgenes siguen este criteriode ser montnicas respectoal nivel de gris.Y respecto a la traslacin nosreferimos a que dado un marcocomo este de aqu o este de aqu,si lo que hacemoses mover o desplazar el contenido,como es el caso de aquen realidad lo que le sucede a loslocal binary patterns de ese marco,simplemente es que se trasladan en unacantidad igual a la imagen original.O sea que si aqu habamos aplicado undirector de traslacin t, pues aqu lo quehemos hecho es hacer un movimiento segnese mismo director de traslacin t.Es decir que como estos patronesson locales, no se ven afectadospor este tipo de transformacionesglobales en los ejes de coordenadas.Muy bien,en este vdeo finalmente destacamos quehemos visto el concepto de local binarypatterns y hemos tambin destacadoque estos local binary patterns aunque hoyen da se usan en muchas aplicaciones,inicialmente se propusieron paradescribir imgenes de texturas.