Hobbyproject: skipiste druktemeter

Hou je ook van indoor snowboarden en wil je weten of het druk is? Michael bouwde voor de lol een handige skipiste druktemeter. Check snel hoe druk het is!

Het idee: skipiste druktemeter

Sinds een aantal weken ben ik lekker aan het indoor snowboarden! Het probleem met indoor snowboarden is dat de pistes een beperkte lengte hebben en als het druk is, wacht je langer op de lift naar boven dan dat je van de piste gaat. Of je bent meer mensen aan het ontwijken, dan dat je aan het genieten bent. Hier heb ik iets voor ontwikkeld: de skipiste druktemeter. 

Ik weet uit ervaring dat je bij indoor skipistes in- en uitklokt met skipassen. Ook hebben ze meestal webcams gericht op de pistes. Hierdoor zou het technisch mogelijk moeten zijn om op de website te tonen hoeveel mensen er binnen zijn. Al weet je dan niet precies op welke piste de mensen zich bevinden, het geeft een goede indicatie van de algemene drukte en dat is al beter dan niets. Helaas: de meeste skipistes bieden dit zelf niet aan, maar….

…ik zou geen nerd zijn als ik hier geen oplossing voor zou vinden. Met de webcams tot onze beschikking hebben we namelijk een handig middel om drukte te bepalen! 

Live streams lezen met AForge

De drie livestreams richten zich ieder op een eigen piste. De streams bleken helaas niet zo stabiel te zijn als ik in eerste instantie hoopte, maar gelukkig bood de technische documentatie van de camera’s die ik op Google vond een uitkomst. Met wat experimenteren met het aantal frames per seconde, resolutie en encoding, was het relatief snel opgelost. Hiervoor heb ik een library gebruikt, genaamd AForge, welke wij ook hebben gebruikt voor de drone tijdens de Infinithon. Deze is in staat om streams uit te lezen en uit te splitsen in frames die daarna verwerkt kunnen worden.

Toen dit naar behoren werkte en ik keurig de frames binnen kreeg, kon ik aan de code beginnen om personen te herkennen. De beelden die binnen komen zijn vrij wazig en een spoor van vertekende pixels trekt constant door het beeld heen. Dit maakt het lastig om mensen aan hun vormen te herkennen. Wel is het mogelijk om met een techniek die Background Subtraction wordt genoemd, nauwkeurig de bewegingen in het beeld te volgen. Aangezien mensen met een aardige vaart van de piste sjezen, is dit voldoende voor dit project.

Nu kunnen we detecteren hoeveel mensen er naar beneden komen. Een persoon met een witte jas is iets minder goed zichtbaar, maar gelukkig zal er altijd een element zijn in de kleding dat niet wit is (minstens de ski’s of het snowboard). Dit is nauwkeurig genoeg voor mijn doel, dus kon ik verder.

Van database naar webpagina

Na wat verbeteringen aan de code, heb ik van de skpiste druktemeter een Windows-service gemaakt. Deze draait continue op de server, ontvangt de streams, analyseert de beelden en schrijft de statistieken weg naar de database. Dit is redelijk simpel. Naast een identifier waarmee we de piste (of eigenlijk stream) identificeren, sla ik ook een datum, tijd, gemiddeld, en maximaal aantal gedetecteerde personen op over een duur van 5 minuten. Op basis van deze gegevens hebben we input om de statistieken verder op te bouwen.

Nu dit allemaal werkte wilde ik natuurlijk niet steeds in de database te hoeven graven om bepaalde gegevens in te kunnen zien. Om het gemakkelijk te maken heb ik er een webpagina aan gekoppeld met een simpel grafiekje. Maar, eigenlijk bouwde ik deze tool om simpel te kunnen zien wanneer ik het beste de skipiste kan bezoeken als ik de drukte wil vermijden. Om dit mogelijk te maken, heb ik nog enkele statistieken toegevoegd, namelijk: ‘Rustigste ochtend’, ‘Rustigste middag’ en ‘Rustigste avond’. Omdat het oog ook iets wil, heb ik een heel klein beetje tijd aan de opmaak besteed. Zie hier het eindresultaat:

Genieten van rustige pistes

Nu is het wachten tot er enkele weken aan gegevens beschikbaar zijn. Zodra dit het geval is, zijn de statistieken die bovenin getoond worden een stuk nauwkeuriger en kan ik los gaan op het voorspellen van aankomende dagen.

Voor nu laat ik het even rustig draaien, het was in ieder geval een geslaagd weekendprojectje waarmee ik mij dan ook goed vermaakt heb. Na relatief weinig werk kan ik voortaan genieten van de rustige momenten op de pistes van een indoor skipiste!

Mocht je nieuwsgierig zijn geworden: het resultaat is helaas niet publiekelijk beschikbaar, voor nu houd ik het even voor mijzelf! 

[Michael is ontwikkelaar bij Infi en bouwde dit project in zijn eigen vrije tijd]

Gezocht: ondernemende nerds!

› Wil jij je hersens bij ons laten kraken?

Wil je iets waarmaken met Infi?

Wil jij een eigen webapplicatie of mobiele app waarmee jij het bij anderen maakt?

Waargemaakt door de nerds van Infi.
Nerds met liefde voor softwareontwikkeling en die kunnen communiceren. En heel belangrijk: wat we doen, doen we met veel lol!

Wij willen het fixen. Laat jij van je horen?

Voor wie heb je een vraag?