从二本到大厂:我在成都靠一个计算机视觉项目,把月薪从15k干到22k
作者:老李,坐标成都,二本毕业,现某一线大厂Java后端开发。房租3500,老婆是小学老师,养了一只叫“Tomcat”的猫。
上周五晚上十点半,我还在公司加班改一个图像识别接口的bug。窗外玉林路的烧烤摊刚收摊,空气中飘着孜然味儿,而我的屏幕右下角弹出一条微信消息:
“老公,你那个‘智能相册’项目上线了吗?我朋友圈都刷屏了!”
我苦笑了一下,回了个“快了”,顺手点开手机相册——果然,好几个同事都在晒系统自动分类的“宝宝照”“旅行照”“美食照”。那一刻,我突然想起一年前那个在出租屋里啃泡面、被拒了第7次的自己。
今天,我想和大家聊聊这个让我成功逆袭的计算机视觉实战项目。它不仅让我进了大厂,更让我深刻理解了:产品、算法、后端,三者如何像齿轮一样咬合转动。
一、起点:二本学历 + 成都低薪 = 焦虑拉满
时间回到2022年10月。
那时我在成都一家本地软件公司做Java开发,月薪15k,房租3500,老婆刚怀孕。每天写CRUD接口、调第三方支付、修线上bug,日子过得像温水煮青蛙。
但心里总有个声音在问:“就这样了吗?”
那天下午,HR找我谈话,说公司要裁员,我这种“非核心岗”优先考虑。走出会议室,我站在IFS楼下,看着春熙路的人流,脑子里全是房贷、奶粉钱、产检费用……当时真的很焦虑,差点想放弃转行送外卖。
回家路上,我刷到一篇技术文章:《大厂都在布局AIGC,计算机视觉成新风口》。配图是一个智能相册APP,能自动识别人脸、场景、物体,还能生成回忆视频。
我眼前一亮——这不就是个产品 + 算法 + 后端的完美结合体吗?
二、动手:从零开始搞一个“智能相册”项目
说干就干。当晚我就和老婆商量:“我想辞职三个月,全职做一个CV项目,赌一把。”
她沉默了几秒,说:“你确定能行?要是失败了,我们怎么办?”
我说:“最多回老家开滴滴,但我得试一次。不然这辈子都会后悔。”
于是,2022年11月初,我正式开启“智能相册”项目。目标很明确:做出一个能跑通全流程的Demo,证明我能打通产品、算法、后端三端。
1. 产品设计:不是画原型,而是解决真实痛点
很多人以为做产品就是画Axure、写PRD。但对我这种没产品经理背景的人来说,产品思维 = 用户视角 + 极简MVP。
我翻遍了自己和老婆的手机相册,发现几个痛点:
- 宝宝照片散落在几千张图里,想找“满月照”得翻半天
- 旅行照片没标签,回看时记不清是哪次去的九寨沟
- 老人不会用相册搜索,只能靠手动翻
于是,我定了三个核心功能:
- 人脸聚类:自动把同一个人的照片归为一组(比如“宝宝”“老婆”“我妈”)
- 场景识别:打上“海滩”“火锅店”“雪山”等标签
- 时光轴:按时间+事件自动生成回忆集
📌 关键点:我不追求“高大上”,只解决最痛的三个问题。这就是产品思维——不是功能堆砌,而是价值聚焦。
2. 算法选型:别死磕模型,先跑通流程
作为Java后端,我对CV完全是小白。第一周光装PyTorch就重装了三次系统。
后来我学乖了:不要重复造轮子,用现成API+微调。
- 人脸识别:用Face++的免费API(每天1000次调用够测试)
- 场景识别:Hugging Face上的
resnet50预训练模型,fine-tune了500张本地照片 - 人脸聚类:用OpenCV提取特征向量,再用K-Means聚类
代码写得丑没关系,关键是让数据流起来。我记得有天凌晨三点,终于看到控制台输出:
[INFO] 聚类完成!共识别3个人物:宝宝(87张), 老婆(64张), 我妈(29张)
那一刻,我激动得差点吵醒熟睡的老婆——原来算法真的能“看懂”照片!
3. 后端架构:Java人的主场,但得拥抱新东西
这才是我的舒适区。但这次,我刻意逼自己跳出Spring Boot CRUD。
整个后端我拆成三层:
- 接入层:Spring Boot + WebFlux(异步处理图片上传)
- 服务层:
- 图片存储:MinIO(自建对象存储,省下阿里云OSS的钱)
- 任务队列:RabbitMQ(图片分析是耗时操作,必须异步)
- 缓存:Redis(人脸ID映射缓存,避免重复调API)
- 算法调度层:Python Flask微服务(专门暴露算法接口,Java通过HTTP调)
最坑的是图片元数据同步。用户上传一张图,后端要:
- 存MinIO
- 发消息到RabbitMQ
- Python服务消费消息,调算法
- 结果写回MySQL
- 前端轮询状态
中间任何一环断了,用户体验就崩。我为此写了整整一周的补偿机制和重试逻辑。
💡 经验:后端不仅是“写接口”,更是数据流的 orchestrator(编排者)。尤其在AI项目里,你要让算法乖乖听话,而不是被它牵着鼻子走。
三、转折:靠这个项目,拿下大厂Offer
2023年2月,我把项目部署到阿里云ECS(学生机99元/年),做了个简洁的Web界面,还录了个3分钟演示视频。
然后,我开始海投简历。重点投两类岗位:
- AI平台后端开发
- 智能应用后端工程师
很多HR看到“二本”直接pass。但有家公司(后来知道是字节)的面试官看了我的GitHub,说:“你这个项目,能把算法、产品、工程串起来,很难得。”
三面时,面试官问了个灵魂问题:
“如果算法识别错了‘火锅’为‘烧烤’,你怎么处理?”
我没答“优化模型”,而是说:
“首先,后端要记录错误样本,反馈给算法团队;其次,在产品层面加个‘纠错按钮’,用户点一下就能修正,同时这个样本进入再训练队列;最后,对高频错误场景,我们可以做规则兜底——比如检测到‘毛肚’‘鸭血’关键词,强制打上火锅标签。”
面试官笑了:“你考虑得很产品化啊。”
一周后,HR打电话谈薪资。我说期望22k,她犹豫了一下:“成都base一般18k起……”
我直接说:“我理解。但我这个项目证明了我能独立交付AI闭环产品,而且成本可控。您看看GitHub的commit记录,过去三个月我每天平均commit 3次。”
最终,offer定在22k。 比之前涨了7k,涨幅46%。
签完合同那晚,我和老婆去吃了顿火锅(就是项目里识别的那种)。她说:“值了。”
四、反思:为什么这个项目能成?
复盘下来,我觉得成功的关键不是技术多牛,而是角色切换能力:
1. 产品视角:别自嗨,要解决真问题
很多程序员做项目喜欢堆技术:Transformer、GAN、YOLOv8……但用户只关心“能不能帮我找到宝宝照片”。技术是手段,不是目的。
2. 算法协作:后端不是调包侠
以前我以为调个API就行。但实际中,算法输出不稳定、延迟高、格式乱。后端必须做适配层、熔断、降级。比如当Face++ API超时,就退化到本地OpenCV方案(精度低但可用)。
3. 工程落地:细节决定生死
- 图片太大?前端压缩 + 后端分片上传
- 分析太慢?加进度条 + 推送通知
- 存储太贵?冷热数据分离,3个月前的图转低频访问
这些看似琐碎,却是产品能否上线的关键。
五、给同样在奋斗的你:几点真心建议
如果你也像曾经的我一样:
- 学历普通
- 在小城市
- 想进大厂但没方向
不妨试试这条路:
✅ 做一个“三角项目”
选一个能同时涉及产品、算法、后端的小场景。比如:
- 智能简历解析(PDF → 结构化数据 → 推荐岗位)
- 商品图搜同款(上传图 → 特征提取 → 相似商品)
- 老照片修复(上传 → 超分 + 上色 → 下载)
重点不是多复杂,而是展示你串联能力。
✅ 用低成本验证想法
别一上来就买GPU服务器。用:
- 免费API(百度AI、腾讯优图)
- Hugging Face模型
- 阿里云学生机
- 本地Docker模拟
花小钱,办大事。
✅ 把过程写出来
我每完成一个模块,就在GitHub写README,记录踩坑。面试时,这些就是你的“证据链”。比起空谈“熟悉分布式”,一个跑通的项目更有说服力。
最后:成都的烟火气,也是奋斗者的底气
现在,我依然住在成都,房租还是3500。下班后可以去镋耙街吃碗豆花,周末带老婆去青城山爬山。这里生活成本低,节奏慢,但不代表不能做出前沿的东西。
那个“智能相册”项目,后来被我开源了,GitHub star不多,但每次收到issue说“帮我省了整理照片的时间”,我都觉得值。
技术人的价值,不在于你在哪座城市,而在于你解决了什么问题。
如果你也在低谷,请相信:
一个用心打磨的项目,
一段真实解决问题的经历,
足以打破学历、地域、出身的天花板。
共勉。
P.S. 项目地址:github.com/yourname/smart-album(名字虚构,但思路真实)
P.P.S. Tomcat最近学会了用爪子按键盘,经常误删我代码。但它提醒我:生活再卷,也要留点温柔给自己。

评论 0