Add ADR 7: Tracker Service - Architecture changes for tracking performance scaling#611
Add ADR 7: Tracker Service - Architecture changes for tracking performance scaling#611saratpoluri merged 18 commits intomainfrom
Conversation
|
Have we considered the overhead of additional serialization and deserialization of JSON over MQTT when adding an additional service? In fact, we could consider binary messaging (protobuf?) between all services, with only the analytics service outputting JSON for applications to consume on regulated, region, event, and related topics. Also, does it make sense to split the system into 3 services instead of 2? One for coordinate transforms/projection, one for tracking, and the last for analytics? |
Co-authored-by: Sarat Poluri <sarat.chandra.poluri@intel.com>
Don't want to consider the splitting of projection/transform from tracking at the moment. We should let the need dictate it. Once I implement the projection on terrain, we will know the overhead and the need for splitting. |
| @@ -0,0 +1,254 @@ | |||
| # ADR 7: Tracker Service | |||
There was a problem hiding this comment.
@rawatts10 Have we considered the overhead of additional serialization and deserialization of JSON over MQTT when adding an additional service? In fact, we could consider binary messaging (protobuf?) between all services, with only the analytics service outputting JSON for applications to consume on regulated, region, event, and related topics. Also, does it make sense to split the system into 3 services instead of 2? One for coordinate transforms/projection, one for tracking, and the last for analytics?
@saratpoluri Don't want to consider the splitting of projection/transform from tracking at the moment. We should let the need dictate it. Once I implement the projection on terrain, we will know the overhead and the need for splitting.
My main assumption is that analytics can tolerate added latency compared to tracking, which has strict real-time requirements. The proposed split is effectively "real-time service" vs "near-real-time service."
If analytics also requires hard real-time guarantees, we should pursue Alternative 2: full C++ rewrite and keep it as a monolith. However, since we already have analytics in Python and it doesn't have the same latency constraints, we can start with this hybrid approach. If performance measurements later show Analytics becoming a bottleneck, we can incrementally migrate it to C++—a more manageable transition than rewriting everything upfront.
Regarding the processing volume: the Tracker Service handles significantly more data (1000 objects × 4 cameras × 15 FPS) than Analytics, which processes aggregated results. This asymmetry further supports the split architecture.
I agree that optimizing serialization/deserialization is worth investigating. I'll benchmark message encoding options (JSON vs Protobuf vs FlatBuffers) with 1k object payloads so we can make an informed decision based on actual performance data rather than assumptions.
There was a problem hiding this comment.
@rawatts10 @saratpoluri completed serialization benchmarks for the Tracker/Analytics split in #636.
Good news: We can keep JSON initially. C++'s faster processing mostly compensates for the added MQTT hop - measured 6% improvement on localhost (1,370μs → 1,290μs per frame).
Migrating to Protobuf afterward would add 43% more through faster serialization and 29-63% smaller messages.
Proposed:
- Split architecture with JSON first (simpler, validates architecture)
- Migrate to Protobuf next (performance gains)
See ANALYSIS.md for details and RESULTS.md for raw benchmark data.
There was a problem hiding this comment.
What's our policy on backward compatibility for inter-service communication? Can we make breaking changes to the message format?
There was a problem hiding this comment.
Right now, no policy. We make a breaking change if needed and let the users complain. In future, if we implement protobuf, then backward compatibility can be discussed.
…eature-flag Included commits: - 73f22fa Tracker Service Design Document (#819) - cad2658 fix backoff ut - 6447c03 fix exponential backoff precission - 63cd848 fix mqtt client race - 7057175 refactor proxy handling - 01b7543 remove reduntant comment - 40e2574 remove redundant comments - bf53951 optimize parseCameraMessage() - d9eeee9 optimize extractCameraId - e78ac29 optimize handleCameraMessage - bd58c54 unsubscribe from topic on mqtt handler stop - f209c9c optimize hot path - a2dd883 ITEP-19526: Upgrade reloc to latest hloc (#898) - a61bc32 fix tracker configuration in compose sample - 0d0e1b3 ADR 9: Minor improvements (#941) - 08f2c63 fix uts - 75d7246 use dynamic broker ports in service tests - eddcb1d unset proxy contidionally - 27ddbae fix multiple topics subscription on down broker - d43e929 use json ptr in message handler - 06b1b70 fix broker-start target - 2a65b86 remove redundant file - 6836f92 remove hardcoded number - b5d077d fix default schema dir - bbb44b0 remove dead code - c903d47 configure Tracker Service in docker compose - 16144c1 reduce ut count - 2bed405 exclude mqtt client from ut coverage - df3ee95 treat empty vars as unset - ec6f467 improve coverage - 8e91a3a [ITEP-83277] Add port installation choice to deploy script (#938) - f8e7315 ADR 9: Tracking Evaluation (#937) - 2c264b0 ITEP-84785: Camera poses are correctly set to respective cameras after mapping call (#928) - 063677d ITEP-83513: Fix incorrect glb model position after scene import (#940) - d7437e5 ITEP-84784: Apply CLAHE locally to each image prior to reconstruction (#927) - 94738d2 ITEP-83949/83950: Glb upload and pose edit are successful (#877) - c352dfc remove simdjson - 95c6a0f test cleanup - 026aeca simplify tests - 17253b0 Tracker Service Schema (#933) - 910f38e add ssl tests - e746ae4 ITEP-84739 Adding weekly tests for release branches (#899) - 081da2c ITEP-84702: Update ACC test automation (#897) - b7f9a88 Tracker service v0.1.3 - config file with env overlay (#891) - 81cab58 simplify config loader by using JSON paths - 3fa7ba2 simplify ScopedEnv implementation - b80965e fix hadolint warnings - 4e3ac7d shorten service tests - 2141f54 ITEP-68936 Sort Functional Tests (#924) - d007517 prettier fixes - 9860553 git commit rename ssl to tls - 48e6a0d ITEP-84867 Update dependency management in Dockerfiles (#936) - e875554 add broker targets for manual validation - d97c171 more env overrides, simplify tests - 155af01 add mqtt helper targets to the makefile - f48b216 update README to the current codebase - 6880192 ITEP-78772: API for using video file as input for map generation (#918) - e3b2f1f fix readme - 2855dd8 [CI/CD] Fix automatic PR update workflow (#934) - 63fd2e0 [ITEP-84435] Remove manual workflow trigger for DLStreamer updates (#926) - 1647eb7 ITEP-68789: fix deploy fails when docker-compose.yml exists (#920) - 1df7c99 ITEP-84769 Enable smooth deployment across various platforms (inc. VMs) (#919) - 8256990 add mqtt connection handling - 237b6a7 ITEP-84696 Update Cluster Analytics opencv package (#932) - 85ecff6 fix & improve profiling - 35a1c06 fix & improve container debugging - be2ae06 Tracker service v0.1.2 - opencv from source (#890) - fe0f1c0 fix & improve native debugging - e097c84 add debugging & profiling into README - eaa8dc6 fix ci build - 360f2fe remove -release suffix - 0f2c63e ITEP-84825 Trivy Pipeline Improvements (#931) - 80fb06c fix linter issues - b0b2f35 update schema & align implementation - ba05176 move env vars to seperate header - 9425c1c better schema cli description - 3738e2a fix image builds in the Makefile - 3f85041 [DLStreamer] Update to weekly-2026.0-20260120-ubuntu24 (#925) - cdc08de ITEP-80764: Fix calibration images intermixed with decorated images (#885) - 15b22b2 Change mapping image to debian (#776) - c8dbd44 Update tracker/README.md - 15b3b61 Removing unused variables from pipeline and Makefile (#916) - 57fd747 [ITEP-81813] Remove ingress and add Gateway API resources (#887) - aa307d4 update cli section in readme - df6e4f3 fix README - eac742d [ITEP-84435] [CI/CD] Add GHA workflow for DLStreamer Pipeline Server weekly updates (#892) - c8cdb93 Fix Trivy docker scans (#894) - 1afc5ed [Issue #893] Fix model-proc files download in Kubernetes deployment (main) (#896) - d6e95fb Tracker service v0.1.1 - the skeleton. (#821) - 9dfdf6c minor fixes - 8950fe5 Update tracker/test/unit/config_loader_test.cpp - 590c9dc Update tracker/Dockerfile - a04dfda reduce tests count - 3a43a8b add config file support with env overlay - 9913af1 link in robotvision (for image size comparision) - e51f1ad link in robotvision - 3a2d3a8 build opencv from source - 0e183f9 rename healthcheck to healthcheck_server - 183ca17 reduce ut count from 70 to 40 - 1737830 prettier fixes - a1e6d5d refactor logging test to use custom sink - 74cbbc7 small refactoring in healtcheck command - 912650c validate inputs in healthcheck command - 6934bcc remove reduntant DifferentPorts unit test - c519b1b simplify run_healthcheck_command() implementation - 3a4f780 add build dependencies on run targets - 3e49b2c Port fixes from release-2025.2 branch (#889) - cdc4d54 ITEP-83086: Introduce copilot instructions to SceneScape (#842) - eaa7e2f ITEP-75012: Udpate fx & fy values after autocalibration in 2D UI (#883) - d4fb148 fix tests formatting - a92364c add gracefull shutdown test - 14b2c97 increase code coverage - 3b42eea empty - 759acdb split cmake configure & build in two layers - 6f5ee58 empty - 2756795 use docker/build-push-action to manage docker build and caching - ad093db set gha cache envs - 6af9462 empty - 1be476a empty - 1906f2c another regular layer caching instead of builtkit - 64b8eb5 ITEP-83284: Create vdms profile (#846) - 31a8d3a empty - 9fe7f2e ITEP-80577 Tracker improvements in time-chunking and time-based parameters (#693) - 3c25ff0 empty - 5256fcb empty (for testing) - bc97297 add scope to build cache in CI - af12c2f empty (for testing) - 7509310 more apt silenece - 9ba6b82 put apt in quiet mode in Dockerfile - 6e514e4 Revert "fix scorecard warnings" - bae3042 Revert "different approach for pip pinning by hash" - 883509c Revert "add hashes to tracker service requirements.txt" - b1980c5 ITEP-84279: Fix rendering of Tripwires/ROIs during scene import in UI (#880) - 178acd1 add hashes to tracker service requirements.txt - 2231000 different approach for pip pinning by hash - 00e7f05 fix scorecard warnings - f0d411f fix gha linter issues - 3247c63 fix indent check - 6d9acac fix prettier style issues - 95aaec7 deleted docs from design branch - 71d321a ITEP-84314 - Initialize counters at start (#882) - 47201f5 added pipx to install-deps - 1321e17 Parametrized Tracker image by build type. - 5fe8ba9 Move tracker to experimental images alongside mapping and cluster_analytics - 5452cef RobotVision CMake refactor + Tracker service introduction (#817) - fc7906f Make tracker service cpu & mem limit configurable via env. - 3191a40 auto_calibration_ui hotfix + add seconds to ui logfile naming (#878) - 066fa51 fix volume media for web_calibration (#879) - e8d7f36 [DOCS] Applying minor fixes for documentation (#822) - c37ccaa [DOCS] fix link ref to new DL Streamer repo (#847) - 070a2f9 [DOCS] Adding link block to index (#848) - 8d8eb2a ITEP-82637: Change controller image to debian (#775) - 0afe7c1 Change cluster analytics to debian (#777) - 2c88371 Unblock CI All Tests Execution + autocalibration tests changes (#876) - 05f2d61 [Security Update] Bump werkzeug from 3.1.4 to 3.1.5 in /cluster_analytics/tools/webui (#875) - 0adfa41 [Security update] pip: bump urllib3 from 2.6.2 to 2.6.3 in /manager (#859) - b71f848 [CI/CD] [Dependabot] Revert Dependabot updates to monthly basis (#858) - 7bdace7 GitHub Actions: Bump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the github-actions-dependency group (#856) - f94fc03 Remove dist-packages from omit to fix tests (#850) - 1b087cc ITEP-82637: Change base to debian - common image (#714) - f34038e Change geospatial unit test ID (#844) - 9547718 Remove deprecated tests (#779) - 706768c docs: remove ADR-0008, update references to PR #841 - 869a81a ITEP-83806 - Fix build paths (#840) - f14bcfa add python to github hooks - bf4a7d1 add readme - 85374ab improve coverage in ci - 090ef11 improve coverage report - c4784f0 add code coverage and more tets - 74522c6 [DOCS] Name alignment pass for SceneScape and DL Streamer (#772) - cbba1b5 better ci jobs names - c3a8adb fix docker warnings - 7b5d7db better reporting - 8903f3b format python code - ab94882 new linters - aafb9e1 fix ut target - 8e7e1b9 simplifications - ac8fae1 simplify test - f72abcf split natvie build and tests - 63fe9b3 add service tests - 8faa112 integrate with main compose file - dfdc391 empty - fc0b3d8 use docker buildx to build - 503cfc0 empty - 6af76c1 use gha cache - fa8e078 fix docker build - c6641c0 run docker build in paralel in tracker ci - 00a97ad add basic ci - dd95a1f debugger settings - 0107c5c Logging skeleton (singleton Logger, LogEntry, structured JSON, version injection) - 011c829 add debugging capability - 3a4d753 tracker: fix cmake preset usage and simplify clean target - 9515533 add code formatting with clang-format - 33c0830 add build system foundation with Conan integration - a52c201 Increase timeout of BATs in All Tests (#820) - f6bfe3a add Tracker Service design documents - 0b6bc4e minor cleanup - cc5e55d refactor security options handling - 7ce0ff6 refactor opencv handling - 73b18db copy only necessary sources - b2cf311 fix trivy issues - fd1c20f add license headers - ee60c7b add tracker service cmakelists - 25f08ed fix cpp tests discovery - c0e209a general refactoring for readability - ffb8e57 ITEP-82017: Rewrite April tag test to new UI implementation (#687) - 4261f36 Consume Eigen, OpenCV, OpenMP, Python via imported targets (with OpenCV shim) - 4c75c41 Disable security hardening flags in Debug builds - 7eb41d4 use project-local include paths in RobotVision tests and benchmarks - 1318ac8 introduce security_options INTERFACE - 52a0be6 Replace deprecated std::bind1st in the Apollo matcher with an equivalent lambda to keep RobotVision warning‑free under modern C++ standards without changing behavior. - fec2fe3 refactor C++ standard, switch to C++17 by default - a3e6b58 optional pybindings & migration to CMAKE_CURRENT_SOURCE_DIR - 922af65 ITEP-83470 - K8s stability test (#770) - c25c0b0 ITEP-83208: Fix error handling on Makefile.sscape (#778) - a299907 GitHub Actions: Bump the github-actions-dependency group with 5 updates (#787) - ddd9113 Replace SYS_ORCH_GITHUB with SYS_EMF_GH_TOKEN (#783) - 8a92125 ITEP-83529 - Fix Cluster Analytics build and improve BAT workflow (#797) - e5dafc6 ITEP-82924 - Patch versioning added (#773) - bc595ac [Security] Fix CVE's 2 (#704) - 60ff429 Added logs dump after helm chart installation (#774) - a3eb980 Clean up test services from functional tests (#768) - 72f6806 Change scene-details-api test to use common-recipe (#769) - cb0430e CI All Tests unclogging operation (#771) - fbaf419 Redesign calibrate 3d-2d UI auto camera calibration test (#663) - f27d686 Remove k8s bat (#767) - 8916f15 Bump urllib version to match kubernetes package requirement. (#735) - 53dda1f [CI/CD] Dependabot to weekly checks (#753) - 44eb8fe ITEP-82810: fix permission denied error when creating a scene from file in Kubernetes (#731) - ca03552 Removed code quality packages from mapping service: (#734) - 60e9ea1 Move autocalibration test to broken section (#713) - 8cf2a0b ITEP-82605: Address RESTler fuzz bugs (#675) - cbe41b0 [CI/CD] Dependabot schedule interval to daily (#706) - 4a78fd0 ITEP-72442 Update docs build workflow to make it a mandatory check. (#711) - c4a4e0d Updating `main` to `release-2025.2` branch (#691) - 59db5bf [Security] Fix CVE's (#701) - a0bdad5 [ITEP-82895] [ITEP-82897] Bugs fixes (#692) - fd37ec6 Always set the ownership of the models Docker volume in `install-models` make target (#690) - de0e075 Remove duplicated demo-all make target (#689) - afc05ab [Trivy] Fix CVE-2025-66418 and CVE-2025-66471 (#686) - a9c5012 Update README.md with License and OpenSSF Scorecard (#684) - da93749 ITEP-73724 - Fix inference_performance test volume issue and update docker compose setup (#685) - 32f51d7 Replaced "latest" tags from external components to specific versions (#682) - 9ed7ccc ITEP-82764 - Cleanup test setup (#679) - 6ce68b0 [DOCS] Remove docs build for Cluster Analytics service (#681) - 794e54a Change version to `2026.0-dev` (#680) - 64dfa07 [Dependabot] Update Cluster Analytics requirenments (#678) - 84bb1a2 Add single make command to rebuild and restart a single service in k8s deployment. (#667) - 65ddbe9 [CI/CD] GHA Updates (#677) - 19aace4 Removing video init services from compose. (#676) - 57712eb Merge release 2025.2 (#672) - 76a6af0 Mark Tracker Service ADR as accepted (#673) - 9e75b9d Add ADR 7: Tracker Service - Architecture changes for tracking performance scaling (#611) - 096c39f ITEP-75957: Use one word referring to camera calibration (#664) - 941c979 Remove docker registry and use kind load (#656) - 0f7ce7c Merge 2025.2-rc3 to main (#642) - 739f778 WebRTC design proposal (#413) - a966387 Update documentation workflows to use per-repo workflow. (#588) - 0ab85c9 ITEP-78936: Use non root user in manager runtime image (#563) - f562757 [ITEP-73288] Computer vision pipeline API design document (#494) - 2d7da8e [CI/CD] Update build docs workflow (#576) - cb0cff7 [CI/CD] Force remove of test_data folder for BAT workflow (#564) - 580171a [CI/CD] All Tests execution inline wit BAT workflow + force remove of test_data folder (#528) - d12638f pip: bump pylint[spelling] from 3.3.7 to 4.0.2 in /.github/resources (#548) - 787b7e2 GitHub Actions: Bump the github-actions-dependency group with 5 updates (#551) - 2e85496 ITEP-77643: Add a mapping service that creates a 3D mesh from camera inputs (#514) - 53c36d3 Mapping service ADR (#530) - a20c976 [ITEP-76069] Feature: Object clustering is available in SceneScape (#443) - 1a53264 Update helm deployment docs (#531) - 0f2f39a Optimize Controller convertPixelBoundingBoxToMeters() (#511) - 428c01b ITEP-80172 Implement time chunking in robot-vision tracker (#525) - cb12c12 ITEP-78630 ITEP-78633 ITEP-78636 Prepare chart for deployment on generic K8s distribution (#475) - 63de68e Added camcalibration address as parameter for web app (#521) - c7afa95 ITEP-78700: V2XHUB format adapter (#515) - e8747c4 Add Time-Chunked Tracker Implementation (#518) - 7f91a3a Added alias for camcalibration (#526) - a194ae1 [CI/CD] Change all tests concurrency (#524) - 6260a3b ITEP-80178 Add out-of-box demo configuration with GPU support (#520) - 80359ae ITEP-80083: Fix auto-calibration functional test seg fault (#523) - 5c3218a ITEP-75843: User can upload point cloud map (#510) - 8967a56 add env proxy to docker-compose template (#522) - 7189f2b ITEP-69637 Added NEX-T15280 test case implementation (#516) - 7fa9d69 Fix CI permissions error (#519) - e6bbc69 ITEP-80172 Tracker match refactor. Enable robot-vision tests as part of BAT. (#517) - 6d5177c ITEP-78937: Update autocalib image to run as non root user (#512) - 4c9b0ca Update README.md - Fix broken link (#513) - 1d4b9b4 ITEP-68931 Feature: REST API in Autocalibration (#448) - a363b1e Revert "ITEP-78937: Update autocalib image to run as non root user" (#508) - 45b5e40 [DOCS] Scenescape file naming fix (#487) - a88e08b ADR 4: DBSCAN-based Cluster Analytics Service for Intel® SceneScape (#489) - 6dda411 ITEP-78937: Update autocalib image to run as non root user (#492) - 6df839f CI [Run All Tests] Workflow Enhancements and Test Stabilization (#500) - fa2c31e ITEP-79000 Add GPU support for dynamic camera configuration (#499) - fbaffc4 ITEP-75846: Fix 2D camera view calibration points not scaling with zoom level (#504) - e8367a7 [CI/CD] Change execution runners labels (#497) - ded04a9 Refactored scene_common package structure to enable cross-module navigation (#496) - cec45af Update docs link (#491) - 5e8f1b5 ADR 3: Scaling Controller Performance to 300 Objects (#488) - c84409c Add tracing to the scene controller using OpenTelemetry (#478) - a2d982c ITEP-78607: Improve helm chart - add values to select options for model installer (#474) - 54e4f6b Remove docs publishing (#485) - 6cf4e25 Fix broken link in README.md (#486) - 6de9e4b ITEP-68935 Dynamic camera configuration fixes (#476) - f19c60f ITEP-77635: Seamless Geospatial Map Creation (#469) - 71e5452 [ITEP-71913] Bump Django version to fix CVE-2025-59681 security alert (#482) - 935df0f Add metrics to the scene controller using OpenTelemetry (#467) - a94092f Change ADR-1 & ADR-2 statuses to Accepted (#480) - a53047e Fix trivy scan issues (#472) - 9fe0111 ADR 2: Adopt OpenTelemetry in Controller Microservice (#464) - 6d2ce00 [ITEP-78851] Move sensor-area to broken tests (#479) - a9816be Limited artifacts uploaded from CI (#471) - fb36991 Adding simple Chart deployment test to BAT (#436) - 7e7aa64 pip: bump pytest from 8.4.1 to 8.4.2 in /.github/resources (#455) - 4b42bbb pip: bump xmltodict from 0.14.2 to 1.0.2 in /.github/resources (#457) - 25c35a4 GitHub Actions: Bump the github-actions-dependency group with 8 updates (#456) - fe90adf ITEP-68935 Feature: dynamic camera configuration in K8S (1st iteration) (#409) - b89caa5 Add Broken Feature Test Group (#468) - e73884f Fix tc_scene_import_api.py (#466) - 61a2adf Update broken tests group in tests Makefile (#454) - 5e45228 Add README for Docker-Based SceneScape Testing (#450) - 2849d82 Scenescape documentation refactoring (#439) - 78bd7be Convert UI tests to API - Part 2 (#437) - b1c354e [DOCS] Updating index file for publishing Scenescape documentation - porting #417 (#418) - a06a1f3 ITEP-75127: Support OOB prebuilt containers documentation (#420) - d2b9b8c [ITEP-77751] [FIX] Bump Django version on manager to fix CVE-2025-57833 (#428) - 6d96d3c [ITEP-77890] [CI/CD] Fix all tests (#434) - 5c371c3 Introducing named proxy template to Scenescape Helm Chart (#432) - bccb718 Introduce Architecture Decision Records (ADR) to SceneScape. (#411) - 6086d12 Remove specific codeowners of docs (#433) - 7c4c2f8 ITEP-77772: Fix broken pgserver & webserver during kubernetes deployment (#430) - aee6461 ITEP-68929: Re-write functional tests to rely on REST API instead of UI (#371) - e6d85d5 [ITEP-77541] Move distance-msoce to broken-tests (#426) - f979bf6 Bugfix: Intrinsics provided as an array to CamPose (#425) - 1029565 ITEP-77591: Add missing cams.yml for test video services (#421) - eab49e5 [ITEP-76868] Add ready_for_review PR type to trigger BAT (#422) - e599a4a [ITEP-69618] Remove run_bat and check if code changes introduced (#416) - 1fa0dc0 ITEP-77590: Add missing import for scene import (#419) - fcb50e8 ITEP-77299: fix model page (#415) - 07cc4df ITEP-19130: seperate pgserver manager image (#403) - d359276 ITEP-71275: Include TRS matrix REST API for scene (#379) - 6ca2705 ITEP-17625: Separate API definitions from views.py (#405) - 854e2b8 ITEP-25729: fix scene control panel test (#408) - 187dfb8 ITEP-72401: Tracker can be disabled for resource constrained deployments (#404) - 02883b4 [BugFix] Autocalibration regression caused by dependabot libraries version bump (#406) - 83c3955 [ITEP-76868] Adjust deploy.sh to run om EMT OS (#402) - 10c2ed0 ITEP-74968: Region of View is properly computed (#400) - 6532d3a ITEP-72670: DLSPS cross stream batching in the docs (#399) - 4976132 ITEP-73652 Change video source to rtsp in OOB demo (#382) - 7a599df ITEP-75113: Refactor point correspondence calculation in Auto Camera Calibration (#364) - a7d706a ITEP-75213: Fix scene export and import fails in multiple scenarios (#376) - ffc798e ITEP-70408: Region number on scene is misleading (#385) - 0399e39 [CI/CD] Add trivy ignore to CI (#395) - 4a4d9b2 [Dependabot] Dependabot updates (#392) - 1cb04b2 GitHub Actions: Bump the github-actions-dependency group with 4 updates (#386) - 85e4c77 [Dependabot Security Alerts] Update PyTorch (#383) - fbc2f44 Add scheduled cleanup and add volume cleaning (#377) - 03dc5fe Remove input from docs-publish to avoid confusion (#375) - fdb799f [Dependabot] Depenadabot updates (#372) - 994af0b Remove filter check before docs publish - main branch (#373) - 4676149 Remove auto docs publish (#362) - 9039545 [CI/CD] Remove release branch from Dependabot update target (#363) - 8c5659d [ITEP-74149] Images tagging update (#350) - 26bff14 Merge Release 1.4.0 to main (#354) - 5a3ccf8 Change version to dev on main branch (#338) - 72e3e5b [main] Update publish-documentation workflow (#334) - 68c79b7 Migrate most important CI changes from release branch (#322) - 9e76700 ITEP-73107: Controller deployment hardening (#235) - 5daeefc Fix: Update LWS version to `4.3.3` in `broker/Dockerfile` (#318) - 75b63b1 Change target branch for dependabot (#283) - 9d30b36 Dependabot updates (#260) - 8b0a561 Running DLS and k8s tests in pipeline (#239) - 9c670a9 pip: bump setuptools from 75.0.0 to 78.1.1 in /.github/resources (#231) - 9569da9 [ITEP-68209] Add images description + change publishing repo (#242) - b09ee5c Added uploading test results to CI and changed BAT and AllTests triggers (#240) - c55a7e9 [ITEP-71370] Remove Coverity on PRs + Improve BAT workflow (#234) - f13e499 Update ghcr image upload path (#237) - 2d1b52e [ITEP-68209] Add parsing of version.txt for rc version for build (#236) - 004415a [ITEP-71370] Automate Coverity for C/C++ (#229) - ff95e1b [ITEP-71797] Fix All Tests Workflow (#227) - 07e8b58 ITEP-73124: fix missing models in k8s deployment (#228) - f67d9c4 ITEP-69567: Update openvino version (#221) - 3109d86 ITEP-17695 Test performance for SceneScape with DLStreamer (#171) - a8cd18b ITEP-72660: [Kubernetes] Build and Deploy Automation critically broken (#213) - 4053a9c [ITEP-71797] Add tests (#225) - 673eaa0 Update codeowners (#224) - 155671a ITEP-68934 Remove bind mounts (#99) - ee3b191 Github-135: manager build succeeds even with dangling symlink (#220) - a7b834f ITEP-68948 Set up DLStreamer tests with new targets and compose files (#125) - b0eef7e ITEP-71617: Scene import/export for scene hierarchy (#174) - 3e68c09 ITEP-71668: add heading direction when lla is enabled (#215) - 8ed1867 ITEP-72198: optimize python in scene controller (#216) - 1ea5020 ITEP-72763: Update manual calibration documentation with best practices (#217) - de03736 [ITEP-72775] [Bug Fix] Add .trivyignore (#219) - 057b942 [ITEP-71370] Move CodeQL analysis to a separate workflow + improvements (#214) - c1cd4bf [ITEP-68209] Fix push to ghcr.io workflow (#218) - 5caaaa3 [ITEP-68209] Upload images to ghrc.io (#202) - 4320ba1 ITEP-71113: Fix migration issue from 1.3.0 (#209) - 8e2fdec ITEP-72545: Fix show trails (#208) - 4769975 Reduce minimum height in viewport for sub-meter maps. (#212) - 5d86e9e ITEP-72164 Small corrections in headers (#211) - de24706 ITEP-72198: replace json with orjson for faster operation (#206) - 7d89ee1 ITEP-72164: Optimize the robot_vision tracker (#155) - 71e93a2 GitHub Actions: Bump the github-actions-dependency group with 3 updates (#198) - a9a8fd7 ITEP-72306 License Change to Apache 2.0 (#187) - df9356a ITEP-72407: support editing ROI from 3D UI (#183) - 8b3c6f2 ITEP-72378: Controller image should base on Ubuntu 24.04 (#178) - 4fd78ea ITEP-72433: Fix broken cam api, cam update in 3d ui with dls (#186) - 2e25224 ITEP-71912: Remove printing of password in tests (#192) - 47d2312 [ITEP-71935] Dependabot pip updates (#190) - fdbff59 Github-135: Fix manager build failure (#182) - cd26a0a ITEP-72397: Update link to NVIDIA document in index.rst (#188) - 1ccdb89 Ignore tests directory in bandit scans (#189) - 4636787 ITEP-68817: list all downloaded dependencies (#181) - f7706f1 ITEP-72397: Update link to NVIDIA document from GSG (#180) - fcfd518 ITEP-72395: Update host OS version in documentation (#179) - b7289e3 ITEP-17761 - SUPASS generated (#170) - 95df92c ITEP-68793 Fixing docs after PR #148 (#177) - f7a54cf [CHORE] Bump trivy version (#175) - f5244a8 [ITEP-71370] Adding Trivy Image scan to CI pipeline (#145) - 2d1cc4f ITEP-68061: manage secrets and add attribute persistence (#15) - 1de5624 ITEP-68793: Support Volumetric Analytics in Scene Controller (#148) - 175d7ac Revert "pip: update numpy requirement from <=1.26.4,>=1.16.6 to >=1.16.6,<=2.0.2 in /manager" (#169) - 839cab3 DLStreamer est api - 4574d6c pip: update numpy requirement from <=1.26.4,>=1.16.6 to >=1.16.6,<=2.0.2 in /manager (#161) - 21af088 pip: update numpy requirement from <=1.26.4,>=1.16.6 to >=1.16.6,<=2.0.2 in /autocalibration (#159) - 82fcd9b GitHub Actions: Bump the github-actions-dependency group with 3 updates (#165) - 40dd5c6 ITEP-70236 Set optional linters job to pass even if steps are failing (#168) - de6b66e ITEP-70409: Update camera resolution in controller (#143) - 5fe68e8 ITEP-68895 fix: removing root user from model-installer dockerfile (#146) - 8686340 ITEP-71251 Fix in model installer for test detector-unit (#147) - 9ea8674 ITEP-17618: Scene import and export (#158) - 62dc394 Revert "ITEP-17618: Scene import and export (#132)" (#156) - 28904d2 [ITEP-71370] Update Static code analysis with list of tools from SDL (#130) - 01eb8f8 [DOCS] adjusting codeowners for documentation (#150) - b8dc073 ITEP-17618: Scene import and export (#132) - c7df837 [ITEP-71935] [CI/CD] Add setup_tests to BAT (#153) - d136960 [ITEP-71935] [CI/CD] Extend BAT tests scope (#149) - ad6d129 ITEP-68805 Cartesian to Geospatial conversion: how-to document (#138) - 728faa2 ITEP-70236 Adding Github Actions workflows linter (#137) - c00fc1f ITEP-71304: Update documentation where to find stable versions (#129) - 6bd508e ITEP-71251 fix: testset passing ci (#142) - 6e9aa76 ITEP-70236 Removed html linter (#141) - 319d44f ITEP-68805 Cartesian to Geospatial conversion: end-to-end flow (#121) - 2590e8f ITEP-70132 flatten scene_common folder structure (#126) - 6f7938b Fix frame drops when using DL Streamer pipeline (#139) - a0f0939 [CI] Changed quote type in `make prettier-check` to disable executing write automatically (#136) - d530a07 ITEP-70236 Split linter workflow to required and optional jobs (#134) - 138efbb ITEP-70236 Auto formatted markdown, json, yml, html, js, gltf files with prettier tool (#124) - 7f68465 ITEP-71251 Errors suppression in clean-all when artifacts are already removed (#133) - 590f4c9 GitHub Actions: Bump github/codeql-action from 3.29.0 to 3.29.2 in the github-actions-dependency group (#127) - 09cbd50 ITEP-71251 Autocalibration moved to broken tests section as it's unstable (#131) - 2b63dac ITEP-68060: fix broken tests (#102) - da1138b Revert "ITEP-70236 Auto formatted markdown, json, yml, html, js, gltf… (#123) - 56f3280 ITEP-70236 Auto formatted markdown, json, yml, html, js, gltf files with prettier tool (#119) - 1a1a79f Create automated test for NEX-T12520/ITEP-69797 (Test to measure the scenescape build happens under 10 mins) (#109) - 2bb5748 ITEP-70031: Fix database migration (#116) - d3573b7 GitHub Actions: Bump the github-actions-dependency group with 2 updates (#117) - ce672be ITEP-70990 Add DLStreamer pipeline configs and test compose files (#114) - a7c85a1 ITEP-68805 Cartesian to Geospatial conversion: add common logic functions and unit tests (#112) - 64516d4 ITEP-69567 refactor: Model Installer does not use OpenVino base image (#107) - 7f2a0a2 ITEP-70974 Add missing license (#111) - 6c21319 ITEP-70236 Removing old style checking scripts (#113) - 71e0f60 Update .gitignore (#108) - 497f641 ITEP-70236 - Added lint workflow to CI (#106) - f805f3c [ITEP-68205] CI Cleanup (#105) - 654ff06 ITEP-70563: Update serve files path for admin request (#101) - 905160e [ITEP-70190] Fix: Prevent race conditions in NetVLAD model downloads (#98) - e4deed3 ITEP-70140 Improve UX/DX of running DLStreamer-based demo (#95) - 7ea448a [ITEP-68205] Clean up GHA (#92) - 1d0d396 ITEP-68774: Add test stage for manager (#88) - 3065e0a ITEP-68082: Zephyr references refactoring (#90) - c7a7d9e ITEP-70135 Fix volume cleaning and allow for configurable compose project name (#91) - 08e6bf7 ITEP-69207: Add Docker Optimization for autocalibration with Netvlad download on-fly (#82) - 0c64c55 ITEP-69611: Remove models from repo root directory (#86) - db2e9a4 Reducing the Manager image size (#81) - 4529570 ITEP-68816 Secrets folder cleanup (#87) - 7a9b99c GitHub Actions: Bump the github-actions-dependency group with 2 updates (#84) - 3e85ba1 ITEP-68816 refactor: Makefile with basic acceptance test and help (#85) - 7847f3c ITEP-69617 Docker folder cleanup (#79) - 8647cfb ITEP-68816 refactor: manager host folders replaced by volumes (#77) - 9d34239 Revert "ITEP-69567: Upgrade openvino version to 2025.1 (#80)" (#83) - afd1b5d ITEP-69742: enable DLS-PS for both OOB scenes (#75) - f6179cf ITEP-69567: Upgrade openvino version to 2025.1 (#80) - 68bd503 ITEP-69599: Refactor utils folder (#76) - ce4fe70 ITEP-69638: Fix scenescape build hang behind Proxy (#74) - 7e46306 ITEP-17759: regex is secure in mqtt.py (#72) - 036def7 ITEP-68984: Remove lingering build dependencies (#59) - c67ce9c ITEP-69420 Test cases moved to NEX (#66) - 97c51b1 ITEP-20887: Fix path traversal issues in manager (#71) - 8a62c5f ITEP-69460: Flatten controller folder structure (#70) - 0e61729 ITEP-69206: Reduce controller image size (#69) - fdc0e91 Python formatting, enabling basic acceptance tests (#65) - 7f69f86 update migration tracker (#62) - bb20a7c ITEP-68894: Makefiles improvement (#54) - d812ea7 Create docker image for SceneScape (#47) - a8b92ab ITEP-69157: Controller dockerfile improvements (#57) - 5b4b4bf GitHub Actions: Bump the github-actions-dependency group with 4 updates (#61) - e92ffda [CI/CD] Scan for viruses and License check (#42) - a776157 Initial commit (#58) - 57138c1 GitHub Actions: Bump open-edge-platform/orch-ci (#55) - 5d26071 preserve (0,0) sensor coordinates for SingletonSensor calibration - 0b2e682 ITEP-68468: Introduced common base image and dependency listing (#7) - 81be7c8 ITEP-68627: Re-structure manager folder (#8) - dc1cf09 ITEP-67340: feat: Refactor percebro dockerfile to multistage building (#1) - 0497a5b ITEP-67341: Rename sscape to manager (#4) - a5921fe ITEP-67339: Refactor the dockerfile for autocalibration (#5) - 2ba1ad8 ITEP-67338: Controller multi-stage build and refactor - a56ce2a ITEP-68622: Fix websocket connection to account for host port (#48) - 52e0948 GitHub Actions fix initial workflow (#41) - 871b79f GitHub Actions: Bump open-edge-platform/orch-ci (#40) - 28af301 Initial migration from Jenkins to GitHub Actions (#32) - af96625 ITEP-67983: [CI/CD] Dependabot eco-systems update (#28) - 8dcd333 GitHub-29: Fix build failures for fresh install (#31) - 89fadf2 Update DL Streamer Pipeline server integration docs (#23) - 4df30a7 ITEP-67818: Parallel run of manager, autocalibration, controller and percebro (#27) - 686c450 ITEP-65789: Fix scene controller crash with same remote child (#11) - d0408fd ITEP-67715: Remove opencv build from source (#24) - 4559ae9 Resolve JSON serialize issues when running the human pose estimation (HPE) model (#22) - 076f305 Bump the github-actions-dependency group with 2 updates (#16) - 6a022e2 Fix doxygen build (#13) - a5d1b90 Create dependency order on publishing documentation (#14) - 7693f25 Github workflows to publish component docs (#12) - f26f21c ITEP-66965: fix documentation image links and build sub directory docs (#10) - 678275b ITEP-66876: Update support documents with known issues (#8) - b24d894 ITEP-66731: Update packages to address vulnerabilities (#6) - 045cda4 Update post-merge.yml to publish documentation - 83e6151 ITEP-66428: Fix broken links in docs - d2e507f Bump open-edge-platform/orch-ci in the github-actions-dependency group - 85d2fc9 Introduce documentation workflows. - 966a306 Initial commit - 7af691e add code_of_conduct, contributing agreement, and security.md file
📝 Description
Proposes pure C++ Tracker Service to meet current scale (1000 objects @ 4 cams @ 15 FPS) and future growth.
Architecture:
Why: Current Python+pybind11 hits performance ceiling. C++ enables us to fully utilize the modern hardware.
Migration: Gradual rollout with feature flags (POC → MVP → production).
Related PRs
✨ Type of Change
Select the type of change your PR introduces:
🧪 Testing Scenarios
Describe how the changes were tested and how reviewers can test them too:
✅ Checklist
Before submitting the PR, ensure the following: