Je veux créer un système pour éviter d'oublier de serrer la clé 1

Ceci est le premier post! Je suis un peu débutant, mais j'ai soudain pensé que j'aimerais créer un système de reconnaissance d'image qui me prévient d'oublier de resserrer la clé.

Je voudrais l'afficher comme mémorandum de mon travail.

Cible

On ne sait absolument pas si cela peut être fait, mais j'écrirai ce que je vise.

(Je rêve de la faire ressembler à une application si possible, mais je me demande si cela peut être fait ...)

Ce travail

Mes rêves grandissent, mais j'essaierai petit à petit de ce que je peux faire.

Donc, l'objectif de cette fois est le suivant.

** "Utilisez opencv pour convertir plusieurs photos de l'entrée de votre maison en données numériques" **

La route de Senri étant à un pas, j'aimerais bien l'essayer, mais seulement un peu.

Environnement d'exécution

Google Colab Notebook (Python)

Importer les bibliothèques requises

key.py


import cv2
import numpy as np
import matplotlib.pyplot as plt
import torch

Puisque je veux utiliser pytorch plus tard, je vais créer le type de données torch.tensor.

Convertir en données numériques avec opencv

Nous allons créer un ensemble de données.

key.py


def make_datasets(path,X_data,y_data):
  img = cv2.imread(path, cv2.IMREAD_UNCHANGED).astype("float32") / 255
  img = np.array([img])
  if len(X_data)==0:
    X_data = img.copy()
  else:
    X_data = np.concatenate((X_data,img),axis=0)
  y_data = np.append(y_data, int(path[0]))
  return X_data, y_data

Vous pouvez maintenant créer un ensemble de données en spécifiant simplement le chemin. L'étiquette de réponse correcte peut être obtenue en l'ajoutant au début du nom de chemin des données d'image.

key.py


X_data = np.array([])  #Pour les données d'image
y_data = np.array([])  #Pour une étiquette correcte#Fermé = 0 ouvert=1
path_names = ["0-1.jpg ", "1-1.jpg "]
for i in range(10):
  for path in path_names:
    X_data,y_data = make_datasets(path,X_data,y_data)
X_data,y_data = torch.tensor(X_data),torch.tensor(y_data)

Pour le moment, je l'ai essayé avec deux images. (~~ C'était difficile de prendre des photos de l'entrée plusieurs fois ~~) La raison pour laquelle j'ai bouclé 10 fois est que j'aimerais pouvoir augmenter les données d'entraînement en traitant les données (recadrage, etc.) après cela. Cela peut changer plus tard.

Assurez-vous que X_data a les dimensions attendues.

key.py


X_data.shape
## => torch.Size([20, 4032, 3024, 3])

La taille de l'image est trop grande pour l'apprentissage automatique, mais je devrais pouvoir le faire plus tard ...!

Quoi qu'il en soit, j'ai réussi à convertir les données photo en Tensol!

L'histoire après la prochaine fois

J'ai appris à publier Qiita et à écrire MarkDown, donc j'espère pouvoir continuer à poster à partir de la prochaine fois.

Enfin, le prochain objectif. ** "Allez au point où vous pouvez faire du machine learning avec l'ensemble de données créé" **

Excusez-moi de poster un débutant!

Recommended Posts

Je veux créer un système pour éviter d'oublier de serrer la clé 1
Je veux créer un Dockerfile pour le moment.
Je souhaite créer facilement un modèle de bruit
Je souhaite créer un type d'implémentation pouvant être branché
Je souhaite créer manuellement une légende avec matplotlib
[Python] J'ai créé un système pour introduire "la recette que je veux vraiment" depuis le site de recettes!
Je souhaite créer une base de données de déjeuners [EP1] Django pour la première fois
Je souhaite créer une base de données de déjeuner [EP1-4] Django pour la première fois
Je ne voulais pas écrire la clé AWS dans le programme
Je souhaite enregistrer l'heure d'exécution et conserver un journal.
Qiskit: Je veux créer un circuit qui crée des états arbitraires! !!
Je veux créer un fichier pip et le refléter dans le menu fixe
Je souhaite créer un service d'apprentissage automatique sans programmation! API Web
J'ai essayé de créer un linebot (implémentation)
Je veux épingler Spyder à la barre des tâches
Je veux sortir froidement sur la console
Je veux imprimer dans la notation d'inclusion
J'ai essayé de créer un linebot (préparation)
Je veux gérer la rime part1
Je veux gérer la rime part3
Je veux créer un histogramme et superposer la courbe de distribution normale dessus. édition matplotlib
Je veux afficher la barre de progression
Je veux gérer la rime part2
Je veux gérer la rime part5
Je veux gérer la rime part4
Je souhaite trier une liste dans l'ordre des autres listes
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
Je souhaite créer un service d'apprentissage automatique sans programmation!
Je veux faire de matplotlib un thème sombre
Je veux INSÉRER un DataFrame dans MSSQL
Si vous souhaitez créer Word Cloud.
Je veux gérer la rime part7 (BOW)
Je veux trouver facilement une délicieuse boutique
Je souhaite personnaliser l'apparence de zabbix
Je veux écrire dans un fichier avec Python
Créez une commande pour obtenir le journal de travail
Je souhaite utiliser la fonction d'activation Mish
Je veux afficher la progression en Python!
Je souhaite télécharger une application Django sur heroku
[LINE Messaging API] Je souhaite envoyer un message du programme à tout le monde LINE
Je veux créer un bel environnement de développement Python pour mon nouveau Mac
L'histoire de l'adresse IPv6 que je souhaite conserver au minimum
Je souhaite créer une file d'attente prioritaire pouvant être mise à jour avec Python (2.7)
Je veux créer un lecteur de musique et enregistrer de la musique en même temps
Je veux ajouter du silence pendant 1 seconde au début d'un fichier wav
Je souhaite voir une liste de fichiers WebDAV dans le module Requêtes
Je souhaite créer une application WEB en utilisant les données de League of Legends ①
J'ai essayé de créer un modèle avec l'exemple d'Amazon SageMaker Autopilot
Je souhaite créer une API qui retourne un modèle avec une relation récursive dans Django REST Framework
Je veux voir le nom de fichier de DataLoader
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Je veux répéter plusieurs fois un générateur Python
Créer une fonction pour visualiser / évaluer le résultat du clustering
Je veux que DQN Puniki frappe un home run
100 coups sur le traitement d'image !! (021-030) Je veux faire une pause ...
Je veux donner un group_id à une trame de données pandas
Je veux générer rapidement UUID (memo memo) ~ Edition Python ~
Je veux faire la transition avec un bouton sur le ballon
Je veux grep le résultat de l'exécution de strace