Comments (12)
Hi @XinLan12138,
For using any other dataset, you are right about generating .db (for training) and .npy (global descriptors) files.
Regarding global descriptors .npy files:
We used Nanne/pytorch-NetVlad repo to generate global descriptors using their pittsburgh trained model. You can also use our Patch-NetVLAD repo to do the same. I will be updating this (SeqNet) repo by tomorrow integrating global descriptor extraction using Patch-NetVLAD.
from seqnet.
Oh! Thanks for updating! I will read through the updates once you finished. BTW, how can I generate .db? Is that also included in the repo?
from seqnet.
Generating .db is not currently in the repo. The easiest way of creating them is by using the dbStruct declaration and then calling it as:
db = dbStruct(splitName, datasetName, dbImageList, utmDb, qImageList, utmQ, numDb, numQ, d, d**2, d2**2, None, None, None, None)
,
which can then be saved and parsed using save_db_struct and parse_db_struct functions.
Edit: d
and d2
are posDistSqThr
, nonTrivPosDistSqThr
as explained here
from seqnet.
Hi @XinLan12138,
Single image descriptor extraction is now enabled, please see this Readme subsection.
from seqnet.
Hi @XinLan12138,
Single image descriptor extraction is now enabled, please see this Readme subsection.
Hi @oravus , I have seen it and currently trying to extract the feature of pittsburgh250k dataset. It seems to process well now. process as follows:
//////////////////////
python feature_extract.py --config_path patchnetvlad/configs/seqnet.ini --dataset_file_path /home/lx/lx/new_seqnet_data/pitts250k.txt --dataset_root_dir /home/lx/lx/new_seqnet_data --output_features_fullpath ../../data/descData/netvlad-pytorch/pitts250k.npy
Namespace(config_path='patchnetvlad/configs/seqnet.ini', dataset_file_path='/home/lx/lx/new_seqnet_data/pitts250k.txt', dataset_root_dir='/home/lx/lx/new_seqnet_data', nocuda=False, output_features_dir='/home/lx/lx/seqNet/thirdparty/Patch-NetVLAD/patchnetvlad/output_features', output_features_fullpath='../../data/descData/netvlad-pytorch/pitts250k.npy')
Parsing dataset...
Done! Found 254064 images
=> loading checkpoint '/home/lx/lx/seqNet/thirdparty/Patch-NetVLAD/patchnetvlad/./pretrained_models/pitts_orig_WPCA4096.pth.tar'
=> loaded checkpoint '/home/lx/lx/seqNet/thirdparty/Patch-NetVLAD/patchnetvlad/./pretrained_models/pitts_orig_WPCA4096.pth.tar'
====> Extracting Features
/////////////////////
However, I do not have oxford dataset as your dataset_root_dir so I can't reproduce the .npy as you. Can you send a copy of the source of Oxford dataset?
Also, regarding the generation of .db files, should I just write a python file to execute the two functions —— save_db_struct and parse_db_struct functions? Sorry for disturbance but I am new in this area :) Thank you for your help!
from seqnet.
The Oxford Robotcar dataset is already public (and its re-hosting might be restricted by its license). You can download particular traverses (and sensor/camera types) from here and use their official sdk to convert images to RGB format. Please refer to the imagenames files for this dataset specific to our project here.
If you are only meaning to test SeqNet on a readily available public dataset, you can download the Nordland dataset from here.
For .db files, you can import those functions in your python project, then create and save the dbstruct as per your requirement.
As you are using Pitts250K probably only to test feature extraction part, you would ideally need a sequence-based dataset for SeqNet.
from seqnet.
Hi @XinLan12138, please feel free to re-open if need be. Cheers!
from seqnet.
Hi, @oravus . Thank you for your quick reply. I have downloaded oxford dataset of 2014-12-16-18-44-24 and nordland dataset. Also, I tried to figure out how to generate .db files under ./structFiles. But things show that I only get the image list and corresponding images. No utmDb, utmQ, posDistThr, nonTrivPosDistSqThr can be found to construct the .db file.
I also downloaded pitts 250k from https://data.ciirc.cvut.cz/public/projects/2015netVLAD/Pittsburgh250k/ , in ./groundtruth files, I can get several these data but still do not know how to extract the .db. Maybe could u plz update a little more in repository on these part so that we can understand more about the adaption to other dataset using Seqnet if you re free? Or could you explain a bit more to help me out?
Besides, in your SeqNet paper GPS information is needed, is that represents for the utmDb and tumQ parameter?
Thanks for your patience and help to my project!!!
from seqnet.
Yes, the GPS information is stored as utmDb and utmQ. It is also 'abused' a bit when using the Nordland dataset; there, it represents the image index since the Nordland dataset traverses are exactly aligned, thus Nordland evaluation is done in terms of frames instead of meters (based on utm).
Regarding terminology and meaning of other parameters in db files, see Nanne/pytorch-NetVlad#26 and Nanne/pytorch-NetVlad#50, we follow the same convention for SeqNet. You can take help from that repository to process Pittsburgh dataset.
I am planning to release a seqnet feature extraction code, which might help solve part of your requirements with regards to testing any external traverse-based dataset.
from seqnet.
OK, I will check pytorch-NetVlad codes for references. And waiting for your newly updated codes! :)
from seqnet.
Generating .db is not currently in the repo. The easiest way of creating them is by using the dbStruct declaration and then calling it as:
db = dbStruct(splitName, datasetName, dbImageList, utmDb, qImageList, utmQ, numDb, numQ, d, d**2, d2**2, None, None, None, None)
,which can then be saved and parsed using save_db_struct and parse_db_struct functions.
Hi thx for your work.
If I understand correctly, you only need to call db=dbStruct.... to create a new DB right?
May I know what the expected field in splitName, datasetName, dbImageList, utmDb, qImageList, utmQ, numDb, numQ, d, d2, d22,
The imagelist should be a txt file containing all the image
UTM can be txt or csv files that contain x and y locations right?
and num* should be integer number
What's the d d2 and d22?
from seqnet.
Hi @snakehaihai,
d
and d2
are posDistSqThr
, nonTrivPosDistSqThr
as explained here. We use d
and d2
as shorthand variables to name the .db
files. I have updated this information in my earlier comment as well.
For a more detailed understanding of a .db
file and the namedtuple (dbStruct)
, you can try the following (after git pull
to the latest version):
from datasets import parse_db_struct, print_db_concise
my_db = parse_db_struct('./structFiles/oxford-v1.0_2015-03-17-11-08-44_2014-12-16-18-44-24_test_d-10_d2-5.db')
print_db_concise(my_db)
Hope that helps!
from seqnet.
Related Issues (20)
- use SeqNet without SeqMatch HOT 1
- use SeqNet without SeqMatch HOT 1
- Train sequential descriptors through SeqNet on the MSLS dataset HOT 2
- "seqL_filterData" argument HOT 1
- The descriptor data for the Brisbane dataset HOT 2
- Doubts about the descriptors / img poses from timestamps of img & poses HOT 5
- MSLS pretrained model HOT 1
- MSLS austin/melbourne image number difference between original seq_info.csv and provided seqBounds.txt here HOT 2
- Doubt regarding MSLS sequences HOT 4
- Related files for msls experiments HOT 1
- pretrained model HOT 2
- The evaluation metric about Precision@K HOT 1
- the Oxford dataset Preprocessing HOT 5
- nGPU HOT 1
- Broken links for pre-trained models and dataset HOT 2
- discussion on sequential descriptor HOT 2
- MSLS results HOT 2
- dataset split issues HOT 5
- use SeqNet without SeqMatch HOT 2
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 seqnet.