22 mei 2018 • mei 22, 2018 at 8:19 pm Qdraw

Koninklijke Serres van Laken (2018)

Het Belgische koninklijkhuis heeft in Brussel een enorm kassencomplex. Deze serres zijn jaarlijks in het voorjaar geopend. Elke lente gaan de Koninklijke serres van Laken voor 3 weken open voor het grote publiek. Dit is een mooi moment om de kassen te komen bewonderen. De serres zijn opgebouwd met klassieke ijzer en glasconstructies die door galerijen aan elkaar zijn verbonden. Het complex is gebouwd vlak voor 1900 voor de toenmalige Belgische koning Leopold II. We zijn hier op Hemelvaart geweest en ondanks de drukte hebben we genoten van de prachtige bomen en planten.



Koninklijke Serres van Laken (2018) Koninklijk Paleis Brussel; gebouw, brussel, paleis, koninklijk, monargie



Koninklijke Serres van Laken (2018) Koninklijk Paleis Brussel; Serres, Laken, kassen, bloem, rood



Koninklijke Serres van Laken (2018) Seres van Laken; Serres, Laken, kassen



Koninklijke Serres van Laken (2018) Seres van Laken; Serres, Laken, kassen



Koninklijke Serres van Laken (2018) Seres van Laken; gebouw, brussel, paleis, koninklijk, monargie, politie



Koninklijke Serres van Laken (2018) Seres van Laken; gebouw, brussel, paleis, koninklijk, monargie



Koninklijke Serres van Laken (2018) Seres van Laken; boom, laken



Koninklijke Serres van Laken (2018) Seres van Laken; persoon, Serres, Laken, kassen



Koninklijke Serres van Laken (2018) Op wacht; boom, wit, water



Koninklijke Serres van Laken (2018) Op wacht; Serres, Laken, kassen, bloem, rood, roze



Koninklijke Serres van Laken (2018) Achter gesloten deuren; bloem, rood, bloem paars



Koninklijke Serres van Laken (2018) Achter gesloten deuren; Serres, Laken, kassen



Koninklijke Serres van Laken (2018) ; handvat, deur, Achter gesloten deuren



Koninklijke Serres van Laken (2018) ; Serres, Laken, kassen

Dit bericht is geschreven door: Dion

Tags: , , ,

Gecategoriseerd in:

27 april 2018 • mei 15, 2018 at 9:31 am Qdraw

Natuurdag Roofvogels en Slangen Wilp (2018)

Zaterdag was er een natuurdag over vleermuizen, biotopen beheer en er waren demonstraties van roofvogels en slangen. In het eerste gedeelte was er een lezing over biotopenbeheer.

Een biotoop is een mooi woord voor een stukje divers natuurgebied. Dat kan heel klein zijn van een poel in de buurt tot en groot stuk bos, maar dit zijn allemaal biotopen. Wim Knol van de Jagersvereniging vertelde over biotoopprojecten.nl en de rol van de Jagersvereniging hierin. Bij de Jagersvereniging gaat het namelijk niet alleen maar om de jacht maar om de natuur in evenwicht te houden.

Wist je dat er 10 soorten vleermuizen regelmatig voorkomen in Nederland en dat deze alleen maar jagen op insecten. De tweede lezing ging over het de Vleermuis, het dier dat je misschien ’s avonds weleens ziet vliegen en jaagt op kleine insecten zoals een mug. Herman Heskamp van de Vleermuiswerkgroep Gelderland hield een betoog waarom vleermuizen nu zo bijzonder zijn.

Roofvogels waren ook van de partij. Michael demonstreerde met zijn valk hoe hij zijn vogel een loer draait. Op deze manier zie je hoe snel deze kruising tussen gier en slechtval kan jagen op zijn prooi. De gele slang op de foto is een slang van 3 meter. Deze slang is niet giftig en eet per maand een konijn. De Amerikaanse Woestijnbuizerd vloog ook, al heb ik hieronder een foto van deze buizerd op een paal.

De natuurdag had drie verschillende lezingen over biotoop beheer, de vleermuis en een demonstratie van roofvogels en slangen. Dit zorgde samen voor een afwisselend geheel.



Natuurdag Roofvogels en Slangen Wilp (2018) Loer draaien met een Valk; Loer draaien, Roofvogel, vliegen, valkenier, valk, michael de graaf, kruising, gier, slechtvalk



Natuurdag Roofvogels en Slangen Wilp (2018) Loer draaien met een Valk; Roofvogel, vliegen, valkenier, valk, Loer draaien, michael de graaf, kruising, gier, slechtvalk



Natuurdag Roofvogels en Slangen Wilp (2018) Loer draaien met een Valk; Roofvogel, vliegen, valkenier, valk, kruising, gier, slechtvalk



Natuurdag Roofvogels en Slangen Wilp (2018) Loer draaien met een Valk; Slang, python, gele slang, tijgerpython



Natuurdag Roofvogels en Slangen Wilp (2018) Overvlucht valk; Roofvogel, vliegen, valkenier, Woestijnbuizerd, Harris buizerd, amerikaanse woestijnbuizerd



Natuurdag Roofvogels en Slangen Wilp (2018) Overvlucht valk; wilp, Dion van Velde, Valk, amerikaanse woestijnbuizerd

Dit bericht is geschreven door: Dion

Tags: , ,

Gecategoriseerd in:

23 april 2018 • april 23, 2018 at 4:57 pm Qdraw

Abdij Sion Diepenveen (2018)

Afgelopen zondag was het voormalige klooster Abdij Sion geopend voor publiek. Dit monumentale pand uit het einde van de negentiende eeuw hebben we bezocht. Tot 2015 was dit een zelfvoorzienend trappistenklooster. Inmiddels zijn de monniken verhuisd naar Schiermonnikoog. Het gebouwencomplex is gebouwd voor een 60 monniken, maar in de loop der jaren zijn er 8 monniken overgebleven. Deze groep Trappisten leefde in afzondering van de buitenwereld. Ze kwamen dus niet in het, in de buurt gelegen, Diepenveen of Deventer. Nadat de monniken vertrokken waren is er gezocht naar een nieuwe bestemming. De landerijen die bij Sion hoorde zijn verkocht aan de omliggende boeren en Stichting Nieuw Sion, is heeft als doel om een spiritueel centrum te openen.



Abdij Sion Diepenveen (2018) Haag; sion, abdij sion, klooster



Abdij Sion Diepenveen (2018) Gangen; sion, gangen, klooster, abdij sion



Abdij Sion Diepenveen (2018) Gangen; sion, glas-in-lood, ramen, abdij sion



Abdij Sion Diepenveen (2018) Glas in lood; sion, eetzaal, klooster, abdij sion



Abdij Sion Diepenveen (2018) Glas in lood; sion, haag, gras, abdij sion



Abdij Sion Diepenveen (2018) Eetzaal Sion; sion, bomen, binnentuin, bloesem, abdij sion



Abdij Sion Diepenveen (2018) Eetzaal Sion; sion, kapel, kerk, abdij sion

Dit bericht is geschreven door: Dion

Tags: , ,

Gecategoriseerd in:

9 april 2018 • mei 22, 2018 at 6:45 pm Qdraw

Kom in de kas (2018)

Kom in de kas was afgelopen weekend in de regio Arnhem-Nijmegen. Wij zijn bij een paar bedrijven geweest in Gendt en Bemmel. Kom in de Kas is het publieksevenement van de Nederlandse Glastuinbouw. Honderden gastvrije groente-, bloemen- en plantenkwekers openden dit weekend hun deuren van de kas voor het publiek.



Kom in de Kas (2018) Anturium; Anturium, bloem, kas



Kom in de Kas (2018) Anturium; Anturium, bloem, kas



Kom in de Kas (2018) Anturium; geranium, bloem, kas



Kom in de Kas (2018) Anturium; geranium, bloem, kas



Kom in de Kas (2018) Geranium; geranium, bloem, kas



Kom in de Kas (2018) Geranium; Amaryllis, Amarylliskwekerij, bloem



Kom in de Kas (2018) Geranium; bloemen, roze, wit

Dit bericht is geschreven door: Dion

Tags: , , ,

Gecategoriseerd in:

3 april 2018 • april 3, 2018 at 8:27 pm Qdraw

Sail Kampen (2018)

Met 250.000 bezoekers is Sail Kampen het drukstbezochte evenement tijdens Pasen. Het evenement dat draait om oude zeilschepen. Deze zeilschepen komen vanuit binnen- en buitenland en zijn te bewonderen aan de kade. Tijdens Sail zijn er demonstraties, maar het is ook mogelijk om ook met schepen mee te varen. Zo wordt de Hanze geschiedenis tot leven gebracht en is er vermaak. Er zijn diverse optredens gepland van shantykoren, straatartiesten, dweilorkesten, komieken en levende standbeelden. Van dit evenement heb ik een aantal foto’s gemaakt.



Sail Kampen (2018) Schip Sail Kampen; sail, kampen, schip



Sail Kampen (2018) Schip Sail Kampen; sail, kampen, schip



Sail Kampen (2018) Kampen Kogge en Schip - Sail Kampen; sail, kampen, hut



Sail Kampen (2018) Kampen Kogge en Schip - Sail Kampen; sail, kampen, paard en wagen



Sail Kampen (2018) Hut; sail, kampen



Sail Kampen (2018) Hut; sail, kampen, VOC, vlag

Dit bericht is geschreven door: Dion

Tags: , , ,

Gecategoriseerd in:

20 februari 2018 • mei 16, 2018 at 3:42 pm Qdraw

Tensorflow objectherkenning en Microsoft .NET Core

Met Tensorflow en Artificial Intelligence het is mogelijk om afbeeldingen realtime te analyseren. In deze blogpost ga ik objecten detecteren in afbeeldingen met Tensorflow en C#. TensorFlow is een open source library voor wiskundige berekeningen. Door gebruik te maken van TensorFlow, het meest populaire deep learning framework, is het mogelijk om dit framework in te zetten voor verschillende doeleinden. In dit voorbeeld gebruik ik Tensorflow in combinatie met .NET Core 2



Hoe werkt Tensorflow samen met Microsoft Technologie Detecteer twee auto’s en een persoon; Detecteer twee auto’s en een persoon

Een Artificial Intelligence project

In Theiacore gebruik ik twee Visual Studio projecten in één solution. Theiacore wordt gebruikt voor het genereren van webpagina’s. Ik heb gebruik het MVC Framework voor het genereren van webpagina’s. ObjectDetect wordt gebruikt voor het Artificial Intelligence gedeelte. Voor Tensorflow zijn er bindings (een koppeling tussen twee frameworks) beschikbaar voor verschillende programmeertalen. Python is de meest populaire binding en hiervoor zijn de meeste online voorbeelden beschikbaar. Voor de programmeertaal C# is er TensorflowSharp, dit is een onofficiële binding die goed werkt voor object detection. In dit voorbeeld focus ik mij op het gebruiken van een Machine learning model voor object herkenning. Dit model is getraind op Microsoft COCO. Deze dataset wordt gebruikt voor het herkennen van objecten in 90 verschillende categorieën.

ObjectDetect-project

Ik gebruik het ObjectDetect-project om door middel van Artificial Intelligence data te verzamelen over de afbeeldingen. In de volgende code snippets zal ik toelichten hoe dit werkt.

Laten we beginnen met een blank canvas. In Tensorflow is dit een leeg TFGraph(). In een TFGraph() worden er twee dingen opgeslagen. Het eerste item is een structuur en het tweede is de graph zelf. Een graph zijn de learnings van het deeplearing framework. In Train een tensorflow gezicht object detectie model ligt ik toe hoe het beste zelf een model kunt trainen en deze kan opslaan als frozen-model. Dit model wordt geladen in de graph. De graph is het geheugen van je computer.

public static ImageHolder GetJsonFormat(string input) {

    var list = new List<string>();

Een Catalog is een geindexeerd bestand waarin de namen van de objecten staan uitgeschreven. Het bestand heet: mscoco_label_map.pbtxt

    _catalog = CatalogUtil.ReadCatalogItems(_catalogPath);
    string modelFile = _modelPath;

    using (var graph = new TFGraph()) {

Het frozen model wordt ingeladen in het geheugen. Ik gebruik TFGraph() om de data en de metadata van het model in het geheugen te laden.

        var model = File.ReadAllBytes(modelFile);
        graph.Import(new TFBuffer(model));

Start een nieuwe sessie om de wiskundige berekeningen uit te voeren. In deze sessie worden de objecten herkenend.

        using (var session = new TFSession(graph)) {

De variable input in een string met de locatie van de afbeelding
Deze wordt geïmporteerd als multidimensionale array, wat ook wel een Tensor wordt genoemd.

            var tensor = ImageUtil.CreateTensorFromImageFile(input, TFDataType.UInt8);

Met de runner wordt het mogelijk om het algoritme te tweaken. Zo is het mogelijk om de inputs, outputs en te configureren.

            var runner = session.GetRunner();
            runner
                .AddInput(graph["image_tensor"][0], tensor)
                .Fetch(
                    graph["detection_boxes"][0],
                    graph["detection_scores"][0],
                    graph["detection_classes"][0],
                    graph["num_detections"][0]);
            var output = runner.Run();

            var boxes = (float[,,])output[0].GetValue(jagged: false);
            var scores = (float[,])output[1].GetValue(jagged: false);
            var classes = (float[,])output[2].GetValue(jagged: false);
            var num = (float[])output[3].GetValue(jagged: false);

De boxes, scores and classes zijn arrays en ik gebruik GetBoxes om de waardes over de objecten uit deze arrays te krijgen.

            var getBoxes = GetBoxes(boxes, scores, classes, input, 0.5);
            return getBoxes;
        }
    }
}

 

Krijg de complete solution werkend.

De broncode van het complete project is publiek beschikbaar, zo kun je exact zien hoe ik het opgelost heb. De volgende stappen ben je nodig om dit project werkend te krijgen. De tekst gaat verder na de afbeelding

 

Whoop, whoop, dit is het resultaat

Installation steps

Tensorflow vereist dat je een x64 runtime gebruikt. De NET Core SDK is standaard x64. Wanneer je een x86 (32-bits) version gebruikt switch s.v.p. eerst naar een 64-bits versie. Als je van plan bent om Azure webapps te gebruiken, deze zijn bij default 32-bits.

 

1. Clone repository

De eerste stap om de repository te downloaden vanuit GitHub.

$ git clone "https://github.com/qdraw/theiacore"

 

2. Download de Pretrained Tensorflow Model en labels

De frozen-models zijn niet ingesloten in de Github repository. Download en plaats deze bestanden in de map: theiacore/ObjectDetect:

En kopieer deze bestanden naar de map: theiacore/ObjectDetect

 

3. Download Reference assemblies

De Libtensorflow is platform afhankelijk en voor het draaien op bijvoorbeeld een Azure is het nodig dat deze assemblies los worden toegevoegd in de map: theiacore/theiacore

Een overzicht van url’s:

 

Azure web apps

Als je van plan bent om dit project binnen een Azure webapp te gebruiken. Azure webapp draaien .Net Core standaard in x86 mode. In de repository is build-for-azure-x64.sh te vinden. Draai het buildscript en de truck is om de bestanden binnen /theiacore/theiacore/theiacore/bin/release/netcoreapp2.0/win-x64/publish te kopieren naar de wwwroot binnen de Azure webapp.

 

4. Start Theiacore

$ cd theiacore/theiacore
$ dotnet run
Now listening on: http://localhost:63884

Mocht de wereld van Computer Vision je interesse hebben gewekt, maar weet je nog niet hoe je dit kunt toepassen en heb je de nodige vragen? Stuur mij dan een mailtje dan kunnen we een kopje koffie drinken.

Dit bericht is geschreven door: Dion

Tags: , ,

Gecategoriseerd in:

5 februari 2018 • mei 16, 2018 at 3:46 pm Qdraw

Met Tabletop bijhouden of de tafelvoetbal vrij is

Realtime bijhouden of een ruimte bezet is, het kan allemaal met Internet of Things. Als side project heb ik een webapp gemaakt waarbij te zien of een ruimte vrij is of niet. Hier maakt ik gebruik van een Arduino met bewegingssensor die waardes doorstuurt naar een website.

Realtime zien of een kamer vrij is.

In één oogopslag is te zien of ruimte bezet is en in de webapp is er te zien wanneer er voor het laatste activiteit is geweest. In de grafiek onder de laatste activiteit is er een overzicht van alle recente bewegingen.



Met Tabletop bijhouden of de tafelvoetbaltafel vrij is Live – Table footbal webapp ; tabletop, mockup, webapp

Fun facts

De tabletop app draait nu vanaf 10 januari op het kantoor waar ik werk. Het gaat over een periode van 16 werkdagen. Dit zijn leuke weetjes: Er zijn drie pieken op een dag. De eerste piek is om 12:30. Je hebt dan 12% kans dat de tafel dan vrij is. Om 13:00 uur is het tot nu toe altijd piektijd en om half 4 is de kans 25%.



Met Tabletop bijhouden of de tafelvoetbaltafel vrij is Live – Table footbal webapp ; Tabletop, all time
Het aantal bewegingen in de Tabletop kamer. Deze zijn samengevoegd per 5 minuten in één staaf.

 

Hoe werkt Tabletop nu?

Een Arduino met een PIR-sensor houdt bij of er beweging wordt geconstateerd. Een Arduino is een microprocessor waarbij het mogelijk is om relatief eenvoudig zelf programma’s op te zetten. Een PIR-sensor wordt ook gebruikt in buitenlampen met een bewegingssensor. Deze stuurt via het internet berichten door naar een webserver. Deze server kan twee type acties uitvoeren. De eerste actie is het verzamelen van data en deze wegschrijven naar een database. De tweede actie is het tonen van data. Wanneer er een bezoeker op de webapp komt wordt een data visualisatie gemaakt van de meest recente bewegingen.

Voor deze setup heb ik gebruik gemaakt van de volgende technieken:

  • .NET Core 2
  • ASP.NET MVC
  • SignalR SSE/Websockets
  • Send events van een Arduino met een ethernet shield en een PIR-Sensor
  • D3.v4 Javascript Datavisualisation

 

Mocht je geïnteresseerd zijn in de werking dan is de code open source beschikbaar en op Github te downloaden. Heb je vragen stuur mij dan een mailtje dan kunnen we een kopje koffiedrinken.



Met Tabletop bijhouden of de tafelvoetbaltafel vrij is Het aantal bewegingen in de Tabletop kamer. Deze zijn samengevoegd per 5 minuten in één staaf. ; Visual Studio, C#, .Net Core 2, MVC

Gebruik SignalR om de UI realtime te updaten

Dit bericht is geschreven door: Dion

Tags: ,

Gecategoriseerd in: