第7章 苏清颜的改观(1 / 2)

巡检机器人的第一轮测试结束后,林默发现了一个问题。

视觉识别的准确率在实验室环境里是97%,但到了室外,光照变化剧烈,准确率直接掉到了78%。

“光照鲁棒性不够。”苏清颜看着测试数据,眉头皱成了川字,“模型是在室内光照条件下训练的,到了室外,阴影、逆光、反光,都会影响识别效果。”

“那怎么办?”林默问。

“两个方案。”苏清颜伸出两根手指,“第一,扩充训练数据集,加入各种光照条件下的图片,重新训练模型。第二,在预处理阶段做光照归一化,减少光照差异对特征提取的影响。”

“哪个更快?”

“第二个。光照归一化只需要加几行代码,先试试效果。不行的话再走第一条路。”

苏清颜打开笔记本,噼里啪啦敲了十几分钟,写了一个直方图均衡化的预处理函数,嵌入了图像识别的pipeline里。

重新测试。

室外,下午两点的太阳正毒,树莓派摄像头对准一个红色的三角锥。

预处理后的图像,光照被拉平了,红色区域的特征更加突出。模型识别——置信度91%。

“有效果,但还不够。”苏清颜咬了咬嘴唇,“91%还是偏低,至少要95%以上才算可靠。”

林默想了想:“要不两个方案一起上?你搞光照归一化,我扩充数据集。分头行动,两天之内搞定。”

苏清颜看了他一眼,点了点头。

“行。”

---

接下来的两天,两人像上了发条一样。

苏清颜负责优化预处理算法。她从直方图均衡化做到了自适应直方图均衡化,又从自适应做到了带色彩恢复的多尺度视网膜增强算法——一个听起来就很高级的算法,林默连名字都记不全。

林默负责扩充数据集。他拿着摄像头,在学校里到处跑——早上、中午、傍晚、阴天、晴天、室内、室外、阴影下、逆光中——拍了三千多张照片,标注了每一张中的目标物体。

“你这是要把整个江城大学都拍一遍?”苏清颜看到他手机里密密麻麻的照片,忍不住问。

“数据集越大,模型越鲁棒。”林默理直气壮。

“你拍归拍,别被人当变态。”苏清颜面无表情地说,“昨天有人跟我说,看到一个男生在女生宿舍楼下举着摄像头转悠,对着每个红色的东西拍半天。”

林默的脸一下子红了。

“那是意外!我在拍消防栓!消防栓是红色的!而且我没有对着女生宿舍拍!”

苏清颜看着他涨红的脸,嘴角微微抽了一下,像是在忍笑。

“行,信你。”

---

第二天晚上,两人在实验室里跑模型训练。

三千多张新图片,加上原来的数据集,一共四千五百张。用迁移学习在MobileNetV2上微调,GoogleColab的免费GPU跑了一个半小时,终于训练完成。

验证集准确率:96.8%。

比预期的95%还高。

“成了!”林默一拍桌子,站了起来。

苏清颜凑过来看屏幕上的评估报告,点了点头:“室外测试,我猜能到93%以上。”

“赌什么?”

“赌一顿饭。”

“行,输了请你吃好的。赢了……”林默想了想,“赢了你也得请我吃好的。”

“你这赌局,怎么都是你赚?”

“因为我是稳赢的。”

苏清颜白了他一眼,没再跟他争。

---

第二天上午,两人推着巡检机器人到室外做实地测试。

测试场地选在机械工程系楼前的广场。广场上有花坛、路灯、长椅、垃圾桶,环境复杂程度适中。

林默在平板电脑上设定好路径——绕广场一周,识别路径上的红色圆形物体。

机器人启动,履带发出均匀的咔嗒声,缓缓向前移动。

第一个目标:花坛边的一个红色灭火器。

摄像头对准,预处理,模型推理——置信度97%。位置标记,上传云端。

继续前进。

第二个目标:路灯杆上贴的一个红色圆形警示标志。

摄像头对准——阴影恰好覆盖了标志的一半。林默心里一紧。

预处理后的图像,阴影被拉平,红色区域依然清晰。模型推理——置信度94%。

“94%,过了。”苏清颜在旁边说,语气里带着一丝满意。

第三个目标:一个穿着红色T恤的路人。

机器人停下来了。摄像头对准了那个路人。

林默和苏清颜同时愣住了。

模型输出——置信度89%,类别判断:红色圆形物体。

“它不是!它不是红色圆形物体!它是个人!”林默差点喊出来。

苏清颜赶紧在平板上按下了急停。机器人停了下来,无辜地“看”着那个路人。

路人——一个胖胖的男生,被一台机器人对着拍了半天,一脸懵地看着林默和苏清颜。

“不好意思不好意思,我们在做测试,误识别了。”林默连忙跑过去解释。

胖男生看了看林默,又看了看机器人,挠了挠头:“你们这个机器人……眼神不太好使啊。”

林默尴尬地笑了笑。

等胖男生走远了,苏清颜蹲下来,看着机器人的摄像头,若有所思。

“问题出在哪儿?”林默凑过来。

“数据集的偏见。”苏清颜说,“训练数据里,红色圆形物体都是无生命的——消防栓、警示牌、水杯、三角锥。模型学到的特征,可能不只是‘红色圆形’,还包括了‘静止’‘无生命’这些隐含特征。但它没见过红色衣服的人,所以推理的时候,就把人身上的红色区域也当成目标了。”

“那怎么解决?”

“两个方向。第一,在数据集里加入‘红色衣服的人’作为负样本,告诉模型这个不是目标。第二,增加一个目标检测的前置步骤,先判断候选区域是不是人,再决定是否识别为红色圆形。”

“哪个更快?”

苏清颜想了想:“第二个。我可以调用一个开源的人体检测模型,做人脸或者人体检测。检测到人的话,直接跳过。”

“需要多久?”

“半天。”

“行,那就这么干。”

---

苏清颜说到做到。

下午四点,她把人体检测模块集成到了识别pipeline里。新的流程是:摄像头采集图像-人体检测(OpenCV的HOG特征+SVM)-如果检测到人体,跳过-如果没有人体,再做红色圆形识别。

重新测试。

还是那个广场,还是那条路径。

机器人经过那个胖男生站过的地方——这次没有识别,直接通过了。

“搞定。”苏清颜拍了拍手。

林默看着机器人的表现,满意地点了点头。

“苏清颜,你是真的强。”

苏清颜看了他一眼:“你也是。”

两个字,说得云淡风轻,但林默听出了其中的分量。

这是苏清颜第一次当面肯定他。

---

晚上,两人在实验室整理测试数据。

苏清颜在写实验报告,林默在优化机器人的电源管理模块。实验室里很安静,只有键盘声和偶尔的电流声。

“林默。”苏清颜突然开口。

“嗯?”

“你那个除草机,第一次测试的时候,避障功能的响应速度是0.3秒。你是怎么想到用电磁抬升机构的?”

林默愣了一下,没想到她会突然问这个。

“当时也没多想,”他如实说,“电磁铁响应快,结构简单,成本低。而且……我之前好像在哪儿见过类似的设计,就借鉴了一下。”

“在哪儿见过?”

最新小说: 深蓝深渊 直播三国:我靠嘴遁匡扶汉室 情绪系统:读心校花兑换猫耳娘 退婚后,我成了万亿战神 觉醒画中世界我懒得当三界之主 疯批女明星修仙记 网游:放背包,装备属性自动生效 开局诛杀东林,朕的大明无敌了 全民转职:亡灵主宰!我即是天灾 炎黄科技帝国