[PYTHON] J'ai essayé de combiner Discord Bot et la reconnaissance faciale-pour LT-

introduction

Matériel pour présentation à LT

J'ai essayé de transformer la reconnaissance faciale (OpenCV) qui a été faite jusqu'à présent dans un bot

La description de l'article est la suivante

Pourquoi Discord?

** En quelque sorte! ** **

Jusqu'à présent, je l'ai déjà fait avec Slack Bot.

Mais je me demande si LINE Bot est aussi ...

C'est vrai, ** Discord peut créer des bots, non? ?? ?? ** **

J'ai recherché Discord Bot

Officiel (discord.py)

Ça a l'air amusant alors je l'ai fait ☆

Comment créer un bot Discord a été mis à jour l'autre jour. (C'est un peu difficile ...)

Module, structure de répertoires, etc.

module

Ce dont vous avez besoin est le suivant Installez ce dont vous avez besoin!

pip install discord       #Utilisé lorsque vous voulez faire diverses choses avec discorde
pip install opencv-python #Requis lors de l'utilisation des fonctions OpenCV (utilisé avec cv2 sur python)
pip install os            #Vous pouvez utiliser des fonctions qui dépendent du système d'exploitation
pip install requests      #Utilisé pour la communication HTTP
pip install shutil        #Manipulation de haut niveau des fichiers et des collections de fichiers

Structure du répertoire

La structure des répertoires est la suivante

-- dis_test
   -- cascade
      -- haarcascade_frontalface_alt.xml
   -- img
   -- dis.py

Les données d'apprentissage du visage se trouvent ici J'ai utilisé.

Discord Bot

programme

dis_bot.py


# coding:utf-8

import discord
import time
import requests
import shutil
import cv2
import os

# from scripts.photo_processing import PhotoProcessing

IMG_PATH = "./img/"
IMG_SIZE = (128, 128)

FACE_CASCADE_PATH = "./cascade/haarcascade_frontalface_alt.xml"
FACE_CASCADE = cv2.CascadeClassifier(FACE_CASCADE_PATH)
TOKEN = "TOKEN ID"
client = discord.Client()

now_time = time.time()
times = time.gmtime(now_time)

#traitement de démarrage du bot
@client.event
async def on_ready():
    channel = client.get_channel(Identifiant de la chaine)
    await channel.send("Salut! Comment vas-tu?")

#Lors de la réception d'un message
@client.event
async def on_message(message):
    #Ignorer si l'expéditeur est un bot
    if message.author.bot:
        return
    
    if message.content.startswith('trim') and len(message.attachments) != 0:
        channel_id = message.channel.id
        url = message.attachments[0].url
        file_name = url.rsplit("/", 1)[1]

        #Enregistrer l'image
        rst = requests.get(url, stream = True)

        open_file = open(IMG_PATH + file_name, "wb")
        shutil.copyfileobj(rst.raw, open_file)
        open_file.close()

        #Examen de l'image
        img_file = cv2.imread(IMG_PATH + file_name, cv2.IMREAD_COLOR)

        # processing
        gray_file = cv2.cvtColor(img_file, cv2.COLOR_BGR2GRAY)
        front_face_list = FACE_CASCADE.detectMultiScale(gray_file, minSize=(50, 50), minNeighbors=3)

        if len(front_face_list) > 0:
            # trimming
            for (x, y, width, height) in front_face_list:

                trim_file = img_file[y:y+height, x:x+width]
                trim_file = cv2.resize(trim_file, IMG_SIZE)

                cv2.imwrite("{0}trim_{1}".format(IMG_PATH, file_name), trim_file)

                await message.channel.send('', file=discord.File("{0}trim_{1}".format(IMG_PATH, file_name)))
        else:
            await message.channel.send("Le visage n'a pas été authentifié.")

        #Supprimer l'image
        os.remove(IMG_PATH + file_name)
        os.remove("{0}trim_{1}".format(IMG_PATH, file_name))

client.run(TOKEN)

Résultat de sortie Ligne de commande trim1.PNG

Il reconnaît correctement le visage et le coupe trim.PNG

Bien sûr, plusieurs personnes peuvent couper trim2.PNG

Il semble que l'image recadrée puisse être utilisée comme icône! (Je ne l'utilise pas) C'est tout pour Discord Bot x Face Recognition (˘ω˘)

Recommended Posts

J'ai essayé de combiner Discord Bot et la reconnaissance faciale-pour LT-
J'ai essayé d'utiliser Linux avec Discord Bot
J'ai implémenté DCGAN et essayé de générer des pommes
J'ai essayé de sauvegarder les données avec discorde
[Introduction au PID] J'ai essayé de contrôler et de jouer ♬
J'ai essayé de créer un BOT de traduction qui fonctionne avec Discord en utilisant googletrans
J'ai essayé de déboguer.
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2 2
J'ai essayé d'implémenter et d'apprendre DCGAN avec PyTorch
J'ai essayé d'ajouter un post-incrément à CPython. Présentation et résumé
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2
J'ai essayé d'ajouter des appels système et des planificateurs à Linux
J'ai essayé d'implémenter Grad-CAM avec keras et tensorflow
J'ai essayé d'installer scrapy sur Anaconda et je n'ai pas pu
J'ai essayé de prédire et de soumettre les survivants du Titanic avec Kaggle
J'ai essayé d'apprendre PredNet
J'ai essayé deux façons de combiner plusieurs commits avec Git
J'ai essayé d'organiser SVM.
J'ai essayé la reconnaissance faciale avec Face ++
J'ai essayé d'obtenir les informations du Web en utilisant "Requests" et "lxml"
J'ai essayé d'implémenter PCANet
J'ai essayé d'illustrer le temps et le temps du langage C
J'ai essayé d'afficher l'heure et la météo d'aujourd'hui w
[Introduction au modèle de maladie infectieuse] J'ai essayé de m'adapter et de jouer
J'ai essayé de réintroduire Linux
J'ai essayé de présenter Pylint
J'ai essayé d'énumérer les différences entre java et python
J'ai essayé de créer un bot pour annoncer un événement Wiire
J'ai essayé de résumer SparseMatrix
J'ai fait un robot discord
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
jupyter je l'ai touché
J'ai essayé d'implémenter StarGAN (1)
J'ai essayé de visualiser les signets volant vers Slack avec Doc2Vec et PCA
J'ai essayé de laisser Pepper parler des informations sur l'événement et des informations sur les membres
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
J'ai essayé de créer des taureaux et des vaches avec un programme shell
J'ai essayé de détecter facilement les points de repère du visage avec python et dlib
J'ai essayé d'extraire des noms de joueurs et de compétences d'articles sportifs
J'ai essayé d'implémenter Deep VQE
J'ai essayé de créer l'API Quip
J'ai essayé de toucher Python (installation)
J'ai essayé de mettre en place une validation contradictoire
J'ai essayé d'expliquer l'ensemble de données de Pytorch
J'ai essayé l'authentification vocale Watson (Speech to Text)
J'ai touché l'API de Tesla
J'ai essayé la détection de visage avec MTCNN
J'ai essayé de m'organiser à propos de MCMC.
J'ai essayé d'implémenter Realness GAN
J'ai essayé de déplacer le ballon
J'ai essayé la reconnaissance faciale avec OpenCV
J'ai essayé d'estimer la section.
J'ai essayé de résumer jusqu'à ce que je quitte la banque et devienne ingénieur
J'ai essayé de déplacer l'image vers le dossier spécifié en faisant un clic droit et un clic gauche
J'ai essayé de visualiser la tranche d'âge et la distribution des taux d'Atcoder
J'ai essayé de faire un diagnostic de visage AI pour les golfeuses professionnelles ①
J'ai essayé d'exprimer de la tristesse et de la joie face au problème du mariage stable.