图像是带坐标的数值矩阵
灰度像素常用0—255表示亮度。分辨率、曝光、背景和裁剪都会改变矩阵。先确认输入来源与形状。
height, width = len(frame), len(frame[0])
assert (height, width) == (12, 12)常见误区:图像不是图片文件名,而是带形状、通道和来源的数值。
一张图为什么不能直接等于‘石头’,中间必须保存哪些可检查的证据?
0 / 6 · 逐节作答;页面刷新后重新开始。
灰度像素常用0—255表示亮度。分辨率、曝光、背景和裁剪都会改变矩阵。先确认输入来源与形状。
height, width = len(frame), len(frame[0])
assert (height, width) == (12, 12)常见误区:图像不是图片文件名,而是带形状、通道和来源的数值。
灰度化、归一化、去噪和阈值分割都在改变数据。每步应显示输入、参数和输出,不能只展示最终标签。
mask = [[1 if px >= 160 else 0 for px in row] for row in frame]常见误区:预处理不是无损清洁,每一步都会改变证据。
轮廓面积、边界框、连通域和顶部连续段都是人工设计特征。它们可解释,但会受姿态、遮挡和光照影响。
features = {'occupied': 69, 'top_segments': 5, 'contrast': 42}常见误区:特征越多不一定越可靠。
类别、置信度、时间戳和质量共同构成Observation。分出轮廓不代表识别可靠;低对比度样本仍必须变成unknown。
observation = None if confidence < 0.90 else {'gesture': label}常见误区:最高分标签不等于可用Observation。
像素索引通常是row/y在前、column/x在后。ROI、等比例缩放和填充都必须记录,否则同一只手可能因构图变化得到不同特征。
roi = frame[y0:y1, x0:x1]
scale = min(96 / width, 96 / height)常见误区:缩放到相同尺寸不等于拍摄条件相同。
总体准确率可能掩盖某一手势完全失效。混淆矩阵、逐类召回、Unknown覆盖率和光照/背景分组共同说明模型在哪些条件下可用。
report = {'recall': {'rock': 1.0, 'paper': 0.5}, 'coverage': 0.72}常见误区:总体accuracy不能替代逐类和分组诊断。
每一步都写下预期和实际观察;只改变一个变量,并把结论限定在当前证据范围内。
选择paper样本,记录阈值160时的前景像素、顶部连续段和confidence。
把阈值逐步调高,每次只记录一个变化,避免同时改样本与算法。
找出Observation首次变为unknown的阈值,而不是只看图像是否‘像手’。
写明现象、可能原因和下一次验证;不要直接归因相机或模型故障。
可解释视觉流水线必须能回答:输入是什么、哪一步改变了什么、最后依据哪些特征和质量门形成Observation,以及哪些情况仍未知。
五项资源来自官方文档、高校课程或作者开放教材。外链只在主动点击时访问;先带着本页项目问题阅读,不要求一次学完。