FaceBoxes的复现(2):Windows7系统+Anaconda+Pytorch+CPU

三、Windows怎么运行GitHub上下载(clone)的项目(2)

(紧接着上一篇文章来)我们要想运行GitHub上别人的预训练模型,你一定先要仔细的项目的README,这里面会有这个项目的简介以及安装步骤。记住最好严格按照GitHub上README教程来安装你下载下来的FaceBoxes_pytorch项目,GitHub上的FaceBoxes_pytorch项目的安装教程一共分为四个小结,分别是:

  • Installation
  • Training
  • Evaluation
  • References

附上FaceBoxes_pytorch的GitHub链接:

https://github.com/zisianw/FaceBoxes.PyTorch

接下来我就按照这个教程来运行FaceBoxes_pytorch的test.py

I. Installation

(1)运行FaceBoxes_pytorch版本,你首先要保证自己电脑里安装了Pytorch(这里我就不再单独讲解了)
(2)下载FaceBoxes_pytorch项目,上一篇文章中已经讲过了
(3)编译nms
编译nms这里折磨了我好久,可以说我跑test.py跑了五天才弄出来,最大的阻碍就是当时没有先把nms编译好。因为Windows的终端上是没有make命令的,所以我弄了好久都不知道编译nms,导致运行test.py的时候一直有各种各样的小问题,怎么也解决不完,怎么也解决不了,其实归根到底就是因为nms没有编译成功。
在Windows中运行原在Linux中编写的源代码,Windows在编译源代码的时候会因为没有Linux上可以使用的命令而无法编译源代码,从而导致整个预训练模型无法运行。所以我们首先要来安装一个软件,来使得在Windows的cmd终端也能使用Linux上使用的命令。

  • 下载cygwin软件
    Windows安装cygwin的教程:

(1)

https://blog.csdn.net/lvsehaiyang1993/article/details/81027399

(2)

https://blog.csdn.net/yupu56/article/details/53186410

(3)

https://blog.csdn.net/chunleixiahe/article/details/55666792

这三篇cygwin的安装教程你可以结合着看,安装过程中的镜像网络链接选163.com的,如果你只需要编译此次的nms的话,最后选择安装包只要选择:devel分支下的
binutils
gcc(devel中所有带有gcc前缀的包)
gcc-mingw(devel中选择适合你电脑的mingw的包)
gdb
make
这5种包就可以了

  • 安装好cygwin之后,打开你的cygwin,用cd命令先切换到你保存的Faceboxes_pytorch的盘,我的是F盘,然后再切换到你的FaceBoxes_pytorch的文件夹,接着在cygwin中输入GitHub上给出的指令:./make.sh
    FaceBoxes的复现(2):Windows7系统+Anaconda+Pytorch+CPU_第1张图片
    很不幸,我的电脑的python3不知道为什么就是不起作用了,我电脑里面明明安装了Python3,而且Anaconda中也有Python3,并且也在path中添加了环境变量,但是还是出现了这个错误,而且尝试找了各种Python3无法使用的解决办法,就是无法解决掉这个问题,所以我不管这个问题了,使用管理员强制编译./make.sh的命令。
    在cygwin窗口中输入了:chmod 777 ./make.sh
    然后没有出现任何错误提示,证明我的nms已经编译成功了。

II. Training

这里我们按照GitHub上的教程和链接分别下载好各个数据集还有预训练模型就行了,并且将这些下载的东西,全部按照GitHub上指定的文件夹添加到我们之前下载好的FaceBoxes_pytorch文件中,千万不要放错位置,或者使用自己的文件夹名称,因为放错文件夹位置就会运行出错。提示:在GitHub上FaceBoxes_pytorch的最下面有一个百度云链接,从那里可以一次性下载完上面所有的数据集和pth文件。

我目前只运行了test.py,所以evaluation,和reference我就暂时没记录了。

III. 正式开始运行test.py

  1. nms编译成功之后,我们来正式的运行test.py。因为我的电脑只有CPU,且为AMD显卡无法安装CUDA,所以为了让模型在我的CPU上运行,首先要把test.py中的默认不用CPU运行,改成默认为CPU运行
    原代码:
parser.add_argument('--cpu', action="store_true", default=False, help='Use cpu inference')

defult = False 改成defult = True

parser.add_argument('--cpu', action="store_true", default=True, help='Use cpu inference')

并在代码前面添加一行device命令:

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
  • 附上python的argparse模块add_argument详解:

https://blog.csdn.net/u013177568/article/details/62432761/

  1. 将test.py改为CPU运行还有两个小地方需要更改,在代码开头的import区域,找到from utils.nms_wrapper import nms并将其注释掉,不再使用这一句,同时添加一句:from utils.nms.py_cpu_nms import py_cpu_nms,这时候你输入的这一句是灰色的,代码还没有点亮,因为下面的代码中没有使用py_cpu_nms的地方,所以pycharm会将其显示为灰色。这时候你再翻到test.py代码 do NMS 区域找到keep = nms(dets, args.nms_threshold)并将其更改为:keep = py_cpu_nms(dets, args.nms_threshold)。这下子test.py就可以在你的没有CPU的Windows上顺利运行了。

  2. 在运行代码期间若有其他缺少某一模块或包的提示,你电脑中缺少哪一个包或模块,你就在终端中用安装命令安装缺少的模块或者包就行了。

  3. 如果你想让程序运行并输出图片结果,你需要将parser.add_argument('-s', '--show_image', action="store_true", default=False, help='show detection results')中的显示图片的默认改为True

  4. 如果你想让程序测试你自己的图片,你需要将你自己的图片复制粘贴到你的FaceBoxes_pytorch/data/PACAL/images数据集中,并将你的照片名称改为原数据集的相同名称格式,然后将你的照片的名字复制到FaceBpxes_pytorch/data/PACAL文件夹中的一个img_list.txt文件中,放在最前面。(建议在Windows中下载一个NotePad++来读取你的txt文档)那样你的图片就可以被测试模型进行读取了。建议将你自己的图片像素调整为500x375或375x500,并选择图片大小小于250KB左右的的图片,使用图片太大的话,测试结果可能越差。

  • NotePad++下载安装:

https://blog.csdn.net/github_35160620/article/details/52788525?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2

  1. 测试效果
    FaceBoxes的复现(2):Windows7系统+Anaconda+Pytorch+CPU_第2张图片

你可能感兴趣的:(深度学习,人脸检测,预训练模型,python,pytorch,深度学习,神经网络)