Lees ons artikel over

class="img-responsive

.

Als Artefact vinden we het belangrijk om een positieve invloed uit te oefenen op mensen, het milieu en de gemeenschap. Daarom werken we graag samen met non-profitorganisaties die deze waarden tot de basis van hun visie maken.
Daarom hebben we samengewerkt met Smart Parks, een Nederlandse organisatie die geavanceerde sensoroplossingen biedt om bedreigde wilde dieren te beschermen en parkgebieden efficiënt te beheren door middel van geavanceerde technologie.

In deze serie berichten beschrijven we onze reis in het ontwerpen en bouwen van een ML-systeem om de media van de cameravallen van Smart Parks te gebruiken. Het doel van het project is om een ML-benadering te gebruiken om de data van de cameravallen op te nemen en vervolgens inzichten te verschaffen, zoals de aanwezigheid van mensen of specifieke diersoorten in de beelden of video's die door de camera's zijn vastgelegd. Deze informatie wordt vervolgens gebruikt door de parkwachters om de wilde dieren beter te beschermen en mogelijke gevaren zoals stropers sneller te detecteren.

Inleiding

Smart Parks had een monitoringsysteem voor wilde dieren nodig dat de volgende taken kon uitvoeren:

  • De media (afbeeldingen en/of video's) afkomstig van cameravallen op één plaats verzamelen
  • Detecteer automatisch de aanwezigheid van mensen en dieren in de media

  • Toegang tot de voorspellingen in Earth Rangers, een toepassing die wordt gebruikt om de parken en hun wilde dieren te beheren

  • Controleer de media die van de cameravallen komen

Ons uitgangspunt was snelheid. Dus toen we van start gingen, was onze enige prioriteit om zo snel mogelijk een kaal maar volledig functionerend end-to-end product te implementeren.

Dit zal het eerste artikel van vele zijn en het zal zich richten op de context van het project, de high-level view van het ontworpen systeem en de voordelen van onze cloud-gebaseerde oplossing. In de komende artikelen gaan we dieper in op hoe we cameravallen kunnen verbinden met het Google Cloud Platform en externe eindpunten met behulp van een tool genaamd Node-RED en hoe we een eenvoudige webapp kunnen ontwerpen met Streamlit om de cameravallen in de parken te beheren.

Laten we beginnen!

Camera-vallen

Laten we, voordat we van start gaan, even kort bespreken wat cameravallen zijn en hoe ze kunnen worden gebruikt om de bescherming en het behoud van dieren te ondersteunen.

Cameravallen zijn apparaten met ingebouwde sensoren zodat er onmiddellijk een foto of video wordt gemaakt wanneer er activiteit wordt waargenomen. Ze laten parkwachters en wildbiologen onze soortgenoten zien zonder hun normale gedrag te verstoren.

De parken rondgaan en informatie verzamelen is een geldige techniek, maar het is een duur, arbeidsintensief en mensintensief proces. Bovendien bestaat het risico dat je gevaarlijke wilde dieren tegenkomt of, erger nog, stropers.

Hoewel verschillende technieken om data te verzamelen verschillende nadelen hebben, zijn cameravallen een uitstekende bron. Het grote voordeel van cameravallen is dat ze continu en geruisloos werken en zeer nauwkeurig data kunnen opnemen zonder het gefotografeerde onderwerp te storen. Ze kunnen nuttig zijn voor zowel het heimelijk monitoren van mogelijke illegale activiteiten als voor het kwantificeren van het aantal verschillende soorten in een gebied en het bepalen van hun gedrag en activiteitenpatronen.

Google cloudplatform

Voor de mediaopslag en het beheer van de cameravallen kozen we voor een cloud-gebaseerde oplossing, meer bepaald het Google Cloud Platform.

Google services Storage oplossingen zoals Google Cloud Storage, object storage met geïntegreerde edge caching om ongestructureerde data op te slaan, compute oplossingen zoals Cloud Functions, Functions as a Service om event-driven code uit te voeren en het ook services nuttige AI API's bijvoorbeeld:

Al deze componenten in één verenigde omgeving was de ideale oplossing voor ons en hielp ons in korte tijd een werkende oplossing te leveren.

De werkstroom

Allereerst worden de media geüpload naar een Google Cloud Storage bucket, hoe dit precies gebeurt wordt besproken in het tweede artikel van deze serie. De emmer is georganiseerd in mappen, één voor elke cameraval. Zodra een bestand is geüpload, wordt onmiddellijk een Google Cloud Functie geactiveerd, deze functie zorgt voor de volgende taken:

  • Lees de geüploade media
  • Roep de Cloud Vision of de Cloud Video Intelligence API aan om de voorspellingen op te halen.

  • Archiveer de API-reacties in een andere Cloud Storage Bucket

  • Stuur de voorspellingen naar een eindpunt buiten GCP

class="img-responsive

Deze architectuur biedt meerdere voordelen:

  • Schaalbaarheid: Dankzij het gebruik van Cloud Functions is de oplossing in staat om automatisch te schalen op basis van het aantal verzoeken (d.w.z. het aantal media dat tegelijkertijd wordt geüpload in de input Cloud Storage bucket).

  • Goedkope en duurzame opslag: Het opslaan van ongestructureerde data in Google Cloud Storage is vrij goedkoop (slechts $0,026 per GB-maand voor de Standard storage tier) en bovendien services best-in-class duurzaamheid van objecten gedurende een bepaald jaar.

  • Automatisering: Door al deze services samen te gebruiken, hebben we een volledig geautomatiseerde pijplijn, zonder menselijke tussenkomst. Van de data ingestion tot het ophalen van voorspellingen, alles verloopt automatisch zodra nieuwe media worden geüpload.

Cloud Vision en Cloud Video Intelligence API's

Het gebruik van Machine Learning, in het bijzonder Computer Vision, om automatisch mensen en dieren te identificeren in afbeeldingen of video's heeft de afgelopen jaren aanzienlijke vooruitgang geboekt en wordt tegenwoordig algemeen beschouwd als een "game-changer" door onderzoekers van dieren in het wild. Laten we ons meer richten op de gebruikte API's.

Vision API en Video Intelligence API bieden krachtige vooraf getrainde machine-learning modellen via REST en RPC API's. De eerste is bedoeld om met afbeeldingen te werken, terwijl de tweede, zoals de naam al doet vermoeden, met video's werkt. Beide zijn in staat om automatisch een groot aantal objecten, plaatsen en acties te herkennen.

Voor dit project hebben we ons voornamelijk gericht op deze 3 functies die de API's bieden:

  • Labeldetectie: Om een idee te hebben van de entiteiten (bijv. dieren, mensen, voertuigen) die aanwezig zijn in de media. Op basis daarvan zou het mogelijk kunnen zijn om regels op te stellen die een alarm activeren bij de aanwezigheid van een specifieke set entiteiten.

  • Objecten detecteren/volgen: Om een preciezer idee te krijgen van de locatie van de gedetecteerde dieren/mensen in de media. In tegenstelling tot de labeldetectie krijgen we hier ook de boxannotaties van de detecties

  • Gezichten/Persoonsdetectie: Om meer informatie te hebben over de gedetecteerde mensen, bijvoorbeeld om hun emoties te begrijpen of hun kleding te extraheren. Deze extra informatie kan dan worden gebruikt om stropers van normale mensen te onderscheiden.

Je kunt met de Vision API spelen door je afbeelding hier te uploaden.

class="img-responsive

Het pad voor ons

De reis tot nu toe is een basis voor de spannende en impactvolle reis die voor ons ligt. Met de basistooling in de nabije toekomst kunnen we veel waarde creëren, niet alleen voor Smart Parks, maar ook voor natuurbehoud en daarbuiten!

De volgende stappen hebben betrekking op deze brede werkgebieden:

  • Model experimenten: Tot nu toe hebben we alleen geëxperimenteerd met API's of voorgetrainde modellen, maar in de toekomst zou het interessant zijn om een dataset te maken van afbeeldingen/video's die zijn verzameld door de cameravallen. Label deze, handmatig of met behulp van het systeem dat we zojuist hebben gepresenteerd, en gebruik deze vervolgens om aangepaste computervisiemodellen te trainen voor een betere nauwkeurigheid.

  • Implementatie van use cases: Nu we al een volledig geautomatiseerde oplossing hebben, kunnen we ons meer richten op de ontwikkeling van gerichte use cases, dus echt nadenken over hoe we de opgehaalde informatie kunnen gebruiken om een impact te maken en de rangers en alle vrijwilligers te helpen bij het beschermen van de wilde dieren in de parken.

  • Edge AI: Op dit moment is de uitvoeringssnelheid van onze voorspellingslus voldoende voor onze use case (enkele minuten). Er zijn nog verbeterpunten om dichter bij een real-time oplossing te komen. Edge AI, met een model dat dichter bij de hardware van de cameraval wordt ingezet en uitgevoerd, is een optie die zou helpen om retourritten naar de cloud te vermijden.

In dit eerste artikel hebben we besproken hoe we onze volledig geautomatiseerde, schaalbare pijplijn in Google Cloud hebben gebouwd, zodat we media kunnen opnemen en Machine Learning API's kunnen gebruiken om er inzichten uit te halen. Het biedt een solide, eenvoudige, snel te implementeren basislijn voor elk soort project waarbij mediaconsumptie en het gebruik van machine learning om inzichten eruit te halen een rol spelen.

Bedankt voor het lezen en tot ziens in de volgende artikelen van de serie waarin we meer in detail zullen uitleggen hoe de gepresenteerde architectuur effectief is verbonden met de cameravallen, en waar we de webapp zullen doornemen die is ontworpen om ze te beheren, dus stay tuned!

Speciale dank aan Maël Deschamps voor zijn hulp bij het beoordelen van de inhoud van deze post en aan Tim van Dam van Smart Parks voor zijn ondersteuning tijdens het project. Jullie zijn geweldig!

class="img-responsive

Medium Blog door Artefact.

Dit artikel is oorspronkelijk gepubliceerd op Medium.com.
Volg ons op onze Medium Blog !