Maskcam - Jetson Nanoベースの群衆マスク着用監視システム
はじめに
COVID-19の猛威により、多くの公共の場所でマスクの着用が求められています。通常、エリアの入り口には管理者がいて、人々がマスクを着用しているかどうかを観察しています。これは人間にとっては非常に簡単なタスクかもしれませんが、Jetson Nano、グラフィックキャプチャ、AIを使ったエッジコンピューティングと組み合わせることで、非常に興味深く社会的価値のあるタスクになります。
MaskCamは、Berkeley Design Technology, Inc. (BDTI)とTryolabs S.A.によって開発され、NVIDIAの資金提供を受けて開発されました。MaskCamはMITライセンスの下で提供されています。MaskCamの詳細については、BDTIのレポートをご覧ください。ご質問がございましたら、[email protected]までBDTIにメールでお問い合わせください。
このプロジェクトでは、NVIDIA® Jetson Nano™ 4GB Developer Kitと他のアクセサリを使用します。同時に、SeeedのA206 Carrier Boardを選択することもできます。これはNVIDIAの公式キャリアボードと同じサイズと機能設計を持ち、優れた安定性と汎用性も備えています。
準備
ハードウェア要件
-
NVIDIA® Jetson Nano™ 4GB Developer Kit (JetPack 4.6)
-
A206 Carrier Board(オプション)
-
7インチhdmiモニターとHDMIケーブル
-
USBドッキングステーション
-
マウスとキーボード
-
5V 4A電源アダプター
-
USBカメラ
-
イーサネットケーブル
-
Windows11搭載PC(またはWindows10/Ubuntu18.04/ OSX Big Sur)
ソフトウェア要件
-
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
-
Step 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カメラデバイスを使用する場合:
#Use the /dev/video1 camera device
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カメラデバイスを使用する:
#Use the CSI camera device
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を別のコンピュータのRSTSストリーミングビューアにコピー&ペーストできます。ビデオストリームで、マスクを着用していない場合は、顔に赤いフレームが表示されます。そうでなければ、緑のフレームが表示されます。
MQTT サーバーセットアップ
基本機能に加えて、このライブラリにはリモートサーバーの機能も含まれており、PCがデバイスから統計情報を受信し、データベースに保存し、それらを表示するWebベースのGUIフロントエンドを持つことができます。
この記事では、サーバーに関するすべてのデモはWindow11システムホストに基づいています。この記事を通じて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:\
Download MaskCam repo :
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サーバーフォルダに移動します。このフォルダには4つのコンテナがあります:Mosquittoブローカー、バックエンドAPI、データベース、およびStreamlitフロントエンドです。
cd maskcam\maskcam-main\server
次に、デフォルトテンプレートをコピーして.env
ファイルを作成します:
cp database.env.template database.env
cp frontend.env.template frontend.env
cp backend.env.template backend.env
Open the database.env
:
notepad database.env
<DATABASE_USER>
、<DATABASE_PASSWORD>
、<DATABASE_NAME>
フィールドを独自の値に置き換えてください
-
Step3. ローカルサーバーのビルドと実行
データベース環境ファイルの編集後、すべてのコンテナをビルドし、単一のコマンドで実行する準備が整いました:
sudo docker-compose up -d
次に、Webブラウザを開いてサーバーIPを入力し、フロントエンドのWebページにアクセスします:
http://<server IP>:8501/
Note: Replace <server IP>
with your own IP address.
If you see a ConnectionError
in the frontend, wait a couple more seconds and reload the page. The backend container can take some time to finish the database setup.
If you wait a couple more seconds and reload the page but it is still a ConnectionError
in the frontend, please make sure the ports: 5432
and 80
are not being occupied or listened up.
If you visit the frontend webpage successfully the first time but failed the next, the best way to solve it currently is to re-install docker.
-
Step4. Point Jetson Nano at your local server
Return to your Jetson Nano's terminal, and then run the maskcam container with the command below:
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アドレスに置き換えてください。
その後、以下に示すようにWebページでデバイスを選択できます:
最後に、Jetson Nanoによって収集されたデータがサーバーに送信されているのを確認できます。
技術サポートと製品ディスカッション
私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。