Opencv CNN之前的预处理:调整大小与裁剪
我正在使用一个简单的神经网络(类似于AlexNet)对图像进行分类。作为预处理阶段,输入图像在送入网络之前会调整为256x256 最近,我遇到了以下问题:我处理的许多图像都具有非常高的分辨率(比如2000x2000)。在这种情况下,执行“硬调整大小”会导致信息严重丢失。例如,在原始图像中容易识别的100x100小脸在调整大小的版本中可能无法识别。在这种情况下,我可能更喜欢对2000x2000图像中的几种作物进行分类 我正在寻找一种方法来自动确定哪种类型的预处理是最合适的。理想情况下,它将能够识别,例如,单个面的高分辨率图像应调整大小,而群组的高分辨率图像应进行多次裁剪。就我而言,基本要求是:Opencv CNN之前的预处理:调整大小与裁剪,opencv,image-processing,computer-vision,deep-learning,Opencv,Image Processing,Computer Vision,Deep Learning,我正在使用一个简单的神经网络(类似于AlexNet)对图像进行分类。作为预处理阶段,输入图像在送入网络之前会调整为256x256 最近,我遇到了以下问题:我处理的许多图像都具有非常高的分辨率(比如2000x2000)。在这种情况下,执行“硬调整大小”会导致信息严重丢失。例如,在原始图像中容易识别的100x100小脸在调整大小的版本中可能无法识别。在这种情况下,我可能更喜欢对2000x2000图像中的几种作物进行分类 我正在寻找一种方法来自动确定哪种类型的预处理是最合适的。理想情况下,它将能够识别
- 尽可能提高计算效率。因此,像“滑动窗口”这样的东西可能被排除在外(只裁剪所有图像在计算上更便宜)李>
- 在回忆和精确性之间取得平衡的能力
我想先试试第一种选择,但不确定该怎么做。在傅里叶域中我能做些什么吗?我可以试试OpenCv中的一些东西吗?有人有什么建议/想法吗?其他想法也非常受欢迎。谢谢 如果您的程序已经可以检测到对象,那么您可以根据设置的比例阈值来计算检测到的对象(即面)的数量(该数量与整体图像分辨率之间的比例阈值),以确定是否调整大小或裁剪。如果您具有高分辨率且检测到的对象数量较少,则调整大小;如果具有高分辨率且检测到的对象数量较多,则进行裁剪。在调整大小和裁剪方面,如果使用框检测和勾勒图像,则可以使用框的坐标进行裁剪和调整大小。这意味着您只需要首先使用检测算法。在确定是否调整大小或裁剪程序是否已经可以检测到对象方面,您可以计算在设置的比例阈值中检测到的对象(即面)数量,该数量与整体图像分辨率之间。如果您具有高分辨率且检测到的对象数量较少,则调整大小;如果具有高分辨率且检测到的对象数量较多,则进行裁剪。在调整大小和裁剪方面,如果使用框检测和勾勒图像,则可以使用框的坐标进行裁剪和调整大小。这意味着您只需要首先使用检测算法。