Taula de continguts[Amaga][Espectacle]
- Què és la classificació d'imatges?
- Com funciona la classificació d'imatges?
Classificació d'imatges mitjançant Tensorflow i Keras a Python+-
- 1. Requisits d'instal·lació
- 2. Importació de dependències
- 3. Inicialització de paràmetres
- 4. Carregant el conjunt de dades
- 5. Creació del model
- 6. Formació del model
- Provar el model
- 7. Importació de les utilitats per a la prova
- 8. Creació d'un directori Python
- 9. Càrrega de dades i model de prova
- 10. Avaluació i predicció
- 11. Resultats
- Conclusió
És reconfortant saber que hem aconseguit dotar els robots de les nostres habilitats innates per aprendre amb l'exemple i percebre el seu entorn. El repte fonamental és aquells que ensenyen als ordinadors a "veure" com els humans necessitarien molt més temps i esforç.
Tanmateix, si tenim en compte el valor pràctic que aquesta habilitat ofereix actualment a les organitzacions i empreses, l'esforç val la pena. En aquest article, aprendràs sobre la classificació d'imatges, com funciona i la seva implementació pràctica. Anem a començar.
Què és la classificació d'imatges?
La feina d'introduir una imatge en un xarxa neural i fer que emeti algun tipus d'etiqueta per a aquesta imatge es coneix com a reconeixement d'imatges. L'etiqueta de sortida de la xarxa correspondrà a una classe predefinida.
Hi pot haver nombroses classes assignades a la imatge, o simplement una. Quan només hi ha una classe, el terme "reconeixement" s'utilitza amb freqüència, mentre que quan hi ha diverses classes, el terme "classificació" s'utilitza amb freqüència.
Detecció d'objectes és un subconjunt de classificació d'imatges en què es detecten casos concrets d'objectes que pertanyen a una classe determinada, com ara animals, vehicles o humans.
Com funciona la classificació d'imatges?
Una imatge en forma de píxels és analitzada per un ordinador. Això ho aconsegueix tractant la imatge com una col·lecció de matrius, la mida de les quals està determinada per la resolució de la imatge. Simplement parlant, la classificació d'imatges és l'estudi de dades estadístiques utilitzant algorismes des de la perspectiva d'un ordinador.
La classificació d'imatges s'aconsegueix en el processament d'imatges digitals agrupant els píxels en grups predeterminats o "classes". Els algorismes divideixen la imatge en una successió de característiques destacables, la qual cosa redueix la càrrega del classificador final.
Aquestes qualitats informen el classificador sobre el significat de la imatge i la classificació potencial. Com que la resta de processos de classificació d'una imatge en depenen, el mètode d'extracció característic és la fase més crítica.
El dades facilitades a l'algorisme també és crucial en la classificació d'imatges, especialment la classificació supervisada. En comparació amb un conjunt de dades terrible amb un desequilibri de dades basat en la classe i la baixa qualitat d'imatge i anotació, un conjunt de dades de classificació ben optimitzat funciona de manera admirable.
Classificació d'imatges mitjançant Tensorflow i Keras a Python
Farem servir el CIFAR-10 conjunt de dades (que inclou avions, avions, ocells i altres 7 coses).
1. Requisits d'instal·lació
El codi següent instal·larà tots els requisits previs.
2. Importació de dependències
Feu un fitxer train.py en Python. El codi següent importarà les dependències de Tensorflow i Keras.
3. Inicialització de paràmetres
CIFAR-10 inclou només 10 categories d'imatges, per tant, les classes num simplement fan referència al nombre de categories a classificar.
4. Carregant el conjunt de dades
La funció utilitza el mòdul Tensorflow Datasets per carregar el conjunt de dades, i establim la informació com a True per obtenir informació al respecte. Podeu imprimir-lo per veure quins són els camps i els seus valors, i farem servir la informació per recuperar el nombre de mostres dels conjunts d'entrenament i proves.
5. Creació del model
Ara construirem tres capes, cadascuna formada per dues ConvNets amb una funció d'activació de màxima agrupació i ReLU, seguida d'un sistema de 1024 unitats completament connectat. En comparació amb ResNet50 o Xception, que són models d'última generació, aquest podria ser un model relativament petit.
6. Formació del model
Vaig utilitzar Tensorboard per mesurar la precisió i la pèrdua en cada època i proporcionar-nos una visualització preciosa després d'importar les dades i generar el model. Executeu el codi següent; depenent de la vostra CPU/GPU, l'entrenament trigarà uns quants minuts.
Per utilitzar tensorboard, només cal que escriviu l'ordre següent al terminal o l'indicador d'ordres al directori actual:
Veureu que la pèrdua de validació es redueix i la precisió augmenta fins al 81%. Això és fantàstic!
Provar el model
Quan s'ha acabat l'entrenament, el model final i els pesos es guarden a la carpeta de resultats, la qual cosa ens permet entrenar una vegada i fer prediccions sempre que ho triem. Seguiu el codi en un fitxer Python nou anomenat test.py.
7. Importació de les utilitats per a la prova
8. Creació d'un directori Python
Feu un diccionari de Python que tradueixi cada valor enter a l'etiqueta adequada del conjunt de dades:
9. Càrrega de dades i model de prova
El codi següent carregarà les dades i el model de prova.
10. Avaluació i predicció
El codi següent avaluarà i farà prediccions sobre les imatges de la granota.
11. Resultats
El model va predir la granota amb un 80.62% de precisió.
Conclusió
D'acord, hem acabat amb aquesta lliçó. Tot i que el 80.62% no és bo per a una mica de CNN, us recomano molt que modifiqueu el model o mireu ResNet50, Xception o altres models d'avantguarda per obtenir millors resultats.
Ara que heu creat la vostra primera xarxa de reconeixement d'imatges a Keras, hauríeu d'experimentar amb el model per descobrir com els diferents paràmetres afecten el seu rendiment.
Deixa un comentari