[PYTHON] Essayez OpenCV avec Google Colaboratory

Vous pouvez effectuer les opérations suivantes sans installation

Image d'entrée (image originale)

L'image de sortie (image après conversion) et la position du visage du chat sont reconnues, et un cercle y est ajouté.

Vous aurez besoin d'un compte Google car vous utiliserez Google Colaboratory.

1. Connectez-vous à Google Colaboratory

Recherchez «Google Drive» et connectez-vous avec votre compte Google.

Sélectionnez «Nouveau», «Autre» et «Ajouter une application».

Sélectionnez Colaboratoire.

Cliquez sur Continuer pour installer Colaboratory.

Après l'installation, vous pouvez sélectionner «Google Colaboratory» dans «Nouveau» et «Autre».

Si vous sélectionnez «Google Colaboratory», un nouveau fichier sera créé et Colaboratory démarrera.

À partir de ce moment, tout, sauf la préparation des fichiers nécessaires, sera effectué au sein du Colaboratoire.

2. OpenCV, chargement de la bibliothèque de dessins (matplotlib)

Tapez ce qui suit dans la première cellule du laboratoire et appuyez sur Maj + Entrée. C'est OK si la version OpenCV (4.1.2 à partir du 17.08.2020) est affichée.

%matplotlib inline #Sortie matplotlib en ligne(Pas un pop-up)À.
import cv2 #Charger opencv
import matplotlib.pyplot as plt #Chargez matplotlib et utilisez pyplot avec le nom plt.
print(cv2.__version__) #Affichez la version d'opencv et vérifiez le chargement.
#production
# 4.1.2

3. Préparez les fichiers nécessaires

Téléchargez les données apprises depuis https://github.com/opencv/opencv/tree/master/data/haarcascades ..

Pour l'instant, cliquez sur le fichier haarcascade_frontalcatface.xml pour reconnaître le visage du chat.

Cliquez avec le bouton droit sur Raw pour enregistrer le fichier.

4. Téléchargez le fichier dans Colaboratory

Écrivez le code suivant dans la deuxième cellule et appuyez sur Maj + Entrée.

from google.colab import files #Utilisez les opérations sur les fichiers de la bibliothèque collaborative.
f = files.upload() #Téléchargez le fichier.

Appuyez sur "Sélectionner un fichier" pour télécharger le fichier.

Le fichier télécharge les deux suivants.

  1. Fichier image que vous souhaitez convertir
  2. haarcascade_frontalcatface.xml (Préparez les fichiers nécessaires, téléchargés en)

Écrivez le code suivant dans la cellule suivante, appuyez sur Maj + Entrée et exécutez-le, et vérifiez que le nom du fichier téléchargé est sorti (dans cet exemple, le nom de fichier de l'image que vous souhaitez convertir est "IMG_20200808_181512". .jpg ").

!ls #Exécutez la commande système ls pour vérifier si le fichier est téléchargé.
#production
# haarcascade_frontalcatface.xml	IMG_20200808_181512.jpg  sample_data

5. Chargez l'image avec OpenCV

Écrivez le code suivant dans une nouvelle cellule et appuyez sur Maj + Entrée pour l'exécuter.

#nom de fichier(IMG_20200808_181512.jpg)Veuillez changer le nom de fichier de l'image que vous avez téléversée.
img = cv2.imread("./IMG_20200808_181512.jpg ") #Chargement des images
show_img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #Créez une image avec le format BGR converti au format RVB pour l'affichage.
plt.imshow(show_img) # matplot.Affichez l'image lue à l'aide de lib.

C'est OK si l'image téléchargée est affichée comme indiqué ci-dessous.

6. Reconnaissez le visage et tracez un cercle et une flèche à la position du visage

Écrivez le code suivant dans une nouvelle cellule et appuyez sur Maj + Entrée pour l'exécuter. Pour plus de détails sur cv2.circle et cv2.putText, voir [Fonction de dessin OpenCV](http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_gui/py_drawing_functions/ Veuillez vous référer à py_drawing_functions.html) etc.

#Générer un modèle à partir d'un fichier entraîné
face_cascade = cv2.CascadeClassifier('./haarcascade_frontalcatface.xml')
#Générer une image grise
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

#Reconnaissance de visage
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

#Boucle avec résultat de reconnaissance x,y:Rectangle supérieur gauche du visage, w,h:Largeur et hauteur du rectangle de visage
for (x,y,w,h) in faces:
  #Tracez un cercle à la position du visage
  img = cv2.circle(img,(x+int(w/2),y+int(h/2)),int(max(w/2,h/2)),(0,0,255),12)
  #Dessinez une flèche avec des lettres
  cv2.putText(img,"<---",(x+w,y+int(h/2)),cv2.FONT_HERSHEY_SIMPLEX,8,(0,0,255),32,cv2.LINE_AA)

#Convertir en RVB pour le dessin
show_img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#Dessiner le résultat
plt.imshow(show_img)

Si le visage du chat est entouré et a une flèche comme indiqué ci-dessous, cela réussit. Cependant, il y a des moments où le visage ne peut pas être reconnu. Par exemple, sur cette image, le chat à trois poils nous fait face derrière, mais le visage n'est pas reconnaissable.

7. Autre

Veuillez vous référer à des sites tels que Tutoriel OpenCV-Python.

Recommended Posts

Essayez OpenCV avec Google Colaboratory
Détection des fonctionnalités OpenCV avec Google Colaboratory
Essayez la détection des bords avec OpenCV
Essayez Google Mock avec C
Essayez StyleGAN avec Google Colaboratory
Étudiez Python avec Google Colaboratory
Collaboratoire Google
Essayez la reconnaissance faciale avec python + OpenCV
Essayez d'implémenter la régression linéaire à l'aide de Pytorch avec Google Colaboratory
Essayez d'utiliser l'appareil photo avec OpenCV de Python
Essayez d'utiliser Python avec Google Cloud Functions
Comment rechercher Google Drive dans Google Colaboratory
Créez un classificateur en cascade avec Google Colaboratory
Utilisation du noyau Jupyter de Java avec Google Colaboratory
Utilisez TPU et Keras avec Google Colaboratory
Essayez d'exécuter Google Chrome avec Python et Selenium
Essayez de convertir des vidéos en temps réel avec OpenCV
Cheet sheet lors du scraping avec Google Colaboratory (Colab)
Essayez de détecter les poissons avec python + OpenCV2.4 (inachevé)
Authentifier Google avec Django
Résumé de la configuration de Google Colaboratory
Essayez de gratter avec Python.
Détecter le retour du chat avec OpenCV
Binarisation avec OpenCV / Python
Essayez SNN avec BindsNET
Faire pivoter les sprites avec OpenCV
Augmentation des données avec openCV
Essayez la régression avec TensorFlow
TopView facile avec OpenCV
Trébucher avec opencv3 de homebrew
Essayez de projeter la conversion d'image en utilisant OpenCV avec Python
Comment charger des fichiers dans Google Drive avec Google Colaboratory
Séparation de source sonore monocanal de bout en bout avec Google Colaboratory
Comment analyser avec Google Colaboratory à l'aide de l'API Kaggle
Apprenez facilement 100 traitements linguistiques Knock 2020 avec "Google Colaboratory"
Créer un environnement pour utiliser CaboCha avec Google Colaboratory
Essayez de défier le sol par récursif
Essayez l'optimisation des fonctions avec Optuna
Essayez de convertir des vidéos de caméra Web / caméra vidéo en temps réel avec OpenCV
Essayez l'apprentissage en profondeur avec TensorFlow
Essayez d'utiliser PythonTex avec Texpad.
Tester les logiciels embarqués avec Google Test
"Traitement Apple" avec OpenCV3 + Python3
Extraits de code souvent utilisés lors du traitement de vidéos avec Google Colaboratory
Essayez d'implémenter RBM avec chainer.
Utilisez music21 sur Google Colaboratory
Édition d'image avec python OpenCV
Essayez d'utiliser matplotlib avec PyCharm
Essayez de programmer avec un shell!
Capture de caméra avec Python + OpenCV
Essayez la programmation GUI avec Hy
Essayez Auto Encoder avec Pytorch
Essayez l'opération matricielle avec NumPy
Essayez d'utiliser OpenCV sur Windows
Essayez d'implémenter XOR avec PyTorch
Essayez d'exécuter CNN avec ChainerRL
À propos de l'apprentissage avec Google Colab
Essayez le Deep Learning avec FPGA
Binariser les données photo avec OpenCV