pix2seq implement by Pytorch source code : moein-shariatnia/Pix2Seq paper : http://arxiv.org/abs/2109.10852 这次解析的源码是非官方实现的Pix2Seq,项目地址如上。教程直接看作者的Readme或者Object Detection w/ Transformers Pix2Seq in Pytorch | Towards AI,总体还是比较详细的。 模型即训练源码基本没什么问题,不过推荐先看完原始论文,不然可能在一些细节方面卡住。代码问题主要出现在测试文件中,问题如下。 Issue 1 2023.8.30 Tokenizer类的max_len参数用于限制单张图片的Obejct个数 labels = labels.astype('int')[:self.max_len] bboxes = self.quantize(bboxes)[:self.max_len] 而get_loaders中的collate_fn,把max_len作为输入序列的最大长度,这两处地方出现了矛盾(
整体思路 GeneralizedRCNNTransform主要用在图像进入backbone网络前的预处理以及预测结果输出时的后处理两个阶段.主要工作是图像的标准化处理以及resize操作. 函数细节 __init__ __init__函数主要输入图像的均值和方差,以及resize时图片的最小(大)边长范围 normalize 最后一行通过添加None这个维度可以增加一维维度,再利用广播机制对image的每个像素都进行操作. resize 这个方法首先调用_resize_image使用双线性插值调整图片大小,再通过resize_boxes调整对应的box大小. _resize_image 根据宽高限制来确定缩放比例,调用interpolate对图像进行双线性插值,这里在image又添加一个维度,是因为interpolate方法输入需要是4D图像 resize_boxes 按照缩放比例调整box坐标即可.这里torch.stack()会在tensor最后新增一个维度,这里就是在最后一个维度摞起来 batch_images 这
Faster RCNN框架图 图源: deep-learning-for-image-processing/pytorch_object_detection/faster_rcnn at master · WZMIAOMIAO/deep-learning-for-image-processing (github.com) 源码主要内容 Faster R-CNN源码阅读将从以下几个方面展开,详见其他文档 DataSet 网络框架 GeneralizedRCNNTransform RPN Predict Header 正负样本划分与采样 Loss函数 PostProcess Change Backbone(with FPN) 环境配置 Python 3.6/3.7/3.8 Pytorch>=1.6.0 pycocotools Ubuntu or Centos Use Gpu to train model more details see requirements.txt 文件结构 ├── backbone: 特征提取网络,
Axuanz
Updating as per fate.