|
from detectron2.config import LazyCall as L |
|
from detectron2.layers import ShapeSpec |
|
from detectron2.modeling.poolers import ROIPooler |
|
from detectron2.modeling.roi_heads import KRCNNConvDeconvUpsampleHead |
|
|
|
from .mask_rcnn_fpn import model |
|
|
|
[model.roi_heads.pop(x) for x in ["mask_in_features", "mask_pooler", "mask_head"]] |
|
|
|
model.roi_heads.update( |
|
num_classes=1, |
|
keypoint_in_features=["p2", "p3", "p4", "p5"], |
|
keypoint_pooler=L(ROIPooler)( |
|
output_size=14, |
|
scales=(1.0 / 4, 1.0 / 8, 1.0 / 16, 1.0 / 32), |
|
sampling_ratio=0, |
|
pooler_type="ROIAlignV2", |
|
), |
|
keypoint_head=L(KRCNNConvDeconvUpsampleHead)( |
|
input_shape=ShapeSpec(channels=256, width=14, height=14), |
|
num_keypoints=17, |
|
conv_dims=[512] * 8, |
|
loss_normalizer="visible", |
|
), |
|
) |
|
|
|
|
|
|
|
|
|
model.proposal_generator.post_nms_topk = (1500, 1000) |
|
|
|
|
|
model.roi_heads.box_predictor.smooth_l1_beta = 0.5 |
|
|