使用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第三方库


热门话题
Java中的开源字典组件   即使在成功执行删除查询之后,java更新的列表也不会显示在jsp页面中   java Apache:无法启动上下文路径/网站上的失败应用程序   java验证CSV中的特定列   对于具有专用内存的java应用程序,最小堆大小低于最大堆大小有意义吗?   java将数组中的值转换为多维数组   java在给定程序中,垃圾收集器在对象被取消引用之前正在运行。。。使用jre 7(32位)   java在运行时动态刷新文件夹   eclipse如何解决“java.net.BindException:地址已在使用:JVM_Bind”错误?   Java数组与数组   每次任务完成任务时,Java多线程都会安排任务   java部分编译时使用maven编织第三方jar   java Dokku单一回购中的多个应用程序   用apachevelocity生成javac/C++语言文件   java如何使用spring应用程序上下文中的属性文件实例化列表   java访问智能卡文件结构   具有GlobalMethodSecurity的java自定义UserDetailService循环引用   java如何集成Spring和JSF