ailia  1.6.0.0
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
ailia.AiliaDetectorModel クラス
ailia.AiliaDetectorModel の継承関係図
Inheritance graph
[凡例]
ailia.AiliaDetectorModel 連携図
Collaboration graph
[凡例]

公開メンバ関数

bool Settings (uint set_format, uint set_channel, uint set_range, uint set_algorithm, uint set_category_n, uint set_flag)
 モデルの設定を行います。 [詳解]
 
bool Anchors (float[] anchors)
 YoloV2などのためにアンカーズ(anchors又はbiases)の情報を設定します。 [詳解]
 
bool SetInputShape (uint x, uint y)
 YoloV3とYOLOXの入力形状を設定します。 [詳解]
 
override bool OpenFile (string prototxt, string model_path)
 モデルファイルからネットワークオブジェクトを作成します。 [詳解]
 
override bool OpenEx (Ailia.ailiaFileCallback callback, IntPtr arg1, IntPtr arg2)
 ファイルコールバックからネットワークオブジェクトを作成します。 [詳解]
 
override bool OpenMem (byte[] prototxt_buf, byte[] model_buf)
 メモリからネットワークオブジェクトを作成します。 [詳解]
 
List< AiliaDetector.AILIADetectorObjectComputeFromImage (Color32[] image, int tex_width, int tex_height, float threshold, float iou)
 画像から推論し結果を取得する [詳解]
 
List< AiliaDetector.AILIADetectorObjectComputeFromImageB2T (Color32[] image, int tex_width, int tex_height, float threshold, float iou)
 上下反転された画像から推論し結果を取得する [詳解]
 
override void Close ()
 検出オブジェクトを破棄します。 [詳解]
 
override void Dispose ()
 リソースを解放します。 [詳解]
 
- 基底クラス ailia.AiliaModel に属する継承公開メンバ関数
bool Environment (int type)
 指定した種類の計算環境を選択します。 [詳解]
 
string EnvironmentName ()
 選択された環境名を表示します。 [詳解]
 
int GetEnvironmentCount ()
 利用可能な計算環境(CPU, GPU)の数を取得します。 [詳解]
 
Ailia.AILIAEnvironment GetEnvironment (int idx)
 指定したインデックスの計算環境を取得します。 [詳解]
 
bool SelectEnvironment (int idx)
 計算環境を選択します。 [詳解]
 
Ailia.AILIAEnvironment GetSelectedEnvironment ()
 選択された計算環境を取得します。 [詳解]
 
bool SetMemoryMode (uint set_memory_mode)
 メモリモードを設定します [詳解]
 
bool DisableLayerFusion ()
 レイヤー統合による高速化を無効化します。 [詳解]
 
bool Predict (float[] output_data, float[] input_data)
 推論を行い推論結果を取得します。 [詳解]
 
Ailia.AILIAShape GetInputShape ()
 推論時の入力データの形状を取得します。 [詳解]
 
uint[] GetInputShapeND ()
 推論時の入力データの形状を取得します。 [詳解]
 
bool SetInputShape (Ailia.AILIAShape shape)
 推論時の入力データの形状を設定します。 [詳解]
 
bool SetInputShapeND (uint[] shape, int dim)
 推論時の入力データの形状を変更します。 [詳解]
 
Ailia.AILIAShape GetOutputShape ()
 推論時の出力データの形状を取得します。 [詳解]
 
uint[] GetOutputShapeND ()
 推論時の出力データの形状を取得します。 [詳解]
 
Ailia.AILIAShape GetBlobShape (string layer_name)
 推論時の内部データ(Blob)の形状(レイヤー形式)を取得します。(Obsolete) [詳解]
 
int FindBlobIndexByName (string name)
 推論時の内部データ(Blob)のインデックスを名前で探し取得します。 [詳解]
 
Ailia.AILIAShape GetBlobShape (uint idx)
 推論時の内部データ(Blob)の形状(レイヤー形式)を取得します。 [詳解]
 
Ailia.AILIAShape GetBlobShape (int idx)
 
bool GetBlobData (float[] output_data, uint idx)
 推論時の内部データ(Blob)を取得します。 [詳解]
 
bool GetBlobData (float[] output_data, int idx)
 
bool SetInputBlobData (float[] input_data, uint idx)
 指定したBlobに入力データを設定します。 [詳解]
 
bool SetInputBlobData (float[] input_data, int idx)
 
bool SetInputBlobShape (Ailia.AILIAShape shape, uint idx)
 指定した入力データ(Blob)の形式を設定します。(4次元以下) [詳解]
 
bool SetInputBlobShape (Ailia.AILIAShape shape, int idx)
 
bool SetInputBlobShapeND (uint[] shape, uint dim, uint idx)
 入力データ(Blob)の形式を設定します。(5次元以上) [詳解]
 
bool SetInputBlobShapeND (uint[] shape, int dim, int idx)
 
uint[] GetInputBlobList ()
 入力データ(Blob)のインデックスのリストを取得します。 [詳解]
 
uint[] GetOutputBlobList ()
 出力データ(Blob)のインデックスのリストを取得します。 [詳解]
 
bool CopyBlobData (uint dst_blob_idx, uint src_blob_idx, AiliaModel src_model=null)
 指定したBlob間でデータをコピーします [詳解]
 
bool Update ()
 事前に入力したデータで推論を行います。 [詳解]
 
string GetStatusString (int status)
 ステータスコードに対応する文字列を返します。 [詳解]
 
string GetErrorDetail ()
 エラーの詳細を返します。 [詳解]
 
bool SetProfileMode (uint profile_mode)
 プロファイルモードを有効にします。 [詳解]
 
string GetSummary ()
 ネットワーク情報およびプロファイル結果を取得します。 [詳解]
 

限定公開メンバ関数

override void Dispose (bool disposing)
 

その他の継承メンバ

- 基底クラス ailia.AiliaModel に属する継承限定公開変数類
IntPtr ailia = IntPtr.Zero
 
bool logging = true
 
- 基底クラス ailia.AiliaModel に属する継承プロパティ
int Status [get, protected set]
 ステータスコード @detail ライブラリのステータスコードを取得します。 [詳解]
 

関数詳解

◆ Anchors()

bool ailia.AiliaDetectorModel.Anchors ( float[]  anchors)
inline

YoloV2などのためにアンカーズ(anchors又はbiases)の情報を設定します。

引数
anchorsアンカーズの寸法 (検出ボックスの可能な形、高さと広さ)
戻り値
成功した場合は true を、失敗した場合は false を返す。

AiliaDetector.ailiaDetectorSetAnchors()でYoloV2などのためにアンカーズ (anchors又はbiases) の情報を設定します。 YoloV2などは既定の複数な形の検出ボックスを同時に試しています。このデータはそのボックスの複数な形の情報を記述します。 anchorsには{x,y,x,y...}の形式で格納します。

102  {
103  UInt32 anchors_count=(UInt32)(anchors.Length/2);
104  if (ailia_detector == IntPtr.Zero) {
105  if(logging){
106  Debug.Log("ailia_detector must be opened");
107  }
108  return false;
109  }
110  int status=AiliaDetector.ailiaDetectorSetAnchors(ailia_detector,anchors,anchors_count);
111  if(status!=Ailia.AILIA_STATUS_SUCCESS){
112  if(logging){
113  Debug.Log("ailiaDetectorSetAnchors failed "+status);
114  }
115  return false;
116  }
117  return true;
118  }
bool logging
Definition: AiliaModel.cs:33

◆ Close()

override void ailia.AiliaDetectorModel.Close ( )
inlinevirtual

検出オブジェクトを破棄します。

戻り値
なし

検出オブジェクトを破棄します。

ailia.AiliaModelを再実装しています。

437  {
438  if(ailia_detector!=IntPtr.Zero){
439  AiliaDetector.ailiaDestroyDetector(ailia_detector);
440  ailia_detector=IntPtr.Zero;
441  }
442  base.Close();
443  }

◆ ComputeFromImage()

List<AiliaDetector.AILIADetectorObject> ailia.AiliaDetectorModel.ComputeFromImage ( Color32[]  image,
int  tex_width,
int  tex_height,
float  threshold,
float  iou 
)
inline

画像から推論し結果を取得する

引数
image入力画像
tex_width画像幅
tec_height画像高さ
threadhold検出しきい値(0.1f等)(小さいほど検出されやすくなり、検出数増加)
iou重複除外しきい値(0.45f等)(小さいほど重複を許容せず検出数減少)
戻り値
検出されたオブジェクトのリスト。

与えられた画像から推論を行い、推論結果をリストで取得します。

320  {
321  return ComputeFromImageWithFormat(image,tex_width,tex_height,threshold,iou,AiliaFormat.AILIA_IMAGE_FORMAT_RGBA);
322  }

◆ ComputeFromImageB2T()

List<AiliaDetector.AILIADetectorObject> ailia.AiliaDetectorModel.ComputeFromImageB2T ( Color32[]  image,
int  tex_width,
int  tex_height,
float  threshold,
float  iou 
)
inline

上下反転された画像から推論し結果を取得する

引数
image入力画像
tex_width画像幅
tec_height画像高さ
threadhold検出しきい値(0.1f等)(小さいほど検出されやすくなり、検出数増加)
iou重複除外しきい値(0.45f等)(小さいほど重複を許容せず検出数減少)
戻り値
検出されたオブジェクトのリスト。

与えられた画像から推論を行い、推論結果をリストで取得します。

350  {
351  return ComputeFromImageWithFormat(image,tex_width,tex_height,threshold,iou,AiliaFormat.AILIA_IMAGE_FORMAT_RGBA_B2T);
352  }

◆ Dispose() [1/2]

override void ailia.AiliaDetectorModel.Dispose ( )
inlinevirtual

リソースを解放します。

ailia.AiliaModelを再実装しています。

453  {
454  Dispose(true);
455  }
override void Dispose()
リソースを解放します。
Definition: AiliaDetectorModel.cs:452

◆ Dispose() [2/2]

override void ailia.AiliaDetectorModel.Dispose ( bool  disposing)
inlineprotectedvirtual

ailia.AiliaModelを再実装しています。

458  {
459  if (disposing){
460  // release managed resource
461  }
462  Close(); // release unmanaged resource
463  base.Dispose(disposing);
464  }
override void Close()
検出オブジェクトを破棄します。
Definition: AiliaDetectorModel.cs:437

◆ OpenEx()

override bool ailia.AiliaDetectorModel.OpenEx ( Ailia.ailiaFileCallback  callback,
IntPtr  arg1,
IntPtr  arg2 
)
inlinevirtual

ファイルコールバックからネットワークオブジェクトを作成します。

引数
callbackユーザ定義ファイルアクセスコールバック関数構造体
alg1AILIA_USER_API_FOPEN に通知される引数ポインタ
arg2AILIA_USER_API_FOPEN に通知される引数ポインタ
戻り値
成功した場合はtrue、失敗した場合はfalseを返す。

 ファイルコールバックからネットワークオブジェクトを作成します。

ailia.AiliaModelを再実装しています。

223  {
224  Close();
225  bool status=base.OpenEx(callback,arg1,arg2);
226  if(!status){
227  if(logging){
228  Debug.Log("ailiaModelOpenEx failed");
229  }
230  return false;
231  }
232  return OpenDetector();
233  }

◆ OpenFile()

override bool ailia.AiliaDetectorModel.OpenFile ( string  prototxt,
string  model_path 
)
inlinevirtual

モデルファイルからネットワークオブジェクトを作成します。

引数
prototxtprototxtファイルのパス名(MBSC or UTF16)
model_pathprotobuf/onnxファイルのパス名(MBSC or UTF16)
戻り値
成功した場合はtrue、失敗した場合はfalseを返す。

モデルファイルからネットワークオブジェクトを作成します。

ailia.AiliaModelを再実装しています。

189  {
190  Close();
191  bool status=base.OpenFile(prototxt,model_path);
192  if(!status){
193  if(logging){
194  Debug.Log("ailiaModelOpenFile failed");
195  }
196  return false;
197  }
198  return OpenDetector();
199  }

◆ OpenMem()

override bool ailia.AiliaDetectorModel.OpenMem ( byte[]  prototxt_buf,
byte[]  model_buf 
)
inlinevirtual

メモリからネットワークオブジェクトを作成します。

引数
prototxt_bufprototxtファイルのデータへのポインタ
model_bufprotobuf/onnxファイルのデータへのポインタ
戻り値
成功した場合はtrue、失敗した場合はfalseを返す。

メモリからネットワークオブジェクトを作成します。

ailia.AiliaModelを再実装しています。

255  {
256  Close();
257  bool status=base.OpenMem(prototxt_buf,model_buf);
258  if(!status){
259  if(logging){
260  Debug.Log("ailiaModelOpenMem failed");
261  }
262  return false;
263  }
264  return OpenDetector();
265  }

◆ SetInputShape()

bool ailia.AiliaDetectorModel.SetInputShape ( uint  x,
uint  y 
)
inline

YoloV3とYOLOXの入力形状を設定します。

引数
xモデルの入力画像幅
yモデルの入力画像高さ
戻り値
成功した場合は ture を、失敗した場合は false を返す。

AiliaDetector.ailiaDetectorSetInputShape()で YoloV3でのモデルへの入力画像サイズを指定します。

YoloV3とYOLOXでは単一のモデルが任意の入力解像度に対応します。(32 の倍数制限あり) 計算量の削減等でモデルへの入力画像サイズを指定する場合この API を実行してください。 Open() と Compute() の間に実行する必要があります。 この API を実行しない場合、デフォルトの 416x416 を利用します。 YOLOv3 以外で実行した場合、 AILIA_STATUS_INVALID_STATE を返します。

152  {
153  if (ailia_detector == IntPtr.Zero) {
154  if(logging){
155  Debug.Log("ailia_detector must be opened");
156  }
157  return false;
158  }
159  int status=AiliaDetector.ailiaDetectorSetInputShape(ailia_detector,x,y);
160  if(status!=Ailia.AILIA_STATUS_SUCCESS){
161  if(logging){
162  Debug.Log("ailiaDetectorSetInputShape failed "+status);
163  }
164  return false;
165  }
166  return true;
167  }

◆ Settings()

bool ailia.AiliaDetectorModel.Settings ( uint  set_format,
uint  set_channel,
uint  set_range,
uint  set_algorithm,
uint  set_category_n,
uint  set_flag 
)
inline

モデルの設定を行います。

引数
set_formatネットワークの画像フォーマット
set_channelネットワークのチャンネルフォーマット
set_rangeネットワークのレンジ
set_algorithmアルゴリズム
set_category認識対象カテゴリ数
set_flagフラグ
戻り値
設定が完了すると true を返す。

モデルの設定を行います。

注釈
Open系API呼び出し後の呼び出しは無効です(falseを返却します)
65  {
66  if (ailia_detector != IntPtr.Zero)
67  {
68  Debug.Assert(false, "Ailia Detector instance is already initialized.");
69  return false;
70  }
71  format=set_format;
72  channel=set_channel;
73  range=set_range;
74  algorithm=set_algorithm;
75  category_n=set_category_n;
76  flag=set_flag;
77  return true;
78  }

このクラス詳解は次のファイルから抽出されました: