
「Guardian」は、軍事CCTVを自動的に監視するビデオ監視Webアプリケーションです。
開発の背景
近年、一部の軍隊は失敗による警戒作業を強調しました
「手術で失敗した長寿は許される可能性がありますが、境界を失敗させた長寿は許されません。」
そのような大使がいるので、軍事部門では境界作業が重要です。
しかし、どこかで、民間人が壊れたために民間人がやって来た場合がありましたが、後に特定されました。
これらの例に基づいて、境界作業が強調されています。
多くのCCTVは、監視ボトルによって同時に監視されています
1つの監視が10以上のCCTVを監視し、1つの画面に焦点を当てている場合、他の画面が圧倒的である可能性があります。
軽微な検出のために無差別アラーム音
動き検出機能を備えたCCTVは、葉の揺れや光の突然の変化に対して脆弱です。このため、警備員は動きがあったかどうかにかかわらず、牛肉を気にしませんでした。
開発目標
CCTVの人々とのCCTVの識別、運動の自動化
セット領域では、人や車両を識別するときに状況ジャーナルが書かれており、発見されたオブジェクトが消えた場合は、ルートを追跡します。
過去の状況データベースの問い合わせを特定しました
識別されたデータと自動録音ビデオは、事故を追跡するためにいつでも表示できます。
ユーザーが認識できるTTSアラームサウンド
動きの検出が発生した場合、それは鳴る音ではありませんが、人と車両だけが検出された場合、TTSによる人または車両の検出に通知されます。
PPTファイル
PDFファイル
| プレゼンテーション | デモンストレーション |
|---|---|
| Googleドライブ | Googleドライブ |
オーブン
2020年の防衛オープンソースアカデミーハッカソン - ガーディアン開発レビュー
| RTSPストリーミングおよび状況ジャーナル |
|---|
![]() |
| Web上のネットワークカメラまたはDVRでサポートされているRTSPストリームデータが表示されます。 |
| 人と車両の検出 |
|---|
![]() |
| Yoloベースのオブジェクト検出は、人と車を識別します。 |
| 検出距離追跡と自動記録後 |
|---|
![]() |
| オブジェクトが消えた場合は、パスを追跡してユーザーに表示します。 |
| 特定の検出がある場合 |
| (検出〜移動検出エンド)ブランチを記録し、ユーザーに表示します。 |
| 自動録音ビデオプレビュー |
|---|
![]() |
| これは、上記の例で検出された自動録音ビデオです。 |
| 毎日の時系列統計 |
|---|
![]() |
| 日ごとにデータを記録して、検出された情報を0から24:00に通知します。 |
| 過去の識別データストリーミング |
|---|
![]() |
| 統計の時間を選択した場合、その時点で検出された識別ビデオを見ることができます。 |
主要な技術を選択する理由
Golang :Video Surveillance Projectは、大規模な実際のデータを処理するため、パフォーマンス、並行性、およびHTTPを備えたGO言語を選択しました。
OpenCV :多くのコンピュータービジョンを備えたプロジェクトとして、オープンソース「OpenCV」ライブラリを選択しました。
Darknet Yolov4-Tiny :Yoloモデル自体は、リアルタイムオブジェクトを検出するために生まれました。
開発環境はVMで制限されているため、小さなCPUコアで動作できる小さなモデルを選択しました。
React :Webアプリケーションを簡単に開発できるフロントエンドフレームウォーク。
バックエンド
| ゴラン | エコー | opencv | mongodb |
|---|---|---|---|
| タイプスクリプト | React.js | ANTD UIフレームワーク | socket.io | Video.js |
|---|---|---|---|---|
| Docker |
|---|
| darknet yolov4 |
|---|
opencvライブラリインストールGOCVを使用するためのインストール
> go get -u -d gocv.io/x/gocv
> cd $GOPATH /src/gocv.io/x/gocv
> make installフロントエンドモジュールのインストール
> git clone https://github.com/osamhack2020/WEB_GUARDIAN_GUARDIAN.git
> cd frontend
> yarn install仮想CCTV環境を構築します
> git clone https://github.com/gron1gh1/docker-rtsp-video-streaming.git
> cd docker-rtsp-video-streaming
> vi .env
# Modify .env file
> HOST_PORT={Port to be actually serviced}
> VIDEO_FILE ={Video File to be actually streamed}
> docker-compose up -dデータベースの実行
> cd infra/mongo
# 데이터베이스 패스워드 설정
> echo MONGO_PW={set_password} > .env
> docker-compose up -dフロントエンドの実行
> cd frontend
> yarn startバックエンドを実行します
> cd backend
# 데이터베이스 패스워드 설정
> echo {set_password} > MONGO_PW
> go run cv_core.go cv_motion_liner.go cv_util.go http.go cv_motion.go cv_yolo.go mongo.go :8081バックエンドラン(docker)
# OpenCV 라이브러리를 설치하지 않았을 때 쓰는 방법입니다.
# 데이터베이스 패스워드 설정
> cd WEB_GUARDIAN_GUARDIAN
> docker -v $PWD /backend:/ gocv/opencv ' go run cv_core.go cv_motion_liner.go cv_util.go http.go cv_motion.go cv_yolo.go mongo.go :8081 '
> echo {set_password} > MONGO_PW
> go run cv_core.go cv_motion_liner.go cv_util.go http.go cv_motion.go cv_yolo.go mongo.go :8081インターネットブラウザアクセスhttp:// localhost:8080