[PYTHON] Construction et bases de l'environnement de reconnaissance d'image

Afin d'initialiser fréquemment le PC, je laisserai la construction d'environnement pour la reconnaissance d'image comme un mémorandum pour moi-même (cela peut être assez oublieux car je fais habituellement d'autres travaux). Utilisez miniconda pour créer un environnement qui permet un traitement de reconnaissance d'image simple avec OpenCV avec python.

Aperçu


Construction de l'environnement avec miniconda

Télécharger miniconda

Anaconda est très bien, mais si vous avez un PC bas de gamme, nous vous recommandons miniconda. Parce qu'il y a peu de packages installés par défaut et que cela ne prend pas de place. https://docs.conda.io/en/latest/miniconda.html Ce n'est pas grave si vous passez au suivant. Aucun réglage spécial n'est requis.


Créer un environnement virtuel pour Python

AnacondaPronpt


(base) >conda create -n py36 python=3.6                          …(1)
(base) >conda env list                                           …(2)
# conda environments:
#
base                  *  C:\Users\XXXX\miniconda3
py36                     C:\Users\XXXX\miniconda3\envs\py36
(base) >activate py36                                            …(3)
(py36) >conda env list                                           …(4)
# conda environments:
#
base                     C:\Users\XXXX\miniconda3
py36                  *  C:\Users\XXXX\miniconda3\envs\py36
(py36) >conda install jupyter notebbok                           …(5)

(1) Créez un environnement virtuel de python3.6 avec le nom py36 (2) Vérifiez si un environnement virtuel a été créé (3) Puisque vous êtes actuellement dans l'environnement de base (configuration initiale), passez à l'environnement virtuel (py36) créé précédemment. (4) La commutation est OK si les parenthèses sont remplacées par (py36) et * est remplacé par py36. (5) Installez le notebook jupyter

Récemment, j'utilise le notebook Jupter. Je pense que vous pouvez créer un spyder avec un sentiment similaire. Pour l'apprentissage automatique, je pense que python ver est d'environ 3,6. Cela ne fonctionne souvent pas avec la dernière version. (Peut changer dans le futur)


Installation des packages utilisés pour la reconnaissance d'images

AnacondaPronpt


(py36) >conda install numpy
(py36) >conda install matplotlib
(py36) >conda install opencv
(py36) >jupyter notebook

Démarrez le notebook jupyter et vérifiez si chaque package est installé

AnacondaPronpt


(py36) >jupyter notebook

JupyterNotebook


import cv2
import numpy  as np
import matplotlib as plt
print (cv2.__version__)
print (np.__version__)
print (plt.__version__)

C'est OK si chaque version est renvoyée. (Pandas, Keras, scikit-learn, TensorFlor, etc. sont également recommandés si vous êtes personnellement intéressé par l'apprentissage automatique et l'analyse)


Discours silencieux: histoire d'OpenCV

Installons OpenCV, qui est le standard de facto pour la reconnaissance d'images. Actuellement, OpenCV prend en charge divers langages de programmation tels que C ++, Python et Java.

En premier lieu, il y a une histoire sur ce qu'est la reconnaissance d'image, mais par souci de simplicité, nous la considérerons comme suit.

Il est facile de distinguer les choses uniquement par leur couleur et leur forme, mais si la lumière du soleil frappe différemment, les couleurs visibles seront différentes, et même si les choses sont coupées, pourquoi pouvons-nous reconnaître les choses? Capture inconsciemment de multiples fonctionnalités et comprend selon la loi.

Comme d'autres outils, OpenCV propose des tutoriels. La documentation officielle est importante, mais ce tutoriel est facile à comprendre. (Personnellement, c'est plusieurs fois plus facile à comprendre que le tutoriel Django) </ font> http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_tutorials.html


Essayez d'utiliser OpenCV

Commençons par charger l'image et l'afficher. Placez le fichier image (opencv-logo.png) dans le répertoire où vous souhaitez enregistrer le programme à l'avance.

JupyterNotebook


import cv2
img = cv2.imread('./opencv-logo.png',1) 
#Le deuxième argument est 0:Échelle de gris, 1:Image couleur-1:Couleur + transparence(α)
cv2.imshow('image',img)
#Afficher l'image dans la fenêtre
#Le premier argument est le nom de la fenêtre spécifié comme type de chaîne de caractères,Le deuxième argument est l'image que vous souhaitez afficher
cv2.waitKey(0)
#Attendre la saisie de la clé
#L'argument est le temps d'attente d'entrée. 0 est illimité
cv2.destroyAllWindows()
#ferme la fenêtre

Avertissement Si le chemin du fichier image est incorrect, aucune erreur ne sera renvoyée, mais imprimer img et la commande affichera Aucun. http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_gui/py_image_display/py_image_display.html#display-image


Approfondissez votre compréhension des images

Lorsque vous essayez de comprendre une image avec OpenCV, vous ne pouvez pas écrire un programme sans comprendre comment l'image est comprise par OpenCV.

Comment lire les données d'image

img.png

L'image est un tableau tridimensionnel de formes (hauteur, largeur, canaux) https://teratail.com/questions/249839


Comment exprimer la couleur

Ici, nous allons introduire deux types, RVB et HSV.

  • RVB (* Notez que dans OpenCV, l'ordre est BGR)

RVB est couramment utilisé pour représenter le mélange additif. RVB est un acronyme pour le rouge, le vert et le bleu, respectivement. Ce sont les trois couleurs primaires de la lumière et deviennent plus blanches à mesure que la valeur augmente. Au contraire, il devient noir lorsque le nombre est réduit. C'est ce RVB qui est également utilisé dans les moniteurs d'ordinateurs. RGB.png

Remarque: lorsque le canal alpha est lu, il est traité comme un vecteur à quatre dimensions comme BGRA.

  • HSV

HSV est utilisé pour dessiner des images sur un ordinateur et comme échantillon de couleur. En effet, lorsque l'on considère les couleurs en termes de teinte (teinte) et de saturation, elles sont plus naturelles et intuitives que le mélange additif ou soustractif. Le HSV contient la teinte, la saturation et la valeur. Aussi appelé HSB (teinte, saturation, luminosité). HSV.jpg https://ja.wikipedia.org/wiki/%E8%89%B2%E7%A9%BA%E9%96%93

En utilisant correctement ces RVB et HSV, nous essaierons d'obtenir les informations nécessaires à partir des données d'image.


Comment accéder et modifier les valeurs de pixel

python


import cv2
import numpy as np
img= cv2.imread('RGB.png')
px = img[100,100]
#100,Données à 100 pixels (BGR)
print (px)

blue =img[100,100,0]
#100,0 canal à 100 pixels(B)données de
print (blue)

#Il est également possible de modifier la valeur du pixel en utilisant ce
img[100,100] = [255,255,255]

La valeur de pixel de l'image BGR est un tableau de valeurs de composante de couleur bleue, verte et rouge, et la valeur de pixel de l'image en échelle de gris renvoie la valeur de luminosité.


Il sera mis à jour

Recommended Posts

Construction et bases de l'environnement de reconnaissance d'image
Principes de base de la reconnaissance d'image CNN 1
Construction d'environnement Python et TensorFlow
Construction de l'environnement de NumPy et matplotlib
Construction d'environnement de python et opencv
Reconnaissance d'image
Créer un environnement avec pyenv et pyenv-virtualenv
Python: principes de base de la reconnaissance d'image à l'aide de CNN
Créer un environnement pour Python et l'apprentissage automatique (macOS)
Construction de l'environnement Django
Construction de l'environnement DeepIE3D
Construction d'environnement basée sur Emacs
Construction de l'environnement Linux
Construction d'environnement (python)
construction d'environnement django
Construction de l'environnement CodeIgniter
construction d'environnement python
Python - Construction de l'environnement
Construction de l'environnement Python
Construction de l'environnement Golang
Construction de l'environnement de word2vec
Construction de l'environnement Python3 TensorFlow (Mac et pyenv virtualenv)
Construction de l'environnement MacOS 10.11: Powerline avec Anaconda et Dein.vim
Installation de Python 3 et Flask [Résumé de la construction de l'environnement]
Construction d'un environnement d'oreiller - Pour Docker + iPython (et OpenCV)
[Django3] Construction de l'environnement et résumé de divers paramètres [Python3]
Construction de l'environnement: GCP + Docker
Construction de l'environnement du projet Django
Reconnaissance d'image avec keras
Mémo de construction de l'environnement ConoHa
construction d'environnement python homebrew
Construction d'environnements liés à PyData
Construction de l'environnement Anaconda-4.2.0-python3 (Mac)
Construction de l'environnement de développement Python
Construction de l'environnement YOLO v4 ①
Tutoriel Pepper (7): Reconnaissance d'image
construction de l'environnement pyenv + fish
Principes de base et mise en œuvre de Perceptron
Construction de l'environnement de développement python2.7
Mémo de construction de l'environnement BigGorilla
construction de l'environnement de préhension onCentOS6.5
Mémo de construction de l'environnement Anaconda
Construction de l'environnement Golang [goenv]
Construction de l'environnement Pyxel (Mac)
Construction de l'environnement Python @ Win7
Raspberry Pi + python + appareil IoT, procédure de construction d'environnement pour démarrer le traitement d'image et l'apprentissage automatique
Détermination des maladies des arbres par reconnaissance d'image à l'aide de CNTK et SVM
Construction de l'environnement, confirmation simple et test de compétence pour chaque langue
Créez un environnement GPU avec GCP et l'image officielle de Kaggle (docker)
Détection d'image de visage similaire utilisant la reconnaissance faciale et le clustering PCA et K-means
[Ubuntu 18.04] Construction de l'environnement Tensorflow 2.0.0-GPU
Construction de l'environnement PyTorch C ++ (LibTorch)
Construction de l'environnement Anaconda sur CentOS7
Mémo de construction de l'environnement de développement Django
Reconnaissance d'image par apprentissage profond 1 théorie
Première construction de l'environnement LAMP (Linux)
Construction de l'environnement Python (Windows10 + Emacs)