机器学习中的人类活动识别2025年03月17日 | 阅读 9 分钟 人类活动识别(Human Activity Recognition, HAR)是计算机视觉和人机交互领域中一个充满前景的研究方向。它旨在开发能够基于传感器数据自动识别和分类人类行为的系统和技术。 人类活动检测在普适计算、人际通信和人类行为分析中已变得至关重要。HAR的广泛应用促进了人类的安全与福祉。可以利用追踪身体活动、心率和睡眠质量的可穿戴设备来监测个人健康。在智能家居中,基于HAR的解决方案通过识别人员进出房间并相应调节灯光或温度,实现了节能和个人舒适。个人安全设备可以自动通知紧急服务或选定联系人。而这仅仅是冰山一角。 为了更好地理解,我们将构建一个模型,尝试识别人们正在进行的活动。 关于数据集数据集中,人类活动被分为15个类别。该集合包含约12000多张带标签的图像,包括验证图像。每张照片都对应一个单一的人类活动类别,并存储在为每个已识别类别单独设置的文件夹中。
问题陈述: 人类活动识别(HAR)旨在理解人类行为并对每种行为进行分类。它有着广泛的应用,因此在计算机视觉领域越来越受到关注。人类活动可以通过多种数据模态来表示,包括RGB、骨骼、深度、红外、点云、事件流、音频、加速度、雷达和WiFi信号,这些模态编码了不同来源的有用但截然不同的信息,并根据应用场景具有不同的优势。因此,一些现有出版物已试图研究采用不同模态的各种HAR方法。我们的任务是创建一个使用CNN的图像分类模型,以确定人类正在进行哪种类型的活动。 代码 导入库加载数据集一旦图像被加载到系统中,就会创建一个结构化的数据框(dataframe)。这个数据框提供了图像的特定信息,例如文件位置和类别标签。类别标签对于根据指定标准对图片进行分类至关重要,为后续的分析和模型训练奠定了基础。这种有组织的格式简化了图像数据的管理和处理,以便于后续步骤。 输出 ![]() 选择特征下面提供的修剪函数接受一个数据框以及最大样本数(max_samples)、最小样本数(min_samples)和一个列名作为参数。它返回一个数据框,其中任何类别的图像数量都不超过 max_samples。如果一个类别的图像少于 min_samples,它将从数据框中被移除。 输出 ![]() 分割数据集 我们将把数据集分割为训练集、测试集和验证集。 输出 ![]() 让我们看一些来自训练集的图像。 输出 ![]() 模型在这里,我们将创建模型。我们将使用迁移学习和EfficientNetB3模型。 回调(callback)允许用户在训练过程中的关键阶段动态选择是继续还是停止训练。它通过让用户根据自己的偏好调整训练时长,为他们提供了灵活性和控制力。 然后,我们将实例化自定义回调,并创建2个回调来控制学习率和早停(early stop)。 训练模型我们将让模型在训练集上进行训练。 输出 ![]() ![]() 输出 ![]() 在测试集上进行预测我们将定义一个函数,它接受一个测试生成器(test generator)和一个整数 test_steps 并在测试集上生成预测,包括一个混淆矩阵和一个分类报告。 输出 ![]() ![]() 看起来不错,准确率达到了79%。 现在,我们必须保存模型。 输出 ![]() 处理测试集输出 ![]() 模型运行良好。 下一个主题GIS的组成部分 |
我们请求您订阅我们的新闻通讯以获取最新更新。