Skip to content

Code for the paper CVPR‘17 “Zero Shot Learning from Noisy Text Description at Part Precision”

License

Notifications You must be signed in to change notification settings

EthanZhu90/ZSL_PP_CVPR17

Repository files navigation

ZSL_PP

Mohamed Elhoseiny*, Yizhe Zhu*, Han Zhang, Ahmed Elgammal, Link the head to the "peak'': Zero Shot Learning from Noisy Text descriptions at Part Precision, CVPR, 2017

This code is implemented by Yizhe Zhu and Mohamed Elhoseiny.

Processed feature Data:

You can download the dataset CUB2011 and NABird.

Raw wikipedia article data:

Raw wikipedia article data of CUBird and NABird, as well as detailed merging information of NABird, can be obtained here.

Trianed Models:

Trained models reproduce the results in the paper.  

Testing, reproducing the results in the paper


ZSL_Test(Dataset = 'CUBird' or 'NABird', splitmode = 'Easy' or 'Hard', ImgFtSource = 'DET' or 'ATN')

splitmode = Easy or Hard splits defined in Section 4.1 in the paper

CUNBirds Easy split in Table1


ZSL_Test('CUBird', 'Easy', 'ATN') ### ATN means using groundtruth part annotation
Dataset: CUB2011 Easy ATN
Model: trained_models/CUBird_Easy_ATN.mat
Load Testing set
test_acc = 43.5049%


ZSL_Test('CUBird', 'Easy', 'DET') ### DET means using the detected parts instead of GT parts.
Dataset: CUB2011 Easy DET
Model: trained_models/CUBird_Easy_DET.mat
Load Testing set
test_acc = 37.5725%

NABirds Easy/Hard split in Table3


ZSL_Test('NABird', 'Easy') ### Easy means category-share splitting
Dataset: NABird Easy DET
Model: trained_models/NABird_Easy_DET.mat
Load Testing set
test_acc = 30.5937%


ZSL_Test('NABird', 'Hard') ### Hard means category-share splitting
Dataset: NABird Hard DET
Model: trained_models/NABird_Hard_DET.mat
Load Testing set
test_acc = 8.1349%

Training

ZSL_Train(Dateset, Splitmode, ImgFtSource, lambda1, lambda2, GPU_mode)
is the command to train the model using a particular setting.
% For example ZSL_Train('CUBird', 'Easy', 'DET', 100000, 10000, true), trains on the CUBirds dataset on the Easy split and using the detected part boxes. , lambda1=100000, and lambda2=10000, and GPU_mode=true (using GPU mode for training). If false, the training is done on CPU.

About

Code for the paper CVPR‘17 “Zero Shot Learning from Noisy Text Description at Part Precision”

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages