Add recording to Shared Memory
This commit is contained in:
1 parent
bb7d08abff
commit
a30643ddc7
24 files changed
+14583
-20
No files matched your search
+13265
-6
File diff suppressed because it is too large.
Load diff
@@ -72,6 +72,7 @@ set(SOURCES
|
||||
src/rknn_yolo.cpp
|
||||
src/config.cpp
|
||||
src/drawing.cpp
|
||||
src/video_writer.cpp
|
||||
)
|
||||
|
||||
add_executable(bytetrack-counter ${SOURCES})
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
# SPEC — ByteTrack Counter C++
|
||||
|
||||
## §G — Goal
|
||||
|
||||
Real-time object detection + tracking + line-cross counting pipeline on RK3588 NPU.
|
||||
Two-class (ayam|talenan). Ayam crossing → increment batch count.
|
||||
Talenan crossing → close batch. Persist to SQLite + JSON.
|
||||
|
||||
## §C — Constraints
|
||||
|
||||
- RK3588 ARM64, RKNN NPU (librknnrt)
|
||||
- Model `zenai_apc_cicalengka_20260609.rknn` — dynamic input shape
|
||||
- C++17, OpenCV 4, Eigen3, SQLite3
|
||||
- systemd service, root, `ProtectSystem=full`
|
||||
- 2 classes: `ayam_class_id=0`, `talenan_class_id=1`
|
||||
- Single counting line, crossing direction `rtl`|`ltr`|`both`
|
||||
- Shift-based counting: day boundary at `DAILY_CUTOFF_TIME`
|
||||
|
||||
## §I — Interfaces
|
||||
|
||||
```
|
||||
env: .env KEY=VALUE file — all config per config.env.example
|
||||
env: LIVE_STREAM_FRAME_PATH → JPEG snapshot path (/dev/shm/bytetrack-counter/live_frame.jpg)
|
||||
cmd: bytetrack-counter <config.env>
|
||||
db: SQLite batches(id,counting_date,batch_number,camera_name,object_label,count,start_time,end_time)
|
||||
db: SQLite daily_summaries(id,counting_date,camera_name,object_label,total_count,total_batches)
|
||||
file: JSON state — batch_number,count,start_time,last_detection_time,counted_event_ids[]
|
||||
file: CSV crossing log — batch,frame,timestamp,chicken_id
|
||||
sig: SIGTERM|SIGINT → shutdown_requested → graceful exit
|
||||
```
|
||||
|
||||
## §V — Invariants
|
||||
|
||||
```
|
||||
V1: ∀ detection → score ≥ conf threshold before tracking
|
||||
V2: rknn_set_input_shapes called before rknn_inputs_set (dynamic shape model !)
|
||||
V3: ∀ track_id → counted ≤ once per batch (dedup via counted_event_ids)
|
||||
V4: talenan crossing → close batch only after ignore_batch_label_timeout (30s) from batch start
|
||||
V5: batch (count < min_object | duration < min_duration) → discard ⊥ persist
|
||||
V6: batch inactivity ≥ batch_timeout (300s) → auto-close
|
||||
V7: counting_date rolls at DAILY_CUTOFF_TIME → cutoff_watcher thread
|
||||
V8: ayam & talenan → separate ByteTrack instances (match_thresh_0=0.8, match_thresh_1=0.6)
|
||||
V9: live_stream_enabled → parent dir of LIVE_STREAM_FRAME_PATH created @ startup
|
||||
V10: stale track (> TRACKED_PRUNE_SEC unseen) → prune from external tracking maps
|
||||
V11: DIRECTORY for LIVE_STREAM_FRAME_PATH must exist — created by code and by tmpfiles.d on boot (/dev/shm is volatile)
|
||||
```
|
||||
|
||||
## §T — Tasks
|
||||
|
||||
```
|
||||
id|status|task|cites
|
||||
T1|x|YOLO inference via RKNN NPU (letterbox, BGR2RGB, coordinate rescale)|V1,V2
|
||||
T2|x|ByteTrack Kalman filter + two-stage IoU matching|V8
|
||||
T3|x|Line-cross detection (rtl|ltr|both) with prev→current cx|V3
|
||||
T4|x|Batch persistence: SQLite + JSON state file|V5,V6
|
||||
T5|x|Batch dedup via counted_event_ids[]|V3
|
||||
T6|x|Talenan-closes-batch logic with ignore-on-start timeout|V4
|
||||
T7|x|Batch timeout thread (generational counter, detached)|V6
|
||||
T8|x|Daily cutoff watcher thread|V7
|
||||
T9|x|Optional motion detection skip-inference|C.motion
|
||||
T10|x|Config from .env file (get_env with defaults)|I.env
|
||||
T11|x|Drawing: HUD, hero count, line, boxes, popups, skeleton|-
|
||||
T12|x|CsvLogger for crossing events|I.file
|
||||
T13|x|Live JPEG snapshot to shared memory|V9
|
||||
T14|x|systemd service with ProtectSystem + ReadWritePaths|I.cmd
|
||||
T15|x|Graceful shutdown: SIGTERM → close batch → save state|I.sig
|
||||
T16|x|Video per batch recording (config exists, impl ⊥ in C++) to shared memory for speed reason. To identify batch is between talenan (index=1), save with different name. Once completed, spawn new process (non blocking) to move recorded file to final destination (from config env). To identify first batch, record and wait X seconds (X default is 10 seconds, can be defined in config env), until first ayam (index=0) detected|-
|
||||
T17|~?|Python DEBUG_TRACKING equivalent (per-frame score/track dump)|-
|
||||
```
|
||||
|
||||
## §B — Bugs
|
||||
|
||||
```
|
||||
id|date|cause|fix
|
||||
```
|
||||
|
||||
(base empty — distilled from code, no bug history)
|
||||
@@ -81,12 +81,12 @@ clean: CMakeFiles/bytetrack-counter.dir/clean
|
||||
CMakeFiles/bytetrack-counter.dir/all:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/bytetrack-counter.dir/build.make CMakeFiles/bytetrack-counter.dir/depend
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/bytetrack-counter.dir/build.make CMakeFiles/bytetrack-counter.dir/build
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/opt/bytetrack-counter-cpp/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9 "Built target bytetrack-counter"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/opt/bytetrack-counter-cpp/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10 "Built target bytetrack-counter"
|
||||
.PHONY : CMakeFiles/bytetrack-counter.dir/all
|
||||
|
||||
# Build rule for subdir invocation for target.
|
||||
CMakeFiles/bytetrack-counter.dir/rule: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /opt/bytetrack-counter-cpp/build/CMakeFiles 9
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /opt/bytetrack-counter-cpp/build/CMakeFiles 10
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/bytetrack-counter.dir/all
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /opt/bytetrack-counter-cpp/build/CMakeFiles 0
|
||||
.PHONY : CMakeFiles/bytetrack-counter.dir/rule
|
||||
|
||||
@@ -16,6 +16,7 @@ set(CMAKE_DEPENDS_DEPENDENCY_FILES
|
||||
"/opt/bytetrack-counter-cpp/src/kalman_filter.cpp" "CMakeFiles/bytetrack-counter.dir/src/kalman_filter.cpp.o" "gcc" "CMakeFiles/bytetrack-counter.dir/src/kalman_filter.cpp.o.d"
|
||||
"/opt/bytetrack-counter-cpp/src/main.cpp" "CMakeFiles/bytetrack-counter.dir/src/main.cpp.o" "gcc" "CMakeFiles/bytetrack-counter.dir/src/main.cpp.o.d"
|
||||
"/opt/bytetrack-counter-cpp/src/rknn_yolo.cpp" "CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o" "gcc" "CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o.d"
|
||||
"/opt/bytetrack-counter-cpp/src/video_writer.cpp" "CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o" "gcc" "CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o.d"
|
||||
)
|
||||
|
||||
# Targets to which this target links which contain Fortran sources.
|
||||
|
||||
@@ -181,6 +181,20 @@ CMakeFiles/bytetrack-counter.dir/src/drawing.cpp.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/bytetrack-counter.dir/src/drawing.cpp.s"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /opt/bytetrack-counter-cpp/src/drawing.cpp -o CMakeFiles/bytetrack-counter.dir/src/drawing.cpp.s
|
||||
|
||||
CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o: CMakeFiles/bytetrack-counter.dir/flags.make
|
||||
CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o: /opt/bytetrack-counter-cpp/src/video_writer.cpp
|
||||
CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o: CMakeFiles/bytetrack-counter.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/opt/bytetrack-counter-cpp/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building CXX object CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o -MF CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o.d -o CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o -c /opt/bytetrack-counter-cpp/src/video_writer.cpp
|
||||
|
||||
CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.i"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /opt/bytetrack-counter-cpp/src/video_writer.cpp > CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.i
|
||||
|
||||
CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.s"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /opt/bytetrack-counter-cpp/src/video_writer.cpp -o CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.s
|
||||
|
||||
# Object files for target bytetrack-counter
|
||||
bytetrack__counter_OBJECTS = \
|
||||
"CMakeFiles/bytetrack-counter.dir/src/main.cpp.o" \
|
||||
@@ -190,7 +204,8 @@ bytetrack__counter_OBJECTS = \
|
||||
"CMakeFiles/bytetrack-counter.dir/src/csv_logger.cpp.o" \
|
||||
"CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o" \
|
||||
"CMakeFiles/bytetrack-counter.dir/src/config.cpp.o" \
|
||||
"CMakeFiles/bytetrack-counter.dir/src/drawing.cpp.o"
|
||||
"CMakeFiles/bytetrack-counter.dir/src/drawing.cpp.o" \
|
||||
"CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o"
|
||||
|
||||
# External object files for target bytetrack-counter
|
||||
bytetrack__counter_EXTERNAL_OBJECTS =
|
||||
@@ -203,6 +218,7 @@ bytetrack-counter: CMakeFiles/bytetrack-counter.dir/src/csv_logger.cpp.o
|
||||
bytetrack-counter: CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o
|
||||
bytetrack-counter: CMakeFiles/bytetrack-counter.dir/src/config.cpp.o
|
||||
bytetrack-counter: CMakeFiles/bytetrack-counter.dir/src/drawing.cpp.o
|
||||
bytetrack-counter: CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o
|
||||
bytetrack-counter: CMakeFiles/bytetrack-counter.dir/build.make
|
||||
bytetrack-counter: /usr/lib/aarch64-linux-gnu/libopencv_highgui.so.4.6.0
|
||||
bytetrack-counter: /usr/lib/aarch64-linux-gnu/libsqlite3.so
|
||||
@@ -212,7 +228,7 @@ bytetrack-counter: /usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.4.6.0
|
||||
bytetrack-counter: /usr/lib/aarch64-linux-gnu/libopencv_imgproc.so.4.6.0
|
||||
bytetrack-counter: /usr/lib/aarch64-linux-gnu/libopencv_core.so.4.6.0
|
||||
bytetrack-counter: CMakeFiles/bytetrack-counter.dir/link.txt
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/opt/bytetrack-counter-cpp/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Linking CXX executable bytetrack-counter"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/opt/bytetrack-counter-cpp/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Linking CXX executable bytetrack-counter"
|
||||
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/bytetrack-counter.dir/link.txt --verbose=$(VERBOSE)
|
||||
|
||||
# Rule to build all files generated by this target.
|
||||
|
||||
@@ -15,6 +15,8 @@ file(REMOVE_RECURSE
|
||||
"CMakeFiles/bytetrack-counter.dir/src/main.cpp.o.d"
|
||||
"CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o"
|
||||
"CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o.d"
|
||||
"CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o"
|
||||
"CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o.d"
|
||||
"bytetrack-counter"
|
||||
"bytetrack-counter.pdb"
|
||||
)
|
||||
|
||||
@@ -2157,6 +2157,7 @@ CMakeFiles/bytetrack-counter.dir/src/main.cpp.o
|
||||
/opt/bytetrack-counter-cpp/src/kalman_filter.hpp
|
||||
/opt/bytetrack-counter-cpp/src/nms.hpp
|
||||
/opt/bytetrack-counter-cpp/src/rknn_yolo.hpp
|
||||
/opt/bytetrack-counter-cpp/src/video_writer.hpp
|
||||
/usr/include/aarch64-linux-gnu/asm/bitsperlong.h
|
||||
/usr/include/aarch64-linux-gnu/asm/errno.h
|
||||
/usr/include/aarch64-linux-gnu/asm/posix_types.h
|
||||
@@ -3503,3 +3504,479 @@ CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/syslimits.h
|
||||
/usr/local/include/rknn/rknn_api.h
|
||||
|
||||
CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o
|
||||
/opt/bytetrack-counter-cpp/src/video_writer.cpp
|
||||
/opt/bytetrack-counter-cpp/src/video_writer.hpp
|
||||
/usr/include/aarch64-linux-gnu/asm/bitsperlong.h
|
||||
/usr/include/aarch64-linux-gnu/asm/errno.h
|
||||
/usr/include/aarch64-linux-gnu/asm/posix_types.h
|
||||
/usr/include/aarch64-linux-gnu/asm/sigcontext.h
|
||||
/usr/include/aarch64-linux-gnu/asm/sve_context.h
|
||||
/usr/include/aarch64-linux-gnu/asm/types.h
|
||||
/usr/include/aarch64-linux-gnu/bits/atomic_wide_counter.h
|
||||
/usr/include/aarch64-linux-gnu/bits/byteswap.h
|
||||
/usr/include/aarch64-linux-gnu/bits/confname.h
|
||||
/usr/include/aarch64-linux-gnu/bits/cpu-set.h
|
||||
/usr/include/aarch64-linux-gnu/bits/endian.h
|
||||
/usr/include/aarch64-linux-gnu/bits/endianness.h
|
||||
/usr/include/aarch64-linux-gnu/bits/environments.h
|
||||
/usr/include/aarch64-linux-gnu/bits/errno.h
|
||||
/usr/include/aarch64-linux-gnu/bits/floatn-common.h
|
||||
/usr/include/aarch64-linux-gnu/bits/floatn.h
|
||||
/usr/include/aarch64-linux-gnu/bits/flt-eval-method.h
|
||||
/usr/include/aarch64-linux-gnu/bits/fp-fast.h
|
||||
/usr/include/aarch64-linux-gnu/bits/fp-logb.h
|
||||
/usr/include/aarch64-linux-gnu/bits/getopt_core.h
|
||||
/usr/include/aarch64-linux-gnu/bits/getopt_posix.h
|
||||
/usr/include/aarch64-linux-gnu/bits/iscanonical.h
|
||||
/usr/include/aarch64-linux-gnu/bits/libc-header-start.h
|
||||
/usr/include/aarch64-linux-gnu/bits/libm-simd-decl-stubs.h
|
||||
/usr/include/aarch64-linux-gnu/bits/local_lim.h
|
||||
/usr/include/aarch64-linux-gnu/bits/locale.h
|
||||
/usr/include/aarch64-linux-gnu/bits/long-double.h
|
||||
/usr/include/aarch64-linux-gnu/bits/math-vector.h
|
||||
/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h
|
||||
/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h
|
||||
/usr/include/aarch64-linux-gnu/bits/mathcalls.h
|
||||
/usr/include/aarch64-linux-gnu/bits/posix1_lim.h
|
||||
/usr/include/aarch64-linux-gnu/bits/posix2_lim.h
|
||||
/usr/include/aarch64-linux-gnu/bits/posix_opt.h
|
||||
/usr/include/aarch64-linux-gnu/bits/procfs-extra.h
|
||||
/usr/include/aarch64-linux-gnu/bits/procfs-id.h
|
||||
/usr/include/aarch64-linux-gnu/bits/procfs-prregset.h
|
||||
/usr/include/aarch64-linux-gnu/bits/procfs.h
|
||||
/usr/include/aarch64-linux-gnu/bits/pthread_stack_min-dynamic.h
|
||||
/usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h
|
||||
/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h
|
||||
/usr/include/aarch64-linux-gnu/bits/sched.h
|
||||
/usr/include/aarch64-linux-gnu/bits/select.h
|
||||
/usr/include/aarch64-linux-gnu/bits/setjmp.h
|
||||
/usr/include/aarch64-linux-gnu/bits/sigaction.h
|
||||
/usr/include/aarch64-linux-gnu/bits/sigcontext.h
|
||||
/usr/include/aarch64-linux-gnu/bits/sigevent-consts.h
|
||||
/usr/include/aarch64-linux-gnu/bits/siginfo-arch.h
|
||||
/usr/include/aarch64-linux-gnu/bits/siginfo-consts-arch.h
|
||||
/usr/include/aarch64-linux-gnu/bits/siginfo-consts.h
|
||||
/usr/include/aarch64-linux-gnu/bits/signal_ext.h
|
||||
/usr/include/aarch64-linux-gnu/bits/signum-arch.h
|
||||
/usr/include/aarch64-linux-gnu/bits/signum-generic.h
|
||||
/usr/include/aarch64-linux-gnu/bits/sigstack.h
|
||||
/usr/include/aarch64-linux-gnu/bits/sigstksz.h
|
||||
/usr/include/aarch64-linux-gnu/bits/sigthread.h
|
||||
/usr/include/aarch64-linux-gnu/bits/ss_flags.h
|
||||
/usr/include/aarch64-linux-gnu/bits/stdint-intn.h
|
||||
/usr/include/aarch64-linux-gnu/bits/stdint-least.h
|
||||
/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h
|
||||
/usr/include/aarch64-linux-gnu/bits/stdio_lim.h
|
||||
/usr/include/aarch64-linux-gnu/bits/stdlib-float.h
|
||||
/usr/include/aarch64-linux-gnu/bits/struct_mutex.h
|
||||
/usr/include/aarch64-linux-gnu/bits/struct_rwlock.h
|
||||
/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h
|
||||
/usr/include/aarch64-linux-gnu/bits/time.h
|
||||
/usr/include/aarch64-linux-gnu/bits/time64.h
|
||||
/usr/include/aarch64-linux-gnu/bits/timesize.h
|
||||
/usr/include/aarch64-linux-gnu/bits/timex.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/FILE.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__FILE.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/clock_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/clockid_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/cookie_io_functions_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/error_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/idtype_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/locale_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/mbstate_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/sigval_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/stack_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct___jmp_buf_tag.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_sched_param.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_tm.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/time_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/timer_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/types/wint_t.h
|
||||
/usr/include/aarch64-linux-gnu/bits/typesizes.h
|
||||
/usr/include/aarch64-linux-gnu/bits/uintn-identity.h
|
||||
/usr/include/aarch64-linux-gnu/bits/uio_lim.h
|
||||
/usr/include/aarch64-linux-gnu/bits/unistd_ext.h
|
||||
/usr/include/aarch64-linux-gnu/bits/waitflags.h
|
||||
/usr/include/aarch64-linux-gnu/bits/waitstatus.h
|
||||
/usr/include/aarch64-linux-gnu/bits/wchar.h
|
||||
/usr/include/aarch64-linux-gnu/bits/wctype-wchar.h
|
||||
/usr/include/aarch64-linux-gnu/bits/wordsize.h
|
||||
/usr/include/aarch64-linux-gnu/bits/xopen_lim.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/atomic_word.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/basic_file.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/c++allocator.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/c++config.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/c++io.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/c++locale.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/cpu_defines.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/ctype_base.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/ctype_inline.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/error_constants.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/gthr-default.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/gthr.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/messages_members.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/os_defines.h
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/time_members.h
|
||||
/usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h
|
||||
/usr/include/aarch64-linux-gnu/gnu/stubs.h
|
||||
/usr/include/aarch64-linux-gnu/sys/cdefs.h
|
||||
/usr/include/aarch64-linux-gnu/sys/procfs.h
|
||||
/usr/include/aarch64-linux-gnu/sys/select.h
|
||||
/usr/include/aarch64-linux-gnu/sys/single_threaded.h
|
||||
/usr/include/aarch64-linux-gnu/sys/time.h
|
||||
/usr/include/aarch64-linux-gnu/sys/types.h
|
||||
/usr/include/aarch64-linux-gnu/sys/ucontext.h
|
||||
/usr/include/aarch64-linux-gnu/sys/user.h
|
||||
/usr/include/aarch64-linux-gnu/sys/wait.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/asm-generic/bitsperlong.h
|
||||
/usr/include/asm-generic/errno-base.h
|
||||
/usr/include/asm-generic/errno.h
|
||||
/usr/include/asm-generic/int-ll64.h
|
||||
/usr/include/asm-generic/posix_types.h
|
||||
/usr/include/asm-generic/types.h
|
||||
/usr/include/assert.h
|
||||
/usr/include/c++/13/algorithm
|
||||
/usr/include/c++/13/array
|
||||
/usr/include/c++/13/backward/auto_ptr.h
|
||||
/usr/include/c++/13/backward/binders.h
|
||||
/usr/include/c++/13/bit
|
||||
/usr/include/c++/13/bits/algorithmfwd.h
|
||||
/usr/include/c++/13/bits/align.h
|
||||
/usr/include/c++/13/bits/alloc_traits.h
|
||||
/usr/include/c++/13/bits/allocated_ptr.h
|
||||
/usr/include/c++/13/bits/allocator.h
|
||||
/usr/include/c++/13/bits/atomic_base.h
|
||||
/usr/include/c++/13/bits/atomic_lockfree_defines.h
|
||||
/usr/include/c++/13/bits/basic_ios.h
|
||||
/usr/include/c++/13/bits/basic_ios.tcc
|
||||
/usr/include/c++/13/bits/basic_string.h
|
||||
/usr/include/c++/13/bits/basic_string.tcc
|
||||
/usr/include/c++/13/bits/char_traits.h
|
||||
/usr/include/c++/13/bits/charconv.h
|
||||
/usr/include/c++/13/bits/chrono.h
|
||||
/usr/include/c++/13/bits/codecvt.h
|
||||
/usr/include/c++/13/bits/concept_check.h
|
||||
/usr/include/c++/13/bits/cpp_type_traits.h
|
||||
/usr/include/c++/13/bits/cxxabi_forced.h
|
||||
/usr/include/c++/13/bits/cxxabi_init_exception.h
|
||||
/usr/include/c++/13/bits/deque.tcc
|
||||
/usr/include/c++/13/bits/enable_special_members.h
|
||||
/usr/include/c++/13/bits/erase_if.h
|
||||
/usr/include/c++/13/bits/exception.h
|
||||
/usr/include/c++/13/bits/exception_defines.h
|
||||
/usr/include/c++/13/bits/exception_ptr.h
|
||||
/usr/include/c++/13/bits/fs_dir.h
|
||||
/usr/include/c++/13/bits/fs_fwd.h
|
||||
/usr/include/c++/13/bits/fs_ops.h
|
||||
/usr/include/c++/13/bits/fs_path.h
|
||||
/usr/include/c++/13/bits/fstream.tcc
|
||||
/usr/include/c++/13/bits/functexcept.h
|
||||
/usr/include/c++/13/bits/functional_hash.h
|
||||
/usr/include/c++/13/bits/hash_bytes.h
|
||||
/usr/include/c++/13/bits/hashtable.h
|
||||
/usr/include/c++/13/bits/hashtable_policy.h
|
||||
/usr/include/c++/13/bits/invoke.h
|
||||
/usr/include/c++/13/bits/ios_base.h
|
||||
/usr/include/c++/13/bits/istream.tcc
|
||||
/usr/include/c++/13/bits/list.tcc
|
||||
/usr/include/c++/13/bits/locale_classes.h
|
||||
/usr/include/c++/13/bits/locale_classes.tcc
|
||||
/usr/include/c++/13/bits/locale_conv.h
|
||||
/usr/include/c++/13/bits/locale_facets.h
|
||||
/usr/include/c++/13/bits/locale_facets.tcc
|
||||
/usr/include/c++/13/bits/locale_facets_nonio.h
|
||||
/usr/include/c++/13/bits/locale_facets_nonio.tcc
|
||||
/usr/include/c++/13/bits/localefwd.h
|
||||
/usr/include/c++/13/bits/memory_resource.h
|
||||
/usr/include/c++/13/bits/memoryfwd.h
|
||||
/usr/include/c++/13/bits/move.h
|
||||
/usr/include/c++/13/bits/nested_exception.h
|
||||
/usr/include/c++/13/bits/new_allocator.h
|
||||
/usr/include/c++/13/bits/node_handle.h
|
||||
/usr/include/c++/13/bits/ostream.tcc
|
||||
/usr/include/c++/13/bits/ostream_insert.h
|
||||
/usr/include/c++/13/bits/parse_numbers.h
|
||||
/usr/include/c++/13/bits/postypes.h
|
||||
/usr/include/c++/13/bits/predefined_ops.h
|
||||
/usr/include/c++/13/bits/ptr_traits.h
|
||||
/usr/include/c++/13/bits/quoted_string.h
|
||||
/usr/include/c++/13/bits/range_access.h
|
||||
/usr/include/c++/13/bits/refwrap.h
|
||||
/usr/include/c++/13/bits/requires_hosted.h
|
||||
/usr/include/c++/13/bits/shared_ptr.h
|
||||
/usr/include/c++/13/bits/shared_ptr_atomic.h
|
||||
/usr/include/c++/13/bits/shared_ptr_base.h
|
||||
/usr/include/c++/13/bits/specfun.h
|
||||
/usr/include/c++/13/bits/sstream.tcc
|
||||
/usr/include/c++/13/bits/std_abs.h
|
||||
/usr/include/c++/13/bits/std_function.h
|
||||
/usr/include/c++/13/bits/std_mutex.h
|
||||
/usr/include/c++/13/bits/stl_algo.h
|
||||
/usr/include/c++/13/bits/stl_algobase.h
|
||||
/usr/include/c++/13/bits/stl_bvector.h
|
||||
/usr/include/c++/13/bits/stl_construct.h
|
||||
/usr/include/c++/13/bits/stl_deque.h
|
||||
/usr/include/c++/13/bits/stl_function.h
|
||||
/usr/include/c++/13/bits/stl_heap.h
|
||||
/usr/include/c++/13/bits/stl_iterator.h
|
||||
/usr/include/c++/13/bits/stl_iterator_base_funcs.h
|
||||
/usr/include/c++/13/bits/stl_iterator_base_types.h
|
||||
/usr/include/c++/13/bits/stl_list.h
|
||||
/usr/include/c++/13/bits/stl_map.h
|
||||
/usr/include/c++/13/bits/stl_multimap.h
|
||||
/usr/include/c++/13/bits/stl_multiset.h
|
||||
/usr/include/c++/13/bits/stl_pair.h
|
||||
/usr/include/c++/13/bits/stl_queue.h
|
||||
/usr/include/c++/13/bits/stl_raw_storage_iter.h
|
||||
/usr/include/c++/13/bits/stl_relops.h
|
||||
/usr/include/c++/13/bits/stl_set.h
|
||||
/usr/include/c++/13/bits/stl_tempbuf.h
|
||||
/usr/include/c++/13/bits/stl_tree.h
|
||||
/usr/include/c++/13/bits/stl_uninitialized.h
|
||||
/usr/include/c++/13/bits/stl_vector.h
|
||||
/usr/include/c++/13/bits/streambuf.tcc
|
||||
/usr/include/c++/13/bits/streambuf_iterator.h
|
||||
/usr/include/c++/13/bits/string_view.tcc
|
||||
/usr/include/c++/13/bits/stringfwd.h
|
||||
/usr/include/c++/13/bits/uniform_int_dist.h
|
||||
/usr/include/c++/13/bits/unique_lock.h
|
||||
/usr/include/c++/13/bits/unique_ptr.h
|
||||
/usr/include/c++/13/bits/unordered_map.h
|
||||
/usr/include/c++/13/bits/uses_allocator.h
|
||||
/usr/include/c++/13/bits/uses_allocator_args.h
|
||||
/usr/include/c++/13/bits/utility.h
|
||||
/usr/include/c++/13/bits/vector.tcc
|
||||
/usr/include/c++/13/cctype
|
||||
/usr/include/c++/13/cerrno
|
||||
/usr/include/c++/13/cfloat
|
||||
/usr/include/c++/13/chrono
|
||||
/usr/include/c++/13/climits
|
||||
/usr/include/c++/13/clocale
|
||||
/usr/include/c++/13/cmath
|
||||
/usr/include/c++/13/codecvt
|
||||
/usr/include/c++/13/compare
|
||||
/usr/include/c++/13/complex
|
||||
/usr/include/c++/13/cstddef
|
||||
/usr/include/c++/13/cstdint
|
||||
/usr/include/c++/13/cstdio
|
||||
/usr/include/c++/13/cstdlib
|
||||
/usr/include/c++/13/cstring
|
||||
/usr/include/c++/13/ctime
|
||||
/usr/include/c++/13/cwchar
|
||||
/usr/include/c++/13/cwctype
|
||||
/usr/include/c++/13/debug/assertions.h
|
||||
/usr/include/c++/13/debug/debug.h
|
||||
/usr/include/c++/13/deque
|
||||
/usr/include/c++/13/exception
|
||||
/usr/include/c++/13/ext/aligned_buffer.h
|
||||
/usr/include/c++/13/ext/alloc_traits.h
|
||||
/usr/include/c++/13/ext/atomicity.h
|
||||
/usr/include/c++/13/ext/concurrence.h
|
||||
/usr/include/c++/13/ext/numeric_traits.h
|
||||
/usr/include/c++/13/ext/string_conversions.h
|
||||
/usr/include/c++/13/ext/type_traits.h
|
||||
/usr/include/c++/13/filesystem
|
||||
/usr/include/c++/13/fstream
|
||||
/usr/include/c++/13/functional
|
||||
/usr/include/c++/13/initializer_list
|
||||
/usr/include/c++/13/iomanip
|
||||
/usr/include/c++/13/ios
|
||||
/usr/include/c++/13/iosfwd
|
||||
/usr/include/c++/13/iostream
|
||||
/usr/include/c++/13/istream
|
||||
/usr/include/c++/13/limits
|
||||
/usr/include/c++/13/list
|
||||
/usr/include/c++/13/locale
|
||||
/usr/include/c++/13/map
|
||||
/usr/include/c++/13/math.h
|
||||
/usr/include/c++/13/memory
|
||||
/usr/include/c++/13/mutex
|
||||
/usr/include/c++/13/new
|
||||
/usr/include/c++/13/ostream
|
||||
/usr/include/c++/13/pstl/execution_defs.h
|
||||
/usr/include/c++/13/pstl/glue_algorithm_defs.h
|
||||
/usr/include/c++/13/pstl/glue_memory_defs.h
|
||||
/usr/include/c++/13/pstl/pstl_config.h
|
||||
/usr/include/c++/13/queue
|
||||
/usr/include/c++/13/ratio
|
||||
/usr/include/c++/13/set
|
||||
/usr/include/c++/13/sstream
|
||||
/usr/include/c++/13/stdexcept
|
||||
/usr/include/c++/13/stdlib.h
|
||||
/usr/include/c++/13/streambuf
|
||||
/usr/include/c++/13/string
|
||||
/usr/include/c++/13/string_view
|
||||
/usr/include/c++/13/system_error
|
||||
/usr/include/c++/13/tr1/bessel_function.tcc
|
||||
/usr/include/c++/13/tr1/beta_function.tcc
|
||||
/usr/include/c++/13/tr1/ell_integral.tcc
|
||||
/usr/include/c++/13/tr1/exp_integral.tcc
|
||||
/usr/include/c++/13/tr1/gamma.tcc
|
||||
/usr/include/c++/13/tr1/hypergeometric.tcc
|
||||
/usr/include/c++/13/tr1/legendre_function.tcc
|
||||
/usr/include/c++/13/tr1/modified_bessel_func.tcc
|
||||
/usr/include/c++/13/tr1/poly_hermite.tcc
|
||||
/usr/include/c++/13/tr1/poly_laguerre.tcc
|
||||
/usr/include/c++/13/tr1/riemann_zeta.tcc
|
||||
/usr/include/c++/13/tr1/special_function_util.h
|
||||
/usr/include/c++/13/tuple
|
||||
/usr/include/c++/13/type_traits
|
||||
/usr/include/c++/13/typeinfo
|
||||
/usr/include/c++/13/unordered_map
|
||||
/usr/include/c++/13/utility
|
||||
/usr/include/c++/13/vector
|
||||
/usr/include/ctype.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/errno.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/features.h
|
||||
/usr/include/libintl.h
|
||||
/usr/include/limits.h
|
||||
/usr/include/linux/close_range.h
|
||||
/usr/include/linux/errno.h
|
||||
/usr/include/linux/limits.h
|
||||
/usr/include/linux/posix_types.h
|
||||
/usr/include/linux/stddef.h
|
||||
/usr/include/linux/types.h
|
||||
/usr/include/locale.h
|
||||
/usr/include/math.h
|
||||
/usr/include/opencv4/opencv2/calib3d.hpp
|
||||
/usr/include/opencv4/opencv2/core.hpp
|
||||
/usr/include/opencv4/opencv2/core/affine.hpp
|
||||
/usr/include/opencv4/opencv2/core/async.hpp
|
||||
/usr/include/opencv4/opencv2/core/base.hpp
|
||||
/usr/include/opencv4/opencv2/core/bufferpool.hpp
|
||||
/usr/include/opencv4/opencv2/core/check.hpp
|
||||
/usr/include/opencv4/opencv2/core/cuda.hpp
|
||||
/usr/include/opencv4/opencv2/core/cuda.inl.hpp
|
||||
/usr/include/opencv4/opencv2/core/cuda_types.hpp
|
||||
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h
|
||||
/usr/include/opencv4/opencv2/core/cvdef.h
|
||||
/usr/include/opencv4/opencv2/core/cvstd.hpp
|
||||
/usr/include/opencv4/opencv2/core/cvstd.inl.hpp
|
||||
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp
|
||||
/usr/include/opencv4/opencv2/core/fast_math.hpp
|
||||
/usr/include/opencv4/opencv2/core/hal/interface.h
|
||||
/usr/include/opencv4/opencv2/core/mat.hpp
|
||||
/usr/include/opencv4/opencv2/core/mat.inl.hpp
|
||||
/usr/include/opencv4/opencv2/core/matx.hpp
|
||||
/usr/include/opencv4/opencv2/core/neon_utils.hpp
|
||||
/usr/include/opencv4/opencv2/core/operations.hpp
|
||||
/usr/include/opencv4/opencv2/core/optim.hpp
|
||||
/usr/include/opencv4/opencv2/core/ovx.hpp
|
||||
/usr/include/opencv4/opencv2/core/persistence.hpp
|
||||
/usr/include/opencv4/opencv2/core/saturate.hpp
|
||||
/usr/include/opencv4/opencv2/core/traits.hpp
|
||||
/usr/include/opencv4/opencv2/core/types.hpp
|
||||
/usr/include/opencv4/opencv2/core/utility.hpp
|
||||
/usr/include/opencv4/opencv2/core/version.hpp
|
||||
/usr/include/opencv4/opencv2/core/vsx_utils.hpp
|
||||
/usr/include/opencv4/opencv2/dnn.hpp
|
||||
/usr/include/opencv4/opencv2/dnn/dict.hpp
|
||||
/usr/include/opencv4/opencv2/dnn/dnn.hpp
|
||||
/usr/include/opencv4/opencv2/dnn/dnn.inl.hpp
|
||||
/usr/include/opencv4/opencv2/dnn/layer.hpp
|
||||
/usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
|
||||
/usr/include/opencv4/opencv2/dnn/version.hpp
|
||||
/usr/include/opencv4/opencv2/features2d.hpp
|
||||
/usr/include/opencv4/opencv2/flann.hpp
|
||||
/usr/include/opencv4/opencv2/flann/all_indices.h
|
||||
/usr/include/opencv4/opencv2/flann/allocator.h
|
||||
/usr/include/opencv4/opencv2/flann/any.h
|
||||
/usr/include/opencv4/opencv2/flann/autotuned_index.h
|
||||
/usr/include/opencv4/opencv2/flann/composite_index.h
|
||||
/usr/include/opencv4/opencv2/flann/config.h
|
||||
/usr/include/opencv4/opencv2/flann/defines.h
|
||||
/usr/include/opencv4/opencv2/flann/dist.h
|
||||
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h
|
||||
/usr/include/opencv4/opencv2/flann/flann_base.hpp
|
||||
/usr/include/opencv4/opencv2/flann/general.h
|
||||
/usr/include/opencv4/opencv2/flann/ground_truth.h
|
||||
/usr/include/opencv4/opencv2/flann/heap.h
|
||||
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
|
||||
/usr/include/opencv4/opencv2/flann/index_testing.h
|
||||
/usr/include/opencv4/opencv2/flann/kdtree_index.h
|
||||
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h
|
||||
/usr/include/opencv4/opencv2/flann/kmeans_index.h
|
||||
/usr/include/opencv4/opencv2/flann/linear_index.h
|
||||
/usr/include/opencv4/opencv2/flann/logger.h
|
||||
/usr/include/opencv4/opencv2/flann/lsh_index.h
|
||||
/usr/include/opencv4/opencv2/flann/lsh_table.h
|
||||
/usr/include/opencv4/opencv2/flann/matrix.h
|
||||
/usr/include/opencv4/opencv2/flann/miniflann.hpp
|
||||
/usr/include/opencv4/opencv2/flann/nn_index.h
|
||||
/usr/include/opencv4/opencv2/flann/params.h
|
||||
/usr/include/opencv4/opencv2/flann/random.h
|
||||
/usr/include/opencv4/opencv2/flann/result_set.h
|
||||
/usr/include/opencv4/opencv2/flann/sampling.h
|
||||
/usr/include/opencv4/opencv2/flann/saving.h
|
||||
/usr/include/opencv4/opencv2/flann/timer.h
|
||||
/usr/include/opencv4/opencv2/highgui.hpp
|
||||
/usr/include/opencv4/opencv2/imgcodecs.hpp
|
||||
/usr/include/opencv4/opencv2/imgproc.hpp
|
||||
/usr/include/opencv4/opencv2/imgproc/segmentation.hpp
|
||||
/usr/include/opencv4/opencv2/ml.hpp
|
||||
/usr/include/opencv4/opencv2/ml/ml.inl.hpp
|
||||
/usr/include/opencv4/opencv2/objdetect.hpp
|
||||
/usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
|
||||
/usr/include/opencv4/opencv2/objdetect/face.hpp
|
||||
/usr/include/opencv4/opencv2/opencv.hpp
|
||||
/usr/include/opencv4/opencv2/opencv_modules.hpp
|
||||
/usr/include/opencv4/opencv2/photo.hpp
|
||||
/usr/include/opencv4/opencv2/stitching.hpp
|
||||
/usr/include/opencv4/opencv2/stitching/detail/blenders.hpp
|
||||
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp
|
||||
/usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
|
||||
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp
|
||||
/usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
|
||||
/usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
|
||||
/usr/include/opencv4/opencv2/stitching/detail/util.hpp
|
||||
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp
|
||||
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp
|
||||
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
|
||||
/usr/include/opencv4/opencv2/stitching/warpers.hpp
|
||||
/usr/include/opencv4/opencv2/video.hpp
|
||||
/usr/include/opencv4/opencv2/video/background_segm.hpp
|
||||
/usr/include/opencv4/opencv2/video/tracking.hpp
|
||||
/usr/include/opencv4/opencv2/videoio.hpp
|
||||
/usr/include/pthread.h
|
||||
/usr/include/sched.h
|
||||
/usr/include/signal.h
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/stdio.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/usr/include/time.h
|
||||
/usr/include/unistd.h
|
||||
/usr/include/wchar.h
|
||||
/usr/include/wctype.h
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/arm_bf16.h
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/arm_fp16.h
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/arm_neon.h
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/float.h
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/limits.h
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/stdarg.h
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/stddef.h
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/stdint.h
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/syslimits.h
|
||||
|
||||
@@ -2150,6 +2150,7 @@ CMakeFiles/bytetrack-counter.dir/src/main.cpp.o: /opt/bytetrack-counter-cpp/src/
|
||||
/opt/bytetrack-counter-cpp/src/kalman_filter.hpp \
|
||||
/opt/bytetrack-counter-cpp/src/nms.hpp \
|
||||
/opt/bytetrack-counter-cpp/src/rknn_yolo.hpp \
|
||||
/opt/bytetrack-counter-cpp/src/video_writer.hpp \
|
||||
/usr/include/aarch64-linux-gnu/asm/bitsperlong.h \
|
||||
/usr/include/aarch64-linux-gnu/asm/errno.h \
|
||||
/usr/include/aarch64-linux-gnu/asm/posix_types.h \
|
||||
@@ -3495,6 +3496,485 @@ CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o: /opt/bytetrack-counter-cpp
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/syslimits.h \
|
||||
/usr/local/include/rknn/rknn_api.h
|
||||
|
||||
CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o: /opt/bytetrack-counter-cpp/src/video_writer.cpp \
|
||||
/opt/bytetrack-counter-cpp/src/video_writer.hpp \
|
||||
/usr/include/aarch64-linux-gnu/asm/bitsperlong.h \
|
||||
/usr/include/aarch64-linux-gnu/asm/errno.h \
|
||||
/usr/include/aarch64-linux-gnu/asm/posix_types.h \
|
||||
/usr/include/aarch64-linux-gnu/asm/sigcontext.h \
|
||||
/usr/include/aarch64-linux-gnu/asm/sve_context.h \
|
||||
/usr/include/aarch64-linux-gnu/asm/types.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/atomic_wide_counter.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/byteswap.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/confname.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/cpu-set.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/endian.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/endianness.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/environments.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/errno.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/floatn-common.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/floatn.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/flt-eval-method.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/fp-fast.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/fp-logb.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/getopt_core.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/getopt_posix.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/iscanonical.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/libc-header-start.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/libm-simd-decl-stubs.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/local_lim.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/locale.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/long-double.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/math-vector.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/mathcalls-narrow.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/mathcalls.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/posix1_lim.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/posix2_lim.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/posix_opt.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/procfs-extra.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/procfs-id.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/procfs-prregset.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/procfs.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/pthread_stack_min-dynamic.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/sched.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/select.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/setjmp.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/sigaction.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/sigcontext.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/sigevent-consts.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/siginfo-arch.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/siginfo-consts-arch.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/siginfo-consts.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/signal_ext.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/signum-arch.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/signum-generic.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/sigstack.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/sigstksz.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/sigthread.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/ss_flags.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/stdint-intn.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/stdint-least.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/stdio_lim.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/stdlib-float.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/struct_mutex.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/struct_rwlock.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/time.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/time64.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/timesize.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/timex.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/FILE.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__FILE.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/clock_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/error_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/idtype_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/locale_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/mbstate_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/sigval_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/stack_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct___jmp_buf_tag.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_sched_param.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/struct_tm.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/time_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/timer_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/types/wint_t.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/typesizes.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/uintn-identity.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/uio_lim.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/unistd_ext.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/waitflags.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/waitstatus.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/wchar.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/wctype-wchar.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/wordsize.h \
|
||||
/usr/include/aarch64-linux-gnu/bits/xopen_lim.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/atomic_word.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/basic_file.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/c++allocator.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/c++config.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/c++io.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/c++locale.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/cpu_defines.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/ctype_base.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/ctype_inline.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/error_constants.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/gthr-default.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/gthr.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/messages_members.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/os_defines.h \
|
||||
/usr/include/aarch64-linux-gnu/c++/13/bits/time_members.h \
|
||||
/usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \
|
||||
/usr/include/aarch64-linux-gnu/gnu/stubs.h \
|
||||
/usr/include/aarch64-linux-gnu/sys/cdefs.h \
|
||||
/usr/include/aarch64-linux-gnu/sys/procfs.h \
|
||||
/usr/include/aarch64-linux-gnu/sys/select.h \
|
||||
/usr/include/aarch64-linux-gnu/sys/single_threaded.h \
|
||||
/usr/include/aarch64-linux-gnu/sys/time.h \
|
||||
/usr/include/aarch64-linux-gnu/sys/types.h \
|
||||
/usr/include/aarch64-linux-gnu/sys/ucontext.h \
|
||||
/usr/include/aarch64-linux-gnu/sys/user.h \
|
||||
/usr/include/aarch64-linux-gnu/sys/wait.h \
|
||||
/usr/include/alloca.h \
|
||||
/usr/include/asm-generic/bitsperlong.h \
|
||||
/usr/include/asm-generic/errno-base.h \
|
||||
/usr/include/asm-generic/errno.h \
|
||||
/usr/include/asm-generic/int-ll64.h \
|
||||
/usr/include/asm-generic/posix_types.h \
|
||||
/usr/include/asm-generic/types.h \
|
||||
/usr/include/assert.h \
|
||||
/usr/include/c++/13/algorithm \
|
||||
/usr/include/c++/13/array \
|
||||
/usr/include/c++/13/backward/auto_ptr.h \
|
||||
/usr/include/c++/13/backward/binders.h \
|
||||
/usr/include/c++/13/bit \
|
||||
/usr/include/c++/13/bits/algorithmfwd.h \
|
||||
/usr/include/c++/13/bits/align.h \
|
||||
/usr/include/c++/13/bits/alloc_traits.h \
|
||||
/usr/include/c++/13/bits/allocated_ptr.h \
|
||||
/usr/include/c++/13/bits/allocator.h \
|
||||
/usr/include/c++/13/bits/atomic_base.h \
|
||||
/usr/include/c++/13/bits/atomic_lockfree_defines.h \
|
||||
/usr/include/c++/13/bits/basic_ios.h \
|
||||
/usr/include/c++/13/bits/basic_ios.tcc \
|
||||
/usr/include/c++/13/bits/basic_string.h \
|
||||
/usr/include/c++/13/bits/basic_string.tcc \
|
||||
/usr/include/c++/13/bits/char_traits.h \
|
||||
/usr/include/c++/13/bits/charconv.h \
|
||||
/usr/include/c++/13/bits/chrono.h \
|
||||
/usr/include/c++/13/bits/codecvt.h \
|
||||
/usr/include/c++/13/bits/concept_check.h \
|
||||
/usr/include/c++/13/bits/cpp_type_traits.h \
|
||||
/usr/include/c++/13/bits/cxxabi_forced.h \
|
||||
/usr/include/c++/13/bits/cxxabi_init_exception.h \
|
||||
/usr/include/c++/13/bits/deque.tcc \
|
||||
/usr/include/c++/13/bits/enable_special_members.h \
|
||||
/usr/include/c++/13/bits/erase_if.h \
|
||||
/usr/include/c++/13/bits/exception.h \
|
||||
/usr/include/c++/13/bits/exception_defines.h \
|
||||
/usr/include/c++/13/bits/exception_ptr.h \
|
||||
/usr/include/c++/13/bits/fs_dir.h \
|
||||
/usr/include/c++/13/bits/fs_fwd.h \
|
||||
/usr/include/c++/13/bits/fs_ops.h \
|
||||
/usr/include/c++/13/bits/fs_path.h \
|
||||
/usr/include/c++/13/bits/fstream.tcc \
|
||||
/usr/include/c++/13/bits/functexcept.h \
|
||||
/usr/include/c++/13/bits/functional_hash.h \
|
||||
/usr/include/c++/13/bits/hash_bytes.h \
|
||||
/usr/include/c++/13/bits/hashtable.h \
|
||||
/usr/include/c++/13/bits/hashtable_policy.h \
|
||||
/usr/include/c++/13/bits/invoke.h \
|
||||
/usr/include/c++/13/bits/ios_base.h \
|
||||
/usr/include/c++/13/bits/istream.tcc \
|
||||
/usr/include/c++/13/bits/list.tcc \
|
||||
/usr/include/c++/13/bits/locale_classes.h \
|
||||
/usr/include/c++/13/bits/locale_classes.tcc \
|
||||
/usr/include/c++/13/bits/locale_conv.h \
|
||||
/usr/include/c++/13/bits/locale_facets.h \
|
||||
/usr/include/c++/13/bits/locale_facets.tcc \
|
||||
/usr/include/c++/13/bits/locale_facets_nonio.h \
|
||||
/usr/include/c++/13/bits/locale_facets_nonio.tcc \
|
||||
/usr/include/c++/13/bits/localefwd.h \
|
||||
/usr/include/c++/13/bits/memory_resource.h \
|
||||
/usr/include/c++/13/bits/memoryfwd.h \
|
||||
/usr/include/c++/13/bits/move.h \
|
||||
/usr/include/c++/13/bits/nested_exception.h \
|
||||
/usr/include/c++/13/bits/new_allocator.h \
|
||||
/usr/include/c++/13/bits/node_handle.h \
|
||||
/usr/include/c++/13/bits/ostream.tcc \
|
||||
/usr/include/c++/13/bits/ostream_insert.h \
|
||||
/usr/include/c++/13/bits/parse_numbers.h \
|
||||
/usr/include/c++/13/bits/postypes.h \
|
||||
/usr/include/c++/13/bits/predefined_ops.h \
|
||||
/usr/include/c++/13/bits/ptr_traits.h \
|
||||
/usr/include/c++/13/bits/quoted_string.h \
|
||||
/usr/include/c++/13/bits/range_access.h \
|
||||
/usr/include/c++/13/bits/refwrap.h \
|
||||
/usr/include/c++/13/bits/requires_hosted.h \
|
||||
/usr/include/c++/13/bits/shared_ptr.h \
|
||||
/usr/include/c++/13/bits/shared_ptr_atomic.h \
|
||||
/usr/include/c++/13/bits/shared_ptr_base.h \
|
||||
/usr/include/c++/13/bits/specfun.h \
|
||||
/usr/include/c++/13/bits/sstream.tcc \
|
||||
/usr/include/c++/13/bits/std_abs.h \
|
||||
/usr/include/c++/13/bits/std_function.h \
|
||||
/usr/include/c++/13/bits/std_mutex.h \
|
||||
/usr/include/c++/13/bits/stl_algo.h \
|
||||
/usr/include/c++/13/bits/stl_algobase.h \
|
||||
/usr/include/c++/13/bits/stl_bvector.h \
|
||||
/usr/include/c++/13/bits/stl_construct.h \
|
||||
/usr/include/c++/13/bits/stl_deque.h \
|
||||
/usr/include/c++/13/bits/stl_function.h \
|
||||
/usr/include/c++/13/bits/stl_heap.h \
|
||||
/usr/include/c++/13/bits/stl_iterator.h \
|
||||
/usr/include/c++/13/bits/stl_iterator_base_funcs.h \
|
||||
/usr/include/c++/13/bits/stl_iterator_base_types.h \
|
||||
/usr/include/c++/13/bits/stl_list.h \
|
||||
/usr/include/c++/13/bits/stl_map.h \
|
||||
/usr/include/c++/13/bits/stl_multimap.h \
|
||||
/usr/include/c++/13/bits/stl_multiset.h \
|
||||
/usr/include/c++/13/bits/stl_pair.h \
|
||||
/usr/include/c++/13/bits/stl_queue.h \
|
||||
/usr/include/c++/13/bits/stl_raw_storage_iter.h \
|
||||
/usr/include/c++/13/bits/stl_relops.h \
|
||||
/usr/include/c++/13/bits/stl_set.h \
|
||||
/usr/include/c++/13/bits/stl_tempbuf.h \
|
||||
/usr/include/c++/13/bits/stl_tree.h \
|
||||
/usr/include/c++/13/bits/stl_uninitialized.h \
|
||||
/usr/include/c++/13/bits/stl_vector.h \
|
||||
/usr/include/c++/13/bits/streambuf.tcc \
|
||||
/usr/include/c++/13/bits/streambuf_iterator.h \
|
||||
/usr/include/c++/13/bits/string_view.tcc \
|
||||
/usr/include/c++/13/bits/stringfwd.h \
|
||||
/usr/include/c++/13/bits/uniform_int_dist.h \
|
||||
/usr/include/c++/13/bits/unique_lock.h \
|
||||
/usr/include/c++/13/bits/unique_ptr.h \
|
||||
/usr/include/c++/13/bits/unordered_map.h \
|
||||
/usr/include/c++/13/bits/uses_allocator.h \
|
||||
/usr/include/c++/13/bits/uses_allocator_args.h \
|
||||
/usr/include/c++/13/bits/utility.h \
|
||||
/usr/include/c++/13/bits/vector.tcc \
|
||||
/usr/include/c++/13/cctype \
|
||||
/usr/include/c++/13/cerrno \
|
||||
/usr/include/c++/13/cfloat \
|
||||
/usr/include/c++/13/chrono \
|
||||
/usr/include/c++/13/climits \
|
||||
/usr/include/c++/13/clocale \
|
||||
/usr/include/c++/13/cmath \
|
||||
/usr/include/c++/13/codecvt \
|
||||
/usr/include/c++/13/compare \
|
||||
/usr/include/c++/13/complex \
|
||||
/usr/include/c++/13/cstddef \
|
||||
/usr/include/c++/13/cstdint \
|
||||
/usr/include/c++/13/cstdio \
|
||||
/usr/include/c++/13/cstdlib \
|
||||
/usr/include/c++/13/cstring \
|
||||
/usr/include/c++/13/ctime \
|
||||
/usr/include/c++/13/cwchar \
|
||||
/usr/include/c++/13/cwctype \
|
||||
/usr/include/c++/13/debug/assertions.h \
|
||||
/usr/include/c++/13/debug/debug.h \
|
||||
/usr/include/c++/13/deque \
|
||||
/usr/include/c++/13/exception \
|
||||
/usr/include/c++/13/ext/aligned_buffer.h \
|
||||
/usr/include/c++/13/ext/alloc_traits.h \
|
||||
/usr/include/c++/13/ext/atomicity.h \
|
||||
/usr/include/c++/13/ext/concurrence.h \
|
||||
/usr/include/c++/13/ext/numeric_traits.h \
|
||||
/usr/include/c++/13/ext/string_conversions.h \
|
||||
/usr/include/c++/13/ext/type_traits.h \
|
||||
/usr/include/c++/13/filesystem \
|
||||
/usr/include/c++/13/fstream \
|
||||
/usr/include/c++/13/functional \
|
||||
/usr/include/c++/13/initializer_list \
|
||||
/usr/include/c++/13/iomanip \
|
||||
/usr/include/c++/13/ios \
|
||||
/usr/include/c++/13/iosfwd \
|
||||
/usr/include/c++/13/iostream \
|
||||
/usr/include/c++/13/istream \
|
||||
/usr/include/c++/13/limits \
|
||||
/usr/include/c++/13/list \
|
||||
/usr/include/c++/13/locale \
|
||||
/usr/include/c++/13/map \
|
||||
/usr/include/c++/13/math.h \
|
||||
/usr/include/c++/13/memory \
|
||||
/usr/include/c++/13/mutex \
|
||||
/usr/include/c++/13/new \
|
||||
/usr/include/c++/13/ostream \
|
||||
/usr/include/c++/13/pstl/execution_defs.h \
|
||||
/usr/include/c++/13/pstl/glue_algorithm_defs.h \
|
||||
/usr/include/c++/13/pstl/glue_memory_defs.h \
|
||||
/usr/include/c++/13/pstl/pstl_config.h \
|
||||
/usr/include/c++/13/queue \
|
||||
/usr/include/c++/13/ratio \
|
||||
/usr/include/c++/13/set \
|
||||
/usr/include/c++/13/sstream \
|
||||
/usr/include/c++/13/stdexcept \
|
||||
/usr/include/c++/13/stdlib.h \
|
||||
/usr/include/c++/13/streambuf \
|
||||
/usr/include/c++/13/string \
|
||||
/usr/include/c++/13/string_view \
|
||||
/usr/include/c++/13/system_error \
|
||||
/usr/include/c++/13/tr1/bessel_function.tcc \
|
||||
/usr/include/c++/13/tr1/beta_function.tcc \
|
||||
/usr/include/c++/13/tr1/ell_integral.tcc \
|
||||
/usr/include/c++/13/tr1/exp_integral.tcc \
|
||||
/usr/include/c++/13/tr1/gamma.tcc \
|
||||
/usr/include/c++/13/tr1/hypergeometric.tcc \
|
||||
/usr/include/c++/13/tr1/legendre_function.tcc \
|
||||
/usr/include/c++/13/tr1/modified_bessel_func.tcc \
|
||||
/usr/include/c++/13/tr1/poly_hermite.tcc \
|
||||
/usr/include/c++/13/tr1/poly_laguerre.tcc \
|
||||
/usr/include/c++/13/tr1/riemann_zeta.tcc \
|
||||
/usr/include/c++/13/tr1/special_function_util.h \
|
||||
/usr/include/c++/13/tuple \
|
||||
/usr/include/c++/13/type_traits \
|
||||
/usr/include/c++/13/typeinfo \
|
||||
/usr/include/c++/13/unordered_map \
|
||||
/usr/include/c++/13/utility \
|
||||
/usr/include/c++/13/vector \
|
||||
/usr/include/ctype.h \
|
||||
/usr/include/endian.h \
|
||||
/usr/include/errno.h \
|
||||
/usr/include/features-time64.h \
|
||||
/usr/include/features.h \
|
||||
/usr/include/libintl.h \
|
||||
/usr/include/limits.h \
|
||||
/usr/include/linux/close_range.h \
|
||||
/usr/include/linux/errno.h \
|
||||
/usr/include/linux/limits.h \
|
||||
/usr/include/linux/posix_types.h \
|
||||
/usr/include/linux/stddef.h \
|
||||
/usr/include/linux/types.h \
|
||||
/usr/include/locale.h \
|
||||
/usr/include/math.h \
|
||||
/usr/include/opencv4/opencv2/calib3d.hpp \
|
||||
/usr/include/opencv4/opencv2/core.hpp \
|
||||
/usr/include/opencv4/opencv2/core/affine.hpp \
|
||||
/usr/include/opencv4/opencv2/core/async.hpp \
|
||||
/usr/include/opencv4/opencv2/core/base.hpp \
|
||||
/usr/include/opencv4/opencv2/core/bufferpool.hpp \
|
||||
/usr/include/opencv4/opencv2/core/check.hpp \
|
||||
/usr/include/opencv4/opencv2/core/cuda.hpp \
|
||||
/usr/include/opencv4/opencv2/core/cuda.inl.hpp \
|
||||
/usr/include/opencv4/opencv2/core/cuda_types.hpp \
|
||||
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h \
|
||||
/usr/include/opencv4/opencv2/core/cvdef.h \
|
||||
/usr/include/opencv4/opencv2/core/cvstd.hpp \
|
||||
/usr/include/opencv4/opencv2/core/cvstd.inl.hpp \
|
||||
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp \
|
||||
/usr/include/opencv4/opencv2/core/fast_math.hpp \
|
||||
/usr/include/opencv4/opencv2/core/hal/interface.h \
|
||||
/usr/include/opencv4/opencv2/core/mat.hpp \
|
||||
/usr/include/opencv4/opencv2/core/mat.inl.hpp \
|
||||
/usr/include/opencv4/opencv2/core/matx.hpp \
|
||||
/usr/include/opencv4/opencv2/core/neon_utils.hpp \
|
||||
/usr/include/opencv4/opencv2/core/operations.hpp \
|
||||
/usr/include/opencv4/opencv2/core/optim.hpp \
|
||||
/usr/include/opencv4/opencv2/core/ovx.hpp \
|
||||
/usr/include/opencv4/opencv2/core/persistence.hpp \
|
||||
/usr/include/opencv4/opencv2/core/saturate.hpp \
|
||||
/usr/include/opencv4/opencv2/core/traits.hpp \
|
||||
/usr/include/opencv4/opencv2/core/types.hpp \
|
||||
/usr/include/opencv4/opencv2/core/utility.hpp \
|
||||
/usr/include/opencv4/opencv2/core/version.hpp \
|
||||
/usr/include/opencv4/opencv2/core/vsx_utils.hpp \
|
||||
/usr/include/opencv4/opencv2/dnn.hpp \
|
||||
/usr/include/opencv4/opencv2/dnn/dict.hpp \
|
||||
/usr/include/opencv4/opencv2/dnn/dnn.hpp \
|
||||
/usr/include/opencv4/opencv2/dnn/dnn.inl.hpp \
|
||||
/usr/include/opencv4/opencv2/dnn/layer.hpp \
|
||||
/usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp \
|
||||
/usr/include/opencv4/opencv2/dnn/version.hpp \
|
||||
/usr/include/opencv4/opencv2/features2d.hpp \
|
||||
/usr/include/opencv4/opencv2/flann.hpp \
|
||||
/usr/include/opencv4/opencv2/flann/all_indices.h \
|
||||
/usr/include/opencv4/opencv2/flann/allocator.h \
|
||||
/usr/include/opencv4/opencv2/flann/any.h \
|
||||
/usr/include/opencv4/opencv2/flann/autotuned_index.h \
|
||||
/usr/include/opencv4/opencv2/flann/composite_index.h \
|
||||
/usr/include/opencv4/opencv2/flann/config.h \
|
||||
/usr/include/opencv4/opencv2/flann/defines.h \
|
||||
/usr/include/opencv4/opencv2/flann/dist.h \
|
||||
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h \
|
||||
/usr/include/opencv4/opencv2/flann/flann_base.hpp \
|
||||
/usr/include/opencv4/opencv2/flann/general.h \
|
||||
/usr/include/opencv4/opencv2/flann/ground_truth.h \
|
||||
/usr/include/opencv4/opencv2/flann/heap.h \
|
||||
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h \
|
||||
/usr/include/opencv4/opencv2/flann/index_testing.h \
|
||||
/usr/include/opencv4/opencv2/flann/kdtree_index.h \
|
||||
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h \
|
||||
/usr/include/opencv4/opencv2/flann/kmeans_index.h \
|
||||
/usr/include/opencv4/opencv2/flann/linear_index.h \
|
||||
/usr/include/opencv4/opencv2/flann/logger.h \
|
||||
/usr/include/opencv4/opencv2/flann/lsh_index.h \
|
||||
/usr/include/opencv4/opencv2/flann/lsh_table.h \
|
||||
/usr/include/opencv4/opencv2/flann/matrix.h \
|
||||
/usr/include/opencv4/opencv2/flann/miniflann.hpp \
|
||||
/usr/include/opencv4/opencv2/flann/nn_index.h \
|
||||
/usr/include/opencv4/opencv2/flann/params.h \
|
||||
/usr/include/opencv4/opencv2/flann/random.h \
|
||||
/usr/include/opencv4/opencv2/flann/result_set.h \
|
||||
/usr/include/opencv4/opencv2/flann/sampling.h \
|
||||
/usr/include/opencv4/opencv2/flann/saving.h \
|
||||
/usr/include/opencv4/opencv2/flann/timer.h \
|
||||
/usr/include/opencv4/opencv2/highgui.hpp \
|
||||
/usr/include/opencv4/opencv2/imgcodecs.hpp \
|
||||
/usr/include/opencv4/opencv2/imgproc.hpp \
|
||||
/usr/include/opencv4/opencv2/imgproc/segmentation.hpp \
|
||||
/usr/include/opencv4/opencv2/ml.hpp \
|
||||
/usr/include/opencv4/opencv2/ml/ml.inl.hpp \
|
||||
/usr/include/opencv4/opencv2/objdetect.hpp \
|
||||
/usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp \
|
||||
/usr/include/opencv4/opencv2/objdetect/face.hpp \
|
||||
/usr/include/opencv4/opencv2/opencv.hpp \
|
||||
/usr/include/opencv4/opencv2/opencv_modules.hpp \
|
||||
/usr/include/opencv4/opencv2/photo.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching/detail/blenders.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching/detail/util.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp \
|
||||
/usr/include/opencv4/opencv2/stitching/warpers.hpp \
|
||||
/usr/include/opencv4/opencv2/video.hpp \
|
||||
/usr/include/opencv4/opencv2/video/background_segm.hpp \
|
||||
/usr/include/opencv4/opencv2/video/tracking.hpp \
|
||||
/usr/include/opencv4/opencv2/videoio.hpp \
|
||||
/usr/include/pthread.h \
|
||||
/usr/include/sched.h \
|
||||
/usr/include/signal.h \
|
||||
/usr/include/stdc-predef.h \
|
||||
/usr/include/stdint.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/usr/include/time.h \
|
||||
/usr/include/unistd.h \
|
||||
/usr/include/wchar.h \
|
||||
/usr/include/wctype.h \
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/arm_bf16.h \
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/arm_fp16.h \
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/arm_neon.h \
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/float.h \
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/limits.h \
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/stdarg.h \
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/stddef.h \
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/stdint.h \
|
||||
/usr/lib/gcc/aarch64-linux-gnu/13/include/syslimits.h
|
||||
|
||||
|
||||
/usr/include/aarch64-linux-gnu/bits/types/idtype_t.h:
|
||||
|
||||
/opt/bytetrack-counter-cpp/src/video_writer.cpp:
|
||||
|
||||
/opt/bytetrack-counter-cpp/src/rknn_yolo.cpp:
|
||||
|
||||
@@ -3594,6 +4074,8 @@ CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o: /opt/bytetrack-counter-cpp
|
||||
|
||||
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h:
|
||||
|
||||
/usr/include/aarch64-linux-gnu/sys/wait.h:
|
||||
|
||||
/usr/include/opencv4/opencv2/flann/ground_truth.h:
|
||||
|
||||
/usr/include/opencv4/opencv2/flann/general.h:
|
||||
@@ -4514,6 +4996,8 @@ CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o: /opt/bytetrack-counter-cpp
|
||||
|
||||
/usr/include/c++/13/pstl/glue_algorithm_defs.h:
|
||||
|
||||
/opt/bytetrack-counter-cpp/src/video_writer.hpp:
|
||||
|
||||
/usr/include/c++/13/bits/std_thread.h:
|
||||
|
||||
/usr/include/eigen3/Eigen/src/Core/Visitor.h:
|
||||
|
||||
@@ -1 +1 @@
|
||||
/usr/bin/c++ "CMakeFiles/bytetrack-counter.dir/src/main.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/kalman_filter.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/bytetrack.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/batch_store.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/csv_logger.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/config.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/drawing.cpp.o" -o bytetrack-counter /usr/lib/aarch64-linux-gnu/libopencv_highgui.so.4.6.0 /usr/lib/aarch64-linux-gnu/libsqlite3.so -lpthread /usr/lib/librknnrt.so /usr/lib/aarch64-linux-gnu/libopencv_videoio.so.4.6.0 /usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.4.6.0 /usr/lib/aarch64-linux-gnu/libopencv_imgproc.so.4.6.0 /usr/lib/aarch64-linux-gnu/libopencv_core.so.4.6.0
|
||||
/usr/bin/c++ "CMakeFiles/bytetrack-counter.dir/src/main.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/kalman_filter.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/bytetrack.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/batch_store.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/csv_logger.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/config.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/drawing.cpp.o" "CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o" -o bytetrack-counter /usr/lib/aarch64-linux-gnu/libopencv_highgui.so.4.6.0 /usr/lib/aarch64-linux-gnu/libsqlite3.so -lpthread /usr/lib/librknnrt.so /usr/lib/aarch64-linux-gnu/libopencv_videoio.so.4.6.0 /usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.4.6.0 /usr/lib/aarch64-linux-gnu/libopencv_imgproc.so.4.6.0 /usr/lib/aarch64-linux-gnu/libopencv_core.so.4.6.0
|
||||
@@ -7,4 +7,5 @@ CMAKE_PROGRESS_6 = 6
|
||||
CMAKE_PROGRESS_7 = 7
|
||||
CMAKE_PROGRESS_8 = 8
|
||||
CMAKE_PROGRESS_9 = 9
|
||||
CMAKE_PROGRESS_10 = 10
|
||||
|
||||
@@ -1 +1 @@
|
||||
9
|
||||
10
|
||||
@@ -366,6 +366,30 @@ src/rknn_yolo.cpp.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/bytetrack-counter.dir/build.make CMakeFiles/bytetrack-counter.dir/src/rknn_yolo.cpp.s
|
||||
.PHONY : src/rknn_yolo.cpp.s
|
||||
|
||||
src/video_writer.o: src/video_writer.cpp.o
|
||||
.PHONY : src/video_writer.o
|
||||
|
||||
# target to build an object file
|
||||
src/video_writer.cpp.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/bytetrack-counter.dir/build.make CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.o
|
||||
.PHONY : src/video_writer.cpp.o
|
||||
|
||||
src/video_writer.i: src/video_writer.cpp.i
|
||||
.PHONY : src/video_writer.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/video_writer.cpp.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/bytetrack-counter.dir/build.make CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.i
|
||||
.PHONY : src/video_writer.cpp.i
|
||||
|
||||
src/video_writer.s: src/video_writer.cpp.s
|
||||
.PHONY : src/video_writer.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/video_writer.cpp.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/bytetrack-counter.dir/build.make CMakeFiles/bytetrack-counter.dir/src/video_writer.cpp.s
|
||||
.PHONY : src/video_writer.cpp.s
|
||||
|
||||
# Help Target
|
||||
help:
|
||||
@echo "The following are some of the valid targets for this Makefile:"
|
||||
@@ -403,6 +427,9 @@ help:
|
||||
@echo "... src/rknn_yolo.o"
|
||||
@echo "... src/rknn_yolo.i"
|
||||
@echo "... src/rknn_yolo.s"
|
||||
@echo "... src/video_writer.o"
|
||||
@echo "... src/video_writer.i"
|
||||
@echo "... src/video_writer.s"
|
||||
.PHONY : help
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
+3
-3
@@ -4,11 +4,11 @@
|
||||
|
||||
namespace version {
|
||||
|
||||
const std::string GIT_COMMIT = "1c783fd9";
|
||||
const std::string GIT_COMMIT = "bb7d08ab";
|
||||
const std::string GIT_BRANCH = "main";
|
||||
const std::string GIT_TAG = "";
|
||||
const std::string BUILD_DATE = "2026-07-07";
|
||||
const std::string BUILD_TIME = "17:13:57";
|
||||
const std::string BUILD_DATE = "2026-07-29";
|
||||
const std::string BUILD_TIME = "00:00:24";
|
||||
const int BUILD_YEAR = 2026;
|
||||
const bool BUILD_RKNN = 1;
|
||||
|
||||
|
||||
+6
-3
@@ -131,12 +131,15 @@ FLUSH_EVERY_N_FRAMES=100
|
||||
TRACKED_PRUNE_SEC=300
|
||||
|
||||
# --- Video recording ---
|
||||
# Save annotated frames to segmented MP4 files (true/false)
|
||||
# Per-batch video recording — raw frames (no overlay) to shared memory, moved to
|
||||
# OUTPUT_DIR on batch close via non-blocking background process (true/false)
|
||||
RECORD_VIDEO=false
|
||||
# Duration in seconds of each video segment file
|
||||
VIDEO_SEGMENT_SEC=3600
|
||||
# Output video FPS (fallback if source FPS is unknown or ≤ 1)
|
||||
OUTPUT_FPS=15
|
||||
# Delay in seconds after batch starts before recording begins (every batch)
|
||||
RECORD_DELAY_SECONDS=10
|
||||
# Shared memory directory for recording (fast write, moved to OUTPUT_DIR on close)
|
||||
RECORD_SHM_DIR=/dev/shm/bytetrack-counter
|
||||
|
||||
# --- Live stream snapshot ---
|
||||
# Periodically write the latest annotated frame as JPEG for an external web server
|
||||
|
||||
+8
-1
@@ -327,16 +327,18 @@ bool BatchStore::end_batch_locked(const std::string& closed_by) {
|
||||
auto duration_sec = std::chrono::duration_cast<std::chrono::seconds>(end_tp - start_tp).count();
|
||||
|
||||
int count = state["count"].get<int>();
|
||||
int batch_number = state["batch_number"].get<int>();
|
||||
|
||||
if (count < min_object_per_batch_ || duration_sec < min_duration_per_batch_) {
|
||||
current_state_ = nullptr;
|
||||
save_state();
|
||||
batch_timer_running_ = false;
|
||||
if (batch_closed_cb_) batch_closed_cb_(batch_number);
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
insert_batch(state["counting_date"], state["batch_number"],
|
||||
insert_batch(state["counting_date"], batch_number,
|
||||
count, state["start_time"], end_time);
|
||||
} catch (const std::exception& e) {
|
||||
logger_("Failed to persist batch: " + std::string(e.what()));
|
||||
@@ -346,6 +348,7 @@ bool BatchStore::end_batch_locked(const std::string& closed_by) {
|
||||
current_state_ = nullptr;
|
||||
save_state();
|
||||
batch_timer_running_ = false;
|
||||
if (batch_closed_cb_) batch_closed_cb_(batch_number);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -406,6 +409,10 @@ int BatchStore::display_total() {
|
||||
return get_closed_total_for_day(get_counting_date()) + current_batch_count();
|
||||
}
|
||||
|
||||
void BatchStore::set_batch_closed_callback(std::function<void(int)> cb) {
|
||||
batch_closed_cb_ = std::move(cb);
|
||||
}
|
||||
|
||||
bool BatchStore::check_cutoff_reset() {
|
||||
return cutoff_triggered_.exchange(false);
|
||||
}
|
||||
|
||||
@@ -31,6 +31,8 @@ public:
|
||||
int current_batch_count() const;
|
||||
int display_total();
|
||||
|
||||
void set_batch_closed_callback(std::function<void(int)> cb);
|
||||
|
||||
bool check_cutoff_reset();
|
||||
|
||||
std::pair<int, bool> record_ayam_crossing(int track_id);
|
||||
@@ -67,6 +69,7 @@ private:
|
||||
int min_duration_per_batch_;
|
||||
int carry_ids_ = 50;
|
||||
std::function<void(const std::string&)> logger_;
|
||||
std::function<void(int)> batch_closed_cb_;
|
||||
|
||||
sqlite3* db_ = nullptr;
|
||||
std::mutex state_mutex_;
|
||||
|
||||
@@ -140,6 +140,9 @@ void AppConfig::load_from_env(const char* env_path) {
|
||||
if (!vs_s.empty()) video_segment_sec = std::stoi(vs_s);
|
||||
auto ofps_s = get_env("OUTPUT_FPS");
|
||||
if (!ofps_s.empty()) output_fps = std::stoi(ofps_s);
|
||||
auto rds_s = get_env("RECORD_DELAY_SECONDS");
|
||||
if (!rds_s.empty()) record_delay_seconds = std::stof(rds_s);
|
||||
record_shm_dir = get_env("RECORD_SHM_DIR", record_shm_dir);
|
||||
|
||||
auto lse_s = get_env("LIVE_STREAM_ENABLED");
|
||||
live_stream_enabled = (lse_s == "true");
|
||||
|
||||
@@ -61,6 +61,8 @@ struct AppConfig {
|
||||
bool record_video = false;
|
||||
int video_segment_sec = 3600;
|
||||
int output_fps = 15;
|
||||
float record_delay_seconds = 10.0f;
|
||||
std::string record_shm_dir = "/dev/shm/bytetrack-counter";
|
||||
|
||||
bool live_stream_enabled = false;
|
||||
std::string live_stream_frame_path = "/dev/shm/bytetrack-counter/live_frame.jpg";
|
||||
|
||||
+18
-1
@@ -6,6 +6,7 @@
|
||||
#include "drawing.hpp"
|
||||
#include "nms.hpp"
|
||||
#include "version.hpp"
|
||||
#include "video_writer.hpp"
|
||||
|
||||
#include <opencv2/opencv.hpp>
|
||||
#include <Eigen/Dense>
|
||||
@@ -219,6 +220,16 @@ int main(int argc, char* argv[]) {
|
||||
<< fps_prop << "fps | line x=" << line_x
|
||||
<< " | cross=" << g_config.cross_direction << std::endl;
|
||||
|
||||
std::unique_ptr<VideoBatchWriter> video_writer;
|
||||
if (g_config.record_video) {
|
||||
video_writer = std::make_unique<VideoBatchWriter>(
|
||||
g_config.record_shm_dir, g_config.output_dir,
|
||||
w, h, static_cast<int>(fps_prop),
|
||||
g_config.record_delay_seconds);
|
||||
auto* vw = video_writer.get();
|
||||
store.set_batch_closed_callback([vw](int bn) { vw->on_batch_closed(bn); });
|
||||
}
|
||||
|
||||
int reconnect_count = 0;
|
||||
|
||||
std::unordered_map<int, TrackedInfo> ayam_tracked;
|
||||
@@ -429,7 +440,10 @@ int main(int argc, char* argv[]) {
|
||||
});
|
||||
}
|
||||
ayam_crossed_frame = true;
|
||||
if (started_new) batch_started_frame = true;
|
||||
if (started_new) {
|
||||
batch_started_frame = true;
|
||||
if (video_writer) video_writer->on_new_batch(store.current_batch_number());
|
||||
}
|
||||
crossing_times.push_back(mono);
|
||||
ayam_cross_flash[tid] = g_config.cross_flash_frames;
|
||||
popups.push_back({
|
||||
@@ -448,6 +462,8 @@ int main(int argc, char* argv[]) {
|
||||
ayam_tracked[tid] = {cx, mono};
|
||||
}
|
||||
|
||||
if (video_writer) video_writer->feed_frame(frame);
|
||||
|
||||
// Draw talenan
|
||||
for (int di = 0; di < nt; ++di) {
|
||||
auto it = talenan_tr.det_to_track.find(di);
|
||||
@@ -540,6 +556,7 @@ int main(int argc, char* argv[]) {
|
||||
}
|
||||
|
||||
cap.release();
|
||||
if (video_writer) video_writer->shutdown();
|
||||
store.shutdown();
|
||||
|
||||
std::cout << "\n=== Batch Summary (SQLite) ===" << std::endl;
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
#include "video_writer.hpp"
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include <ctime>
|
||||
#include <filesystem>
|
||||
#include <sys/wait.h>
|
||||
#include <unistd.h>
|
||||
|
||||
VideoBatchWriter::VideoBatchWriter(const std::string& shm_dir,
|
||||
const std::string& output_dir,
|
||||
int w, int h, int fps,
|
||||
float delay_sec)
|
||||
: shm_dir_(shm_dir), output_dir_(output_dir),
|
||||
w_(w), h_(h), fps_(fps), delay_sec_(delay_sec)
|
||||
{
|
||||
ensure_dir(shm_dir_);
|
||||
ensure_dir(output_dir_);
|
||||
|
||||
for (const auto& entry : std::filesystem::directory_iterator(shm_dir_)) {
|
||||
if (entry.path().extension() == ".mp4") {
|
||||
std::filesystem::remove(entry.path());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VideoBatchWriter::~VideoBatchWriter() {
|
||||
shutdown();
|
||||
}
|
||||
|
||||
void VideoBatchWriter::ensure_dir(const std::string& dir) {
|
||||
std::filesystem::create_directories(dir);
|
||||
}
|
||||
|
||||
void VideoBatchWriter::on_new_batch(int batch_number) {
|
||||
current_batch_ = batch_number;
|
||||
delaying_ = true;
|
||||
delay_start_ = std::chrono::steady_clock::now();
|
||||
}
|
||||
|
||||
void VideoBatchWriter::on_batch_closed(int batch_number) {
|
||||
if (recording_ && current_batch_ == batch_number) {
|
||||
stop_and_move(batch_number);
|
||||
}
|
||||
delaying_ = false;
|
||||
recording_ = false;
|
||||
current_batch_ = 0;
|
||||
}
|
||||
|
||||
void VideoBatchWriter::feed_frame(const cv::Mat& raw) {
|
||||
if (delaying_) {
|
||||
auto elapsed = std::chrono::duration<float>(
|
||||
std::chrono::steady_clock::now() - delay_start_).count();
|
||||
if (elapsed >= delay_sec_) {
|
||||
delaying_ = false;
|
||||
start_recording(current_batch_);
|
||||
}
|
||||
}
|
||||
if (recording_ && writer_.isOpened()) {
|
||||
writer_.write(raw);
|
||||
}
|
||||
}
|
||||
|
||||
void VideoBatchWriter::start_recording(int batch_number) {
|
||||
if (writer_.isOpened()) writer_.release();
|
||||
|
||||
auto t = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
|
||||
std::ostringstream name;
|
||||
name << "batch_" << batch_number << "_"
|
||||
<< std::put_time(std::localtime(&t), "%Y%m%d_%H%M%S") << ".mp4";
|
||||
current_path_ = shm_dir_ + "/" + name.str();
|
||||
|
||||
writer_.open(current_path_,
|
||||
cv::VideoWriter::fourcc('a','v','c','1'),
|
||||
fps_, cv::Size(w_, h_));
|
||||
recording_ = writer_.isOpened();
|
||||
|
||||
if (recording_) {
|
||||
std::cout << "[RECORD] Started: " << current_path_ << std::endl;
|
||||
} else {
|
||||
std::cerr << "[RECORD] Failed to open: " << current_path_ << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
static void copy_and_clean(const std::string& src, const std::string& dst) {
|
||||
if (src.empty() || dst.empty()) return;
|
||||
{
|
||||
std::ifstream ifs(src, std::ios::binary);
|
||||
if (ifs) {
|
||||
std::ofstream ofs(dst, std::ios::binary);
|
||||
ofs << ifs.rdbuf();
|
||||
ofs.flush();
|
||||
}
|
||||
}
|
||||
std::error_code ec;
|
||||
std::filesystem::remove(src, ec);
|
||||
}
|
||||
|
||||
void VideoBatchWriter::stop_and_move(int batch_number) {
|
||||
if (writer_.isOpened()) {
|
||||
writer_.release();
|
||||
std::cout << "[RECORD] Stopped: " << current_path_ << std::endl;
|
||||
}
|
||||
|
||||
std::string src = current_path_;
|
||||
current_path_.clear();
|
||||
|
||||
auto t = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
|
||||
std::ostringstream name;
|
||||
name << "batch_" << batch_number << "_"
|
||||
<< std::put_time(std::localtime(&t), "%Y%m%d_%H%M%S") << ".mp4";
|
||||
std::string dst = output_dir_ + "/" + name.str();
|
||||
|
||||
pid_t pid = fork();
|
||||
if (pid == 0) {
|
||||
close(STDIN_FILENO);
|
||||
close(STDOUT_FILENO);
|
||||
close(STDERR_FILENO);
|
||||
copy_and_clean(src, dst);
|
||||
_exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
void VideoBatchWriter::shutdown() {
|
||||
if (writer_.isOpened()) {
|
||||
writer_.release();
|
||||
}
|
||||
recording_ = false;
|
||||
delaying_ = false;
|
||||
|
||||
if (!current_path_.empty()) {
|
||||
std::string src = current_path_;
|
||||
std::string dst = output_dir_ + "/" +
|
||||
std::filesystem::path(current_path_).filename().string();
|
||||
current_path_.clear();
|
||||
|
||||
pid_t pid = fork();
|
||||
if (pid == 0) {
|
||||
close(STDIN_FILENO);
|
||||
close(STDOUT_FILENO);
|
||||
close(STDERR_FILENO);
|
||||
copy_and_clean(src, dst);
|
||||
_exit(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
#include <opencv2/opencv.hpp>
|
||||
#include <string>
|
||||
#include <chrono>
|
||||
|
||||
class VideoBatchWriter {
|
||||
public:
|
||||
VideoBatchWriter(const std::string& shm_dir,
|
||||
const std::string& output_dir,
|
||||
int w, int h, int fps,
|
||||
float delay_sec);
|
||||
|
||||
~VideoBatchWriter();
|
||||
|
||||
void on_new_batch(int batch_number);
|
||||
void on_batch_closed(int batch_number);
|
||||
void feed_frame(const cv::Mat& raw);
|
||||
void shutdown();
|
||||
|
||||
private:
|
||||
void start_recording(int batch_number);
|
||||
void stop_and_move(int batch_number);
|
||||
void ensure_dir(const std::string& dir);
|
||||
|
||||
std::string shm_dir_;
|
||||
std::string output_dir_;
|
||||
int w_, h_, fps_;
|
||||
float delay_sec_;
|
||||
|
||||
bool delaying_ = false;
|
||||
bool recording_ = false;
|
||||
std::chrono::steady_clock::time_point delay_start_;
|
||||
cv::VideoWriter writer_;
|
||||
std::string current_path_;
|
||||
int current_batch_ = 0;
|
||||
};
|
||||
Reference in new issue
Block a user