Skip to content

人机交互流程设计

人机交互流程(Human-Computer Interaction, HCI流程)是指用户与计算机系统之间进行信息交换的步骤和互动过程。这个流程设计旨在确保用户体验尽可能流畅、直观且高效,从而实现用户的操作目标。HCI流程不仅关注技术的功能性,还重视如何通过界面设计、交互方式以及反馈机制等提升用户的满意度和效率。

通用流程

  • 加载模型:使用了onnxruntime库来加载和执行ONNX格式的预训练模型(如ResNet、MNIST、Emotion-FerPlus、Flower Detection等),实现了在不同应用场景下的图像分类。
  • 加载和预处理图像:通过PIL.Image(Python Imaging Library的一部分)加载和转换图像。根据不同的模型需求,将图像转换为灰度图或RGB图,并调整大小以适应模型输入的要求。
  • 进行推理:利用numpy进行数组操作,包括数据类型转换、形状调整(添加批次和通道维度)等。应用了scipy.special.softmax函数计算输出的概率分布,以便于解释模型的输出结果。
  • 解析和输出结果:根据预先定义的类别标签文件(如labels.txt),将模型输出的类别索引映射回具体的类别名称。通过找到概率最大的类别索引来确定预测的类别,并以人类可读的形式输出预测结果及其置信度(百分比形式的概率)

ONNX Runtime

基础使用 - 加载与推理

  • 导入库: import onnxruntime as ort
  • 创建推理会话: session = ort.InferenceSession("path/to/model.onnx")
  • 获取模型输入/输出信息:
    • session.get_inputs() 获取输入节点名称、类型、形状。
    • session.get_outputs() 获取输出节点名称、类型、形状。
  • 准备输入数据:
    • 使用 NumPy 创建符合模型输入要求的数组。
    • 注意数据预处理(归一化、尺寸调整、通道顺序转换等)。
  • 执行推理:
    • results = session.run(output_names, input_feed)session.run(None, input_feed)
    • input_feed: 字典,键为输入名,值为 NumPy 数组。
    • output_names: 要获取的输出列表(或 None 获取所有输出)。
  • 处理输出结果: 解析 results (通常是 NumPy 数组列表),根据需要进行后处理(如 Softmax、解码标签等)。