|  |  | 
					
						
						|  | from detectron2.utils.registry import Registry | 
					
						
						|  |  | 
					
						
						|  | PROPOSAL_GENERATOR_REGISTRY = Registry("PROPOSAL_GENERATOR") | 
					
						
						|  | PROPOSAL_GENERATOR_REGISTRY.__doc__ = """ | 
					
						
						|  | Registry for proposal generator, which produces object proposals from feature maps. | 
					
						
						|  |  | 
					
						
						|  | The registered object will be called with `obj(cfg, input_shape)`. | 
					
						
						|  | The call should return a `nn.Module` object. | 
					
						
						|  | """ | 
					
						
						|  |  | 
					
						
						|  | from . import rpn, rrpn | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | def build_proposal_generator(cfg, input_shape): | 
					
						
						|  | """ | 
					
						
						|  | Build a proposal generator from `cfg.MODEL.PROPOSAL_GENERATOR.NAME`. | 
					
						
						|  | The name can be "PrecomputedProposals" to use no proposal generator. | 
					
						
						|  | """ | 
					
						
						|  | name = cfg.MODEL.PROPOSAL_GENERATOR.NAME | 
					
						
						|  | if name == "PrecomputedProposals": | 
					
						
						|  | return None | 
					
						
						|  |  | 
					
						
						|  | return PROPOSAL_GENERATOR_REGISTRY.get(name)(cfg, input_shape) | 
					
						
						|  |  |