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

公開メンバ関数

bool Settings (uint set_format, uint set_channel, uint set_range, uint set_distance_type, string set_layer_name)
 モデル設定を行います。 [詳解]
 
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)
 メモリからネットワークオブジェクトを作成します。 [詳解]
 
float[] ComputeFromImage (Color32[] image, int image_width, int image_height)
 画像から特徴量を取得します。 [詳解]
 
float[] ComputeFromImageB2T (Color32[] image, int image_width, int image_height)
 上下反転の画像から特徴量を取得します。 [詳解]
 
float Match (float[] feature1, float[] feature2)
 特徴量同士の距離を計算します。 [詳解]
 
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 ライブラリのステータスコードを取得します。 [詳解]
 

関数詳解

◆ Close()

override void ailia.AiliaFeatureExtractorModel.Close ( )
inlinevirtual

特徴抽出クオブジェクトを破棄します。

戻り値
なし。

特徴抽出クオブジェクトを破棄します。

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

365  {
366  if(ailia_feature_extractor!=IntPtr.Zero){
367  AiliaFeatureExtractor.ailiaDestroyFeatureExtractor(ailia_feature_extractor);
368  ailia_feature_extractor=IntPtr.Zero;
369  }
370  base.Close();
371  }

◆ ComputeFromImage()

float [] ailia.AiliaFeatureExtractorModel.ComputeFromImage ( Color32[]  image,
int  image_width,
int  image_height 
)
inline

画像から特徴量を取得します。

引数
image検出対象画像
image_width画像幅
image_height画像高さ
戻り値
特徴ベクトル

画像から特徴ベクトルを計算します。

208  {
209  return ComputeFromImageWithFormat(image,image_width,image_height,AiliaFormat.AILIA_IMAGE_FORMAT_RGBA);
210  }

◆ ComputeFromImageB2T()

float [] ailia.AiliaFeatureExtractorModel.ComputeFromImageB2T ( Color32[]  image,
int  image_width,
int  image_height 
)
inline

上下反転の画像から特徴量を取得します。

引数
image検出対象画像
image_width画像幅
image_height画像高さ
戻り値
特徴ベクトル

画像から特徴ベクトルを計算します。

234  {
235  return ComputeFromImageWithFormat(image,image_width,image_height,AiliaFormat.AILIA_IMAGE_FORMAT_RGBA_B2T);
236  }

◆ Dispose() [1/2]

override void ailia.AiliaFeatureExtractorModel.Dispose ( )
inlinevirtual

リソースを解放します。

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

381  {
382  Dispose(true);
383  }
override void Dispose()
リソースを解放します。
Definition: AiliaFeatureExtractorModel.cs:380

◆ Dispose() [2/2]

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

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

386  {
387  if (disposing){
388  // release managed resource
389  }
390  Close(); // release unmanaged resource
391  base.Dispose(disposing);
392  }
override void Close()
特徴抽出クオブジェクトを破棄します。
Definition: AiliaFeatureExtractorModel.cs:365

◆ Match()

float ailia.AiliaFeatureExtractorModel.Match ( float[]  feature1,
float[]  feature2 
)
inline

特徴量同士の距離を計算します。

引数
feature1特徴量1
feature2特徴量2
戻り値
計算された距離

特徴量1と特徴量2の間の距離を計算します。

320  {
321  if(feature1==null || feature2==null){
322  if(logging){
323  Debug.Log("input feature is empty");
324  }
325  return float.NaN;
326  }
327 
328  float distance=0;
329 
330  GCHandle feature1_handle = GCHandle.Alloc(feature1, GCHandleType.Pinned);
331  IntPtr feature1_buf_ptr = feature1_handle.AddrOfPinnedObject();
332 
333  GCHandle feature2_handle = GCHandle.Alloc(feature2, GCHandleType.Pinned);
334  IntPtr feature2_buf_ptr = feature2_handle.AddrOfPinnedObject();
335 
336  int status=AiliaFeatureExtractor.ailiaFeatureExtractorMatch(ailia_feature_extractor,ref distance, distace_type, feature1_buf_ptr, (uint)feature1.Length*4, feature2_buf_ptr, (uint)feature2.Length*4);
337  if(status!=Ailia.AILIA_STATUS_SUCCESS){
338  if(logging){
339  Debug.Log("ailiaFeatureExtractorMatch failed "+status);
340  }
341  return float.NaN;
342  }
343 
344  feature1_handle.Free();
345  feature2_handle.Free();
346  return distance;
347  }
bool logging
Definition: AiliaModel.cs:33

◆ OpenEx()

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

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

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

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

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

130  {
131  Close();
132  bool status=base.OpenEx(callback,arg1,arg2);
133  if(status==false){
134  if(logging){
135  Debug.Log("ailiaModelOpenEx failed");
136  }
137  return false;
138  }
139  return OpenFeatureExtractor();
140  }

◆ OpenFile()

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

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

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

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

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

96  {
97  Close();
98  bool status=base.OpenFile(prototxt,model_path);
99  if(status==false){
100  if(logging){
101  Debug.Log("ailiaModelOpenFile failed");
102  }
103  return false;
104  }
105  return OpenFeatureExtractor();
106  }

◆ OpenMem()

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

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

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

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

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

162  {
163  Close();
164  bool status=base.OpenMem(prototxt_buf,model_buf);
165  if(status==false){
166  if(logging){
167  Debug.Log("ailiaModelOpenMem failed");
168  }
169  return false;
170  }
171  return OpenFeatureExtractor();
172  }

◆ Settings()

bool ailia.AiliaFeatureExtractorModel.Settings ( uint  set_format,
uint  set_channel,
uint  set_range,
uint  set_distance_type,
string  set_layer_name 
)
inline

モデル設定を行います。

引数
set_formatネットワークの画像フォーマット (AILIA_NETWORK_IMAGE_FORMAT_*)
set_channelネットワークの画像チャンネル (AILIA_NETWORK_IMAGE_CHANNEL_*)
set_rangeネットワークの画像レンジ (AILIA_NETWORK_IMAGE_RANGE_*)
set_distance_type特徴に対応したレイヤーの名称 (VGG16の場合はfc1, NULLで最終レイヤー)
set_layer_name特徴に対応したレイヤーの名称 (VGG16の場合はfc1, NULLで最終レイヤー)
戻り値
成功した場合 true を返す。

ネットワークの画像の前処理と、距離計算の設定を行います。

注釈
Open系API呼び出し後の呼び出しは無効です(falseを返却します)
62  {
63  if (ailia_feature_extractor != IntPtr.Zero)
64  {
65  Debug.Assert(false, "Ailia Feature Extractor is already initialized.");
66  return false;
67  }
68  format=set_format;
69  channel=set_channel;
70  range=set_range;
71  distace_type=set_distance_type;
72  layer_name=set_layer_name;
73  return true;
74  }

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