ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

PufferLib Bat 环境耳方向性(Ear Directivity)研究:从蝙蝠声学生物学到低成本 per-ear 增益模型的实现指南

PufferLib Bat 环境耳方向性(Ear Directivity)研究:从蝙蝠声学生物学到低成本 per-ear 增益模型的实现指南 强化学习深度学习人工智能【免费下载链接】PufferLibPuffing up reinforcement learning项目地址https://gitcode.com/gh_mirrors/pu/PufferLib点击查看免费下载PufferLib 的ocean/bat/是一个以蝙蝠回声定位为核心的强化学习环境蝙蝠智能体通过左右双耳接收来自目标bug与障碍物的回声能量从而学习捕猎策略。本文基于仓库中的研究笔记 BAT_EAR_DIRECTIVITY_RESEARCH.md系统梳理蝙蝠外耳方向性背后的声学生物学证据、当前 Bat 环境的回声调度实现并给出一个不引入三角函数、不查表、不依赖频域滤波的低成本 per-ear 增益模型以及与之配套的配置项、消融实验sweep方案与实现清单。读完本文你将理解为什么不能把蝙蝠的耳朵当作全向标量接收器以及如何用几个点积运算在训练观测中注入前强后弱、左右分侧的方向性信息。结论先行耳朵不是全向接收器研究笔记的Short answer明确给出了设计立场Bat 环境不应把每只耳朵当作全向标量接收器。蝙蝠回声定位天然具备三项空间结构定向发射叫声能量向前方集中侧面与后方衰减定向接收外耳pinna与头型对来波方向做增益/滤波双耳差异左右耳在响度与到达时间上的差值构成水平定位的核心线索。在写任何代码之前先厘清一组术语它们来自真实 HRTF / 声学文献也是本文后续实现讨论的基础术语含义在本环境中的意义HRTF头相关传递函数声源到每只耳朵的方向相关滤波本文只取其方向相关增益思想不做频谱卷积HRIRHRTF 的时域冲激响应对当前低维观测而言过于精细ILD双耳响度差interaural level difference环境已有的左右能量通道可直接体现ITD双耳到达时间差interaural time difference环境通过左右耳路径长度差天然产生Pinna directivity外耳形状导致的方向相关增益/滤波本文用耳轴朝向近似Beam pattern增益随角度变化的极坐标响应polar response本文的 per-ear 增益曲线本质就是一个廉价 beam patternAcoustic field of view能被足够好地照亮/听到的空间体积对应前方强、后方弱、侧向分耳的行为信号研究笔记给出的首选实现路线非常明确在bat_schedule_echo中放置一条廉价的 per-ear 增益曲线以目标/障碍/回声源相对蝙蝠的夹角为基础只用点积与乘法——不用atan2f、不用查表、不用逐频滤波器。文献证据方向性不是可选项而是蝙蝠声纳的底层属性研究笔记整理了七篇关键文献构成了该设计决策的生物物理依据。这里忠实继承其核心结论并标注其实现相关性。1. 定向声纳发射与动态波束宽度Jakobsen, Ratcliffe Surlykke, 2013结论多种 vespertilionid蝙蝠科物种收敛到相似的声纳视野。Nature 摘要给出的量化锚点为方向性指数约11 ± 1 dB半幅角约37°轴上声源级约108 ± 4 dB SPL re 20 µPa rms 10 cm。实现相关性环境已通过左右回声通道具备方向结构但接收侧可以也应该更具方向性一个简单的极坐标响应即可成立前方强、后方弱、侧向按耳区分2D 游戏不需要完整 3D HRTF——关键行为信号是左右相对能量而非频谱凹陷。2. 方向性与强度共同决定可探测性Jakobsen, Brinklov Surlykke, 2013结论蝙蝠叫声是方向性的前方能量远多于侧向正前方某距离可探测的物体在同样距离的偏轴方向上可能不可探测方向性通过减少侧/后方发射来降低杂波波束形状在回声返回之前就充当空间滤波器蝙蝠会动态控制强度、时长、频率与方向性。此外鼻发射者nose emitters的波束形状受鼻孔间距与鼻叶几何影响嘴发射者mouth emitters可通过张嘴大小影响方向性。实现相关性方向性应参与回声能量计算而不是观测的事后后处理应对 bug 回声与障碍回声一致生效必须便宜到能对每个回声/事件/声源逐一执行。3. 追捕猎物时波束会变宽Jakobsen Surlykke, 2010结论Myotis daubentonii与Eptesicus serotinus在追捕猎物时加宽生物声纳波束。Crossref 元数据提供了定量锚点M. daubentonii水平半幅角从约40°增至约90°垂直方向从约45°增至超过90°主要通过把叫声频率从55 kHz降约一个八度到27.5 kHz实现。实现相关性这更偏发射侧但足以反驳单一静态全向模型暂不实现动态波束宽度——它是一个有意义的物理改动应隔离在单独 sweep 中若未来实现chirp 时长/频率选择可改变波束宽度让动作后果更丰富但这不是耳方向性改动的最小集。4. 接收侧滤波同样重要Wotton, Jenison Hartley, 1997结论在棕大蝠big brown bat,Eptesicus fuscus上建模/组合发射与外耳接收后发射谱与外耳谱卷积时定位线索更清晰谱峰变锐、峰/谷对比增强线索被限制在约±30°的锥体内。实现相关性完整频谱滤波对当前 Bat 是过度设计——观测是低维回声特征而非原始波形每耳一条廉价增益曲线就抓住了对策略学习最重要的部分方向相关的强度除非环境改成原始音频观测否则不要加 FFT、滤波器或逐频 HRTF 表。5. 鼻叶与耳廓可动态协作Kuc, 2010Zhang et al., 2019Vanderelst et al., 2013结论Kuc 提出鼻叶与耳廓通过直达与延迟声路径协作的模型延迟的 pinna 分量可增强轴上发射强度、收窄波束并塑造频率相关波束Zhang 等发现大蹄鼻蝠在回声定位中鼻叶与耳廓存在协调运动Vanderelst 等发现Rhinolophus formosae的鼻叶会聚焦叫声的 FM 分量。实现相关性这些工作支持方向性接收模型但也警告精确几何是物种特异且复杂的第一版不要建模移动耳廓/鼻叶——那会引入额外状态与新参数且无法证明学习收益保持第一版静态、左右对称然后交给 sweep 去验证。当前 Bat 代码位置方向性该加在哪里研究笔记判断方向性应施加在回声调度/能量路径附近即现有的左右回声增益逻辑周围并且不能在渲染/音频代码中实现——训练观测中的回声能量必须改变而不仅是播放效果。该判断与 bat.h 的实际实现完全吻合。核心调用链如下ear_positions由env-heading计算左右耳的世界坐标位置耳间距由ear_separation_scale缩放schedule_ear_echo按path声程与strength计算衰减strength / (1 0.02 * path^2)并换算成接收 tick 投递到回声队列schedule_echo方向性增益的实际所在地。它先计算从声源chirp 发射点指向反射点的单位向量ux, uy与蝙蝠前方fx, fy点积得到forward再分别与左右侧向向量点积得到left_side_gain/right_side_gain全部bat_clampf到[0,1]后平方最后组合为float left_gain env-ear_rear_gain env-ear_front_gain * front_gain env-ear_side_gain * left_side_gain; float right_gain env-ear_rear_gain env-ear_front_gain * front_gain env-ear_side_gain * right_side_gain;这正是研究笔记中mild directional term0.75f 0.25f * something形态的更强、更生物动机化版本front_gain、left_side_gain、right_side_gain三个平方项分别对应前方、左耳侧、右耳侧的对齐度而ear_rear_gain扮演rear_floor后方最小灵敏度。此后增益进入 schedule_ear_echo 与 add_echo_event能量被累加进按 tick 分槽的EchoBucket含energy[2][FREQ_BINS]即左右耳 × 16 频段最终在 compute_observations 中写入观测的LEFT_FREQ_OFFSET0..15与RIGHT_FREQ_OFFSET16..31区域。因此方向性必须在写入观测之前生效这条约束在当前实现里天然满足。三个增益参数在 puf_init 中通过dict_get从配置读取见 bat.h默认值来自config/bat.ini的[env]段下文详述。推荐的低成本实现front-and-side 极坐标响应研究笔记给出的首选实现只使用归一化声源方向与蝙蝠的前向/侧向向量无角度、无三角。定义ux, uy从蝙蝠指向回声源的单位向量fx, fy蝙蝠前方单位向量lx, ly左耳偏好侧向单位向量通常在前方左侧rx, ry右耳偏好侧向单位向量通常在前方右侧front非负的前向对齐度left_side/right_side非负的左右侧向对齐度rear_floor后方最小灵敏度保证后方回声并非完全不可能。核心代码骨架float front bat_clampf(ux*fx uy*fy, 0.0f, 1.0f); float left_side bat_clampf(ux*lx uy*ly, 0.0f, 1.0f); float right_side bat_clampf(ux*rx uy*ry, 0.0f, 1.0f); float front2 front * front; float left2 left_side * left_side; float right2 right_side * right_side; float left_gain rear_floor front_gain*front2 side_gain*left2; float right_gain rear_floor front_gain*front2 side_gain*right2;初始常量建议研究笔记给出的 first pass#define BAT_EAR_REAR_GAIN 0.15f #define BAT_EAR_FRONT_GAIN 0.55f #define BAT_EAR_SIDE_GAIN 0.45f需要归一化时#define BAT_EAR_GAIN_NORM (1.0f / (BAT_EAR_REAR_GAIN BAT_EAR_FRONT_GAIN BAT_EAR_SIDE_GAIN)) left_gain * BAT_EAR_GAIN_NORM; right_gain * BAT_EAR_GAIN_NORM;这样最大增益接近1.0前方偏左的回声给左耳更强信号、前方偏右的回声给右耳更强信号后方保持微弱但非零。变体耳轴前倾ear axes angled forward纯侧向向量可能让侧向回声相对前方回声过强。更贴近生物学的 2D 近似是耳朵指向外侧但向前偏置。给定前向f与左法向nfloat ear_forward 0.75f; float ear_side 0.66f; float left_ear_x ear_forward*fx ear_side*nx; float left_ear_y ear_forward*fy ear_side*ny; float right_ear_x ear_forward*fx - ear_side*nx; float right_ear_y ear_forward*fy - ear_side*ny;若ear_forward^2 ear_side^2近似为 1则无需归一化0.75/0.66对廉价模型足够接近。随后float left_lobe bat_clampf(ux*left_ear_x uy*left_ear_y, 0.0f, 1.0f); float right_lobe bat_clampf(ux*right_ear_x uy*right_ear_y, 0.0f, 1.0f); left_gain rear_floor main_gain * left_lobe * left_lobe; right_gain rear_floor main_gain * right_lobe * right_lobe;研究笔记认为这个变体更简单且很可能足够。性能约束每个调度回声只花几次乘法研究笔记对性能的要求非常具体鼓励点积、平方乘法、bat_clampf或内联 clamp、以#define定义常量禁止每个回声一次atan2f在前后/侧向向量已存在时仍用cosf/sinf逐频 HRTF 表新的堆分配原始音频卷积。在 bat.h 的现状中这些约束全部成立schedule_echo内的方向性部分只用点积、平方与 clampnorm_vecbat.h对回声源方向做一次sqrtf归一化属于每个回声几次乘法的量级。模型整体成本是每个被调度的回声仅少量乘法与schedule_segment_reflectorsbat.h在障碍四条边上按REFLECTOR_SPACING 8.0生成大量静态反射点的场景完全兼容。预期行为变化与风险研究笔记列出方向性引入后可能出现的效应属于推断而非已验证事实目标偏离中心时左右空间信号更清晰后方障碍/bug 变得更难听到策略可能学会转身/扫视因为朝向更重要了由于观测变化已有训练 checkpoint 的性能可能变化。潜在风险后方/侧向增益过低 → 探索变难增益未归一化 → 奖励/观测尺度漂移在已有强方向性项之上再叠加方向性 → 左右能量可能饱和。现有测试已针对这些风险给出可验证的基线例如 test_ear_directivity_gains_control_echo_energy 验证只有前方增益时正侧方回声能量应为 0test_directional_echo_arrival_and_gain_by_side 验证左侧声源左耳先到且更响、右侧反之、正前方左右对称test_observations_stay_normalized_after_chirp 与 test_corner_reflector_echo_observations_stay_normalized 则保证全部观测值始终落在[-1, 1]。这些测试可在 tests/run_all.sh 中一键运行。Sweep 方案干净的消融实验研究笔记强调不要把耳方向性与翅膀微多普勒wing micro-Doppler混在同一个首轮 sweep 里后者见 BAT_WING_ECHO_RESEARCH.md。建议的消融结构Baselinetimer/log/audio 清理后的当前 BatVariant A仅静态耳方向性Variant B仅翅膀边带wing sidebandsVariant C两者都开——仅当 A 与 B 各自有增益或至少无损害时再组合。首轮 sweep 的参数研究笔记建议[env] ear_directivity_enabled 1 ear_rear_gain 0.15 ear_front_gain 0.55 ear_side_gain 0.45若想避免配置膨胀也可以把首版常量硬编码为#define改用分支/commit 进行 sweep。值得注意当前仓库的 config/bat.ini 已经把这套方向性参数落到了[env]段并给出了经训练的默认值ear_separation_scale 2.0 ear_rear_gain 0.22038613968607276 ear_front_gain 0.6419214149115183 ear_side_gain 0.28043867572747055同时在[sweep.env]段为它们配置了搜索空间config/bat.ini[sweep.env.ear_separation_scale] distribution uniform min 1.0 max 2.0 [sweep.env.ear_rear_gain] distribution uniform min 0.10 max 0.30 [sweep.env.ear_front_gain] distribution uniform min 0.40 max 0.75 [sweep.env.ear_side_gain] distribution uniform min 0.20 max 0.55对比可见研究笔记建议的0.15 / 0.55 / 0.45落在上述 sweep 范围内而 bat.ini 的训练默认值rear≈0.22、front≈0.64、side≈0.28是已经过调优的方向性曲线前方占主导、侧向次之、后方最弱——与研究笔记前强后弱、左右分侧的设计意图一致。sweep 目标为metric perf最大化可用config/bat.ini的[sweep]段直接驱动。实现清单研究笔记给出的落地清单与现有代码与测试的验证点一一对应在把回声能量写入观测之前施加方向性——对应schedule_echo→schedule_ear_echo→add_echo_event→compute_observations的调用顺序对 bug 与障碍回声一致生效除非有明确理由不这样做——schedule_chirp_slice_echoesbat.h对 bug、四墙、角反射器、障碍统一走schedule_echo保持左右对称精确——有test_directional_echo_arrival_and_gain_by_side的正面/侧面断言覆盖最大增益归一化接近当前最大值避免观测尺度硬漂移——由test_observations_stay_normalized_after_chirp等测试守护若需要测试添加一个聚焦的左右不对称 C 测试——仓库已有 test_left_right_echo_asymmetry 可作为模板比较性能前先运行 build/tests/train/eval——tests/run_all.sh提供了编译cc -stdc99 -O2链接-lm加执行的完整流程。参考文献以下为本设计依据的原始文献保留作者、标题、期刊、年份与 DOI 文本标识供溯源Jakobsen, L.; Ratcliffe, J. M.; Surlykke, A.Convergent acoustic field of view in echolocating bats. Nature 493, 93-96, 2013. DOI: 10.1038/nature11664Jakobsen, L.; Brinklov, S.; Surlykke, A.Intensity and directionality of bat echolocation signals. Frontiers in Physiology 4:89, 2013. DOI: 10.3389/fphys.2013.00089Jakobsen, L.; Surlykke, A.Vespertilionid bats control the width of their biosonar sound beam dynamically during prey pursuit. PNAS 107(31), 13930-13935, 2010. DOI: 10.1073/pnas.1006630107Wotton, J. M.; Jenison, R. L.; Hartley, D. J.The combination of echolocation emission and ear reception enhances directional spectral cues of the big brown bat, Eptesicus fuscus. JASA 101(3), 1723-1733, 1997. DOI: 10.1121/1.418271Kuc, R.Morphology suggests noseleaf and pinnae cooperate to enhance bat echolocation. JASA 128(5), 3190-3199, 2010. DOI: 10.1121/1.3488304Zhang, S.; et al.Dynamic relationship between noseleaf and pinnae in echolocating hipposiderid bats. Journal of Experimental Biology, 2019. DOI: 10.1242/jeb.210252Vanderelst, D.; Lee, Y.-F.; Geipel, I.; Kalko, E. K. V.; Kuo, Y.-M.; Peremans, H.The noseleaf of Rhinolophus formosae focuses the Frequency Modulated (FM) component of the calls. Frontiers in Physiology 4:191, 2013. DOI: 10.3389/fphys.2013.00191赞分享强化学习深度学习人工智能【免费下载链接】PufferLibPuffing up reinforcement learning项目地址https://gitcode.com/gh_mirrors/pu/PufferLib点击查看免费下载相关推荐JetMoE研究热点分析低成本大模型的未来研究方向JetMoE研究热点分析低成本大模型的未来研究方向 JetMoE项目以仅0.1百万美元的训练成本达到了与LLaMA2相当的性能为低成本大模型的发展开辟了新路StPageFlip API完全手册从基础方法到高级应用一篇搞定StPageFlip API完全手册从基础方法到高级应用一篇搞定 StPageFlip是一个用于创建逼真页面翻转效果的简单库通过其强大的API开发者可以前端UI组件Seedance 2.0动画风格全解析从日系动漫到梵高油画效果Seedance 2.0动画风格全解析从日系动漫到梵高油画效果 Seedance 2.0是一款强大的AI视频生成工具能够创建从日系动漫到梵高油画等多种艺术风上一篇免费开源显存测试神器memtest_vulkan 帮你彻底解决显卡稳定性问题下一篇Linux打印机兼容性终极解决方案foo2zjs驱动套件全面解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进