aim-uofa / AdelaiDet

AdelaiDet is an open source toolbox for multiple instance-level detection and recognition tasks.
https://git.io/AdelaiDet
Other
3.38k stars 648 forks source link

direct pose release #47

Open Dantju opened 4 years ago

Dantju commented 4 years ago

when the direct pose will be released?

tianzhi0549 commented 4 years ago

@Dantju We will release it but we do not have an ETA now. Please stay tuned.

Dantju commented 4 years ago

How long will it take?

Dantju commented 4 years ago

@tianzhi0549 I train the e2e_keypoint_rcnn_R_50_FPN_1x.yaml,but get error while test,It's caused by direct pose not in code?

tianzhi0549 commented 4 years ago

@Dantju Sure. It's the config for Mask R-CNN based keypoint detection.

Dantju commented 4 years ago

@tianzhi0549 so how can i change it to detect person and detect keypoint ,and how long will direct pose be released

tianzhi0549 commented 4 years ago

@tianzhi0549 We do not have an estimated date for DirectPose release. You can try to change the number of outputs of FCOS to adapt it to keypoint detection.

Dantju commented 4 years ago

@tianzhi0549 how long will it take to release directpose ,several month,several weeks or will not release,I find it‘s hard to modify code

tianzhi0549 commented 4 years ago

@Dantju we will release our code if our paper gets accepted. It might take a few months.

Dantju commented 4 years ago

@tianzhi0549 I said this paper has been accepted by CVPR

Comments: 12 pages
Subjects: Computer Vision and Pattern Recognition (cs.CV)
Cite as: arXiv:1911.07451 [cs.CV]
  (or arXiv:1911.07451v2 [cs.CV] for this version)
tianzhi0549 commented 4 years ago

@Dantju it was not accepted by CVPR.

Dantju commented 4 years ago

@tianzhi0549 so sad,can u release part code,may be KPAlign is important,can u release code without KPAlign

tianzhi0549 commented 4 years ago

@Dantju Sorry, we can't. But please feel free to ask your questions if you implement it by yourself.

Dantju commented 4 years ago

@tianzhi0549 ,I add keypoint in fcos_head.py as follow:
def forward(self, x): logits = [] bbox_reg = [] keypoint = [] centerness = [] centerness_kps = [] for l, feature in enumerate(x):

print("##############fcos head###############")

        # print(feature.shape)
        # print("###############fcos head##############")
        cls_tower = self.cls_tower(feature)
        logits.append(self.cls_logits(cls_tower))
        box_tower = self.bbox_tower(feature)
        keypoint_tower = self.keypoint_tower(feature)
        centerness.append(self.centerness(box_tower))
        centerness_kps.append(self.centerness_kps(keypoint_tower))
        bbox_reg.append(torch.exp(self.scales[l](
            self.bbox_pred(box_tower)
        )))
        keypoint.append(torch.exp(self.scales[l](
            self.keypoint_pred(keypoint_tower)
        )))

    return logits, bbox_reg, centerness, keypoint

and in fcos.py: def _forward_train(self, locations, box_cls, box_regression, centerness, keypoint,targets, image_sizes): loss_box_cls, loss_box_reg, loss_centerness = self.loss_evaluator( locations, box_cls, box_regression, centerness, targets )

    # proposals = []

    boxes = self.box_selector_train(
        locations, box_cls, box_regression, 
        centerness, image_sizes, targets
    )

    # print("###########fcos#######################")
    # print(np.array(boxes).shape)
    # print("############fcos#######################")

    with torch.no_grad():
        proposals = self.kps_loss_evaluator.subsample(boxes, targets)

    # print("##################################")
    # print(np.array(keypoint).shape)
    # print("###################################")
    loss_kp = self.kps_loss_evaluator(proposals, keypoint)
    # kps = self.kps_post_processor(keypoint,proposals)

    losses = {
        "loss_cls": loss_box_cls,
        "loss_reg": loss_box_reg,
        "loss_centerness": loss_centerness,
        "loss_keypoint": loss_kp
    }

get error in modeling\roi_heads\keypoint_head\loss.py,say keypoint_logits is a list N, K, H, W = keypoint_logits.shape keypoint_logits = keypoint_logits.view(N K, H W)

Dantju commented 4 years ago

@tianzhi0549 how to prepare_kps_target as (labels,reg_targets =self.prepare_targets(locations,targets))

Dantju commented 4 years ago

@tianzhi0549 I want to know how to prepare gt for keypoints train

Dantju commented 4 years ago

@tianzhi0549 what does locations & object_sizes_of_interest means

Dantju commented 4 years ago

@tianzhi0549 I find u havn't do any preprocess,so when I make kps gt heatmap ,how to get kps in 5 level feature map,kps gt div (ori image size/feature map size)?

Dantju commented 4 years ago

gt @tianzhi0549 pts is the keypoints gt,I get featuremap gt by using this,is it right

Dantju commented 4 years ago

@tianzhi0549 when in level five,the stride is 128 ,use this may get negative keypoints, how to deal with this ?can I just pts = pts /scale_level[level] to get gt in feature map level?

Dantju commented 4 years ago

@tianzhi0549 the point for classification is the center of gt bbox, right?

Dantju commented 4 years ago

@tianzhi0549 how long direct pose will be released?