CNN之前的预处理:调整大小与裁剪

时间:2017-03-06 13:45:30

标签: opencv image-processing computer-vision deep-learning

我正在使用一个简单的神经网络(类似于AlexNet)将图像分类。作为预处理阶段,输入图像在被送入网络之前会调整为256x256。

最近,我遇到了以下问题:我处理的许多图像都具有非常高的分辨率(例如,2000x2000)。在这种情况下,执行“硬调整大小”会导致严重的信息丢失。例如,在原始图像中容易识别的小型100x100面部在调整大小的版本中将无法识别。在这种情况下,我可能更喜欢拍摄2000x2000图像的几种作物并对每种作物进行分类。

我正在寻找一种方法来自动确定哪种类型的预处理最合适。理想情况下,它能够识别,例如,单个面的高分辨率图像应该调整大小,而人群的高分辨率图像应该裁剪几次。基本要求,就我而言:

  • 尽可能计算效率。因此,可能会排除诸如“滑动窗口”之类的东西(仅仅裁剪所有图像在计算上更便宜)。
  • 能够在召回和精确度之间取得平衡

到目前为止我考虑过:

  1. “低级”(图像处理)方法:实现使用局部图像信息(如梯度)的算法来区分高分辨率和低分辨率图像。
  2. “高级”(语义)方法:通过预先训练的网络运行图像以进行某种分段,并使用其光输出来确定适当的预处理。
  3. 我想首先尝试第一个选项,但不确定如何去做。傅立叶域有什么我可以做的吗? OpenCv中的东西我可以试试吗?有没有人有任何建议/想法?其他想法也非常受欢迎。谢谢!

0 个答案:

没有答案