J'étudiais la reconnaissance faciale pour faire diverses choses avec l'apprentissage automatique, mais je l'ai fait sans prendre de pause. Si vous incluez une image d'une personne, il jugera s'il s'agit d'une animation ou d'une photo. Comme il est basé sur le visage, il peut être considéré comme une photo si vous incluez une image réaliste. Je pense qu'il peut être utilisé par le PC pour déterminer s'il est vraiment proche de la réalité grâce à une image réaliste dans un style d'action réelle.
python3.○ OpenCV pour la version python Classificateur en cascade pour l'animation photographique (décrit plus loin)
C'est une chose simple, alors codons-le dès que vous obtenez ce dont vous avez besoin.
(Dossier) img-Stockage d'images
(Dossier) haarcascade-Stockage du classificateur en cascade
(Fichier) auto_anime_classifier.py
Veuillez placer les éléments ci-dessus dans le même répertoire Les fichiers à mettre dans le dossier haarcascade cette fois
Code source
auto_anime_classifier.py
import cv2
import numpy as np
if __name__ == '__main__':
CASCADE_PATH = 'haarcascade/'
face_count = []
print('Plz input filename')
img_name = input('>> ')
img = cv2.imread('img/'+str(img_name), cv2.IMREAD_COLOR)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
photo = cv2.CascadeClassifier(CASCADE_PATH + 'haarcascade_frontalface_alt.xml')
anime = cv2.CascadeClassifier(CASCADE_PATH + 'lbpcascade_animeface.xml')
face_count.append(len(photo.detectMultiScale(gray, 1.1, 3)))
face_count.append(len(anime.detectMultiScale(gray, 1.1, 3)))
if face_count[0] > face_count[1]:
print('Maybe photo.')
elif face_count[1] > face_count[0]:
print('Maybe anime.')
elif face_count[0] >= 1 and face_count[1] >= 1:
print('Both attributes.')
elif face_count[0] == 0 and face_count[1] == 0:
print('Undeciable.')
J'omettrai la plupart d'OpenCV car il y a beaucoup de blogs de commentaires avec un contenu merveilleux. Entrez l'image dans le dossier img et lisez-la avec imread (). Après cela, il est grisé.
print('Plz input filename')
img_name = input('>> ')
img = cv2.imread('img/'+str(img_name), cv2.IMREAD_COLOR)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
Créez un classificateur qui lit les fichiers de classification en cascade pour chaque photo et animation.
photo = cv2.CascadeClassifier(CASCADE_PATH + 'haarcascade_frontalface_alt.xml')
anime = cv2.CascadeClassifier(CASCADE_PATH + 'lbpcascade_animeface.xml')
Stockez le nombre lu par chaque classificateur dans face_count. La présence ou l'absence de ceci est le critère.
face_count.append(len(photo.detectMultiScale(gray, 1.1, 3)))
face_count.append(len(anime.detectMultiScale(gray, 1.1, 3)))
Enfin, la partie jugement. Comparez s'il est simplement reconnu ou non.
if face_count[0] > face_count[1]:
print('Maybe photo.')
elif face_count[1] > face_count[0]:
print('Maybe anime.')
elif face_count[0] >= 1 and face_count[1] >= 1:
print('Both attributes.')
elif face_count[0] == 0 and face_count[1] == 0:
print('Undeciable.')
Proximité de la réalité Peut-être photo (probablement une photo en direct) → Les deux attributs (l'un ou l'autre fonctionne) → Peut-être un anime (probablement une photo) → Indécisable (je ne sais pas, hors de question)
Jouons modérément l'explication.
Ce sont les Beatles. C'est cool ~
Plz input filename
>> beatles.jpeg
Maybe photo.
Cela ressemble à une photo. C'est vrai.
Le personnage principal de NEW GAME. mignon ~
Plz input filename
>> aoba.jpeg
Maybe anime.
Cela semble être une animation. Eh bien, vous pouvez le voir si vous le regardez.
Ce n'était pas intéressant de le faire normalement, alors mettons dans une vidéo que vous ne savez pas laquelle le programme montre.
Il s'agit de M. Layer SeeU de Chine. L'image est tirée de son compte Twitter.
Plz input filename
>> seeu.png
Maybe anime.
Cela semble être un anime. D'un point de vue humain, cela ne ressemble pas à une image. Le traitement d'image signifie-t-il quelque chose?
C'est un personnage créé par MMORPG appelé Black Desert. Un type de jeu qui prend des heures à se caractériser.
Plz input filename
>> kuroisabaku.png
Both attributes.
Il semble que vous pouvez aller dans les deux sens. À part les grands yeux noirs et le petit nez, je ne pense pas que cela ressemble à une image.
C'est un personnage masculin créé dans un jeu appelé Honey Select. Vous pouvez créer des personnages illusoires sans aucune gêne, même pour des personnages autres que des jeunes.
Plz input filename
>> honey.png
Maybe photo.
Cela semble être une photographie. Je me demande si la forme du nez est un tournant important. À propos, le personnage masculin réalisé avec PSO2 a été traité comme une image.
Poupée de l'industrie orientale. C'est très réaliste.
Plz input filename
>> orient.jpg
Both attributes.
Il y avait un élément d'anime. Je me demande pourquoi ...
Cette fois, le programme consistait à déterminer si chaque juge pouvait reconnaître le visage. S'il devait être amélioré, j'ai senti qu'il était nécessaire de sortir des éléments de jugement détaillés de chaque appareil de jugement et de créer des paramètres sous forme de valeurs numériques. Vous devez étudier la cascade. Cela fait longtemps, mais merci d'avoir regardé jusqu'à présent! !!
Recommended Posts