add update_vocabulary dora input for runtime label changes

The open_vocab engine now accepts an update_vocabulary input event
carrying a UTF-8 comma-separated label string. Labels are re-encoded
immediately via the CLIP text encoder; the next tick uses the new
vocabulary. ZedNative ignores the input via a no-op base class method.
This commit is contained in:
cristhian aguilera
2026-03-28 11:03:18 -03:00
parent fd6993e294
commit 2d10a68527
7 changed files with 29 additions and 3 deletions
+12 -1
View File
@@ -95,7 +95,18 @@ int main() {
}
auto input = event_as_input(std::move(event));
(void)input;
std::string input_id = std::string(input.id);
if (input_id == "update_vocabulary") {
if (!input.data.empty()) {
std::string labels(
reinterpret_cast<const char*>(input.data.data()),
input.data.size());
detector->set_labels(labels);
std::cout << "Vocabulary updated: " << labels << std::endl;
}
continue;
}
if (!camera.grab()) {
std::cerr << "Grab failed; attempting to reconnect..." << std::endl;