TP-LinkのVIGI C540SのRTSP映像をPythonで取得するして骨格推定する方法 1/2

監視カメラの映像からPythonパッケージのMediaPipeのPoseを使って骨格推定をしたいと考えています。

まずは、監視カメラの動画ストリーミングをRTSPでPythonに取り込み表示する方法をご紹介します。

使用環境はWin11です。

Python 3.10のインストール

現時点(2025年1月)では新しいPythonのバージョンではMediaPipeが動かないのでPython3.10環境を作ります。

下記のURLからPython3.10をダウンロードします。

 https://www.python.org/downloads/windows/

Windows用のインストーラーをDownloadするのがよいです。

VS Build Tools

VS BuildingToolsのインストール

 https://visualstudio.microsoft.com/ja/vs/community/

VS Studio Communityをインストール。

その際に、C関係の機能をインストールします。

これで、python関連のライブラリがインストールできます。

venvを使ってPython 3.10環境の構築

仮想環境を有効化

venv\Scripts\activate

pipをアップグレード

python.exe -m pip install –upgrade pip

ライブラリをインストール

pip install opencv-python mediapipe numpy matplotlib

これで準備完了です。

RTSPをPythonで表示

import cv2

# RTSPストリームのURL
 rtsp://username:password@ip_address:port/stream


# RTSPストリームのキャプチャ
cap = cv2.VideoCapture(rtsp_url)

if not cap.isOpened():
    print("Error: Could not open RTSP stream.")
    exit()

while True:
    ret, frame = cap.read()
    if not ret:
        print("Error: Failed to read frame from RTSP stream.")
        break

    cv2.imshow('RTSP Stream', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

これを実行することで、

このようにPythonでTP-LinkのVIGI C540SのRTSP映像を表示することができました。

あとは、Python側でMediapipeの骨格推定をつかうことで、やりたいことができるようになります。

続きはこちら

TP-LinkのVIGI C540SのRTSP映像をPythonで取得するして骨格推定する方法 2/2