差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| miniskill [2021/12/30 01:54] – 作成 satoshi | miniskill [2022/02/06 14:29] (現在) – [SCORER Edge SDKからAWS S3への接続を設定する] satoshi | ||
|---|---|---|---|
| 行 6: | 行 6: | ||
| {{ :: | {{ :: | ||
| exec.shのサンプルコードを改変し、配信対象の動画ファイルパス、配信ポートを設定して実行します。 | exec.shのサンプルコードを改変し、配信対象の動画ファイルパス、配信ポートを設定して実行します。 | ||
| + | |||
| + | |||
| + | ===== 画像解析結果をXwindow画面で確認(Windowsの場合) ===== | ||
| + | 【Windowsでの作業】\\ | ||
| + | 下記からXserverツールとしてvcxsrvをダウンロードしてインストールする\\ | ||
| + | https:// | ||
| + | (参考)\\ | ||
| + | https:// | ||
| + | |||
| + | 起動する場合にDisable access controlにチェックを入れる(デフォルトではOFFになっている)\\ | ||
| + | {{:: | ||
| + | |||
| + | 【SCORER SDKでの作業】\\ | ||
| + | 〇CPU端末の場合(GPU端末は不要)\\ | ||
| + | Xserverがインストールされておらず画面を転送できないため | ||
| + | < | ||
| + | apt -y install libxkbcommon-x11-0 | ||
| + | apt -y install xserver-xorg | ||
| + | </ | ||
| + | を実行する\\ | ||
| + | |||
| + | 〇GPU・CPU端末共通\\ | ||
| + | Terminalを開いて\\ | ||
| + | # export DISPLAY=(windows端末のIP): | ||
| + | を実行する。\\ | ||
| + | VPNを経由している場合はVPNでのwindows端末のIPを入れる(通常であれば192.168.30.XでSoftetherでVPNに接続する時に表示される)\\ | ||
| + | |||
| + | imshowなどXwindowへの表示を含むようなコードを実行するとWindowsマシン上に別ウィンドウで表示される。\\ | ||
| + | {{:: | ||
| + | |||
| + | ===== SCORER Cloud Export Serviceと連携した事後分析 ===== | ||
| + | SCORER Cloudにアップロードされた動画や解析結果はSCORER Cloud Export Serviceを利用することでユーザーが管理しているAWS S3にデータを自動的にプッシュすることが可能です。\\ | ||
| + | 元動画や解析結果からさらに追加で分析したい場合、SCORER Edge SDKを使えば手軽に始めることができます。\\ | ||
| + | |||
| + | |||
| + | ==== SCORER Cloud Export Serviceで自分のAWS S3へデータ流し込み設定を行う。 ==== | ||
| + | SCORER Cloud Export Serviceを設定しましょう\\ | ||
| + | https:// | ||
| + | で自分で契約したAWS S3にデータを流し込む設定ができます。\\ | ||
| + | |||
| + | ==== SCORER Edge SDKからAWS S3への接続を設定する ==== | ||
| + | (執筆中) | ||
| + | AWS CLIで接続先設定を行い、AWS操作をPythonで行えるSDK「boto3」をインストールします\\ | ||
| + | Intel NUCの場合はLinux x86 (64-bit)\\ | ||
| + | Raspberry piの場合はLinux ARMのタブのコマンドを実行しましょう\\ | ||
| + | https:// | ||
| + | |||
| + | インストールが完了したら\\ | ||
| + | < | ||
| + | aws configure | ||
| + | </ | ||
| + | を実行し | ||
| + | AWS Access Key ID [None]: 前項で設定したID\\ | ||
| + | AWS Secret Access Key [None]: 前項で設定したkey\\ | ||
| + | Default region name [None]: ap-northeast-1\\ | ||
| + | Default output format [None]: JSON\\ | ||
| + | で設定しましょう\\ | ||
| + | |||
| + | 次にこの認証情報を用いてPythonでAWSを操作できるSDK「boto3」をインストールします | ||
| + | < | ||
| + | pip install boto3 | ||
| + | </ | ||
| + | これにて準備完了です。次に下記のPythonスクリプトを実行すると指定の日付間、指定のカメラストリームのデータが受信可能になります。\\ | ||
| + | スクリプトのある階層に「movielist」フォルダを作成すれば動作します。\\ | ||
| + | <sxh Python; titile: | ||
| + | from boto3 import Session | ||
| + | import boto3 | ||
| + | import datetime | ||
| + | from dateutil.relativedelta import relativedelta | ||
| + | import tarfile | ||
| + | from tarfile import TarInfo | ||
| + | import gzip | ||
| + | import json | ||
| + | import os | ||
| + | import cv2 | ||
| + | |||
| + | S3Bucket | ||
| + | S3KeyPrefix = ' | ||
| + | device_list=[' | ||
| + | sday = datetime.date(2022, | ||
| + | eday = datetime.date(2022, | ||
| + | stime = datetime.time(7, | ||
| + | etime = datetime.time(20, | ||
| + | |||
| + | timearr=[] | ||
| + | tmptime = datetime.datetime.combine(datetime.date.today(), | ||
| + | edatetime = datetime.datetime.combine(datetime.date.today(), | ||
| + | while tmptime< | ||
| + | timearr.append(tmptime) | ||
| + | tmptime = tmptime + datetime.timedelta(hours=1) | ||
| + | print(timearr) | ||
| + | |||
| + | daynum = (eday-sday).days+1 | ||
| + | |||
| + | date1=sday | ||
| + | date_list = [] | ||
| + | for i in range(daynum): | ||
| + | date_list.append(date1.strftime(' | ||
| + | date1 = date1 + relativedelta(days=1) | ||
| + | print(' | ||
| + | print(date_list) | ||
| + | |||
| + | s3client = boto3.client(' | ||
| + | |||
| + | |||
| + | beginning_of_the_last_month = sday | ||
| + | end_of_the_last_month = eday | ||
| + | daynum = (end_of_the_last_month-beginning_of_the_last_month).days+1 | ||
| + | |||
| + | print(" | ||
| + | print(beginning_of_the_last_month) | ||
| + | print(" | ||
| + | print(end_of_the_last_month) | ||
| + | date1=beginning_of_the_last_month | ||
| + | date_list = [] | ||
| + | |||
| + | for i in range(daynum): | ||
| + | print(date1) | ||
| + | date_list.append(date1.strftime(' | ||
| + | date1 = date1 + relativedelta(days=1) | ||
| + | |||
| + | |||
| + | for device in device_list: | ||
| + | for date2 in date_list: | ||
| + | |||
| + | loopPrefix = S3KeyPrefix+device+"/" | ||
| + | |||
| + | paginator = s3client.get_paginator(' | ||
| + | # フィルタリング設定 | ||
| + | operation_parameters = { | ||
| + | ' | ||
| + | ' | ||
| + | } | ||
| + | |||
| + | page_iterator = paginator.paginate(**operation_parameters) | ||
| + | dirpath = " | ||
| + | os.makedirs(dirpath, | ||
| + | for page in page_iterator: | ||
| + | if ' | ||
| + | for o in page[' | ||
| + | key = o.get(' | ||
| + | filepath=key.split('/' | ||
| + | ttime = datetime.time(filepath[15: | ||
| + | if os.path.exists(dirpath+filepath[5]): | ||
| + | continue | ||
| + | if ttime > stime and ttime < etime: | ||
| + | print(device+"/" | ||
| + | s3client.download_file(Bucket=S3Bucket, | ||
| + | </ | ||
| + | |||
| + | ===== SCORER APIによる一括解析 ===== | ||
| + | (執筆中) | ||
| + | |||
| + | |||
| + | |||