晋江文学城
下一章 上一章  目录  设置

12、摄像机没有一起失明 消失的监控 ...

  •   第二天第一节是矩阵乘法实验。

      许砚知坐在计算中心第三排,桌面左侧放实验讲义,右侧放A401新授权。授权没有再写“第二号柜”,而是标出两个物理位置:东墙北起第一柜,西墙南起第二柜。每个位置后面附了一张照片,避免编号再次把人带向错误对象。

      老师在投影上画了两个矩阵,要求他们解释为什么行列顺序不能交换。沈砺川盯着屏幕看了一会儿,在草稿纸上写:同一批数据,排列方式一变,得到的就不是同一件事。

      许砚知把那句话圈起来:“这是实验结论,还是你在想录像?”

      “都有。”

      “分开写。”

      沈砺川把句子抄到另一页,没有争。他们前一晚刚把“账户”“操作者”“见证人”拆成三栏,今天又要面对三路摄像机、两套时钟和一个缺失的四十七分钟。矩阵乘法至少有明确规则;旧录像没有人保证每一行、每一列都来自同一种时间。

      实验任务是比较朴素实现与分块实现。沈砺川写代码,许砚知准备输入和校验样例。运行到第三组数据时,优化版本比基础版本快了很多,输出却在一个边界位置差了一位。

      “分块下标。”许砚知说。

      “我知道。”沈砺川没有立刻改。他把错误输入缩到最小,确认只有当矩阵边长不能整除块大小时才出现偏差,“如果只看大规模平均结果,这一位会被盖过去。”

      “所以先验正确性,再谈速度。”

      “今天让你赢一次。”

      “不是输赢。”

      “知道。是能不能留下一个可复现的错。”沈砺川把失败样例存进实验目录,文件名没有写final,也没有覆盖第一次输出。

      许砚知看了他一眼。最初几次取证里,沈砺川最难改的习惯,是总想把不完整的过程迅速推向可用结果。今天他主动保留了那个难看的输出,没有把它当成必须立刻清理的污点。

      下课铃响时,罗老师发来消息:A401双位置检查获批,十点二十开始。四人材料组、赵嵩、陆行简与实验中心两名工作人员同时到场。

      A401门口换了新封条。昨晚断开的旧封条被装进证物袋,门把手与本地证书终端已经做过表面取样。许砚知第一次进入这间房,没有先看白板,也没有去找旧电脑。他照授权要求站在门外,等罗老师报完房间状态、摄像设备和人员名单。

      东墙旧二号柜的编号牌已经拆走,只剩两枚颜色较新的螺钉。西墙现二号柜贴着“开放日耗材”,锁芯上积着薄灰。两只柜子分别使用不同钥匙,钥匙由两名工作人员保管,任何一个人都不能独自打开。

      “先哪一只?”罗老师问。

      许砚知看授权顺序:“东墙旧二号。”

      沈砺川补充:“开门前拍锁芯和门缝,确认没有新划痕。”

      赵嵩站在长桌另一侧,语气平静:“当年我放介质的是东墙位置。柜子那时靠窗,不在这里。”

      “调整表显示它从南墙移到东墙。”罗老师说,“柜体没换,位置换过。”

      两把钥匙同时转动。柜门发出一声很涩的金属摩擦,里面没有整齐的档案盒,只有一只黑色防震箱、三捆打印纸和两台坏掉的采集器。防震箱尺寸与CL-TAPE-03登记描述一致,封扣却是打开的。

      罗老师先确认箱体编号。标签底部被磨掉一角,仍能读出“CL-TAPE-0”,最后一位留下胶痕。箱内没有固态介质,只有一张泡棉垫和四枚已经发脆的防拆贴。

      沈砺川的呼吸明显重了一下。他没有伸手。许砚知站在记录板旁,把“发现空箱”写进现场表,后面补上“不能确认是否曾装CL-TAPE-03”。

      “箱子就是这个。”赵嵩说。

      “你能依据什么确认?”孟老师问。

      “划痕。”赵嵩指向箱盖右侧一道浅白痕,“我带它去设备办公室时撞过门框。”

      “还有别的同型号箱吗?”

      “至少三只。”

      因此划痕只能作为记忆,不能单独确认身份。

      打印纸第一捆是开放展示的摄像机导出清单。三路摄像机分别标成C1、C2、C3,每十分钟生成一个视频块;展示终端另有S0屏幕录制。清单不是视频本身,却保留了每个文件的开始时间、帧数、校验值和导出状态。

      缺失的四十七分钟在清单里并不空白。

      C1从二十点三十一分到二十一点十八分显示“已导出”,帧数正常;C2同一时段少了四个视频块;C3全部存在;S0则在二十点四十六分重新启动过一次。若只看后来提交的汇总视频,会以为四路记录同时中断。原始清单说明,至少两路摄像机当时仍在工作。

      “不是没录到。”林疏月说,“是汇总时没放进去。”

      “或者清单被补过。”许砚知说。

      罗老师让工作人员扫描清单纸张。页码连续,装订孔一致,墨粉老化程度没有明显差异,但这仍不能证明内容没有后改。

      第二捆纸是一个四乘若干列的时间对齐表。每列代表一分钟,四行分别对应C1、C2、C3和S0。大多数单元格写着文件编号,缺失处画斜线,异常处用红笔标记。四十七分钟被不同颜色的方框切成几段,原先想象中的整块空白并不存在。

      沈砺川把纸铺在长桌上:“这像导出矩阵。”

      赵嵩说:“当年为了对齐四路记录做的。摄像机时钟有漂移,不能直接按文件名拼。”

      “谁做的?”

      “记不清。可能是我,也可能是周闻。”

      表格右下角没有签名,只有一行英文文件名:camera_matrix_v4.xlsx。

      许砚知没有允许他们当场计算。他们先给每一页编号,记录红笔颜色、折痕和装订顺序,再把可公开核对的数字抄入现场副本。东墙柜检查结束后,防震箱和纸张原位封存,只把扫描件带到A307分析。

      西墙现二号柜里都是后来添置的耗材,没有介质。最底层却压着一块拆下来的旧柜号牌,背面写着“4→2,九月调整”。这证明编号更换发生在撤展后的九月,而赵嵩签领CL-TAPE-03是在七月。登记中的“cabinet 2”应当指东墙旧柜,不是现在的西墙柜。

      柜号问题解决了,介质去向仍然没有答案。

      中午十二点半,A307的白板被他们画成四行。许砚知把每路设备的文件编号按时间排列,陈以宁记录时钟偏移,林疏月核对公开展示视频,沈砺川负责写一个只读对齐脚本。

      “别直接读表格里的颜色。”许砚知说,“先把数字录入,颜色只作为人工备注。”

      “我知道,红框不是数据。”

      “也别默认每分钟都有相同帧数。”

      “摄像机二十五帧,屏幕录制三十帧,已经分开。”

      “时钟漂移不是常数。”

      沈砺川停下敲键盘:“你今天准备把所有错误提前说完?”

      “能提前排除的就排除。”

      “可我们现在还没跑第一版。”

      两个人的声音都不高,桌边的人却安静下来。这次争执来自两种工作节奏的正面碰撞,与前一晚的保管规则无关。许砚知担心第一版输出被误当结果,沈砺川担心条件永远列不完,事情无法开始。

      陈以宁把录入表转向他们:“可以同时保留。脚本版本零只验证输入结构,不输出结论;版本一再加入漂移模型。两版都留。”

      沈砺川看许砚知:“接受?”

      许砚知点头:“版本零标题写清‘结构检查’。”

      “成交。”

      第一版脚本只做一件事:把四行文件按时间排进同一张表,找出真正缺失和重复的区段。结果出来后,四十七分钟里出现了一个反常模式——C1和C3的文件都在,但每个文件的校验值与十九点四十四分开始的一段完全相同。

      不同时间生成的视频,不应该拥有相同校验值。

      他们抽取公开汇总视频对应画面。二十点三十一分后,走廊里一名清洁人员连续三次推着同一辆车经过同一块地砖,动作、轮子角度、画面噪点完全一致。摄像机没有重复拍到相似场景。早先的四十七分钟被整段复制,覆盖了后来的内容。

      C2没有完成覆盖。它的四个视频块在导出清单里标为失败,可能因为存储卡掉线,也可能因为替换脚本只处理了已索引文件。C2缺失看起来像坏事,却恰好使替换没有形成完整闭环。

      为了判断相同校验值究竟来自人工复制还是导出软件故障,贺承远申请了一次受控复现。实验中心找来当年的离线视频汇总软件,安装介质仍封在东墙柜里的纸袋中,版本号与开放日记录一致。测试在一台全新隔离机上进行,素材是四段拍摄空教室的短视频,不含任何旧案数据。

      罗老师负责安装,沈砺川只能口述操作。软件界面很旧,四个输入框按上下排列,没有清楚标出时钟单位。它提供一个“自动补齐缺口”选项:当某路视频缺失时,默认复制上一段有效画面,使最终汇总时长保持一致。说明文档把这种行为称作“视觉连续性保护”。

      林疏月盯着那几个字:“保护谁?”

      “保护展示不中断。”赵嵩回答,“当年做开放日,投影黑屏会被认为系统坏了。”

      “可复制旧画面会让人以为那段时间也正常。”

      “所以内部原始文件不能丢。”

      “但原始介质现在丢了。”

      赵嵩没有再说。

      他们先用默认设置导出。第二路视频故意缺十秒,软件果然把前十秒复制过去。生成文件的校验值与原片段不同,因为汇总软件重新编码了画面;寒灯清单里却是整块文件校验值完全相同,这说明当年没有简单启用默认补齐;有人在导入前直接复制了文件。

      第二次测试中,罗老师按日志里残留的参数,把旧文件复制后重新命名,再导入软件。结果与寒灯模式一致:文件名时间向后移动,内容和校验值保持不变,汇总视频看起来连续,清单也不会自动提示重复。

      “软件没有造假。”许砚知说,“它只是不会替使用者判断两个不同文件名为什么内容相同。”

      “操作人需要先准备复制文件。”陈以宁在流程图上加了一步,“而且要知道缺口起止。”

      沈砺川查看测试软件生成的辅助表。每次导出都会在可见四行下方记录一个隐藏字段,名称是EDITOR,内容来自当前系统登录名。软件关闭后,字段仍保存在表格中,但默认打印区域不包含这一行。

      这解释了纸质矩阵为什么像是还有第五行。

      测试机上的隐藏字段写着LAB-TEST。寒灯原表若还能找到电子副本,第五行可能保留当年的登录账户。可现有扫描纸无法直接恢复隐藏内容,按列宽只能证明它存在过。

      沈砺川提议从旧打印缓存寻找电子表格。罗老师摇头:“A401终端未经授权不能启动,B3镜像里也没有这个文件。先记需求,别因为知道隐藏行可能有用就扩大范围。”

      他没有再争,只把“寻找camera_matrix_v4原始电子文件”写进下一阶段申请。许砚知在旁边补上验证条件:即使找到EDITOR,也只能证明当时登录账户,仍不能直接等同操作者。

      “你是不是准备给每个答案都加脚注?”沈砺川问。

      “否则答案会比证据跑得快。”

      “这次我同意。”

      受控复现的录像回放到最后,孟老师要求每个人分别写下“本次实验能证明什么”和“不能证明什么”。沈砺川在第一栏写:相同文件校验值需要预先复制,不能由汇总软件默认补齐产生。第二栏写:不能据此确定复制者身份,也不能证明复制发生在A401。

      许砚知写完自己的版本后,没有去改他的措辞,只把两张纸并排交给孟老师。两份结论几乎一致,理由顺序却不同。沈砺川从操作过程出发,许砚知从证据边界出发。孟老师把它们一同编号,没有要求合并成一份“标准答案”。

      离开数字媒体实验室时,沈砺川忽然问:“固定搭档是不是意味着最后要写成同一种话?”

      “不是。”许砚知把门禁访客卡投入回收箱,“是不同的话能指向同一个可核验事实。”

      “那还行。”

      他走出两步,又回头确认访客卡确实落进封闭箱,没有像从前那样凭感觉说已经归还。

      当天的材料目录因此新增了一项:并行结论。它不用于制造分歧,而是防止一个人的表达覆盖另一个人的判断路径。以后若有人质疑他们互相影响,至少能看到两份独立记录如何在不同起点上得到同一范围内的答案。
      许砚知把这一动作记在当天流程里,却没有写成评价。

      两份独立结论各自签名、各自编号,装入同一只文件袋,却没有合并成一段由某个人代表所有人的话。以后若判断出现偏差,审查者仍能看见分歧从哪里开始。

      受控复现结束后,四段空教室视频全部删除,测试日志和操作录像则保留。林疏月把“视觉连续性保护”圈在采访问题单上。一个看似中性的功能名,恰好说明寒灯旧案为什么拖了这么久:系统可以把空白补得很平顺,平顺到后来的人不再追问那段时间原本应该出现什么。

      “能恢复吗?”林疏月问。

      “只有清单,没有介质。”沈砺川说,“如果原存储卡被格式化,未必。先看表格有没有残留帧索引。”

      第二版脚本加入设备时钟偏移。陈以宁从B3日志里找到三台摄像机每天自动对时的记录,计算出当天各自快慢范围。许砚知要求所有偏移写成区间,不使用单点估计。对齐后,C2失败区段前后各残留一张缩略图编号。

      缩略图不在扫描件里,但第三捆纸中夹着一页打印的接触表。纸上排着几十张指甲盖大小的画面,像旧胶片的预览。大部分被黑笔划掉,页角写着“C2 retry”。

      二十一点十四分那格没有被完全涂黑。画面只剩一条门缝和金属柜侧面的反光。沈砺川用放大镜看了半天:“这里有人。”

      反光里确实有半个人影。没有脸,只看得见左臂、胸前挂牌和手里一只黑色箱子。挂牌底部的数字像“17”,也可能是“11”。

      赵嵩当年开放日的工作牌编号是17。

      这个信息来自公开志愿者名单,林疏月很快查到。房间里短暂地静了一下。沈砺川把放大图停在屏幕中央,没有说“就是赵嵩”。

      许砚知先问:“工作牌是否能借用?”

      “开放日当天可以临时换岗。”林疏月翻到名单备注,“十七号牌在十九点五十分报告挂绳断裂,服务台补发了一张。旧牌有没有回收,表里没写。”

      陈以宁又找到一份耗材清单:备用挂牌从十五号到二十号都印过两份。数字不能确认人。

      沈砺川把文件名从“赵嵩取箱”改成“疑似17号挂牌人员持箱”。改完后,他把键盘推给许砚知:“你检查。”

      许砚知没有直接接受。他问:“你现在最想写什么?”

      “我想写那个人知道摄像机二会失败,所以没管它。”

      “这是推测。”

      “我知道。”

      “为什么想写?”

      沈砺川看着接触表:“因为覆盖不是临时起意。有人准备了旧片段、对齐了时间,还把箱子带走。每一步都比当年公开说的‘导出故障’更主动。”

      许砚知把这段写进“待验证假设”,没有删掉,也没有放进事实结论。他们约定后续寻找替换脚本、导出电脑和工作牌回收记录。沈砺川想追的方向被保留,但不再借事实栏提前获得确定性。

      下午四点,矩阵脚本在扫描清单底部发现一处打印区域之外的隐藏列。电子表格若曾设置打印区域,纸面不会显示隐藏单元格;但旧打印机在页脚留下了一串缩放参数。根据列宽反推,原表在四路设备之外还存在第五行,行名长度约两到四个字符。

      “第五路?”陈以宁问。

      “可能是人工备注,也可能是另一台设备。”许砚知说。

      沈砺川检查同目录残留文件名,在Git对象里找到一个没有内容的引用:EABS_EN_v3.docx。前缀不像摄像机,后缀却明确是一份英文文档。

      第三捆纸最底下恰好夹着半张页眉,英文标题只剩后半部分:……Ethical Accountability in a Beginner System。

      陆行简看到扫描图后,回了一封很短的邮件:这是寒灯开放展示原始英文摘要的副标题。正式展示版删掉了“Ethical Accountability”,改成了“Efficient Learning Analytics”。

      两种标题说的不是同一个项目。

      一个讨论初学者系统里的责任,另一个只展示高效分析。

      许砚知把两版标题并排放进证据目录。沈砺川没有继续追挂牌十七,而是申请调取英文摘要所有修订版本。申请提交后,系统返回一个旧文件编号:EABS-03。

      编号末尾的“03”,与缺失介质CL-TAPE-03相同。

      它们可能只是同一批材料的顺序号,也可能说明英文摘要和原始录像曾被放在同一组开放展示证据里。答案要等档案室次日调卷。

      离开A307前,许砚知把今日脚本分成三个目录:结构检查、漂移对齐、待验证假设。沈砺川在每个目录里写了不同的README,没有用“最终版”。

      “矩阵实验报告还没交。”许砚知提醒。

      “我以为你忘了。”

      “基础版本边界错误没有修。”

      沈砺川打开课程代码,找到上午保留的失败样例。他们花了十五分钟改分块下标,又重新跑完全部输入。实验报告附上更加完整的失败样例,最后一栏问“本次优化最重要的结论是什么”。

      沈砺川写:排列和速度都不能替正确性做决定。

      许砚知看完,没有改。

      他们把接触表和两版脚本一同封存。

      第二天要调取的英文摘要还在档案库里,缺失录像的四十七分钟也仍没有恢复。但他们已经知道,摄像机没有一起失明。有人把另一段画面搬过来,要求后来的人相信什么都没有发生。
note 作者有话说
第12章 摄像机没有一起失明

  • 昵称:
  • 评分: 2分|鲜花一捧 1分|一朵小花 0分|交流灌水 0分|别字捉虫 -1分|一块小砖 -2分|砖头一堆
  • 内容:
  •             注:1.评论时输入br/即可换行分段。
  •                 2.发布负分评论消耗的月石并不会给作者。
  •             查看评论规则>>