使用OpenCV替换Torchvision变换的dropin

opencv-transforms的Python项目详细描述


opencv_变换

此存储库旨在更快地替换Pytorch's Torchvision augmentations。此回购使用OpenCV为PyTorch计算机视觉管道提供快速图像增强。我写这段代码是因为基于枕头的Torchvision变换由于图像增强速度慢而使我的GPU快饿死了。在

要求

  • OpenCV的工作装置。使用OpenCV 3.4.1、4.1.0版进行测试
  • 在Windows10和Ubuntu18.04上测试过。有证据表明OpenCV不能很好地处理Linux/MacOS上的多线程,例如pytorch中的num_workers >0。我还没碰到这个问题。在

安装

opencv_transforms现在是一个pip包!简单使用

  • pip install opencv_transforms

使用

打破零钱!请注意导入语法!

  • from opencv_transforms import transforms
  • 从这里开始,几乎所有的东西都应该和原来的一样工作{}。在

示例:调整图像大小

importnumpyasnpimage=np.random.randint(low=0,high=255,size=(1024,2048,3))resize=transforms.Resize(size=(256,256))image=resize(image)

应该比PIL快1.5到10倍。见基准

性能

  • 在OpenCV中,大多数转换速度在1.5倍到4倍之间。在OpenCV中,大图像大小调整速度快10倍。在
  • 要复制以下基准测试,请下载Cityscapes dataset。在
  • 在笔记本bencharming_v2.ipynb我用HDF5文件包装了Cityscapes默认目录,以便更快地读取。在

resizerandom cropchange brightnesschange brightness and contrastchange contrast onlyrandom horizontal flips

当您将多个转换组合在一起时,这些更改开始累积。 composed transformations

托多

  • [x] 所有当前实现的torchvision转换的初始提交
  • [x] 城市景观基准
  • []使resample标志在RandomRotationRandomAffine上实际做些什么
  • []加快饱和度和色调的增强。目前,最快的方法是转换成PIL图像,执行和Torchvision相同的增强,然后再转换回np.ndarray公司在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Docker&SeleniumJava:无法在Docker容器上运行的chrome浏览器中上载图像/文件   在python中运行java命令   Java垃圾收集器异常行为   java java是否根据底层操作系统执行字节码级优化?   java是否可以休眠自定义查询返回映射而不是列表?   java Spring引导RabbitMQ接收器Jackson反序列化到POJO   apache flex在ActionScript3中创建对象相等“HashMap”作为java HashMap   java如何在Eclipse集成中切换JProfiler启动器   缓存JSP页面结果的java最佳实践?   java集成jaxb绑定文件,使用CXF生成基于WSDL的客户端   java为什么在上传操作结束之前,客户端没有检测到HttpServletResponse的PrintWriter内容?   java在接口内创建类和在类内创建接口有什么用   java向文件写入错误Android Studio   java合并多个RealmList并对结果列表排序?   谷歌API视觉java。lang.NoSuchMethodError   java如何使用逗号分别存储每个值,然后将它们存储到单独的数组中?