车厢里人不多。
陈默抓着扶手,地铁在隧道里穿行,窗外的广告灯箱连成模糊的光带。光带扫过乘客的脸,明暗交替,像老旧的胶片电影。他靠在门边的金属板上,凉意透过衬衫渗进来。
背包沉甸甸地压着肩膀。
他想起蜜罐里那串ip地址,科技园b栋,赵志刚的名字。链条很清晰,清晰得让人不安。车轮碾过铁轨接缝,发出规律的哐当声。哐当,哐当,像某种倒计时。
到站了。
车门滑开,人潮涌出去。他跟着人流走上扶梯,头顶逐渐亮起来。出闸机,刷卡,嘀的一声。夜风从出口灌进来,吹得他眯起眼睛。
沈清澜给的地址在两条街外。
高档小区,门禁很严。他按了单元号,对讲机里传来沙沙的电流声。几秒后,门锁弹开,金属撞击声清脆。他推门进去。
大堂里铺着大理石,光可鉴人。
电梯匀速上升,数字跳动。十二楼。叮一声,门开了。走廊铺着厚地毯,脚步落上去没有声音。他找到1203室,深吸口气,按响门铃。
里面传来脚步声。
门开了。沈清澜穿着浅灰色家居服,头发松松挽在脑后,几缕碎发落在颈边。她没戴眼镜,眼睛看起来比平时柔和些。
“进来吧。”她说。
陈默侧身进门,玄关很窄,鞋柜上摆着盆绿萝。叶子油亮亮的,在射灯下泛着光。他弯腰换拖鞋,鞋底很软,带着淡淡的消毒水味。
“书房在这边。”
沈清澜转身带路。走廊墙上挂着几幅抽象画,色块堆叠,看不出具体形状。她推开一扇木门,暖黄色的光涌出来。
书房比想象中大。
一整面墙都是书架,顶天立地,塞满了书。技术专着,学术期刊,还有一些硬壳笔记本。书脊颜色深浅不一,像拼接起来的色块。另一面墙挂着三块显示器,线缆整齐地束在理线槽里。
房间中央是张长桌。
桌上摆着两台主机,机箱侧透,里面的rgb灯带闪着幽蓝的光。键盘是机械的,键帽磨得发亮。桌角放着杯水,水面漂着片柠檬。
“坐吧。”沈清澜指了指桌旁的椅子。
陈默拉开椅子坐下,皮革椅面冰凉。他放下背包,从里面掏出笔记本电脑。金属外壳沾了层薄汗,摸上去有点滑。
沈清澜走到书桌前。
她打开抽屉,取出个移动硬盘。硬盘是黑色的,侧面贴着标签,手写着日期和项目缩写。她把硬盘放在桌上,推过来。
“这是灵瞳20的测试数据。”
陈默接过来,硬盘沉甸甸的。他插上接口,指示灯亮起红光。电脑识别出设备,弹出文件夹窗口。里面是几十个csv文件,命名规则很工整。
“上周刚跑完最后一轮。”沈清澜说,“准确率提升了三个点,但延迟问题没解决。”
她靠坐在桌沿上,双手抱在胸前。家居服的袖子宽大,滑到手肘,露出小半截白皙的手臂。手腕上戴了块智能手表,表盘暗着。
陈默点开一个文件。
数据密密麻麻,滚动条缩得很短。他快速浏览,目光停在几个关键指标上。帧率波动很大,从六十突然掉到二十,又弹回去。
“硬件瓶颈。”他说。
“赵志刚不肯加预算。”沈清澜的声音很平,“他说客户感知不到。”
陈默没接话。他关掉文件,打开自己的电脑。桌面很干净,只有几个工程文件夹。注着“瞬瞳_原型_v3”的目录。
里面是源代码和测试脚本。
“我想给你看个东西。”他说。
沈清澜走过来,站在他椅子侧后方。她身上有淡淡的香味,像洗衣液混着一点柑橘调。陈默能感觉到她的视线落在屏幕上。
他运行了一个演示程序。
窗口弹出,左侧是原始视频流,右侧是算法处理后的画面。视频拍的是一条拥挤的街道,行人,自行车,电动车混在一起。
算法开始工作。
右侧画面里,每个人都被标上了边界框,头顶浮出id数字。跟踪轨迹画成半透明的彩色线条,像彩带一样拖在身后。线条很平滑,没有跳变。
“实时?”沈清澜问。
“嗯。”陈默敲了下空格,“三十帧,1080p。”
画面暂停。他放大其中一个人,边界框紧紧贴着身体轮廓,即使被自行车挡住半边,框线也没有丢失。id数字稳稳浮着,没有切换。
沈清澜弯下腰,凑近屏幕。
她的呼吸轻轻拂过陈默耳侧,有点痒。陈默僵了僵,没动。她盯着跟踪轨迹看了几秒,手指在桌面上点了点。
“遮挡处理怎么做的?”
“多层特征融合。”陈默切到代码页面,“我改了下注意力机制,让模型更关注局部特征的变化。”
他滚动代码,光标停在关键函数上。注释写得很详细,每个参数的含义,每步操作的目的。沈清澜安静地看着,睫毛在眼下投出浅浅的阴影。
看了大概两分钟。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!
她直起身,走到书柜前,抽出一本厚书。书脊上印着英文标题,关于计算机视觉的经典教材。她快速翻到某一页,摊开在桌上。
“这个公式。”她指着一段推导,“你用了吗?”
陈默凑过去看。是贝叶斯滤波在目标跟踪中的应用,公式很复杂,带着积分符号。他摇摇头。
“没用这么重的模型。”他说,“我做了近似,用查找表替代积分运算。”
他切回自己的工程,打开另一个文件。里面是预计算的查找表,数据量很大,但加载速度很快。沈清澜盯着那些数字,眉头微微皱起。
“精度损失多少?”
“千分之三。”陈默调出对比数据,“但速度提升了四十倍。”
沈清澜沉默了。她拿起桌上的水杯,喝了一口。柠檬片跟着晃动,撞到杯壁,发出轻微的叮声。她放下杯子,杯底磕在桌面上。
“有意思。”她说。
陈默等着下文。书房里很静,只有电脑风扇的低鸣。窗外偶尔有车驶过,灯光扫过天花板,一晃即逝。
沈清澜走回书柜前。
她又抽了几本书,叠在一起抱过来。书很重,放在桌上时发出沉闷的砰声。她一本本翻开,找到标记过的页码,摊开在陈默面前。
都是跟踪算法的前沿论文。
有些页边有铅笔批注,字迹清瘦锋利。陈默一一看过去,发现沈清澜关注的点和他很像:效率,鲁棒性,轻量化。
“这些我都读过。”他说。
“看得出来。”沈清澜说,“你的思路和第三篇很像,但走了不同的岔路。”
她指的是一篇关于孪生网络跟踪的论文。陈默确实参考过,但后来放弃了那个方向,因为计算量太大。他没想到沈清澜一眼就看出来了。
“你觉得岔路走对了吗?”他问。
沈清澜没立刻回答。她拉过另一把椅子坐下,椅轮在地板上滚出细碎的声响。她翻开那篇论文,找到实验数据表,指尖点在某个数字上。
“他们的基线准确率是897。”她说,“你做到了多少?”
“912。”陈默调出自己的测试报告。
沈清澜扫了眼屏幕。报告很简洁,只有数据和图表,没有多余的文字。她盯着那个数字看了几秒,嘴角似乎动了一下。
很轻微,几乎察觉不到。
“代价呢?”她问。
“内存占用多百分之十五。”陈默实话实说,“但推理时间少了三分之一。”
“可以接受。”沈清澜合上论文,“在嵌入式设备上,时间比内存金贵。”
她站起身,走到窗边。窗帘没拉严,露出一条缝隙。窗外是城市的夜景,高楼灯火通明,像倒置的星河。她背对着陈默,肩线挺直。
“赵志刚不会懂这个。”她说。
声音很轻,像自言自语。陈默没接话,手指在键盘上无意识地敲了敲。按键发出清脆的嗒嗒声,在安静的房间里格外清晰。
沈清澜转过身。
“你接下来打算怎么做?”她问,“继续完善算法,还是找应用场景?”
“都要做。”陈默说,“但我需要数据,真实场景的数据。”
“比如?”
“智慧社区,零售监控,交通路口。”陈默列举,“越多越杂越好。”
沈清澜走回桌前。她打开自己的电脑,登录公司内部系统。屏幕光映在她脸上,肤色显得更白了。她快速操作,调出一个文件列表。
“这些是灵瞳项目积累的。”她说,“二十七个不同场景,总计八万小时标注视频。”
陈默怔住了。八万小时,足够训练一个很强的模型。他没想到沈清澜会这么直接地拿出来。
“有保密协议。”沈清澜补充,“但技术脱敏后可以用。”
“怎么脱敏?”
“我写个脚本,把人脸车牌都抹掉。”沈清澜语气平淡,“周末就能弄好。”
陈默看着她。她盯着屏幕,侧脸线条利落,鼻梁很高。手指在触摸板上滑动,动作干脆,没有半点犹豫。她似乎完全没考虑这会不会违反公司规定。
“为什么帮我?”陈默问。
沈清澜停下手。她转过椅子,正对着陈默。两人之间隔着两米,灯光从头顶洒下,在她眼窝处投出浅浅的阴影。
“两个原因。”她说,“第一,你的算法确实更好。第二……”
她顿了顿。
“我看不惯赵志刚做事的方式。”
陈默等着她说下去。沈清澜却移开视线,看向书架。目光在那些书脊上逡巡,像在寻找什么。几秒后,她收回目光。
“灵瞳项目最初是我提的。”她说,“赵志刚抢过去了,改得面目全非。”
声音还是平的,但陈默听出一丝极淡的厌烦。像看见食物里混进头发,那种生理性的不适。他想起之前在公司,沈清澜很少参加项目会议,原来是这样。
“所以你一直没管?”他问。
“管不了。”沈清澜说,“他拉拢了产品部和销售部,我说什么都像在拆台。”
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!
她拿起水杯,又喝了一口。这次喝得有点急,喉结轻轻滚动。放下杯子时,杯底和桌面碰撞的声音比刚才重。
陈默忽然明白了。
沈清澜不是不想争,是觉得不值得。她的精力都放在技术上,懒得应付那些办公室政治。但心里终究憋着股气,像被强行压住的弹簧。
“瞬瞳如果成了,”陈默说,“灵瞳20就是个笑话。”
“我知道。”沈清澜看着他,“所以你需要快点成。”
这话说得很直白。陈默点点头,心里那根弦绷紧了些。他关掉演示程序,打开工程目录下的另一个文件夹。
里面是商业计划书的初稿。
“李贺要我下周交完整版。”他说,“技术部分差不多了,但市场分析还缺数据。”
沈清澜凑过来看。她靠得很近,发梢几乎碰到陈默的肩膀。陈默闻到更清晰的柑橘香,混着一点纸张的油墨味。
“这里不对。”她指着某一行,“智慧社区的市场规模你估低了。”
“依据呢?”
沈清澜直起身,走到书柜另一侧。那里放着几个文件夹,标签写着“行业报告”。她抽出一本,翻到折角的那页,拿过来摊开。
数据表格密密麻麻。
她用指尖划出一列数字:“这是住建部去年的统计,老旧小区改造试点城市增加了四十个。每个试点都有安防升级预算。”
陈默快速心算。如果按最低标准算,市场规模确实比他预估的大三成。他记下这个数字,在文档里修改。
“还有这里。”沈清澜指向竞争分析部分,“你只列了国内公司,但国外厂商已经开始降价了。”
她又抽出一份报告。
这次是英文的,页边有她的批注。陈默的英文读写还行,但专业报告看起来还是有点吃力。沈清澜直接翻译关键段落,语速很快,但条理清晰。
陈默跟着修改。
两人就这样工作了半个多小时。沈清澜提供数据,陈默调整文档。偶尔有分歧,就各自陈述理由,然后选更合理的那个。没有客套,没有谦让,像两个工程师在调试代码。
改到最后一页时,沈清澜停了。
“差不多了。”她说,“但还缺个东西。”
“什么?”
“试点案例。”沈清澜合上报告,“你需要一个落地的项目,哪怕很小。”
陈默想起永安居住区。李建国那边还没最终敲定,不能写进去。他摇摇头:“暂时没有。”
“那就找一个。”沈清澜说,“我有个朋友在街道办,他们社区正在搞智慧门禁招标。”
她拿起手机,翻通讯录。屏幕光映亮她的脸,睫毛在眼下投出细密的影子。翻了十几秒,她找到一个名字,点开。
“明天我问问。”她说,“项目很小,预算只有二十万。但够你做个示范了。”
陈默心里一动。二十万确实不多,但足够覆盖硬件成本和基础开发。关键是能积累真实数据,完善算法。
“谢谢。”他说。
沈清澜摆摆手,意思是不用客气。她放下手机,看了眼墙上的挂钟。时针指向十点半,分针颤巍巍地抖着。
“不早了。”她说。
陈默会意,开始保存文档。他拔出移动硬盘,指示灯还亮着红光。拔下的瞬间,红光熄灭,像某种终结。他把硬盘递回去。
沈清澜接过来,握在手里。
硬盘外壳温热,是刚才电脑散热烘的。她拇指摩挲着标签边缘,纸张有点翘角。摩挲了几秒,她抬起头。
“还有件事。”她说。
陈默等着。沈清澜走到书桌前,拉开最底下的抽屉。里面不是文件,而是个铁盒子,印着外国牌子的曲奇图案。她打开盒盖。
里面是一叠名片。
她翻找片刻,抽出一张。名片是深蓝色的,烫银字,设计很简约。她走过来,递给陈默。
“王律师。”她说,“专做知识产权和竞业纠纷。如果赵志刚找你麻烦,可以联系他。”
陈默接过名片。纸质厚实,边缘切得很齐。他看了眼上面的名字和电话,点点头,收进口袋。布料摩擦发出沙沙声。
“我会小心的。”他说。
沈清澜嗯了一声。她送陈默到玄关,看着他换回自己的鞋。运动鞋鞋带松了,陈默蹲下系紧。鞋带粗糙,在指尖绕了两圈,打了个结。
站起身时,他看见鞋柜上的绿萝。
最底下那片叶子黄了,边缘卷曲。但新芽从旁边冒出来,嫩绿色,小小的,很精神。他多看了一眼。
“走了。”他说。
沈清澜点点头,没说话。她站在门内,身后是暖黄的灯光,身前是走廊的昏暗。明暗交界线切过她的身体,一半亮,一半暗。
陈默拉开门走出去。
门在身后轻轻关上。锁舌弹回的声音很轻,但在安静的走廊里格外清晰。他站着等了两秒,里面没有动静。
他走向电梯。
按下按钮,指示灯亮起红光。电梯从一楼缓缓上升,数字跳动。他摸了摸口袋里的名片,边角有点硌手。
叮。
门开了。他走进去,轿厢里镜面反射出无数个自己。脸色有些疲惫,眼睛里有血丝。他移开视线,按下一楼。
电梯下行。
失重感从脚底传来,胃里轻微翻腾。他靠着厢壁,金属冰凉,透过衬衫传递到皮肤。数字一层层跳,终于停在一楼。
门开了。
夜风扑面而来,比来时更凉。他走出小区,街道空旷,只有路灯伫立。影子拖在身后,长长的,像条尾巴。
他回头看了一眼。
十二楼那扇窗还亮着,暖黄色的光,在无数黑暗的窗口中显得孤独而坚定。他看了几秒,转身继续走。
背包里的电脑沉甸甸的。
但比来时轻了些。不是重量变了,是心里某个地方松动了。他想起沈清澜说“我看不惯赵志刚做事的方式”,语气平淡,但字字清晰。
盟友。
他第一次明确地感受到这个词的分量。不是同情,不是施舍,是基于技术判断的共同利益。很实际,也很牢固。
手机震了。
他掏出来看,是沈清澜发来的消息:“数据脱敏脚本写好了,明早发你。”后面跟了个句号。他回:“好,谢谢。”
发送。
他把手机塞回口袋,手揣在兜里。指尖碰到那张名片,边角有点锋利。他捏了捏,纸质很硬,像某种铠甲。
夜风吹得树叶哗哗响。
他加快脚步,走向地铁站。路灯把他的影子缩短又拉长,像某种呼吸的节奏。一步,一步,脚步声敲在寂静里。
蜜罐的警报还在心里闪着。
但此刻多了些别的东西。技术的可能性,落地的路径,还有一个可以并肩的人。虽然只是开始,但方向明确了。
他深吸口气,冷空气灌满胸腔。
刺痛,但清醒。清醒地意识到,棋盘上不止他一颗棋子了。虽然力量还弱,但至少,不再是孤军奋战。
地铁站的光在远处亮着。
他走向那团光,影子在身后紧紧跟随。