Questo post è stato reso pubblico come parte del Blogathon sulla scienza dei dati.
introduzione
Applicazioni
- Accreditamento facciale – Le fotocamere del telefono utilizzano il badge facciale per sbloccare il telefono. I sistemi di accreditamento facciale potrebbero essere implementati alle porte d'ingresso degli edifici per uffici.
- Classificazione delle immagini – Utilizzato per distinguere tra più set di immagini. Settori come l'automobile, Al dettaglio, i giochi, eccetera. lo usano per molteplici scopi.
- Accreditamento immagine – Le società di sicurezza utilizzano l'accreditamento delle immagini per rilevare varie cose nelle valigie negli aeroporti, scanner di immagini, eccetera.
Passaggi per creare l'applicazione
- Ottieni i dati
- Preparazione dei dati
- Modellazione dei dati
- Progetta l'interfaccia utente
- Integra interfaccia utente e modellazione
Ottieni i dati
I dati sarebbero sotto forma di immagini, In altre parole, Fotografie. Le immagini sono una serie di pixel. Per creare l'intera applicazione end-to-end sarebbero necessarie immagini in numero maggiore. I dati saranno disponibili all'interno dell'organizzazione stessa o devono essere ottenuti da Internet aperto. A seconda del tipo di applicazione, il tipo di dati richiesti varierà. Se si tratta di una domanda di accreditamento facciale, Possiamo persino creare dati attraverso la raccolta di immagini di varie persone. Se le immagini devono essere ottenute da Internet aperto, possiamo raschiare le immagini dal web.
Las imágenes capturadas deben ser de alta risoluzioneIl "risoluzione" si riferisce alla capacità di prendere decisioni ferme e raggiungere gli obiettivi prefissati. In contesti personali e professionali, Implica la definizione di obiettivi chiari e lo sviluppo di un piano d'azione per raggiungerli. La risoluzione è fondamentale per la crescita personale e il successo in vari ambiti della vita, In quanto ti permette di superare gli ostacoli e mantenere la concentrazione su ciò che conta davvero.... y pueden estar ligeramente distorsionadas. Potrebbe esserci una certa quantità di rumore presente nelle immagini in modo che l'algoritmo possa categorizzare correttamente le immagini.
Esempio di web scraping di immagini in una pagina web –
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument("--tipo di test")
options.binary_location = "/usr/bin/cromo"
driver = webdriver. Cromo(chrome_options=opzioni)
driver.get('https://imgur.com/')
immagini = driver.find_elements_by_tag_name('img')
per l'immagine nelle immagini:
Stampa(image.get_attribute('src'))
driver.chiudi()
Preparazione dei dati
- Le immagini devono essere ridimensionate in modo che tutte le immagini abbiano la stessa dimensione
- Le immagini possono essere nitide con l'alta risoluzione, oltre che un po' sfocato e rumoroso.
- Operazioni di trasformazione come traduzione, la rotazione e il ridimensionamento dovrebbero essere applicati in modo che le immagini catturate siano presenti a tutti gli angoli.
- Le immagini possono essere distorte o troncate per generalizzare bene.
- Introdurre rumore nelle immagini se non presente
- Una distribuzione uniforme del numero di immagini deve essere presentata in ciascuna delle classi.
– Autore di Sapiens
Codice per ridimensionare un'immagine
img = cv2.imread('/home/img/python.png', cv2. IMREAD_UNCHANGED)
Stampa(«Dimensioni originali : ',img.forma)
scale_percent = 60
larghezza = int(img.forma[1] * scale_percent / 100)
altezza = int(img.forma[0] * scale_percent / 100)
debole = (larghezza, altezza)
# resize image
resized = cv2.resize(img, Oscuro, interpolazione = cv2.INTER_AREA)
Modellazione dei dati
Una vez que se hayan obtenido todas las imágenes, colóquelas en la carpeta adecuada para cada una de las clases. Asegúrese de que haya una distribución adecuada de imágenes para el addestramentoLa formazione è un processo sistematico volto a migliorare le competenze, conoscenze o abilità fisiche. Viene applicato in vari ambiti, come lo sport, Formazione e sviluppo professionale. Un programma di allenamento efficace include la pianificazione degli obiettivi, Pratica regolare e valutazione dei progressi. L'adattamento alle esigenze individuali e la motivazione sono fattori chiave per ottenere risultati di successo e sostenibili in qualsiasi disciplina...., set di dati di convalida e test. Per la classificazione e l'accreditamento delle immagini dovremo utilizzare le reti neurali. L'architettura di convolucional neuronale rossoReti neurali convoluzionali (CNN) son un tipo de arquitectura de red neuronal diseñadas especialmente para el procesamiento de datos con una estructura de cuadrícula, come immagini. Utilizan capas de convolución para extraer características jerárquicas, lo que las hace especialmente efectivas en tareas de reconocimiento de patrones y clasificación. Gracias a su capacidad para aprender de grandes volúmenes de datos, las CNN han revolucionado campos como la visión por computadora... se adapta mejor a las imágenes cuando trabajan con matrices.
Le reti neurali convoluzionali hanno diversi strati che aiutano nelle operazioni matematiche che vengono eseguite sulle immagini. I livelli includono il livello di convoluzione, livello di raggruppamento, la capa de standardizzazioneLa normalización es un proceso fundamental en diversas disciplinas, que busca establecer estándares y criterios uniformes para mejorar la calidad y la eficiencia. En contextos como la ingeniería, la educación y la administración, la normalización facilita la comparación, la interoperabilidad y la comprensión mutua. Al implementar normas, se promueve la cohesión y se optimizan recursos, lo que contribuye al desarrollo sostenible y a la mejora continua de los procesos.... por lotes, Funzioni trigger e livelli completamente connessi. L'apprendimento pass-through ti dà la possibilità di utilizzare architetture di modelli di rete pre-addestrate che funzionano bene con immagini di set di dati standard. Quindi inizia scrivendo la tua rete, ma scoprirai che le reti pre-addestrate ti offriranno prestazioni molto migliori.
Inizia con alcuni dei modelli di base pre-addestrati come:
- VGG16
- Cominciare
- Xception
- MobileNet
- ResNet50
Puoi utilizzare le librerie Tensorflow o Keras per utilizzare questi modelli che presentano le loro implementazioni all'interno della libreria. Esto le facilitará cambiar los parametriIl "parametri" sono variabili o criteri che vengono utilizzati per definire, misurare o valutare un fenomeno o un sistema. In vari campi come la statistica, Informatica e Ricerca Scientifica, I parametri sono fondamentali per stabilire norme e standard che guidano l'analisi e l'interpretazione dei dati. La loro corretta selezione e gestione sono fondamentali per ottenere risultati accurati e pertinenti in qualsiasi studio o progetto.... de las diferentes capas de la arquitectura. È possibile evitare l'ottimizzazione degli iperparametri per migliorare le prestazioni. Durante l'addestramento dei modelli, assicurati di salvare i valori dei coefficienti o i pesi del modello. Questi valori che salvi possono essere utilizzati per prevedere le immagini future che fornirai alla tua applicazione.
Código de modelo VGG16
image_size=224 from keras.applications import VGG16 from keras import models from keras import layers from keras import optimizers #Load the VGG model vgg_conv = VGG16(pesi="imagenet", include_top=Falso, input_shape=(224, 224, 3)) per il livello in vgg_conv.layers[:-4]: layer.trainable = False for layer in vgg_conv.layers: Stampa(strato, layer.trainable) modello = modelli. Sequenziale() # Add the vgg convolutional base model model.add(vgg_conv) # Add new layers model.add(Strati. Appiattire()) modello.aggiungi(Strati. Denso(1024, attivazione = 'rileggere')) modello.aggiungi(Strati. Abbandono degli studi(0.5)) modello.aggiungi(Strati. Denso(29, attivazione='softmax')) # Mostra un riepilogo del modello. Check the number of trainable parameters model.summary()
La libreria Keras ti offre un modo semplice per salvare i coefficienti del modello usando:
modello.salvataggio('nomefile.h5')
Progetta l'interfaccia utente
Una volta che il modello è pronto per l'uso, dovrebbe funzionare nell'interfaccia utente. Se stai progettando un'applicazione Android, puoi progettare l'interfaccia utente con l'aiuto di Kotlin o Flutter. L'interfaccia utente dovrebbe essere facile da leggere e interpretare. Deve essere progettato in modo tale da soddisfare lo scopo principale dell'applicazione.
Se stai progettando un'applicazione web, Flask o Django potrebbero essere usati per lo stesso scopo. La GUI potrebbe essere progettata utilizzando librerie Python come Tkinter, eccetera.
Integra interfaccia utente e modellazione
Per le app Android, Flutter ti consente di integrare i tuoi modelli di classificazione con l'aiuto di una libreria chiamata Tensorflow Lite. L'implementazione di Tensorflow lite richiede solo due file per la classificazione delle immagini, In altre parole, il file di testo dell'etichetta della classe e il file del peso o dei coefficienti del modello. Una volta inseriti questi due file nella struttura delle cartelle, l'applicazione Android sarà completa e pronta per essere testata. Il widget della fotocamera creato con Flutter può essere utilizzato per acquisire l'immagine in ingresso.
Codice per includere i due file –
loadModel() asincrono { attendi Tflite.loadModel( modello: "asset/model_unquant.tflite", etichette: "asset/etichette.txt", ); }
Qui, il file .tflite è il file dei coefficienti che viene creato dal modello e tags.txt sono i nomi delle classi di immagini separati da una nuova riga. Incorporalo nella struttura di Android.
Per applicazioni web, Flask consente di integrare la libreria Tensorflow e consente di utilizzare i pesi del modello per effettuare il tipo corretto di previsione sull'immagine di input.
Seguendo questa procedura, Passo dopo passo, puoi costruire subito il tuo modello di classificazione.