[PYTHON] J'ai créé une caméra réseau simple en combinant ESP32-CAM et RTSP.

J'ai créé une caméra réseau simple en utilisant ESP32-CAM et RTSP.

Raisons d'utiliser RTSP

ESP32-CAM peut être développé en utilisant l'IDE Arduino ainsi que l'ESP32. Un sket appelé "Camera Server" est préparé comme exemple, et vous pouvez facilement l'utiliser comme caméra réseau en l'écrivant sur ESP32-CAM.

Après l'écriture, vous pouvez regarder la vidéo en accédant à l'adresse IP attribuée à ESP32-CAM à partir d'un navigateur. De plus, le réglage de la qualité de l'image et la détection des visages peuvent être effectués à partir du navigateur, ce qui est suffisant pour une simple caméra réseau.

Cette fois, j'ai créé une caméra réseau en utilisant RTSP sans l'utiliser. La principale raison en était que mon objectif était de «rendre la vidéo disponible / disponible dans les programmes Python».

Précautions lors de l'utilisation de l'ESP32-CAM

ESP32-CAM a des fonctions WiFi et Bluetooth. Pour utiliser cette fonction au Japon, il est nécessaire d'obtenir la «conformité technique» auprès du ministère des Affaires intérieures et des Communications. L'utilisation de produits non techniques peut être soumise à des pénalités.

Voir ici pour plus de détails [wikipedia: Marque d'aptitude technique](https://ja.wikipedia.org/wiki/%E6%8A%80%E9%81%A9%E3%83%9E%E3%83%BC%E3%82%AF #% E6% A6% 82% E8% A6% 81) Système de certification standard sans fil À propos du système de certification standard pour les terminaux

Depuis le 20 novembre 2019, un système a démarré qui vous permet d'utiliser des équipements qui n'ont pas acquis l'aptitude technique pour les expériences. Système spécial pour les expériences utilisant des équipements qui n'ont pas acquis les qualités techniques

Dans le cadre de ce système, vous pourrez utiliser l'aptitude technique non acquise à des fins expérimentales en soumettant une notification prescrite. Cependant, il existe certaines restrictions telles que la période, les normes radio disponibles et la bande de fréquences.

Cette fois, j'ai fait cette notification et j'utilise ESP32-CAM.

Croquis ESP32-CAM

Lors de l'utilisation de RTSP avec ESP32-CAM cette fois, je me suis référé au référentiel suivant Micro-RTSP

Modifications par rapport à l'esquisse d'origine

L'esquisse originale utilisait ESP32-CAM en mode SoftAP (mode point d'accès). Je l'ai changé et défini une adresse IP fixe.

wsp32-cam.ino



WiFi.config(ip, gatway, subnet);
while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    WiFi.begin(ssid, password);

    delay(10000);
  }

De plus, dans l'esquisse originale, WebServer a été défini en plus de RTSP, mais il a été supprimé pour simplifier l'esquisse.

Traitement côté Python

En Python, la vidéo d'ESP32-CAM est reçue et affichée par OpenCV.

view.py


esp_ip = ''
esp32cam_camera = cv2.VideoCapture(f"rtsp://{esp_ip}:8554/mjpeg/1")

Puisqu'il peut être traité simplement comme des données d'image du côté Python, il peut être utilisé de différentes manières telles que la reconnaissance faciale et la reconnaissance d'objets.

La source créée est téléchargée sur git. ESP32CAM_RTSP

Recommended Posts

J'ai créé une caméra réseau simple en combinant ESP32-CAM et RTSP.
J'ai fait un circuit simple avec Python (AND, OR, NOR, etc.)
J'ai fait un simple blackjack avec Python
J'ai créé un réseau pour convertir des images noir et blanc en images couleur (pix2pix)
J'ai fait un simple portefeuille de Bitcoin avec pycoin
Créer une mise en page en combinant Dash et Bootstrap
J'ai fait un simple lecteur RSS ~ Edition C ~
〇✕ J'ai fait un jeu
J'ai essayé de faire LINE BOT avec Python et Heroku
J'ai fait un jeu de frappe simple avec tkinter de Python
J'ai essayé de faire un classement en grattant l'équipe des membres de l'organisation
Un simple lecteur de musique interactif fait avec Chuck et OpenPose
J'ai créé une application de livre simple avec python + Flask ~ Introduction ~
J'ai fait une caméra de surveillance avec Raspberry PI pour la première fois.
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python
J'ai fait un générateur de réseau neuronal qui fonctionne sur FPGA
J'ai fait un texte Python
J'ai fait un robot discord
J'ai essayé de créer un pointage de crédit simple avec régression logistique.
J'ai créé un jeu appelé Battle Ship en utilisant pygame et tkinter
J'ai créé un formulaire de tweet Nyanko avec Python, Flask et Heroku
Fonctionnement simple du réseau en reliant Cisco DNA Center et le commutateur tactile
J'ai créé un robot Twitter qui marmonne le Pokémon capturé par #PokemonGO
J'ai fait apprendre à RNN l'onde de péché et j'ai essayé de prédire: l'ajustement des paramètres hyper
[Python] J'ai créé une visionneuse d'images avec une fonction de tri simple.
J'ai créé un bot de lecture de chat Discord en imitant l'apparence
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python (2) ~ Server ~
J'ai créé un chat chat bot avec Tensor2Tensor et cette fois cela a fonctionné
J'ai créé un site d'apprentissage C ++
J'ai fait un Line-bot avec Python!
J'ai créé un script de traduction basé sur CUI (2)
J'ai fait un wikipedia gacha bot
J'ai fait une loterie avec Python.
J'ai créé un script de traduction basé sur CUI
J'ai essayé de mettre en œuvre un réseau de neurones à deux couches
Théorie et implémentation simples des réseaux neuronaux
J'ai créé un démon avec Python
J'ai fait une sorte d'outil de traitement d'image simple en langage Go.
J'ai créé un programme pour vous avertir par LINE lorsque les commutateurs arrivent
J'ai fait une simple minuterie qui peut être démarrée depuis le terminal
J'ai créé un programme pour saisir ce que j'ai mangé et afficher les calories et les sucres
Création d'un modèle de discrimination d'image (cifar10) à l'aide d'un réseau neuronal convolutif
Django super introduction par les débutants Python! Partie 5 J'ai créé une application de journal super simple avec une vue générale basée sur la classe