torchvision在更新到0.3版本后,增添了很多新的功能,其中就包括整个目标检测算法/分割算法模块。这里打算将Faster-rcnn代码从torchvision分离出来,并分组件记录下Pytorch torchvision官方实现的Faster-rcnn代码并做记录和注释。
注:各个模块的代码均可以在0.3.0+版本的torchvision中找到
torchvision github地址:https://github.com/pytorch/vision
目录
数据读取
准备工作
读取coco数据集
创建自己的data transform
定义ConvertCocoPolysToMask
定义Compose
定义RandomHorizontalFlip
定义ToTensor
使用自己定义的transforms
首先要确保torchvision升级到0.3.0版本以上,另外加载coco数据集需要用到pycocotools api,需要提前安装。没有安装的可以利用下述命令安装:
torchvision中实现了coco数据集的读取api ,其定义如下:
(root, annFile, transform=None, target_transform=None, transforms=None)
其中参数定义:
- root : coco图片路径
- annFile : 标注文件路径
- transform : 图像转换(用于PIL)
- target_transform : 标注转换
- transforms : 图像和标注的转换
一个简单的pytorch coco dataloader创建及可视化程序如下:
效果:

注意由于coco中的图片大小不一致,因此需要使用BatchSampler并重新定义collate_fn。
注意
定义ConvertCocoPolysToMask
ConvertCocoPolysToMask将每个image对应的target转化成为一个dict,这个dict中保存了该图片的所有标注信息,其中对于目标检测的有用信息是boxes和labels,其如下:
定义Compose
compose用于执行对image和target的transform,对应于torchvision.transforms中的Compose()类
定义RandomHorizontalFlip
RandomHorizontalFlip实现对image和target的水平翻转
定义ToTensor
ToTensor将image转化为Pytorch Tensor类型:
使用自己定义的transforms
我们将上述函数定义在transforms.py中,就可以使用自己定义的transfrom了。在使用的时候只需要将coco_dataset的定义改为如下即可:
至此,我们就完成了通过torchvision读取coco数据集的步骤。
到此这篇pointrcnn训练自己的模型(pointrcnn代码)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/14691.html