=====================
需求是变化的,但思考的过程是相同的。
我的很多日常工作包括:针对客户的要求集思广益,提出可能的计算机视觉解决方案,为演示制作快速原型,希望能赢得项目,并通过几个月的努力开发和部署这些解决方案。
从开发人员的角度看简历周期的实际基础知识
我最喜欢的工作部分: 收到一个需要用计算机视觉解决的问题,集思广益,找出最适合客户的解决方案,这是最初的高潮。我逐渐意识到这是一项宝贵的技能--知道什么时候使用什么。
我想通过一个例子来分享我处理计算机视觉用例的三个步骤。
*这个例子:*我家有一个很好的储藏室,里面装满了干果和坚果,需要不断补充。我的工作就是要确保它总是有货的。如何用计算机视觉和图像分析来完成这个任务?
第1步:询问,你将得到
通常情况下,传来的需求听起来和我上面说的例子一模一样。这个需求来自于一个不知道你所需要的技术细节的人。
一个要坚持的提示: 假设是开发者生存的祸根。你会建立一些东西,然后客户会不断地在你的解决方案中增加和减少一些东西。你需要一个简明、具体、完整的需求来工作,而得到这个需求的最好方法是通过提问。
这里有一组我经常问的问题:
- 将会使用什么相机?
- CV解决方案将如何接收图像?
- 你考虑的是什么样的部署环境?
- 它是一个实时的解决方案,还是每30秒抓取一次帧?
关于这个例子,几个具体的问题可能是:
- 确保储藏室有存货的具体含义是什么?当其中一个罐子不到一半的时候,解决方案是否应该发出警报?
- 应如何发送警报(电子邮件、短信、应用程序通知等)?
- 罐子会一直在同一个位置,还是会到处移动?
- 你能提供一份将出现在茶水间的干果和坚果的清单,以及样品图片吗?
根据这些问题,客户会进一步阐述,而你也会对目标有一个更好的了解。
示例客户的回答: 用户将在一个移动应用程序内拍照,该应用程序将对储藏室进行盘点,并立即告诉用户哪些干果和坚果需要补货,并基本上创建一个购物清单,以WhatsApp消息的形式发送给他们。这些罐子并不是静态的,可以按任何顺序排列。有十种不同类型的干果和坚果,同一种零食可能有多个罐子。
第2步:最小可行产品的心态
什么是最小可行产品? 它是一个产品或服务的基本版本,是以最小的特征和功能开发的。就计算机视觉而言,它可能是一个精度不够高的解决方案。
以数据为中心的深度学习是未来的趋势,这意味着拥有最小可行产品(MVP)的心态是至关重要的。客户也需要接受这个观点。
MVP的销售宣传: 计算机视觉模型的好坏取决于它们所训练的数据(图像),而没有比生产数据更好的数据。在发布MVP的几周后,收集的生产数据可以用来重新训练和更新模型。
MVP思维也可能意味着最初发布的解决方案不是基于深度学习模型的。
关于这个例子: 茶水间存货的MVP可以基于OpenCV异议检测(用于检测罐子),并使用HSV值范围来识别基于颜色的干果和坚果。此外,罐子的边界框可用于参考,以检查零食是否低于罐子的一半位置。如果是,那么该识别的零食可以被添加到购物清单中进行补货。
示例MVP
例子MVP两周后: 收集的生产数据可以用来训练两个深度学习物体检测模型;一个用于罐子检测,一个用于干果和坚果检测。干果和坚果的边界盒和罐子的边界盒可以进行比较,以了解可用的库存量。
更新的MVP
第3步:为意外情况做计划
人工智能和机器人还没有占领世界是有原因的。人工智能远非完美,即使环境中最轻微的变化也会导致问题和错误的预测。例如,计算机视觉系统可能无法在照明条件改变时准确识别物体,或在改变相机角度时。
在开始实际开发过程之前,计划一些时间来做背景研究,对图像进行实验,尝试不同的想法,并开发一个快速原型,总是一个好主意。花时间做这些步骤可以帮助识别潜在的问题,并确定解决这些问题的最佳方法。
这有什么帮助? 这种实验也可以帮助提出创新的想法,测试不同的算法,以达到更好的准确性和性能。这是一个很好的方法来确定数据中的任何差距或算法中的错误,并进行必要的调整以提高系统的性能。
是时候开始了
就这样,你已经具备了接近计算机视觉用例的前三个步骤。请永远记住,保持你的眼睛和耳朵对人工智能的最新进展的关注。谢谢你的阅读和学习。