AIコラムー第12回 ADVANTECH社製MIC-710IVX上で、弊社で開発したナンバープレート検出のモデルを使用したベンチマークを実施する

MIC-710IVX第2回目の今回は、MIC-710IVX 上で、弊社が開発したナンバープレート検出がIPカメラで何台まで制御ができるか実際に動作させてみたいと思います。

ベンチマークの概要

弊社で開発しているナンバープレート検出のモデル
(https://www.nskint.co.jp/business/ai_solution/license_plate_detector_zenkoku/)
を使用して、MIC-710IVX上でベンチマークを行います。
最初は、1ストリーム(IPカメラ1台)の設定で動かしてシンプルな構成でのFPSを確認します。
その後、2、4、8ストリームと徐々に増やしていき、処理速度(推論結果の動画のFPS)を確認していきたいと思います。
今回のナンバープレート検出を用いたベンチマークでは、プライバシーの問題があるため、検出対象とする車は弊社社員が所有するものを使用しております。また、ベンチマークで使用する映像に関しても、今回はIPカメラを使わず一般の方の顔や車が映り込んでいないことが確認できた動画ファイルを使用するようにしております。

ベンチマークの実施

最初に、1ストリームの設定でベンチマークを行います。以下の手順で、1ストリームで検証を行うための設定をしていきます。

[source0] のブロックのuriに検証で使用する動画ファイルを指定します。
1ストリームの設定のため、num-sourcesに1を設定します。 その他の [source*] ブロックが残っている場合は、削除してください。

[source0]

enable=1

#Type – 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP

type=3

uri=file://<使用する動画ファイルのパス>

num-sources=1

#drop-frame-interval=2

 

次に、batch-size1に設定します。

[streammux]

gpu-id=0

##Boolean property to inform muxer that sources are live

live-source=0

batch-size=1

##time out in usec, to wait after the first buffer is available

##to push the batch even if the complete batch is not formed

batched-push-timeout=40000

以上の設定で、1ストリームの設定が完了したので、実際に動かしてみます。

コンソールの左下には現在のFPSと、今までのFPSの平均のFPSが表示されています。

ナンバープレートを検知し、画面上のナンバープレートが赤い四角で囲われて、文字情報まで推論結果として表示されているときは、30FPSのスループットが出ていることが分かります。
今回のベンチマークで使用している動画は30FPSなので、遅延なく再生できていることが分かります。

それでは、次にストリーム数を2,4,8と増やしていくと、どのくらいFPSが変わっていくか試してみたいと思います。

2ストリームの場合

2ストリームでの検証を行うためには、前述の手順で設定したnum-sources batch-sizeをそれぞれ、2に設定します。
設定ファイルを書き換えた後、実際に2ストリームで検証を行ったときの動画が以下になります。

2ストリームにしても、結果は入力した動画のFPSと同じ30FPSになりました。
2
ストリームの場合でも、遅延なくナンバープレート検出が行えるようです。

4ストリームの場合

2ストリームの場合と同様の手順で、num-sourcesbatch-sizeを4に設定して検証を行います。

4ストリームでは21FPS程のスループットになりました。
上記の動画では、映像が遅延していることが分かります。これは、入力映像の1フレームの再生にかかる時間(1.)よりも、1フレームの推論にかかる時間の方が長いためです。
  ※1. 入力映像は30FPSの動画なので、1フレームの再生時間は1/30(33ミリ秒)
これは動画ファイルを入力とした場合のみに起こる現象で、IPカメラなどでストリーミングした場合は遅延ではなく秒間21コマ(21FPS)にコマ落ちしたように見えます。

上記の動画を見ていただくとわかるとおり、21FPS程あれば、上記の映像のように動いている車でも充分捕えることができそうです。

8ストリームの場合

最後に、8ストリームの場合でも試してみたいと思います。
2
ストリームの場合と同様の手順でnum-sourcesbatch-size8に設定して検証を行います。

8ストリームでは11FPS程のスループットになりました。
8
ストリームの場合も、IPカメラなどでストリーミングした場合を模した動画で確認してみたいと思います。

11FPSでも、駐車場・出入口など徐行する車をターゲットとする場所に設置すれば充分使えそうです。

ベンチマークの結果をまとめると、以下の表のようになります。

入力ストリーム数FPS
130
230
421
811

この表から入力ストリームとFPSの関係をプロットした結果が以下の図です。

弊社のナンバープレート検出のモデルを利用した場合、ADVANTECH社製MIC-710IVXを使うと、12ストリームならば30FPSの入力映像で遅延することなく処理できるということが分かりました。また、8ストリームまで増やした場合でも、11FPS程度で処理することができました。11FPS程度あれば、駐車場・出入口など徐行する車をターゲットとする場所でも実用的に使用することができます。
 また、推論精度との兼ね合いになりますが、ナンバープレート検出のモデルはカスタマイズ(軽量なネットワークの採用、量子化(2.))により、更にFPSが改善する見込みがあります。改善を行った場合は、さらに多くのストリーム数をMIC-710IVXで処理できる可能性があります。

 ※2. 今回使用したナンバープレートの検出のモデルはfp16に量子化したものを使用しています。

お問い合わせ

名古屋本社

東京本社

【受付時間】9:00~18:00

pagetop

お客様のお悩み承ります。