Seguiu os dois métodos apresentados pelo Dr. Yangxue. Este artigo registra apenas os problemas encontrados durante o processo de reprodução. Não vou escrever a introdução da tese específica. O próprio conhecimento do mestrado foi escrito em detalhes.
SCRDet: https://zhuanlan.zhihu.com/p/107400817
CSL: https://zhuanlan.zhihu.com/p/111493759
O primeiro método para reproduzir: https://github.com/DetectionTeamUCAS/R2CNN-Plus-Plus_Tensorflow
Sob Ubuntu16.04
1、tensorflow >= 1.2
2、cuda8.0
3、python2.7 (anaconda2 recommend)
4、opencv(cv2)
5、tfplot
O tensorflow-gpu == 1.2 e 1.4 medido pode ser usado, cuda8 precisa ser compilado e instalado localmente e o ambiente python2.7 pode ser criado em anaconda3
Na verdade, ao instalar o tf, o conda não pôde instalar diretamente uma versão tão baixa do tensorflow-gpu, então ele baixou o wheel do pypi e o instalou localmente, e alguns outros pacotes dependentes seriam instalados automaticamente.
pip install tensorflow_gpu-1.4.0-cp27-cp27mu-manylinux1_x86_64.wheel
Outra coisa a notar é que esta versão do tf está equipada com numpy 1.16.3. Ao instalar o opencv, você precisa principalmente controlar a versão. Caso contrário, um erro será relatado se a versão numpy não estiver correta. Após tentar, opencv-python instala 3.3.1.11
pip install opencv-python==3.3.1.11
O Cuda8 precisa ser compilado localmente, instale o cudatoolikit8 no ambiente conda e relate um erro nas compilações subsequentes. Além disso, um cudnn é necessário no ambiente virtual conda para importar o tensorflow normalmente.
conda install cudnn==5.1.10
Na verdade, a instalação do cython não precisa controlar estritamente a versão. Para ser seguro, ele corresponde ao arquivo na pasta. Cython escolhe 0.25.2
Há também um tfplot que precisa ser instalado, diretamente pip
conda install cython==0.25.2
pip install tensorflow-plot
Finalmente, de acordo com o processo do autor, coloque os pesos de pré-treinamento na pasta correspondente e entregue-o ao Baidu Cloud intimamente, obrigado
Treinar seu próprio conjunto de dados também é muito simples. Se a anotação do conjunto de dados for txt e for [x1, y1, x2, y2, x3, y3, x4, y4, classe, mais], há A ferramenta direta pode ser txt2xml.py.Após a conversão para xml, tfrecord pode ser gerado de acordo com os passos do autor.Os passos no github são muito detalhados.
Após preparar os dados, siga os prompts do github e modifique a configuração em diversos arquivos para iniciar o treinamento.
Outro método CSL https://github.com/Thinklab-SJTU/CSL_RetinaNet_Tensorflow a configuração é muito simples
conda create -n xxx python=3.6
conda activate xxx
conda install tensorflow-gpu=1.13.1
conda install cudatoolkit==10.0
conda install cudnn==7.6.5
pip install opencv-python
pip install tensorflow-plot
Treinar seu próprio conjunto de dados é semelhante ao método anterior, este oferece suporte a várias GPUs.