入力の形状とレイアウトに関する考慮事項

ターゲット AI モデルで処理する前に、バイナリー画像データは OVMS によって BGR カラー形式の NHWC レイアウトにエンコードされます。また、モデルまたはパイプライン・ノードの解像度に合わせてサイズ変更されます。モデルの解像度が値の範囲をサポートしていて、画像データの形状が範囲外の場合は、近い境界に調整されます。

例えば、モデル形状が [1,100:200,200,3] の場合:

  • 入力形状が [1,90,200,3] の場合、サイズは [1,100,200,3] に変更されます。

  • 入力形状が [1,220,200,3] の場合、サイズは [1,200,200,3] に変更されます。

バイナリー入力機能を使用するには、モデルまたはパイプライン入力レイアウトが N...HWC と互換性があり、4 (demultiplexing (逆多重化) の場合は 5) の形状次元を持つ必要があります。これは、入力レイアウトが NHWC レイアウトに類似する必要があることを意味します。デフォルトの N... は機能します。一方、NCHW レイアウトの入力では、バイナリーイメージはサポートされていません。

バイナリー入力ユーティリティーを最大限に活用するため、次の場合は OVMS によって画像サイズの自動調整が行われます。

  • 入力形状には動的次元値 (-1) は含まれていません。

  • 入力レイアウトは ... (カスタムノード) および NHWC または N?HWC (demultiplexer によって変更される場合は N?HWC) のいずれかに構成されます。

バイナリーイメージ要求を処理するには、モデルまたはカスタムノードが 0 ~ 255 のデータ範囲の BGR カラー形式のデータを受け入れる必要があります。入力データの元のレイアウトは、実行時の OVMS 構成で変更できます。例えば、元のモデルの入力形状が [1,3,224,224] である場合、OVMS 構成の “layout”: “NHWC:NCHW” パラメーターまたはコマンドライン・パラメーター --layout NHWC:NCHW を追加します。その結果、モデルは有効形状 [1,224,224,3] とレイアウト NHWC になります。

モデルが RGB カラー形式と 0 ~ 255 以外の範囲でトレーニングされた場合、モデル・オプティマイザーは必要な調整を適用できます。

  • --reverse_input_channels: 入力チャネルの順序を RGB から BGR (またはその逆) に切り替えます。チャネル数が 3 の場合にのみ、モデルの元の入力に適用されます。–mean_values および –scale_values オプションの適用後に適用されるため、–mean_values および –scale_values の数値は、元のモデルで使用されているチャネルの順序になります。
  • --scale : 元のすべてのネットワーク入力はこの値で分割されます。入力のリストが -input パラメーターによってオーバーライドされる場合、このスケールはモデルの元の入力と一致しない入力には適用されません。
  • --mean_values : チャネルごとの入力画像に使用される平均値。値は (R,G,B) または (B,G,R) 形式で提供されます。モデルの必要な入力に対して定義できます (例: “-mean_values data[255,255,255],info[255,255,255]”)。チャネルの意味と順序は、元のモデルがどのようにトレーニングされたかによって異なります。

バイナリー入力デコードからの BLOB データの精度は、ターゲットモデルまたは DAG パイプラインノードに基づいて自動的に設定されます。