weiliu89 / caffe

Caffe: a fast open framework for deep learning.
http://caffe.berkeleyvision.org/
Other
4.77k stars 1.67k forks source link

implementing ssd+pose on my custom dataset.. there's no sampled ground truth. #518

Open leejk526 opened 7 years ago

leejk526 commented 7 years ago

Issue summary

Hi, I used to implement ssd+pose on my custom dataset using official SSD code.

My custom dataset is inputed by two model,
One is original ssd code. (it works.) the other is ssd+pose made by me. (dataset image and bounding box is same, but have some error..)

the error was that it can't find any sampled ground truth (ssd's data augmentation method) (I found that the final reason is 'function MeetEmitConstraint'@bbox_util.cpp returns false for that sampled ground truth., the 'false' means that sampled gt is not include ground truth center maybe?)

In author's code, If the number of sampled ground truth is 0, then gt_label is inputed by all -1. (like [-1, -1, -1, -1, -1, -1, -1, -1] )

In the end, [blob.cpp:145] Check failed: count_ == other.count() (69856 vs. 136) this is the error sign. I thought that mean there is no ground truth, it just fake( the number '136').

of coarse, loc_loss and confloss are all 0. (I logged it.)

I couldn't understand why 'MeetEmitConstraint' always return false... Because SSD code works well in my dataset. What did I miss? @weiliu89 could you help me?

I hope someone give me some hint! And, if you somebody already implement ssd+pose, could you share your code? thank you for reading!

leejk526 commented 7 years ago

Actually I solved as removing some batch sampler. I thought the "randomly sample patch part" (min_overlap : 0 max_overlap : 1) make some problem...