Skip to main content

MaskCam

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Maskcam - Jetson Nanoを基盤とした群衆のマスク着用状況監視

概要

COVID-19の影響により、多くの公共の場でマスク着用が求められることがよくあります。通常、エリアの入口では管理者が人々がマスクを着用しているかどうかを観察しています。これは人間にとって非常に簡単なタスクかもしれませんが、Jetson Nano、グラフィックスキャプチャ、AIを活用したエッジコンピューティングと組み合わせることで、非常に興味深く社会的価値のあるタスクになります。

MaskCamはBerkeley Design Technology, Inc. (BDTI)とTryolabs S.A.によって開発され、NVIDIAによる資金提供で開発されました。MaskCamはMITライセンスの下で提供されています。MaskCamに関する詳細情報は、BDTIのレポートをご覧ください。質問がある場合は、BDTIに[email protected]までメールしてください。

このプロジェクトでは、NVIDIA® Jetson Nano™ 4GB Developer Kitとその他のアクセサリを使用します。同時に、Seeedから提供されるNVIDIA公式キャリアボードと同じサイズと機能設計を持つA206 Carrier Boardを選択することもできます。このボードは優れた安定性と汎用性を備えています。

準備

ハードウェア要件

  • NVIDIA® Jetson Nano™ 4GB Developer Kit (JetPack 4.6)

  • A206 Carrier Board(オプション)

  • 7インチHDMIモニターとHDMIケーブル

  • USBドッキングステーション

  • マウスとキーボード

  • 5V 4A電源アダプター

  • USBカメラ

  • イーサネットケーブル

  • Windows11(またはWindows10/Ubuntu18.04/OSX Big Sur)を搭載したPC

ソフトウェア要件

  • docker

  • docker-compose

  • ビデオソフトウェア(RTSPストリームを表示するためのもの、例:VLC/QuickTime/PotPlayer)

開始方法

Jetson Nanoのセットアップ

  • ステップ1. Docker HubからMaskCamコンテナをダウンロード

sudo docker pull maskcam/maskcam-beta

  • ステップ2. コマンドifconfigを使用してJetson NanoのIPアドレスを確認

sudo ifconfig

  • ステップ3. Dockerを使用してMaskCamを起動

Jetson NanoをUSBカメラに接続し、以下のコマンドをターミナルに入力してください。

sudo docker run --runtime nvidia --privileged --rm -it --env MASKCAM_DEVICE_ADDRESS=<your-jetson-ip> -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta

注意: このコマンド内の<your-jetson-ip>を自分のJetson NanoのIPアドレスに置き換えてください。

デフォルトの入力デバイスを使用したくない場合は、以下の2つの異なるコマンドを選択して上記のコマンドを置き換えることができます。

/dev/video1カメラデバイスを使用する場合:

# /dev/video1カメラデバイスを使用
sudo docker run --runtime nvidia --privileged --rm -it --env MASKCAM_INPUT=v4l2:///dev/video1 --env MASKCAM_DEVICE_ADDRESS=<your-jetson-ip> -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta

CSIカメラデバイスを使用する場合:

# CSIカメラデバイスを使用
sudo docker run --runtime nvidia --privileged --rm -it --env MASKCAM_INPUT=v4l2://0 --env MASKCAM_DEVICE_ADDRESS=<your-jetson-ip> -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta
  • ステップ4. MASKCAM_DEVICE_ADDRESSを通じてライブビデオストリームを表示

Streaming at rtsp://aaa.bbb.ccc.ddd:8554/maskcam

注意: aaa.bbb.ccc.dddは、以前にMASKCAM_DEVICE_ADDRESSで指定したアドレスです。

このURLを別のコンピュータのRTSPストリームビューアにコピーして貼り付けることができます。ビデオストリームでは、マスクを着用していない場合、顔に赤い枠が表示されます。マスクを着用している場合は、緑の枠が表示されます。

MQTTサーバーのセットアップ

基本機能に加えて、このライブラリにはリモートサーバーの機能も含まれており、PCがデバイスから統計情報を受信し、それをデータベースに保存し、WebベースのGUIフロントエンドで表示することができます。

この記事では、すべてのサーバーに関するデモはWindows11システムホストを基盤としています。Linuxシステムを使用する手順については、この記事をご覧ください: Maskcam

  • ステップ1. PCにDockerとDocker-composeをインストール

公式ウェブサイトからDockerのインストールパッケージをダウンロードしてください: https://docs.docker.com/get-docker/

注意: インストール中にWLS 2 installization is incomplete.というメッセージが表示された場合は、プロンプトボックス内のリンクをクリックし、Linuxカーネル更新パッケージをダウンロードしてインストールしてください。その後、dockerを実行できます。

  • ステップ2. ビルドディレクトリを設定

管理者としてWindows PowerShellを実行

使用するドライブのルートに移動します。例:

cd e:\

MaskCamリポジトリをダウンロード:

Invoke-WebRequest https://github.com/bdtinc/maskcam/archive/refs/heads/main.zip -OutFile e:\maskcam.zip

e:\maskcamのパスに解凍:

Expand-Archive e:\maskcam.zip -DestinationPath e:\maskcam

MaskCamサーバーフォルダに移動します。このフォルダには、Mosquittoブローカー、バックエンドAPI、データベース、Streamlitフロントエンドの4つのコンテナがあります。

cd maskcam\maskcam-main\server

次に、デフォルトテンプレートをコピーして.envファイルを作成します:

cp database.env.template database.env
cp frontend.env.template frontend.env
cp backend.env.template backend.env

database.env を開きます:

notepad database.env

<DATABASE_USER>, <DATABASE_PASSWORD>, および <DATABASE_NAME> フィールドを自分の値に置き換えてください。

  • ステップ3. ローカルサーバーをビルドして実行する

データベース環境ファイルを編集した後、以下のコマンドを使用してすべてのコンテナをビルドし、実行する準備が整います:

sudo docker-compose up -d

次に、ウェブブラウザを開き、サーバーIPを入力してフロントエンドのウェブページにアクセスします:

http://<server IP>:8501/

注意: <server IP> を自分のIPアドレスに置き換えてください。

フロントエンドで ConnectionError が表示された場合は、数秒待ってページを再読み込みしてください。バックエンドコンテナがデータベースのセットアップを完了するのに時間がかかることがあります。

数秒待ってページを再読み込みしてもフロントエンドで ConnectionError が表示される場合は、ポート <5432> および <80> が占有されていないか、リッスンされていないかを確認してください。

初めてフロントエンドウェブページに正常にアクセスできたが、その後失敗した場合、現在の最善の解決策はDockerを再インストールすることです。

  • ステップ4. Jetson Nano をローカルサーバーに接続する

Jetson Nano のターミナルに戻り、以下のコマンドを使用して maskcam コンテナを実行します:

sudo docker run --runtime nvidia --privileged --rm -it --env MQTT_BROKER_IP=<server IP> --env MQTT_DEVICE_NAME=my-jetson-1 --env MASKCAM_DEVICE_ADDRESS=<your-jetson-ip> -p 1883:1883 -p 8080:8080 -p 8554:8554 maskcam/maskcam-beta

注意: <server IP> および <your-jetson-ip> を自分のサーバーおよび Jetson Nano のIPアドレスに置き換えてください。

その後、以下のようにウェブページ上でデバイスを選択できます:

最後に、Jetson Nano が収集したデータがサーバーに送信されるのを確認できます。

技術サポート & 製品ディスカッション

弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。お客様の好みやニーズに応じた複数のコミュニケーションチャネルをご用意しています。

Loading Comments...