源代码
1、根据源代码github地址下载代码,上传到服务器,使用服务器为3090显卡,cuda11.4
2、所需要的包的版本如下:
Package Version
-------------------------------- -------------------
absl-py 0.11.0
addict 2.4.0
alabaster 0.7.12
apex 0.1
appdirs 1.4.4
argon2-cffi 20.1.0
ascii-graph 1.5.1
async-generator 1.10
attrs 20.3.0
audioread 2.1.9
Babel 2.9.0
backcall 0.2.0
beautifulsoup4 4.9.3
bleach 3.2.1
blis 0.4.1
boto3 1.16.25
botocore 1.19.25
brotlipy 0.7.0
catalogue 1.0.0
certifi 2020.11.8
cffi 1.14.3
chardet 3.0.4
click 7.1.2
codecov 2.1.10
conda 4.9.2
conda-build 3.20.5
conda-package-handling 1.7.2
coverage 5.3
cryptography 3.2.1
cxxfilt 0.2.2
cycler 0.10.0
cymem 2.0.4
Cython 0.28.4
DataProperty 0.50.0
decorator 4.4.2
defusedxml 0.6.0
DLLogger 0.1.0
docutils 0.16
entrypoints 0.3
filelock 3.0.12
filterpy 1.4.5
flake8 3.7.9
Flask 1.1.2
flatbuffers 22.9.24
future 0.18.2
glob2 0.7
graphsurgeon 0.4.5
grpcio 1.33.2
h5py 3.1.0
html2text 2020.1.16
hypothesis 4.50.8
idna 2.10
imageio 2.9.0
imagesize 1.2.0
importlib-metadata 2.0.0
inflect 5.0.2
iniconfig 1.1.1
ipdb 0.13.4
ipykernel 5.3.4
ipython 7.19.0
ipython-genutils 0.2.0
itsdangerous 1.1.0
jedi 0.17.2
Jinja2 2.11.2
jmespath 0.10.0
joblib 0.17.0
json5 0.9.5
jsonschema 3.0.2
jupyter-client 6.1.7
jupyter-core 4.7.0
jupyter-tensorboard 0.2.0
jupyterlab 1.2.14
jupyterlab-pygments 0.1.2
jupyterlab-server 1.2.0
jupytext 1.7.1
kiwisolver 1.3.1
libarchive-c 2.9
librosa 0.8.0
llvmlite 0.34.0
lmdb 1.0.0
Markdown 3.3.3
markdown-it-py 0.5.6
MarkupSafe 1.1.1
maskrcnn-benchmark 0.1
matplotlib 3.3.3
mbstrdecoder 1.0.0
mccabe 0.6.1
mistune 0.8.4
mlperf-compliance 0.0.10
mmcv 1.6.2
mock 4.0.2
motmetrics 1.2.5
msgfy 0.1.0
murmurhash 1.0.2
nbclient 0.5.1
nbconvert 6.0.7
nbformat 5.0.8
nest-asyncio 1.4.3
networkx 2.0
nltk 3.5
notebook 6.1.5
numba 0.51.2
numpy 1.19.2
nvidia-dali-cuda110 0.28.0
nvidia-pyprof 3.7.0
nvidia-tensorboard 1.15.0+nv20.12
nvidia-tensorboard-plugin-dlprof 0.10
onnx 1.8.1
onnx-simplifier 0.3.5
onnxoptimizer 0.3.1
onnxruntime 1.8.0
opencv-contrib-python 4.6.0.66
opencv-python 4.5.1.48
opencv-python-headless 4.6.0.66
packaging 20.4
pandas 1.1.4
pandocfilters 1.4.3
parso 0.7.0
pathvalidate 2.3.0
pexpect 4.8.0
pickleshare 0.7.5
Pillow 9.2.0
Pillow-SIMD 7.0.0.post3
pip 20.2.4
pkginfo 1.6.1
plac 0.9.6
pluggy 0.13.1
polygraphy 0.20.13
pooch 1.2.0
preshed 3.0.2
progressbar 2.5
prometheus-client 0.9.0
prompt-toolkit 3.0.8
protobuf 3.14.0
psutil 5.7.2
ptyprocess 0.6.0
py 1.9.0
pybind11 2.6.1
pycocotools 2.0+nv0.4.0
pycodestyle 2.5.0
pycosat 0.6.3
pycparser 2.20
pydot 1.4.1
pyflakes 2.1.1
Pygments 2.7.2
pynvml 8.0.4
pyOpenSSL 19.1.0
pyparsing 2.4.7
pyrsistent 0.17.3
PySocks 1.7.1
pytablewriter 0.47.0
pytest 6.1.2
pytest-cov 2.10.1
pytest-pythonpath 0.7.3
python-dateutil 2.8.1
python-hostlist 1.21
python-nvd3 0.15.0
python-slugify 4.0.1
pytorch-transformers 1.1.0
pytz 2020.1
PyWavelets 1.1.1
PyYAML 5.3.1
pyzmq 20.0.0
regex 2020.11.13
requests 2.24.0
resampy 0.2.2
revtok 0.0.3
ruamel-yaml 0.15.87
s3transfer 0.3.3
sacrebleu 1.2.10
sacremoses 0.0.35
scikit-image 0.15.0
scikit-learn 0.23.2
scipy 1.5.2
Send2Trash 1.5.0
sentencepiece 0.1.94
setuptools 50.3.1.post20201107
six 1.15.0
snowballstemmer 2.0.0
SoundFile 0.10.3.post1
soupsieve 2.0.1
sox 1.4.1
spacy 2.3.2
Sphinx 3.3.1
sphinx-rtd-theme 0.5.0
sphinxcontrib-applehelp 1.0.2
sphinxcontrib-devhelp 1.0.2
sphinxcontrib-htmlhelp 1.0.3
sphinxcontrib-jsmath 1.0.1
sphinxcontrib-qthelp 1.0.3
sphinxcontrib-serializinghtml 1.1.4
srsly 1.0.2
subword-nmt 0.3.3
tabledata 1.1.3
tabulate 0.8.7
tensorboard 1.15.9999+nv
tensorrt 7.2.2.1
terminado 0.9.1
testpath 0.4.4
text-unidecode 1.3
thinc 7.4.1
threadpoolctl 2.1.0
toml 0.10.2
torch 1.8.0a0+1606899
torchtext 0.9.0a0
torchvision 0.9.0a0
tornado 6.1
tqdm 4.53.0
traitlets 5.0.5
typepy 1.1.1
typing-extensions 3.7.4.3
uff 0.6.9
Unidecode 1.1.1
urllib3 1.25.11
wasabi 0.8.0
wcwidth 0.2.5
webencodings 0.5.1
Werkzeug 1.0.1
wheel 0.35.1
wrapt 1.10.11
xmltodict 0.13.0
yacs 0.1.8
yapf 0.32.0
zipp 3.4.0
3、首先安装requirement.txt文件,已经pytorch对应的cuda版本,先装cuda对应的torch,python是3.6的,我推荐这个版本,3.7有时候不兼容,3.9有时候又高,目前3.6使用匹配cuda还可以。
pip install -r requirement.txt
4、然后根据文件把数据放在对应的位置:
6、编译文件:
sh ./compile.sh
放好文件后,就可以根据官网给的命令运行了。
5、运行好之后会又checkpoint文件。
根据checkpiont文件去进行test会生成submit文件,最后在eval中去运行得到结果:
重点说一下eval中的运行,因为这部分一直有问题,解决了半天,原因是路径问题,因为我的机器没有zip命令,所以导致test后没有自动zip压缩,然后手动压缩的:出现问题:
Error! ZIP entry not valid
6、如何解决,去看代码,定位问题,发现手动压缩一直有两个文件夹,直接需要对text文件进行压缩,如果机子有zip工具包,那么test后自动会压缩,如何手动压缩就需要主要其中的文件夹下的文件,文件夹下面第一层一定是txt文件:
submit文件夹中的文件格式:
如果用自己文件训练一定注意代码中的文件明匹配问题,因为只匹配中间是数字的那部分的。
eval的结果:
跟原文章差一丢丢,毕竟单卡。
联合训练,端到端的训练过程:当训练三轮后对ic15的数据集进行识别,最终的识别结果如下图所示:
二、识别部分的结果,端到端训练的训练
和原论文在精度还差几个点,至于原因,大概率我的bs只能是8的影响。
下面是原论文结果
介绍一下VOC G VOC W VOC S的意思,在ICDAR15的数据集中,直接贴原代码:
下面测试VOC G
召回率和原论文比还是有差距,差了3个点。
下面测试VOC W
效果差的不少,将近一个10个百分点了。
测试一下VOC S
总体来说差距太大,和原论文唯一没有保持的就是bs了,估计大概率也是这个原因