【问题标题】:Machine Learning: sign visibility机器学习:标志可见性
【发布时间】:2013-12-08 06:18:13
【问题描述】:

我在需要确定飞行员能见度条件的机场工作。

为此,我们在跑道上每隔 200 米放置一个标志,以便我们确定能见度的距离。我们有多条跑道,需要每小时检查一次能见度。

目前,能见度检查是由人工手动完成的,人工查看来自每条跑道末端的摄像头的照片。所以它可能很乏味。

我是一名程序员,对机器学习几乎没有经验,但这听起来是一个很容易实现自动化的问题。我应该如何解决这个问题?我应该学习哪些算法? OpenCV 会帮助我吗?

谢谢!

【问题讨论】:

  • 你能发布一些图片和相关的可见性测量吗?

标签: opencv machine-learning computer-vision computer-science


【解决方案1】:

我认为这可以使用计算机视觉技术实现自动化。 openCV 可以使实现更容易。如果所有标志都相似,那么我们可以训练我们的程序在特定条件(灯光)下识别标志。然后,我们可以使用经过训练的分类器,使用简单的脚本每隔一小时检查一次标志的可见性。 openCV 中已经有类似 harr 的特征提取。您可以使用训练分类器,该分类器将输出 .xml 文件并使用该 .xml 文件定期检测标志。 我使用 openCV 完成了一个类似的项目 RTVTR(实时车辆跟踪和识别),效果很好。 http://www.youtube.com/watch?v=xJwBT76VEZ4

【讨论】:

    【解决方案2】:

    回答您的问题:

    我应该如何解决这个问题?

    这取决于您想要/需要获得的结果。这是一个“爱好”项目(即使与工作相关)还是您需要构建机器视觉系统来解决问题,它是否应该符合某些法规或标准?

    我应该学习哪些算法?

    我对你的问题很感兴趣,但我不是气象学领域的专家,所以搜索相关文献对我来说是一项耗时的任务......所以我保留更新这部分答案将来。我认为在解决问题时会涉及到不同的算法,有些非常通用,例如image segmentation 的算法,有些非常具体,例如如何测量可见性。

    更新:文献中搜索的关键词之一是Meteorological Visibility,例如

    HAUTIERE, Nicolas, et al. Automatic fog detection and estimation of visibility distance through use of an onboard camera. Machine Vision and Applications, 2006, 17.1: 8-20.

    LENOR、斯蒂芬等人。从路面亮度曲线估计气象能见度的改进模型。在:模式识别。施普林格柏林海德堡,2013。 184-193。

    OpenCV 会帮助我吗?

    是的,我认为 OpenCV 可以为您提供一个起点。

    一个朴素算法的想法:

    1. 分割图像以获得属于标志和背景的像素区域。
    2. 根据某些程序计算可见性度量,该度量由一个函数计算,该函数将所有标志的区域和背景区域作为输入。

    如果符号始终位于图像内相同的固定和已知位置,则分割可以大大简化。

    可见性的度量显然是算法的核心,它可以通过多种方式执行......

    您可以采用一种简单的方法,根据标志和背景区域的平均灰度级,使用数学公式计算可见度。

    您可以采用一种更复杂且面向机器学习的方法,在这种方法中,您可以实施一种模仿当前基于人类的程序的算法。在这种情况下,您的问题可以定义为supervised learning 任务:您有一组训练示例,每个训练示例都是由 a) 跑道照片(输入)和b)与该照片相关并由人类计算的可见性(期望的输出)。然后通过训练集对系统进行训练,当你输入一张新照片作为输入时,它会给你返回可见度测量值。我认为您有过去的可见性测量(METAR?)的日志,如果您也保存了相关图像,您将已经拥有相关数量的数据,以便构建 training settest set

    卷积神经网络时代的更新

    你,杨等人。相对 CNN-RNN:从图像中学习相对大气能见度。 IEEE 图像处理汇刊,2018 年。

    【讨论】:

      【解决方案3】:

      Tensor 和 uvts_cvs 的回复都非常有帮助。虽然 opencv 主要旨在识别符号模式甚至将其从背景中分割出来,但当您提取问题中的核心特征:可见性时,您可能仍需要在训练集中包含背景信号。我假设手动检查可见性是基于图像对比度,如果是这样,那么信噪比 (SNR) 或对比度噪声比 (CNR) 是学习中的一个很好的特征。定义了一个阈值来分类“可见-1”和“不可见-0”。 SNR/CNR 可以自动获取,特别是如果您的标志位置和大小在您的相机图像中是固定的。

      【讨论】:

        【解决方案4】:

        收集一大堆照片和视频,并在Kaggle 上提出挑战。我相信很多人都想尝试解决它,即使奖励不会很高。

        【讨论】:

          【解决方案5】:

          您可以使用openCV的模板匹配功能: http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html

          模板在哪里是标志。如果您设法找到正确的匹配项,则该标志是可见的。我认为您还可以从该代码中了解图像中符号的比例。

          【讨论】:

            【解决方案6】:

            由于这是一个非常受控且静态的环境,因此您有完美的条件来使用基于视觉的方法来估计能见度。尽管如此,要决定采用哪种方法并不容易。在我的论文中,我正在深入审查这个主题,以解决道路交通控制不佳的环境。请参阅:LENOR, Stephan. Model-Based Estimation of Meteorological Visibility in the Context of Automotive Camera Systems. 2016. Doktorarbeit. (https://archiv.ub.uni-heidelberg.de/volltextserver/20855/1/20160509_lenor_thesis_final_print.pdf)。

            我看到你可以跟进的两个主要方向:

            1. 基于模型的方法:优点:不太依赖于您非常具体的设置。您不需要收集大量数据。
            2. 基于数据的方法/ML:优点:可以隐藏不同光线和天气条件的整体复杂性。如果现在有人在做这项工作,那么您似乎拥有很好的数据来源。非常有前途,无需太多工程努力(只需使用几层左右的轻量级 CNN)。

            您也可以将两者结合,等等。如果您仍然对解决方案感兴趣,可以再次与我联系,我很乐意进行更深入的咨询。

            【讨论】:

              猜你喜欢
              • 2010-12-14
              • 2013-08-05
              • 2019-01-11
              • 2021-04-15
              • 2022-07-06
              • 2017-11-05
              • 2019-08-01
              • 2017-07-20
              • 1970-01-01
              相关资源
              最近更新 更多