差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
miniskill [2022/01/28 14:56] satoshiminiskill [2022/02/06 14:29] (現在) – [SCORER Edge SDKからAWS S3への接続を設定する] satoshi
行 9: 行 9:
  
 ===== 画像解析結果をXwindow画面で確認(Windowsの場合) ===== ===== 画像解析結果をXwindow画面で確認(Windowsの場合) =====
-【Windowsでの作業】\ +【Windowsでの作業】\
-下記からXserverツールとしてvcxsrvをダウンロードしてインストールする\ +下記からXserverツールとしてvcxsrvをダウンロードしてインストールする\
-https://sourceforge.net/projects/vcxsrv/+https://sourceforge.net/projects/vcxsrv/\
-(参考) +(参考)\\ 
-https://atmarkit.itmedia.co.jp/ait/articles/1812/06/news040.html\+https://atmarkit.itmedia.co.jp/ait/articles/1812/06/news040.html\\
  
-起動する場合にDisable access controlにチェックを入れる(デフォルトではOFFになっている)\ +起動する場合にDisable access controlにチェックを入れる(デフォルトではOFFになっている)\
-{{::xserver001.jpg?600|}}\+{{::xserver001.jpg?600|}}\\
  
-【SCORER SDKでの作業】\ +【SCORER SDKでの作業】\\ 
-Terminalを開いて+〇CPU端末の場合(GPU端末は不要)\\ 
-# export DISPLAY=(windows端末のIP):0.0+Xserverがインストールされておらず画面を転送できないため 
-を実行する\ +<code> 
-VPNを経由している場合はVPNでのwindows端末のIPを入れる(通常であれば192.168.30.XでSoftetherでVPNに接続する時に表示される)\+apt -y install libxkbcommon-x11-0 
 +apt -y install xserver-xorg 
 +</code> 
 +を実行する\\
  
-imshowなどXwindowへの表示を含むようなコードを実行するとWindowsマシン上に別ウィンドウで表示される。\+〇GPU・CPU端末共通\\ 
 +Terminalを開いて\\ 
 +# export DISPLAY=(windows端末のIP):0.0\\ 
 +を実行する。\\ 
 +VPNを経由している場合はVPNでのwindows端末のIPを入れる(通常であれば192.168.30.XでSoftetherでVPNに接続する時に表示される)\\ 
 + 
 +imshowなどXwindowへの表示を含むようなコードを実行するとWindowsマシン上に別ウィンドウで表示される。\
 +{{::xserver002.jpg?600|}} 
 + 
 +===== 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://blog.futurestandard.jp/entry/2018/08/20/192446\\ 
 +で自分で契約したAWS S3にデータを流し込む設定ができます。\\ 
 + 
 +==== SCORER Edge SDKからAWS S3への接続を設定する ==== 
 +(執筆中) 
 +AWS CLIで接続先設定を行い、AWS操作をPythonで行えるSDK「boto3」をインストールします\\ 
 +Intel NUCの場合はLinux x86 (64-bit)\\ 
 +Raspberry piの場合はLinux ARMのタブのコマンドを実行しましょう\\ 
 +https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-linux.html\\ 
 + 
 +インストールが完了したら\\ 
 +<code> 
 +aws configure 
 +</code> 
 +を実行し 
 +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」をインストールします 
 +<code> 
 +pip install boto3 
 +</code> 
 +これにて準備完了です。次に下記のPythonスクリプトを実行すると指定の日付間、指定のカメラストリームのデータが受信可能になります。\\ 
 +スクリプトのある階層に「movielist」フォルダを作成すれば動作します。\\ 
 +<sxh Python; titile:moviedownload.py> 
 +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    = 'future-standard.XXXX' #ユーザーの指定するバケット名 
 +S3KeyPrefix = 'export/SourceData/' #SourceDataの位置までを指定 エクスポート時にexportプレフィックスを設定した時の例 
 +device_list=['02-410645-D-1'] #デバイス名。S3 Exportの種類(デバイス名かIDか)に応じて指定 
 +sday = datetime.date(2022, 2, 1) #対象期間開始日 
 +eday = datetime.date(2022, 2, 2) #対象期間終了日 
 +stime = datetime.time(7,0,0)  #対象開始時間 
 +etime = datetime.time(20,0,0)  #対象終了時間 
 + 
 +timearr=[] 
 +tmptime = datetime.datetime.combine(datetime.date.today(), stime) 
 +edatetime = datetime.datetime.combine(datetime.date.today(), etime) 
 +while tmptime<=edatetime: 
 +    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('%Y-%m-%d')) 
 +    date1 = date1 + relativedelta(days=1) 
 +print('target date'
 +print(date_list) 
 + 
 +s3client = boto3.client('s3'
 + 
 + 
 +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("from"
 +print(beginning_of_the_last_month) 
 +print("to"
 +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('%Y-%m-%d')) 
 +    date1 = date1 + relativedelta(days=1) 
 + 
 + 
 +for device in device_list: 
 +    for date2 in date_list: 
 + 
 +        loopPrefix = S3KeyPrefix+device+"/"+ str(date2) +"/videos/upload_" 
 +        
 +        paginator = s3client.get_paginator('list_objects_v2'
 +        # フィルタリング設定 
 +        operation_parameters = { 
 +            'Bucket': S3Bucket, 
 +            'Prefix': loopPrefix 
 +        } 
 + 
 +        page_iterator = paginator.paginate(**operation_parameters) 
 +        dirpath = "movielist/"+device+"/" 
 +        os.makedirs(dirpath, exist_ok=True) 
 +        for page in page_iterator: 
 +            if 'Contents' in page: 
 +                for o in page['Contents']: 
 +                    key = o.get('Key'
 +                    filepath=key.split('/'
 +                    ttime = datetime.time(filepath[15:16], filepath[18:19], filepath[21:22]) 
 +                    if os.path.exists(dirpath+filepath[5]): 
 +                        continue 
 +                    if ttime > stime and ttime < etime: 
 +                        print(device+"/"+date2+"/"+filepath[5]) 
 +                        s3client.download_file(Bucket=S3Bucket,Filename=dirpath+filepath[5], Key=key) 
 +</sxh> 
 + 
 +===== SCORER APIによる一括解析 ===== 
 +(執筆中)
  
  
  
  • miniskill.1643349402.txt.gz
  • 最終更新: 2022/01/28 14:56
  • by satoshi