Comments (21)
. But image retrieval is to find the same class object not the same objects.
You are wrong here. Image retrieval, at least in classical computer vision sense is about finding SAME object under different conditions, don`t mix it with "similarity search". E.g. see here
https://www.kaggle.com/c/landmark-retrieval-challenge
"Image retrieval is a fundamental problem in computer vision: given a query image, can you find similar images in a large database? This is especially important for query images containing landmarks, which accounts for a large portion of what people like to photograph.
In this competition, Kagglers are given query images and, for each query, are expected to retrieve all database images containing the same landmarks (if any)."
from hardnet.
"Training" there means k-means vocabulary learning, not the training HardNet itself.
from hardnet.
Sorry, I just understand your method. Firstly you use HardNet model trained on UBS dataset to extract 128 features. Then, K-means method is used to learn vocabulary on Oxford5k dataset. At the end, you use the BOW model test on Paris6k.
But I still confused how you deal with "Junk" images? Do you treat them as null images?
from hardnet.
@filipradenovic was doing this experiment. But if I remember correctly, they were ignored - as suggested in original paper protocol. Btw, there is new protocol here https://github.com/filipradenovic/revisitop
from hardnet.
@shanYanGuan junk images are always ignored, ie treated as null images. However, in the new protocols described in https://github.com/filipradenovic/revisitop, null set is different depending on the protocol difficulty. More details can be found in the paper.
from hardnet.
Thank you bro! @ducha-aiki @filipradenovic
But I still have a question. For oxford5k or Paris, we always train our model on one dataset then evaluate on another dataset. Why? Why not split the dataset to two train and test sets.And train/evaluate on the same dataset.
from hardnet.
Well... first, datasets are quite small. Second, we want to see how method generalize.
But most important - because we want to compare to previous methods, so we should take protocol which is commonly used.
from hardnet.
ok, I see. Hardnet is to extract an image descriptor. This descriptor is designed to deal with matching problem. So I thought it should contain the key point informations. And Patch Datasets is more about viewpoint or illumination changes on the same objects. But image retrieval is to find the same class object not the same objects. So why hardnet can do well in Oxford5k?
from hardnet.
the key point is I think patch match task is different from image retrieval, for the reason that patch match is to fine the same object with different viewpoint or illumination, but image retrieval is to find the same image with same semantics So the descriptor for patch match can't adopt to image retrieval.
from hardnet.
@shanYanGuan but you are right, that actually Oxford5k task is "particular object retrieval" or "particular instance retrieval" to be precise. It is just community used to call it "image retrieval".
from hardnet.
You mean image retrieval is to retrieve all database images containing the same content? But image retrieval based on Hash method seems different. For example, cifair10 is to retrieve the same class image. But image content in same class is inconsistent.
from hardnet.
cifar10... sorry for wrong split. E.g. below images is airplane, but is different airplane.
https://www.cs.toronto.edu/~kriz/cifar-10-sample/airplane1.png
https://www.cs.toronto.edu/~kriz/cifar-10-sample/airplane4.png
from hardnet.
https://www.cs.toronto.edu/~kriz/cifar.html
from hardnet.
CIFAR is classification problem, not retrieval. Or you can call it "category retrieval". And Oxford5k is "instance retrieval".
from hardnet.
So Nework for match cannot be used to category retrieval. Am I right?
from hardnet.
@shanYanGuan yes, you are right.
from hardnet.
Sounds strange. And if match network just can get similarity about same object not same category, what meaning it has?
from hardnet.
@shanYanGuan when you are looking for YOUR phone or dog, do you want to find your phone or dog, or any kind would suffice?
If you want to see NotreDame or White House, do you want to see them exactly, or any house would suffice?
When you are doing 3d reconstruction of object, do you want to have a mess of all objects of the same category?
from hardnet.
OK, but why match network can't get high semantics, such as content that image have? If they can get some high semantics clues, they should be able to classify if they are same category.
from hardnet.
I don`t know this for sure. I guess, that networks do only things, which we train them for. If we train them for semantics, they do semantics. If we train for correspondences - they do correspondences, etc. These are just different tasks. Why trucks cannot compete with F1 cars?
from hardnet.
ok. I can get you. Maybe I should do some experiments to solve this problem. Thanks for your instructive answer!
from hardnet.
Related Issues (20)
- hardnet training files HOT 2
- About the measurement metric HOT 1
- HardNet+ with --augmentation or --fliprot HOT 11
- Code of Oxford5k experiments HOT 2
- Training epochs HOT 2
- Verification task on HPatches
- what is the version of pytorch HOT 2
- Key Error occurred when running bash run_me.sh HOT 1
- HPatches result with matlab and python HOT 2
- The link to HardNet++ is broken HOT 1
- Test on yosemite dataset HOT 1
- Is this loss the same with Batch Hard Loss ? HOT 3
- invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python number HOT 1
- report a bug maybe
- Training Set Label Formatting HOT 2
- Loss function
- FileNotFoundError: [Errno 2] No such file or directory: 'data/sets/liberty.zip' HOT 1
- local variable 'out_a' referenced before assignment HOT 1
- the trainning datasets
- indoor dataset
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hardnet.