ailia  1.4.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 ()
 選択された計算環境を取得します。 [詳解]
 
void SetMemoryMode (uint set_memory_mode)
 メモリモードを設定します [詳解]
 
void 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...}の形式で格納します。

94  {
95  UInt32 anchors_count=(UInt32)(anchors.Length/2);
96  if (ailia_detector == IntPtr.Zero) {
97  if(logging){
98  Debug.Log("ailia_detector must be opened");
99  }
100  return false;
101  }
102  int status=AiliaDetector.ailiaDetectorSetAnchors(ailia_detector,anchors,anchors_count);
103  if(status!=Ailia.AILIA_STATUS_SUCCESS){
104  if(logging){
105  Debug.Log("ailiaDetectorSetAnchors failed "+status);
106  }
107  return false;
108  }
109  return true;
110  }
bool logging
Definition: AiliaModel.cs:33

◆ Close()

override void ailia.AiliaDetectorModel.Close ( )
inlinevirtual

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

戻り値
なし

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

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

429  {
430  if(ailia_detector!=IntPtr.Zero){
431  AiliaDetector.ailiaDestroyDetector(ailia_detector);
432  ailia_detector=IntPtr.Zero;
433  }
434  base.Close();
435  }

◆ 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等)(小さいほど重複を許容せず検出数減少)
戻り値
検出されたオブジェクトのリスト。

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

312  {
313  return ComputeFromImageWithFormat(image,tex_width,tex_height,threshold,iou,AiliaFormat.AILIA_IMAGE_FORMAT_RGBA);
314  }

◆ 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等)(小さいほど重複を許容せず検出数減少)
戻り値
検出されたオブジェクトのリスト。

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

342  {
343  return ComputeFromImageWithFormat(image,tex_width,tex_height,threshold,iou,AiliaFormat.AILIA_IMAGE_FORMAT_RGBA_B2T);
344  }

◆ Dispose() [1/2]

override void ailia.AiliaDetectorModel.Dispose ( )
inlinevirtual

リソースを解放します。

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

445  {
446  Dispose(true);
447  }
override void Dispose()
リソースを解放します。
Definition: AiliaDetectorModel.cs:444

◆ Dispose() [2/2]

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

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

450  {
451  if (disposing){
452  // release managed resource
453  }
454  Close(); // release unmanaged resource
455  base.Dispose(disposing);
456  }
override void Close()
検出オブジェクトを破棄します。
Definition: AiliaDetectorModel.cs:429

◆ 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を再実装しています。

215  {
216  Close();
217  bool status=base.OpenEx(callback,arg1,arg2);
218  if(!status){
219  if(logging){
220  Debug.Log("ailiaModelOpenEx failed");
221  }
222  return false;
223  }
224  return OpenDetector();
225  }

◆ 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を再実装しています。

181  {
182  Close();
183  bool status=base.OpenFile(prototxt,model_path);
184  if(!status){
185  if(logging){
186  Debug.Log("ailiaModelOpenFile failed");
187  }
188  return false;
189  }
190  return OpenDetector();
191  }

◆ OpenMem()

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

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

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

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

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

247  {
248  Close();
249  bool status=base.OpenMem(prototxt_buf,model_buf);
250  if(!status){
251  if(logging){
252  Debug.Log("ailiaModelOpenMem failed");
253  }
254  return false;
255  }
256  return OpenDetector();
257  }

◆ 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 を返します。

144  {
145  if (ailia_detector == IntPtr.Zero) {
146  if(logging){
147  Debug.Log("ailia_detector must be opened");
148  }
149  return false;
150  }
151  int status=AiliaDetector.ailiaDetectorSetInputShape(ailia_detector,x,y);
152  if(status!=Ailia.AILIA_STATUS_SUCCESS){
153  if(logging){
154  Debug.Log("ailiaDetectorSetInputShape failed "+status);
155  }
156  return false;
157  }
158  return true;
159  }

◆ 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 を返す。

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

62  {
63  format=set_format;
64  channel=set_channel;
65  range=set_range;
66  algorithm=set_algorithm;
67  category_n=set_category_n;
68  flag=set_flag;
69  return true;
70  }

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