Table of Contents

Class ObjectTracker

Ruang Nama
easyar

ObjectTracker mengimplementasikan deteksi dan pelacakan 3D object target. ObjectTracker memakai (1 + SimultaneousNum) buffer camera. setBufferCapacity milik camera harus digunakan untuk mengatur jumlah buffer camera tidak kurang dari jumlah buffer camera yang dipakai oleh semua komponen. Setelah dibuat, start/stop dapat dipanggil untuk memulai dan menghentikan operasi. start/stop adalah panggilan yang sangat ringan. Ketika komponen tidak lagi diperlukan, close dapat dipanggil untuk menutupnya. Setelah close, komponen tidak boleh digunakan lagi. ObjectTracker memasukkan FeedbackFrame melalui feedbackFrameSink, dan FeedbackFrameSource harus dihubungkan ke feedbackFrameSink untuk digunakan. Sebelum Target dapat dilacak oleh ObjectTracker, Anda perlu memuatnya melalui loadTarget/unloadTarget. Hasil load/unload dapat diperoleh melalui callback yang diteruskan ke interface.

ObjectTracker

Metode

isAvailable

Mengembalikan 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()

Mengembalikan

Tipe Deskripsi
Boolean

feedbackFrameSink

Port input FeedbackFrame. Anggota InputFrame dalam FeedbackFrame harus memiliki image, timestamp, dan camera parameters. camera mendukung kamera pinhole dan 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()

Mengembalikan

Tipe Deskripsi
FeedbackFrameSink

bufferRequirement

Jumlah buffer camera yang dipakai oleh komponen saat ini.

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()

Mengembalikan

Tipe Deskripsi
Int32

outputFrameSource

Port output 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()

Mengembalikan

Tipe Deskripsi
OutputFrameSource

create

Membuat instance.

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()

Mengembalikan

Tipe Deskripsi
ObjectTracker

setResultPostProcessing

Mengatur post-processing hasil. enablePersistentTargetInstance default-nya false. Ketika diaktifkan, jika data InputFrame berisi informasi spasial, targetInstances dalam ImageTrackerResult akan berisi semua instance yang dikenali, termasuk yang saat ini tidak dilacak. enableMotionFusion default-nya false. Ketika diaktifkan, jika data InputFrame berisi informasi waktu dan informasi spasial, pose targetInstances dalam ImageTrackerResult akan diperhalus menggunakan 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)

Parameter

Nama Tipe Deskripsi
enablePersistentTargetInstance Boolean
enableMotionFusion Boolean

Mengembalikan

Tipe Deskripsi
Void

setResultAsyncMode

Mengatur mode async hasil. Jika hasil dikeluarkan melalui outputFrameSource, nilainya harus true; jika hasil diperoleh melalui getSyncResult, nilainya harus false. enableAsync default-nya true. Mode sync hanya berlaku ketika input frame berisi informasi spasial dan XR License digunakan.

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)

Parameter

Nama Tipe Deskripsi
enableAsync Boolean

Mengembalikan

Tipe Deskripsi
Boolean

start

Memulai algoritma tracking.

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()

Mengembalikan

Tipe Deskripsi
Boolean

stop

Menjeda algoritma tracking. Panggil start untuk memulai tracking kembali.

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()

Mengembalikan

Tipe Deskripsi
Void

close

Menutup. Setelah close, tidak boleh digunakan lagi.

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()

Mengembalikan

Tipe Deskripsi
Void

loadTarget

Memuat Target ke dalam tracker. Target hanya dapat dikenali dan dilacak setelah berhasil dimuat ke dalam tracker. Metode ini asynchronous. Proses pemuatan mungkin memerlukan waktu untuk selesai. Selama periode ini, deteksi target baru dan target yang hilang mungkin memerlukan waktu lebih lama dari biasanya, tetapi tracking setelah terdeteksi tidak terpengaruh. Jika Anda ingin mengetahui hasil pemuatan, Anda perlu menangani data callback. callback akan dipanggil pada thread yang ditentukan oleh CallbackScheduler. Thread tracking dan operasi selain load/unload lainnya tidak akan diblokir.

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)

Parameter

Nama Tipe Deskripsi
target Target
callbackScheduler CallbackScheduler
callback Action<,>

Mengembalikan

Tipe Deskripsi
Void

unloadTarget

Membongkar Target dari tracker. Metode ini asynchronous. Proses pembongkaran mungkin memerlukan waktu untuk selesai. Selama periode ini, deteksi target baru dan target yang hilang mungkin memerlukan waktu lebih lama dari biasanya, tetapi tracking setelah terdeteksi tidak terpengaruh. Jika Anda ingin mengetahui hasil pembongkaran, Anda perlu menangani data callback. callback akan dipanggil pada thread yang ditentukan oleh CallbackScheduler. Thread tracking dan operasi selain load/unload lainnya tidak akan diblokir.

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)

Parameter

Nama Tipe Deskripsi
target Target
callbackScheduler CallbackScheduler
callback Action<,>

Mengembalikan

Tipe Deskripsi
Void

targets

Mengembalikan target yang saat ini telah dimuat ke dalam tracker. Jika load/unload asynchronous sedang dijalankan, nilai yang dikembalikan sebelum load/unload selesai tidak akan mencerminkan hasil load/unload tersebut.

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()

Mengembalikan

Tipe Deskripsi
List<>

setSimultaneousNum

Mengatur jumlah maksimum target yang dapat dilacak oleh tracker. Nilai default adalah 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)

Parameter

Nama Tipe Deskripsi
num Int32

Mengembalikan

Tipe Deskripsi
Boolean

simultaneousNum

Mendapatkan jumlah maksimum target yang dapat dilacak oleh tracker. Nilai default adalah 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()

Mengembalikan

Tipe Deskripsi
Int32

getSyncResult

Mendapatkan hasil output sinkron. Jika ObjectTracker dijeda, atau jika mode async hasil belum diatur ke false melalui setResultAsyncMode, nilai yang dikembalikan kosong.

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)

Parameter

Nama Tipe Deskripsi
motionInputData MotionInputData

Mengembalikan

Tipe Deskripsi
Optional<ObjectTrackerResult>