[PYTHON] J'ai essayé de détecter un objet avec M2Det!

Choses à faire

Aperçu

  1. Préparation de l'environnement d'exécution (exécuté par Google Colaboratory)
  2. Téléchargez le modèle sur Google Drive
  3. Copier le fichier image
  4. Exécutez le modèle
  5. Afficher les résultats

Environnement d'exécution

1. Préparation de l'environnement d'exécution (exécuté par Google Colaboratory)

--Ouvrez Google Colaboratory et passez de "Modifier le type d'exécution" à "GPU" dans l'onglet "Runtime". スクリーンショット 2019-12-15 18.54.06.png

――Après cela, procédez comme suit --Installez divers packages --Cloner le référentiel --Exécuter la coquille

Préparation de l'environnement d'exécution


!pip install torch torchvision
!pip install opencv-python tqdm addict
!git clone https://github.com/qijiezhao/M2Det.git
%cd M2Det/
!sh make.sh

2. Téléchargez le modèle sur Google Drive

-La destination du lien du modèle entraîné est décrite dans le README de GitHub (https://drive.google.com/file/d/1NM1UDdZnwHwiNDxhcP-nndaWj24m- 90L / vue), je vais donc le télécharger sur le code de ce lien Google Drive

python


import requests

def download_file_from_google_drive(id, destination):
    URL = "https://docs.google.com/uc?export=download"

    session = requests.Session()

    response = session.get(URL, params = { 'id' : id }, stream = True)
    token = get_confirm_token(response)

    if token:
        params = { 'id' : id, 'confirm' : token }
        response = session.get(URL, params = params, stream = True)

    save_response_content(response, destination)    

def get_confirm_token(response):
    for key, value in response.cookies.items():
        if key.startswith('download_warning'):
            return value

    return None

def save_response_content(response, destination):
    CHUNK_SIZE = 32768

    with open(destination, "wb") as f:
        for chunk in response.iter_content(CHUNK_SIZE):
            if chunk: # filter out keep-alive new chunks
                f.write(chunk)

file_id = '1NM1UDdZnwHwiNDxhcP-nndaWj24m-90L'
destination = './m2det512_vgg.pth'
download_file_from_google_drive(file_id, destination)

3. Copier le fichier image

Monture Google Drive


from google.colab import drive
drive.mount('/content/drive')

Copie du fichier image


!cp /content/drive/My\ Drive/ML/work/*.jpg ./imgs

4. Exécutez le modèle

--Exécuter le modèle

Exécution du modèle


!python demo.py -c=configs/m2det512_vgg.py -m=m2det512_vgg.pth

5. Afficher les résultats

--Afficher le résultat de l'exécution

python


import cv2
import matplotlib.pyplot as plt

plt.figure(figsize=(5, 5), dpi=200)
img = cv2.imread('imgs/herd_of_horses_m2det.jpg')
show_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(show_img)

ダウンロード1.png

ダウンロード2.png

ダウンロード3.png

ダウンロード4.png

Code source

https://github.com/hiraku00/m2det_test

référence

Recommended Posts

J'ai essayé de détecter un objet avec M2Det!
J'ai essayé de détecter rapidement un mouvement avec OpenCV
J'ai essayé d'implémenter le perceptron artificiel avec python
J'ai essayé de créer une application OCR avec PySimpleGUI
J'ai essayé de trouver la classe alternative avec tensorflow
J'ai essayé de créer un article dans Wiki.js avec SQL Alchemy
Je veux détecter des objets avec OpenCV
J'ai essayé d'envoyer un SMS avec Twilio
J'ai essayé d'implémenter Autoencoder avec TensorFlow
J'ai essayé de visualiser AutoEncoder avec TensorFlow
J'ai essayé d'implémenter CVAE avec PyTorch
J'ai essayé de résoudre TSP avec QAOA
J'ai essayé de détecter facilement les points de repère du visage avec python et dlib
J'ai essayé de créer une fonction de similitude d'image avec Python + OpenCV
J'ai essayé de prédire l'année prochaine avec l'IA
J'ai essayé d'implémenter la lecture de Dataset avec PyTorch
J'ai essayé d'utiliser lightGBM, xg boost avec Boruta
J'ai essayé d'apprendre le fonctionnement logique avec TF Learn
J'ai essayé de déplacer GAN (mnist) avec keras
J'ai essayé d'obtenir une image en grattant
Je veux être OREMO avec setParam!
J'ai essayé d'obtenir des données CloudWatch avec Python
J'ai essayé de sortir LLVM IR avec Python
J'ai essayé de visualiser la reconnaissance générale d'objets de Google NN, Inception-v3 avec Tensorboard
J'ai essayé de déboguer.
J'ai essayé d'automatiser la fabrication des sushis avec python
J'ai essayé de prédire la survie du Titanic avec PyCaret
J'ai essayé d'utiliser Linux avec Discord Bot
J'ai essayé d'envoyer un email avec SendGrid + Python
J'ai essayé d'étudier DP avec séquence de Fibonacci
J'ai essayé de démarrer Jupyter avec toutes les lumières d'Amazon
J'ai essayé de juger Tundele avec Naive Bays
J'ai essayé de créer un environnement Ubuntu 20.04 LTS + ROS2 avec Raspberry Pi 4
J'ai essayé d'extraire le dessin au trait de l'image avec Deep Learning
Essayez de détecter un objet avec RaspberryPi ~ Partie 1: Comparaison de la vitesse de détection ~
J'ai essayé de créer un environnement à vérifier régulièrement en utilisant Selenium avec AWS Fargate
J'ai essayé d'entraîner la fonction péché avec chainer
Je veux convertir une image en WebP avec sucette
J'ai essayé de déplacer l'apprentissage automatique (détection d'objet) avec TouchDesigner
Je souhaite détecter une connexion non autorisée à Facebook avec Jubatus (1)
J'ai essayé d'extraire des fonctionnalités avec SIFT d'OpenCV
J'ai essayé de déplacer Faster R-CNN rapidement avec pytorch
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2 2
J'ai essayé de détecter l'iris à partir de l'image de la caméra
J'ai essayé d'implémenter et d'apprendre DCGAN avec PyTorch
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé de démarrer avec le script python de blender_Part 01
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé Smith en standardisant une matrice entière avec Numpy
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2
J'ai essayé de démarrer avec le script python de blender_Partie 02
J'ai essayé de générer ObjectId (clé primaire) avec pymongo
J'ai essayé de créer un pipeline ML avec Cloud Composer
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
J'ai essayé de devenir un Ann Man en utilisant OpenCV