Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

目次

...

Table of Contents
minLevel1
maxLevel4

...

また一部のCV2xカメラ(ボックスタイプ、ドームタイプ)では、上下反転設定にかかわらず、画像センサの取付け向きの関係で、アプリが取得可能なYC画像がデフォルト状態で反転しています。以下のページを参考にYC画像取得後の反転処理を実装して下さい。

https://dev-partner.i-pro.com/space/TPFAQ/965477999/カメラの取り付け向きと取得YC画像について

この実装はSDK v2.01以降に同梱されているサンプルアプリケーションweb_template_app, yuv_dnn_app,
yuv_pose_ap, yuv_ssd_app, yuv_yolo_app,yuv_yolov5_app,yuv_yolov8_appで実装されています。

https://dev-partner.i-pro.com/space/TPFAQ/965477999/カメラの取り付け向きと取得YC画像について

関連FAQ: https://dev-partner.i-pro.com/space/TPFAQ/724078720/SシリーズBOXカメラのAIモデル精度

全方位カメラの映像取得

撮像モード設定に応じて、魚眼画像、パノラマ画像など所望の画像を使用することが可能です。撮像モード設定に応じて、魚眼画像、パノラマ画像など所望の画像をアプリで使用することが可能です。

https://dev-partner.i-pro.com/space/TPFAQ/1300103211/全方位カメラの映像をAdamAppアプリで使用する

...

この実装はサンプルアプリケーションweb_template_appで実装されています。

AI処理の一般的なシーケンス例

...

カメラファームウェアで発生するイベントをトリガにして、各種処理を行う場合

すべてのYC画像に対して画像解析を行う代わりに、SDK「」を使用することで例えばカメラで検知したVMDや端子アラームのイベントを受信し、その後一定時間だけ処理するような実装(この実装はサンプルアプリwebすべてのYC画像に対して画像解析を行う代わりに、ADAM_DevInputAlarm_Createを使用することで例えばカメラで検知したVMDや端子アラームのイベントをアプリで受信し、その後一定時間だけ処理するような実装(この実装はサンプルアプリweb_template_appで実装されています)、あるいはSDK「」を使用することでPTZカメラがプリセットポジション移動したことをトリガとしてその後一定時間だけ処理するような実装が可能です。appで実装されています)、あるいはADAM_DevPtzPresetPositionState_Createを使用することでPTZカメラがプリセットポジション移動したことをトリガとしてその後一定時間だけ処理するような実装が可能です。

外部機器へのデータ送信方法

...

アプリ内で発生したイベントはSDKを使用してカメラファームウェアのアラーム連動動作機能を動作させたり、またはアプリから外部機器に対して直接通信することも可能です。

Adam_

...

→独自アラーム、HTTPアラーム

Adam

RTSPのメタデータチャンネル、Onvif Analytics stream, Onvif Event streamとして
データの送信が可能です。

パートナー様で自由に実装が可能です。

MQTT(サンプルアプリあり)

アプリからカメラファームウェアのCGIの実行

アプリケーションからカメラファームウェアのHTTPポートに対してローカル通信としてCGIを十国することが可能です。ユーザー認証が必要となるため、カメラのユーザー名、パスワードをアプリケーションの設定値として実装する必要がります。
CGIの仕様については、xxxからお問い合わせください。

データのFlashメモリへの保存

アプリのWEB UIの実装について

最低限の説明を行い、自由に実装することが可能であること

ライセンスについてはパートナー様で実装頂く必要があること

その際は、MACアドレスやシリアル番号の活用可能

CV2x及びCV52の判別方法について

・Cv2xとCV52用それぞれ分けられること、または一緒にくっつけることが可能であること

・SDK2.10以降であれば新SDKで処理分岐できること

...

Alarm_Notify

カメラファームウェアの以下のようなアラーム連動動作を開始させることが可能です。

・独自アラーム通知、HTTPアラーム通知 (参考:https://dev-partner.i-pro.com/space/TPFAQ/1029963873/TCP+Alarm%2FHTTP+Alarm)

・メール通知

・SDカードへの映像録画

・アラームFTP転送(JPEG)

・出力端子のアラーム連動出力

※本SDKはサンプルアプリalarm_sample_app、web_template_appで実装されています。

ADAM_MetaDataStream_SetRaw

RTSPのメタデータチャンネルで、Onvif meta streamとしてデータの送信が可能です。本データを活用するソフトはパートナー様で開発頂く必要があります。

※海外ページではiAG連携の補足説明する

※本SDKは各種サンプルアプリmeta_stream_app、web_template_appで実装されています。

ADAM_AdditionalInfo_Set

H.264、H.265、音声のネットワーク配信時のRTP拡張ヘッダに任意の情報を付与します。JPEGの場合はCOMセグメントに格納されます。本データを活用するソフトはパートナー様で開発頂く必要があります。

※本SDKは各種サンプルアプリadditional_info_sample_appで実装されています。

その他

パートナー様で自由にプロトコルの実装が可能です。サンプルアプリmqtt_sampleではMQTTを実装しています。

アプリからのカメラファームウェアのCGIの実行

...

アプリケーションからカメラファームウェアのHTTPポートに対してローカル通信としてCGIを実行することが可能です。ユーザー認証が必要となるため、カメラのユーザー名、パスワードをアプリケーションの設定値として実装する必要がります。

CGIドキュメントダウンロード:https://i-pro.com/products_and_solutions/ja/surveillance/learning-and-support/device-integration/cgi-itg-camera

各CGIの仕様については、https://japancs.i-pro.com/page/inquiryからお問い合わせください。

カメラ内部のフラッシュメモリへの保存

...

ADAM_GetAppDataDirPathで取得されるディレクトリに対して保存したデータはカメラ内部のフラッシュメモリに保存されるため、カメラの電源をOff/Onを行っても保存されます。

フラッシュメモリには書き込み回数に上限があるため、映像から検知したデータなどを保存したい場合は、SDカードまたは外部装置へ送信して保存する必要があります。

一時的なRAMへの保存で十分の場合は、ADAM_GetAppTmpDirPathをで取得されるディレクトリに保存してください。

高頻度のフラッシュメモリへの書き込みが行われ劣化した場合、アプリのインストール、起動、その他アプリの動作に影響を及ぼす場合があります。

SDK 2.01以降で同梱されているResouce Monitorでは、フラッシュメモリへのアクセス状況を確認可能です。不要なアクセスがないかどうか、開発中にご確認ください。

参考:https://dev-partner.i-pro.com/space/TPFAQ/1028163220/Resource+Monitor

また各カメラのROMサイズの上限を超えて、保存が行われた場合、カメラのファームウェアがアプリを停止します。この場合、カメラのWEBブラウザの管理ログに「」が表示されます。

アプリのWEB UIの実装について

...

アプリでWEB UIを自由に実装し、カメラのWEBブラウザから表示することが可能です(ex. MPEGと検知枠の表示、アプリの設定変更など)

WEB UIは各種サンプルアプリでも実装されており、またweb_template_appでは、一般的にアプリに必要なる機能が含まれています。

アプリのライセンスアクティベーションが必要となる場合、これらはすべてパートナー様で設計、実装頂く必要があります。カメラのMACアドレスやシリアル番号はSDKで取得可能であり、ご使用下さい。

複数アプリ間のデータ通信に関して

...

1つのアプリに複数のAIモデルを組み込み、動作させることが可能です。

またアプリを複数にわけ、アプリ間での通信を行う場合は、サンプルアプリiac_server_sample_app、iac_client_sample_appを参照ください。

死活監視について

...

カメラのファームウェアとアプリのメインスレッドにて約20秒間隔で死活監視が行われます。

連続2回アプリからの応答がなかった場合、アプリが異常になっていると判定し、ファームウェアはアプリを停止します。その後、そのアプリがスケジュール動作期間内である場合は、再度自動的に起動します。

また外部装置からのAdamCGIを受信し、アプリがファームウェアに対して応答を返却しない場合も同様に停止、再起動が行われます。

CV2xとCV52カメラアプリの互換性・SoC判別方法

...

SoCがCv2xのカメラ用アプリとCV52のカメラ用アプリは互換性がありません。Cv2xカメラ用アプリをすでに開発済で、CV52カメラ用アプリを開発する場合はAIモデル変換(https://dev-partner.i-pro.com/space/TPFAQ/1187053582)と、ビルド時のオプションを変更(https://dev-partner.i-pro.com/space/TPFAQ/1112245115/SDKインストール(v1.80以降))する必要があります

ソースコードでは以下によって制御を分けることが可能です。ビルド時のオプションによって一方が有効となります。

#ifdef ADAM_TARGET_PF_ipro_ambaCV2X_linux

#ifdef ADAM_TARGET_PF_ipro_ambaCV5X_linux

複数アプリ間のデータ通信に関して

死活監視について

またSDK2.01以降に対応したファームウェアバージョンで追加されたSDK ADAM_GetSocTypeでSoCの情報を取得し、動的に制御を分けることも可能です。