facebookresearch / OrienterNet

Source Code for Paper "OrienterNet Visual Localization in 2D Public Maps with Neural Matching"
Other
454 stars 45 forks source link

Question about prepare MGL dataset #46

Open oWWWo3324 opened 8 months ago

oWWWo3324 commented 8 months ago

When attempting to download the MGL dataset using the command python -m maploc.data.mapillary.prepare --token $YOUR_ACCESS_TOKEN, the program does not respond.How can I fix it?

(py38) net@ubuntu:~/Desktop/catkin_ws/ori_ws/OrienterNet$ python -m maploc.data.mapillary.prepare --token ..... [2024-02-19 00:45:41 maploc INFO] Starting processing for location sanfrancisco_soma. [2024-02-19 00:45:41 maploc INFO] Fetching metadata for all images. 0%| | 0/41861 [00:00<?, ?it/s]

2

But data can be successfully obtained using the following method in the same network environment. 微信图片_20240219165858

oWWWo3324 commented 8 months ago

The issue has been identified as occurring during the execution of r = await self.client.get(url) within maploc.data.mapillary.download.py.

sarlinpe commented 8 months ago

Thank you for reporting this issue. With https://github.com/facebookresearch/OrienterNet/commit/41d2f9d5f14a637a84c99ae2e7fb8ba500fde2d1 we introduced a 2-minute timeout. Is any error shown after 2 min? Can you revert this commit and share the result?

oWWWo3324 commented 8 months ago

This code is already in the project, but the program still has no response or error after running for more than two minutes. 3

yicocc commented 3 months ago

This code is already in the project, but the program still has no response or error after running for more than two minutes. 3

I wanna ask you for the same question ,my token didn't download the MGL dataset ,but I didn't this reason,so I can‘t trian this model

xiaofeifei-1 commented 2 months ago

下载mapillary数据集,运行命令:python -m maploc.data.mapillary.prepare 中国大陆的同学打开VPN的同时,通过设置VPN的python代码两处代码如下:

  # downloader = MapillaryDownloader(token)   # 实例化
  # -------------------------修改--------------------------
  # 设定代理 URL, 设置成功;否则无法下载
  proxy_url = 'http://127.0.0.1:7890' 
  downloader = MapillaryDownloader(token, proxy_url=proxy_url)
  # -------------------------修改--------------------------
```
def __init__(self, token: str, proxy_url: str = None):
# def __init__(self, token: str):
    # self.token = token
    # self.client = httpx.AsyncClient(
    #     transport=httpx.AsyncHTTPTransport(retries=20), timeout=120.0
    # )
    # self.limiter = AsyncLimiter(self.max_requests_per_minute // 2, time_period=60)
    # ---------------------------修改如下----------------------------
    self.token = token
    self.proxy_url = proxy_url
    transport = httpx.AsyncHTTPTransport(retries=20)
    if proxy_url:
        self.client = httpx.AsyncClient(
            transport=transport,
            timeout=120.0,
            proxies={
                "http://": proxy_url,
                "https://": proxy_url,
            }
        )
    else:
        self.client = httpx.AsyncClient(
            transport=transport,
            timeout=120.0
        )
    self.limiter = AsyncLimiter(self.max_requests_per_minute // 2, time_period=60)

    # ---------------------------修改如下----------------------------
yicocc commented 2 months ago

下载mapillary数据集,运行命令:python -m maploc.data.mapillary.prepare 中国大陆的同学打开VPN的同时,通过设置VPN的python代码两处代码如下:

# downloader = MapillaryDownloader(token)   # 实例化
# -------------------------修改--------------------------
# 设定代理 URL, 设置成功;否则无法下载
proxy_url = 'http://127.0.0.1:7890' 
downloader = MapillaryDownloader(token, proxy_url=proxy_url)
# -------------------------修改--------------------------

def init(self, token: str, proxy_url: str = None):

def init(self, token: str):

# self.token = token
# self.client = httpx.AsyncClient(
#     transport=httpx.AsyncHTTPTransport(retries=20), timeout=120.0
# )
# self.limiter = AsyncLimiter(self.max_requests_per_minute // 2, time_period=60)
# ---------------------------修改如下----------------------------
self.token = token
self.proxy_url = proxy_url
transport = httpx.AsyncHTTPTransport(retries=20)
if proxy_url:
    self.client = httpx.AsyncClient(
        transport=transport,
        timeout=120.0,
        proxies={
            "http://": proxy_url,
            "https://": proxy_url,
        }
    )
else:
    self.client = httpx.AsyncClient(
        transport=transport,
        timeout=120.0
    )
self.limiter = AsyncLimiter(self.max_requests_per_minute // 2, time_period=60)

# ---------------------------修改如下----------------------------

Thanks,but I still can‘t run sucessfully ,could you help me provide the whole code,thanks again。

sarlinpe commented 2 months ago

Can you provide more details on the error message? Does it just hang?