想象一下,你想要确切了解某人如何使用电子烟(vape)。他们是短促快速地吸一口,还是缓慢悠长地吸?两次吸食之间,他们会让设备搁置很久吗?过去,研究人员不得不让人回忆这些细节,这就像让人回忆昨天眨了多少次眼一样——往往不准确且充满错误。
为了解决这个问题,作者们创造了一个微小的开源“智能贴纸”,名为FRIENDS,可附着在电子烟上。该设备就像一个高科技侦探,默默监视并记录每一次触摸、加热或使用电子烟的行为。它以极高的精度捕捉数据,精确到微秒。
然而,FRIENDS 设备使用的语言看起来像是一串秘密代码(二进制数据和长长的数字串)。这就是本文的作用所在。它介绍了FRIENDS GUI(图形用户界面),它充当翻译者和讲述者。
以下是该系统的运作方式,分解为简单的部分:
1. 翻译器(数据转换)
当你将 FRIENDS 设备插入电脑时,它会转储一个充满原始、令人困惑数字的文件。GUI 是将这种“秘密代码”翻译成普通英语的工具。
- 神奇之处:它将像
100065CA42C88D44 这样的数字串瞬间转换成人类可读的内容:"2024 年 2 月 12 日上午 10:09:44,用户开始吸食。”
- 清理工作:有时,设备可能会因电噪声而混淆,记录一次“虚假”吸食。该软件内置了一个过滤器(就像夜店门口的保镖)来检查数据。如果一次“吸食”太短(少于 0.4 秒)或与温度变化不匹配,软件就会将其作为错误剔除。
2. 讲述者(可视化)
一旦数据被翻译,GUI 就会绘制出一天事件的画面。
- 时间线:想象一个 24 小时时钟。软件在上面绘制线条,精确显示用户何时拿起电子烟(Touch)、何时开始吸入(Puff On)以及何时停止(Puff Off)。
- 热图:它还会追踪电子烟吸嘴的温度。如果设备变热,就表明正在吸食。这有助于软件双重检查其工作,确保没有将随机电气故障误算为吸食。
3. 证明(它有效吗?)
作者们测试了这个系统,以确保它不仅仅是一幅漂亮的图画。他们没有使用人类志愿者进行测试,而是使用一台机器以非常受控的方式进行“吸食”。
- 测试:他们让机器在特定时间(2 秒、3 秒和 4 秒长)进行 72 次特定的吸食。
- 结果:FRIENDS 设备和 GUI 软件捕捉到了**100%**的真实吸食。他们计算出的总吸食时间几乎完全准确(99.5% 的匹配度)。
- 故障修复:该设备意外记录了 17 次“幽灵吸食”(误报),但软件的过滤器成功识别并移除了它们,证明了清理过程是有效的。
为什么这很重要
将 FRIENDS GUI 视为吸食行为仪表盘。就像汽车仪表盘告诉你速度和油量一样,该软件告诉研究人员电子烟究竟是如何被使用的。
- 它将杂乱无章、无法阅读的数据转化为清晰、多彩的图表。
- 它对任何人都免费(开源)。
- 它可在任何计算机上运行(Windows、Mac 或 Linux)。
论文结论指出,该工具已准备好供研究人员立即使用。它帮助研究人员停止猜测,开始观察人们使用电子烟的真实模式,而无需成为计算机程序员。该软件可在 GitHub 上下载,任何人都可以安装并开始解码吸食习惯。
以下是论文《FRIENDS GUI:一种用于被动式电子烟监测仪的 vaping 行为数据收集与可视化的图形用户界面》的详细技术摘要。
1. 问题陈述
电子尼古丁输送系统(ENDS)使用的迅速增长,迫切需要准确监测 vaping 行为(吸食拓扑结构),以评估毒素暴露情况并为监管决策提供依据。然而,当前研究面临显著局限:
- 依赖自我报告:大多数研究依赖用户回忆,这极易产生重大误差(例如,自我报告的吸食次数与实际次数之间相关性差)。
- 缺乏标准化:目前缺乏客观、标准化的方法来测量关键指标,如吸食时机、持续时间和频率。
- 硬件限制:现有的传感器解决方案通常需要侵入性地修改设备内部,或者无法在长时间内(例如 24 小时)捕获高分辨率的连续数据。
2. 方法论
本文介绍了FRIENDS GUI,这是一款基于 Python 的开源软件工具,旨在与FRIENDS(ENDS 灵活鲁棒仪器)硬件设备进行接口交互。
硬件背景(FRIENDS 设备)
- 组件:MSP430G2433 微控制器连接至电磁(EM)传感器(检测雾化器活动)、触摸传感器(检测设备握持)和 NTC 热敏电阻(测量吸嘴温度)。
- 数据记录:以高分辨率(15 微秒)的 64 位扩展 POSIX 时间戳记录事件,并存储至板载闪存,支持长达 10 天的连续数据记录。
软件架构(FRIENDS GUI)
该软件使用 Python 3.11 开发,界面采用 tkinter,数据处理使用 pandas/numpy,可视化使用 matplotlib。系统通过串行通信(pyserial)运行,包含三个核心功能模块:
设备管理:
- 将设备的实时时钟与主机计算机同步。
- 管理闪存(在新会话前清除数据,擦除旧数据)。
- 处理串行连接的建立和端口刷新。
数据提取与预处理:
- 解码:将原始 16 字符十六进制记录转换为人类可读格式。
- 验证与清洗:
- 检测重复的文件头(表明意外覆盖)。
- 过滤损坏的串行传输数据(空行、不完整记录)。
- 逻辑配对:验证事件(吸食、触摸、温度)是否以有效的开/关配对形式发生(例如,
PUFF_ON 后跟随 PUFF_OFF)。
- 噪声消除:实施基于热敏电阻的过滤算法。若启用,则计算开/关事件之间的温差(ΔT)。温差 ≤10 单位(约 <1∘C)的吸食事件被标记为假阳性并移除。若禁用,则应用默认的最低持续时间过滤器(400 毫秒)。
- 时间戳转换:将包含事件代码、标准时间和秒的小数部分的 64 位扩展 POSIX 时间戳转换为本地日期时间对象。
可视化:
- 生成交互式 24 小时图表,显示吸食事件、触摸事件和温度读数。
- 汇总每日指标(总吸食持续时间、频率)。
- 允许用户设置自定义的吸食持续时间阈值,以在视觉上过滤噪声。
3. 主要贡献
- 开源工具:首个专为处理、解码和可视化来自 FRIENDS 硬件的高分辨率被动式 vaping 数据而设计的图形用户界面。
- 高级数据清洗:一种稳健的算法方法,用于处理串行传输错误,并利用热敏电阻数据区分真实的 vaping 事件与电磁干扰。
- 可及性:提供用户友好的界面,无需高级编程技能,使高分辨率行为数据对心理学家和临床医生而言触手可及。
- 灵活性:代码库采用模块化设计,允许研究人员将该工具适配于其他电子输送系统(例如 THC 电子烟)或自定义传感器。
4. 结果与验证
该软件在受控实验中使用 SMOK NORD 5 设备进行了验证(无人类参与者;机械触发)。
- 准确性:
- 事件检测:在四次会话中准确检测了所有 72 次实际吸食事件。
- 持续时间:记录的总吸食持续时间为 230.76 秒,占实际 232.01 秒的 99.46%。
- 假阳性:系统最初捕获了 17 个假阳性(可能是由于电磁干扰)。GUI 的过滤逻辑(使用 1.0 秒阈值或热敏电阻数据)成功识别并移除了这些假阳性,仅保留有效事件。
- 时间戳精度:
- 时间戳转换显示出极小的漂移(24 小时内最多 10 秒),这对于行为研究而言是可以接受的。
- 错误处理:
- 软件成功检测并处理了故意损坏的输入文件(截断的时间戳、缺失的行、缩进错误),未发生崩溃,确保了数据完整性。
- 可重复性:
- GUI 可执行文件与独立脚本之间的比较证实,对于相同的输入文件,输出结果完全一致。
5. 意义
- 研究影响:FRIENDS GUI 弥合了原始传感器数据与可操作的行为洞察之间的差距,使对 ENDS 使用模式、尼古丁暴露和戒烟结果的客观、高分辨率研究成为可能。
- 临床效用:通过提供准确的吸食拓扑数据,该工具支持开发更好的自我报告工具,并有助于监测公共卫生干预期间的行为转变。
- 可扩展性:作为托管在 GitHub 和 Zenodo 上的基于 Python 的 MIT 许可工具,它可供全球研究社区免费使用,以适配各种电子非尼古丁输送系统(ENNDS)和自定义监测设置。
可用性:
- 代码库:GitHub (
https://github.com/eszsonic/FRIENDSGUI)
- 存档:Zenodo (
https://doi.org/10.5281/zenodo.18753292)
- 许可证:MIT
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。