Leggi il nostro articolo su

class="img-responsive

.

Come Artefact, ci interessa avere un impatto positivo sulle persone, sull'ambiente e sulla comunità. Per questo motivo ci impegniamo a collaborare con organizzazioni non profit che fanno di questi valori gli elementi fondamentali della loro visione.
Per questo motivo, abbiamo collaborato con Smart Parks, un'azienda olandese che fornisce soluzioni avanzate di sensori per la conservazione della fauna selvatica in via di estinzione e per la gestione efficiente delle aree dei parchi, grazie a una tecnologia all'avanguardia.

In questa serie di post, raccontiamo il nostro percorso di progettazione e realizzazione di un sistema di ML per l'utilizzo dei media delle telecamere dei parchi intelligenti. In particolare, l'obiettivo del progetto è quello di utilizzare un approccio ML per ingerire i dati provenienti dalle trappole per telecamere e quindi fornire approfondimenti, come la presenza di persone o di specifici tipi di animali nelle immagini o nei video catturati dalle telecamere. Queste informazioni vengono poi utilizzate dai ranger del parco per proteggere meglio la fauna selvatica e individuare più rapidamente eventuali pericoli come i bracconieri.

Introduzione

Smart Parks aveva bisogno di un sistema di monitoraggio della fauna selvatica in grado di svolgere i seguenti compiti:

  • Ingerire i media (immagini e/o video) provenienti dalle trappole con telecamera in un unico luogo
  • Rilevare automaticamente la presenza di persone e animali nei media

  • Accedere alle previsioni in Earth Rangers, un'applicazione utilizzata per gestire i parchi e la loro fauna selvatica

  • Monitorare i media provenienti dalle trappole con telecamera

Il nostro principio guida è stato quello di privilegiare la velocità. Per questo motivo, quando abbiamo iniziato, la nostra unica priorità era quella di distribuire un prodotto end-to-end, ma pienamente funzionante, nel più breve tempo possibile.

Questo sarà il primo articolo di molti altri e si concentrerà sul contesto del progetto, sulla visione di alto livello del sistema progettato e sui vantaggi della nostra soluzione basata sul cloud. Nei prossimi articoli approfondiremo come collegare le trappole alla Google Cloud Platform e agli endpoint esterni utilizzando uno strumento chiamato Node-RED e come progettare una semplice applicazione web utilizzando Streamlit per gestire le trappole posizionate nei parchi.

Iniziamo!

Trappole per telecamere

Prima di entrare nel merito, esaminiamo rapidamente cosa sono le trappole con telecamera e come possono essere utilizzate per sostenere la protezione e la conservazione degli animali.

Le trappole con telecamera sono dispositivi dotati di sensori integrati che consentono di scattare immediatamente una foto o un video quando viene rilevata un'attività davanti a loro. Permettono ai guardaparco e ai biologi della fauna selvatica di vedere i nostri simili senza interferire con il loro normale comportamento.

Andare in giro per i parchi a raccogliere informazioni è una tecnica valida, ma è un processo costoso, che richiede molta manodopera e persone. Inoltre, c'è anche il rischio di imbattersi in animali selvatici pericolosi o, peggio ancora, in bracconieri.

Sebbene le diverse tecniche di raccolta dei dati comportino diversi compromessi, le trappole con fotocamera sono una fonte eccellente. Il grande vantaggio delle trappole con fotocamera è che funzionano in modo continuo e silenzioso e possono registrare dati molto accurati senza disturbare il soggetto fotografato. Possono essere utili sia per monitorare di nascosto eventuali attività illecite sia per quantificare il numero di specie diverse in un'area e determinarne il comportamento e i modelli di attività.

Piattaforma cloud di Google

Per l'archiviazione e la gestione dei supporti delle videocamere, abbiamo scelto di utilizzare una soluzione basata sul cloud, in particolare Google Cloud Platform.

Google offre soluzioni di archiviazione come Google Cloud Storage, object storage con edge caching integrato per archiviare dati non strutturati, soluzioni di calcolo come Cloud Functions, Functions as a Service per eseguire codice event-driven e offre anche utili API per l'AI:

Avere tutti questi componenti in un unico ambiente unificato è stata la soluzione ideale per noi e ci ha aiutato a fornire una soluzione funzionante in breve tempo.

Il flusso di lavoro

Prima di tutto i file multimediali vengono caricati in un bucket di Google Cloud Storage; come questo avvenga esattamente verrà discusso nel secondo articolo di questa serie. Il bucket è organizzato in cartelle, una per ogni trappola della telecamera. Una volta caricato un file, viene immediatamente attivata una funzione di Google Cloud che si occupa dei seguenti compiti:

  • Leggere i media caricati
  • Chiamare l'API Cloud Vision o Cloud Video Intelligence per recuperare le previsioni.

  • Archiviare le risposte API in un altro bucket di archiviazione Cloud.

  • Inviare le previsioni a un endpoint esterno a GCP

class="img-responsive

Questa architettura offre molteplici vantaggi:

  • Scalabilità: Grazie all'utilizzo delle Cloud Functions, la soluzione è in grado di scalare automaticamente in base al numero di richieste (cioè al numero di media caricati contemporaneamente nel bucket del Cloud Storage di input).

  • Archiviazione economica e duratura: L'archiviazione di dati non strutturati in Google Cloud Storage è piuttosto economica (solo 0,026 dollari per GB al mese per il livello di archiviazione Standard) e offre la migliore durata della categoria per gli oggetti in un determinato anno.

  • Automazione: L'utilizzo congiunto di tutti questi servizi ci permette di avere una pipeline completamente automatizzata, senza alcun intervento umano. Dall'ingestione dei dati al recupero delle previsioni, tutto viene eseguito automaticamente non appena viene caricato un nuovo media.

API Cloud Vision e Cloud Video Intelligence

L'utilizzo del Machine Learning, in particolare della Computer Vision, per l'identificazione automatica di persone e animali in immagini o video ha registrato progressi significativi negli ultimi anni e oggi è ampiamente considerato un "game-changer" dai ricercatori della fauna selvatica. Concentriamoci sulle API utilizzate.

Vision API e Video Intelligence API offrono potenti modelli di apprendimento automatico pre-addestrati tramite API REST e RPC. La prima è pensata per lavorare con le immagini, mentre la seconda, come suggerisce il nome, con i video. Entrambe sono in grado di riconoscere automaticamente un gran numero di oggetti, luoghi e azioni.

Per questo progetto ci siamo concentrati principalmente su queste tre caratteristiche fornite dalle API:

  • Rilevamento delle etichette: Per avere un'idea delle entità (ad esempio animali, persone, veicoli) presenti nei media. In base a ciò, è possibile creare regole che attivino un allarme in presenza di un insieme specifico di entità.

  • Rilevamento/tracciamento di oggetti: Per avere un'idea più precisa della posizione degli animali/persone rilevati nei media. Diversamente dal caso del rilevamento delle etichette, in questo caso si ottengono anche le annotazioni dei riquadri dei rilevamenti

  • Rilevamento di volti/persone: Per avere maggiori informazioni sulle persone rilevate, ad esempio per capire le loro emozioni o estrarre il loro abbigliamento. Queste informazioni aggiuntive potrebbero essere utilizzate per distinguere i bracconieri dalle persone normali.

È possibile giocare con l'API Vision caricando la propria immagine qui.

class="img-responsive

Il sentiero davanti a noi

Il viaggio compiuto finora è una base per il viaggio emozionante e di grande impatto che ci attende. Con gli strumenti di base a disposizione nel prossimo futuro, saremo in grado di creare molto valore non solo per gli Smart Park, ma anche per la conservazione della fauna selvatica e non solo!

I prossimi passi riguarderanno queste ampie aree di lavoro:

  • Sperimentazione dei modelli: Finora abbiamo sperimentato solo API o modelli pre-addestrati, ma in futuro sarebbe interessante costruire un dataset di immagini/video raccolti dalle telecamere. Etichettarle, manualmente o utilizzando il sistema appena presentato, e poi utilizzarle per addestrare modelli di Computer Vision personalizzati per ottenere una migliore accuratezza.

  • Implementazione dei casi d'uso: Avere già una soluzione completamente automatizzata ci permetterà di concentrarci maggiormente sullo sviluppo di casi d'uso mirati, pensando quindi a come sfruttare le informazioni recuperate per avere un impatto e aiutare i ranger e tutti i volontari nella protezione della fauna selvatica dei parchi.

  • Edge AI: per il momento, la velocità di esecuzione del nostro ciclo di previsione è soddisfacente per il nostro caso d'uso (pochi minuti). Abbiamo ancora aree di miglioramento per avvicinarci a una soluzione in tempo reale. L'Edge AI, con un modello distribuito ed eseguito più vicino all'hardware della trappola con telecamera, è un'opzione che aiuterebbe a evitare i viaggi di andata e ritorno verso il cloud.

In questo primo articolo abbiamo discusso di come abbiamo costruito la nostra pipeline scalabile completamente automatizzata in Google Cloud, che ci permette di ingerire i media e di utilizzare le API di Machine Learning per estrarre informazioni da essi. Si tratta di una base solida, facile e veloce da implementare per qualsiasi tipo di progetto che preveda il consumo di media e l'uso dell'apprendimento automatico per estrarne gli insight.

Vi ringraziamo per la lettura e vi diamo appuntamento ai prossimi articoli della serie in cui spiegheremo più dettagliatamente come l'architettura presentata sia effettivamente collegata alle trappole per telecamere e in cui esamineremo la web app progettata per gestirle, quindi rimanete sintonizzati!

Un ringraziamento speciale a Maël Deschamps per il suo aiuto nella revisione del contenuto di questo post e a Tim van Dam di Smart Parks per il suo supporto durante il progetto. Siete fantastici!

class="img-responsive

Medium Blog di Artefact.

Questo articolo è stato pubblicato inizialmente su Medium.com.
Seguiteci sul nostro blog Medium!