msxie92 / MangaRestoration

Implementation for "Exploiting Aliasing for Manga Restoration" (CVPR 2021)
Other
153 stars 10 forks source link

Incomplete guide, led to faulty installation #2

Open aquapaulo opened 3 years ago

aquapaulo commented 3 years ago

Hello, I have tried this project on a "pure" machine with freshly installed python and torch (python 3.9.5, and torch version 1.8.5, cuda toolkit ver. 11.3). I noticed that there are more dependencies than specified in the README.md, namely "matplotlib," "numpy," and "opencv-python." I believe it would be nice if you added them to the README.

Moving on to the instructions, I believe they are really unclear, here are some issues I came across while reading them:

  1. 'Prepare images filelist using flist.py' instruction I think suggests us to run "flist.py" with --path and --output arguments, with the first one being the "datazip/manga1/test" (if we follow the instructions word-to-word) and the second one being...... unknown? Taking a look at the code, it seems that this argument is being used on the np.savetxt(args.output, images, fmt='%s') command, which requires a file name (and while not needed, an extension too). Since this file is going to be used internally by the program, it is unclear on what name and/or extension this file has to have in order to be accessed. Personally, I would suggest that it's safer for the program to create the file with a hardcoded name inside, without the user meddling with it.
  2. On the "configs/manga.json" file, there's a key, in the "data_loader"'s value, called "flist_root" with a value of "./flist." However, there's no such directory when one clones this repo into their machine. Without knowing if I'm right, I assumed that this was the folder the file created by the flist.py is located. So, the program throws an error when run, because no such folder exists (or do we have to create it before running flist.py? or before running testreal.py???). I know the README says to modify this file, but it's unclear as to what exactly are we supposed to do. Guess: Is the "flist_root" value supposed to be where the output of "flist.py" is supposed to be? Because if so, as it's obvious from line 26 of core/datasetreal.py, that file is supposed to have an "flist" file extension. If so, why not predefine that file's extension directly from flist.py?

I tried to fix these little uncertainties by guessing and inevitably manipulating some parts of the code, (for example, in line 26 of code/datasetreal.py, there's supposed to be a file named "train.flist" but no such file exists from the initial clone, and therefore, the program returned an error of being unable to locate the file.)

I don't know how useful the following traceback is going to be, but I'll mention what I have manipulated to get through several errors in the process of attempting to try out the program.

So, I tried to first rename the folder "scripts" to "flist" and then, running flist.py again, recreated the filelist, this time with a file name of "test.flist" and then I replaced the term "train" with "test" in line 19 of core/datasetreal.py. With these, it successfully located the file, skipped file not found errors,


Traceback (most recent call last):
  File "C:\Users\aquap\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\utils\data\dataloader.py", line 986, in _try_get_data
    data = self._data_queue.get(timeout=timeout)
  File "C:\Users\aquap\AppData\Local\Programs\Python\Python39\lib\queue.py", line 179, in get
    raise Empty
_queue.Empty

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\aquap\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\multiprocessing\spawn.py", line 59, in _wrap
    fn(i, *args)
  File "E:\NEURALSTUFF\MangaRestoration-main\testreal.py", line 87, in main_worker
    for idx, (images, names) in enumerate(dataloader):
  File "C:\Users\aquap\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\utils\data\dataloader.py", line 517, in __next__
    data = self._next_data()
  File "C:\Users\aquap\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\utils\data\dataloader.py", line 1182, in _next_data
    idx, data = self._get_data()
  File "C:\Users\aquap\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\utils\data\dataloader.py", line 1138, in _get_data
    success, data = self._try_get_data()
  File "C:\Users\aquap\AppData\Local\Programs\Python\Python39\lib\site-packages\torch\utils\data\dataloader.py", line 999, in _try_get_data
    raise RuntimeError('DataLoader worker (pid(s) {}) exited unexpectedly'.format(pids_str)) from e
RuntimeError: DataLoader worker (pid(s) 8424, 2476, 10100) exited unexpectedly```
msxie92 commented 3 years ago

Thanks for pointing out the unclear guidance. I have modified the README file. Hope I have solved these problems.

AK391 commented 3 years ago

@msxie92 Hi can you also add a google colab for inference?