【问题标题】:Neural network topology for object recognition on aerial photos (computer vision)用于航空照片对象识别的神经网络拓扑(计算机视觉)
【发布时间】:2014-09-01 15:51:35
【问题描述】:

我的目标是在航拍照片上识别建筑物的足迹。听说机器视觉(ImageNet 大规模视觉识别挑战)的最新进展后,我认为我可以(至少)尝试使用神经网络来完成这项任务。

谁能告诉我这种网络的拓扑应该是什么?我想它应该有与输入一样多的输出(这意味着图片中的所有像素),因为我想识别建筑物的轮廓以及它们(至少是近似的)在图片上的位置。

我猜输入图片应该是标准尺寸,每个像素都标准化为灰度或 YUV 颜色空间(每种颜色 1 个值),并且可能是标准化分辨率(每个像素应该代表实际的固定尺寸)。我不确定图片是否可以在输入网络之前以任何其他方式进行预处理,也许是先提取边缘?

棘手的部分是应该如何表示输出以及如何训练网络。仅使用例如output=0 表示建筑物占地面积内的像素,而 1 表示建筑物外的像素,这可能不是最好的主意。也许我应该教网络识别建筑物的边缘,这样代表建筑物边缘的像素应该有 1 和 0 的其余像素?

有人可以就网络拓扑/输入/输出格式提出一些建议吗? 或者这个任务难度太大了,我有0个机会解决?

【问题讨论】:

  • 这是一项艰巨的任务。我尝试使用 OpenCV 和 MATLAB 分类器级联检测航拍图像中的建筑物,但效果不佳。我也尝试过使用 Neuroph 并且.. 是 Encog 吗?但它再次没有很好地工作。我建议您首先成功训练一个能够识别“此图像是建筑物”或“此图像不是建筑物”的网络(应将图像裁剪为建筑物)。这可以让你更好地开始更艰巨的任务。您还可以比较哪个可以提供更好的结果:识别边缘检测到的图像或颜色。

标签: computer-vision neural-network object-recognition


【解决方案1】:

我认为我们需要更好地定义“建筑物”。如果要进行建筑物“检测”,即检测任何形状/大小的建筑物的存在,这对于级联分类器来说是困难的。不过,您可以尝试以下方法:

  1. 将一组已知图像划分为固定大小的块。
  2. 将每个块标记为“建筑”、“非建筑”或 “边界(包括部分 两者)”
  3. 提取基本特征,如强度直方图、边缘、 霍夫线、HOG 等。

  4. 根据这些特征训练 SVM 分类器(您也可以尝试其他的,但我根据经验推荐 SVM)。

现在您可以再次对图像进行分区,并使用经过训练的分类器来获得结果。必须结合结果来识别建筑物。

这仍然需要一些测试来获得正确的参数(直方图的大小、SVM 分类器的参数等)。

我已经使用这种方法来检测图像上的“食物”区域。准确率低于 70%,但我猜它对建筑物会更好。

【讨论】:

    猜你喜欢
    • 2018-03-16
    • 2017-10-10
    • 2014-04-03
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    相关资源
    最近更新 更多