Professional Documents
Culture Documents
=
+ = = = =
k k k
XY
k Y k l X k Y k l X l k Y k X l Y l X l r ) ( ) ( ) ( ) ( ) ( ) ( ) ( * ) ( ) (
5i se reolizo lo operocion de correlocion sobre lo mismo senol X se
denomino outocorrelocion y se deline:
=
+ = = = =
k k k
XX
k X k l X k X k l X l k X k X l X l X l r ) ( ) ( ) ( ) ( ) ( ) ( ) ( * ) ( ) (
Lo correlocion tiene los siguientes propiedodes:
1. ) ( ) ( l r l r
YX XY
=
2. ) ( ) ( l r l r
XX XX
=
3.
X XX X
E r Energa = = ) 0 (
4. ) 0 ( ) (
XX X XX
r E l r =
S. ) 0 ( ) 0 ( ) (
YY XX Y X XY
r r E E l r =
Ls especiolmente interesonte lo propiedod 4, donde se dice que lo
outocorrelocion de uno luncion X siempre es menor o iguol que lo energlo de dicho
luncion X. Lo iguoldod se olconzo en el origen, es decir, lo outocorrelocion de uno
senol X coincide con su energlo en el origen.
X
k
XX
E k X k X r = =
=
) ( ) ( ) 0 (
Lstudio del metodo de deteccion 6O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
lor ultimo delinomos cuol ser lo expresion que usemos poro el clculo de lo
correlocion en el proyecto. Lsto ser lo correlocion normolizodo o coeliciente de
correlocion normolizodo y su expresion motemtico se muestro o continuocion:
= =
=
=
M
k
M
k
M
k
XY
l k Y k Y l k X k X
l k Y k X
l C
0 0
0
) ( ) ( ) ( ) (
) ( ) (
) (
No nos intereso colculor estos coelicientes de correlocion poro los distintos
volores de I yo que serlo un clculo imposible de hocer en tiempo reol. 5olo nos
intereso el volor de C
XY
cuondo el volor de I seo O, donde lo correlocion tendrlo que
dor un mximo de similitud entre ombos.
Llegodos o este punto se entender mejor porque se hon utilizodo estos
coelicientes de correlocion y no el volor de lo correlocion de ombos senoles. Lo
rozon es que este coeliciente esto normolizodo o 1, es decir, que su mximo volor
ser 1 cuondo ombos secuencios de imgenes coincidon exoctomente. Le este
modo, ol conocer el mximo yo tenemos un pormetro que nos indico cuon
porecidos son dos senoles de secuencios de vldeo. Como se ho justilicodo
onteriormente se colculo el volor poro I=O:
1
) 0 ( ) 0 (
) 0 (
) ( ) ( ) ( ) (
) ( ) (
) 0 (
0 0
0
= =
=
YY XX
XY
M
k
M
k
M
k
XY
r r
r
k Y k Y k X k X
k Y k X
C
Lstudio del metodo de deteccion 61
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Le este modo si los secuencios X e Y coinciden exoctomente se obtiene el
volor mximo poro C
XY
= 1.
Ln nuestro coso tenemos que comporor dos motrices con iguol numero de
lilos pero con distinto numero de columnos, cuondo lo correlocion que hemos
delinido es poro senoles de iguol tomono. 1endremos pues, que correlocionor lo
motriz 5lO1_LL1, obtenido duronte el tiempo de observocion, o lo lorgo de lo
motriz de moyor tomono. Consideremos que lo motriz 5lO1_LL1 tiene uno longitud
N. Lo que horemos es ir correlocionondo esto motriz con secuencios de tomono N
de lo motriz de lo bose de dotos. Lsto se hor desde el principio del onuncio de lo
bose de dotos hosto su lin, guordondo ol linol de lo correlocion el volor mximo
obtenido. Ll lin o ultimo secuencio de lo bose de dotos que comporomos,
comenzor en lo columno cuyo distoncio hosto el linol seo iguol o N, poro que lo
ultimo secuencio correlocionodo tengo dicho tomono, el de lo motriz 5lO1_LL1.
Ll volor que obtendremos como resultodo ser el volor mximo de todos los
correlociones reolizodos, correspondiente o lo secuencio del onuncio guordodo ms
porecido o lo que ocobomos de copturor. Lecidiremos si lo secuencio detectodo
pertenece o no ol onuncio si el volor resultonte es moyor que un umbrol de
deteccion que hobremos lijodo con onterioridod.
Lstudio del metodo de deteccion 62
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
A continuocion ponemos el codigo en Votlob que hemos utilizodo poro
reolizor esto correlocion.
Como se ve, obtenemos un vector coiieI con los volores de todos los
correlociones reolizodos o lo lorgo del onuncio de lo bose de dotos (spoI). Lse
vector nos indicor cuoles hon sido todos los volores de lo correlocion reolizodo,
que estorn entre 1 y +1. Ll volor de correlocion se oproximo o +1 cuondo lo
correlocion tiende o ser lineol directo (moyores volores de X signilicon moyores
volores de Y), y se oproximo o 1 cuondo lo correlocion tiende o ser lineol inverso.
Ls importonte notor que lo existencio de correlocion entre voriobles no implico
cousolidod. 5i no hoy correlocion de ningun tipo entre dos voriobles, entonces
tompoco hobr correlocion lineol, por lo que correl = O. 5in emborgo, el que ocurro
correl = O solo nos dice que no hoy correlocion lineol, pero puede que lo hoyo de
otro tipo. Ll siguiente diogromo resume el onlisis del coeliciente de correlocion
entre dos voriobles [14]:
lunction [maxcorr,indice,corr]=correlacion(spot_det,spot);
tam_spot_det=size(spot_det,2);
tam=size(spot,2)-tam_ spot_det +J;
lor i=J:tam
correl(i)=corr2(spot_det,spot(:,i:(i+tam_spot_det-J)));
Lstudio del metodo de deteccion 63
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Correlocion negotivo perlecto........................ -1
Correlocion negotivo luerte moderodo debil............... -O,S
Ninguno correlocion............................. O
Correlocion positivo moderodo luerte................... +O,S
Correlocion positivo perlecto.......................... + 1
A continuocion se expone un ejemplo de esto correlocion, que se reolizo o lo
lorgo de lo busquedo de los potrones de vldeo odecuodos que veremos en el
siguiente oportodo. Ll primer grlico represento el vector coiieI que lo luncion ontes
expuesto do como solido. vemos que los volores estn ocotodos entre 1 y +1 y
que hoy picos en los que el vector se ocerco ms o esos extremos. Ll resultodo de
lo correlocion que nosotros usoremos ser el volor mximo de dicho vector. Lo
segundo grlico se corresponde o uno de los onuncios de lo bose de dotos que,
como vemos en este coso, se troto de un solo vector. Lo ultimo grlico es un trozo
de un onuncio, que es el que se ho correlocionodo con el onuncio de orribo.
Lo correlocion expuesto
no tiene ms volor que el
explicotivo, yo que lormo porte
de uno de los muchos pruebos
Lstudio del metodo de deteccion 64
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
que hemos reolizodo. Lo solucion de olmocenomiento de onuncios, que linolmente
se odopto, no se corresponde con lo mostrodo.
Ig. 3. EjempIo ue correIacon
Lstudio del metodo de deteccion 6S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
3.2 PA1RONE5 DE 5ECUENCIA DE VIDEO
Ln este oportodo es donde vemos el estudio reolizodo poro encontror el
metodo de olmocenomiento odecuodo de los secuencios de imgenes que
conlormon los onuncios. Ls decir, vomos en lo busquedo de un potron poro
olmocenor de lormo compocto y opropiodo secuencios de vldeo digitol
correspondientes o los onuncios de television.
Ll metodo reolizodo ho sido sobre todo experimentol. Lespues de pensor un
sistemo que o nuestro porecer horlo posible lo correcto deteccion se probobo con
uno bose de dotos de onuncios grobodos de lo television. Lstos onuncios se
groboron de dilerentes conoles con distintos progromos (Amcop, virtuolLub y el
incluido con lo torjeto de 1v), posndose despues con otros progromos (virtuolLub
y 1VlOLnc) o uno secuencio de orchivos de imgenes BVl. A continuocion
podemos ver un ejemplo de uno secuencio de imgenes copturodos:
Lstudio del metodo de deteccion 66
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 9. 5ecuenca ue anunco en mgenes EMF
Cuondo se copturoron estos onuncios de lo television el lrome rote
(lrecuencio de cuodro) lue de 2S lromes7segundo osegurndonos osl de que
copturorlomos todos los lotogromos que se emiten, ol iguol que hoce nuestro
oplicocion. Como yo se comento, esto copturo un lrome codo 4O ms, es decir,
174Oms = 2S lromes por segundo.
Lstos imgenes, que estn guordodos en el disco duro, son procesodos
medionte lunciones de Votlob reolizondo los operociones que yo comentomos en
los diogromos de llujo de Aprendizoje y Leteccion. Convertimos los cuodros
copturodos en escolo de grises y los reescolomos o 32Ox24O. Vs torde
procesoremos esos imgenes y de ellos obtendremos lo inlormocion necesorio que
iremos olmocenondo en motrices. Lstos motrices los olmocenoremos en orchivos de
Lstudio del metodo de deteccion 67
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
texto que lormorn por ohoro nuestro bose de dotos. A continuocion se expone uno
secuencio de imgenes que ilustro el proceso reolizodo:
Ig. 1O. Imagen orgnaI
Ig. 11. Imagen ue InIensuau escaIaua
Lste proceso se reolizo con uno sencillo luncion en Votlob que exponemos o
continuocion. Como se ver en el siguiente oportodo su reolizocion en C++ no lue
ton sencillo. Lste hecho se repetir con lo moyorlo de lunciones reolizodos en
Votlob yo que este incluye un TooIoox ue FiocesamIenIo ue /mgenes con
lunction [H]=retoca(imag);
A=lmread(imag); 7lee la imagen almacenada en el disco duro
B=rgb2gray(A); 7pasa esa imagen a escala de grises
Lstudio del metodo de deteccion 68
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
lunciones implementodos que comprenden uno extenso coleccion de operociones
de trotomiento digitol de imgenes. Adems el monejo de motrices con Votlob es
muy sencillo, yo que su lenguoje est orientodo o trobojor con ellos.
Le lo imogen de intensidod o en escolo de grises obtendremos uno o ms
volores que incluiremos en uno motriz. 5i copturomos uno secuencio de N
imgenes, lo orgonizocion de lo motriz ser lo siguiente:
1endremos N columnos, correspondiendose codo uno o codo imogen
copturodo, desde lo primero o lo ultimo.
Codo columno (imogen copturodo) tendr un numero de lilos iguol ol
numero de corocterlsticos o pormetros que obtengomos de lo imogen.
Asl, codo columno contendr todos los pormetros de uno imogen y solo de
eso imogen y codo lilo contendr un determinodo pormetro o volor corocterlstico de
dicho imogen. Ln el coso de que solo obtengomos un pormetro por lotogromo
tendremos uno motriz lilo, es decir, un vector.
Lo onteriormente explicodo se corresponde ol metodo delinitivo, osl como o
otros tecnicos utilizodos. Lsto resulto ser lo mejor lormo de olmocenor los
Lstudio del metodo de deteccion 69
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
secuencios de imgenes, pero hosto su obtencion se utilizoron otros que iremos
explicondo.
Los siguientes oportodos recogen los metodos que se hon ido creondo desde
el principio, junto con los resultodos que ibo dondo codo uno de ellos. Ln todos
ellos es comun lo yo explicodo, voriondo los dotos que vomos obteniendo de codo
imogen y lo lormo de obtenerlos. A lo lorgo del trobojo reolizodo tombien se lueron
perleccionondo los lunciones y simulociones reolizodos que probobon dichos
metodos, de lormo que obtuviesemos lo moyor inlormocion posible del sistemo
reolizodo. Los metodos se exponen de lormo cronologico, conlorme ibon siendo
reolizodos y probodos. Como se ver, en ocosiones volvlomos o retomor lo probodo
en metodos onteriores, pero se ho elegido esto lormo de explicorlo porque osl se ve
con ms cloridod como se ibo ovonzondo y encorondo los dilerentes lollos de
nuestro metodo.
3.2.1 MTODO 1. DIFLRLNCIA DL IMOLNL5
3.2.1.1 Desarro||o
Ln este primer metodo se colculoron los imgenes dilerencio entre dos
lromes consecutivos y o lo imogen resultodo se le hollo lo medio (luncion utilizodo:
mean2) por un lodo y lo desviocion estndor (luncion utilizodo: sIu2) por otro. Ln
Lstudio del metodo de deteccion 7O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
un primer momento se penso que lo medio o vorionzo de lo dilerencio de dos
imgenes inclulo ms inlormocion que si se electuobon estos dos operociones sobre
lo imogen originol. vemos el ospecto de uno imogen dilerencio:
Ig. 12. Imagen uIerenca
5e creo uno luncion que ero lo encorgodo de leer los imgenes del disco
duro desde un lndice inicio hosto uno linol e ibo colculondo los medios y vorionzos
de los imgenes dilerencio. Ll codigo implementodo es:
lunction [serieJ,serie2]=seriedill(imag,lormat,inicio,lin);
lor i=inicio:lin
s=[imag,int2str(i),'.',lormat];
imagen=retoca(s);
il i>inicio
dilerencia=imabsdill(imagen_ant,imagen);
serieJ(i-inicio+J)=mean(dilerencia(:));
serie2(i-inicio+J)=std2(dilerencia);
else
serieJ(i-inicio+J)=mean(imagen(:));
serie2(i-inicio+J)=std2(imagen);
Lstudio del metodo de deteccion 71
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Como vemos en el codigo orribo expuesto, lo luncion devuelve dos vectores,
uno que olmoceno los volores de los medios y el otro que olmoceno los vorionzos.
lor codo imogen obtenemos uno imogen dilerencio y por codo imogen dilerencio
obtenemos un volor (medio o vorionzo) que olmocenomos en motrices lilo, es decir
vectores. Como el primer volor obtenido no puede ser de uno imogen dilerencio (ol
no poder restorlo con nodo), lo quitomos, resultondo que si copturomos N
imgenes, el vector solido tiene uno longitud de N-1.
Los vectores obtenidos se guordobon en un lichero de texto codo uno, de
lormo que ms torde se pudiesen leer y recuperor eso inlormocion que se utilizorlo
poro los correlociones.
loro los pruebos con estos dos tecnicos se groboron tres onuncios: Coco-
Colo, 5even Up y volkswogen. Codo uno se grobo en conoles dilerentes, de lormo
que tuviesemos dos versiones distintos de los tres. 5e colculoron los potrones de
los secuencios de vldeo con lo medio y vorionzo y guordoron en licheros de texto.
Pepresentondo grlicomente los vectores obtenidos tenemos:
Lstudio del metodo de deteccion 72
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 13. VecIores ue anuncos aImacenauos con eI MeIouo 1
Lo nomencloturo utilizodo ho sido mean y sIu poro dilerencior los dos
tecnicos utilizodos y 1 y 2 poro dilerencior el mismo onuncio pero grobodo en
conoles distintos. Ln lo liguro 13 hemos representodo el onuncio de 5even Up, del
cuol tenlomos unos 7SO lotogromos copturodos, de ohl el eje de obscisos. Ln el eje
de ordenodos tenemos el volor de lo medio o vorionzo (segun lo grlico que
observemos) de lo imogen dilerencio determinodo.
Como se ho explicodo en los onteriores oportodos nuestro oplicocion estorlo
en codo conol un determinodo 1iempo de Observocion. loro reolizor lo simulocion
de estos dos tecnicos se decidio que en codo conol deberlo estor un tiempo de 1
segundo (17O.O4 = 2S lromes), con lo que tros restorle el tiempo de combio de
conol yo indicodo nos restorlon unos 2O lromes. Lste tiempo de 1 segundo lue en
un principio un punto de portido, considerondo oumentorlo en coso de que
supusiese uno mejoro consideroble. Asl pues, el metodo de trobojo serlo coger uno
Lstudio del metodo de deteccion 73
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
secuencio de 2O lromes de un onuncio y correlocionorlo con el otro onuncio de lo
lormo que yo indicomos.
Como yo vimos, cuondo correlocionomos uno secuencio menor con otro de
moyor longitud, lo que hocemos es ir correlocionondo lo menor con secuencios (de
su mismo tomono) de lo moyor desde el principio hosto el lin de esto ultimo. lero
poro no empezor o probor indiscriminodomente, creomos uno luncion que recorre un
onuncio entero cogiendo secuencios de 2O lromes y los vo correlocionondo con el
otro, representondo el resultodo cuondo hoyomos terminodo de recorrer el primer
onuncio. Le esto lormo pudimos obtener volores estodlsticos del nivel de deteccion
(verdodero o lolso) y del lollo en lo deteccion, ol probor todos los posibles
correlociones que se podlon dor entre dos onuncios. loro hocer menor el clculo
computocionol vomos cogiendo los secuencios de 2O lromes en soltos de 1O, por lo
que reolmente no probomos todos los posibles comporociones o correlociones entre
ombos onuncios, sino un 1O7 de todos los posibles. Lxponemos el codigo por si
puede oyudor o un moyor entendimiento:
Lstudio del metodo de deteccion 74
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
lemos llomodo pIece_mean, y pIece_sIu o los secuencios de 2O lromes que
vomos cogiendo de uno de los onuncios y spot_meon y spot_std ol otro onuncio con
el que vomos o reolizor lo comporocion.
Pesenor que electuondo este solto de 1O, los simulociones duron del orden
de 1 horo, con lo que durorlo diez veces ms sin este solto. loblo que reolizor seis
simulociones ol tener tres onuncios en lo bose de dotos: uno por codo onuncio y
tres correlociones cruzodos. 5in mucho esluerzo podemos colculor que sin el solto
los seis simulociones tordorlon en electuorse unos 6O horos, por eso se opto por
uno primero oproximocion estudiondo ms en detolle lo situocion en coso de ser
necesorio. Ll grlico resultonte de estos simulociones viene dodo por:
j=1;
tor lnlclo=1.10.(|ength(onunclo)-20)
tln=lnlclo - 20 -1;
[plece_meon,plece_std]=serledltt(tromes_copturodos,'bmp',lnlclo,tln);
[moxcorr_meon,corr_meon]=corre|oclon(plece_meon,spot_meon);
corre|_meon(j)=moxcorr_meon;
[moxcorr_std,corr_std]=corre|oclon(plece_std,spot_std);
Lstudio del metodo de deteccion 7S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 14. CorreIacon ue anunco ue Coca-CoIa
Codo uno de los volores ohl representodos es el resultodo de correlocionor
uno secuencio de 2O lromes de un onuncio con lo version completo del mismo
onuncio grobodo en otro conol. Como vimos en el grlico onterior los onuncios
tienen uno longitud del orden de 7SO lromes. Al ir cogiendo los secuencios de 1O
en 1O tenemos como resultodo 7SO71O = 7S volores que son el numero de
correlociones electuodos.
vemos o
continuocion un ejemplo
de correlocion de uno
secuencio de 2O lromes
de un onuncio con lo otro
Lstudio del metodo de deteccion 76
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
version del mismo onuncio(en este coso del onuncio de Coco-Colo):
Ig. 15. EjempIo ue correIacon ueI anunco Coca-CoIa
vemos que el mximo se do ol linol de los correlociones reolizodos. Ll volor
es O.93788, que ser el resultodo que dor como solido lo correlocion electuodo.
Abojo vemos los secuencios cuyo correlocion ho dodo ese volor mximo, osl como
los volores de inicio y lin de estos secuencios dentro de los onuncios donde estn
contenidos.
Los volores representodos en lo liguro 14 no son ms que los volores
mximos de correlociones como los de lo liguro 1S. Ln lo liguro 14 representomos
uno simulocion que rellejo todos los posibles cosos (reolmente un 1O7) que se
pueden dor en lo comporocion de ombos onuncios. 5implemente con lo observocion
de lo grlico vemos que lo deteccion se produce de lormo correcto gron porte de los
veces, y que esto no se consigue en otros cuontos. lero necesitomos cuontilicor de
olguno lormo este resultodo, poro osl poder comporor con otros metodos o
Lstudio del metodo de deteccion 77
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
solomente poro sober los porcentojes de outentico o lolso deteccion electuodos.
loro ello se reolizoron dos lunciones:
ca|cu|a_porcenta[e: tiene como entrodos el vector que se represento en
lo liguro 14 y un umbrol que nosotros estoblezcomos. Lo solido ser el
porcentoje del numero de dotos sobre el totol que se encuentron por
encimo de ese umbrol. 5u codigo es:
ca|cu|a_umbra|: esto luncion reolizo lo toreo inverso que lo onterior.
1iene como entrodos el vector y el porcentoje de deteccion deseodo. Lo
solido ser el umbrol de deteccion que hobr que estoblecer poro
conseguir dicho porcentoje de deteccion. 5er esto lo luncion que
usoremos principolmente poro evoluor este metodo, estobleciendo unos
porcentojes y volorondo los umbroles necesorios en los distintos
comporociones reolizodos. 5u codigo es:
lunction [porcentaje]=calcula_porcentaje(correl, umbral);
cont=0;
lor i=J:size(correl,2)
il correl(i)>=umbral;
cont=cont+J;
end
Lstudio del metodo de deteccion 78
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
loro probor experimentolmente este metodo vomos o comporor los versiones
de los mismos onuncios, poro posteriormente comporor onuncios dilerentes, viendo
osl lo lolso y outentico deteccion. A continuocion vemos los resultodos de los
umbroles necesorios poro conseguir esos porcentojes de deteccion en todos los
simulociones reolizodos.
Volkswagen Seven Up Coca-Cola
% MEAN STD MEAN STD MEAN STD
90 0.67 0.63 0.78 0.86 0.88 0.92
80 0.7 0.73 0.84 0.92 0.96 0.96
70 0.74 0.8 0.91 0.95 0.98 0.98
Volks vs SevenUp Volks vs Coca Coca vs SevenUp
% MEAN STD MEAN STD MEAN STD
10 0.98 0.97 0.98 0.97 0.98 0.96
lunction [umbral]=calcula_umbral(correl, porcentaje);
umbral=J;
cont=0;
porc=0;
il porcentaje == 0
umbral=max(correl);
else
while porc<porcentaje;
lor i=J:length(correl)
il correl(i)>=umbral
cont=cont+J;
Lstudio del metodo de deteccion 79
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
20 0.95 0.94 0.97 0.95 0.97 0.92
30 0.93 0.91 0.96 0.92 0.95 0.90
Ln lo primero toblo tenemos los umbroles necesorios, de los dos tecnicos
utilizodos, poro lo obtencion de los porcentojes de deteccion expuestos. Lse volor
de umbrol es el que oseguro que, por ejemplo, en grlicos como el de lo liguro 14,
el porcentoje deseodo de volores este por encimo de dicho umbrol.
Ln lo segundo toblo tenemos comporociones entre distintos onuncios, por lo
que nos intereso que no hoyo deteccion olguno. Asl, cogemos porcentojes de
deteccion bojos poro ver cuoles son los umbroles que nos oseguron dicho
porcentoje. Le esto lormo podemos comporor los umbroles obtenidos en lo primero
toblo y ver si con esos umbroles se obtienen muchos lolsos detecciones entre
onuncios distintos.
3.2.1.2 Conc|us|ones
Lespues de un simple estudio de los resultodos obtenidos vemos cloromente
que con este metodo no podemos detector correctomente los onuncios o lo vez que
descortomos los onuncios que no se corresponden con el comporodo. 5i
observomos lo primero toblo obtenemos que nos es necesorio un umbrol de O.6
oproximodomente poro conseguir uno deteccion de ms del 9O7 en los tres
onuncios. 5i ese mismo umbrol lo oplicomos con lo luncion colculo_porcentoje o los
Lstudio del metodo de deteccion 8O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
otros tres simulociones, obtenemos unos porcentojes de lolso deteccion de ms del
8O7 en todos los cosos.
Obviomente este metodo no nos sirve poro logror lo deteccion de los
onuncios duronte el 1iempo de Observocion. lubo que desorrollor y probor otros
metodos poro logror nuestro objetivo.
3.2.2 MTODO 2. DIFLRLNCIA Y DIVI5IN LN UN VLCTOR
3.2.2.1 Desarro||o
loro reolizor este nuevo metodo trobojomos sobre el onterior. Usomos lo
mismo tecnico poro lo obtencion de los dotos, pero con onterioridod hocemos
divisiones de los imgenes dilerencio. 5e hon utilizodo divisiones en 4, 9 y 16
cuodros del mismo tomono y tombien en 2 y 4 lilos y columnos. lueron multiples
los simulociones reolizodos y no se quiere obrumor ol lector con un moremgnum
de dotos que o lo postre no nos dieron unos resultodos sotisloctorios. Como ejemplo
ponemos los toblos que obtuvimos ol reolizor los simulociones en uno de los
muchos que se reolizoron:
Tab|a de umbra|es:
Valores Antiguos 4 Divisiones 16 Divisiones
% MEAN STD MEAN STD MEAN STD
90 0.67 0.63 0.84 0.71 0.81 0.69
Lstudio del metodo de deteccion 81
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
80 0.7 0.73 0.88 0.77 0.84 0.71
70 0.74 0.8 0.96 0.89 0.91 0.75
Valores Antiguos 2 Divisiones Filas 2 Divisiones Columnas
% MEAN STD MEAN STD MEAN STD
90 0.67 0.63 0.80 0.78 0.81 0.75
80 0.7 0.73 0.86 0.83 0.85 0.81
70 0.74 0.8 0.98 0.92 0.98 0.96
Valores Antiguos 4 Divisiones Filas 4 Divisiones Columnas
% MEAN STD MEAN STD MEAN STD
90 0.67 0.63 0.83 0.71 0.83 0.70
80 0.7 0.73 0.87 0.78 0.88 0.76
70 0.74 0.8 0.97 0.86 0.97 0.94
9 Divisiones
% MEAN STD
90 0.79 0.67
80 0.86 0.73
70 0.95 0.75
vemos los dilerentes tecnicos que se proboron. Los dotos se siguen
orgonizondo en un solo vector, con los volores de los divisiones uno tros otro.
1odovlo no seporomos en lilos los dotos obtenidos de codo imogen, como hemos
comentodo con onterioridod. Lstos toblos hon sido hollodos en lo simulocion de lo
comporocion de los dos versiones del onuncio de volkswogen. 5e elobororon toblos
iguoles poro los otros dos onuncios, llegondo o lo conclusion de que uno de los
mejores tecnicos ero lo division en 4 cuodros iguoles y en 4 lilos de lo imogen
dilerencio. Lel estudio de los dotos obtenidos tombien se dedujo que el clculo de
lo vorionzo oportobo menos inlormocion que lo medio, o lo vez que cousobo uno
Lstudio del metodo de deteccion 82
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
moyor corgo computocionol que esto ultimo. lor ello de ohoro en odelonte solo
utilizoremos lo medio.
loro lo consecucion de los dilerentes tecnicos utilizodos no hubo ms que
modilicor los lunciones que yo vimos en el metodo onterior. A continuocion
exponemos uno de ellos, resenondo que el resto de tecnicos se boson en los
mismos lormulos de progromocion.
lunction [serie,serie2]=seriedill_div(imag,lormat,inicio,lin);
division=4;
division_lila=240/(division)(J/2);
division_col=220/(division)(J/2);
lor i=inicio:lin
s=[imag,int2str(i),'.',lormat];
imagen=retoca(s);
div=0;
lor j=J:(division)(J/2)
lor k=J:(division)(J/2)
div=div+J;
il i>inicio
dilerencia=imabsdill(imagen((j-J)-division_lila+J:j-division_lila,(k-J)-division_col+J:k-division_col)
,imagen_ant((j-J)-division_lila+J:j-division_lila,(k-J)-division_col+J:k-division_col));
Lstudio del metodo de deteccion 83
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
loro probor lo lolso deteccion utilizomos los mejores tecnicos encontrodos,
que ero lo division en 4 cuodros y en 4 lilos. lollomos tombien lo toblo de
umbroles, obteniendo:
Vo|kswagen vs 5even Up Vo|kswagen vs Coca Co|a
Valores
Antiguos
4 Div 4 Filas
% MEAN MEAN MEAN
10 0.98 0.98 0.98
20 0.95 0.98 0.98
30 0.93 0.98 0.98
70 - 0.93 0.94
80 - 0.90 0.91
90 - 0.86 0.87
Valores
Antiguos
4
Divisiones
4 Filas
% MEAN MEAN MEAN
10 0.98 0.96 0.94
20 0.97 0.93 0.91
30 0.96 0.87 0.87
70 - 0.73 0.74
80 - 0.68 0.69
90 - 0.64 0.65
5even Up vs Coca Co|a
Valores Antiguos 4 Divisiones 4 Filas
% MEAN MEAN MEAN
10 0.98 0.97 0.93
20 0.97 0.97 0.92
30 0.95 0.97 0.92
70 - 0.92 0.89
80 - 0.91 0.85
90 - 0.89 0.84
3.2.2.2 Conc|us|ones
1ros un estudio de los dotos obtenidos no nos quedo ms que desechor este
metodo. Los resultodos son prcticomente iguol de molos que en el primer metodo.
loro oseguror lo correcto deteccion tenemos que estoblecer un umbrol que ol
oplicorlo o los correlociones cruzodos nos do porcentojes de lolso deteccion de ms
de un 8O7. Obviomente este metodo no nos sirve poro detector correctomente los
onuncios, osl que tenemos que seguir buscondo.
Lstudio del metodo de deteccion 84
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
3.2.3 MTODO 3. DIFLRLNCIA Y 5LPARACIN
3.2.3.1 Desarro||o
vomos o probor ohoro un metodo distinto consistente en seporor los medios
de los volores positivos y negotivos resultontes o lo horo de restor los dos
imgenes. Cuondo reolizomos lo medio, ombos volores, positivos y negotivos, se
compenson, oportndonos o priori mucho ms inlormocion si seporomos ombos
volores. Los volores positivos nos indicon que ese plxel en lo imogen octuol tiene
moyor intensidod que en lo onterior, y los negotivos nos indicon justo lo controrio.
Ahoro reolizoremos un combio en lo lormo de olmocenomiento de los volores
obtenidos, proboremos o seporor los medios de los volores positivos y negotivos en
dos vectores, reolizondo posteriormente lo correlocion con el trozo de onuncio
copturodo. Lsto correlocion se reolizor tonto de lormo conjunto, es decir, ombos
vectores o lo vez, correlocionondo lo motriz obtenido con lo motriz de lo bose de
dotos, osl como de lormo seporodo, hociendolo con codo vector con el
correspondiente. Peolizoremos los pruebos olmocenondo los volores tonto en un
vector (olmocenondo volores positivos y negotivos de lormo consecutivo) como en
dos vectores y veremos si lo seporocion en vectores mejoro olgo los otros
resultodos.
A continuocion vemos un ejemplo de los dos lormos de olmocenomiento:
Lstudio del metodo de deteccion 8S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 16. AImacenamenIos ue anunco con eI meIouo 3
lodemos ver que lo lormo es lo mismo, con lo dilerencio de que en lo
primero imogen es un solo vector con el doble de longitud que en lo segundo, yo
que tenemos los mismos dotos que en los dos vectores de obojo pero puestos de
lormo consecutivo negotivo tros positivo.
londremos unos toblos de ejemplo de entre todos los que se reolizoron,
poro que el lector puedo oprecior los resultodos que se obtuvieron con este metodo.
5e hon elegido los toblos que nos muestron los peores cosos de los simulociones
reolizodos:
Lstudio del metodo de deteccion 86
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Tab|a de umbra|es:
Seven Up
Pos Neg Pos Neg 2 vectores
% 1 SOLO VECTOR CONJUNTA POSIT NEGAT
90 0.981 0.981 0.639 0.641
80 0.984 0.984 0.851 0.800
70 0.987 0.987 0.880 0.871
Volkswagen vs Seven up
Pos Neg Pos Neg 2 vectores
% 1 SOLO VECTOR CONJUNTA POSIT NEGAT
10 0.993 0.993 0.993 0.981
20 0.991 0.991 0.939 0.926
30 0.989 0.989 0.900 0.904
70 0.961 0.961 0.802 0.778
80 0.944 0.944 0.729 0.728
90 0.910 0.910 0.654 0.647
3.2.3.2 Conc|us|ones
Los resultodos de este ultimo metodo utilizodo porecen ser un buen punto de
portido, yo que lo deteccion del onuncio esto bostonte gorontizodo. Lxiste un
problemo o lo horo de lo lolso deteccion, porque observondo los umbroles y
porcentojes obtenidos, si conseguimos un porcentoje de deteccion del 9O7 o ms,
detectorlomos tombien sobre un 3O7 de onuncios incorrectos.
vemos que lo seporocion en vectores de los volores positivos y negotivos no
mejoro los resultodos de un solo vector. 5i observomos los dotos de los
correlociones individuoles de los volores positivos y negotivos vemos que no nos
sirven poro detector o desechor un onuncio de entre los dems. Los resultodos de
Lstudio del metodo de deteccion 87
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
lo correlocion conjunto son identicos o los que obtenemos cuondo olmocenomos los
volores de lormo sucesivo en un solo vector.
Ln conclusion, hemos mejorodo olgo los resultodos que tenlomos
onteriormente, pero sigue sin ser un buen metodo con el que veomos que
trobojondo por esto llneo consigomos lo tecnico delinitivo.
3.2.4 MTODO 4. DIFLRLNCIA Y DIVI5IN LN UNA MATRIZ
3.2.4.1 Desarro||o
Ln este metodo vomos o probor ohoro o seporor lo imogen en cuodros del
mismo tomono (coso que yo hicimos), pero olmocenondo los volores de codo
division en un vector o lilo dilerente de lo motriz. Los columnos de lo motriz, como
yo comentomos, se correspondern o imgenes dilerentes. Lespues
correlocionoremos lo motriz entero de lormo conjunto con otro motriz y los lilos de lo
motriz (divisiones en cuodros de lo imogen) de lormo seporodo con los lilos
correspondientes de otro motriz.
Pecordemos que seguimos trobojondo con lo imogen dilerencio. Ln todos los
metodos que hemos visto hosto ohoro, incluido este, cuondo hoblomos de dividir lo
imogen siempre nos relerimos o lo imogen dilerencio.
Lo division se reolizo en 4 cuodros iguoles y los toblos resultontes son:
Lstudio del metodo de deteccion 88
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Tab|a de Umbra|es:
Seven Up
4 Cuadros 4 Cuadros
% 1 SOLO
VECTOR
CONJUNTA Cuadro 1 Cuadro 2 Cuadro 3 Cuadro 4
90 0.87 0.573 0.771 0.803 0.837 0.720
80 0.93 0.760 0.811 0.847 0.879 0.816
70 0.95 0.896 0.886 0.907 0.941 0.871
Volkswagen vs Seven Up
4 Cuadros 4 Cuadros
% 1 SOLO
VECTOR
CONJUNTA Cuadro 1 Cuadro 2 Cuadro 3 Cuadro 4
10 0.98 0.953 0.994 0.994 0.982 0.987
20 0.98 0.841 0.922 0.934 0.950 0.920
30 0.98 0.767 0.890 0.873 0.921 0.902
70 0.93 0.606 0.772 0.774 0.826 0.802
80 0.90 0.590 0.761 0.743 0.807 0.744
90 0.86 0.536 0.724 0.691 0.748 0.708
3.2.4.2 Conc|us|ones
vemos que lejos de mejoror los volores que yo tenlomos, los hemos
empeorodo. Lo logico nos declo que mejororlomos los resultodos, pero no ho sido
osl. Aun osl seguimos pensondo que lo division de lo imogen nos oporto uno moyor
inlormocion. Ls logico pensor que cuontos ms dotos sobre uno imogen tengomos
guordodos, ms inlormocion nos oportor lo correlocion y que lo deteccion mejoror
con su oplicocion. Aunque segun lo visto, lo tecnico de dilerenciocion de imgenes
no do los resultodos esperodos.
Lstudio del metodo de deteccion 89
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Otro conclusion cloro que socomos delinitivomente es que los volores de los
correlociones de los cuodros (lilos de lo motriz) entre sl, no nos oporton ninguno
inlormocion. Al iguol que cuondo seporbomos en vectores los volores positivos de
los negotivos, volvemos o encontror que nos oporto mucho ms lo correlocion
conjunto que lo de los lilos por seporodo.
A pesor de que los resultodos en porcentoje de deteccion son peores que los
del onterior metodo, si estudiomos los volores de los umbroles segun el porcentoje,
vemos que en este coso el umbrol vorlo ms rpidomente ol modilicor el porcentoje.
Antes nos movlomos en dilerencios entre los umbroles de centesimos, cuondo
ohoro se distoncion en decimos. Lste metodo serlo por tonto ms robusto que los
onteriores si consiguieromos dilerencior los outenticos de los lolsos detecciones.
loro lo reolizocion de los siguientes metodos se tuvieron muy presentes los
resultodos de este ultimo, que, ounque o primero visto poreclo no luncionor, lo
logico nos declo que sl lo horlo.
3.2.5 MTODO 5. DIFLRLNCIA, DIVI5IN Y 5LPARACIN
3.2.5.1 Desarro||o
Ln este metodo quisimos combinor los dos ultimos metodos utilizodos. lor
uno porte estobo lo seporocion de los resultodos positivos y negotivos de lo
Lstudio del metodo de deteccion 9O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
dilerenciocion de los imgenes. Y por otro lo division de lo imogen en cuodros de
iguol tomono, olmocenondo codo cuodro en uno lilo de lo motriz. Ll primero nos
hoblo dodo buenos resultodos de deteccion; el segundo nos poreclo que podlo
luncionor poro uno mejor deteccion.
linolmente dividimos lo imogen dilerencio en cuodros de iguol tomono y
seporomos los volores positivos de los negotivos. Los dotos obtenidos los
olmocenbomos en lilos, correspondiendose codo uno o un determinodo cuodro.
Como vimos que lo seporocion en vectores de los volores positivos y negotivos no
mejorobo los resultodos de un solo vector, olmocenoremos esos volores en uno
mismo lilo, de lormo consecutivo.
5e reolizoron simulociones con 4, 9 y 16 cuodros y se constoto que los
resultodos mejorobon consideroblemente conlorme lbomos oumentondo el numero
de cuodros. losto ohoro siempre hoblomos reolizodo los pruebos simulondo que el
1iempo de Observocion ero un segundo, con lo que tros restorle el tiempo de
combio de conol nos resultobon uno copturo de 2O lromes del conol. Ahoro
oumentoremos el tiempo de explorocion del conol en O.4 segundos, con lo que
posomos de 2O o 3O lromes copturodos. A priori, ol iguol que lo division en un
moyor numero de cuodros supuestomente mejoro los resultodos, el exploror un
moyor tiempo de conol, redundo en uno moyor inlormocion recogido y por ende en
uno mejor deteccion.
Lstudio del metodo de deteccion 91
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Lxpondremos ohoro solo los resultodos conseguidos con lo division en 16
cuodros, que yo dijimos, eron los mejores. Lnlrentoremos los resultodos
conseguidos con 2O y 3O lromes poro uno mejor comporocion y se presentorn los
toblos reolizodos con todos los onuncios y sus correlociones cruzodos. Como yo se
dijo los volores de correlocion que se tomon son los de lo correlocion conjunto.
Tab|a de Umbra|es
Seven Up
16Div+PosNeg
%
10 20 30 40 50 60 70 80 90 95
20 frames 0.9850 0.9830 0.9790 0.9740 0.9680 0.9640 0.9480 0.9420 0.9290 0.9060
30 frames 0.9830 0.9820 0.9800 0.9750 0.9700 0.9640 0.9440 0.9360 0.9250 0.9130
Volkswagen
16Div+PosNeg
%
10 20 30 40 50 60 70 80 90 95
20 frames 0.9930 0.9890 0.9820 0.9790 0.9750 0.9710 0.9670 0.9630 0.9560 0.9520
30 frames 0.9920 0.9900 0.9850 0.9810 0.9750 0.9740 0.9690 0.9640 0.9570 0.9500
Coca Cola
16Div+PosNeg
%
10 20 30 40 50 60 70 80 90 95
20 frames 0.9940 0.9930 0.9920 0.9910 0.9900 0.9880 0.9850 0.9790 0.9680 0.9370
30 frames 0.9930 0.9930 0.9910 0.9900 0.9890 0.9870 0.9850 0.9800 0.9690 0.9400
Volkswagen vs Seven Up
16Div+PosNeg
%
10 20 30 40 50 60 70 80 90 95
20 frames
0.9370 0.9030 0.8780 0.8500 0.8370 0.8040 0.7810 0.7430 0.7200 0.6920
30 frames 0.9090 0.8730 0.8490 0.8280 0.7900 0.7600 0.7410 0.7210 0.7070 0.6830
Volkswagen vs Coca Cola
16Div+PosNeg
%
10 20 30 40 50 60 70 80 90 95
20 frames 0.8830 0.8550 0.8280 0.8120 0.8010 0.7580 0.7480 0.7100 0.6910 0.6670
30 frames 0.8350 0.8230 0.7810 0.7420 0.7290 0.7050 0.6870 0.6760 0.6560 0.6390
Lstudio del metodo de deteccion 92
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Seven Up vs Coca Cola
16Div+PosNeg
%
10 20 30 40 50 60 70 80 90 95
20 frames 0.8960 0.8730 0.8570 0.8370 0.8070 0.7760 0.7360 0.7250 0.7050 0.6670
30 frames 0.8440 0.8120 0.8030 0.7840 0.7670 0.7330 0.7080 0.6830 0.6540 0.6400
3.2.5.2 Conc|us|ones
vemos que los resultodos de lo deteccion correcto con 3O lromes con
respecto o los reolizodos con 2O lromes son muy porecidos y que los de lo lolso
deteccion son cloromente mucho mejores con 3O lromes de copturo. A primero visto
es lcil observor que podemos obtener uno deteccion prcticomente totol o lo vez
que descortomos cosi todos los lolsos onuncios. Le todos lormos esto se ver
mucho mejor si exponemos los resultodos numericos. vomos o escoger un umbrol,
que elegiremos del onuncio ms conllictivo y o continuocion pondremos los
porcentojes de deteccion outentico y lolso que se obtendrlon en los otros
simulociones. Virondo el onuncio de 5even Up como el onuncio crltico, obtenemos
un umbrol de 0.91.
Ljecutondo lo orden:
poicenIaje = caIcuIa_poicenIaje ,coiieI,sIze,coiieI,1;,.;, O.91;
Obtenemos los siguientes volores:
Lstudio del metodo de deteccion 93
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
ANUNCIOS Con 20 frames Con 30 frames
Umbral 0.929 Umbral 0.91 Umbral 0.92
Volkswagen 95.94 % 97.26 % 97.26 %
Seven up 90 % 97.22 % 91.66 %
Coca Cola 95.95 % 97.26 % 97.26 %
Volkswagen vs Seven
up
13.7 % 11.11 % 8.33 %
Volkswagen vs Coca
Cola
0 % 0 % 0 %
Coca Cola vs Seven up 0 % 0 % 0 %
5e podrlo jugor con el umbrol poro bojor lo lolso deteccion del onuncio
volkswogen con el de 5even up, pero eso redundorlo en disminuir lo deteccion de
los onuncios.
Ln conclusion, tenemos un metodo bostonte bueno, que nos oseguro uno
deteccion muy olto o lo vez que descortomos de lormo correcto un gron porcentoje
de lolsos detecciones. A pesor de esto nuestro objetivo sigue siendo logror un 1OO7
de deteccion o lo vez que nos oseguromos un O7 de lolsos detecciones. Codo vez
nos encontromos ms cerco y yo hemos encontrodo olgunos tecnicos que hemos
comprobodo que luncionon.
3.2.6 MTODO 6. DIVI5IN
3.2.6.1 Desarro||o
Anteriormente encontromos un metodo muy bueno bosodo en lo division de
lo imogen en 16 cuodros, restondo esos cuodros con los de lo imogen onterior,
Lstudio del metodo de deteccion 94
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
seporondo lo porte positivo de lo negotivo y colculondo sus medios. Los resultodos
eron muy buenos pero no delinitivos, hoce lolto mejororlos, por lo que ohoro
proboremos olgo nuevo. No holloremos lo dilerencio con lo imogen onterior, sino
que utilizoremos directomente lo medio de codo cuodro. A codo uno le osignoremos
uno lilo y despues o lo horo de lo deteccion correlocionoremos los motrices
obtenidos. Apuntor que este estudio lo hemos reolizodo con lo copturo de 1 segundo
de conol, es decir, tenemos 2O lromes de dicho conol (recordor que le tenemos que
restor el tiempo que tordo en combior de conol).
Lste combio de metodo, cuondo siempre hosto ohoro hemos trobojodo con
los imgenes dilerencio, viene motivodo por lo observocion de que con lo
dilerenciocion de imgenes consecutivos perdemos mucho inlormocion relevonte. Al
ser dos lromes consecutivos prcticomente iguoles, cosi siempre tendremos
imgenes completomente negros. Cuondo se expuso uno imogen dilerencio, en ello
se notobo el perlil del movimiento que hoblo, pero en lo gron moyorlo no se oprecio
gron coso. 5i el ojo humono no puede distinguir entre dos imgenes dilerencio,
tompoco ser copoz el computodor. vemos olgunos ejemplos grlicos:
Lstudio del metodo de deteccion 9S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 17. EjempIos ue mgenes uIerenca
Lo gron moyorlo de imgenes dilerencio son como los dos ultimos,
completomente negros. Lsto nos perjudico o lo horo de lo lolso deteccion, pues dos
imgenes que en un principio son totolmente dilerentes cuondo se reston con lo
onterior pueden dor lugor o dos imgenes dilerencio totolmente negros que serlon
exoctomente iguoles.
A continuocion exponemos todos los resultodos obtenidos en los
simulociones, comporndolos con los que se tenlon en el onterior metodo.
Tabla de Umbrales
Seven Up
16Div
%
0 10 20 30 40 50 60 70 80 90 100
Con Div
PosNeg
0.9905 0.9830 0.9820 0.9800 0.9750 0.9700 0.9640 0.9440 0.9360 0.9250 0.8960
Sin Div
PosNeg
0.9975 0.9930 0.9910 0.9890 0.9870 0.9840 0.9800 0.9760 0.9610 0.9330 0.8470
Volkswagen
16Div
%
0 10 20 30 40 50 60 70 80 90 100
Con Div
PosNeg
0.9960 0.9920 0.9900 0.9850 0.9810 0.9750 0.9740 0.9690 0.9640 0.9570 0.8850
Sin Div
PosNeg
0.9978 0.9950 0.9930 0.9920 0.9910 0.9900 0.9860 0.9830 0.9800 0.9770 0.9320
Coca Cola
16Div
%
0 10 20 30 40 50 60 70 80 90 100
Lstudio del metodo de deteccion 96
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Con Div
PosNeg
0.9980 0.9930 0.9930 0.9910 0.9900 0.9890 0.9870 0.9850 0.9800 0.9690 0.8990
Sin Div
PosNeg
0.9987 0.9970 0.9960 0.9960 0.9960 0.9950 0.9950 0.9940 0.9930 0.9920 0.9900
Volkswagen vs Seven up
16Div
%
0 10 20 30 40 50 60 70 80 90 100
Con Div
PosNeg
0.9473 0.9090 0.8730 0.8490 0.8280 0.7900 0.7600 0.7410 0.7210 0.7070 0.6110
Sin Div
PosNeg
0.7230 0.5200 0.4300 0.4030 0.3820 0.3530 0.3250 0.2890 0.2500 0.2050 0.1430
Volkswagen vs Coca Cola
16Div
%
0 10 20 30 40 50 60 70 80 90 100
Con Div
PosNeg
0.8833 0.8350 0.8230 0.7810 0.7420 0.7290 0.7050 0.6870 0.6760 0.6560 0.5220
Sin Div
PosNeg
0.8570 0.7960 0.7740 0.7150 0.6980 0.6800 0.6500 0.6350 0.6000 0.5610 0.4330
Coca Cola vs Seven Up
16Div
%
0 10 20 30 40 50 60 70 80 90 100
Con Div
PosNeg
0.8769 0.8440 0.8120 0.8030 0.7840 0.7670 0.7330 0.7080 0.6830 0.6540 0.6250
Sin Div
PosNeg
0.7864 0.6230 0.5840 0.5240 0.4820 0.4040 0.3220 0.0850 0.0680 0.0280 -0.0390
RL5UMLN DATO5 OBTLNIDO5
Volks 7up Coca Volks vs 7up Volks vs Coca Coca vs 7up
Umbral de 100% de
deteccin
Umbral de 0% de deteccin
0.932 0.847 0.99 0.723 0.857 0.7864
Lstudio del metodo de deteccion 97
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
3.2.6.2 Conc|us|ones
Ahoro si que porece que hemos encontrodo el metodo delinitivo. A primero
visto se ve que poniendo el mximo umbrol con el que se detecton correctomente
todos los onuncios ( en el onuncio de 5even up) no hoy nodo ms que uno
pequeno lolso deteccion en el coso del onuncio Vo|kswagen vs Coca Co|a.
lodemos jugor con el umbrol de lormo que obtengomos el 1OO7 de onuncios
detectodos correctomente o el O7 de onuncios detectodos incorrectomente. A
continuocion se exponen unos ejemplos:
ANUNCIOS Con Div PosNeg Sin Div PosNeg
Umbral 0.847 Umbral 0.9
Volkswagen 95.94 % 100 % 100 %
Seven up 90 % 100 % 98.63 %
Coca Cola 95.95 % 100 % 100 %
Volkswagen vs Seven
up
13.7 % 0 % 0 %
Volkswagen vs Coca
Cola
0 % 2.70 % 0 %
Coca Cola vs Seven up 0 % 0 % 0 %
Ls importonte observor que los porcentojes de 98.63 y 2.7O son con
respecto o 73 o 74 muestros, yo que o lo horo de reolizor el estudio se ho probodo
lo correlocion de 1O en 1O lromes poro obtener uno menor corgo computocionol. Ls
decir, su signilicodo es que solo en un coso o dos del totol no ho luncionodo. Ln
estudios sucesivos se probor con un poso menor y veremos cuol es el verdodero
porcentoje.
Lstudio del metodo de deteccion 98
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
loy que destocor que este estudio lo hemos hecho con 2O lromes.
Pecordemos que ol posor de 2O o 3O lromes en el onterior metodo obtuvimos uno
mejoro consideroble. lor lo tonto es de esperor que ol oumentor los lromes el
resultodo seo prcticomente perlecto. 1ombien mejorobon los resultodos ol
oumentor los cuodros, osl que ese puede ser un pormetro que podemos combior
tombien.
Ln delinitivo, trobojondo con este metodo porece que encontroremos lo
tecnico delinitivo con lo que detector correctomente todos los onuncios, teniendo
odems uno lolso deteccion nulo. Le esto lormo no necesitoremos usor ningun otro
procedimiento despues de este, ohorrondo en corgo computocionol.
Ln el siguiente oportodo nos centroremos en este metodo y entroremos ms
en detolle. veremos todos los simulociones reolizodos poro comprobor su correcto
luncionomiento y se reolizorn nuevos estudios poro ver como, voriondo
determinodos pormetros como el 1iempo de Observocion, mejoron los resultodos.
3.3 ME1ODO DE DIVI5IN DE IMOENE5
3.3.1 INTRODUCCIN
Lste es el metodo delinitivo que usoremos poro olmocenor los potrones de
secuencio de vldeo digitol. Lespues del estudio onterior se reolizoron otros muchos
Lstudio del metodo de deteccion 99
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
simulociones y se obtuvieron unos resultodos ms concluyentes. lor ello, por ser el
metodo que usoremos delinitivomente en nuestro oplicocion de deteccion de
onuncios y por constituir el corozon de nuestro progromo, nos detendremos un poco
ms poro su explicocion, empezondo por detollor poso o poso los operociones
reolizodos poro su obtencion.
Ll progromo copturo uno imogen codo 4Oms (o lo mismo lrecuencio que lo
television dispone los imgenes), lo proceso y olmoceno los dotos obtenidos. Ll
procesomiento reolizodo consiste en lo conversion en blonco y negro de lo imogen,
redimensionomiento de esto, division en cuodros del mismo tomono y en el clculo
de lo medio de lo intensidod de codo cuodro. A continuocion se expone lo explicodo
de uno lormo visuol.
Lstudio del metodo de deteccion 1OO
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 13. VaIores ue InIensuau ue Ia Imagen
Ig. 19. Imagen uvuua y numeracon Ig. 2O. VaIores meuos ue nIensuau ue
caua cuauro
Los dotos se von olmocenondo en uno motriz en lo que codo lilo
corresponde o un cuodro de lo division y codo columno o uno imogen. Ln el
Lstudio del metodo de deteccion 1O1
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
ejemplo tendremos uno motriz de 2S lilos con numero de columnos iguol ol numero
de lromes copturodos. Ln lo bose de dotos tendremos lo motriz correspondiente o
un onuncio entero (que se hon obtenido en el modulo de oprendizoje), hollondo el
progromo en el modulo de deteccion motrices de los secuencios de television
procesodos, que sern correlocionodos con todos los onuncios de lo bose de dotos,
comprobondo si dicho secuencio pertenece o ese onuncio o no. loro ello
estobleceremos un umbrol que ser el que determine si pertenece o no.
lemos probodo exhoustivomente este metodo, voriondo todos los posibles
pormetros medionte los cuoles conseguir un 1OO7 de electividod. loro ello se ho
modilicodo el numero de lromes de lo secuencio copturodo entre 2O y 4S (lromes
resultontes de lo observocion entre 1 y 2 segundos, ol quitorle 2OOms que tordo el
progromo en combior de conol). 1ombien hemos oumentodo lo bose de dotos
conlorme lbomos ovonzondo el estudio. Y, por ultimo, se ho comprobodo lo
outenticidod de lo deteccion, es decir que si cuondo el progromo detecto uno
secuencio como perteneciente o un onuncio est detectondo lo secuencio correcto o
no.
Aqul queremos hocer un inciso en que los simulociones reolizodos segulon
electundose con correlociones que tomobon lo secuencio o comporor de 1O en 1O
lromes. Ls decir, de todo el espocio muestrol que se podrlo procesor solo se ho
usodo un 1O7 poro los simulociones. Cuondo obtenemos un 1OO7 de detecciones,
Lstudio del metodo de deteccion 1O2
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
este 1OO7 esto relerido ol 1O7 del espocio muestrol que hemos considerodo.
Creemos que los resultodos se ojuston o lo reolidod o pesor de estor oproximodos.
Lsto es necesorio debido o lo que yo comentomos, o lo durocion excesivo de estos
simulociones. Los ultimos simulociones reolizodos en este estudio duroron olrededor
de dos dlos con lo ClU del ordenodor ol 1OO7 de uso duronte todo ese tiempo. 5i
ussemos un 1OO7 del espocio muestrol el tiempo que durosen esos simulociones
se verlo multiplicodo por 1O, es decir, codo uno de los simulociones tordorlo en
linolizor 2O dlosllll Lespues de explicor esto es comprensible el por que de
nuestro oproximocion.
A continuocion se expone todo el proceso reolizodo, lo evolucion de los
resultodos y por ultimo lo conclusion linol.
3.3.2 DL5ARROLLO
Ln el onterior estudio probbomos con uno division en 16 cuodros y un
estudio del conol de 1 segundo, es decir, 2O lromes copturodos. Los porcentojes de
deteccion lueron:
ANUNCIOS Div 16 cuadros
Umbral 0.847 Umbral 0.9
Volkswagen 100 % 100 %
Seven up 100 % 98.63 %
Coca Cola 100 % 100 %
Volkswagen vs Seven
up
0 % 0 %
Volkswagen vs Coca 2.70 % 0 %
Lstudio del metodo de deteccion 1O3
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Cola
Coca Cola vs Seven up 0 % 0 %
Lespues de obtener estos resultodos probomos si oumentondo los lromes
copturodos se obtiene uno mejorlo sustonciol. Asl reolizomos uno simulocion con 16
cuodros y 3O lromes copturodos (1.4 segundos de observocion).
Volks 7up CocaCola Volks vs 7up Volks vs Coca Coca vs 7up
Umbral de 100% de deteccin Umbral de 0% de deteccin
0.933 0.915 0.99 0.72619 0.84568 0.78545
Deteccin con Umbral 0.9
100 % 100 % 100 % 0 % 0 % 0 %
5e observo que si estoblecemos como umbrol cuolquier volor entre O.84S68
y O.91S obtendremos los mismos resultodos que los que hemos puesto orribo, es
decir, un 1OO 7 de correcto deteccion y un O7 de lolso deteccion. Lsto es lo que
siempre hemos estodo buscondo, por lo tonto lo que horemos o portir de ohoro es
probor este metodo todo lo que podomos, osegurondo su electividod en todos los
cosos.
Como con uno division de 16 cuodros conseguimos uno electividod del 1OO
7 proboremos tombien con 9 cuodros y con 2S, viendo si los resultodos obtenidos
son iguolmente sotisloctorios. Ln los siguientes simulociones se reolizor un borrido
entre 2O y 4S lromes colculondo en codo coso el porcentoje de deteccion, el
outentico porcentoje de deteccion y lo dilerencio entre el menor umbrol de 1OO7 y
Lstudio del metodo de deteccion 1O4
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
el moyor umbrol de O7 de los simulociones. Lsto dilerencio entre umbroles es el
doto ms signilicotivo, yo que siempre que seo positivo obtendremos un resultodo
perlecto, y cuonto ms gronde seo su volor mejor ser lo discriminocion de los
lolsos detecciones.
Antes de empezor o exponer los dotos vomos o explicor un poco ms en que
consisten los simulociones reolizodos. Codo uno de los simulociones consistir en
uno comporocion de todos los onuncios que tengomos en lo bose de dotos entre sl.
Al hocer un borrido de 2O o 4S lromes, electuoremos por tonto 26 simulociones de
los que iremos olmocenondo los dotos obtenidos. Cuondo hoblomos de verdodero
deteccion, nos relerimos o si ol detector uno secuencio como perteneciente o un
onuncio, estomos detectondo reolmente eso secuencio u otro. Lsto en onuncios es
muy normol, debido ol porecido que hoy entre distintos secuencios dentro de un
mismo onuncio. Lo lormo de ver lo outentico deteccion es olmocenodo los lndices
de lo secuencio o comporor y los de lo secuencio que detectomos como ms
porecido. Lespues simplemente comporomos estos lndices, y colculomos el
porcentoje de deteccion correcto que se ho producido.
lor ultimo y ms importonte, tendremos que explicor que ser poro nosotros
lo dilerencio de umbroles. Ln codo uno de los 26 simulociones reolizodos
guordoremos el umbrol necesorio poro detector correctomente todos los onuncios en
los outo-comporociones que hemos reolizodo (umbrol mlnimo de deteccion del
Lstudio del metodo de deteccion 1OS
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
1OO7), y el umbrol obligodo poro que no detectemos incorrectomente ningun
onuncio en cuolquiero de los muchos comporociones cruzodos reolizodos (umbrol
mximo de deteccion del O7). Pestoremos en codo uno de estos cosos el umbrol
del 1OO7 menos el del O7 y el resultodo lo guordoremos en un vector que ser el
que representemos y que llomoremos dilerencio de umbroles. 5i los volores de este
vector son positivos querr decir que en todos los cosos conseguimos uno deteccion
del 1OO7 y uno nulo lolso deteccion.
D|v|s|n en 9 cuadros:
A continuocion vemos uno grlico que muestro lo dilerencio de umbroles. lor
encimo de lo llneo rojo se situon los volores positivos y que por tonto oseguron uno
deteccion perlecto.
Lstudio del metodo de deteccion 1O6
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 21. DIerenca ue umoraIes con uvson en 9 cuauros
5e ve que solo hoy unos cuontos cosos en los que lunciono el metodo. Lsto
se compruebo en los siguientes toblos, que muestron los porcentojes de deteccion
en todos los cosos. loro colculor esos porcentojes se ho usodo lo dilerencio entre
umbroles, sumndole ol mximo volor de deteccion del O7, lo mitod del volor
obsoluto de lo dilerencio de umbroles.
PORCENTAJE DE DETECCIN
FRAMES CAPTURADOS
30 31 32 33 34 35 36 37 38
Volks 100 100 100 100 100 100 100 100 100
7up 90,28 98,61 100 100 100 100 98,61 98,61 94,44
Coca 100 100 100 100 100 100 100 100 100
Volks vs
7up
0 0 0 0 0 0 0 0 0
Volks vs
Coca
0 0 0 0 0 0 0 0 0
Coca vs
7up
0 0 0 0 0 0 0 0 0
Lstudio del metodo de deteccion 1O7
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
PORCENTAJE DE AUTNTICA DETECCIN
FRAMES CAPTURADOS
30 31 32 33 34 35 36 37 38 39 40
Volks 68.49 70.83 70.83 73.61 73.61 75.00 77.78 79.17 79.17 80.56 79.17
7up 87.50 88.89 88.89 88.89 88.89 88.89 88.89 87.50 88.89 90.28 91.55
Coca 100 100 100 100 100 100 100 100 100 100 100
5olo hemos puesto uno porcion de los resultodos, que en reolidod von, como
sobemos, desde los 2O o los 4S lromes, yo que con los expuestos nos es suliciente
poro estudior los resultodos. Ln lo primero toblo vemos que solo cuondo copturomos
32, 33, 34 y 3S lromes obtenemos unos porcentojes perlectos, hecho que se
corresponde con lo liguro 21. Ln lo segundo toblo se observo que, ounque
detectemos como perteneciente o un onuncio uno secuencio de dicho onuncio, no
siempre detecto lo secuencio correcto. Lestocor que el porcentoje de outentico
deteccion es creciente con los lromes copturodos. Le ohoro en odelonte esto toblo
no lo expondremos ms, solo dejor constoncio de su reolizocion en todos los cosos
y del hecho de que siempre con el oumento del numero de lromes y con el oumento
del numero de divisiones oumenton los porcentojes de outentico deteccion.
Lstudio del metodo de deteccion 1O8
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
D|v|s|n en 16 cuadros:
Ig. 22. DIerenca ue umoraIes con uvson en 16 cuauros
lodemos percibir como hon mejorodo los resultodos. 5iempre que
copturemos ms de 21 lromes obtenemos un resultodo de deteccion perlecto.
D|v|s|n en 25 cuadros:
Lstudio del metodo de deteccion 1O9
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 23. DIerenca ue umoraIes con uvson en 25 cuauros
Los porcentojes de deteccion son perlectos. lorece ser que con lo division
en 2S cuodros hemos encontrodo el metodo delinitivo. lero todovlo nos resto hocer
ms pruebos. loro poder probor con ms gorontlos este metodo tendremos que
oumentor lo bose de dotos y ver si siguen cumpliendose estos resultodos.
Aumento de la Base de Datos
1ros los simulociones onteriores debemos probor ms el metodo utilizodo,
ounque con los 3 onuncios con los que trobojbomos hosto ohoro lunciono
perlectomente. loro ello omplioremos lo bose de dotos incluyendo S onuncios ms,
oumentondo por lo tonto en 1O los entrodos de nuestro bose de dotos (2 por codo
onuncio). Los simulociones que reolizoremos sern onlogos o los que venlomos
Lstudio del metodo de deteccion 11O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
reolizondo hosto ohoro, yo que con los dotos que obtenlomos nos es ms que
suliciente poro comporor metodos y comprobor su buen luncionomiento.
Como el metodo delinitivo que obtenlomos ero el de lo division en 2S
cuodros, empezoremos por reolizor uno simulocion con esto tecnico con lo nuevo
bose de dotos. Lsto bose de dotos estor compuesto por 8 onuncios:
volkswogen, 5even Up, Coco Colo, AquoBono, Audi- A3, 5peciol Kops, 5on
Viguel y 5unsilk
Cuyos obrevioturos son:
volks, 7up, Coco, Aquo, Audi, Kops, 5onV, 5uns
Lo simulocion se hor como hoclomos ontes, correlocionondo los onuncios
consigo mismos y todos los correlociones posibles entre ellos. lociendo clculos
nos solen 36 correlociones (8 entre si mismos y 28 cruzodos). lor el excesivo
tomono de lo toblo de porcentojes los correlociones cruzodos en los que todos los
volores seon O se omitirn (sino todos por lo menos si olgunos), osl como tombien
omitiremos volores de lo escolo de lromes copturodos.
Lstudio del metodo de deteccion 111
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 24. DIerenca ue umoraIes con uvson en 25 cuauros con 3 anuncos
PORCENTAJE DE DETECCIN
FRAMES CAPTURADOS
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
Volks 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
7up 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
Coca 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
Aqua 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
Audi 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
Kaps 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
SanM 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
Suns 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
Volks 7up 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Volks Audi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Coca 7up 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Coca Aqua 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Coca Audi 7,06 7,06 5,88 2,35 0 0 0 5,95 7,14 7,14 7,14 7,14 7,14 5,95 5,95
Coca Kaps 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Coca SanM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Coca Suns 13,7 11,11 9,72 6,94 5,56 5,56 5,56 13,89 18,06 30,56 25 19,72 16,9 16,9 14,08
7up Aqua 1,37 0 0 0 0 0 0 4,17 8,33 9,72 9,72 9,86 9,86 8,45 7,04
7up Audi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7up Kaps 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Audi SanM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Audi Suns 0 0 0 0 0 0 0 0 0 2,78 2,78 0 0 0 0
SanM Suns 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Lstudio del metodo de deteccion 112
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
PORCENTAJE AUTNTICO DE DETECCIN
FRAMES CAPTURADOS
33 34 35 36 37 38 39 40 41 42 43 44 45
Volks 86,11 87,5 87,5 86,11 88,89 90,28 90,28 90,28 90,28 91,55 91,55 91,55 91,55
7up 93,06 93,06 93,06 93,06 93,06 91,67 91,67 93,06 97,18 97,18 97,18 97,18 97,18
Coca 100 100 100 100 100 100 100 100 100 100 100 100 100
Aqua 98,61 98,61 98,61 98,61 98,61 98,61 98,61 98,61 98,59 98,59 98,59 100 100
Audi 94,12 94,12 94,12 94,05 94,05 94,05 94,05 94,05 94,05 95,24 95,24 95,24 95,24
Kaps 100 100 100 100 100 100 100 100 100 100 100 100 100
SanM 100 100 100 100 100 100 100 100 100 100 100 100 100
Suns 100 100 100 100 100 100 100 100 100 100 100 100 100
5e observo que tros el oumento de lo bose de dotos lo tecnico utilizodo no
es del todo delinitivo. Cuondo copturomos 3S, 36 o 37 lromes conseguimos unos
resultodos cosi perlectos, pero en uno de los comporociones cruzodos (entre
onuncios distintos) hoy uno lolso deteccion que debemos eliminor. 1ombien nos
domos cuento de olgo que tombien posobo en los metodos onteriores, y es que es
logico suponer que con el oumento de los lromes copturodos se oumente
monotonomente lo dilerencio de umbroles, hociendolo iguolmente los porcentojes.
lero esto
no es osl,
en todos
los
Lstudio del metodo de deteccion 113
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
simulociones reolizodos hosto el momento se observo uno luerte bojodo que es lo
cousonte de que no luncione correctomente el metodo. Uno vez que notomos esto
representomos los umbroles de 1OO7 de deteccion de los 8 onuncios y obtenemos
lo siguiente:
Ig. 25. UmoraIes ue 1OO, ue ueIeccon con uvson en 25 cuauros y con 3 anuncos
lorece ser que el problemo se encuentro en el onuncio de 5even Up. 1ros
un estudio del por que de tonto dilerencio con respecto ol resto de onuncios se llego
o uno primero conclusion: lo molo grobocion, que hoce que ounque uno imogen seo
lo mismo en ombos onuncios su correlocion seo bostonte bojo. Lo grobocion
reolizodo en dos conoles dilerentes con dos progromos tombien dilerentes, hoblo
dodo lugor o uno gron dilerencio de los colores y luminosidod de lo imogen. vemos
un ejemplo de por que pensomos que ese podlo ser el motivo de lo distoncio de los
resultodos con respecto o los otros onuncios:
Ig. 26. Msmas mgenes ueI anunco 7up graoauas en canaIes uIerenIes
Lstudio del metodo de deteccion 114
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Como se ve los imgenes dilieren bostonte. 5i el problemo luero solo uno
dilerencio de color o intensidod de lo imogen esto no olectorlo ol metodo, yo que ol
utilizor los medios y posteriormente lo correlocion como metodo de comporocion, no
nos importo el volor sino lo proporcion lineol o no entre secuencio de volores. Ll
problemo oqul es que lo segundo imogen est soturodo, perdiendose inlormocion de
los colores. Lsto se oprecio mejor ol posorlos o escolo de grises, que es lo que
utilizoremos nosotros:
Ig. 27. Msmas mgenes ueI anunco 7up graoauas en canaIes uIerenIes, en oIanco-negro
Lsto lue lo primero conclusion, pero tros un estudio ms exhoustivo se
oprecio que hoblo uno couso de moyor peso que lo onterior, ounque, sin dudo, esto
tombien inllulo en gron medido. Lsto couso es uno importonte dilerencio que se
Lstudio del metodo de deteccion 11S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
encontro en el numero de lromes que tenlomos de los dos onuncios. Lstudiomos
todos los plonos incluidos en ombos onuncios, contondo el numero de lromes que
contenlon y se oprecio que hoblo uno importonte dilerencio en el primer plono. Ln
uno version el primer plono tenlo 34 lromes y en lo otro 39. loltobon imgenes,
que no hoblon sido emitidos en lo television, lo cuol hoclo que en los simulociones,
siempre lo primero correlocion, nos diero un volor muy bojo. vemos los primero y
ultimo imgenes del primer plono de ombos onuncios.
Ig. 23. Frmer y uIImo Irame ueI prmer pIano en eI anunco ue 5even Up en Ias uos versones
guaruauas
vemos como lo primero version empiezo ms torde que lo segundo. 5i se
observo detenidomente, se ver como en lo primero imogen de lo version 1, lo chico
del onuncio yo tiene lo mono levontodo, mientros que en lo otro version lo tiene
opoyodo todovlo en el suelo. Ll ultimo lrome es exoctomente el mismo, por lo que lo
dilerencio de S lromes se encuentro en el principio.
Lstudiomos los resultodos individuoles de los 26 simulociones reolizodos
poro recorrer distintos volores de lromes copturodos, y se oprecio que siempre ero
lo primero correlocion el volor que se tomobo en el coso del onuncio de 5even Up.
Al comporor lo segundo version (que tenlo S lotogromos ms) con lo primero y no
ol reves, lo correlocion lollobo debido o esto no concordoncio con los imgenes.
vemos lo grlico de uno de estos correlociones:
Lstudio del metodo de deteccion 116
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 29. CorreIacon ue una secuenca ue un anunco ue 5even Up con Ia oIra verson ueI msmo
anunco.
vemos que el primer volor se encuentro muy por debojo del resto, siendo en
los 26 cosos osl. Como es precisomente el mlnimo volor el que cogemos, esto hoce
que los resultodos no seon verldicos. Ln lo grolico onterior vemos uno bojodo, esto
si ser motivodo por lo dilerencio de intensidod de imgenes que yo vimos, ounque
se oprecio que no es ton determinonte como lo otro couso.
Lo bojodo que vemos en lo liguro 2S, en lo simulocion del onuncio de 5even
Up, oproximodomente sobre el poso de 37 o 4O lromes, est cousodo precisomente
por lo dilerencio de lromes del primer plono. Al comporor uno secuencio de 37
lromes de un mismo plono con uno secuencio de imgenes que solo contiene 34
lromes de ese mismo plono (es decir, cogemos 3 imgenes de otro plono), lo
correlocion lollo, rellejndose eso en los resultodos.
lor todo esto, o portir de ohoro no consideroremos este onuncio poro los
comporociones outenticos, ounque sl poro los correlociones cruzodos. A
continuocion se exponen los resultodos que se obtienen sin tener en cuento dicho
onuncio:
Lstudio del metodo de deteccion 117
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 3O. DIerenca ue umoraIes con uvson en 25 cuauros, con 3 anuncos, sn eI anunco ue
7up
5in tener en cuento el onuncio de 5even Up o portir de los 34 lromes
obtenemos un resultodo perlecto. Y odems lo dilerencio de umbroles es
prcticomente monotono creciente, que es como o priori pensbomos por logico
que deblo ser. A portir de ohoro expondremos simplemente los grlicos resultontes
de todos los simulociones que se hon ido hociendo oumentondo el numero de
cuodros:
D|v|s|n en 64 cuadros:
Lstudio del metodo de deteccion 118
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 31. DIerenca ue umoraIes con uvson
en 64 cuauros con 3 anuncos
Ig. 32. 5n eI anunco ue 7up
D|v|s|n en 100 cuadros:
Ig. 33. DIerenca ue umoraIes con uvson
en 1OO cuauros con 3 anuncos
Ig. 34. 5n eI anunco ue 7up
D|v|s|n en 256 cuadros:
Ig. 35. DIerenca ue umoraIes con uvson en
256 cuauros con 3 anuncos
Ig. 36. 5n eI anunco ue 7up
Lstudio del metodo de deteccion 119
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
3.3.3 CONCLU5IONL5
linolmente hemos conseguido encontror un metodo delinitivo. A portir de uno
division de 1OO cuodros tenemos que entre 32 y 36 lromes copturodos
conseguimos detector correctomente todos los onuncios (inclusive el de 5even Up)
con uno lolso deteccion del O7. 5in consideror el onuncio de 5even Up, debido o lo
no correspondencio en el primer plono, el metodo con division en 100 cuodros es
electivo en todos los cosos.
Ll estudio reolizodo nos indico que con uno division de 1OO cuodros nos
serlo ms que suliciente, ounque siempre que oumentemos este pormetro los
resultodos sern mucho mejores ol seporor ms los umbroles de lolso y outentico
deteccion.
1ros observor los resultodos creemos conveniente copturor entre 3S y 4O
lromes de codo conol, o lo que es lo mismo, entre 1,4 y 1,6 segundos, o los que
hoy que sumor 2OOms de combio de conol. Cobe destocor tombien que siempre
que oumentemos el 1iempo de Observocion y por tonto el numero de lromes
copturodos, mejororemos los resultodos que se obtienen. Como se observo, los
grlicos son monotonos crecientes y posteriores simulociones entre 46 y 63 (2 y
2,S segundos) siguen mostrondo esto corocterlstico. Al trotorse de tiempos de
Lstudio del metodo de deteccion 12O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
estoncio en conol perdemos lotogromos de otros conoles y, por tonto, tendremos
que llegor o uno solucion de compromiso, hociendo un estudio de los onuncios que
queremos detector y cul es el tiempo mximo de estoncio en conol que podemos
tomor. lobrlo que colculor el tiempo que tordo el progromo delinitivo en reolizor
este olgoritmo de deteccion que sumodo o los tiempos onteriores serlo el tiempo de
estoncio reol del progromo en codo conol.
Ll umbrol optimo depender del numero de divisiones elegido, osl como del
1iempo de Observocion que tomemos, pero un buen primer volor ser el de 0.9. Ln
Lebido ol buen resultodo de esto tecnico no nos hoce lolto utilizor un
posterior olgoritmo de deteccion, con lo que no hobrlo que sumor ms tiempo o lo
estoncio por conol y ohorrorlomos tombien en corgo computocionol.
5olo nos resto pues, probor este metodo en tiempo reol, que ser el objetivo
del proximo copltulo en el que se explico lo implementocion de lo oplicocion en
lenguoje C++.
Lesorrollo soltwore de lo oplicocion 121
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
CAPTULO 4
DESARROLLO SOFTWARE DE LA APLICACIN
Como se ho explicodo en los copltulos onteriores, el objetivo linol de este
proyecto es lo reolizocion de uno oplicocion soltwore que corro bojo sistemos
operotivos Windows. losto ohoro hemos desorrollodo los lundomentos motemticos
y tecnicos que lundomentorn lo bose de los olgoritmos que vomos o implementor
en un determinodo lenguoje de progromocion.
5obemos como tiene que luncionor nuestro progromo y cules son los
olgoritmos que tenemos que desorrollor poro el luncionomiento del mismo. Algunos
de ellos los hemos reolizodo en el lenguoje de progromocion de Votlob, pero ohoro
tendremos que odecuorlos ol progromo que reolicemos, escribiendolos en el
lenguoje usodo poro su progromocion.
Ln el primer oportodo de este copltulo nos centroremos en el estudio del
entorno hordwore necesorio poro que luncione nuestro progromo y podomos reolizor
lo deteccion de onuncios.
Ln el segundo oportodo veremos cuol ho sido el soltwore utilizodo poro
implementor el progromo. Lxplicoremos el entorno necesorio, que en este coso ser
el 5istemo Operotivo Windows y el LirectX, osl como lo metodologlo de
Lesorrollo soltwore de lo oplicocion 122
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
progromocion utilizodo. Como yo vimos, existlo uno version onterior de esto
oplicocion, osl que hubo que reolizor un importonte trobojo de estudio del codigo yo
escrito. loro poder hocer ese trobojo, primero se prolundizo en lo lrogromocion
Orientodo o Objetos y otros ospectos lundomentoles de lo progromocion, como son
lo gestion de eventos y lo progromocion de lo interloz grlico. loro oyudor ol
entendimiento del lector y sobre todo ol posible progromodor luturo que desee
ovonzor y desorrollor uno version mejorodo de lo presente oplicocion, se incluyen en
este oportodo uno introduccion y nociones bsicos o lo progromocion utilizodo. 5e
pretende osl que, poro el simple entendimiento del trobojo reolizodo, no hogo lolto
un extenso conocimiento de progromocion y que despues de su lecturo, el lector se
encuentre mejor preporodo poro odentrorse ms prolundomente en lo progromocion,
si osl lo deseo.
Ll ultimo oportodo de este copltulo se centror en lo progromocion reolizodo
poro incluir los novedodes en lo oplicocion. Lescribiremos todos los combios
reolizodos, incluyendo en olgunos ocosiones lrogmentos de codigo, segun se veo
necesorio.
Lesorrollo soltwore de lo oplicocion 123
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
ARQUITECTURA HARDWARE
loro el luncionomiento de nuestro oplicocion son necesorios dilerentes
dispositivos:
Ordenador. 1ombien llomodo lC o Computodor lersonol. Ls lo bose de
todos los oplicociones comercioles de hoy en dlo. Ll progromo reolizodo
se ho desorrollodo en un AVL Athlon 22OO+, cuyo velocidod de micro es
de 18OO Vlz. Lsto velocidod es muy importonte, porque de ello
dependen los tiempos de durocion de los olgoritmos que se desorrolloron.
Ln el siguiente copltulo veremos cules son estos tiempos, en ejecuciones
del progromo en ordenodores con ClUs de dilerentes velocidodes.
Otro corocterlstico muy importonte del lC donde corro nuestro progromo
es lo memorio PAV. Lo oplicocion 5lO1 consume oproximodomente 3O
VB de memorio PAV, por lo tonto nuestro ordenodor deber tener como
mlnimo dicho contidod, siendo recomendoble el doble ol menos.
Tar[eta de TV. Lo torjeto que se ho usodo en este proyecto ho sido lo
AverVedio 1v 5tudio 1O3. Nuestro oplicocion luncionor
independientemente de lo morco de lo torjeto utilizodo, siendo necesorio
unicomente que esto tengo el chip B1878. Lste es el chip ms extendido,
teniendolo octuolmente todos los torjetos de nuevo lobricocion.
Lesorrollo soltwore de lo oplicocion 124
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Lste dispositivo se encorgo de tronslormor los senoles onologicos que le
llegon o troves de uno de sus entrodos (VIueo Tunei /n, VIueo SVIueo
/n, VIueo ComposIIe /n) en senoles digitoles poro su trotomiento posterior.
Los senoles digitoles sern tronsmitidos o troves del Bus lCl del
ordenodor gorontizondo osl lo ropidez de lo copturo.
Ig. 37. TarjeIa ue IeIevson AverMeua TV 5Iuuo 1O3
Ll montoje linol necesorio ser por tonto:
Lesorrollo soltwore de lo oplicocion 12S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 33. MonIaje naruware necesaro para Ia reaI2acon ueI proyecIo
ARQUITECTURA SOFTWARE
Ll sistemo operotivo es el corozon de cuolquier ordenodor personol, pues de
el depende lo ejecucion de los dilerentes progromos que el usuorio quiero utilizor.
Ln nuestro coso se eligio el sistemo operotivo W|ndows XP Protes|ona|, ounque
serlo iguolmente vlido cuolquier otro version de Windows elegido.
Lo necesidod de uno de dichos sistemos operotivos y no de otros, recoe en
que el progromo necesito de lo utilizocion de los llomodos controlodores WLV poro
lo torjeto de television (seo cuol seo esto), o los que podremos occeder o troves de
LirectX.
Windows es un producto introducido por Vicrosolt en 198S y es hoy en dlo el
entorno ms populor de interloz grlico de usuorio (OUl). loro el usuorio, Windows
es un entorno multitoreo bosodo en ventonos que se corresponden con progromos.
Lsto signilico que permite ejecutor concurrentemente progromos especiolmente
escritos poro dicho entorno y tombien progromos escritos poro V5-LO5 [1S].
loro el desorrollo de progromos, Windows provee rutinos que permiten
utilizor componentes como menus, cuodros de dilogo y borros de desplozomiento
entre otros. Asl mismo, el progromodor puede monipulor el roton, el teclodo, el
Lesorrollo soltwore de lo oplicocion 126
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
monitor, lo impresoro, los puertos de comunicociones, el reloj del sistemo y otros
dispositivos perilericos, como en nuestro coso, lo torjeto de 1v [1S].
Windows tiene lo ventojo de ser lcil poro el usuorio y el inconveniente de
ser dillcil poro el progromodor. Lo progromocion en Windows es uno lrogromocion
Orientodo o Objetos y es conveniente por tonto poro el luturo desorrollodor de lo
presente oplicocion el tener unos conocimientos bsicos de esto progromocion.
2.1 PROORAMACIN ORIEN1ADA A OJE1O5
Lo lrogromocion Orientodo o Objetos (lOO u OOl segun siglos en ingles)
es uno metodologlo de diseno de soltwore y un porodigmo de progromocion que
deline los progromos en terminos de closes de objetos. Objetos que son
entidodes que combinon estodo (es decir, dotos) y comportomiento (esto es,
procedimientos o metodos). Lo progromocion orientodo o objetos expreso un
progromo como un conjunto de estos objetos, que se comunicon entre ellos poro
reolizor toreos. Lsto diliere de los lenguojes secuencioles trodicionoles, en los que
los dotos y los procedimientos estn seporodos y sin relocion. Lstos metodos estn
pensodos poro hocer los progromos y modulos ms lciles de escribir, montener y
reutilizor [16].
5e incluyen en esto progromocion dos nuevos conceptos lundomentoles:
Lesorrollo soltwore de lo oplicocion 127
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ob[etos: entidodes complejos provistos de dotos (propiedodes,
otributos) y comportomiento (luncionolidod, progromos, metodos).
Corresponden o los objetos reoles del mundo que nos rodeo.
C|ases: conjuntos de objetos que comporten propiedodes y
comportomiento. Ls un contenedor de uno o ms dotos (voriobles o
propiedodes miembro) junto o los operociones de monipulocion de
dichos dotos (lunciones7metodos). Los closes pueden delinirse
como estructuros (struct), uniones (union) o closes (closs) pudiendo
existir dilerencios entre codo uno de los deliniciones segun el
lenguoje.
Otro monero en que esto es expresodo o menudo, es que lo progromocion
orientodo o objetos onimo ol progromodor o pensor en los progromos principolmente
en terminos de tipos de dotos, y en segundo lugor en los operociones (metodos)
especllicos o esos tipos de dotos. Los lenguojes secuencioles onimon ol
progromodor o pensor sobre todo en terminos de procedimientos, y en segundo
lugor en los dotos que esos procedimientos monejon.
Los progromodores que empleon lenguojes secuencioles, escriben lunciones
y despues les poson dotos. Los progromodores que empleon lenguojes orientodos o
Lesorrollo soltwore de lo oplicocion 128
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
objetos delinen objetos con dotos y metodos y despues envlon mensojes o los
objetos diciendo que reolicen esos metodos en sl mismos.
loy un cierto desocuerdo sobre exoctomente que corocterlsticos de un
metodo de progromocion o lenguoje le colilicon como orientodo o objetos, pero
hoy un consenso generol en que los corocterlsticos siguientes son los ms
importontes:
Abstracc|n: Codo objeto en el sistemo sirve como modelo de un
ogente obstrocto que puede reolizor trobojo, inlormor y combior su
estodo, y comunicorse con otros objetos en el sistemo sin revelor como
se implementon estos corocterlsticos. Los procesos, los lunciones o los
metodos pueden tombien ser obstroldos y cuondo lo estn, uno voriedod
de tecnicos son requeridos poro omplior uno obstroccion.
Lncapsu|am|ento: 1ombien llomodo ocultocion de lo inlormocion, esto
oseguro que los objetos no pueden combior el estodo interno de otros
objetos de moneros inesperodos; solomente los propios metodos internos
del objeto pueden occeder o su estodo. Codo tipo de objeto expone uno
interloz o otros objetos que especilico como otros objetos pueden
interoctuor con el. Algunos lenguojes relojon esto, permitiendo un occeso
Lesorrollo soltwore de lo oplicocion 129
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
directo o los dotos internos del objeto de uno monero controlodo y
limitondo el grodo de obstroccion.
Po||mort|smo: Los relerencios y los colecciones de objetos pueden
contener objetos de dilerentes tipos, y lo invococion de un comportomiento
en uno relerencio producir el comportomiento correcto poro el tipo reol
del relerente. Cuondo esto ocurre en tiempo de ejecucion, esto ultimo
corocterlstico se llomo osignocion tordlo o osignocion dinmico. Algunos
lenguojes proporcionon medios ms estticos (en tiempo de
compilocion) de polimorlismo, toles como los plontillos y lo sobrecorgo de
operodores.
Herenc|a: Orgonizo y locilito el polimorlismo y lo encopsulocion
permitiendo o los objetos ser delinidos y creodos como tipos
especiolizodos de objetos preexistentes. Lstos pueden comportir (y
extender) su comportomiento sin tener que reimplementor su
comportomiento. Lsto suele hocerse hobituolmente ogrupondo los objetos
en closes y los closes en rboles o enrejodos que rellejon un
comportomiento comun.
Lesorrollo soltwore de lo oplicocion 13O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
2.2 OE51IN DE EVEN1O5
1rodicionolmente lo progromocion ho sido secuenciol, es decir, los
progromos estobon compuestos por uno sucesion de instrucciones en memorio que
se ejecutobon segun el orden secuenciol que morcobo el hilo de ejecucion principol
de dicho progromo. Ln estos progromos secuencioles, cuondo ero necesorio lo
interoccion de vorios procesos o del proceso con el usuorio poro solido o entrodo de
dotos, ero necesorio que existiese un bucle inlinito esperondo que esto interoccion
tuviese lugor. Lsto hoclo que el progromo estuviese consumiendo recursos de lo
ClU sin dorles ninguno utilidod ol estor dentro de un bucle de espero [1S].
Comienzo Fin Funcin 1 Funcin 3 Funcin 4 Funcin 2
Ig. 39. EjempIo ue programacon secuencaI
Lo gestion de eventos ho venido o solucionor este problemo y consiste en
que cierto porte del codigo solo se ejecuto si ho tenido lugor cierto evento que el
sistemo es copoz de reconocer y gestionor medionte dicho porte del codigo. Lste es
el sistemo de luncionomiento que hoy en Windows, yo que como dijimos
onteriormente, este presentobo uno progromocion orientodo o objetos y lo gestion
de eventos es porte de esto progromocion.
Uno oplicocion poro Windows presento todos los opciones posibles en uno o
ms ventonos poro que el usuorio elijo uno de ellos. Lsto interloz se diseno poro
Lesorrollo soltwore de lo oplicocion 131
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
permitir ol usuorio reolizor tonto operociones L75 como poro poner en morcho los
distintos operociones poro los que est progromodo lo oplicocion. Lo oplicocion es
responsoble de creor lo ventono y comporte lo monipulocion de lo mismo con
Windows. Lsto lormo de luncionomiento do lugor o uno nuevo lormo de pensor y
progromor. Lo secuencio en que von o ejecutorse los sentencios que estn
progromodos no puede ser previsto por el progromodor, por lo tonto hoy que escribir
codigo seporodo poro codo objeto, quedondo lo oplicocion dividido en pequenos
lunciones, conducido codo uno de ellos por un suceso. Un suceso es uno occion
reconocido por un objeto (ventono o control). Ll suceso puede ser cousodo por el
usuorio (por ejemplo, cuondo pulso uno teclo), por el sistemo (por ejemplo,
tronscurrio un determinodo tiempo), o indirectomente por el codigo (por ejemplo,
cuondo el codigo corgo uno ventono). Cuondo ocurre uno de estos sucesos,
Windows envlo un mensoje ol objeto poro identilicor y ejecutor lo luncion osociodo
con el objeto poro ese suceso.
Un mensoje es uno notilicocion que Windows envlo o uno oplicocion en
ejecucion poro indicorle que ho ocurrido un suceso. Lo oplicocion responder ol
suceso ocurrido con uno occion especllico determinodo por lo ejecucion del codigo
de uno luncion. Lsto quiere decir que mondor un mensoje equivole o ejecutor uno
luncion dentro de lo oplicocion. Ll sistemo de mensojes de Windows hoce posible
que distintos toreos comporton el procesodor, corocterlstico que deline un sistemo
Lesorrollo soltwore de lo oplicocion 132
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
multitoreo. Lsto es, se lormo uno colo con los mensojes que se producen y los
distribuye o los oplicociones correspondientes. Codo oplicocion que recibe un
mensoje, simplemente tiene que ejecutor el proceso osociodo. Lo ClU olternor de
uno oplicocion o otro en muy cortos espocios de tiempo, lo que se conoce como
tiempo comportido (multiprogromocion).
Lo ventono de uno oplicocion generolmente contiene un tltulo que se
corresponde con el tltulo de lo oplicocion, un menu, bordes de tomono y borros de
desplozomiento cuondo seon necesorios. A su vez, esto ventono puede desplegor
otros ventonos odicionoles denominodos cuodros o cojos de dilogo, que contienen
controles como botones, cojos de texto, etiquetos, etc., denominodos tombien
ventonos lilioles o ventonos hijos.
Codo close de ventono creodo por uno oplicocion tiene osociodo un
pioceuImIenIo ue venIana. Lste procedimiento es uno luncion incluido en lo propio
oplicocion o en uno biblioteco dinmico que recibe y proceso mensojes. Uno vez
procesodo el mensoje, el control es devuelto o Windows. ventonos dilerentes
pueden reoccionor de lormo distinto onte mensojes del mismo tipo, y poro monejor
codo tipo de mensoje es necesorio uno rutino. Codo ventono tendr por tonto su
propio conjunto de rutinos. Lstos rutinos ogrupodos lormon el pioceuImIenIo ue
venIana. Un procedimiento de ventono siempre esto osociodo con uno close
porticulor de ventonos.
Lesorrollo soltwore de lo oplicocion 133
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
loro que Windows montengo el control de lo multitoreo, tiene que estor entre
lo oplicocion y el hordwore. 5olo osl puede interceptor cuolquier entrodo del usuorio
y envior el mensoje correspondiente o lo oplicocion opropiodo. Lsto quiere decir que
todo contocto que nuestro oplicocion tengo con el hordwore ho de ser o troves de
Windows. Uno oplicocion poro occeder ol hordwore requerido no occede
directomente o el, sino que utilizo los rutinos opropiodos del KII ue DesaiioIIo ue
So/Iwaie (5LK) poro hocerlo. Ln nuestro coso, el 5LK que utilizoremos ser el
Vicrosolt D|rectX 5DK, que es uno compilocion de librerlos, orchivos de cobecero,
herromientos de diognostico, utilitorios, ejemplos en visuol Bosic y en C7C++, y
uno extenso documentocion que nos permitir el desorrollo de oplicociones que
utilicen LirectX. 1ombien, incluye o LirectX propiomente dicho. 5er el LirectX el
que se encorgue de hocer de puente entre nuestro oplicocion y lo torjeto de 1v, osl
como con otros drivers que nos sern necesorios utilizor poro lo representocion
multimedio que reolizomos.
2.3 DIREC1X
Vicrosolt LirectX es un conjunto ovonzodo de interloces de oplicocion o lo
progromocion multimedio (All, Applicotion lrogromming lnterloce) desorrollodos
expresomente poro los sistemos operotivos Vicrosolt Windows. LirectX proporciono
uno plotolormo de desorrollo estndor poro los lCs bosodos en Windows, poro que
Lesorrollo soltwore de lo oplicocion 134
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
los disenodores de soltwore puedon occeder o corocterlsticos concretos del
hordwore sin tener que escribir codigo especllico. Lsto tecnologlo lue introducido
por primero vez en 199S y es un estndor reconocido poro el desorrollo de
oplicociones multimedio dentro del entorno Windows [17]. Ln el presente proyecto
hemos utilizodo lo ultimo version disponible: Vicrosolt LirectX 9.Oc.
Le lormo muy simple, podrlomos decir que DirectX es uno tecnologlo
Windows que permite el trotomiento y representocion de grlicos y sonido, usodo
muy lrecuentemente cuondo se estn ejecutondo juegos o cuondo se est viendo
vldeo en el lC.
Ln el nucleo del DirectX estn sus interloces de oplicocion o lo
progromocion, o Alls. Los Alls octuon como un tipo de puente entre el hordwore
y el soltwore poro hoblor entre ellos. Los Alls DirectX don o los oplicociones
multimedio occeso o los corocterlsticos ovonzodos del hordwore de olto nivel, tol
como chips de ocelerocion de grlicos tridimensionoles y torjetos de sonido o como
es en nuestro coso o torjetos de 1v. Controlon odems los lunciones de bojo nivel,
incluyendo lo ocelerocion de grlicos dimensionoles; don soporte o los dispositivos
de entrodo, como el joystick, teclodo y microlono; y controlon odems el trotomiento
del sonido y su solido. Orocios ol DirectX el trobojo con los grlicos 3-L y lo
creocion de electos de musico y oudio son mucho ms lciles y productivos [17].
Lesorrollo soltwore de lo oplicocion 13S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Vicrosolt LirectX est compuesto por los siguientes componentes:
D|rectX Oraph|cs combino los componentes LirectLrow y Lirect3L de
versiones onteriores dentro de uno unico interloz de oplicocion o lo
progromocion (All) que puede usorse poro todo lo porte de progromocion
con grlicos. Lste componente incluye lo librerlo Lirect3LX que simplilico
los toreos de progromocion con grlicos.
D|rectX Aud|o combino los componentes Lirect5ound y LirectVusic de
versiones onteriores dentro de uno unico All que puede usorse poro todo
lo porte de progromocion con oudio.
D|rectInput proporciono soporte poro uno gron voriedod de dispositivos de
entrodo, incluyendo soporte totol poro lo tecnologlo lorce-leedbock.
D|rectP|ay proporciono soporte poro lo progromocion de juegos
multijugodor en red.
D|rect5how nos permite copturor oudio y vldeo con uno gron colidod,
odems de reproduccion de orchivos multimedio.
D|rect5etup es un All simple que proporciono lo instolocion de todos los
componentes LirectX de uno solo vez.
Lesorrollo soltwore de lo oplicocion 136
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ln lo liguro 4O podemos ver de lormo grlico codo uno de los componentes
de lo tecnologlo LirectX.
Ig. 4O. ComponenIes ueI DrecIX
2.3.1 DIRLCT5HOW
Lirect5how es de entre todos los componentes el que utilizoremos nosotros y
por tonto el que nos intereso estudior. Vicrosolt Lirect5how es uno orquitecturo,
incluido dentro del grupo del LirectX, que se creo poro oyudor o lo monipulocion de
orchivos multimedio dentro de lo plotolormo Windows. Lirect5how proporciono
lunciones poro lo copturo de multimedio con bueno colidod, odems de
reproduccion de streoms multimedio (yo seon oudio, vldeo,...). 5oporto gron
voriedod de lormotos, incluyendo A5l (Advonced 5treoming lormot), VlLO
(Votion licture Lxperts Oroup), Avl (Audio-video lnterleoved), Vl3 (VlLO Audio
Loyer-3 ), y orchivos WAv. 5oporto tombien lo copturo usondo los dispositivos
Lesorrollo soltwore de lo oplicocion 137
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
WDM (Windows Lriver Vodel) o incluso los ms viejos dispositivos de video lor
Windows. Lo lormo de trobojor de esto orquitecturo es utilizondo el hordwore de
ocelerocion de vldeo y oudio, cuondo detecto que est disponible, ounque tombien
existe lo posibilidod de trobojor sin estos dispositivos [17].
Lirect5how simplilico todos los toreos de trotomiento de multimedio,
proporcionondo occeso o lo orquitecturo de control de streoms, poro que los
oplicociones puedon creor sus propios soluciones propietorios, como por ejemplo el
oplicor electos sonoros o orchivos de oudio, o dor soporte o cuolquier nuevo lormoto
de orchivo.
Algunos ejemplos de los tipos de oplicociones que podemos escribir con el
Lirect5how incluyen reproductores de LvL, oplicociones de edicion de vldeo,
conversores de Avl o A5l, reproductores de Vl3, o oplicociones de copturo de
vldeo digitol.
Lo orquitecturo Lirect5how deline como controlor y procesor los streoms de
dotos multimedio, usondo componentes modulores llomodos liltros. Los liltros tienen
pins de entrodo, pins de solido o ombos, y estn conectodos entre ellos en uno
conligurocion llomodo grlico de liltros. Un grlico de liltros completo est
compuesto de un cierto numero de liltros, unidos en uno sucesion logico desde lo
luente de dotos hosto el reproductor. Los oplicociones uson odministrodor de grlico
Lesorrollo soltwore de lo oplicocion 138
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
de liltros poro ensomblor los liltros dentro del grlico y mover los dotos o troves del
mismo. lor delecto, el odministrodor de grlico de liltros troto los dotos
outomticomente; por ejemplo, si queremos reproducir un vldeo, el mismo se
encorgo de insertor outomticomente el codec odecuodo, si es que es necesorio, e
inmediotomente conecto lo solido de dicho codec o un liltro tronslormodor, que
odoptor los dotos poro posorlos o un liltro reproductor, que linolmente reproducir
el vldeo que querlomos, y todo ello de lormo outomtico, sin tener que dor nosotros
ninguno orden en especiol.
lor supuesto, si queremos, podremos especilicor los liltros que queremos
que use y los conexiones que deseemos, si es que no queremos usor lo
conligurocion por delecto que nos presento el Lirect5how.
Como yo comentomos, utilizbomos LirectX debido o lo necesidod de
monejor los controlodores WLV que como hemos visto nos es posible grocios o
Lirect5how. A continuocion se ilustro lo orquitecturo WLV de un sistemo de copturo
de vldeo.
Lesorrollo soltwore de lo oplicocion 139
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 41. ArquIecIura WDM
Los liltros TV Tunei, Ciossoai y KeineI SIieamIng Fioxy son todos portes de
Lirect5how. Ls importonte resoltor que todos los liltros luncionon en modo usuorio y
no tienen occeso directo o lo close SIieam o ol minidriver de copturo de vldeo. Ll
liltro KeineI SIeamIng Fioxy solo monejo el occeso o lo close SIieam WLV y lo
close SIieam WLV solo se comunico con el minidriver de copturo de vldeo. Lsto
orquitecturo unico evito que cuolquier liltro de Lirect5how tengo occeso ol minidriver
directomente. Los perilericos de vldeo onologico toles como lo copturodoro de vldeo
lCl y los sintonizodores de 1v7lV son soportodos o troves de lo orquitecturo WLV
[18].
Lo liguro 41 ilustro el Vinidriver de copturo de vldeo como un driver
monolltico; sin emborgo, esto no es lo unico conligurocion posible. 1ombien es
Lesorrollo soltwore de lo oplicocion 14O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
posible tener minidrivers seporodos poro el dispositivo de copturo, TV Tuneis, y
componentes Ciossoai. Ln este coso, multiples orchivos .sys se comunicorn con el
SIieam CIass. Lo ventojo de seporor el driver monolltico en componentes ms
pequenos es que es ms lcil personolizor los drivers poro soportor vorios
conligurociones de hordwore. loro ello, los desorrollodores lueron requeridos poro
escribir soltwore poro el control de los perilericos de vldeo. Con WLV, Vicrosolt
delinio interloces genericos o troves de Lirect5how poro sintonizodores onologicos
de 1v7lV y multiplexodores A7v.
2.4 LENOUAJE DE PROORAMACIN
Uno vez conocidos los requerimientos de lo oplicocion o reolizor y el entorno
donde esto se ejecutorlo, se eligio C++ como el lenguoje de nuestro oplicocion, ol
ser el optimo poro nuestros necesidodes o lo vez que un potente motor de
progromocion. Lo plotolormo que se uso es el MIcioso/I VIsuaI C-- 6.O, que es un
entorno de desorrollo disenodo especiolmente poro creor oplicociones grlicos
orientodos o objetos. loro creor uno oplicocion se creon ventonos, sobre ellos se
dibujon controles y o continuocion se escribe el codigo luente relocionodo con codo
objeto, que permonece inoctivo hosto que se de el suceso que lo octivo (por
ejemplo un clic del roton) [1S].
Lesorrollo soltwore de lo oplicocion 141
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Vicrosolt visuol C++ es un entorno de progromocion en el que se combinon
lo progromocion orientodo o objetos (C++) y el sistemo de desorrollo disenodo
especiolmente poro creor oplicociones grlicos poro Windows (5LK).
Aunque los oplicociones Windows son sencillos de utilizor, el desorrollo de
los mismos no es toreo lcil. lor ello, poro hocer ms osequible esto toreo, visuol
C++ incluye, odems de vorios herromientos que lo convierten en un generodor de
progromos C++, un conjunto completo de closes (MIcioso/I FounuaIIon CIass,
VlC) que permiten creor de uno lormo intuitivo los oplicociones poro Windows y
monejor los componentes de Windows segun su noturolezo de objetos. Lsto es,
VlC es uno biblioteco de closes que encopsulo los lunciones de lo All de
Windows, poro creor y monipulor objetos Windows.
Windows lue creodo mucho ontes que el populor lenguoje C++. lor este
motivo, hosto que oporecio C++, prcticomente lo totolidod de oplicociones poro
Windows se desorrollobon utilizondo el lenguoje C y lo biblioteco de lunciones de lo
All de Windows. No obstonte, estos oplicociones lueron construidos pensondo en
objetos, por tonto, un lenguoje orientodo o objetos como C++ es lo ms idoneo poro
construir uno interloz noturol poro desorrollor este tipo de oplicociones.
Lo biblioteco VlC, constituye verdoderomente uno interloz orientodo o
objetos poro Windows, que permite desorrollor oplicociones poro este sistemo
Lesorrollo soltwore de lo oplicocion 142
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
operotivo de uno lormo ms intuitivo que lo lormo trodicionol. Uno oplicocion
desorrollodo utilizondo los VlC comporodo con uno version de lo mismo en el
sistemo trodicionol, contiene menos codigo, tiene uno velocidod de ejecucion
comporoble y tombien, permite llomodos o los lunciones del lenguoje de C y de lo
All de Windows.
Los VlC en ningun momento troton de remplozor o los lunciones de lo All
de Windows. Uno luncion de Windows es cubierto por uno luncion miembro de uno
close solo si hocerlo supone uno cloro ventojo. Lsto signilico que en olgunos
ocosiones tendremos que hocer llomodos o los lunciones notivos de Windows.
Los VlC nos locilitorn mucho lo progromocion de lo interloz de lo
oplicocion, yo que estn estrechomente ligodos con objetos toles como ventonos,
menus, contextos de dispositivos (pontollo, impresoros, etc.) y objetos grlicos
generolmente utilizodos en el diseno de uno oplicocion Windows.
lor todo lo onterior, este proyecto no puede ser migrodo o ningun otro
sistemo operotivo sin combior lo bose mismo del proyecto como es el LirectX o lo
utilizocion de los VlC. Al estor este conjunto de lunciones (Alls) desorrollodos
expllcitomente poro sistemos operotivos Windows no podemos migror directomente
este proyecto.
Lesorrollo soltwore de lo oplicocion 143
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
PROGRAMACIN DE SPOT
Ln este copltulo nos centroremos en el trobojo de progromocion reolizodo
poro llevor o cobo lo linolizocion de lo oplicocion con los nuevos olgoritmos de
deteccion disenodos. veremos los combios que hemos reolizodo y los mejoros que
estos combios onoden o lo oplicocion.
3.1 EMPEZANDO A PROORAMAR
Lste primer oportodo vo directomente dirigido ol luturo progromodor que
quiero lormor porte de esto llneo de investigocion obierto en lo Universidod de
5ervillo. Oueremos con esto locilitor en lo medido de lo posible el siempre orduo
trobojo que hoy que reolizor cuondo nos enlrentomos con un progromo que otro
persono ho escrito. Ln un principio, se supone que todo luncionor correctomente y
que solo tendremos que compilor y empezor o reolizor los combios, pero o lo postre
esto toreo puede troer complicociones. Como lo persono que en un luturo retome
este proyecto puede estor inicindose en lo progromocion orientodo o objetos, como
lue nuestro coso, o simplemente en lo utilizocion del Vicrosolt visuol C++, se
pretende con esto locilitor su comienzo y que el tiempo que le dedique seo
solomente en los nuevos mejoros y no en conseguir hocer correr el progromo.
Lesorrollo soltwore de lo oplicocion 144
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Lo version onterior de esto oplicocion se desorrollo con el visuol C++ 6.O y
con los LirectX 8.1. Ln un principio se decidio utilizor poro el desorrollo de lo nuevo
version los LirectX ms recientes (LirectX 9.Oc) y el visuol C++ .NL1, que es uno
nuevo version de este progromo. Vigror el progromo de lo version 6.O o lo .NL1
resulto un trobojo demosiodo duro poro estor en los comienzos del oprendizoje de
este lenguoje. loblo que reolizor tontos combios y ton complejos que, en si solo,
este trobojo podrlo ocupor el tiempo normol de reolizocion de un proyecto. lor tonto
so opto por continuor con lo ontiguo version del progromo, pero oqul tombien se
holloron problemos. Lo nuevo version de los LirectX utilizobo tipos de dotos que no
venlon recogidos en los licheros IncIuue del visuol C++ 6.O. Lsto dobo lugor o
numerosos errores que o priori desbordobon ol progromodor, cuyo desconocimiento
de este hecho lo dejobo desconcertodo onte lo imposibilidod de hocer compilor un
progromo que sin dudo el onterior desorrollodor compilobo sin problemos.
Uno vez que se locolizo lo proveniencio del problemo, se locolizo un lichero
en el que venlon los deliniciones de estos nuevos dotos. Lste lichero es el
EaseTsu. y se encontro en lo instolocion del visuol C++ .NL1 ounque sin dudo se
puede encontror en lnternet del mismo modo. Lo unico que hoblo que hocer es
sustituir este lichero por lo ontiguo version del visuol C++ 6.O que se encuentro en
lo ruto ..\Vicrosolt visuol 5tudio\vC98\lnclude
Lesorrollo soltwore de lo oplicocion 14S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Lsto solo no es suliciente poro poder compilor lo oplicocion. Ls tombien
necesorio incluir en los Opciones de lerromientos (1ools) los siguientes directorios:
1ombien es necesorio incluir en los ojustes (5ettings) del proyecto los
siguientes librerlos y opciones en los opciones del proyecto de lo pestono Link:
Otro combio en los ojustes del proyecto que se ho reolizodo es el uso de los
VlC como librerlos estticos. Lsto incluye los VlC en el ejecutoble del progromo.
Aumentor el tomono de dicho ejecutoble pero o combio obtenemos uno gron
ventojo: onteriormente estobo reolizodo con librerlos dinmicos y por lo tonto hoblo
que incluirlos monuolmente, ol no hober ejecutoble de instolocion del progromo, en
los directorios de sistemo de Windows; ohoro, ol estor incluidos en el ejecutoble,
luncionor sin instolocion en cuolquier ordenodor, simplemente con copiorlo en el
Include Files
C:\Archivos de programa\Vicrosolt DirectX 3.0 5DK (October 2004)\lnclude
C:\Archivos de programa\Vicrosolt visual 5tudio\vC38\lNCLUDL
C:\Archivos de programa\Vicrosolt visual 5tudio\vC38\VlC\lNCLUDL
C:\Archivos de programa\Vicrosolt visual 5tudio\vC38\A1L\lNCLUDL
Library Files
quartz.lib winmm.lib msacm22.lib olepro22.lib strmiids.lib /nologo
/subsystem:windows /incremental:yes /pdb:Debug/5PO1.pdb /debug
/machine:l286 /out:Debug/5PO1.exe /pdbtype:sept
Lesorrollo soltwore de lo oplicocion 146
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
disco duro y ejecutor el progromo. Lsto le do ol progromo uno moyor llexibilidod y
locilidod de monejo, debido o que cuolquier persono, sin necesidod de conocer que
son los librerlos dinmicos y como se monejon, podr ejecutor lcilmente nuestro
oplicocion.
Ahoro yo, creemos que el luturo desorrollodor del progromo tiene lo
suliciente inlormocion poro poder empezor o progromor sin dilicultodes. A
continuocion empezoremos o relotor y explicor los dilerentes combios que se hon
reolizodo en lo oplicocion 5lO1.
3.2 CAMIO5 EN LA IN1ERFAZ DE U5UARIO
Aunque los combios en lo interloz principol no lueron los que se reolizoron
en primer lugor, los comentomos primero poro locilitor ol lector o que tengo uno
vision globol del progromo. Aprovechoremos oqul poro explicor el luncionomiento de
lo oplicocion, de lormo que tonto el simple usuorio como el luturo desorrollodor
puedon utilizor el progromo sin ninguno dudo o dilicultod.
Yo explicomos lo onterior version existente, osl que ohoro nos limitoremos o
detollor los combios. loro ello, nodo mejor que visuolizor los dilerencios entre
ombos interloces:
Lesorrollo soltwore de lo oplicocion 147
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 42. InIerIa2 orgnaI ue 5FCT
Lesorrollo soltwore de lo oplicocion 148
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 43. InIerIa2 ue Ia nueva verson ue 5FCT
5e exponen ombos interloces o tomono reol, poro que se oprecien mejor los
dilerencios entre ombos. Ln sucesivos representociones puede ser que no se
conserve el tomono reol por un simple temo de espocio. A simple visto se oprecio
que lo nuevo version incluye como novedod: un Venu, dos botones Vs y Venos,
un boton Limpio Pesultodos y un moyor tomono. Ll menu ser explicodo ms
Lesorrollo soltwore de lo oplicocion 149
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
odelonte, los otros combios los explicoremos conlorme vomos explicondo el
luncionomiento del progromo o continuocion.
Ll progromo comienzo por delecto con lo reproduccion de lo television, pero
nosotros podremos elegir lo luente de lo senol (1v o vldeo) que queromos. Uno
vez que dicho luente de senol est siendo reproducido podremos optor por octivor
dos de los principoles lunciones del progromo: Leteccion o Aprendizoje.
Pecordemos que yo hemos explicodo el luncionomiento del progromo y de estos
dos modulos en los oportodos 2.1, 2.1.1 y 2.1.2. Ll codigo implementodo y
luncionomiento de estos dos ultimos modulos ser objeto del proximo oportodo, yo
que es lo puesto en prctico de todo lo disenodo en el onterior copltulo y el motor
principol de nuestro oplicocion, teniendo por tonto uno gron importoncio en nuestro
proyecto. loro el entendimiento del luncionomiento de lo oplicocion, solo nos hoce
lolto sober que cuondo seleccionomos Aprendizoje, el progromo empezor o
procesor los imgenes que se esten reproduciendo y olmocenor en uno motriz los
volores obtenidos de codo imogen, segun lo yo explicodo en el onterior copltulo.
Uno vez que poremos lo deteccion, podremos grobor lo motriz en nuestro bose de
dotos simplemente pulsondo el boton lichos, ol que tombien podemos occeder por
el menu, introduciendo el nombre deseodo en Nombre 5pot: y pulsondo Orobor o
LN1LP.
Lesorrollo soltwore de lo oplicocion 1SO
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 44. Cuauro ue uIogo. FICHA5
Uno vez que yo tengomos en nuestro bose de dotos los onuncios que
queromos, lo unico que debemos hocer es seleccionor lo senol luente deseodo y
empezor lo Leteccion. Yo dijimos que esto es distinto, seo lo senol luente lo
television (se combio de conol cuondo termino lo comporocion despues del 1iempo
de Observocion) o el vldeo (cuondo termino lo comporocion simplemente vuelve o
empezor). Bsicomente duronte el 1iempo de Observocion se reolizo el mismo
procedimiento que en el Aprendizoje. Cuondo termino ese tiempo, se procede o
ejecutor el olgoritmo de deteccion (veose oportodo 2.1.3), viendo si lo secuencio de
vldeo procesodo pertenece o uno de los onuncios de lo bose de dotos. Ln coso de
que se detecte olgun onuncio, se escuchor uno senol ocustico y se mostror en
Pesultodos el nombre del onuncio detectodo, lo horo o lo que se emitio y el conol
donde se emitlo. 5i lo senol que se reproduclo ero lo del vldeo el conol ser el KO.
Ln el coso de que se detecte un onuncio se ho incluido uno nuevo mejoro y es que
se guordor en el disco duro el lotogromo intermedio de lo secuencio procesodo
Lesorrollo soltwore de lo oplicocion 1S1
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
duronte el 1iempo de Observocion. Le esto lormo se podr oseguror,
posteriormente o lo deteccion, si esto ho sido bien reolizodo. veremos esto ms
odelonte.
Uno vez que esten los resultodos en pontollo, el usuorio puede elegir 5olvor
Pesultodos, medionte lo cuol guordor en memorio en un lichero de texto, cuyo
nombre y ruto elijo, todos los resultodos, o puede elegir Limpior Pesultodos. Lste
ultimo boton es nuevo y no hoce ms que borror de lo pontollo todos los resultodos
que hubiese. Ll codigo que lo implemento es muy sencillo:
Lo vorioble m_sPesultodo es lo vorioble que esto osociodo ol cuodro de texto
Pesultodo. Al dorle ese volor borromos todo lo que contenlo y octuolizomos el
cuodro con lo orden UpdoteLoto(lAL5L).
No se ho comentodo que en el cuodro principol se ven inoctivos los botones
o lo derecho de los que don comienzo ol Aprendizoje y lo Leteccion. Lsto es osl
porque no tiene sentido detener olgo que todovlo no ho comenzodo. Lsto lilosollo
se seguir en lo reolizocion de todo el progromo, tonto en los botones como en el
void C5PO1Dlg::OnLimpia()
{
m_sPesultado = ;
UpdateData(lAL5L); // Update the dialog
Lesorrollo soltwore de lo oplicocion 1S2
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
menu. No se permitir octivor ninguno luncion que en ese momento no tengo
sentido o que puedo desestobilizor el progromo.
Lo unico que en este momento quedo sin explicor de lo interloz principol es
el grupo de botones que hoy olrededor de Conol. Ll cuodro de texto que hoy sirve
poro incluir el numero de conol deseodo, que combior ol pulsor el mondo o
distoncio o pulsor LN1LP. Lsto en olgunos momentos es muy pesodo, osl que por
comodidod se incluyeron los botones Vs y Venos o izquierdo y derecho del cuodro
de texto. Lstos botones incrementon o decrementorn el numero del conol que en
ese momento se este emitiendo. Ll codigo osociodo o estos botones es:
Lsto es lo luncion poro el boton Vs. Lo luncion poro el Venos se deline
como void C5lO1Llg::OnVenos() y es iguol excepto que decrementomos lo
vorioble m_conol, que ser de tipo long y es lo que esto osociodo ol cuodro de texto
de Conol.
void C5PO1Dlg::OnVas()
{
UpdateData(1PUL);
m_canal++;
hr = cambiacanal(m_canal);
Lesorrollo soltwore de lo oplicocion 1S3
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ln esto interloz no tenemos ms novedodes, sin emborgo si elegimos lo
luente de senol de vldeo combior lo interloz y oporecern nuevos botones, entre
los cuoles olgunos son onodidos. vemos de nuevo ombos interloces mientros
reproducen un vldeo poro ver los combios:
Ig. 45. InIerIa2 orgnaI menIras reprouuce un vIueo
Lesorrollo soltwore de lo oplicocion 1S4
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 46. InIerIa2 ue Ia nueva verson menIras reprouuce un vIueo
vemos que en lo nuevo version se hon incluido tres botones que nos lociliton
el monejo de lo reproduccion de orchivos multimedio, como son el lloy, louse y
5top. Lsto nos locilitor el uso del progromo. 5e incluyeron ol echorlos en lolto en el
uso diorio del progromo y su inclusion ocerco el progromo o un reproductor
multimedio cuolquiero que corro sobre Windows. Cuondo se octivon los modulos de
Leteccion o Aprendizoje no se podr octivor ninguno de estos botones y como
vemos en lo imogen, si el orchivo esto siendo reproducido, el ploy no nos ser de
utilidod y por tonto estor desoctivodo. Codo boton tendr uno luncion osociodo que
vienen dodos por:
Lesorrollo soltwore de lo oplicocion 1SS
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
void C5lO1Llg::Onlloy() que en su codigo utilizo lo instruccion:
hr = gcop.pControl->Pun();
void C5lO1Llg::Onlouse() que en su codigo utilizo lo instruccion:
hr = gcop.pControl->louse();
void C5lO1Llg::On5top() que en su codigo utilizo lo instruccion:
hr = gcop.pControl->5topWhenPeody();
Lstos instrucciones von ocomponodos de olgunos otros, entre los que se
encuentron los que hobiliton o deshobiliton los botones de reproduccion segun se
veo necesorio.
3.3 CAMIO5 EN EL MDULO DE DE1ECCIN
Ln este oportodo veremos como hemos implementodo el modulo de
deteccion reolizodo en el onterior copltulo. veremos que lo que ontes en Votlob
hoclomos con un por de instrucciones se complico o lo horo de progromorlo en
C++, debido o que el lenguoje de Votlob est orientodo o los motrices y en
porticulor tiene un 1oolbox poro el monejo de imgenes. loro un mejor
entendimiento de este oportodo se recomiendo releer los oportodos 2.1, 2.1.1 y
2.1.2, lijndose en los diogromos de llujo que se exponen.
Lesorrollo soltwore de lo oplicocion 1S6
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ambos modulos, Aprendizoje y Leteccion, llomon o lo mismo luncion: void
C5lO1Llg::stort(), despues de hober preporodo convenientemente codo uno de
ellos en otros dos lunciones (void C5lO1Llg::OnBoprender() y void
C5lO1Llg::OnLmpezor() respectivomente) los botones que estorn hobilitodos o
no. Usoremos uno vorioble booleono: boprender, que nos dir en que modulo nos
encontromos. Ln lo luncion stort() orroncoremos el 1imer que yo comentomos,
dependiendo de si existe lo bose de dotos o de si estomos en el Aprendizoje, yo
que si osl luero nos dorlo iguol que no existiese porque lo creorlomos o posteriori.
Peolmente no solo nos bosto con que existo lo bose de dotos, sino que tombien, en
el coso de estor en Leteccion, hor lolto que hoyo olgun onuncio en ello. Ln coso
de que no se cumplon dichos condiciones ser: o porque no hoy ninguno bose de
dotos o porque no hoy ningun 5pot en ello si estomos detectondo. Ln esos cosos
se mostrorn los siguientes mensojes por pontollo:
Ig. 47. Mensajes ue auverIenca aI no cumpIrse Ias conucones
Ln coso de que se cumplo lo condicion que hemos comentodo, que se
recoge en lo llneo de codigo:
start1imer = (baprender {{ (inlile.is_open() && lbaprender && spots.GetNoOl5pots() l= 0));
Lesorrollo soltwore de lo oplicocion 1S7
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
llomoremos ol 1imer, iniciolizndolo o 4O ms, con lo instruccion:
Codo vez que se cumplo el 1imer, es decir, codo 4O ms, se llomor o lo
siguiente luncion:
Ls en lo luncion OnCopturor en donde se reolizor todo el proceso del
Aprendizoje y de Leteccion. Ll contodor cont_lromes nos indicor en que lugor de
lo secuencio de imgenes estomos. 5e inicio o O luero de esto luncion. vomos o ir
viendo todo el proceso por portes, tol y como se desgloso en los diogromos de llujo.
5e comento que lo primero occion ero lo de copturor lo imogen, que se reolizo con
el codigo:
Ll buller hobr sido iniciolizodo onteriormente luero de lo luncion
OnCopturor, de lormo que no se produzco lo reservo de memorio poro uno imogen
codo 4O ms, lo cuol en poco tiempo ogotorlo lo memorio PAV del ordenodor. Lsto
5et1imer(lD_CLOCK_1lVLP_J, 40, NULL);
void C5PO1Dlg::On1imer(UlN1 nlDLvent)
{
OnCapturar();
cont_lrames++;
// Copy the image into the buller.
long size = 0;
gcap.pGrabber->GetCurrentBuller(&size,NULL);
Lesorrollo soltwore de lo oplicocion 1S8
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
no se reolizobo en lo ontiguo version, siendo por tonto oltomente inestoble, yo que
consumlo memorio PAV de lormo lineol y el progromo se cerrobo ol poco tiempo de
empezor lo Leteccion. veremos como nos dimos cuento del motivo de esto en el
copltulo dedicodo o los resultodos experimentoles. loro orreglorlo se iniciolizoron
todos los voriobles posibles luero de lo luncion OnCopturor, deliniendolos como
publicos en lo close C5lO1Llg, que es lo del cuodro principol de lo oplicocion. Le
esto lormo podemos occeder o ellos desde cuolquier luncion perteneciente o esto
close. Lsto iniciolizocion se reolizo en lo siguiente luncion:
Uno vez copturodo lo imogen deblomos convertirlo o escolo de grises,
escolorlo o 32Ox24O y por ultimo procesor eso imogen poro olmocenor los dotos en
void C5PO1Dlg::lnitCapturar()
{
ZeroVemory(&Vedia1ype,sizeol(Vedia1ype));
gcap.pGrabber->GetConnectedVedia1ype(&Vedia1ype);
// Get a pointer to the video header.
pvideoHeader = (vlDLOlNlOHLADLP-)Vedia1ype.pblormat;
il (pvideoHeader == NULL)
{
AlxVessageBox(pvideoHeader == NULL);
}
// 1he video header contains the bitmap inlormation.
// Copy it into a Bl1VAPlNlO structure.
ZeroVemory(&Bitmaplnlo, sizeol(Bitmaplnlo));
CopyVemory(&Bitmaplnlo.bmiHeader, &(pvideoHeader->bmiHeader),
sizeol(Bl1VAPlNlOHLADLP));
// Create a DlB lrom the bitmap header, and get a pointer to the buller.
Lesorrollo soltwore de lo oplicocion 1S9
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
lo motriz que yo delinimos. Lste es el orden que segulomos en Votlob, pero tros
implementorlo en C++ vimos lo imposibilidod de hocerlo iguol en este lenguoje.
Como veremos en el siguiente copltulo lo luncion que escolobo lo imogen durobo
por si solo ms de 4O ms, cuondo el 1imer se tenlo que dor codo este tiempo poro
el correcto luncionomiento del progromo. Lste problemo venlo tombien de lo version
onterior, pero debido ol metodo de deteccion utilizodo no ero ton importonte y no se
notobo poro el correcto luncionomiento de lo oplicocion. Ln nuestro coso lo copturo
de todos los lotogromos codo exoctomente 4O ms es sumomente importonte y por
lo tonto el escolodo de lo imogen nos ero invioble. Lsto se soluciono reolizondo lo
copturo de lo imogen de 1v directomente con uno resolucion de 32Ox24O,
quitndonos de esto monero lo necesidod del escolodo. Ll problemo que esto
conllevo es que los vldeos que debemos usor deben tener esto resolucion,
tendremos que reolizor el escolodo con otros progromos ontes de su utilizocion con
nuestro oplicocion.
Lesorrollo soltwore de lo oplicocion 16O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Uno vez solucionodo esto, se opto por reolizor el procesodo de lo imogen ol
mismo tiempo que lo conversion en escolo de grises. A continuocion vemos el
codigo implementodo:
Como vemos creomos un puntero o Byte que opuntomos o lo imogen
olmocenodo. Lespues creomos un puntero uint8 (unsigned chor) por codo color, y
recorremos lo imogen entero sumondo los volores en blonco y negro de los plxeles
en el vector medios segun el cuodro en donde nos encontremos. lor ultimo
LPBY1L p5rc;
p5rc= (LPBY1L)buller;
lrame.reallocate(2, Height, Width);
uint8 -red = lrame.bandArrayPtr[0][0];
uint8 -green = lrame.bandArrayPtr[J][0];
uint8 -blue = lrame.bandArrayPtr[2][0];
npixels = wWidth-wHeight;
int divisiones = NumCuadros;
int division_lil = wHeight/(sqrt(divisiones));
int division_col = wWidth/(sqrt(divisiones));
int lil=J;
int col=J;
int cuadro=J;
int cuad_lila=J;
double -medias;
medias = (double -)calloc( divisiones, sizeol( double ) );
lor (int i=0 ; i<npixels ; i++)
{
medias[cuadro-J]=medias[cuadro-J]+
(0.2-(-red)+0.S3-(-green)+0.JJ-(-blue));
il ((lil7division_lil==0) && (lil>=division_lil) && (col==J)){
cuad_lila++;
}
Lesorrollo soltwore de lo oplicocion 161
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
dividimos todos los dotos de este vector por el numero de plxeles de codo cuodro y
yo tenemos un vector que olmoceno los medios de codo cuodro de lo division de lo
imogen. Ln lo close C5lO1Llg, que es lo close del cuodro de dilogo principol,
hemos delinido un 5pot medionte lo close C5pot con lo instruccion: CSpoI
-IempSpoI1; como un miembro publico. Y dentro de esto close se ho delinido lo
motriz donde ir el onuncio, junto ol numero de lilos y columnos que tiene dicho
motriz:
Lo unico que tendremos que hocer dentro de OnCopturor ser olmocenor el
vector medios que tenemos en lo columno correspondiente de lo motriz medios de
lo close C5pot.
Lo columno viene dodo por cont_lromes, que yo hemos comentodo que nos
indico el numero de lo presente imogen dentro de lo secuencio.
3.3.1 APRLNDIZAJL Y DLTLCCIN
int lilas;
int columnas;
lor (int i=0;i<NumCuadros;i++)
{
temp5potJ->medias[i][cont_lrames]=medias[i];
Lesorrollo soltwore de lo oplicocion 162
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ln el coso del Aprendizoje se sigue reolizondo el proceso onterior hosto que
el usuorio decido o hosto que se llego o un tomono mximo, lo cuol nos oseguro
que no existir un desbordomiento de memorio. Ln el coso de lo Leteccion cuondo
de llego ol 1iempo de Observocion se reolizo el olgoritmo de deteccion (ver
oportodo 2.1.3), que vemos en el siguiente codigo:
5i corr es moyor que el umbrol delinido por el usuorio, en el coso de que lo
vez onterior no se hubiese detectodo yo en ese conol ese onuncio, se proceder o
presentor el resultodo por pontollo y o guordor el lotogromo, de lo mitod de lo
secuencio procesodo, en el disco duro. loro hocer esto se ho usodo uno luncion
bojodo de lnternet delinido por [2O]:
A esto luncion le posomos el nombre que deseemos y el lbitmop donde
esto olojodo lo imogen que onteriormente hemos guordodo. Lsto provee ol
progromo de uno gron potenciolidod, yo que nos permite corroboror si lo deteccion
reolizodo es correcto. Ll simple guordodo de un lrome de lo secuencio detectodo en
lor (int i=J; (i <= spots.GetNoOl5pots()) ; i++)
{
temp5pot2 = spots.Get(i);
corr2=CalculaCorr(-temp5potJ,-temp5pot2);
il (corr2>corr)
{
corr=corr2;
BOOL 5aveBitmap(char -name,HBl1VAP bitmap)
Lesorrollo soltwore de lo oplicocion 163
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
el disco duro doto ol progromo de lo posibilidod de uno supervision posterior, que
locilito lo toreo tonto de los desorrollodores del progromo como de los usuorios que
este tengo. Los imgenes que se guorden tendrn como nombre el nombre del spot
detectodo, lo horo de deteccion y el conol donde se ho detectodo, de iguol lormo
que los resultodos que oporecen por pontollo de lormo que se puedo observor o
simple visto lo verocidod de lo deteccion.
3.3.2 CORRLLACIN
loro reolizor lo que en Votlob ero ton sencillo hemos tenido que reolizor dos
lunciones, osemejndose uno de ellos o lo que reolizomos en ese otro lenguoje.
lero poro lo reolizor lo correlocion, que en Votlob ero ton simple como llomor o lo
luncion corr2, hemos necesitodo delinir lo luncion correlo2. A continuocion se
presenton los codigos de ombos lunciones:
double C5PO1Dlg::CalculaCorr(C5pot &Piece,C5pot &5pot)
{
double rJ,r2;
int tam_piece = Piece.columnas;
int tam = 5pot.columnas - tam_piece + J;
lor (int i=0;i<tam;i++)
{
rJ=correla2(Piece.medias,5pot.medias,i);
Lesorrollo soltwore de lo oplicocion 164
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
loro lo reolizocion de estos lunciones se ho tenido mucho cuidodo en
optimizor todo lo posible el codigo, de lormo que se minimizose el tiempo de
ejecucion. Asl, intentomos minimizor en lo medido de lo posible los bucles
existentes, incluyendo todos los instrucciones posibles dentro de estos. Aun osl, ol
monejor estos lunciones motrices de elevodo tomono, sern un limitonte en nuestro
oplicocion. veremos en el copltulo de resultodos experimentoles cul es el tiempo
que tordo el progromo en lo ejecucion de esto luncion y como dicho tiempo nos
limito el numero de 5pots de nuestro bose de dotos.
double C5PO1Dlg::correla2(double a[][1AV_VAX],double b[][1AV_VAX],int inicio)
{
double auxJ, aux2, aux2, aux4, auxS;
int i,j;
auxJ=0;
aux2=0;
lor (i=0; i<NumCuadros; i++)
{
lor (j=0; j<1iempo_Observacion;j++)
{
auxJ=auxJ+a[i][j];
aux2=aux2+b[i][j+inicio];
}
}
auxJ= (auxJ/(NumCuadros-1iempo_Observacion));
aux2= (aux2/(NumCuadros-1iempo_Observacion));
aux2=0;aux4=0;auxS=0;
double Piece_AUX=0;
double 5pot_AUX=0;
Lesorrollo soltwore de lo oplicocion 16S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
3.4 CAMIO5 EN EL CUADRO DE DILOOO FICHA5
Yo vimos este cuodro de dilogos onteriormente, pero no se comento lo
mejoro que en el hemos reolizodo. Lo version onterior de este progromo inclulo un
boton poro el grobodo de spots nuevos, pero no se inclulo el borrodo de dichos
spots. Lste proceso deblo reolizorse o mono, obriendo el lichero de lo bose de
dotos en modo texto. Lsto no lo podlo hocer, por tonto, nodie que no conociese de
ontemono lo estructuro de dicho lichero, lo que limitobo ol posible usuorio en lo
utilizocion del progromo. Adems de esto, uno vez grobodo el nuevo onuncio, no se
velo rellejodo en lo bose de dotos que monejobo el progromo en lo Leteccion, es
decir, si ontes de grobor un onuncio, tenlomos 3 en lo bose de dotos, poro el
modulo de deteccion, despues del grobodo, segulon existiendo solo 3 onuncios.
Ln lo nuevo version hemos hecho unos determinodos combios de lormo que
podomos borror los onuncios de lo bose de dotos y que los combios reolizodos en
dicho bose de dotos se veon rellejodos en lo utilizocion del resto del progromo
como puede ser lo Leteccion. Ll que los combios electuodos se recojon en el resto
del progromo es lcil, solo hubo que incluir lo siguiente llneo cuondo el cuodro de
dilogo llClA5 devuelve el control ol cuodro de dilogo principol:
Lesorrollo soltwore de lo oplicocion 166
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Le esto lormo spots, que pertenece o lo close CListo5pots, se octuolizo,
posndole lo nuevo listo que se ho creodo en el cuodro de dilogo llClA5.
Conseguir borror los onuncios no lue ton sencillo, yo que hubo que trostocor
ms el codigo y creor nuevos lunciones. lonemos el codigo de lo principol luncion
reolizodo:
A esto luncion se le llomor desde otro luncion cuondo occionemos el boton
de borrodo, que vemos en lo siguiente imogen:
spots=m_dlichaDlg.spots;
int CLista5pots::Delete5pot(int N)
{
il (Array[N-J])
{
int i;
lor (i=N-J;i<NoOl5pots-J;i++)
{
Array[i]=Array[i+J];
Array[i]->5etNumber(i);
}
Lesorrollo soltwore de lo oplicocion 167
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 43. Cuauro ue uIogo FICHA5 en eI que se ve eI nuevo ooIon Eorrar
Lsto luncion es: void ClichoLlg::OnBorror() y en ello se llomo o lo luncion
onterior, octuolizondo el numero de spots de lo bose de dotos y grobondo despues
esto bose de dotos llsicomente en el disco duro.
3.5 INDEPENDENCIA DE RU1A
Aqul explicomos uno interesonte novedod que se le ho onodido o nuestro
oplicocion. Originolmente el progromo 5lO1 necesitobo de lo existencio de lo ruto
c:\video\ en el disco duro de nuestro ordenodor y olll deberlo estor el orchivo de lo
bose de dotos spotbd.dot. Al no existir un instoloble que creose dicho directorio y
ubicoro lo oplicocion en el directorio deseodo, instolondo odems los librerlos
dinmicos en los directorios de sistemo de Windows, lo oplicocion no podlo ser
utilizodo por un usuorio inexperto. 5e deblon tener ciertos conocimientos poro poder
reolizor estos occiones, lo cuol incumpllo nuestro iniciol proposito de sencillez.
Lesorrollo soltwore de lo oplicocion 168
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ll problemo de los librerlos dinmicos yo hemos comentodo como se
soluciono: en vez de optor por que luesen dinmicos se combioron o librerlos
estticos, de lormo que, oun o costo de oumentor el tomono del ejecutoble, se
gonobo en lo locilidod de hocer luncionor lo oplicocion en cuolquier ordenodor, en
cuolquier corpeto, sin necesidod de instolocion ni outomtico ni monuol.
lero todovlo tenlomos un problemo, codo vez que se probose lo oplicocion
en un nuevo ordenodor, hoblo que creor lo corpeto c:\video\ e introducir en ello lo
bose de dotos. Lsto es sencillo pero en ocosiones molesto y poro un usuorio
inexperto podrlo ocosionor un problemo. Asl que se decidio y consiguio introducir
uno mejoro en el luncionomiento del progromo, de lormo que no necesitose de esto
corpeto en c:\ y que se pudiese mover libremente por los directorios del ordenodor.
Ln lo iniciolizocion del progromo se obtenlo lo ruto en donde estobo corriendo lo
oplicocion y o portir de esto ruto bose yo podlomos occeder o cuolquier corpeto o
orchivo, siempre que estuviesen tombien en ese directorio. Le esto lormo solo hoblo
que ocomponor el ejecutoble de los orchivos o directorios necesorios y colocorlos
siempre o su lodo. Utilizorlomos, por ejemplo, un simple orchivo comprimido que
contuviese todo eso. 5olo tendrlomos que descomprimirlo en lo corpeto que
//get application start directory
har buller[430];
::GetVodulelileName(0, buller, 430);
LP151P pszlileName = _tcsrchr(buller, '\\') + J;
-pszlileName = '\0';
Lesorrollo soltwore de lo oplicocion 169
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
quisiesemos y el progromo yo luncionorlo. 1ombien podrlomos simplemente copior y
pegor todo junto en otro corpeto y el progromo seguirlo luncionondo. Lsto nos serlo
muy util o lo horo de hocerlo correr en otro lC o de hocer dilerentes pruebos en un
mismo ordenodor. Los instrucciones que nos permiten reolizor esto son:
Appdir es un C5tring que olmoceno lo ruto donde est situodo lo oplicocion y
est delinido como uno vorioble publico en lo close principol de nuestro oplicocion.
lodremos occeder o Appdir desde cuolquier modulo de nuestro oplicocion y por
tonto cuolquier orchivo o directorio que se encuentre en esto ruto ser occesible por
el progromo.
loro mejoror lo sencillez y occesibilidod de lo oplicocion se hon incluido dos
corpetos que estorn en lo mismo ruto que el ejecutoble. Lstos corpetos sern
5potLB\, donde se olmocenoron los orchivos de lo bose de dotos y Copturos\,
donde guordoremos los lotogromos intermedios de los secuencios detectodos.
Acomponondo ol ejecutoble hobr un lichero llomodo Conlig.dot, donde
guordoremos olgunos pormetros de conligurocion del progromo que yo veremos
ms odelonte. Ln lo imogen vemos los orchivos y corpetos necesorios poro lo
ejecucion y luncionomiento de 5lO1.
Lesorrollo soltwore de lo oplicocion 17O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 49. 5FCT en eI usco uuro
3.6 MENU DE LA APLICACIN
Como yo se ho comentodo, se ho pretendido disenor un entorno poro
nuestro oplicocion lo ms porecido posible o los oplicociones que corren sobre
Windows. loro ello, se ho incluido en esto nuevo version un menu con diversos
entrodos, medionte los cuoles podemos occeder o los lunciones que yo occedlomos
con los botones de lo interloz y sobre todo y ms importonte, medionte los cuoles
podemos occeder o nuevos pormetros de conligurocion de lo oplicocion. Lste
menu complementor perlectomente lo luncionolidod del entorno de usuorio,
permitiendo conliguror nuevos opciones que iremos viendo conlorme voyomos
explicondo los dilerentes entrodos.
A continuocion se posor o explicor codo uno de esos entrodos y en oquellos
cosos que veomos conveniente se explicorn los distintos dilogos o los que dicho
entrodo llome.
Lesorrollo soltwore de lo oplicocion 171
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
3.6.1 MLNU ARCHIVO
Lste menu se ho disenodo emulondo o lo moyorlo de progromos que se
uson en Windows, en el cuol se suele poder occeder o lo operturo y cerrodo de
orchivos y ol guordodo de otros orchivos. vemos cuoles hon sido los entrodos
elegidos en nuestro coso:
Ig. 5O. Menu Arcnvo
Lesorrollo soltwore de lo oplicocion 172
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Como se oprecio en lo liguro SO el menu Archivo cuento con cinco entrodos,
estondo los dos primeros desoctivos. Lsto se debe o que en este momento lo
oplicocion tiene como luente lo 1v y estos dos entrodos solo tienen utilidod cuondo
se est en el modo vldeo. Le esto lormo, sin tener que usor mensojes de oviso que
nos impidon occionor dichos botones, quitomos eso posibilidod porque nos ser
llsicomente imposible el occionorlos. Lsto, como yo se ho comentodo, estor
presente en todos los entrodos del menu que osl lo necesiten. Asl nos libromos de
inestobilidodes del progromo, es decir, de los vulgormente llomodos cuelgues del
sistemo, que se producen cuondo en lo progromocion no se tienen en cuento todos
los posibles secuencios de eventos que pueden dorse en lo ejecucion normol del
progromo.
A continuocion explicomos codo uno de los entrodos del menu Archivo:
3.6.1.1 Abr|r...
A esto entrodo solo podremos occeder cuondo lo senol luente seo el vldeo.
5u luncion es lo mismo que tiene el boton Archivo que podemos ver en lo liguro SS.
Cuondo lo pulsemos se permitir lo eleccion de un orchivo de vldeo que podemos
escoger novegondo por nuestro ordenodor. Uno vez elegido el orchivo, este
empezor outomticomente o reproducirse. Los tipos de orchivos que se pueden
reproducir son: -.mpg; -.mpeg; -.ovi; -.mov; -.qt, ounque, segun que codecs
Lesorrollo soltwore de lo oplicocion 173
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
utilicen los orchivos reproducidos, podrn o no ser utilizodos poro el Aprendizoje o
Leteccion.
Ig. 51. EIeccon ue arcnvo
3.6.1.2 Cerrar
Lsto entrodo llomo o uno luncion, de nuevo ejecucion, que reolizo lo luncion
opuesto o lo onterior. Lo dilerencio con respecto o 5top es que cierro el orchivo por
completo, teniendo que obrir otro de nuevo si queremos reproducirlo. Ln el coso de
5top podremos volver o reproducirlo simplemente pulsondo lloy.
Lo luncion que reolizo esto occion es void C5lO1Llg::OnVcerror() y ser
llomodo cuondo el usuorio pulse dicho entrodo.
3.6.1.3 F|chas, 5a|var y 5a||r
Lstos tres entrodos llomon o los mismos lunciones que los botones, del
mismo nombre, que se encuentron lo interloz. Los dos primeros yo hon sido
Lesorrollo soltwore de lo oplicocion 174
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
ompliomente comentodos. 5olir no lo hemos comentodo, pero como es obvio lo
luncion que reolizor ser lo de cerror el progromo.
3.6.2 MLNU CANALL5
Lsto entrodo del menu nos introduce en uno novedod muy importonte de
esto version. Al llomor o este menu podremos occeder o unos lunciones que doton
de uno notoble moyor potencio ol progromo. Como su nombre indico, estor
lntimomente relocionodo con lo reproduccion televisivo.
Ln lo siguiente liguro vemos que presento cinco entrodos:
Ig. 52. Menu CanaIes
Lesorrollo soltwore de lo oplicocion 17S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Los dos ultimos entrodos: Conol Vs y Conol Venos, se corresponden con
los slmbolos ms y menos de lo interloz que yo explicomos. Lebido o esto no sern
objeto de nuestro explicocion en este oportodo. A continuocion explicomos los otros
tres.
3.6.2.1 L|sta de Cana|es
Lsto entrodo nos llevo o un nuevo cuodro de dilogo en el que podremos
conliguror lo listo de conoles poro lo deteccion. Le esto lormo el propio usuorio ser
el que puedo conliguror los conoles en los que se hor lo deteccion y no ser un
pormetro inolconzoble que tengo que ser conligurodo por el progromodor. Lo
luncion que llomo ol nuevo cuodro de dilogo es:
5olo hemos expuesto los instrucciones que llomon ol nuevo diologo, pero
ontes tendremos que posorle o este cuodro de dilogo lo listo de conoles octuol y
cuondo este devuelvo el control se copior lo listo modilicodo. loro el nuevo dilogo
se ho creodo uno close llomodo CListConolLlg, poro lo que se hon creodo los
lunciones:
void C5PO1Dlg::OnVlistacanales()
{
il (m_dListCanalDlg.DoVodal () ==lDOK)
{
UpdateData(1PUL);
UpdateData(lAL5L);
BOOL OnlnitDialog();
void OnOK();
void OnPasacanal();
Lesorrollo soltwore de lo oplicocion 176
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Lo primero luncion iniciolizo el cuodro de dilogo cuondo este es llomodo.
Los otros tres estn osociodos o los botones que podemos oprecior en lo liguro:
Ig. 53. LsIa ue CanaIes
1endremos uno vorioble int llomodo
m_conoles osociodo ol cuodro de texto Conol, de lormo que lo usor lo luncion
Onlosoconol poro introducir el numero introducido en lo listo de lo derecho. Lsto
luncion estor osociodo ol boton que opunto o lo derecho, mientros que lo luncion
OnLliminoconol (que borro el conol de lo listo que hoyomos seleccionodo) est
osociodo ol boton que opunto o lo izquierdo. loro lo listo hemos creodo uno
vorioble CListBox llomodo m_lstconol que ser lo que contengo lo listo de conoles.
lemos delinido esto listo de lormo que siempre tengo un conol como mlnimo
y 6 como mximo, oporeciendo un mensoje de odvertencio en coso controrio
cuondo se pulso OK:
Lesorrollo soltwore de lo oplicocion 177
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 54. Mensaje ue IsIa ncorrecIa
Al devolver el control este dilogo ol cuodro de dilogo principol, este ultimo
copio poro su uso lo listo de conoles, pero que poso cuondo cerromos el progromo
y volvemos o obrir, lo listo seguir guordodo? loro resolver este problemo se
creoron dos lunciones: LeeConlig() y OuordoConlig(). Lo primero lee todos los
pormetros de conligurocion utilizodos por el progromo cuondo se inicio el mismo.
Lstos pormetros estn en el lichero Conlig.dot y son guordodos por lo luncion
OuordoConlig(), que se llomor cuondo se octuolice en lo oplicocion cuolquiero de
los pormetros de conligurocion que en el lichero se olmocenon. Ln este coso el
lichero se volver o guordor ol termino de lo octuolizocion de lo listo de conoles,
pero como veremos ms odelonte tombien se guordor cuondo modiliquemos otros
pormetros.
Le todos los novedodes reolizodos, esto es lo que incluye uno moyor
luncionolidod ol progromo y que ms le provee de uno luerte interoccion entre el
usuorio y lo oplicocion. Lsto mejoro nos permite cumplir plenomente el objetivo de
llexibilidod que nos hicimos ol comienzo de este proyecto.
Lesorrollo soltwore de lo oplicocion 178
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
A continuocion ponemos el codigo, o porte de el, de ombos lunciones:
vemos que en el coso de que no existo el lichero Conlig.dot estoblecemos
unos dotos por delecto y creomos un nuevo lichero. Lsto nos permite que el
progromo no lolle en el coso de que no existo dicho orchivo de conligurocion.
3.6.2.2 Memor|a Arr|ba y Memor|a Aba[o
Lstos dos entrodos nos permitirn llomor o dos lunciones que reolizon un
combio de conol dentro de lo listo de conoles que hoy en memorio. 5i elegimos
Vemorio Arribo, combior ol siguiente conol que se encuentro en lo listo de conoles
void C5PO1Dlg::GuardaConlig()
{
llLL -lich;
lich = lopen(Appdir + Conlig.dat,wb);
lwrite ( &umbral_det, sizeol(double), J, lich);
lwrite ( &NumCuadros, sizeol(int), J, lich);
lwrite ( &1iempo_Observacion, sizeol(int), J, lich);
void C5PO1Dlg::LeeConlig()
{
llLL -lich;
il ((lich = lopen(Appdir + Conlig.dat,rb))l= NULL)
{
lread ( &umbral_det, sizeol(double), J, lich);
lread ( &NumCuadros, sizeol(int), J, lich);
lread ( &1iempo_Observacion, sizeol(int), J, lich);
lread ( &NumCanales, sizeol(int), J, lich);
lread ( canales, sizeol(int), NumCanales, lich);
lclose(lich);
}
Lesorrollo soltwore de lo oplicocion 179
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
y ol controrio si elegimos Vemorio Abojo. Ln el coso de que el conol octuol no se
encuentre dentro de lo listo de conoles se combior ol primer o ol ultimo conol de lo
listo, segun elijomos Vemorio Arribo o Vemorio Abojo.
lonemos el codigo de lo luncion Vemorio Arribo por ejemplo:
Lo otro luncion est delinido por void C5lO1Llg::OnVemdown() y su
luncionomiento ser onlogo ol de lo orribo expuesto.
void C5PO1Dlg::OnVemup()
{
UpdateData(1PUL);
int canal;
bool enc = lalse;
lor (int i=0;i<NumCanales;i++)
{
il(canales[i]==m_canal)
{
il(i==NumCanales-J)
{
canal=canales[0];
enc = true;
}
else
{
canal=canales[i+J];
Lesorrollo soltwore de lo oplicocion 18O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
3.6.3 MLNU RLPRODUCIR
Lste menu nos permite el occeso o tres lunciones que yo hemos comentodo
onteriormente, como son: lloy, louse y 5top. Lstos tres entrodos solo sern
occesibles si lo senol luente es lo de vldeo, poro evitor inestobilidodes del sistemo,
como yo se comento.
Ln lo siguiente liguro se observo lo oporiencio de lo oplicocion cuondo esto
se dispone o reproducir un vldeo. vemos el boton de Archivo que hosto ohoro no
hoblomos visto, debido o que este solo oporece cuondo no se est reproduciendo
ningun vldeo y lo oplicocion no tiene lo television como senol de entrodo.
Ig. 55. Menu Heprouucr
Lesorrollo soltwore de lo oplicocion 181
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
3.6.4 MLNU DLTLCCIN
Lste menu tendr seis entrodos que se corresponden con los botones de lo
interloz principol que combion lo senol luente y empiezon o terminon el Aprendizoje
o lo Leteccion. Yo sobemos el luncionomiento del progromo cuondo son
occionodos, osl que simplemente enumeroremos los lunciones osociodos o codo
entrodo:
1v: void C5lO1Llg::On1v()
vldeo: void C5lO1Llg::Onvideo()
Lmpezor Aprendizoje: void C5lO1Llg::OnBoprender()
1erminor Aprendizoje: void C5lO1Llg::OnBlinoprender()
Lmpezor Leteccion: void C5lO1Llg::OnLmpezor()
1erminor Leteccion: void C5lO1Llg::On1erminor()
A continuocion veremos estos entrodos de lormo grlico:
Lesorrollo soltwore de lo oplicocion 182
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 56. Menu DeIeccon
3.6.5 MLNU CONFIOURACIN
Lste menu junto con el de Listo de Conoles son los ms importontes, yo que
juntos nos permiten occeder como usuorios o los pormetros internos de lo
oplicocion y modilicorlos. Lesde este menu podremos occeder y modilicor tres
pormetros de lo conligurocion del olgoritmo de deteccion de onuncios:
Livisiones de lo lmogen
1iempo de Observocion
Umbrol de Leteccion
Lesorrollo soltwore de lo oplicocion 183
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Lsto constituye uno de los puntos luertes de lo oplicocion, yo que nuestro
oplicocion no ser olgo rlgido, que en coso de no luncionor correctomente el usuorio
se veo incopoz de orreglor. 5e podr de lormo sencillo y dinmico modilicor los
pormetros lundomentoles de lo deteccion, hosto que el usuorio este conlorme con
el luncionomiento de lo oplicocion. Le hecho lo oplicocion luncionor mucho mejor
si se odecuon estos pormetros ol numero de onuncios que hoyo en lo bose de
dotos, osl como o lo durocion de estos onuncios. vemos los cuotro entrodos de este
menu:
Ig. 57. Menu ConIguracon
Lesorrollo soltwore de lo oplicocion 184
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
5e hon copturodo estos entrodos mientros se ejecutobo el modulo de
Leteccion, poro observor como, mientros corre dicho modulo, los tres ultimos
entrodos se encuentron deshobilitodos, de lormo que no podomos combior los
pormetros de conligurocion de deteccion mientros esto ultimo est corriendo.
A continuocion explicomos los cuotro entrodos.
3.6.5.1 Cont|gurac|n Actua|
Lsto entrodo nos muestro un cuodro de dilogo con los volores octuoles de
los pormetros de conligurocion. Ls muy util poro ver, uno vez obierto el progromo,
cul es lo ultimo conligurocion utilizodo o poro, en el coso de que estemos hociendo
muchos combios en lo conligurocion, sober en todo momento cules son los volores
de los pormetros de conligurocion.
Cuondo pulsomos esto entrodo llomomos o lo siguiente luncion:
void C5PO1Dlg::OnVinlo()
{
m_dlnloDlg.tempdetec = 1iempo_Observacion-0.04;
m_dlnloDlg.umbraldet = umbral_det;
m_dlnloDlg.numdivis = NumCuadros;
il (m_dlnloDlg.DoVodal () ==lDOK)
{
Lesorrollo soltwore de lo oplicocion 18S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Antes de llomor ol cuodro de dilogo le enviomos los volores octuoles de los
pormetros de conligurocion. Lespues se llomo ol dilogo, mostrndose:
Ig. 53. ConIguracon AcIuaI
lemos creodo uno close llomodo ClnloLlg poro este cuodro de dilogo.
Cuondo se iniciolizo corgomos el monejodor del cuodro de texto lnlo y despues
utilizomos este monejodor poro corgor en el lo inlormocion de conligurocion.
Los pormetros de conligurocion son:
Nmero de D|v|s|ones: es el numero de cuodros en que dividimos lo
imogen copturodo.
T|empo de Detecc|n: ol que tombien hemos llomodo 1iempo de
Observocion, ser el tiempo que estoremos en codo conol.
CWnd -lnlo;
lnlo=GetDlgltem(lDC_lNlO);
Lesorrollo soltwore de lo oplicocion 186
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Umbra| de Detecc|n: umbrol poro decidir si un onuncio pertenece o no o
lo secuencio de vldeo procesodo.
3.6.5.2 D|v|s|ones Imagen
Con esto entrodo occedemos o un cuodro de dilogo en el que podremos
elegir el numero de divisiones que queremos tomor por imogen copturodo. 5e don o
elegir entre los que se ho considerodo oportuno tros los simulociones teoricos
reolizodos. Cuondo pulsomos esto opcion se occede o lo luncion void
C5lO1Llg::OnVcuodros() que ser lo que llome ol cuodro de dilogo, poro el que
tombien hemos creodo uno close, llomodo CLivisionesLlg. 5u oporiencio es:
Ig. 59. Numero ue Dvsones
lor delecto oporecer seleccionodo lo opcion de 1OO cuodros. Cuondo
pulsemos Aceptor y devolvomos el control ol dilogo principol, se corgor lo nuevo
Lesorrollo soltwore de lo oplicocion 187
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
conligurocion y como yo dijimos ontes, se octuolizor el orchivo Conlig.dot en el que
se guordo lo conligurocion de lo oplicocion.
Ante lo posibilidod de luncionomiento del progromo con dilerente numero de
divisiones y lo importoncio que tiene esto en nuestro bose de dotos, yo que este
numero condicionor lo contidod de lilos de los motrices que guordemos en ello,
nos vimos en lo necesidod de monejor uno bose de dotos por codo uno de los
dilerentes opciones que podemos escoger. Lsto disminuye el peso de los boses de
dotos, ol existir uno por codo posible numero de divisiones y nos permite tombien
tener olmocenodos dilerentes onuncios en codo uno de ellos. lor estor lntimomente
ligodos este pormetro de conligurocion con lo bose de dotos que se este utilizondo
en el momento octuol, cuondo modiliquemos dicho pormetro, ol devolver el control
ol dilogo principol volveremos o corgor los onuncios de lo nuevo bose de dotos en
lo listo spots, que yo lue comentodo en el oportodo 3.6.2.1.
Los nombres de los boses de dotos que tendremos segun el volor del
numero de divisiones sern spotdb + N Livisiones + .dot. Asl, podremos usor
hosto 6 boses de dotos dilerentes, llomodos:
spotdb16.dot, spotdb2S.dot, spotdb64.dot, spotdb1OO.dot,
spotdb2S6.dot, spotdb4OO.dot,
Lesorrollo soltwore de lo oplicocion 188
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
3.6.5.3 T|empo de Detecc|n
Lsto opcion nos obre un cuodro de dilogo en el que modilicoremos el
1iempo de Leteccion o 1iempo de Observocion como lo hemos llomodo hosto
ohoro. Lo luncion o lo que se occede cuondo se elije dicho opcion es:
vemos que ontes de llomor ol nuevo dilogo multiplicomos por O.O4 y que
cuondo este devuelve el control dividimos por O.O4. Lsto es debido o que el tiempo
que nosotros introduciremos estor en segundos pero el progromo monejo el tiempo
como numero de lromes dentro de lo secuencio. 5i recordomos que un lrome tiene
uno lrecuencio de 2S codo segundo resulto que su durocion es de 4O ms, o dicho
de otro modo, codo 4O ms se presento un nuevo lrome por pontollo. Al multiplicor o
dividir por O.O4 lo unico que estomos hociendo es reolizor lo conversion.
Al termino de lo luncion se llomo o OuordoConlig, que ser lo encorgodo de
octuolizor y guordor el nuevo lichero Conlig.dot.
void C5PO1Dlg::OnVtiempodeteccion()
{
m_d1iempoDetecDlg.m_tempdetec = 1iempo_Observacion-0.04;
il (m_d1iempoDetecDlg.DoVodal () ==lDOK)
{
UpdateData(1PUL);
UpdateData(lAL5L);
Lesorrollo soltwore de lo oplicocion 189
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ll dilogo ol que llomomos tombien tiene osociodo uno close, llomodo
C1iempoLetecLlg. Como vemos en lo siguiente liguro, hoy un cuodro de texto en
donde introduciremos el volor del tiempo deseodo. Lste cuodro de texto tiene
osociodo uno vorioble del tipo double cuyo nombre es m_tempdetec.
Ig. 6O. Tempo ue Coservacon
Ll tiempo que introduzcomos deber estor entre 1 y 7 segundos y en coso
controrio oporecer el siguiente mensoje de oviso:
Ig. 61. Tempo IncorrecIo
Lesorrollo soltwore de lo oplicocion 19O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
3.6.5.4 Umbra|
Con esto ultimo entrodo del menu de conligurocion occedemos o un dilogo
muy porecido ol onterior, donde introduciremos el umbrol de deteccion que
deseemos. Lo luncion que llomomos se deline por void C5lO1Llg::OnVumbrol() y
es prcticomente iguol que lo onterior exceptuondo los conversiones de tiempo.
1ombien se llomo o OuordoConlig poro olmocenor el nuevo volor del umbrol
deseodo.
Lo close del nuevo diologo se llomor CUmbrolLlg y en el tombien hobr un
cuodro de texto con uno vorioble del tipo double osociodo, que en este coso se
llomor m_Umbrol. Ln ese cuodro introduciremos el volor deseodo del umbrol.
Ig. 62. UmoraI ue DeIeccon
Ll umbrol que introduzcomos deber estor entre O.7 y 1. Lstos volores se
Lesorrollo soltwore de lo oplicocion 191
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
hon escogido por un lodo porque moyor que uno nunco podr ser lo correlocion y
por el otro porque un volor menor de O.7 no nos indico un gron porecido y no nos
serlo util poro lo correcto deteccion. Ln coso controrio de introducir un volor entre
estos llmites oporecer el siguiente mensoje de oviso:
Ig. 63. UmoraI IncorrecIo
3.6.6 MLNU ACLRCA DL...
lulsondo esto ultimo y unico entrodo de este menu se presento un dilogo
con inlormocion sobre el proyecto y sobre el outor del mismo. A continuocion se
muestro el cuodro de dilogo que oporece en pontollo cuondo seleccionomos esto
opcion:
Lesorrollo soltwore de lo oplicocion 192
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 64. DIogo Acerca ue
Pesultodos Lxperimentoles 193
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
CAPTULO 5
RESULTADOS EXPERIMENTALES
Uno vez linolizodo el progromo hoblo que proborlo en el moyor numero de
escenorios posibles, de lormo que pudiesemos comprobor su estobilidod y robustez.
Leblomos osegurornos de que el progromo corrlo sin problemos en dilerentes
sistemos operotivos Windows y despues tenlomos que estoblecer dilerentes
pruebos, de lormo que conlirmsemos si los porcentojes teoricos de deteccion,
hollodos en el copltulo 3, se cumpllon. 5e reolizorn, por tonto, dilerentes
simulociones que muestren lo copocidod de deteccion de nuestro oplicocion en
dilerentes escenorios.
CARGA COMPUTACIONAL DEL SISTEMA
Ll conseguir el consumo mlnimo de recursos del sistemo ho sido en todo
momento uno de los metos que se tenlon presentes duronte el desorrollo soltwore
de lo oplicocion. Como resultodo de lo busquedo de lo consecucion de este objetivo,
se eligio en lo primero version el lenguoje C++ como plotolormo de progromocion,
por ser el lenguoje ms rpido y el que permitlo ol progromodor occeder o los
recursos del sistemo de lormo ms elicoz y con moyor libertod. Lo eleccion de este
lenguoje trolo consigo los ventojos yo mencionodos, pero tombien el inconveniente
Pesultodos Lxperimentoles 194
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
de lo dilicultod de progromocion, odems del dilicultoso oprendizoje del monejo de
los Alls de Windows.
Uno vez terminodo lo oplicocion, deblomos probor si se hoblo cumplido el
objetivo buscodo y poro ello dejomos correr el progromo mientros observbomos el
porcentoje de ClU usodo por el progromo y lo memorio PAV que consumlo. Lsto lo
horemos medionte lo visuolizocion de lo corgo computocionol del odministrodor de
toreos de Windows.
Ln un principio cuondo pensbomos que yo hoblo terminodo nuestro trobojo
de progromocion y poreclo que todo luncionobo o lo perleccion, se detecto que si se
dejobo el progromo encendido duronte lorgo tiempo, este terminobo por opogorse
sin motivo oporente. Nodo poreclo ser incorrecto y sin emborgo siempre terminobo
por opogorse si dejbomos lo oplicocion en el modo Leteccion. Ll estudio de lo
utilizocion de los recursos del sistemo nos permitiero dor con lo clove, yo que se
locolizo un oumento lineol del consumo de lo memorio PAV del ordenodor.
Pesultodos Lxperimentoles 19S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Cuondo se implemento el nuevo metodo de deteccion se osumio que el
ontiguo luncionobo correctomente, y por lo tonto no se toco nodo del codigo que se
encorgobo de lo copturo de los imgenes en lo luncion OnCopturor. lero ol reolizor
uno pruebo visuolizondo el uso de los recursos del sistemo de lo version onterior se
obtuvo lo siguiente:
Ig. 65. Uso CFU y Memora HAM ue Ia verson anIeror
5e observo un oumento lineol del consumo de memorio PAV (en lo liguro
ll o orchivo de pgino) y un uso de lo ClU del 1OO7, lo cuol represento un
comportomiento del progromo obsolutomente indeseoble. Ll sistemo presento un
llmite de memorio PAV, obtenido de lo sumo de lo memorio reol instolodo en
Pesultodos Lxperimentoles 196
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
nuestro equipo ms uno memorio virtuol o orchivo de poginocion, que es un reo
del disco duro que Windows utilizo como si luero PAV. Cuondo se olconzo dicho
llmite lo oplicocion se cerror, ol no poder el sistemo otorgorle ms recursos. vemos
en lo siguiente imogen lo contidod de recursos que lo oplicocion ocoporor y como,
cuondo lo cerromos, se libero todo lo memorio PAV ocumulodo.
Ig. 66. Loeracon ue recursos cuanuo cerramos Ia apIcacon orgnaI
Uno vez que se vio que lo oplicocion que hoblomos desorrollodo hoblo
heredodo este problemo de lo ontiguo version y que se dedujo que el problemo
estobo en lo reservo de memorio, sin ser posteriormente liberodo, en lo luncion
OnCopturor, se estudio el codigo poro solucionor el problemo. Lo solucion yo se ho
Pesultodos Lxperimentoles 197
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
comentodo: se creo uno luncion, llomodo lnitCopturor, que reservobo todo lo
memorio necesorio que despues se utilizorlo en OnCopturor. Le esto lormo se
consiguio que el progromo no reservose memorio codo 4O ms, sin que luese
liberodo ol solir de lo luncion.
lero medionte lo observocion de lo corgo computocionol del sistemo no solo
odvertimos el problemo del uso lineol de memorio PAV, sino que tombien vimos
que lo oplicocion usobo el 1OO7 de lo ClU duronte todo el tiempo que estobo en el
modulo de Leteccion. Lsto ero inodmisible y nos indicobo que olgo en el progromo
originol estobo mol disenodo. Lsto corocterlstico tombien lue heredodo en un
principio por lo nuevo version, pero poro poder solucionorlo hubo que recurrir o un
estudio ms en prolundidod de los tiempos de ejecucion de todos los modulos y
lunciones internos de lo oplicocion. Lsto se ver con todos los detolles en el
siguiente oportodo. Ahoro solo diremos que conseguimos orreglor el problemo,
quedondo el uso de recursos del sistemo de lo siguiente monero:
Pesultodos Lxperimentoles 198
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 67. Uso CFU y Memora HAM ue Ia nueva verson
5e puede oprecior como el uso de memorio PAV es constonte y como el
consumo de lo ClU se encuentro entorno o un 3O74O7. Le todos lormos el uso de
lo ClU es siempre oproximodo, yo que en el sistemo en el mismo instonte que
corre nuestro oplicocion hoy otros muchos procesos que tombien consumen
recursos y los tiempos de tronsoccion de uno o otro no pueden ser otribuidos o
ningun proceso en concreto.
loy que senolor que el consumo de lo ClU recogido ho sido con 1 onuncio
en lo bose de dotos y con 1 segundo como 1iempo de Leteccion. 5i voriomos
cuolquiero de estos dos opciones, el ospecto del consumo de lo ClU ser
totolmente dilerente. Al oumentor el 1iempo de Leteccion se producen ms
oscilociones, yo que duronte el tiempo que se proceso lo secuencio de imgenes, lo
corgo computocionol es menor. Asl si ponemos 3 segundos, duronte este tiempo el
uso de lo ClU ser menor, pero cuondo pose este tiempo se producirn picos de
uso correspondientes ol proceso de correlocion. Ll oumento de los onuncios en lo
bose de dotos conllevo que los picos de consumo de lo ClU comentodos seon
moyores, es decir, llegorn o un nivel de moyor porcentoje de uso. Lependiendo del
1iempo de Leteccion conligurodo, el ospecto ser dilerente. 5i se elije 1 segundo,
prcticomente se montendr olrededor del nivel mximo de estos picos, mientros
que si elegimos 6 segundos el ospecto se osemejor ol de volles y montonos.
Pesultodos Lxperimentoles 199
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 63. Uso CFU ue Ia nueva verson con 3 anuncos y 1 segunuo ue Tempo ue DeIeccon
Ig. 69. Uso CFU ue Ia nueva verson con 3 anuncos y 7 segunuos ue Tempo ue DeIeccon
linolmente logromos orreglor los problemos que ocorrebomos de lo version
onterior y yo tenlomos uno version estoble y luncionol. lero hosto ohoro solo hoblo
sido probodo en uno mquino, por lo que probomos su luncionomiento en dilerentes
lCs con distintos torjetos de 1v:
AVL Athlon Xl 22OO+ 1.8 Olz, 768 de PAV, 1orjeto de 1v AverVedio
1v 5tudio, 5.O. Windows Xl
AVL Athlon Xl 1.2O Olz, 2S6 de PAV, 1orjeto de 1v linnocle lC1v,
5.O. Windows Xl
Pesultodos Lxperimentoles 2OO
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
AVL Athlon Xl 18OO+ 1.S3 Olz, S12 de PAV, 1orjeto de 1v AverVedio,
5.O. Windows 98
lentium 4 2.4 Olz, S12 de PAV, 1orjeto de 1v Losy 1v, 5.O. Windows
2OOO
Lstos lueron los dilerentes equipos en los que se probo el progromo. loro
hocer simulociones se ver que tombien se hon usodo otros equipos que no tenlon
instolodos torjetos de 1v, pero que podlon servirnos seleccionondo como senol
luente el vldeo. Ln todos ellos el progromo lunciono, ounque se detectoron ciertos
inestobilidodes relocionodos con lo reproduccion de lo television. Al posor de 1v o
vldeo y ol reves, o veces el progromo se cerrobo sin motivo y en un equipo ero
necesorio lo onterior iniciolizocion de lo torjeto de 1v con el soltwore que
ocomponobo o esto, poro empezor o utilizor nuestro progromo. Lste problemo en
olgunos cosos se podlo deber o unos drivers mol instolodos, yo que el mismo
problemo se detectobo con otros progromos comercioles. Lsto tombien ero
heredodo de lo version onterior, pero no lue nuestro objetivo entror en prolundidod
en el monejo de los drivers de lo torjeto de 1v y del diseno medionte el LirectX.
Lsto mejoro se propondr, por tonto, poro luturos desorrollodores.
Pesultodos Lxperimentoles 2O1
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
SIMULACIONES
Ln este oportodo reolizoremos dilerentes simulociones de nuestro oplicocion.
Los recogidos en el primer oportodo estn dirigidos ol estudio interno de lo
oplicocion de coro o perleccionor su luncionomiento y los contenidos en el segundo
oportodo tienen como objetivo comprobor si se cumplen los porcentojes de
deteccion del copltulo 3.
2.1 5IMULACIONE5 PARA OP1IMIZAR LA APLICACIN
Cuondo explicomos lo corgo computocionol del sistemo, vimos que, en un
principio, el uso de lo ClU ero del 1OO7 duronte todo el tiempo que durose lo
deteccion. Ln su momento dijimos que se soluciono pero no se comento ni como se
detecto el error, ni cul lue lo solucion odoptodo. Ln este oportodo nos centroremos
en explicor esto, odems de ver el luncionomiento linol de nuestro oplicocion en
terminos de tiempos de ejecucion. Ls decir, estudioremos el luncionomiento interno
del progromo, viendo cules son los tiempos que tordon en ejecutorse los dilerentes
modulos del mismo.
Ln ol oportodo 2 del copltulo 3 yo se explico como se estudiobo lo durocion
de uno luncion o proceso dentro de lo oplicocion. Lxpusimos el codigo necesorio y
lo explicomos, de lormo que ohoro yo tenemos los conocimientos necesorios poro
Pesultodos Lxperimentoles 2O2
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
entender lo que vomos o reolizor en los simulociones. 5eguiremos usondo los
lunciones CueiyFei/oimanceCounIei y CueiyFei/oimanceFieguency medionte los
cuoles podremos sober cuol es lo durocion exocto de cuolquier luncion o porcion de
codigo de nuestro progromo.
loro empezor, estudiomos por que en lo version originol el uso de lo ClU es
del 1OO7 duronte todo el proceso de Leteccion. Obtuvimos los tiempos de
ejecucion de lo luncion OnCopturor y los resultodos lueron que estos estobon en
torno o los 18O ms. Lxponemos uno muestro de lo que obtenlomos:
Pecordemos que lo luncion OnCopturor ero llomodo codo 4O ms por el 1imer
que usbomos en nuestro oplicocion. lor lo tonto, ol estor en luncionomiento lo
luncion OnCopturor cuondo se llomo ol 1imer, este no puede ser llomodo,
quedndose o lo espero y ejecutndose en cuonto se solgo de dicho luncion. lor
tonto, el sistemo estor ejecutondo continuomente lo luncion OnCopturor de nuestro
oplicocion, de ohl el 1OO7 de uso de lo ClU. Ll excesivo tiempo que se tordobo en
eso luncion ocorreobo otro grove problemo, y es que duronte todo ese tiempo no
estbomos copturondo los lotogromos que se estobon emitiendo. Ln terminos de
1iempo que est en OnCapturar = J78.04J622 milisegundos
1iempo que est en OnCapturar = 20S.S6607J milisegundos
1iempo que est en OnCapturar = J7S.200473 milisegundos
1iempo que est en OnCapturar = J74.2JS7J7 milisegundos
1iempo que est en OnCapturar = J7J.442S77 milisegundos
1iempo que est en OnCapturar = J73.7632J6 milisegundos
Pesultodos Lxperimentoles 2O3
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
lromes, podrlomos decir que estbomos dejondo de copturor entre 4 y 6
lotogromos.
Lsto mismo simulocion lo electuomos en lo nuevo version, encontrndose
que dichos tiempos estobon en torno o los 12O ms. Ln nuestro version, lo perdido
de lromes resulto inodmisible, porque todo lo bose de nuestro metodo de deteccion
est sobre el supuesto de que copturomos todos los lotogromos que se emiten en
un determinodo conol duronte el 1iempo de Observocion. Un estudio del codigo
interno de lo luncion OnCopturor nos indico que este tiempo se perdlo
prcticomente en todo su totolidod en los lunciones que electuobon el reescolodo de
lo imogen. lor ello, como yo comentomos con onterioridod, tuvimos que prescindir
de dichos lunciones, o pesor de su gron utilidod. Ll problemo se consiguio sorteor,
ol reolizor lo copturo de los imgenes televisivos directomente con lo resolucion
deseodo, de lormo que no nos hiciese lolto su redimensionomiento. Lsto no
solucionobo el problemo con los vldeos, pero ol ser orchivos que tenemos yo
olmocenodos, podemos monipulorlos y reescolorlos ontes de usorlos en el
progromo, por lo que no resulto ton grove poro nuestro oplicocion.
Uno vez que nuestro progromo yo luncionobo correctomente, se reolizoron
simulociones en los que intentomos estudior todos los tiempos posibles de
ejecucion. loro ello tomomos lo siguiente conligurocion: 1OO cuodros, 2 segundos
Pesultodos Lxperimentoles 2O4
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
como tiempo de deteccion y un umbrol de O.9. 5e estudioron dilerentes tiempos en
dos equipos dilerentes, de lormo que viesemos lo importoncio de lo velocidod de lo
ClU en lo durocion de los lunciones desorrollodos:
Lqu|po 1: AMD Ath|on XP 2200+ 1.80 OHz, 768 MB RAM
Los tiempos que estobo en OnCapturar eron en torno o los 8 ms.
1eniendo en cuento que esto luncion se llomobo codo 4O ms, el
resultodo obtenido ero sotisloctorio.
5e detecto que reolmente el T|mer no se llomobo exoctomente codo
4O ms, sino oproximodomente codo uno medio de 48 ms y sin
ninguno precision.
1iempo que esta en OnCapturar = 7.3J0222 milisegundos
1iempo que esta en OnCapturar = 7.743S88 milisegundos
1iempo que esta en OnCapturar = 7.304077 milisegundos
1iempo en entrar de una vez a otra en On1imer = 43.3608J3
1iempo en entrar de una vez a otra en On1imer = 47.S46S46
1iempo en entrar de una vez a otra en On1imer = 4J.2S44J8
1iempo en entrar de una vez a otra en On1imer = S4.3J3SS0
Pesultodos Lxperimentoles 2OS
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Cuondo se termino el 1iempo de Observocion y se reolizon los
corre|ac|ones, los tiempos de ejecucion de estos son muy elevodos,
lo que redundo en un gosto olto de lo ClU. A continuocion ponemos
los tiempos de correlocion con codo uno de los 8 onuncios de
nuestro bose de dotos:
Asl, cuondo pose el 1iempo de Observocion y reolicemos los
comporociones, lo luncion OnCopturor no se ejecutor en los tiempos
que onteriormente comentbomos sino que tordor:
Oue es oproximodomente el resultodo de sumor los tiempos
onteriores de los 8 onuncios ms los 8 milisegundos que tordobo sin
reolizor los correlociones.
Lebido ol punto onterior sumodo o que lo luncion no es lonzodo
1iempo que esta en CalculaCorr = JS6.373443
1iempo que esta en CalculaCorr = 200.J34337
1iempo que esta en CalculaCorr = J62.333208
1iempo que esta en CalculaCorr = JJ2.4666S6
1iempo que esta en CalculaCorr = JJ2.7S4SS4
1iempo que esta en CalculaCorr = J64.0J442J
1iempo que esta en OnCapturar J208.886744 milisegundos
1iempo que esta POP DL1LCClON = 2602.248302 milisegundos
Pesultodos Lxperimentoles 2O6
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
reolmente codo 4O ms, el tiempo reol que esto por conol es de:
Lste tiempo es oproximodo y depende del numero de onuncios que
tengomos en lo bose de dotos, osl como de lo durocion de estos y
por supuesto del volor del pormetro de 1iempo de Leteccion que
hoyomos estoblecido.
Lqu|po 2: Pent|um 4 3.40 OHz, 1,00 OB RAM
Los tiempos que estobo en OnCapturar eron en torno o los S ms. lo
bojodo con respecto ol onterior equipo unos 3 ms.
Ll T|mer sigue llomndose codo 48 ms oproximodomente.
Con el equipo onterior obtenlomos uno medio de correlocion por
onuncio de 162.621 milisegundos. Ahoro lo medio ser de 114.698
milisegundos.
1iempo que esta en OnCapturar = S.J8J672 milisegundos
1iempo que esta en OnCapturar = 4.27286J milisegundos
1iempo que esta en OnCapturar = 4.4S0JS2 milisegundos
1iempo en entrar de una vez a otra en On1imer = 48.88660J
1iempo en entrar de una vez a otra en On1imer = 46.6342J2
1iempo en entrar de una vez a otra en On1imer = 47.832282
Pesultodos Lxperimentoles 2O7
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Asl, lo luncion OnCopturor se ejecutor en:
Oue es oproximodomente el resultodo de sumor los tiempos
onteriores de los 8 onuncios ms los S milisegundos que tordobo sin
reolizor los correlociones.
Ll tiempo reol que esto por conol es de:
Lste tiempo es 4OO milisegundos menor que en el equipo onterior.
vemos que o moyor velocidod de reloj de nuestro ClU mejor
luncionomiento.
2.1.1 CONCLU5IONL5
Lespues de estudior el luncionomiento interno de nuestro progromo vemos
como el uso de un ordenodor con uno ClU de moyor lrecuencio mejoro los tiempos
1iempo que esta en CalculaCorr = J22.S76883
1iempo que esta en CalculaCorr = J20.J30S23
1iempo que esta en CalculaCorr = J22.820072
1iempo que esta en CalculaCorr = 80.33S2S2
1iempo que esta en CalculaCorr = 80.206876
1iempo que esta en CalculaCorr = J2J.JS2J68
1iempo que esta en OnCapturar = 322.6J0488 milisegundos
1iempo que esta POP DL1LCClON = 22J8.2037SS milisegundos
Pesultodos Lxperimentoles 2O8
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
de ejecucion de lo oplicocion. lero lo ms importonte que podemos observor es que
el tiempo en el que el 1imer lonzo lo luncion OnCopturor no es de 4O ms, lo cuol es
un grove problemo poro nuestro oplicocion. Nuestro trobojo se ho bosodo en lo
precision de este tiempo, yo que necesitomos copturor exoctomente codo 4O ms los
lromes que se esten emitiendo. Ll hecho de que no seo osl provoco que:
lerdomos olgun lrome que otro, yo que en 1 segundo hocemos (tomondo
48 ms de medio) 2O.83 copturos, cuondo reolmente se hon emitido 2S
lromes. lor lo tonto perdemos 4.17 lromes.
Al ser oleotorio (en torno o un volor medio) dicho tiempo, lo motriz
recogido en nuestro bose de dotos puede dilerir de lo que obtengomos en
lo deteccion, pudiendo dor lugores o errores en lo deteccion.
Como nosotros, los tiempos los convertimos o lromes considerondo un
tiempo de 4O ms, el que este tiempo seo moyor redundo en que
estoremos reolmente ms tiempo por conol. lor ejemplo, si elegimos 1
segundo, este volor lo posoremos o lromes, 17O.O4 = 2S lromes, y ol ser
estos copturodos codo 48 ms de medio, estoremos reolmente 2S-O.O48
= 1.2 segundos.
lruebos en otros ordenodores hon mostrodo unos resultodos de los
tiempos del 1imer con dilerentes medios y en ocosiones ms cerconos o
Pesultodos Lxperimentoles 2O9
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
4O ms y ms estobles. Lsto nos indico que uno bose de dotos construido
en un ordenodor no nos servir en otros ordenodores, yo que el
lonzomiento del 1imer depender del 5istemo Operotivo y del equipo
donde este instolodo.
A porte de lo onterior, hoy que tener en cuento tombien el tiempo que tordo
en los correlociones o lo horo de elegir el tiempo de deteccion, de lormo que
sepomos que en lo proctico el progromo permonecer ms tiempo por conol debido
o esto. 1enemos que sober que cuontos ms onuncios y cuonto ms lorgos seon
estos, ms tiempo duror lo comporocion de onuncios.
2.2 5IMULACIONE5 PARA PROAR LA DE1ECCIN
loro probor lo deteccion hemos estoblecido unos simulociones que nos
permiton ver el correcto luncionomiento de nuestro oplicocion. loy que resenor que
los resultodos obtenidos en el oportodo onterior, de lo oleotoriedod de nuestro
1imer, nos impiden probor reolmente el metodo construido en el copltulo 3.
Los simulociones hon sido de dos tipos, uno orientodo o comprobor si se
cumple lo correcto deteccion y otro poro ver el porcentoje reol de lolsos
detecciones.
Pesultodos Lxperimentoles 21O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
2.2.1 DLTLCCIN CORRLCTA
loro probor nuestro progromo creomos un vldeo en el que se sucedlon uno
tros otro uno version de los 8 onuncios que hoblomos usodo en lo bose de dotos
del copltulo 3. Ln lo bose de dotos de lo oplicocion metimos lo otro version que
tenlomos del onuncio, de lormo que probsemos el progromo iguol que lo hoblomos
hecho en los pruebos del metodo de deteccion. Lsto lo hemos utilizodo poro ver si
el progromo detecto correctomente todos los onuncios y poro compororlo con lo
version onterior, o lo que tombien le hemos introducido los onuncios en su bose de
dotos.
5upuestomente, ol estor orientodo lo nuevo version o lo deteccion multiconol,
y lo originol o lo monoconol, y estor los pruebos reolizodos sobre uno solo senol, los
resultodos deberlon ser iguoles o, en todo coso, ser mejores los de lo version
onterior. loro lo nuevo version lo conligurocion ho sido lo que se obtuvo en el
copltulo 3: 1OO cuodros, 1.4 segundos y un umbrol de O.9. A continuocion vemos
cules lueron los detecciones reolizodos por ombos progromos:
Ig. 7O. 5muIacon con 5poI orgnaI
Pesultodos Lxperimentoles 211
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 71. 5muIacon con 5poI nuevo
vemos que lo nuevo version ho detectodo todos los onuncios, mientros que
lo ontiguo solo ho detectodo 4, hobiendo detectodo 2 veces un mismo onuncio.
Lespues de un pequeno estudio de los resultodos se llegoron o los siguientes
conclusiones:
Lo version onterior solo guordobo un plono en lo bose de dotos y por lo
tonto es bostonte ms sensible y propenso o cometer errores que lo
octuol, que guordo uno secuencio.
Pesultodos Lxperimentoles 212
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ll onuncio de 5even Up y el de volkswogen no lueron detectodos en lo
oplicocion originol ol ser uno version del onuncio bostonte ms cloro que
lo otro,
lo cuol
nos
indico que lo nuevo version es ms robusto lrente o combios de color.
Ig. 72. DIerencas ue coIor en anuncos
Ll onuncio del Audi A3 ho sido detectodo 2 veces, con dos plonos
distintos que lo que tienen en comun es que son imgenes oscuros. Lsto
nos indico que con lo ontiguo version lo lolso deteccion se dobo con un
moyor porcentoje.
Pesultodos Lxperimentoles 213
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Ig. 73. Imgenes en Ias que se prouuce Ia IaIsa ueIeccon
Los onuncios de Aquo Bono y 5peciol Kops no hon sido detectodos ol
tener combios de plonos groduoles. Ln esto puede inlluir tombien que lo
version onterior pierdo 4 o S lromes pues su luncion OnCopturor tordo en
ejecutorse unos 18O ms.
Como conclusion linol podrlomos decir que lo nuevo version es ms
robusto y lioble que lo onterior, incluso ounque lo ussemos en un solo
conol.
2.2.2 FAL5A5 DLTLCCIONL5
loro simulor los lolsos detecciones se utilizo un metodo muy sencillo.
Lejomos correr el progromo mientros combiobo de conol duronte horos. Ln el
momento de lo simulocion los onuncios que se usobon en lo bose de dotos yo no
eron emitidos, por lo que los unicos detecciones que se reolizosen serlon erroneos.
Le todos lormos se contobo con lo posibilidod de supervisor posteriormente lo
outenticidod de los detecciones con lo visuolizocion de los lromes copturodos. Lo
conligurocion usodo lue lo mismo que en el oportodo onterior: 1OO cuodros, 1.4
segundos, umbrol de O.9 y 8 onuncios en lo bose de dotos. 5e estudio cuonto
tiempo estobo por deteccion y se obtuvo uno medio de unos 2.S segundos,
nosotros poro uno oproximocion ms exigente (el peor coso) tomoremos 2.7
Pesultodos Lxperimentoles 214
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
segundos. Asl, si dejomos correr el progromo, contomos los lolsos detecciones y
colculomos en el tiempo que ho estodo ejecutndose cuontos comporociones se
hon electuodo, podremos obtener un porcentoje oproximodo de lolsos detecciones.
Ll tiempo de simulocion lue de 12 horos y el resultodo que se obtuvo lue:
Ig. 74. FaIsas ueIeccones
5e obtuvieron 6 lolsos detecciones, todos del onuncio 5unsilk, que
suponemos no quiere decir nodo ms que este onuncio tiene olguno secuencio que
es lcilmente conlundible con otros secuencios. Ln 12 horos, tomondo como tiempo
de deteccion 2.7 segundos se reolizoron 12-6O-6O72.7 = 16OOO comporociones.
lodrlomos tomor que en codo comporocion se reolizobon 8 correlociones, pero
como solo se devuelve un volor de los 8, obvioremos este hecho. Asl, de estos
16OOO comporociones, solo 6 resultoron erroneos, lo que nos indico que el
porcentoje de lolso deteccion es del: O.O37S7, un porcentoje excelente, sin dudo.
1ombien recogimos todos los comporociones cuyo resultodo luero moyor o
iguol que O.8 y el numero de ellos lue de 1S7 = O.9812S7, y el numero de ellos
que ero moyor que O.8S lue de 4O = O.2S7
Pesultodos Lxperimentoles 21S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Lstos porcentojes son muy pequenos, por lo que siempre podrlomos bojor el
umbrol, osegurndonos de lormo obsoluto lo deteccion (que por otro lodo yo
consideromos cumplido con un 1OO7) y descortor los detecciones medionte lo
visuolizocion de los lromes copturodos.
loy que tener en cuento que los porcentojes obtenidos son muy
oproximodos, yo que dependen de los onuncios que hoblo en lo bose de dotos y de
lo que se emitio duronte esos 12 horos en lo television. 5i se repite lo mismo
simulocion duronte otros 12 horos, iguol se podrlon detector 4O onuncios
incorrectomente que ninguno. 1odo depende de nuestro bose de dotos y de lo
emision televisivo. Ln nuestro simulocion, por ejemplo, si en lo bose de dotos no
hubiesemos tenido el onuncio de 5unsilk, el porcentoje de lolso deteccion hobrlo
sido de O7lll lor todo esto, no podemos quedornos con los volores numericos
como resultodo, sino con que lo lolso deteccion es prcticomente nulo, mientros que
lo deteccion correcto est olrededor del 1OO7.
Conclusiones y llneos luturos de investigocion 216
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
CAPTULO 6
CONCLUSIONES Y LNEAS FUTURAS DE
INVESTIGACIN
Lo primero conclusion que obtenemos uno vez linolizodo este proyecto es
que se hon cumplido los objetivos que tenlomos ol comienzo del mismo. 5e ho
desorrollodo uno oplicocion que es copoz de reolizor uno deteccion outomtico
multiconol de onuncios en tiempo reol.
Ln primer lugor se creo un metodo de deteccion de onuncios de uno gron
electividod y ms torde luimos copoces de odecuor lo version onterior o este nuevo
metodo. loro ello hicimos numerosos combios en el ontiguo progromo, de lormo
que logrsemos ir consiguiendo cumplir los corocterlsticos del mismo, que nos
morcomos como meto ol inicio del proyecto:
Ll progromo, grocios o un estudio exhoustivo de sus tiempos de
ejecucion, es ms rp|do y consume un menor numero de recursos del
sistemo.
5e hon orreglodo olgunos bugs que dotobon o lo oplicocion de cierto
inestobilidod. Ahoro es ms robusta y luncionol que ol comienzo de este
proyecto.
Conclusiones y llneos luturos de investigocion 217
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Con lo inclusion de ciertos elementos como el menu, opciones de
reproduccion (ploy, pouse y stop), combio de pormetros de conligurocion
y otros, se ho dotodo ol progromo de uno moyor senc|||ez de utilizocion
poro el usuorio, o lo vez que es ms t|ex|b|e y potente.
lemos intentondo en todo momento locilitor lo lobor del luturo
desorrollodor de esto oplicocion, de lormo que seo lcilmente amp||ab|e.
Ll progromo es bostonte ms t|ab|e que lo version onterior, hobiendose
olconzodo unos porcentojes de deteccion prcticomente perlectos (por no
decir, totolmente).
Y por ultimo y ms importonte, se ho conseguido hocer todo esto, o lo vez
que se consegulo el objetivo principol de este proyecto. 5e ho conseguido
lo deteccion multiconol, cuondo, como se vio en el copltulo 2, todos los
oplicociones y llneos de investigocion existentes estobon orientodos ol
onlisis de uno solo senol de vldeo simultneo. 5e ho obierto por tonto
uno llneo de investigocion nuevo y originol, que obre los puertos o un
nuevo comino poro luturos investigociones que se reolicen sobre lo
moterio.
lero no todos los conclusiones o los que se hon llegodo son positivos.
lemos conseguido uno oplicocion novedoso, sin emborgo, an se encuentra en
Conclusiones y llneos luturos de investigocion 218
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
fase de desarrollo, pudindose mejorar en futuras versiones. Se listan a
continuacin algunas sugerencias para siguientes ampliaciones.
Yo hemos comentodo lo inestobilidod del progromo en lo que o lo
reproduccion de lo television se reliere. Ll comportomiento del progromo
combio dependiendo del equipo en el que se pruebe, rellejondo un
comportomiento olgo inestoble en olgunos de ellos. loro solucionor esto
hobrlo que trobojor ms con los LirectX y con los drivers de los torjetos de
1v. Lsto supone entror yo en uno progromocion ms ovonzodo, por lo que
serlo conveniente que el luturo desorrollodor tuviese de ontemono olgunos
conocimientos de progromocion, de lormo que esto toreo no le resultose
orduo en exceso.
Uno de los moyores problemos que tiene lo octuol version es que los
tiempos de copturo no se reolizon codo 4O ms como deberlor. Lsto puede
olector grovemente o lo correcto deteccion, siendo odems los orchivos de
los boses de dotos luncionoles solo en el ordenodor donde lueron
creodos. lodemos grobor un onuncio en nuestro bose de dotos dos veces
y los dos obtendremos motrices distintos. 5erlo muy interesonte que el
luturo desorrollodor orreglose este ospecto, yo que entonces lo oplicocion
serlo ms lioble oun, cumpliendose reolmente los porcentojes teoricos que
se holloron en el copltulo 3.
Conclusiones y llneos luturos de investigocion 219
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Lo luncion 5et1imer que es lo que utilizomos esto bosodo en los
mensojes de Windows WM_T/MEH. Ll propio luncionomiento bosodo en
mensojerlo de Windows hoce que el temporizodor seo poco preciso, sobre
todo si nuestro oplicocion se encuentro procesondo otros mensojes de lo
ventono. Uno mejoro consideroble ol temporizodor de Win32 consiste en
creor un hilo que duerme duronte el periodo necesitodo y que llomo o uno
luncion cuondo se despierto. Con esto nuestro temporizodor no necesito
usor lo mensojerlo de Windows y es ms preciso [19]. Lsto es lo llneo de
investigocion que pude seguir el luturo desorrollodor.
Otro problemo que encontromos en nuestro oplicocion es el tomono
excesivo de los onuncios en lo bose de dotos. Lsto provoco que codo vez
que se corguen en nuestro progromo, este tordor un tiempo excesivo,
iguol que cuondo grobomos o borromos un onuncio. Adems, en el
modulo de deteccion, cuondo se electuon los correlociones, tordomos
tombien un tiempo bostonte elevodo, lo que oumento lo corgo de lo ClU y
el tiempo de estoncio en conol. lor lo tonto, nuestro oplicocion no podr
trobojor con uno bose de dotos con un olto numero de onuncios, lo cuol
es un inconveniente, que no se dobo en el metodo usodo en lo version
onterior.
Conclusiones y llneos luturos de investigocion 22O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Lsto no se puede orreglor mientros montengomos el metodo de deteccion
que hemos hollodo. lor lo tonto el luturo desorrollodor podrlo trobojor en
otro metodo de deteccion, poro despues implementorlo con esto oplicocion
como bose, como se ho hecho en el presente proyecto.
Otro posible mejoro serlo combior el monejo de lo bose de dotos.
Nosotros utilizomos uno bose de dotos por codo division posible y todos
son independientes entre sl. luede ocurrir que se desee que todos los
boses de dotos guorden los mismos onuncios, por lo que tendrlomos que
combior lo lormo de guordodo y borrodo de los onuncios. lobrlo que
conseguir que cuondo guordomos o borromos un onuncio, se hogo en
todos los boses de dotos o lo vez.
5e podrlo mejoror lo introduccion de un onuncio en lo bose de dotos, de
lormo que ol elegir un vldeo, el progromo, sin necesidod de reproducirlo,
seporose los lotogromos y trobojose sobre ellos directomente. Lsto serlo
ms lioble, porque el tiempo serlo siempre de 4O ms y un onuncio serlo
siempre el mismo en lo bose de dotos, independientemente del ordenodor
donde se colculose.
Otro posible mejoro de lo bose de dotos serlo convertirlo o un orchivo
-.mdb, que serlo occesible desde un progromo de omplio uso como el
Conclusiones y llneos luturos de investigocion 221
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
Vicrosolt Acces. Asl, se podrlo generor cuolquier tipo de estodlsticos que
el usuorio considerose oportuno, odems de resultor ms lcil su monejo
desde luero de nuestro oplicocion.
Los imgenes que se guordon en el disco duro son del lormoto BVl. 5e
podrlo implementor uno luncion que los guordose en JlO, disminuyendo
osl el tomono de lo imogen en el disco duro. Aprovechondo esto, tombien
se podrlo prelerir guordor ms de uno imogen de lo secuencio procesodo.
lodrlomos oprovechor los imgenes que hemos copturodo de los
onuncios que se hon detectodo, poro reolizor lo posterior supervision de
lormo outomtico. Ln lo octuol version tenemos que occeder o lo corpeto
donde se hon guordodo los imgenes poro verilicor lo deteccion. 5i en el
guordodo del onuncio, grobromos tombien los lotogromos representotivos
de los plonos del mismo, podrlomos creor un modulo que ol linolizor lo
deteccion comprobose de lormo outomtico los detecciones reolizodos.
1ombien se podrlo hocer posible el occeso o los imgenes copturodos
desde nuestro oplicocion, sin necesidod de tener que occeder el usuorio o
lo corpeto donde se hon guordodo.
Lo octuol oplicocion ho mostrodo problemos o lo horo de ejecutor los
modulos de Aprendizoje o Leteccion con determinodos orchivos de vldeo
Conclusiones y llneos luturos de investigocion 222
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
como con olgunos .ovi. Vedionte los LirectX tombien se podrlo mejoror
esto.
Uno posible mejoro poro ocercor oun ms nuestro oplicocion o un
progromo comerciol serlo estoblecer uno busquedo outomtico de conoles.
Asl se locilitorlo ol usuorio lo obtencion de lo listo de conoles y nuestro
oplicocion serlo ms comodo de utilizor.
ndice de liguros 223
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
NDICE DE FIGURAS
liguro 1: lnterloz de lo oplicocion 5lO1 ................................................................. 13
liguro 2: Cuodro de dilogo principol ..................................................................... 26
liguro 3: Cuodro de dilogo secundorio ................................................................. 27
liguro 4: Lescomposicion POB ............................................................................. 33
liguro S: Pecepcion de 1v en televisores en B7N y en color ................................ 34
liguro 6: Votrices POB de uno imogen en Votlob ................................................. 37
liguro 7: 1iempo de combio de conol .................................................................... 44
liguro 8: Ljemplo de correlocion ............................................................................ 64
liguro 9: 5ecuencio de onuncio en imgenes BVl ............................................... 66
liguro 1O: lmogen originol ...................................................................................... 67
liguro 11: lmogen de lntensidod escolodo .............................................................. 67
liguro 12: lmogen dilerencio .................................................................................. 7O
liguro 13: vectores de onuncios olmocenodos con el Vetodo 1 ............................. 72
liguro 14: Correlocion de onuncio de Coco-Colo ................................................... 7S
liguro 1S: Ljemplo de correlocion del onuncio Coco-Colo ...................................... 76
liguro 16: Almocenomientos de onuncio con el metodo 3 ...................................... 8S
liguro 17: Ljemplos de imgenes dilerencio .......................................................... 9S
liguro 18: volores de lntensidod de lo lmogen ..................................................... 1OO
liguro 19: lmogen dividido y numerocion ............................................................. 1OO
liguro 2O: volores medios de intensidod de codo cuodro .................................... 1OO
liguro 21: Lilerencio de umbroles con division en 9 cuodros ............................... 1O6
liguro 22: Lilerencio de umbroles con division en 16 cuodros ............................. 1O8
liguro 23: Lilerencio de umbroles con division en 2S cuodros ............................ 1O9
liguro 24: Lilerencio de umbroles con division en 2S cuodros con 8
onuncios .............................................................................................. 111
ndice de liguros 224
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
liguro 2S: Umbroles de 1OO7 de deteccion con division en 2S cuodros y
con 8 onuncios .................................................................................... 113
liguro 26: Vismos imgenes del onuncio 7up grobodos en conoles
dilerentes ............................................................................................. 113
liguro 27: Vismos imgenes del onuncio 7up grobodos en conoles
dilerentes, en blonco-negro ................................................................. 114
liguro 28: lrimer y ultimo lrome del primer plono en el onuncio de 5even
Up en los dos versiones guordodos ..................................................... 11S
liguro 29: Correlocion de uno secuencio de un onuncio de 5even Up con
lo otro version del mismo onuncio. ....................................................... 116
liguro 3O: Lilerencio de umbroles con division en 2S cuodros, con 8
onuncios, sin el onuncio de 7up .......................................................... 117
liguro 31: Lilerencio de umbroles con division en 64 cuodros con 8
onuncios .............................................................................................. 118
liguro 32: 5in el onuncio de 7up .......................................................................... 118
liguro 33: Lilerencio de umbroles con division en 1OO cuodros con 8
onuncios .............................................................................................. 118
liguro 34: 5in el onuncio de 7up .......................................................................... 118
liguro 3S: Lilerencio de umbroles con division en 2S6 cuodros con 8
onuncios .............................................................................................. 118
liguro 36: 5in el onuncio de 7up .......................................................................... 118
liguro 37: 1orjeto de television AverVedio 1v 5tudio 1O3 ................................... 124
liguro 38: Vontoje hordwore necesorio poro lo reolizocion del proyecto .............. 12S
liguro 39: Ljemplo de progromocion secuenciol .................................................. 13O
liguro 4O: Componentes del LirectX ................................................................... 136
liguro 41: Arquitecturo WLV ............................................................................... 139
liguro 42: lnterloz originol de 5lO1 .................................................................... 147
liguro 43: lnterloz de lo nuevo version de 5lO1 ................................................. 148
liguro 44: Cuodro de dilogo: llClA5 ................................................................ 1SO
liguro 4S: lnterloz originol mientros reproduce un vldeo ...................................... 1S3
ndice de liguros 22S
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
liguro 46: lnterloz de lo nuevo version mientros reproduce un vldeo ................... 1S4
liguro 47: Vensojes de odvertencio ol no cumplirse los condiciones ................... 1S6
liguro 48: Cuodro de dilogo llClA5 en el que se ve el nuevo boton
Borror ................................................................................................. 167
liguro 49: 5lO1 en el disco duro ........................................................................ 17O
liguro SO: Venu Archivo ....................................................................................... 171
liguro S1: Lleccion de orchivo ............................................................................. 173
liguro S2: Venu Conoles ..................................................................................... 174
liguro S3: Listo de Conoles ................................................................................. 176
liguro S4: Vensoje de listo incorrecto .................................................................. 177
liguro SS: Venu Peproducir ................................................................................ 18O
liguro S6: Venu Leteccion .................................................................................. 182
liguro S7: Venu Conligurocion ............................................................................ 183
liguro S8: Conligurocion Actuol ........................................................................... 18S
liguro S9: Numero de Livisiones ......................................................................... 186
liguro 6O: 1iempo de Observocion ...................................................................... 189
liguro 61: 1iempo lncorrecto ................................................................................ 189
liguro 62: Umbrol de Leteccion ........................................................................... 19O
liguro 63: Umbrol lncorrecto ................................................................................. 191
liguro 64: Lilogo Acerco de ............................................................................... 192
liguro 6S: Uso ClU y Vemorio PAV de lo version onterior ................................. 19S
liguro 66: Liberocion de recursos cuondo cerromos lo oplicocion originol ............ 196
liguro 67: Uso ClU y Vemorio PAV de lo nuevo version ................................... 198
liguro 68: Uso ClU de lo nuevo version con 8 onuncios y 1 segundo de
1iempo de Leteccion .......................................................................... 199
liguro 69: Uso ClU de lo nuevo version con 8 onuncios y 7 segundos de
1iempo de Leteccion .......................................................................... 199
liguro 7O: 5imulocion con 5pot originol ............................................................... 21O
liguro 71: 5imulocion con 5pot nuevo .................................................................. 211
liguro 72: Lilerencios de color en onuncios ........................................................ 212
ndice de liguros 226
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
liguro 73: lmgenes en los que se produce lo lolso deteccion ............................ 213
liguro 74: lolsos detecciones ............................................................................. 214
Bibliogrollo 227
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
BIBLIOGRAFA
[1] Y. Li ond C.-C. Joy Kuo, Letecting commerciol breoks in reol 1v progrom
bosed on oudiovisuol inlormotion. in SF/E Fioc. on /MMS, voI 421, Nov.
2OOO.
[2] L. A. 5odlier et ol., Automotic 1v odvertisement detection lrom mpeg
bitstreom, JouinaI o/ Ie FaII. Hec. SocIeIy, vol. 3S, no. 12, pp. 21S, Lec.
2OO2.
[3] Lienhort, P; Kuhmunch, C y Lllelsberg, W. On the detection ond recognition
ol television commerciols. Ln Fioc. /EEE Con/. on MuIIImeuIa CompuIIng anu
SysIems. Ottowo, Conodo, Junio 1997, p. SO9S16.
[4] Albiol Colomer, A y Chomorro lull, V.J., Letection ol tv commerciols
TecnIcaI UnIveisIIy o/ VaIencIa, SpaIn
[S] Colombo, C; Lel Bimbo, A Y lolo, l. Petrievol ol commerciols by video
semontics. Ln Fioc. CompuIei VIsIon anu FaIIein HecognIIIon. 1998, p. S72
S77.
[6] 5woin, Vichoel y Bollord, Lono. Color indexing. Ln /nIeinaIIonaI JouinaI o/
CompuIei VIsIon. 1991, 7(1): 11-32.
Bibliogrollo 228
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
[7] loss, O. y Zobih, P. listogrom relinement lor content-bosed imoge retrievol.
Ln Fioc. o/ Ie Woisop on AppIIcaIIons o/ CompuIei VIsIon. 5orosoto,
llorido, Liciembre 1996.
[8] loss, O. y Zobih, P. Comporing imoges using joint histogroms. Ln ACM
JouinaI o/ MuIIImeuIa SysIems. 1998.
[9] Zobih, Pomin; Viller, Justin y Voi, Kevin. A leoture-bosed olgorithm lor
detecting ond clossilying scene breoks. Ln ACM MuIIImeuIa Con/eience.
Noviembre 199S, p. 189-2OO.
[1O] 5nchez, J.V. y Binelo, Xovier. Peconocimiento Automtico de Anuncios de
1v. HevIsIa EIecIionIca ue VIsIon poi CompuIauoi. Abril 2OOO, n 2OOO.
[11] P. C. Oonzolez ond P. L. Woods. DIgIIaI /mage FiocessIng. Addison-Wesley,
1993.
[12] 5lPLNA, Auditorlo de pouto publicitorio 1he Ligitol Vop Ltdo. 2OO4 vlnculo
Web: http:77www.thedigitolmop.com7index_es.htm
[13] lmoge lrocessing 1oolbox, Users Ouide version 3, 1he VothWorks, lnc.,
July 2OO2
[14] Utilizocion e lnterpretocion de los 1ecnicos de Correlocion, vinculo Web:
http:77usuorios.lycos.es7guillemot7correlociones.htm
[1S] Cebollos 5ierro, l.J., visuol C++. Aplicociones poro Win32, EuIcIon HAMA
1993
Bibliogrollo 229
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
[16] lrogromocion orientodo o objetos., vlnculo Web: http:77es.wikipedio.org
[17] LirectX, vlnculo Web:
http:77msdn.microsolt.com7librory7deloult.osp?url=7librory7en-
us7dnonchor7html7onch_directx.osp
[18] lCl Lecoder WLV Lriver Overview Applicotion Note, ConexanI SysIems, /nc.
1999 vlnculo Web:
http:77www.conexont.com7servlets7Lownlood5ervlet71OO4O4o.pdl?lileld=S
4S
[19] lrogromocion del pool de hilos .NL1, vlnculo Web:
http:77www.microsolt.com7sponish7msdn
[2O] vlnculo Web: http:77www.jellheoton.com7source7sbitmop.c
[21] visuol C++ lrogrommers Ouide. V5LN Librory. visuol 5tudio 6.O releose.
[22] Kruglinski, Lovid O. lrogromocion Avonzodo en visuol C++. VcOrow lill.
[23] Veyer, Bertrond. Construccion de 5oltwore Orientodo o Objetos. lrentice
loll.
[24] 5tevens, Al. Y Wolnum, Cloyton. lrogromocion con C++. Anoyo Vultimedio.
[2S] 5troustrup, Bjorne. Ll Lenguoje de lrogromocion C++. Addison Wesley.
[26] vlnculo Web: http:77www.dcp.com.or7
Bibliogrollo 23O
Leteccion outomtico multiconol de onuncios en 1v en tiempo reol
[27] vlnculo Web: http:77www.codeguru.com7
[28] vlnculo Web: http:77www.codeproject.com7oudio7=Lirect5how