FasterRCNN是物体检测主流方法之一,keras版本的FasterRCNN是在2017年6月发布的,这是核心代码。其后Anaconda、TensorFlow和Keras都在不断更新,不同版本的组合可能无法运行该程序。去年和今年小象学院推出了计算机视觉深度学习的两期课程,这两期课程的物体检测部分的示例都采用了该代码,他们内容相同,如下图。

也可以点击这里查看
由于最新版的TensorFlow和Keras变动比较大,许多老的函数有位置变动或被删除,可能导致无法运行该代码。我尝试了自己的几种环境,给出了运行结果。

  1. Python3.5.2+tensorflow-gpu1.1.0+keras2.1.5,可以正常运行,如下图。


Tensorflow的版本为1.1.0,GPU版本,如下图。

Keras版本为2.1.5,如下图。

代码运行结果如下。

  1. Python3.5.5+tensorflow-gpu1.5.0+keras2.0.8,运行时报错,提示如下:

    File "D:/test/pycv/chinahadoop/ChinaHadoop_C5-master/ChinaHadoop_C5-master/C5_FasterRCNN_KERAS/test_frcnn.py", line 9, in <module>
    import keras
    File "d:\Anaconda3\lib\site-packages\keras__init.py", line 3, in <module>
    from . import utils
    File "d:\Anaconda3\lib\site-packages\keras\utils\
    init.py", line 6, in <module>
    from . import conv_utils
    File "d:\Anaconda3\lib\site-packages\keras\utils\conv_utils.py", line 3, in <module>
    from .. import backend as K
    File "d:\Anaconda3\lib\site-packages\keras\backend\
    init__.py", line 83, in <module>
    from .tensorflow_backend import *
    File "d:\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py", line 2, in <module>
    from tensorflow.python.training import moving_averages

    ImportError: cannot import name 'moving_averages'

可见该版本的tensorflow没有moving_averages函数。

  1. Python3.6.6+tensorflow-gpu1.6.0+keras2.1.3,运行时没有报错,但提示kernel died。如下图:

    查看版本时可在Spyder的Python控制台输入命令查看,如下图:

    如果使用pycharm,可以在设置的project interpreter中查看,如下图。

    如果某个包安装了多个版本,可在这里可以指定其中一个版本。