ailia  1.4.0.0
クラス | 公開メンバ関数 | 静的公開変数類 | 全メンバ一覧
ailia.AiliaDetector クラス

クラス

class  AILIADetectorObject
 

公開メンバ関数

static int ailiaCreateDetector (ref IntPtr detector, IntPtr net, UInt32 format, UInt32 channel, UInt32 range, UInt32 algorithm, UInt32 category_count, UInt32 flags)
 検出オブジェクトを作成します。 [詳解]
 
static void ailiaDestroyDetector (IntPtr detector)
 検出オブジェクトを破棄します。 [詳解]
 
static int ailiaDetectorCompute (IntPtr detector, IntPtr src, UInt32 src_stride, UInt32 src_width, UInt32 src_height, UInt32 src_format, float threshold, float iou)
 物体認識を行います。 [詳解]
 
static int ailiaDetectorGetObjectCount (IntPtr detector, ref UInt32 obj_count)
 認識結果の数を取得します。 [詳解]
 
static int ailiaDetectorGetObject (IntPtr detector, [In, Out] AILIADetectorObject obj, UInt32 obj_idx, UInt32 version)
 認識結果を取得します。 [詳解]
 
static int ailiaDetectorSetAnchors (IntPtr detector, float[] anchors, UInt32 anchors_count)
 YoloV2などのためにアンカーズ (anchors又はbiases) の情報を設定します。 [詳解]
 
static int ailiaDetectorSetInputShape (IntPtr detector, UInt32 input_width, UInt32 input_height)
 YoloV3でのモデルへの入力画像サイズを指定します。 [詳解]
 

静的公開変数類

const Int32 AILIA_DETECTOR_OBJECT_VERSION = (1)
 
const Int32 AILIA_DETECTOR_ALGORITHM_YOLOV1 = (0)
 
const Int32 AILIA_DETECTOR_ALGORITHM_YOLOV2 = (1)
 
const Int32 AILIA_DETECTOR_ALGORITHM_YOLOV3 = (2)
 
const Int32 AILIA_DETECTOR_ALGORITHM_YOLOV4 = (3)
 
const Int32 AILIA_DETECTOR_ALGORITHM_YOLOX = (4)
 
const Int32 AILIA_DETECTOR_ALGORITHM_SSD = (8)
 
const Int32 AILIA_DETECTOR_FLAG_NORMAL = (0)
 

関数詳解

◆ ailiaCreateDetector()

static int ailia.AiliaDetector.ailiaCreateDetector ( ref IntPtr  detector,
IntPtr  net,
UInt32  format,
UInt32  channel,
UInt32  range,
UInt32  algorithm,
UInt32  category_count,
UInt32  flags 
)

検出オブジェクトを作成します。

引数
detector検出オブジェクトポインタ
netネットワークオブジェクトポインタ
formatネットワークの画像フォーマット (AILIA_NETWORK_IMAGE_FORMAT_*)
channelネットワークの画像チャンネル (AILIA_NETWORK_IMAGE_CHANNEL_*)
rangeネットワークの画像レンジ (AILIA_NETWORK_IMAGE_RANGE_*)
algorithm検出アルゴリズム(AILIA_DETECTOR_ALGORITHM_*)
caregory_count検出カテゴリ数(VOCの場合は20、COCOの場合は80、などを指定)
flags追加オプションフラグ(AILIA_DETECTOR_FLAG_*)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

Create a detector object.

引数
detectorDetector object pointer
netNetwork object pointer
formatImage format of the network (AILIA_NETWORK_IMAGE_FORMAT_*)
channelImage channel of the network (AILIA_NETWORK_IMAGE_CHANNEL_*)
rangeImage range of the network (AILIA_NETWORK_IMAGE_RANGE_*)
algorithmDetection algorithm (AILIA_DETECTOR_ALGORITHM_*)
caregory_countNumber of detection categories (20 for VOC, 80 for COCO, etc.)
flagsAdditional option flags (AILIA_DETECTOR_FLAG_*)
戻り値
Return AILIA_STATUS_SUCCESS if successful, otherwise return error code.

◆ ailiaDestroyDetector()

static void ailia.AiliaDetector.ailiaDestroyDetector ( IntPtr  detector)

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

引数
detector検出オブジェクトポインタ

◆ ailiaDetectorCompute()

static int ailia.AiliaDetector.ailiaDetectorCompute ( IntPtr  detector,
IntPtr  src,
UInt32  src_stride,
UInt32  src_width,
UInt32  src_height,
UInt32  src_format,
float  threshold,
float  iou 
)

物体認識を行います。

引数
detector検出オブジェクトポインタ
src画像データ(32bpp)
src_stride1ラインのバイト数
src_width画像幅
src_height画像高さ
src_format画像フォーマット(AILIA_IMAGE_FORMAT_*)
threshold検出しきい値(0.1f等)(小さいほど検出されやすくなり、検出数増加)
iou重複除外しきい値(0.45f等)(小さいほど重複を許容せず検出数減少)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaDetectorGetObject()

static int ailia.AiliaDetector.ailiaDetectorGetObject ( IntPtr  detector,
[In, Out] AILIADetectorObject  obj,
UInt32  obj_idx,
UInt32  version 
)

認識結果を取得します。

引数
detector検出オブジェクトポインタ
objオブジェクト情報
obj_idxオブジェクトインデックス
versionAILIA_DETECTOR_OBJECT_VERSION
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ailiaPredict() を一度も実行していない場合は AILIA_STATUS_INVALID_STATE が返ります。 認識結果は確率順でソートされます。

◆ ailiaDetectorGetObjectCount()

static int ailia.AiliaDetector.ailiaDetectorGetObjectCount ( IntPtr  detector,
ref UInt32  obj_count 
)

認識結果の数を取得します。

引数
detector検出オブジェクトポインタ
obj_countオブジェクト数
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaDetectorSetAnchors()

static int ailia.AiliaDetector.ailiaDetectorSetAnchors ( IntPtr  detector,
float[]  anchors,
UInt32  anchors_count 
)

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

引数
detector検出オブジェクトポインタ
anchorsアンカーズの寸法 (検出ボックスの可能な形、高さと広さ)
anchors_countアンカーズの数 (anchorsの配列サイズの半分)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

YoloV2などは既定の複数な形の検出ボックスを同時に試しています。このデータはそのボックスの複数な形の情報を記述します。 anchorsには{x,y,x,y...}の形式で格納します。 anchors_countが5の場合、anchorsは10次元の配列になります。

◆ ailiaDetectorSetInputShape()

static int ailia.AiliaDetector.ailiaDetectorSetInputShape ( IntPtr  detector,
UInt32  input_width,
UInt32  input_height 
)

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

引数
detector検出オブジェクトポインタ
input_widthモデルの入力画像幅
input_heightモデルの入力画像高さ
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

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

メンバ詳解

◆ AILIA_DETECTOR_ALGORITHM_SSD

const Int32 ailia.AiliaDetector.AILIA_DETECTOR_ALGORITHM_SSD = (8)
static

SSD

◆ AILIA_DETECTOR_ALGORITHM_YOLOV1

const Int32 ailia.AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV1 = (0)
static

YOLOV1

◆ AILIA_DETECTOR_ALGORITHM_YOLOV2

const Int32 ailia.AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV2 = (1)
static

YOLOV2

◆ AILIA_DETECTOR_ALGORITHM_YOLOV3

const Int32 ailia.AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV3 = (2)
static

YOLOV3

◆ AILIA_DETECTOR_ALGORITHM_YOLOV4

const Int32 ailia.AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOV4 = (3)
static

YOLOV4

◆ AILIA_DETECTOR_ALGORITHM_YOLOX

const Int32 ailia.AiliaDetector.AILIA_DETECTOR_ALGORITHM_YOLOX = (4)
static

YOLOX

◆ AILIA_DETECTOR_FLAG_NORMAL

const Int32 ailia.AiliaDetector.AILIA_DETECTOR_FLAG_NORMAL = (0)
static

オプションなし

◆ AILIA_DETECTOR_OBJECT_VERSION

const Int32 ailia.AiliaDetector.AILIA_DETECTOR_OBJECT_VERSION = (1)
static

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