MCPcopy Create free account
hub / github.com/PABannier/sam3.cpp / sam3_store_obj_ptr

Function sam3_store_obj_ptr

sam3.cpp:11717–11734  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11715}
11716
11717static void sam3_store_obj_ptr(
11718 sam3_tracker& tracker, const sam3_model& model,
11719 int inst_id, const float* pd, int frame_idx) {
11720 const int D = model.hparams.neck_dim;
11721 if (!tracker.ctx) {
11722 struct ggml_init_params tp = {ggml_tensor_overhead() * 4096, nullptr, true};
11723 tracker.ctx = ggml_init(tp);
11724 }
11725 auto* pt = ggml_new_tensor_2d(tracker.ctx, GGML_TYPE_F32, D, 1);
11726 auto* pb = ggml_backend_alloc_buffer(model.backend, D * sizeof(float));
11727 struct ggml_tallocr ta = ggml_tallocr_new(pb);
11728 ggml_tallocr_alloc(&ta, pt);
11729 tracker.owned_buffers.push_back(pb);
11730 ggml_backend_tensor_set(pt, pd, 0, D * sizeof(float));
11731 auto& bk = tracker.ptr_banks[inst_id];
11732 bk.push_back({frame_idx, pt});
11733 while ((int)bk.size() > model.hparams.max_obj_ptrs) bk.erase(bk.begin());
11734}
11735
11736sam3_tracker_ptr sam3_create_tracker(const sam3_model& model,
11737 const sam3_video_params& params) {

Callers 4

sam3_track_frameFunction · 0.85
sam3_refine_instanceFunction · 0.85
sam3_propagate_frameFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected