pytorch 目标检测 图像预处理

Posted zi-wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytorch 目标检测 图像预处理相关的知识,希望对你有一定的参考价值。

Faster RCNN 和Retinanet在将图像数据输送到网络之前,要对图像数据进行预处理。大致上与博客提到的相同。
技术分享图片

事实上还可以采取第三步,将图片的宽和高扩展为32的整倍数,正如在Retinanet使用的。下面是一个简单的Pytorch数据预处理模块:

class Resizer():
    def __call__(self, sample, targetSize=608, maxSize=1024, pad_N=32):
        image, anns = sample[‘img‘], sample[‘ann‘]
        rows, cols = image.shape[:2]
        
        smaller_size, larger_size = min(rows, cols), max(rows, cols)
        scale = targetSize / smaller_size
        if larger_size * scale > maxSize:
            scale = maxSize / larger_size
        image = skimage.transform.resize(image, (int(round(rows*scale)), 
                                                 int(round(cols*scale))), 
                                         mode=‘constant‘)
        rows, cols, cns = image.shape[:3]
        
        pad_w, pad_h = (pad_N - cols % pad_N), (pad_N - rows % pad_N)
        new_image = np.zeros((rows + pad_h, cols + pad_w, cns)).astype(np.float32)
        new_image[:rows, :cols, :] = image.astype(np.float32)
        
        anns[:, :4] *= scale
        return {‘img‘: torch.from_numpy(new_image), 
                ‘ann‘:torch.from_numpy(anns),
                ‘scale‘:scale}

以上是关于pytorch 目标检测 图像预处理的主要内容,如果未能解决你的问题,请参考以下文章

使用 PyTorch 和 OpenCV 实现实时目标检测系统

视频目标检测

pytorch COCO2017 目标检测 DataLoader

Pytorch的conv2d实现图像边缘检测和均值模糊

基于pytorch实现bert4ner、图像分类、yolv5目标检测小工具

5. 使用PyTorch预先训练的模型执行目标检测