ailia  1.4.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 ()
 選択された計算環境を取得します。 [詳解]
 
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 ライブラリのステータスコードを取得します。 [詳解]
 

関数詳解

◆ Close()

override void ailia.AiliaFeatureExtractorModel.Close ( )
inlinevirtual

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

戻り値
なし。


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

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

356  {
357  if(ailia_feature_extractor!=IntPtr.Zero){
358  AiliaFeatureExtractor.ailiaDestroyFeatureExtractor(ailia_feature_extractor);
359  ailia_feature_extractor=IntPtr.Zero;
360  }
361  base.Close();
362  }

◆ ComputeFromImage()

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

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

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

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

199  {
200  return ComputeFromImageWithFormat(image,image_width,image_height,AiliaFormat.AILIA_IMAGE_FORMAT_RGBA);
201  }

◆ ComputeFromImageB2T()

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

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

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

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

225  {
226  return ComputeFromImageWithFormat(image,image_width,image_height,AiliaFormat.AILIA_IMAGE_FORMAT_RGBA_B2T);
227  }

◆ Dispose() [1/2]

override void ailia.AiliaFeatureExtractorModel.Dispose ( )
inlinevirtual

リソースを解放します。

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

372  {
373  Dispose(true);
374  }
override void Dispose()
リソースを解放します。
Definition: AiliaFeatureExtractorModel.cs:371

◆ Dispose() [2/2]

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

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

377  {
378  if (disposing){
379  // release managed resource
380  }
381  Close(); // release unmanaged resource
382  base.Dispose(disposing);
383  }
override void Close()
特徴抽出クオブジェクトを破棄します。
Definition: AiliaFeatureExtractorModel.cs:356

◆ Match()

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

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

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

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

311  {
312  if(feature1==null || feature2==null){
313  if(logging){
314  Debug.Log("input feature is empty");
315  }
316  return float.NaN;
317  }
318 
319  float distance=0;
320 
321  GCHandle feature1_handle = GCHandle.Alloc(feature1, GCHandleType.Pinned);
322  IntPtr feature1_buf_ptr = feature1_handle.AddrOfPinnedObject();
323 
324  GCHandle feature2_handle = GCHandle.Alloc(feature2, GCHandleType.Pinned);
325  IntPtr feature2_buf_ptr = feature2_handle.AddrOfPinnedObject();
326 
327  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);
328  if(status!=Ailia.AILIA_STATUS_SUCCESS){
329  if(logging){
330  Debug.Log("ailiaFeatureExtractorMatch failed "+status);
331  }
332  return float.NaN;
333  }
334 
335  feature1_handle.Free();
336  feature2_handle.Free();
337  return distance;
338  }
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を再実装しています。

121  {
122  Close();
123  bool status=base.OpenEx(callback,arg1,arg2);
124  if(status==false){
125  if(logging){
126  Debug.Log("ailiaModelOpenEx failed");
127  }
128  return false;
129  }
130  return OpenFeatureExtractor();
131  }

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

87  {
88  Close();
89  bool status=base.OpenFile(prototxt,model_path);
90  if(status==false){
91  if(logging){
92  Debug.Log("ailiaModelOpenFile failed");
93  }
94  return false;
95  }
96  return OpenFeatureExtractor();
97  }

◆ OpenMem()

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

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

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


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

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

153  {
154  Close();
155  bool status=base.OpenMem(prototxt_buf,model_buf);
156  if(status==false){
157  if(logging){
158  Debug.Log("ailiaModelOpenMem failed");
159  }
160  return false;
161  }
162  return OpenFeatureExtractor();
163  }

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


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

58  {
59  format=set_format;
60  channel=set_channel;
61  range=set_range;
62  distace_type=set_distance_type;
63  layer_name=set_layer_name;
64  return true;
65  }

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