Table of Contents

Class ObjectTracker

名前空間
easyar

ObjectTracker は 3D object target の検出とトラッキングを実装します。 ObjectTracker は (1 + SimultaneousNum) 個の camera buffer を占有します。camera の setBufferCapacity を使用して、すべてのコンポーネントが占有する camera buffer 数以上に設定する必要があります。 作成後、start/stop を呼び出して実行の開始と停止ができます。start/stop は非常に軽量な呼び出しです。 このコンポーネントが不要になった場合は、close を呼び出して閉じることができます。close 後は使用しないでください。 ObjectTracker は feedbackFrameSink を通して FeedbackFrame を入力するため、FeedbackFrameSource を feedbackFrameSink に接続して使用する必要があります。 Target が ObjectTracker によってトラッキング可能になる前に、loadTarget/unloadTarget によってロードする必要があります。load/unload の結果は、インターフェイスに渡す callback で取得できます。

ObjectTracker

メソッド

isAvailable

true を返します。

bool easyar_ObjectTracker_isAvailable(void)
static bool isAvailable()
public static boolean isAvailable()
companion object fun isAvailable(): Boolean
+ (bool)isAvailable
public static func isAvailable() -> Bool
public static bool isAvailable()

戻り値

型 説明
Boolean

feedbackFrameSink

FeedbackFrame 入力ポートです。FeedbackFrame 内の InputFrame メンバーは、image、timestamp、camera parameters を持っている必要があります。camera は pinhole および fisheye カメラをサポートします。

void easyar_ObjectTracker_feedbackFrameSink(easyar_ObjectTracker * This, easyar_FeedbackFrameSink * * Return)
std::shared_ptr<FeedbackFrameSink> feedbackFrameSink()
public @Nonnull FeedbackFrameSink feedbackFrameSink()
fun feedbackFrameSink(): FeedbackFrameSink
- (easyar_FeedbackFrameSink *)feedbackFrameSink
public func feedbackFrameSink() -> FeedbackFrameSink
public virtual FeedbackFrameSink feedbackFrameSink()

戻り値

型 説明
FeedbackFrameSink

bufferRequirement

現在のコンポーネントが占有する camera buffer の数です。

int easyar_ObjectTracker_bufferRequirement(easyar_ObjectTracker * This)
int bufferRequirement()
public int bufferRequirement()
fun bufferRequirement(): Int
- (int)bufferRequirement
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()

戻り値

型 説明
Int32

outputFrameSource

OutputFrame 出力ポートです。

void easyar_ObjectTracker_outputFrameSource(easyar_ObjectTracker * This, easyar_OutputFrameSource * * Return)
std::shared_ptr<OutputFrameSource> outputFrameSource()
public @Nonnull OutputFrameSource outputFrameSource()
fun outputFrameSource(): OutputFrameSource
- (easyar_OutputFrameSource *)outputFrameSource
public func outputFrameSource() -> OutputFrameSource
public virtual OutputFrameSource outputFrameSource()

戻り値

型 説明
OutputFrameSource

create

作成します。

void easyar_ObjectTracker_create(easyar_ObjectTracker * * Return)
static std::shared_ptr<ObjectTracker> create()
public static @Nonnull ObjectTracker create()
companion object fun create(): ObjectTracker
+ (easyar_ObjectTracker *)create
public static func create() -> ObjectTracker
public static ObjectTracker create()

戻り値

型 説明
ObjectTracker

setResultPostProcessing

結果の post-processing を設定します。 enablePersistentTargetInstance のデフォルトは false です。有効にすると、InputFrame データに空間情報が含まれている場合、ImageTrackerResult の targetInstances には、認識されたすべての instance(現在トラッキングされていないものを含む)が含まれます。 enableMotionFusion のデフォルトは false です。有効にすると、InputFrame データに時間情報と空間情報が含まれている場合、ImageTrackerResult の targetInstances の pose は RealTimeCoordinateTransform を使用して平滑化されます。

void easyar_ObjectTracker_setResultPostProcessing(easyar_ObjectTracker * This, bool enablePersistentTargetInstance, bool enableMotionFusion)
void setResultPostProcessing(bool enablePersistentTargetInstance, bool enableMotionFusion)
public void setResultPostProcessing(boolean enablePersistentTargetInstance, boolean enableMotionFusion)
fun setResultPostProcessing(enablePersistentTargetInstance: Boolean, enableMotionFusion: Boolean): Unit
- (void)setResultPostProcessing:(bool)enablePersistentTargetInstance enableMotionFusion:(bool)enableMotionFusion
public func setResultPostProcessing(_ enablePersistentTargetInstance: Bool, _ enableMotionFusion: Bool) -> Void
public virtual void setResultPostProcessing(bool enablePersistentTargetInstance, bool enableMotionFusion)

パラメーター

名前 型 説明
enablePersistentTargetInstance Boolean
enableMotionFusion Boolean

戻り値

型 説明
Void

setResultAsyncMode

結果の async mode を設定します。結果を outputFrameSource から出力する場合は true に設定し、getSyncResult で取得する場合は false に設定します。enableAsync のデフォルトは true です。同期モードは、入力 frame に空間情報が含まれ、XR License を使用している場合にのみ有効です。

bool easyar_ObjectTracker_setResultAsyncMode(easyar_ObjectTracker * This, bool enableAsync)
bool setResultAsyncMode(bool enableAsync)
public boolean setResultAsyncMode(boolean enableAsync)
fun setResultAsyncMode(enableAsync: Boolean): Boolean
- (bool)setResultAsyncMode:(bool)enableAsync
public func setResultAsyncMode(_ enableAsync: Bool) -> Bool
public virtual bool setResultAsyncMode(bool enableAsync)

パラメーター

名前 型 説明
enableAsync Boolean

戻り値

型 説明
Boolean

start

トラッキングアルゴリズムを開始します。

bool easyar_ObjectTracker_start(easyar_ObjectTracker * This)
bool start()
public boolean start()
fun start(): Boolean
- (bool)start
public func start() -> Bool
public virtual bool start()

戻り値

型 説明
Boolean

stop

トラッキングアルゴリズムを一時停止します。start を呼び出すとトラッキングを再開します。

void easyar_ObjectTracker_stop(easyar_ObjectTracker * This)
void stop()
public void stop()
fun stop(): Unit
- (void)stop
public func stop() -> Void
public virtual void stop()

戻り値

型 説明
Void

close

閉じます。close 後は使用しないでください。

void easyar_ObjectTracker_close(easyar_ObjectTracker * This)
void close()
public void close()
fun close(): Unit
- (void)close
public func close() -> Void
public virtual void close()

戻り値

型 説明
Void

loadTarget

Target を tracker にロードします。Target は tracker に正常にロードされた後にのみ認識およびトラッキングできます。 このメソッドは asynchronous メソッドです。ロード処理の完了には時間がかかる場合があります。この間、新しい target と失われた target の検出は通常より時間がかかることがありますが、検出後のトラッキングには影響しません。ロード結果を知りたい場合は、callback データを処理する必要があります。callback は CallbackScheduler で指定された thread 上で呼び出されます。トラッキング thread および他の load/unload 以外の操作はブロックされません。

void easyar_ObjectTracker_loadTarget(easyar_ObjectTracker * This, easyar_Target * target, easyar_CallbackScheduler * callbackScheduler, easyar_FunctorOfVoidFromTargetAndBool callback)
void loadTarget(std::shared_ptr<Target> target, std::shared_ptr<CallbackScheduler> callbackScheduler, std::function<void(std::shared_ptr<Target>, bool)> callback)
public void loadTarget(@Nonnull Target target, @Nonnull CallbackScheduler callbackScheduler, @Nonnull FunctorOfVoidFromTargetAndBool callback)
fun loadTarget(target: Target, callbackScheduler: CallbackScheduler, callback: FunctorOfVoidFromTargetAndBool): Unit
- (void)loadTarget:(easyar_Target *)target callbackScheduler:(easyar_CallbackScheduler *)callbackScheduler callback:(void (^)(easyar_Target * target, bool status))callback
public func loadTarget(_ target: Target, _ callbackScheduler: CallbackScheduler, _ callback: @escaping (Target, Bool) -> Void) -> Void
public virtual void loadTarget(Target target, CallbackScheduler callbackScheduler, Action<Target, bool> callback)

パラメーター

名前 型 説明
target Target
callbackScheduler CallbackScheduler
callback Action<,>

戻り値

型 説明
Void

unloadTarget

Target を tracker からアンロードします。 このメソッドは asynchronous メソッドです。アンロード処理の完了には時間がかかる場合があります。この間、新しい target と失われた target の検出は通常より時間がかかることがありますが、検出後のトラッキングには影響しません。アンロード結果を知りたい場合は、callback データを処理する必要があります。callback は CallbackScheduler で指定された thread 上で呼び出されます。トラッキング thread および他の load/unload 以外の操作はブロックされません。

void easyar_ObjectTracker_unloadTarget(easyar_ObjectTracker * This, easyar_Target * target, easyar_CallbackScheduler * callbackScheduler, easyar_FunctorOfVoidFromTargetAndBool callback)
void unloadTarget(std::shared_ptr<Target> target, std::shared_ptr<CallbackScheduler> callbackScheduler, std::function<void(std::shared_ptr<Target>, bool)> callback)
public void unloadTarget(@Nonnull Target target, @Nonnull CallbackScheduler callbackScheduler, @Nonnull FunctorOfVoidFromTargetAndBool callback)
fun unloadTarget(target: Target, callbackScheduler: CallbackScheduler, callback: FunctorOfVoidFromTargetAndBool): Unit
- (void)unloadTarget:(easyar_Target *)target callbackScheduler:(easyar_CallbackScheduler *)callbackScheduler callback:(void (^)(easyar_Target * target, bool status))callback
public func unloadTarget(_ target: Target, _ callbackScheduler: CallbackScheduler, _ callback: @escaping (Target, Bool) -> Void) -> Void
public virtual void unloadTarget(Target target, CallbackScheduler callbackScheduler, Action<Target, bool> callback)

パラメーター

名前 型 説明
target Target
callbackScheduler CallbackScheduler
callback Action<,>

戻り値

型 説明
Void

targets

現在 tracker にロードされている target を返します。asynchronous な load/unload が実行中の場合、load/unload 完了前の戻り値には、それらの load/unload の結果は反映されません。

void easyar_ObjectTracker_targets(const easyar_ObjectTracker * This, easyar_ListOfTarget * * Return)
std::vector<std::shared_ptr<Target>> targets()
public java.util.@Nonnull ArrayList<@Nonnull Target> targets()
fun targets(): ArrayList<Target>
- (NSArray<easyar_Target *> *)targets
public func targets() -> [Target]
public virtual List<Target> targets()

戻り値

型 説明
List<>

setSimultaneousNum

tracker がトラッキングできる target の最大数を設定します。デフォルト値は 1 です。

bool easyar_ObjectTracker_setSimultaneousNum(easyar_ObjectTracker * This, int num)
bool setSimultaneousNum(int num)
public boolean setSimultaneousNum(int num)
fun setSimultaneousNum(num: Int): Boolean
- (bool)setSimultaneousNum:(int)num
public func setSimultaneousNum(_ num: Int32) -> Bool
public virtual bool setSimultaneousNum(int num)

パラメーター

名前 型 説明
num Int32

戻り値

型 説明
Boolean

simultaneousNum

tracker がトラッキングできる target の最大数を取得します。デフォルト値は 1 です。

int easyar_ObjectTracker_simultaneousNum(const easyar_ObjectTracker * This)
int simultaneousNum()
public int simultaneousNum()
fun simultaneousNum(): Int
- (int)simultaneousNum
public func simultaneousNum() -> Int32
public virtual int simultaneousNum()

戻り値

型 説明
Int32

getSyncResult

同期出力結果を取得します。ObjectTracker が一時停止している場合、または setResultAsyncMode によって結果 async mode が false に設定されていない場合、戻り値は空です。

void easyar_ObjectTracker_getSyncResult(easyar_ObjectTracker * This, easyar_MotionInputData * motionInputData, easyar_OptionalOfObjectTrackerResult * Return)
std::optional<std::shared_ptr<ObjectTrackerResult>> getSyncResult(std::shared_ptr<MotionInputData> motionInputData)
public @Nullable ObjectTrackerResult getSyncResult(@Nonnull MotionInputData motionInputData)
fun getSyncResult(motionInputData: MotionInputData): ObjectTrackerResult?
- (easyar_ObjectTrackerResult *)getSyncResult:(easyar_MotionInputData *)motionInputData
public func getSyncResult(_ motionInputData: MotionInputData) -> ObjectTrackerResult?
public virtual Optional<ObjectTrackerResult> getSyncResult(MotionInputData motionInputData)

パラメーター

名前 型 説明
motionInputData MotionInputData

戻り値

型 説明
Optional<ObjectTrackerResult>