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>