MMDetection库:推理速度通过单张 GPU 下的 fps(img/s) 来度量,越高越好。 为了与 Detectron2 保持一致,MMDetection所写的推理时间除去了数据加载时间。 对于 Mask RCNN,MMDetection去除了后处理中 RLE 编码的时间。 MMDetection在括号中给出了官方给出的速度。由于硬件差异,官方给出的速度会比MMDetection所测试得到的速度快一些。
Python __repr__()方法:显示属性。通常情况下,直接输出某个实例化对象,本意往往是想了解该对象的基本信息,例如该对象有哪些属性,它们的值各是多少等等。但默认情况下,我们得到的信息只会是“类名+object at+内存地址”,对我们了解该实例化对象帮助不大。和 __init__(self) 的性质一样,Python 中的每个类都包含 __repr__() 方法,因为 object 类包含 __reper__() 方法,而 Python 中所有的类都直接或间接继承自 object 类。
默认情况下,__repr__() 会返回和调用者有关的 “类名+object at+内存地址”信息。当然,我们还可以通过在类中重写这个方法,从而实现当输出实例化对象时,输出我们想要的信息。
python async 异步方法:async/await 是python3的新特性,可以进行协程运行。个人将他理解成多线程。程序在执行 IO 密集型任务的时候,程序会因为等待 IO 而阻塞,而协程作为一种用户态的轻量级线程,可以帮我们解决这个问题。
mmdetecion 中类注册的实现(@DETECTORS.register_module()):mmdetecion中,每一个类使用注册器(Registry)来进行注册,只要引入过该文件,就可以自动注册,在配置文件中使用(type=‘XXX’)的方式引用。
Neck是目标检测框架中承上启下的关键环节。它对Backbone提取到的重要特征,进行再加工及合理利用,有利于下一步head的具体任务学习,如分类、回归、keypoint、instance mask等常见的任务。
目标检测共享检测头shared_head:目标检测共享检测头在单阶段网络中比较常如anchor-based网络RetinaNet和anchor-free网络FCOS,其Neck部分都采用FPN网络,输出的各个尺度的特征层共享检测头,分别进行分类和回归任务。