AnjanDutta / sem-pcyc

PyTorch implementation of the paper "Semantically Tied Paired Cycle Consistency for Zero-Shot Sketch-based Image Retrieval", CVPR 2019.
MIT License
110 stars 24 forks source link

Possible Bug in ECCV18 split code for Sketchy Extended #18

Closed mvp18 closed 4 years ago

mvp18 commented 4 years ago

Hi there,

Kindly correct me if I am wrong about this code segment here in utils.py

if split_eccv_2018:
        # According to Yelamarthi et al., "A Zero-Shot Framework for Sketch Based Image Retrieval", ECCV 2018.
        cur_path = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
        with open(os.path.join(cur_path, "test_classes_eccv_2018.txt")) as fp:
            te_classes = fp.read().splitlines()
            va_classes = te_classes
            tr_classes = np.setdiff1d(classes, np.union1d(te_classes, va_classes))

Here, you are setting validation classes to be the same as the test classes. So, is it still zero-shot since you are now seeing the test classes during train (validation on them that is)? As I understand, validation classes are supposed to be the same as the train classes (seen classes that is) with sketch and images of the 104 seen classes being divided in a certain ratio between train and val. Also, this results in the validation and test sets being exactly the same since you are filtering sketch and images files based only on classes in get_coarse_grained_samples function. I also have run the code, and this is indeed the case. Would like to know your thoughts on this.

AnjanDutta commented 4 years ago

This is also same as the previous issue. We don't have validation set. This is how I implemented things...

pSGAme commented 4 months ago

Hi, sir. Could you please share the link to download the Sketchy Extended dataset and TU-Berlin Image dataset?