ailiaFFI class

Written for the FFI article

Constructors

ailiaFFI(DynamicLibrary dynamicLibrary)
The symbols are looked up in dynamicLibrary.
ailiaFFI.fromLookup(Pointer<T> lookup(String symbolName))
The symbols are looked up with lookup.

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

ailiaClassifierCompute(Pointer<AILIAClassifier> classifier, Pointer<Void> src, int src_stride, int src_width, int src_height, int src_format, int max_class_count) int
~japanese @brief 物体識別を行います。 @param classifier 識別オブジェクトポインタ @param src 画像データ(32bpp) @param src_stride 1ラインのバイト数 @param src_width 画像幅 @param src_height 画像高さ @param src_format 画像のフォーマット (AILIA_IMAGE_FORMAT_*) @param max_class_count 識別結果の数の最大 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaClassifierGetClass(Pointer<AILIAClassifier> classifier, Pointer<AILIAClassifierClass> obj, int cls_idx, int version) int
~japanese @brief 識別結果を取得します。 @param classifier 識別オブジェクトポインタ @param cls クラス情報 @param cls_idx クラスインデックス @param version \ref AILIA_CLASSIFIER_CLASS_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details ailiaClassifierCompute() を一度も実行していない場合は \ref AILIA_STATUS_INVALID_STATE が返ります。 識別結果は推定確率順でソートされます。
ailiaClassifierGetClassCount(Pointer<AILIAClassifier> classifier, Pointer<Uint32> cls_count) int
~japanese @brief 識別結果の数を取得します。 @param classifier 識別オブジェクトポインタ @param cls_count クラス数 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaCopyBlobData(Pointer<AILIANetwork> dst_net, int dst_blob_idx, Pointer<AILIANetwork> src_net, int src_blob_idx) int
~japanese @brief 指定したBlob間でデータをコピーします
ailiaCreate(Pointer<Pointer<AILIANetwork>> net, int env_id, int num_thread) int
~japanese @brief ネットワークオブジェクトを作成します。 @param net ネットワークオブジェクトポインタへのポインタ @param env_id 計算に利用する推論実行環境のID( ailiaGetEnvironment() で取得) \ref AILIA_ENVIRONMENT_ID_AUTO にした場合は自動で選択する @param num_thread スレッド数の上限( \ref AILIA_MULTITHREAD_AUTO にした場合は自動で設定) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details ネットワークオブジェクトを作成します。 推論実行環境を自動にした場合はCPUモードになり、BLASが利用できる場合はBLASを利用します。 なお、BLASを利用する場合num_threadは無視される場合があります。
ailiaCreateClassifier(Pointer<Pointer<AILIAClassifier>> classifier, Pointer<AILIANetwork> net, int format, int channel, int range) int
~japanese @brief 識別オブジェクトを作成します。 @param classifier 識別オブジェクトポインタへのポインタ @param net ネットワークオブジェクトポインタ @param format ネットワークの画像フォーマット (AILIA_NETWORK_IMAGE_FORMAT_) @param channel ネットワークの画像チャンネル (AILIA_NETWORK_IMAGE_CHANNEL_) @param range ネットワークの画像レンジ (AILIA_NETWORK_IMAGE_RANGE_*) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaCreateDetector(Pointer<Pointer<AILIADetector>> detector, Pointer<AILIANetwork> net, int format, int channel, int range, int algorithm, int category_count, int flags) int
~japanese @brief 検出オブジェクトを作成します。 @param detector 検出オブジェクトポインタ @param net ネットワークオブジェクトポインタ @param format ネットワークの画像フォーマット (AILIA_NETWORK_IMAGE_FORMAT_) @param channel ネットワークの画像チャンネル (AILIA_NETWORK_IMAGE_CHANNEL_) @param range ネットワークの画像レンジ (AILIA_NETWORK_IMAGE_RANGE_) @param algorithm 検出アルゴリズム(AILIA_DETECTOR_ALGORITHM_) @param category_count 検出カテゴリ数(VOCの場合は20、COCOの場合は80、などを指定) @param flags 追加オプションフラグ(AILIA_DETECTOR_FLAG_*) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaCreateFeatureExtractor(Pointer<Pointer<AILIAFeatureExtractor>> fextractor, Pointer<AILIANetwork> net, int format, int channel, int range, Pointer<Int8> layer_name) int
~japanese @brief 特徴抽出オブジェクトを作成します。 @param fextractor 特徴抽出オブジェクトポインタ @param net ネットワークオブジェクトポインタ @param format ネットワークの画像フォーマット (AILIA_NETWORK_IMAGE_FORMAT_) @param channel ネットワークの画像チャンネル (AILIA_NETWORK_IMAGE_CHANNEL_) @param range ネットワークの画像レンジ (AILIA_NETWORK_IMAGE_RANGE_*) @param layer_name 特徴に対応したレイヤーの名称 (VGG16の場合はfc1, NULLで最終レイヤー) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaCreatePoseEstimator(Pointer<Pointer<AILIAPoseEstimator>> pose_estimator, Pointer<AILIANetwork> net, int algorithm) int
~japanese @brief 検出オブジェクトを作成します。 @param pose_estimator 検出オブジェクトポインタ @param net ネットワークオブジェクトポインタ @param algorithm 検出アルゴリズム (AILIA_POSE_ESTIMATOR_ALGORITHM_*) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details caffemodelとprototxtを読み込んだAILIANetworkから検出オブジェクトを作成します。
ailiaDestroy(Pointer<AILIANetwork> net) → void
~japanese @brief ネットワークオブジェクトを破棄します。 @param net ネットワークオブジェクトポインタ
ailiaDestroyClassifier(Pointer<AILIAClassifier> classifier) → void
~japanese @brief 識別オブジェクトを破棄します。 @param classifier 識別オブジェクトポインタ
ailiaDestroyDetector(Pointer<AILIADetector> detector) → void
~japanese @brief 検出オブジェクトを破棄します。 @param detector 検出オブジェクトポインタ
ailiaDestroyFeatureExtractor(Pointer<AILIAFeatureExtractor> fextractor) → void
~japanese @brief 特徴抽出オブジェクトを破棄します。 @param fextractor 特徴抽出オブジェクトポインタ
ailiaDestroyPoseEstimator(Pointer<AILIAPoseEstimator> pose_estimator) → void
~japanese @brief 検出オブジェクトを破棄します。 @param pose_estimator 検出オブジェクトポインタ
ailiaDetectorCompute(Pointer<AILIADetector> detector, Pointer<Void> src, int src_stride, int src_width, int src_height, int src_format, double threshold, double iou) int
~japanese @brief 物体検出を行います。 @param detector 検出オブジェクトポインタ @param src 画像データ(32bpp) @param src_stride 1ラインのバイト数 @param src_width 画像幅 @param src_height 画像高さ @param src_format 画像フォーマット (AILIA_IMAGE_FORMAT_*) @param threshold 検出しきい値(0.1f等)(小さいほど検出されやすくなり、検出数増加) @param iou 重複除外しきい値(0.45f等)(小さいほど重複を許容せず検出数減少) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaDetectorGetObject(Pointer<AILIADetector> detector, Pointer<AILIADetectorObject> obj, int obj_idx, int version) int
~japanese @brief 検出結果を取得します。 @param detector 検出オブジェクトポインタ @param obj オブジェクト情報 @param obj_idx オブジェクトインデックス @param version AILIA_DETECTOR_OBJECT_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details ailiaDetectorCompute() を一度も実行していない場合は \ref AILIA_STATUS_INVALID_STATE が返ります。 検出結果は推定確率順でソートされます。
ailiaDetectorGetObjectCount(Pointer<AILIADetector> detector, Pointer<Uint32> obj_count) int
~japanese @brief 検出結果の数を取得します。 @param detector 検出オブジェクトポインタ @param obj_count オブジェクト数 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaDetectorSetAnchors(Pointer<AILIADetector> detector, Pointer<Float> anchors, int anchors_count) int
~japanese @brief YoloV2などのためにアンカーズ (anchorsまたはbiases) の情報を設定します。 @param detector 検出オブジェクトポインタ @param anchors アンカーズの寸法 (検出ボックスの形状、高さと幅) @param anchors_count アンカーズの数 (anchorsの配列サイズの半分) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details YoloV2などは学習時に決定された複数の検出ボックスを使用して物体検出を行います。このAPIで学習時に決定された検出ボックスの形状を設定することで、正しい推論を行います。 anchorsには{x,y,x,y...}の形式で格納します。 anchors_countが5の場合、anchorsは10次元の配列になります。
ailiaDetectorSetInputShape(Pointer<AILIADetector> detector, int input_width, int input_height) int
~japanese @brief YoloV3またはYoloXでのモデルへの入力画像サイズを指定します。 @param detector 検出オブジェクトポインタ @param input_width モデルの入力画像幅 @param input_height モデルの入力画像高さ @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details YoloV3では単一のモデルが任意の入力解像度に対応します。(32 の倍数制限あり) YoloXでは単一のモデルが任意の入力解像度に対応します。 計算量の削減等でモデルへの入力画像サイズを指定する場合この API を実行してください。 ailiaCreateDetector() () と ailiaDetectorCompute() () の間に実行する必要があります。 この API を実行しない場合、デフォルトの 416x416 を利用します。 YOLOv3またはYOLOX 以外で実行した場合、 \ref AILIA_STATUS_INVALID_STATE を返します。
ailiaDisableLayerFusion(Pointer<AILIANetwork> net) int
~japanese @brief 推論時のレイヤー統合を無効化します @param net ネットワークオブジェクトポインタ @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details レイヤー統合により取得できなくなるBlobを取得する必要がある場合などに用います。 ailiaCreate() の直後に指定する必要があります。ailiaOpenを呼び出した後は変更することができません。 なお、レイヤー統合を無効化すると推論速度が低下する場合があります。
ailiaFeatureExtractorCompute(Pointer<AILIAFeatureExtractor> fextractor, Pointer<Void> dst, int dst_size, Pointer<Void> src, int src_stride, int src_width, int src_height, int src_format) int
~japanese @brief 特徴の抽出を行います。 @param fextractor 特徴抽出オブジェクトポインタ @param dst 特徴の格納先ポインタ(numeric型) @param dst_size dstのサイズ(byte) @param src 画像データ(32bpp) @param src_stride 1ラインのバイト数 @param src_width 画像幅 @param src_height 画像高さ @param src_format 画像フォーマット (AILIA_IMAGE_FORMAT_*) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaFeatureExtractorMatch(Pointer<AILIAFeatureExtractor> fextractor, Pointer<Float> distance, int distace_type, Pointer<Void> feature1, int feature1_size, Pointer<Void> feature2, int feature2_size) int
~japanese @brief 特徴間の距離を計算します。 @param fextractor 特徴抽出オブジェクトポインタ @param distance 特徴間距離 @param distance_type 特徴間距離の種別 @param feature1 一方の特徴の格納先ポインタ(numeric型) @param feature1_size dstのサイズ(byte) @param feature2 他方の特徴の格納先ポインタ(numeric型) @param feature2_size dstのサイズ(byte) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaFinalize() int
~japanese @brief ailiaがグローバルに確保したGPUリソース等を解放します @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返します。 @details ailiaCreate() で作成したインスタンス全てを ailiaDestroy() で解放した状態で呼び出す必要があります。 それ以外の状態で呼び出された場合 #ref AILIA_STATUS_INVALID_STATE を返します。 Windows 環境の場合、DllMain 等からこの API を呼び出すとデッドロックする可能性があります。
ailiaFindBlobIndexByName(Pointer<AILIANetwork> net, Pointer<Uint32> blob_idx, Pointer<Int8> name) int
~japanese @brief 推論時の内部データ(Blob)のインデックスを名前で探し取得します。 @param net ネットワークオブジェクトポインタ @param blob_idx blobのインデックス (0~ ailiaGetBlobCount() -1) @param name 検索するBlob名 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、ailiaOpenStreamXXX呼び出し時は入出力Blobのみが検索可能です。中間Blobを検索する場合ailiaOpneWeightXXXを呼び出す必要があります。
ailiaFindBlobNameByIndex(Pointer<AILIANetwork> net, Pointer<Int8> buffer, int buffer_size, int blob_idx) int
~japanese @brief 推論時の内部データ(Blob)の名前をインデックスで探し取得します。 @param net ネットワークオブジェクトポインタ @param buffer Blob名の出力先バッファ @param buffer_size バッファのサイズ(終端null文字分を含む) @param blob_idx 検索するblobのインデックス @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、ailiaOpenStreamXXX呼び出し時は入出力Blobのみが検索可能です。中間Blobを検索する場合ailiaOpneWeightXXXを呼び出す必要があります。
ailiaFormatConvert(Pointer<Void> dst, int dst_width, int dst_height, int dst_format, int dst_channel, int dst_range, Pointer<Void> src, int src_stride, int src_width, int src_height, int src_format) int
~japanese @brief 画像のフォーマットを変換します。 @param dst 変換後画像の格納先(numeric型、sizeof(float) * dst_width * dst_height * チャンネル数(解説参照)以上のサイズを確保すること) @param dst_width 変換後画像の横幅 @param dst_height 変換後画像の高さ @param dst_format 変換後画像の形式 (AILIA_NETWORK_IMAGE_FORMAT_) @param dst_channel 変換後画像のチャンネル順 (AILIA_NETWORK_IMAGE_CHANNEL_) @param dst_range 変換後画像のレンジ (AILIA_NETWORK_IMAGE_RANGE_) @param src 変換元画像の格納先(32bpp) @param src_stride 変換元画像のラインバイト数 @param src_width 変換元画像の横幅 @param src_height 変換元画像の高さ @param src_format 変換元画像の形式 (AILIA_IMAGE_FORMAT_) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details 画像フォーマットを変更します。dst_formatが \ref AILIA_NETWORK_IMAGE_FORMAT_BGR もしくはAILIA_NETWORK_IMAGE_FORMAT_RGB の場合、チャンネル数は3, \ref AILIA_NETWORK_IMAGE_FORMAT_GRAY の場合チャンネル数は1となります。
ailiaGetBlobCount(Pointer<AILIANetwork> net, Pointer<Uint32> blob_count) int
~japanese @brief 推論時の内部データ(Blob)の数を取得します。 @param net ネットワークオブジェクトポインタ @param blob_count blobの数の格納先 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、ailiaOpenStreamXXX呼び出し時は入出力Blobのみが列挙され、ailiaOpneWeightXXX呼び出し時に中間Blobの列挙が行われます。 そのためailiaOpenStreamXXX呼び出し直後とailiaOpneWeightXXX呼び出し直後で返答する数が変わる場合があります。
ailiaGetBlobData(Pointer<AILIANetwork> net, Pointer<Void> dest, int dest_size, int blob_idx) int
~japanese @brief 推論時の内部データ(Blob)を取得します。 @param net ネットワークオブジェクトポインタ @param dest 推論結果の書き出し先バッファにX,Y,Z,Wの順でnumeric型で格納 @param dest_size 推論結果の書き出し先バッファのbyte数 @param blob_idx blobのインデックス (0~ ailiaGetBlobCount() -1) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details ailiaPredict() または ailiaUpdate() を一度も実行していない場合は \ref AILIA_STATUS_INVALID_STATE が返ります。
ailiaGetBlobDataType(Pointer<AILIANetwork> net, Pointer<Int32> type, int blob_idx) int
~japanese @brief 推論時の内部データ(Blob)の型を取得します。 @param net ネットワークオブジェクトポインタ @param type データ型の書き出し先バッファ。値は AILIA_DATATYPE_XXX で定義されています。 @param blob_idx blobのインデックス (0~ ailiaGetBlobCount() -1) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaGetBlobDim(Pointer<AILIANetwork> net, Pointer<Uint32> dim, int blob_idx) int
~japanese @brief 推論時の内部データ(Blob)の次元を取得します。 @param net ネットワークオブジェクトポインタ @param dim blobの次元の格納先 @param blob_idx blobのインデックス (0~ ailiaGetBlobCount() -1) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、それ以外のエラーの場合はエラーコードを返す。 @details このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaGetBlobIndexByInputIndex(Pointer<AILIANetwork> net, Pointer<Uint32> blob_idx, int input_blob_idx) int
~japanese @brief 入力データ(Blob)のインデックスを取得します @param net ネットワークオブジェクトポインタ @param blob_idx blobのインデックス(0~ ailiaGetBlobCount() -1) @param input_blob_idx 入力blob内でのインデックス(0~ ailiaGetInputBlobCount() -1) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、ailiaOpenStreamXXX呼び出し時に列挙されたinput_blob_idx及びblob_idxは保持されるためailiaOpneWeightXXX呼び出し後も同じ値が返ることが保証されます。
ailiaGetBlobIndexByOutputIndex(Pointer<AILIANetwork> net, Pointer<Uint32> blob_idx, int output_blob_idx) int
~japanese @brief 出力データ(Blob)のインデックスを取得します @param net ネットワークオブジェクトポインタ @param blob_idx blobのインデックス(0~ ailiaGetBlobCount() -1) @param output_blob_idx 出力blob内でのインデックス(0~ ailiaGetOutputBlobCount() -1) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。
ailiaGetBlobNameLengthByIndex(Pointer<AILIANetwork> net, int blob_idx, Pointer<Uint32> buffer_size) int
~japanese @brief 内部データ(Blob)の名前の出力に必要なバッファのサイズを取得します。 @param net ネットワークオブジェクトポインタ @param blob_idx blobのインデックス (0~ ailiaGetBlobCount() -1) @param buffer_size Blob名の出力に必要なバッファのサイズ(終端null文字分を含む) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、ailiaOpenStreamXXX呼び出し時は入出力Blobのみが検索可能です。中間Blobを検索する場合ailiaOpneWeightXXXを呼び出す必要があります。
ailiaGetBlobShape(Pointer<AILIANetwork> net, Pointer<AILIAShape> shape, int blob_idx, int version) int
~japanese @brief 推論時の内部データ(Blob)の形状を取得します。 @param net ネットワークオブジェクトポインタ @param shape データの形状情報の格納先 @param blob_idx blobのインデックス (0~ ailiaGetBlobCount() -1) @param version AILIA_SHAPE_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、5次元以上の場合 \ref AILIA_STATUS_NDIMENSION_SHAPE 、 それ以外のエラーの場合はエラーコードを返す。 @details 形状が5次元以上の場合は ailiaGetBlobDim() 、 ailiaGetBlobShapeND() を利用してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaGetBlobShapeND(Pointer<AILIANetwork> net, Pointer<Uint32> shape, int dim, int blob_idx) int
~japanese @brief 推論時の内部データ(Blob)の形状を取得します。 @param net ネットワークオブジェクトポインタ @param shape blobの各次元の大きさの格納先配列(dim-1, dim-2, ... ,1, 0順で格納) @param dim shapeの次元 @param blob_idx blobのインデックス (0~ ailiaGetBlobCount() -1) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、それ以外のエラーの場合はエラーコードを返す。 @details このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaGetEnvironment(Pointer<Pointer<AILIAEnvironment>> env, int env_idx, int version) int
~japanese @brief 計算環境の一覧を取得します @param env 計算環境情報の格納先(AILIANetworkインスタンスを破棄するまで有効) @param env_idx 計算環境情報のインデックス(0~ ailiaGetEnvironmentCount() -1) @param version AILIA_ENVIRONMENT_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaGetEnvironmentCount(Pointer<Uint32> env_count) int
~japanese @brief 利用可能な計算環境(CPU, GPU)の数を取得します @param env_count 計算環境情報の数の格納先 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaGetErrorDetail(Pointer<AILIANetwork> net) Pointer<Int8>
~japanese @brief エラーの詳細を返します @param net ネットワークオブジェクトポインタ @return エラー詳細 @details 返値は解放する必要はありません。 文字列の有効期間は次にailiaのAPIを呼ぶまでです。 モデルが暗号化されている場合は空文字を返します。
ailiaGetInputBlobCount(Pointer<AILIANetwork> net, Pointer<Uint32> input_blob_count) int
~japanese @brief 入力データ(Blob)の数を取得します。 @param net ネットワークオブジェクトポインタ @param input_blob_count 入力blobの数の格納先 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、入力Blobの列挙はailiaOpenStreamXXX呼び出し時に行われますが変更可能な重み(input付きinitialzier)の列挙はailiaOpneWeightXXX呼び出し時に行われます。 そのためailiaOpenStreamXXX呼び出し直後とailiaOpneWeightXXX呼び出し直後で返答する数が変わる場合があります。
ailiaGetInputDim(Pointer<AILIANetwork> net, Pointer<Uint32> dim) int
~japanese @brief 推論時の入力データの次元を取得します。 @param net ネットワークオブジェクトポインタ @param dim 入力データの次元の格納先 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、それ以外のエラーの場合はエラーコードを返す。 @details このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaGetInputShape(Pointer<AILIANetwork> net, Pointer<AILIAShape> shape, int version) int
~japanese @brief 推論時の入力データの形状を取得します。 @param net ネットワークオブジェクトポインタ @param shape 入力データの形状情報 @param version AILIA_SHAPE_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、5次元以上の場合 \ref AILIA_STATUS_NDIMENSION_SHAPE 、 形状の一部が未確定の場合 \ref AILIA_STATUS_UNSETTLED_SHAPE 、それ以外のエラーの場合はエラーコードを返す。 @details 形状が5次元以上の場合は ailiaGetInputDim() 、 ailiaGetInputShapeND() を利用してください。 形状の一部が未確定の場合、該当する次元の値は0となり、それ以外の次元の値は有効な値が格納されます。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaGetInputShapeND(Pointer<AILIANetwork> net, Pointer<Uint32> shape, int dim) int
~japanese @brief 推論時の入力データの形状を取得します。 @param net ネットワークオブジェクトポインタ @param shape 入力データの各次元の大きさの格納先配列(dim-1, dim-2, ... ,1, 0順で格納) @param dim shapeの次元 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、形状の一部が未確定の場合 \ref AILIA_STATUS_UNSETTLED_SHAPE 、 それ以外のエラーの場合はエラーコードを返す。 @details 形状の一部が未確定の場合、該当する次元の値は0となり、それ以外の次元の値は有効な値が格納されます。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaGetOutputBlobCount(Pointer<AILIANetwork> net, Pointer<Uint32> output_blob_count) int
~japanese @brief 出力データ(Blob)の数を取得します。 @param net ネットワークオブジェクトポインタ @param output_blob_count 出力blobの数の格納先 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。
ailiaGetOutputDim(Pointer<AILIANetwork> net, Pointer<Uint32> dim) int
~japanese @brief 推論時の出力データの次元を取得します。 @param net ネットワークオブジェクトポインタ @param dim 出力データの次元の格納先 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、それ以外のエラーの場合はエラーコードを返す。 @details このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaGetOutputShape(Pointer<AILIANetwork> net, Pointer<AILIAShape> shape, int version) int
~japanese @brief 推論時の出力データの形状を取得します。 @param net ネットワークオブジェクトポインタ @param shape 出力データの形状情報 @param version AILIA_SHAPE_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、5次元以上の場合 \ref AILIA_STATUS_NDIMENSION_SHAPE 、 それ以外のエラーの場合エラーコードを返す。 形状が5次元以上の場合は ailiaGetOutputDim() 、 ailiaGetOutputShapeND() を利用してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaGetOutputShapeND(Pointer<AILIANetwork> net, Pointer<Uint32> shape, int dim) int
~japanese @brief 推論時の出力データの形状を取得します。 @param net ネットワークオブジェクトポインタ @param shape 出力データの各次元の大きさの格納先配列(dim-1, dim-2, ... ,1, 0順で格納) @param dim shapeの次元 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、それ以外のエラーの場合はエラーコードを返す。 @details このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaGetSelectedEnvironment(Pointer<AILIANetwork> net, Pointer<Pointer<AILIAEnvironment>> env, int version) int
~japanese @brief 選択された計算環境を取得します @param net ネットワークオブジェクトポインタ @param env 計算環境情報の格納先(AILIANetworkインスタンスを破棄するまで有効) @param version AILIA_ENVIRONMENT_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaGetStatusString(int status_code) Pointer<Int8>
~japanese @brief ステータスコードに対応する文字列を返します。 @param status_code ステータスコード @return ステータスコードに対応する文字列。 @details 返値は解放する必要はありません。 返された文字列は ailia のライブラリ(ailia.dll, libailia.so 等)をアンロードするまで有効です。 AILIANetwork のインスタンスがある場合は ailiaGetErrorDetail() でエラーの詳細を取得できます。
ailiaGetSummaryLength(Pointer<AILIANetwork> net, Pointer<Uint32> buffer_size) int
~japanese @brief ネットワークSummary用に必要なバッファのサイズを取得します。 @param net ネットワークオブジェクトポインタ @param buffer_size バッファのサイズの格納先(終端null文字分を含む) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaGetVersion() Pointer<Int8>
~japanese @brief ライブラリバージョンを取得します @return バージョン番号 @details 返値は解放する必要はありません。
ailiaOpenStreamEx(Pointer<AILIANetwork> net, Pointer<Void> fopen_args, ailiaFileCallback callback, int version) int
~japanese @brief ネットワークオブジェクトを初期化します。(ユーザ定義ファイルアクセスコールバック) @param net ネットワークオブジェクトポインタ @param fopen_args \ref AILIA_USER_API_FOPEN に通知される引数ポインタ @param callback ユーザ定義ファイルアクセスコールバック関数構造体 @param version ファイルアクセスコールバック関数構造体のバージョン( \ref AILIA_FILE_CALLBACK_VERSION ) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details ファイルから読み込み、ネットワークオブジェクトを初期化します。
ailiaOpenStreamFileA(Pointer<AILIANetwork> net, Pointer<Int8> path) int
~japanese @brief ネットワークオブジェクトを初期化します。(ファイルから読み込み) @param net ネットワークオブジェクトポインタ @param path prototxtファイルのパス名(MBSC or UTF16) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details ファイルから読み込み、ネットワークオブジェクトを初期化します。
ailiaOpenStreamFileW(Pointer<AILIANetwork> net, Pointer<wchar_t> path) int
ailiaOpenStreamMem(Pointer<AILIANetwork> net, Pointer<Void> buf, int buf_size) int
~japanese @brief ネットワークオブジェクトを初期化します。(メモリから読み込み) @param net ネットワークオブジェクトポインタ @param buf prototxtファイルのデータへのポインタ @param buf_size prototxtファイルのデータサイズ @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details メモリから読み込み、ネットワークオブジェクトを初期化します。
ailiaOpenWeightEx(Pointer<AILIANetwork> net, Pointer<Void> fopen_args, ailiaFileCallback callback, int version) int
~japanese @brief ネットワークオブジェクトに重み係数を読み込みます。(ユーザ定義ファイルアクセスコールバック) @param net ネットワークオブジェクトポインタ @param fopen_args \ref AILIA_USER_API_FOPEN に通知される引数ポインタ @param callback ユーザ定義ファイルアクセスコールバック関数構造体 @param version ファイルアクセスコールバック関数構造体のバージョン( \ref AILIA_FILE_CALLBACK_VERSION ) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details ファイルからネットワークオブジェクトに重み係数を読み込みます。
ailiaOpenWeightFileA(Pointer<AILIANetwork> net, Pointer<Int8> path) int
~japanese @brief ネットワークオブジェクトに重み係数を読み込みます。(ファイルから読み込み) @param net ネットワークオブジェクトポインタ @param path protobuf/onnxファイルのパス名(MBSC or UTF16) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details ファイルからネットワークオブジェクトに重み係数を読み込みます。
ailiaOpenWeightFileW(Pointer<AILIANetwork> net, Pointer<wchar_t> path) int
ailiaOpenWeightMem(Pointer<AILIANetwork> net, Pointer<Void> buf, int buf_size) int
~japanese @brief ネットワークオブジェクトに重み係数を読み込みます。(メモリから読み込み) @param net ネットワークオブジェクトポインタ @param buf protobuf/onnxファイルのデータへのポインタ @param buf_size protobuf/onnxファイルのデータサイズ @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details メモリからネットワークオブジェクトに重み係数を読み込みます。
ailiaPoseEstimatorCompute(Pointer<AILIAPoseEstimator> pose_estimator, Pointer<Void> src, int src_stride, int src_width, int src_height, int src_format) int
~japanese @brief 骨格検出・顔特徴点検出を行います。 @param pose_estimator 検出オブジェクトポインタ @param src 画像データ(32bpp) @param src_stride 1ラインのバイト数 @param src_width 画像幅 @param src_height 画像高さ @param src_format 画像形式 (AILIA_IMAGE_FORMAT_*) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaPoseEstimatorGetObjectCount(Pointer<AILIAPoseEstimator> pose_estimator, Pointer<Uint32> obj_count) int
~japanese @brief 検出結果の数を取得します。 @param pose_estimator 検出オブジェクトポインタ @param obj_count オブジェクト数 顔特徴点の場合は1または0となります。 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaPoseEstimatorGetObjectFace(Pointer<AILIAPoseEstimator> pose_estimator, Pointer<AILIAPoseEstimatorObjectFace> obj, int obj_idx, int version) int
~japanese @brief 顔特徴点検出結果を取得します。 @param pose_estimator 検出オブジェクトポインタ @param obj オブジェクト情報 @param obj_idx オブジェクトインデックス 必ず 0 を指定してください。 @param version AILIA_POSE_ESTIMATOR_OBJECT_FACE_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaPoseEstimatorGetObjectHand(Pointer<AILIAPoseEstimator> pose_estimator, Pointer<AILIAPoseEstimatorObjectHand> obj, int obj_idx, int version) int
~japanese @brief Hand 認識結果を取得します。 @param pose_estimator 検出オブジェクトポインタ @param obj オブジェクト情報 @param obj_idx オブジェクトインデックス 必ず 0 を指定してください。 @param version AILIA_POSE_ESTIMATOR_OBJECT_HAND_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaPoseEstimatorGetObjectPose(Pointer<AILIAPoseEstimator> pose_estimator, Pointer<AILIAPoseEstimatorObjectPose> obj, int obj_idx, int version) int
~japanese @brief 骨格検出結果を取得します。 @param pose_estimator 検出オブジェクトポインタ @param obj オブジェクト情報 @param obj_idx オブジェクトインデックス @param version AILIA_POSE_ESTIMATOR_OBJECT_POSE_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaPoseEstimatorGetObjectUpPose(Pointer<AILIAPoseEstimator> pose_estimator, Pointer<AILIAPoseEstimatorObjectUpPose> obj, int obj_idx, int version) int
~japanese @brief UpPose 認識結果を取得します。 @param pose_estimator 検出オブジェクトポインタ @param obj オブジェクト情報 @param obj_idx オブジェクトインデックス @param version AILIA_POSE_ESTIMATOR_OBJECT_POSE_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaPoseEstimatorSetThreshold(Pointer<AILIAPoseEstimator> pose_estimator, double threshold) int
~japanese @brief 検出閾値を設定します。 @param pose_estimator 検出オブジェクトポインタ @param threshold 検出閾値 0.0以上1.0以下の値で、値が小さいほど検出しやすくなります。 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。
ailiaPredict(Pointer<AILIANetwork> net, Pointer<Void> dest, int dest_size, Pointer<Void> src, int src_size) int
~japanese @brief 推論を行い推論結果を取得します。 @param net ネットワークオブジェクトポインタ @param dest 推論結果の書き出し先バッファにX,Y,Z,Wの順でnumeric型で格納 サイズはネットファイルのoutputSizeとなる @param dest_size 推論結果の書き出し先バッファのbyte数 @param src 推論データ X,Y,Z,Wの順でnumeric型で格納 サイズはネットファイルのinputSizeとなる @param src_size 推論データのbyte数 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaSetInputBlobData(Pointer<AILIANetwork> net, Pointer<Void> src, int src_size, int blob_idx) int
~japanese @brief 指定したBlobに入力データを与えます。 @param net ネットワークオブジェクトポインタ @param src 推論データ X,Y,Z,Wの順でnumeric型で格納 @param src_size 推論データのbyte数 @param blob_idx 入力するblobのインデックス @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details 複数入力があるネットワークなどで入力を指定する場合に用います。 blob_idxで入力レイヤーのblob以外のものを指定した場合、 \ref AILIA_STATUS_INVALID_ARGUMENT が返ります。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaSetInputBlobShape(Pointer<AILIANetwork> net, Pointer<AILIAShape> shape, int blob_idx, int version) int
~japanese @brief 指定したBlobの形状を変更します。 @param net ネットワークオブジェクトポインタ @param shape 入力データの形状情報 @param blob_idx 変更するblobのインデックス @param version AILIA_SHAPE_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details 複数入力があるネットワークなどで入力形状を変更する場合に用います。 blob_idxは入力レイヤーのblob以外のものを指定した場合 \ref AILIA_STATUS_INVALID_ARGUMENT が返ります。 その他の注意点は ailiaSetInputShape() の解説を参照してください。 入力形状のランクが5次元以上の場合は ailiaSetInputBlobShapeND() を利用してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaSetInputBlobShapeND(Pointer<AILIANetwork> net, Pointer<Uint32> shape, int dim, int blob_idx) int
~japanese @brief 指定したBlobの形状を変更します。 @param net ネットワークオブジェクトポインタ @param shape 入力データの各次元の大きさの配列(dim-1, dim-2, ... ,1, 0) @param dim shapeの次元 @param blob_idx 変更するblobのインデックス @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details 複数入力があるネットワークなどで入力形状を変更する場合に用います。 blob_idxは入力レイヤーのblob以外のものを指定した場合 \ref AILIA_STATUS_INVALID_ARGUMENT が返ります。 その他の注意点は ailiaSetInputShapeND() の解説を参照してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaSetInputShape(Pointer<AILIANetwork> net, Pointer<AILIAShape> shape, int version) int
~japanese @brief 推論時の入力データの形状を変更します。 @param net ネットワークオブジェクトポインタ @param shape 入力データの形状情報 @param version AILIA_SHAPE_VERSION @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details prototxtで定義されている入力形状を変更します。 prototxtに記述されているランクと同じにする必要があります。 なお、重み係数の形状が入力形状に依存しているなどによりエラーが返る場合があります。 prototxtで定義されているランクが4次元未満の場合は未使用の要素に1を設定する必要があります。 prototxtで定義されているランクが5次元以上の場合は ailiaSetInputShapeND() を利用してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaSetInputShapeND(Pointer<AILIANetwork> net, Pointer<Uint32> shape, int dim) int
~japanese @brief 推論時の入力データの形状を変更します。 @param net ネットワークオブジェクトポインタ @param shape 入力データの各次元の大きさの配列(dim-1, dim-2, ... ,1, 0) @param dim shapeの次元 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details prototxtで定義されている入力形状を変更します。 prototxtに記述されているランクと同じにする必要があります。 なお、重み係数の形状が入力形状に依存しているなどによりエラーが返る場合があります。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaSetMemoryMode(Pointer<AILIANetwork> net, int mode) int
~japanese @brief 推論時のメモリの使用方針を設定します @param net ネットワークオブジェクトポインタ @param mode メモリモード(論理和で複数指定可) AILIA_MEMORY_XXX (デフォルト: \ref AILIA_MEMORY_REDUCE_CONSTANT ) @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details メモリの使用方針を変更します。 \ref AILIA_MEMORY_NO_OPTIMIZATION 以外を指定した場合は、 推論時に確保する中間バッファーを開放するため、推論時のメモリ使用量を削減することができます。 ailiaCreate() の直後に指定する必要があります。ailiaOpenを呼び出した後は変更することができません。 なお、中間バッファーを開放するように指定した場合、該当するBlobに対し、 ailiaGetBlobData() を呼び出すと \ref AILIA_STATUS_DATA_HIDDEN エラーが返ります。
ailiaSetProfileMode(Pointer<AILIANetwork> net, int mode) int
~japanese @brief プロファイルモードをセットします @param net ネットワークオブジェクトポインタ @param mode プロファイルモード @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details プロファイルモードを指定します。デフォルトは無効です。 ailiaOpenStreamXXXを呼び出したあとに呼び出してください。 プロファイルモードを有効にした場合、 ailiaSummary() の出力にプロファイル結果が追加されます。
ailiaSetTemporaryCachePathA(Pointer<Int8> cache_dir) int
~japanese @brief 一時キャッシュディレクトリを指定します @param cache_dir 一時キャッシュディレクトリ @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details 指定したキャッシュディレクトリは推論実行環境毎に最適化したマシンコードを生成して保存するためにシステムが利用します。 ailia の実行開始時に一度だけ呼び出してください。二回目以降の呼び出しに対しては無視して成功を返します。 複数スレッドから呼び出された場合も内部で排他制御しているので特に問題は発生しません。 Vulkan のシェーダーキャッシュ機能など、この API を呼ぶまで利用できないものがあります。 cache_dirにはContext.getCacheDir()で取得したファイルパスを指定してください。
ailiaSetTemporaryCachePathW(Pointer<wchar_t> cache_dir) int
ailiaSummary(Pointer<AILIANetwork> net, Pointer<Int8> buffer, int buffer_size) int
~japanese @brief 各Blobの名前と形状を表示します。 @param net ネットワークオブジェクトポインタ @param buffer Summaryの出力先 @param buffer_size 出力バッファのサイズ(終端null文字分を含む)。 ailiaGetSummaryLength() で取得した値を設定してください。 @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
ailiaUpdate(Pointer<AILIANetwork> net) int
~japanese @brief 事前に指定した入力データで推論を行います。 @param net ネットワークオブジェクトポインタ @return 成功した場合は \ref AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。 @details ailiaSetInputBlobData() を用いて入力を与えた場合などに用います。 推論結果は ailiaGetBlobData() で取得してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited