ykcheungab
|
11962cdc34
|
配置没写的滤波键等于"关",不再回落到会滤波的默认值 - What: DEFAULT_FORCE_MEDIAN_WINDOW 3 -> 1、DEFAULT_FLOW_EMA_ALPHA 0.5 -> 1.0(DEFAULT_FORCE_LOWPASS_HZ 本就是 0.0),并把注释改成"配置文件没写的键就是关,而不是我们觉得合理的那一档"——原因写在注释里:否则设备会去滤一个没人要求滤的测量,而文件里没有任何线索;实测的延迟/降噪数据保留在注释中,作为 balanced/low_noise 预设的依据。docs/filters.md 第 2 节增加"缺省 = 关"这一条并说明没有 filters 段的配置什么都不滤,预设表里 balanced 的用途由"默认建议"改为"建议起步档"(它不再是默认值)。examples/filters/README.md 补一句"整段删掉等价于 off"。tests/test_filter_presets.py 新增 test_a_config_with_no_filters_block_filters_nothing:把 box bundle 的 filters 段整段删掉后构造真实 Sensor,断言 filters_state() 报 ema 1.0 / median 1 / cutoff 0.0 且 any_stage_applied 为 False。 - Why: 上一版只把"非法值"改成回落到关,但"键根本不写"仍会走 DEFAULT_* 从而把 EMA 0.5 + 中值 3 打开——这与"配置自描述、文件说什么就跑什么、出厂默认全关"矛盾,且现实里存在大量没有 filters 段的手写配置(例如 _perf/cfg_res_280x300.json),它们会在无人察觉的情况下继续滤波。缺省开是这条链上最后一个隐藏默认值。 - Verification: 删掉 filters 段后实测 filters_state() = (1.0, 1, 0.0) 且 any_stage_applied=False,出厂 box/mini/finger 三份同样为全关;pytest tests/test_filter_presets.py + tests/test_calibration.py → 33 passed;SDK 全量 336 passed / 15 skipped(唯一失败仍是需要 1200 帧而样例只有 577 帧的 longrun 测试);app 侧 studio 85 项与 shared 142 项测试、ui_check 554 项检查在升级后的 0.5.2 下全绿。 - Not in this change: 出厂 bundle 的三个显式值未动(本来就全关);_perf 的两个校验脚本不在仓库内,已就地补上显式 filters 段(balanced)以保持"开 vs 关"对照仍有意义;app 侧 wrapper/齿轮/CSV 17 列未动。
|
2026-09-14 10:53:33 +08:00 |
|
ykcheungab
|
7f8e5d0975
|
四个滤波预设落成机器可读的配置文件,并加上防漂移测试 - What: 新增 examples/filters/filters_{off,low_latency,balanced,low_noise}.json —— 每个都是完整可整块替换的 filters 段(五键齐全:flow_ema_alpha / force_median_window / force_lowpass_cutoff_hz / force_lowpass_order / force_lowpass_sample_rate_hz),数值即 FILTER_PRESETS 展开后的结果;examples/filters/README.md 说明这四份副本的存在与用途;新增 tests/test_filter_presets.py(12 项):预设名恰为四个、每个示例文件 == 默认块叠加该预设(改预设或改文件都会红)、每份都是含三个开关键的真实 filters 段、三个出厂 bundle(box/mini/finger)的 filters 段仍为全关、且用 external-frame 模式构造真实 Sensor 核对 filters_state() 报的也是全关(文件与设备必须一致)。 - Why: 之前的实现计划里写的是"四个 sensor_<preset>.json 整机配置",但整机配置要按传感器各复制一份、且必然随 bundle 漂移;README 里内嵌的 JSON 又无法被测试覆盖,等于把"建议用哪档滤波"这句话留在了一处会过时的散文里。改成"filters 片段 + 断言与 FILTER_PRESETS 逐值一致的测试",既不谎称是完整配置,也不会静默过时。 - Verification: pytest tests/test_filter_presets.py → 12 passed;SDK 全量 335 passed / 15 skipped(唯一失败仍是需要 1200 帧而样例只有 577 帧的 longrun 测试)。 - Not in this change: 未生成按传感器复制的整机配置;docs/filters.md 的预设表未纳入测试(只有这四个文件与代码常量对齐);app 侧未动。
|
2026-09-14 10:44:07 +08:00 |
|
ykcheungab
|
b956d071ea
|
滤波说明落到文档与 examples:三级位置/性质、四个预设、可追溯性清单 - What: 新增 docs/filters.md(json.load 不支持注释,故建议以"代码预设 + 文档 + 可复制配置"承载:三级滤波的作用位置与性质对照——flow_ema_alpha 在 compute_flow/HHD 之前、改变测量故两次录制不可比,中值与低通是读数滤波;取值规则:每级按值开关、非法值一律关、filters.enabled 仅作废弃别名、显式键优先于预设;FILTER_PRESETS 四个档位的延迟与用途表;configure()/filters_state() 用法;force_triplets() 两个 buffer 的语义与尖峰实测 10/999;可追溯性五条清单)与 examples/filters/README.md(off/low_latency/balanced/low_noise 四段可直接整块替换的 filters 配置、preset 等价写法、"从预设出发只改一个键"的写法、复制后用 filters_state() 核对生效值的片段)。 - Why: 用户提出"在 json 里加 comment 说明建议的滤波,或在 examples 里写",查证 configs.py 使用 json.load 且环境无 json5/commentjson,加注释会导致加载失败;因此把建议做成可执行预设并在文档与 examples 中给出可复制版本。 - Verification: 文档中的四个预设与 FILTER_PRESETS 逐值一致;示例片段与 sensors/*/sensor.json 的 filters 段结构一致;filters_state()/force_triplets() 的行为已用 external-frame 模式实测(预设解析结果与尖峰 10/999 对照)。 - Not in this change: 未生成四个独立的 sensor_<preset>.json 整机配置文件(README 里给的是整块 filters 段);calibration.py 指纹尚未改读 filters_state();venv 内 SDK 未升级;app 侧 wrapper/齿轮与 CSV 17 列未动。
|
2026-09-14 10:36:00 +08:00 |
|
ykcheungab
|
514874e2f4
|
added 5 sensors multi-stream support, 5 finger reach > 100 fps stable using .mp4 video
|
2026-09-13 12:18:27 +08:00 |
|
ykcheungab
|
35af74f639
|
exclude docs from wheel; harden bundle item handling; single-source version
|
2026-09-12 16:19:34 +08:00 |
|
ykcheungab
|
9537cf91a1
|
added preflight check
|
2026-09-12 15:49:28 +08:00 |
|
ykcheungab
|
96f4428230
|
added calibration data handling functions
|
2026-09-10 21:47:36 +08:00 |
|
ykcheungab
|
ad680b77dc
|
0.5.1
|
2026-09-02 21:47:51 +08:00 |
|
zhangyijian
|
bc059e3539
|
Merge pull request 'Hotfix/mems cam open' (#20) from hotfix/mems_cam_open into dev
Reviewed-on: #20
|
2026-09-02 21:38:48 +08:00 |
|
ykcheungab
|
5be2d9759a
|
hotfix/camera not connected error
|
2026-09-02 21:37:40 +08:00 |
|
ykcheungab
|
36e0c22de6
|
fix input flag convention mismatch
|
2026-08-26 20:26:05 +08:00 |
|
ykcheungab
|
8a4be5f8f2
|
update to 0.5.0
|
2026-08-26 20:20:37 +08:00 |
|
ykcheungab
|
68910e63c1
|
fix finger gui cannot choose camera
|
2026-08-26 20:19:55 +08:00 |
|
ykcheungab
|
577e3fe528
|
update pip install .copy manifest for developments
|
2026-08-26 20:04:40 +08:00 |
|
ykcheungab
|
32d4164471
|
update examples to fix path issues
|
2026-08-26 19:38:47 +08:00 |
|
ykcheungab
|
d59e1cb7fb
|
fix path errors
|
2026-08-26 19:22:37 +08:00 |
|
ykcheungab
|
8a7760f12b
|
refractor capture to a module
|
2026-08-23 15:53:02 +08:00 |
|
ykcheungab
|
1ceb0d9ca4
|
organize settings to dedicated sensors folder, json + assets
|
2026-08-23 12:21:24 +08:00 |
|
ykcheungab
|
44bcc19426
|
update docs and downstream sync
|
2026-08-18 11:00:57 +08:00 |
|
ykcheungab
|
2e09c9360e
|
included low pass filter in package and add to plot_data example
|
2026-08-17 22:11:17 +08:00 |
|
ykcheungab
|
d7c5845646
|
finished docker manylinux compliation for pypi
|
2026-08-03 17:07:54 +08:00 |
|
ykcheungab
|
3117ddd5b9
|
organize exampels according to products
|
2026-08-03 15:52:15 +08:00 |
|
ykcheungab
|
8b2f76c76f
|
prepare for dd03 shipping
|
2026-08-03 14:20:30 +08:00 |
|
zhangyijian
|
044fe02107
|
update dd06 display
|
2026-07-26 18:14:47 +08:00 |
|
ykcheungab
|
2e3d0a0609
|
added dd06 test support, organized 2d viewer and 3d viewer code organization.
|
2026-07-26 17:03:44 +08:00 |
|
ykcheungab
|
11a747a771
|
added camera search and select, auto preference saving and version tag to 0.4.2
|
2026-07-15 15:08:59 +08:00 |
|
ykcheungab
|
87ac152907
|
update csv export and added fixed mesh axis drawing
|
2026-07-15 14:25:03 +08:00 |
|
ykcheungab
|
a9c26fd1fb
|
Merge branch 'feature/finger_docs' into dev
|
2026-07-14 20:07:43 +08:00 |
|
ykcheungab
|
30f9deb5b2
|
dd02 setting tune + change Class name from UVUnrollFrameProcessor to FrameUnwarper
|
2026-07-14 20:00:40 +08:00 |
|
zhangyijian
|
d58fa1caa2
|
moved examples/app_paths.py into gui
|
2026-07-12 19:54:32 +08:00 |
|
zhangyijian
|
4b38dbb6b6
|
cleanup example profile code
|
2026-07-12 19:35:04 +08:00 |
|
ykcheungab
|
c2fb0b12b5
|
AI 更新文档
|
2026-07-09 14:03:45 +08:00 |
|
ykcheungab
|
9317bb3942
|
update examples read.me
|
2026-06-30 09:55:41 +08:00 |
|
ykcheungab
|
e855651500
|
try to fix wsl open3d crash
|
2026-06-29 10:50:29 +08:00 |
|
ykcheungab
|
4cc1027cc8
|
fix open 3d cannot work in linux
|
2026-06-29 10:47:46 +08:00 |
|
ykcheungab
|
04a4df3303
|
add back GUI 2D display with optional raw / pure color background
|
2026-06-21 18:01:13 +08:00 |
|
ykcheungab
|
7feae9550e
|
update exe GUI build
|
2026-06-21 12:01:34 +08:00 |
|
ykcheungab
|
258948bcb7
|
added mesh surface arrows
|
2026-06-19 21:22:28 +08:00 |
|
ykcheungab
|
2e5c047d1e
|
1. tuned arrow mesh drawing
2. centralixzed arrow config in layout.py
3. seperate mesh render and display resolution to speed up (~40 fps)
|
2026-06-19 14:28:28 +08:00 |
|
ykcheungab
|
3fd9b839a9
|
GUI for finger v1
|
2026-06-18 22:18:19 +08:00 |
|
ykcheungab
|
f19f092b64
|
split example visualizaiton pipeline
|
2026-06-18 13:47:16 +08:00 |
|
ykcheungab
|
fbee1c37ed
|
tuned pipeline to 60 fps
|
2026-06-14 20:58:46 +08:00 |
|
ykcheungab
|
30bebcd439
|
integrated finger process pipeline on remapped 2d image
|
2026-06-14 17:48:30 +08:00 |
|
ykcheungab
|
a8cb4203fd
|
update patch generation 3d
|
2026-05-14 20:56:37 +08:00 |
|
ykcheungab
|
9cd7f75c88
|
refractor HHD
|
2026-05-10 19:04:20 +08:00 |
|
ykcheungab
|
d38ce82059
|
clean up folder
|
2026-05-10 17:41:39 +08:00 |
|