detectron2 为什么要封装Instance这个实例类？
主要是因为detectron2里detection的目标不是只为了预测box和mask. 广义的“object detection”问题是: identify图片中的物体，并输出他们的属性. 这个"属性"可以是class, box, mask, 也可以是任何用户定义的东西. 目前有实际用到的其他属性就包括person keypoint, rotated box (即斜框), multibox (一个物体用多个框描述), densepose, 3D voxel, depth, 以及各种产品上五花八门的需求.. Instances就是为了储存一组物体的任意属性。在设计上利用(or滥用)了python的动态特性：只要长度相同，可以在这个类里存任意类型的多个对象。那么一组物体及它们的所有属性就可以用一个Instances来描述。 相比于搞一个dict什么都往里塞，多了一点抽象上的方便; 相比于严格的一个个传参或使用typing, 多了一些research需要的灵活性。所以最后是这个样子。设计都是tradeoff, 但是为了不同的目标会有不同的选择.