
register_module()进行注册;_init_.py的__all__中注册;这个报错非常恶心,因为问题并没有出现在以上三点中,下面将详说。

我在mmdet3d的pulgin中加入了该类,并用mmseg进行了SEGMENTORS的注册,但是依旧在报register的错误,苦思冥想了很久时间,突然想,是否mmdet3d有区别于mmdet和mmseg的build类型(例如SEGMENTORS)?
于是我尝试将mmseg的SEGMENTORS更换为mmdet3d的SEGMENTORS:

果然,不报错了!(变成了ChannelMapper这个module的问题,说明MultiViewEncoderDecoder被正常build了)

于是,我直接连后边的ChannelMapper也改成了mmdet3d的NECKS,但是,关于ChannelMapper又有了诡异的情况,ChannelMapper默认又从mmseg中build,就意味着,其实,NECKS还是要从mmseg里import。。。

大无语,以后看报错使用build的类型就行。
但是,这也说明了mmdet3d中build的类型与mmdet和mmseg并不通用!!以后务必需要注意!