Hackday i adventstid

I oktober 2013 så samlades app-, webb- och plattformsteamen på konferensanläggningen Sånga Säby för en hackday vilket resulterade i 11 intressanta hack. Sedan dess har vi haft några försök att arrangera mer spontana hackdays men de har saknat lite uppstyrning för att bli riktigt bra.

I december 2014 var det dags igen för en ordentlig hackday. Denna gång kallad Hackday Alfa eftersom vi ville prova en del saker i kringarrangemang inför kommande hackdays som involverar andra avdelningar på TV4.

Hackdagen hölls en fredag med efterföljande presentation på måndagen. Under fredagen bjöds på fika, pizzalunch, Nespresso-kaffe och godis och det hela avslutades med en after work.

När teamen från Teknikutvecklingsavdelningens hackday presenterade sina bidrag på måndagsförmiddagen bjöds det på automatöversatta TV-program, rumssökar-robot och en aldrig sinande ström av julklipp.

Peter Marklund och David Hall inledde med att presentera hur de tagit segmenttestet som finns i Excel-form på intranätet och gjort en webbapplikation av det. På så sätt slipper man öppna Excel för att få reda på vilken av de fem olika typerna man tillhör. Arbetet innefattade att förstå sig på hur uträkningen i Excel-dokumentet gjordes och hjälp gavs av Magnus Hessbo och Morgan Sandström på TNS Sifo. Ni kan alltså ta testet själva genom att följa denna länk.

Under ledordet ”Som SVT Flow fast begripligt” gav teamet ”Julmys med TV4” en kanal med julklipp i en vacker förpackning och ändlös julkänsla. I sitt grundläge får man en jultemad videospelare som visar klipp med jultema i en lång rad. När ett klipp är slut spelas nästa (med en rubrikskylt som visas emellan). Klippen är dessutom taggade så att man kan välja om man vill se mer bakning och mindre ångest. Teamet bakom bestod av de personer som dagligen jobbar med utveckling av TV4 Play så kanske kommer den att finnas ute på webben i någon tappning (inte nödvändigtvis med jultema) snart.

Marika Gartelius, Conny Gustafsson och Ingemar Lundberg (lag Testarna) berättade om hur de utifrån sitt behov av att effektivisera arbetet efter release av nya versioner av Louise arbetat fram en testprocess. I en avvägning mellan bra testtäckning och snabb testning behövs det bl.a. en feedback-loop för att se till att man täcker in tillräckligt mycket så att man fortfarande har ett fungerande system utan att alltför mycket tid går åt att testa saker där sannolikheten för att något ändrats är minimal.

Team l33t (Marcus Norling, Sebastian Holmqvist, Johan Mattsson, Magnus Olsson) utarbetade en lösning för automatöversatta textremsor i program. Undertexterna skickas in i ett publikt API som erbjuder översättning mellan en stor mängd språk. I det demonstrerade exemplet fick 112 poliser på liv och död nytt liv genom att översättas från undertextens svenska till t.ex. ryska.

Peter Hellberg och Sebastian Berggren som utgjorde Lag Silver hade utarbetat en lösning för det ständiga gisslet i huset på Tegeluddsvägen: att hitta till konferensrum. Genom att skicka ett enkelt kommando (/room skåne) i kommunikationsverktyget Slack får man omedelbart svar på var ett visst konferensrum ligger och dessutom med läget utritat på en karta. Det mesta arbetet gick ut på att markera positionerna för var och ett av konferensrummen på planskisserna. De hade också velat ha med de gamla namnen på konferensrummen men hittade inget material att utgå ifrån.

Purre Persson och Carl Pehrson presenterade sitt projekt OnAir som de och Erik Fehrm jobbat på. De använder sig av de meddelanden som automationen på Ericsson skickar ut alldeles omedelbart efter att en händelse inträffar i någon av våra kanaler (t.ex. att ett program börjar eller en viss reklamfilm visas). Dessa meddelanden har funnits ett tag men det har inte kommit till praktisk användning. I projektet som visades tog de hand om information och skickade vidare till en enkel webbapp som visade kanallogga och meddelandets innehåll. Ett tänkt användningsområde för dessa meddelanden är att meddela operatörer som Telia när ett program verkligen börjat så att deras inspelningar och restartfunktioner börjar när programmet börjar på riktigt.

De flesta av deltagarna i denna första av stora hackdays gav gott betyg även om de tyckte att de blivit störda lite för mycket av andra arbetsuppgifter under fredagen och önskat att de istället suttit någon annanstans där de lättare kunnat koncentrera sig och sitta ostört.

Nästa hackday är planerad till början av februari och då kommer den även innefatta säljare och reklamplanerare.

Under construction: Visex

9.58: Jag (David) har kopplat in datorn, tagit en kopp te och ska sätta igång med mitt projekt. Jag har sedan tidigare laddat ner en drös videoklipp (en från varje dag under 2013 hittills) och sparat cirka 30 sekunder av dem. Jag har installerat bildanalysbiblioteket OpenCV och har provkört lite att identifiera ansikten i stillbilder.

Det går att koppla OpenCV till mitt standardspråk Ruby med hjälp av FFI och lite C-programmering men det blir nog enklare att utnyttja Python-API:t.

10.23: Att visa innehållet från webbkameran i ett fönster är lite av ett stickspår men det fungerar i alla fall. Nästa steg blir att lägga in ansiktsigenkänningen som jag redan utnyttjat på stillbilder och sedan byta ut indatat från webbkameran till att läsa från fil.

11.02: Fortsätter med klipp-och-klistrandet med kod, nu för att markera ansikten med blå rektanglar.

11.24: För att få lite bättre ordning på filerna skapade jag ett nytt repository i git med tillhörande repository på Github. Just nu: 1 Python-fil, 2 Ruby-filer och 1 XML-fil.

13.41: Lunchen är avklarad och jag har dessutom laddat upp en snutt med någon sekunds videomaterial för varje dag sedan årsskiftet.


Urvalet har varit Nyheterna, Nyhetsmorgon och Jenny Strömstedt. Mycket Mitt kök blir det. En del (tragi-)komiska effekter blir det när personer fyller i varandras meningar.

“Hallongrädde emellan och stora kräftor”

Nu ska jag fortsätta med att märka ut ansikten i videomaterialet.

14.31: Nu läser koden in en videofil och markerar ansiktena (plus annat som den tror är ansikten) samt skriver ut till fil. Det går dock långsammare än realtid men det borde gå att snabba upp genom att inte processa varenda frame.

16.54: Efter ett avbrott för tårta så fortsatte jag med skapandet av bilder med ansikten.

2013-10-16 16.23.28

Skriptet klipper ut varje ansikte i varje frame till en ny bild. I klippet på 60 sekunder (1500 frames) fick jag ut 1580 ansiktsbilder. Som man kan se i exemplet nedan så är inte alla ansikten, någon tallrik eller hylla blev misstagen för ett ansikte ibland.

Nästa steg blir att minimera dessa nästan 1600 bilder till ett fåtal så att man inte får så många liknande bilder.

17.28: Kommer fram till att det enklaste sättet att minska antalet ansiktskandidater urklippta är att kasta bort de som är alldeles för små. Kollar jag att en utskuren kandidat är minst 96 pixlar så minskar antalet bilder från 1580 till 435 varav 5 ser ut att vara delbilder som inte är ansikten.

(Uppdateras under dagen)

Teckentolkad TV

Ibland sker utveckling som inte når de stora massorna, men uppskattas desto mer av de som faktiskt har en användning av det. I måndags kom en förfrågan om vi kunde få till en teckentolkad version av TV4. (För er som inte vet vad teckentolkad går ut på, så betyder det att allt tal och ljud översätts till teckenspråk).

Det här är ju en spännande teknisk utmaning- och man kan tänka sig hur många lösningar som helst: Kanske en virtuell 3D modell som läser de subtitles (undertexter) som finns till de flesta program, kanske ytterligare avancerat genom att analysera ljudet och rendera modellen från det.

I detta fall var fokus: få ut något snabbt och enkelt.

Lösningen blev följande: Ett företag specialiserat på just teckentolkning har satt upp en TV mottagare hos sig. Denna mottagares utgång skickas till en dator som kör Vidblaster PRO. Till samma dator finns en kamera kopplad framför vilken en teckentolk direktöversätter ljudet till teckenspråk. Mjukvaran “keyar” (av chroma key) in teckentolken framför bilden från TV4.

Slutresultatet blir en bild med TV4 i bakgrunden och teckentolken i förgrunden:


Tjänsten finns på http://tv4.se/tv4tolken, första livesändning 16/12-2011 klockan 20:00. Just nu kan man se Bonde söker fru, teckentolkad på samma plats.

Mer programinformation och diskussioner på:

http://www.facebook.com/pages/TV4-tolken/233614976711875

Viralt så in i helvete

Vadihelveteskajaglagatillmiddag.nu kom till på en kombinerad konferens/hackday vi körde på Värmdö i höstas. Chrille stod för idén (att göra en svensk version efter en amerikansk förlaga och koppla den mot recept.nu) samt formuleringar och Brian stod för implementationen. Det här är ju förstås inte en riktig tv4-sajt, men det är kul att låta den rulla som ett litet experiment för att se hur viral spridning fungerar.

Nästan all trafik har kommit från Facebook. I början kunde vi så fort någon av oss lade ut länken på facebook följa hur den snabbt spred sig till en sisådär 500-1000 besökare/dag för att sedan sjunka igen trafikmässigt till normalnivån ett par dagar senare. Igår exploderade dock trafiken med 21.218 unika besökare. Den inledande boosten kom av en länk på existenz.se, och sen tog facebook över som trafikdrivare. Facebooktrafiken brukar öka fort för att sedan avta betydligt långsammare, så gissningen är väl den får några tusen besökare om dagen närmsta veckan för att sedan återgå till de vanliga mer blygsamma nivåerna.

Nu får vi väl lägga in en “dela på facebook”-knapp på sidan också, så återkommer vi när den går över 50.000!

Småtopparna ligger på 1500-2000 besökare, den stora peaken är på drygt 21.000, lägstavärdena ligger på 70.

Found in translation

The amount of meta data available for the video clips used on our sites, such as TV4Play, is often very limited. Often the video clip have just a title and belong to a category. It has no description and no keyword. When the amount of videos is large it isn’t feasible to manually annotate all of them with more meta data despite it being critical if you want to find a certain video or videos on a certain topic.

When it comes to text there are a large number of maturing techniques for extracting useful information. Latent semantic indexing (PDF) and inverse document frequency (PDF) has become standard tools in systems that operate on text. To extract information from image and video data is however a more complicated feat. The research on image analysis and face recognition has led to software and services offering some basic support for browsing and cataloging objects and people in media but we are still far from functions that are reliable enough not to confuse unprepared users.

For some of our programs we actually have meta data that aren’t used in our search system so far. We have every word spoken recorded, not from using speech recognition but typed in by humans. Yes, it is the captioning/subtitling that we have for some of our programs, e.g. our home improvement show Äntligen hemma, the comedy panel game show Parlamentet, and Emmerdale (Sw. Hem till gården). By adding the texts from the shows to our Solr index it would be possible to find episodes on building your own sauna, that discusses the mishaps of the Swedish king or the episode where one of the characters is drunk.

Another use for this data is to visualize i. Word clouds for some of our shows looks like this when entered into Wordle (and being careful not getting too horrendous font choices):

Bonde söker fru
The rural dating reality show “Bonde söker fru” contains names such as “Ann-Katrin” and “Tomas”, words such as “farm”, “children” and “feel”.

Robinson
Robinson (Survivor)  contains names such as “Daniel”, “Jukka”, “Elin”, the team names “Buwanga” and “Kalis” and words such as “feels”, “win”, “the competition”.
Parlamentet
Prominently on the word cloud for the comedy panel game show Parlamentet we see the names of the participants “Annika”, “David”, and “Marika” (but “Josephine” in smaller size). We also see current topics such as “the king” and “Facebook”.
Hem till gården
From the words in the cloud for Emmerdale (sw. Hem till gården) we can guess that it is a drama series. “police”, “repulsive”, “crisis”, “family”, “Hello”, “careful”.
Äntligen hemma
No doubt this is the home improvement show Äntligen hemma with words such as “paint”, “wall”, “kitchen”, “material”, “wallpaper”, “color”.