La rete neurale del lampone fai da te vede tutto, riconosce alcuni

La rete neurale del lampone fai da te vede tutto, riconosce alcuni

September 5, 2022 Digital Electronics 0

come un progetto divertente ho pensato di mettere la rete neurale iniziale-v3 v3 di Google su un Raspberry PI per vedere quanto bene lo fa al riconoscimento degli oggetti da prima mano. È [si è rivelato essere] non solo divertente da implementare, ma anche il modo in cui l’ho implementato è finito per fare un sacco di divertimento per tutti quelli che lo hanno mostrato, per lo più gente di hackerpaces e tali incontri. E sì, alcuni di questi bordati su pornografici – hacker sfacciato.

Un ulteriore vantaggio numeroso sottolineato è che, una volta installato, non è richiesto alcun accesso a Internet. Questo è il riconoscimento dell’oggetto statale, indipendente senza un fratello maggiore sapendo cosa hai fatto, a differenza di quel Nosy Alexa.

Ma provvederà il diffuso Ai utile? Se una rete neurale può riconoscere ogni oggetto attorno ad esso, si tradurrà in abilità simili agli umane? Continuare a leggere.

Come eseguire il riconoscimento dell’oggetto

Riconoscimento dell’oggetto Inception Internals
L’implementazione è composta da:

Raspberry PI 3 Model B

amplificatore e altoparlante

Picamera

momentaneo swtich.

Batteria del caricabatterie del cellulare per il PI

Il cuore del software richiesto è la rete neurale inizio di Google che viene implementata utilizzando il loro quadro TensorFlow. Puoi scaricarlo seguendo il tutorial TensorFlow per il riconoscimento dell’immagine. Il tutorial non comporta alcuna programmazione quindi non preoccuparti se non conosci Python o Tensorflow. Cioè, a meno che non modifichi il loro codice di esempio come ho fatto.

Classify_image.py Stampa che ha visto un Panda
Il codice di esempio prende un file denominato fisso inclusa un’immagine di un Panda e il riconoscimento dell’oggetto su di esso. Dà il risultato stampando fuori che ha visto un panda. Ma non è stato abbastanza divertente.

Ho cacciato per alcuni software di testo-vocale e trovato festival. Ora, quando vuole dire che ha visto un Panda, ho modificato il codice di esempio per eseguire festival in un guscio di Linux e direlo di dire effettivamente “Ho visto un panda” all’altoparlante.

Audio PlayerHttps: //hackaday.com/wp-content/uploads/2017/06/classify_speak_panda_audio.wav

00:00.
00:00.
00:00.

Ma questo non è ancora abbastanza divertente. Ho collegato una Picamera al Raspberry PI, e ho fatto scattare una foto e dargli il codice Tensoreflow per fare il riconoscimento dell’oggetto. Nel Vernacular, ora correva inferenza sulla mia foto.

E infine, per rendere tutto ciò che è facile, ho collegato un interruttore di momary a uno dei PIN GPIO dei PI e ha scattato la foto quando è stato premuto l’interruttore momentaneo.

Ecco la funzione principale del programma Python () prima …

1.
2.
3.
4.
5.
Def Main (_):
forse_download_and_extract ()
image = (flags.image_file se flags.image_file altro
os.path.join (flags.model_dir, ‘ritagliata_panda.jpg’))
run_inference_on_image (immagine)

… e dopo.

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Def Main (_):
os.system (& quot; echo% s | festival –tts & quot;% & quot; aspetta mentre preparo il mio cervello … & quot;)

forse_download_and_extract ()
# crea grafico dal graphdef salvato.
Create_graph ()

# Preparazione per l’interruttore
GPIO.SetMode (GPIO.BCM)
GPIO.Setup (17, GPIO.In)

Fotocamera = Picamera ()

os.system (& quot; echo% s | festival –tts & quot;% & quot; Sono pronto a vedere le cose. & quot;)

Mentre è vero:
# loop per l’interruttore
while (GPIO.Input (17) == GPIO.Low):
time.sleep (0,01)

# prendi e scrivi un’istantanea in un file
image = os.path.join (flags.model_dir, ‘seeing_eye_image.jpg’)
fotocamera.Capture (immagine)

os.system (& quot; echo% s | festival –tts & quot;% & quot; Sto pensando a ciò che mi hai mostrato … & quot;)
Human_String = run_inference_on_image (immagine)
os.system (& quot; echo ho visto un% s | festival –tts & quot;% human_string)

Le chiamate a OS.System () sono dove eseguo il programma di testo-vocale del festival per farlo dire qualcosa all’altoparlante.

forse_download_and_extract () è in cui la rete neurale inizio di Google verrà scaricata da Internet, se non è già presente. Per impostazione predefinita, lo scarica su / TMP / ImagEnet che si trova su un disco RAM. La prima volta che ha fatto questo, l’ho copiato da / tmp / immagenet to / home / inizio sulla scheda SD e ora esegui il programma utilizzando una riga di comando che include dove trovare la rete iniziale.

Esecuzione del riconoscimento dell’oggetto Inception
La chiamata da creare_graph () è stata spostata da dentro la funzione run_inference_on_image (). CREARE_GRAFH () Imposta la rete neurale, di cui hai bisogno solo una volta. In precedenza il programma è stato un affare one-shot, ma ora ha un loop illimitato mentre chiama run_inference_on_image () ogni volta attraverso il ciclo. Ovviamente, la creazione della rete neurale è qualcosa che fai solo una volta (vedi la nostra introduzione a TensorFlow per molto più sui grafici), quindi doveva essere spostato sopra il loop.

La funzione run_inference_on_image () è dove viene data l’immagine alla rete neurale per eseguire il riconoscimento dell’oggetto. Era solo stampato tutto ciò che pensava fosse nell’immagine, ma l’ho modificato invece restituire la stringa di testo, incluso ciò che pensa che l’oggetto sia, per esempio “tazza da caffè”. Quindi l’ultima riga è dove direbbe”Ho visto una tazza da caffè” all’amplificatore e all’altoparlante.

Boxe tutto ciò che su mi ha dato un piccolo pacchetto autonomo che potrebbe essere portato in giro e provato da chiunque. Ecco un video in azione.

Un miglioramento sarebbe quello di aggiungere un piccolo schermo in modo che l’utente possa vedere cosa vede la videocamera, ma la Picamera ha un ampio angolo di veduta e uno schermo risulta non necessario.

Quanto è buono il suo riconoscimento dell’oggetto

Inception Vedere un tabaccaio
Mostrandolo un telefono cellulare spesso provoca in esso dicendo che ha visto un telefono cellulare, ma in alcuni casi un iPod. Tuttavia, finora ha ottenuto bottiglie d’acqua e tazze da caffè appropriate ogni volta.

Tuttavia, non fa bene con le persone. Indicarlo contro di me nel mio ufficio lo fa dire di dire che ha visto un “tabacco, negozio di tabacconist, tabacconista”, probabilmente a causa degli scaffali di attrezzature e parti direttamente dietro di me. Tuttavia, in piedi contro un muro vuoto, ha detto che ha visto una felpa, rimuovendo che vide una maglietta, rimuovendolo, disse “bagnare tronchi, battili da bagno”, nonostante vedendo solo il mio busto nudoto e la testa. (Ti risparmierò la foto.)

Immagini di cellulare di esempio ImagEnet

Immagini di tazze da caffè campione ImagEnet

La rete neurale è addestrata su un set di dati chiamato Imagenet, la versione dalla grande sfida del riconoscimento visivo del 2012. Quel DataSet è costituito da un’enorme raccolta di immagini divise in 1000 classi, ogni classe comprese le immagini di un particolare oggetto. Come puoi vedere da questo piccolo campione dalla classe del telefono cellulare, alcune delle immagini del telefono sono un po ‘datati. Tuttavia, oggetti come tazze da caffè non cambiano nel tempo.

Ma questo non ha fermato tutti coloro che hanno suonato da divertirsi, passeggiando per testarelo su tutto in vista, come trovare una bacchetta magica per la prima volta e agitandolo per vedere cosa potrebbe evocare.

È il meglio che puoi fare?

Bene, prima di sconto, ogni riconoscimento richiede circa 10 secondi su un Raspberry PI 3, quindi o che deve essere accelerato o un processore più veloce utilizzato, preferibilmente uno con una GPU NVIDIA abilitata da CUDA perché è attualmente l’unico tipo di GPU TensorFlow supporta attualmente.

La rete neurale inizio è buona come i dati su cui è addestrato. I difetti che ho sottolineato sopra per riconoscere i telefoni cellulari e le persone sono problemi con il set di dati ImagEnet. Solo il 3,46% del tempo sono tutti 5 delle sue migliori ipotesi sbagliati, mentre gli esseri umani che fanno lo stesso test sono sbagliati nelle loro 5 migliori ipotesi del 5% delle volte. Non male.

Come abbiamo sottolineato nel nostro breve articolo sulle reti neurali di Freaky Stuff, oggi, le reti neurali a breve termine a breve termine (LSTM) possono esaminare ciò che vedono in un singolo frame di un video, tenendo conto di ciò che è arrivato prima nel video. Ad esempio, ha molta più sicurezza che vide una palla da spiaggia invece di una palla da basket se la scena precedente era quella di una festa in spiaggia. Ciò differisce dalla rete neurale di inizio in quella nascita ha solo l’immagine che lo mostri per andare avanti.

Dove ci porta?

Il riconoscimento del riconoscimento dell’oggetto migliorerà il risultato di AI diffuso utile con le abilità simili agli uomini? L’evoluzione dell’occhio è spesso citata come una delle principali cause dell’esplosione nelle forme di vita conosciuta come l’esplosione della Cambriana intorno a 541 milioni di anni fa, anche se c’è molta discussione su quella causa.

Quando quegli occhi si sono evoluti, tuttavia, c’era già qualche forma di cervello per usarli. Quel cervello ha già gestito i sensi del tatto, vibrazione e odore. Il riconoscimento dell’oggetto così migliorato da solo non causerebbe una rivoluzione. Per le abilità simili alle quali la nostra AIS avrebbe bisogno di molta più intelligenza. Attualmente abbiamo solo bit e pezzi di idee di ciò di cui abbiamo bisogno per questo.

Ciò che sono in accordo è che il nostro AI avrebbe bisogno di fare previsioni in modo che potesse pianificare. Per questo potrebbe avere un modello interno o comprensione, del mondo da utilizzare come base per quelle previsioni. Per l’abilità umana di applicare un suggerimento di saldatura a un filo, un modello interno prevederebbe ciò che accadrebbe quando il suggerimento ha fatto contatto e quindi pianificare in base a quello. Quando il suggerimento contatta il filo, se le cose non vanno come previsto, allora l’AI avrebbe reagito.

I lavori recenti da Facebook con reti adverversibili generative (GANS) possono suggerire un punto di partenza qui che contiene tale modello e capacità predittiva (se non hai familiarità con i Gans, ti riferiamo di nuovo al nostro breve articolo sulle reti neurali di Freaky Stuff fare oggi). La parte “generativa” del nome implica che generano immagini. Ma molto più specificamente, questi sono gans profondamente contorti, il che significa che includono una comprensione di ciò che hanno visto nelle immagini in cui sono stati addestrati. Ad esempio, conoscono finestre, porte e televisori e dove vanno in stanze.

Pronostici video adGG.
Che ne dici di fare previsioni? Molto più lavoro da Facebook coinvolge la generazione di video. Usando i predittori di perdita di differenza di sfumatura avversaria (AGDL) prevedono quali dovrebbero essere i prossimi due fotogrammi di un video. Nella foto di un gioco di biliardo puoi vedere il GrounD verità, cioè cosa è stato realmente accaduto e quale ha predetto la rete AGDL. Non è molto lontano nel futuro ma è un inizio.

Quelli sono almeno piccoli passi sul sentiero da un riconoscimento dell’oggetto ingenuo ad uno con abilità simili a quelli umani.

In chiusura

Dove potresti aver visto l’inizio della rete neurale che riconosce gli oggetti prima? Abbiamo coperto [Lukas Biewald] usandolo su un’auto RC per riconoscere gli oggetti nel suo garage / officina.

Mentre questo [si è rivelato essere] divertente per tutti da usare come, quali altri usi puoi pensarci per questo? A quale apparezione utile puoi pensare? Cosa può essere aggiunto? Fateci sapere nei commenti qui sotto.

Leave a Reply

Your email address will not be published. Required fields are marked *