首页 > 解决方案 > 如何使用 OpenCV 评估 LED 的状态?

问题描述

我刚开始使用 OpenCV,它是一个了不起的框架。对于我当前的项目,我需要通过查看设备的状态 LED 来检测设备的状态。目前,我对所有这些模块和可能性有点不知所措,而且肯定有不止一种方法可以完成工作。我希望有更多经验的人可以向我展示如何解决问题的策略。

但是让我们开始吧,这就是我要说的。从视频流中获取的典型静止帧: 标准情况下的视频输入

如您所见,相机通常坐在黑暗中,看着这个面板。我用绿色矩形标记了重要部分。从我到现在的理解,我认为这可能是第一种方法。如有误解请指正:

最后,我没有一台设备,而是数千台,并且有 4 或 5 种不同的设备类型。每种设备类型都有典型的固定 LED 排列,如上图所示。可以说,一个固定的签名,但每个 LED 可以处于不同的状态。

由于相机位置和角度可能会有所不同,我认为最好不要简单地定义与每个 LED 相关的像素。我在想这条链:

  1. 根据面板中 LED 的布局识别设备类型
  2. 裁剪图像并将图像倾斜到感兴趣的区域
  3. 将每个 LED 定位为单个属性(每种设备类型都有一组固定的属性 (LED))
  4. 遍历每个属性并识别其状态(例如关闭/黑暗、红色、绿色、黄色、白色)

因此,换句话说,我认为需要对对象进行分类,然后分析对象的属性(特征?)并将它们映射到具有离散状态的数据点。识别或分类应该使用倾斜的视角,因此可能需要将图像转换为标准化形状并同时裁剪它,以便您丢弃绿色矩形之外的所有内容。

某些 LED 可能已关闭,因此相机将看不到它们。在对象识别方面我将如何处理?

顺便说一句:上面的图像是从我用智能手机拍摄的视频中拍摄的,这肯定不是理想的,因为自动曝光开始了,LED 看起来很亮并产生光晕。最后,我想使用固定曝光的覆盆子相机(v2)来避免这种情况。我希望这个示例仍然有助于理解这个想法。

我的总体想法还可以还是有更好的方法?哪些技术和模块适合每个步骤?提前感谢您的想法和评论。

更新这是上面示例图像的原始版本

标签: pythonopencvobject-detectionfeature-detection

解决方案


推荐阅读