Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv CNN之前的预处理:调整大小与裁剪_Opencv_Image Processing_Computer Vision_Deep Learning - Fatal编程技术网

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

Opencv CNN之前的预处理:调整大小与裁剪,opencv,image-processing,computer-vision,deep-learning,Opencv,Image Processing,Computer Vision,Deep Learning,我正在使用一个简单的神经网络(类似于AlexNet)对图像进行分类。作为预处理阶段,输入图像在送入网络之前会调整为256x256 最近,我遇到了以下问题:我处理的许多图像都具有非常高的分辨率(比如2000x2000)。在这种情况下,执行“硬调整大小”会导致信息严重丢失。例如,在原始图像中容易识别的100x100小脸在调整大小的版本中可能无法识别。在这种情况下,我可能更喜欢对2000x2000图像中的几种作物进行分类 我正在寻找一种方法来自动确定哪种类型的预处理是最合适的。理想情况下,它将能够识别

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

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

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

  • 尽可能提高计算效率。因此,像“滑动窗口”这样的东西可能被排除在外(只裁剪所有图像在计算上更便宜)
  • 在回忆和精确性之间取得平衡的能力
到目前为止,我考虑的是:

  • “低水平”(图像处理)方法:实现一种使用局部图像信息(如梯度)来区分高分辨率和低分辨率图像的算法
  • “高级”(语义)方法:通过预先训练的网络运行图像进行某种分割,并使用其oputput确定适当的预处理

  • 我想先试试第一种选择,但不确定该怎么做。在傅里叶域中我能做些什么吗?我可以试试OpenCv中的一些东西吗?有人有什么建议/想法吗?其他想法也非常受欢迎。谢谢

    如果您的程序已经可以检测到对象,那么您可以根据设置的比例阈值来计算检测到的对象(即面)的数量(该数量与整体图像分辨率之间的比例阈值),以确定是否调整大小或裁剪。如果您具有高分辨率且检测到的对象数量较少,则调整大小;如果具有高分辨率且检测到的对象数量较多,则进行裁剪。在调整大小和裁剪方面,如果使用框检测和勾勒图像,则可以使用框的坐标进行裁剪和调整大小。这意味着您只需要首先使用检测算法。在确定是否调整大小或裁剪程序是否已经可以检测到对象方面,您可以计算在设置的比例阈值中检测到的对象(即面)数量,该数量与整体图像分辨率之间。如果您具有高分辨率且检测到的对象数量较少,则调整大小;如果具有高分辨率且检测到的对象数量较多,则进行裁剪。在调整大小和裁剪方面,如果使用框检测和勾勒图像,则可以使用框的坐标进行裁剪和调整大小。这意味着您只需要首先使用检测算法。