从公司倒闭到CV实战:一个武汉前端的转型血泪史
上周五晚上十一点,我还在光谷软件园D4栋加班。窗外下着小雨,楼下罗森便利店的灯还亮着,我盯着屏幕上一段 OpenCV 的代码发愣——这已经是我连续第三周调试这个“智能工牌识别”功能了。突然,微信弹出一条消息,是前同事老张:“兄弟,最近还好吗?听说你在搞计算机视觉?”
我苦笑了一下,回了个“凑合活着”,然后点开我们那个早已解散的创业公司微信群。群名还是“星辰大海”,但最后一条消息停留在去年十月十五号,HR 发的那句“很遗憾通知大家……”。
对,我就是那个在武汉光谷软件园上班、经历过公司倒闭的前端开发。月薪曾从15k涨到22k,结果还没捂热,公司就黄了。房租3500,房贷5800,老婆怀孕三个月,我坐在出租屋里刷BOSS直聘刷到凌晨三点。
倒闭那天,我在调CSS动画
时间回到2023年10月15日,周五。那天早上我还挺开心,因为终于把首页那个该死的Lottie动画优化好了,帧率从32提升到58。老板还在晨会上夸我:“小陈,你这性能优化真有一套!”
谁能想到,下午三点,全员会议室集合。老板脸色苍白,说话都结巴:“各位……很抱歉……融资没到位……工资会结清到月底……”
那一刻,我脑子里一片空白。不是愤怒,不是悲伤,而是“完了,下个月房贷怎么办”。散会后,我默默收拾东西,顺手把桌上那本《深度学习入门:基于Python的理论与实现》塞进包里——那是我上个月咬牙花128块买的,想着“万一以后用得上呢”。
回家路上,地铁2号线挤得像沙丁鱼罐头。我站在角落,看着玻璃窗上映出自己疲惫的脸,心里只有一个念头:前端卷成狗,再不学点硬核技术,迟早被淘汰。
为什么选计算机视觉?
说实话,一开始我根本没想碰CV(Computer Vision)。毕竟我是写React出身的,连TensorFlow.js都只在Demo里玩过。但失业第三周,我在BOSS上看到一家做工业质检的初创公司招“前端+CV辅助开发”,薪资25k起。
我点进去一看要求:“熟悉OpenCV,了解YOLO系列算法,能配合算法工程师做前端集成。”
我懵了。但我老婆说:“试试呗,大不了学。”
于是,我开始了白天投简历、晚上啃书的日子。每天晚上九点,等她睡了,我就打开台灯,在阳台上那张二手宜家书桌上学习。阳台很小,只能放一张椅子和一个小桌子,冬天冷得要命,但我舍不得开空调——电费贵。
我翻烂了两本书:斋藤康毅的《深度学习入门》,还有冈萨雷斯的《数字图像处理》。前者让我理解了卷积、池化这些概念,后者则教会我什么叫灰度变换、边缘检测。说真的,很多数学公式看得我头皮发麻,但我知道,这次不能再靠“复制粘贴”混日子了。
第一个实战项目:工牌识别系统
今年二月,我入职了一家做智慧园区的公司。我的岗位是“全栈开发(偏前端)”,但老板私下跟我说:“其实我们需要你搞点CV功能,比如访客拍照自动识别工牌信息。”
我硬着头皮接了。第一个任务:用手机拍一张工牌照片,自动提取姓名、部门、工号。
听起来简单,对吧?但现实狠狠打了我脸。
踩坑1:光照和角度
用户随手一拍,可能逆光、模糊、歪斜。我直接调用Tesseract.js做OCR,识别率不到40%。有次测试,把“陈志远”识别成“陈志运”,差点被客户骂死。
后来我才知道,算法不是万能的,预处理才是关键。我开始研究图像增强:用CLAHE(对比度受限自适应直方图均衡化)改善光照,用霍夫变换检测矩形轮廓来矫正角度。这些词以前只在书里见过,现在得一行行写代码实现。
踩坑2:模型部署
公司没钱买GPU服务器,所有处理必须在浏览器端完成。我试过TensorFlow.js加载MobileNetV2,结果页面卡成PPT。最后妥协方案:前端只做图像预处理和简单OCR,复杂识别扔给后端轻量级YOLOv5s模型。
那段时间,我和算法同事小李天天吵架。他说:“你前端怎么连NMS(非极大值抑制)都不懂?” 我回:“你算法怎么连CORS都不配?” 最后我们俩在茶水间握手言和,一人泡了一杯9.9包邮的速溶咖啡,笑称“前后端联合抗压小组”。
真正的成长,来自“不懂装懂”的勇气
很多人觉得,前端转CV是跨行,难如登天。但我想说,最大的障碍不是技术,而是心理。
记得第一次在团队会议上讲我的方案,我说:“我们可以用形态学操作去噪,再结合模板匹配定位工牌区域……” 说完我自己都心虚,因为前一天晚上才在《数字图像处理》第178页看到这个词。
但没人笑话我。反而CTO点头说:“思路不错,试试看。” 那一刻,我突然明白:在真实项目中,没人指望你一开始全懂,只要你愿意动手、愿意改,就是好工程师。
现在,这个工牌识别系统的准确率稳定在92%以上。虽然离工业级还有差距,但客户已经愿意签第二期合同了。上个月,我的工资涨到了24k。虽然不多,但至少,我不用再半夜担心断供了。
给同样迷茫的朋友几点建议
如果你也像我一样,身处低谷,想转型但不敢迈出第一步,我想分享几点血泪经验:
别等“准备好”再开始
我是在失业状态下学CV的。如果等“有时间”“有钱报班”“基础打好”,可能永远都不会开始。行动本身,就是最好的准备。从“能跑起来”开始,别追求完美
我的第一个版本识别率只有30%,但它能跑。老板看到demo,愿意给我时间迭代。在职场,可用性 > 完美性。善用“前端优势”切入CV
前端对用户体验敏感,知道用户怎么拍照、怎么交互。这反而是纯算法工程师缺乏的视角。你的跨界背景,其实是优势。书要读,但别死磕
《深度学习入门》我跳着读,《数字图像处理》只啃了前六章。先解决手头问题,再回头补理论。以战养学,效率最高。找人聊,别自己硬扛
武汉其实有不少AI社群。我在“光谷AI开发者联盟”认识了好几个朋友,有次半夜在群里问“OpenCV.js怎么裁剪ROI”,立马有人回复。孤独是最大的敌人。
写在最后:技术人的尊严,不在职位,而在解决问题的能力
今天,我又在光谷软件园加班。雨停了,楼下罗森关了灯。我提交了最后一段代码,合上电脑。走出大楼时,抬头看到满天星星——这座城市,终于不再让我感到窒息。
创业公司倒了,但我没倒。前端身份变了,但解决问题的心没变。算法、书籍、代码,这些都不是冰冷的工具,而是我在风雨中抓住的救命稻草。
如果你也在焦虑、迷茫、自我怀疑,请相信:每一个深夜敲下的代码,都在悄悄改变你的命运轨迹。
共勉。
—— 一个在武汉挣扎求生的前端,2024年6月于光谷

评论 0