Ik heb een redelijk grote collectie foto's en video's door jaren aan foto- en videografie. Ten tijden van schrijven is de hoeveelheid assets 52 607. Dit bewaar ik allemaal op mijn zelfgebouwde NAS en houdt ik bij met een FOSS (Free OpenSource Software) genaamd Immich, wat vergelijkbaar is met Google Photos. Immich kan ook gezichten herkennen en deze data kan je dan weer aan personen en namen koppelen. Naast dit kan het ook objecten en situaties in foto's herkennen door middel van machine learning, wat ik op een Nvidia GPU draai.
Omdat ik big data altijd wel interessant heb gevonden dacht ik, 'wat nou als ik iets probeer met mijn eigen data?' Daarom besloot ik in Python code te schrijven die dat doet.
Heel simpel gezegd kijkt het naar relaties tussen personen. Als een persoon met een andere persoon op de foto staat, wordt dit als een relatie gezien. Op deze manier zou je dus met de juiste data kunnen afleiden wie vrienden met elkaar zijn, vriendengroepen, klassen, et cetera.Â
Origineel gebruikte ik matplotlib om de data te visualiseren. Ik heb al redelijk wat ervaring ermee. Uiteindelijk ben ik toch naar andere packages gegaan, omdat ik niet tevreden was met hoe de grafiek eruit kwam te zien. Toen heb ik NetworkX uitgeprobeerd, wat stukken beter ging, maar nog niet perfect was. Uiteindelijk kwam ik neer op PyVis: deze kan de data uit NetworkX visualiseren en ook nog eens op een interactieve manier.
Omdat PyVis ervoor zorgde dat de data interactief werd, besloot ik de Python code om te toveren naar een webapplicatie met Flask, die in docker draait. Ik kon dan gewoon een statische HTML pagina hosten die met JavaScript API requests maakt naar mijn Flask applicatie.
Alle relaties die ik heb.
De relaties die ik van Rik Laenen heb.