一. 项目地址:GitHub
Official的Faster RCNN是caffe的,懒得再配环境,于是想找一个tensorflow版本(上面地址)。原项目是python2的,但我的环境是python3的,故迁移之,记录如下。
二. 一些问题
非原创,一些整理。
1. make.sh修改
参考博客
2.print函数的问题
因为原项目是python2的,但我的环境是python3,所以需要把所有的print改为print().
3.Cpickle的问题
同样是由python版本引起的,
import cPickle# python2
import pickle# python3
4.ModuleNotFoundError: No module named ‘roi_pooling_op’
把’import roi_pooling_op’改成 ‘import roi_pooling_layer.roi_pooling_op’
5.ModuleNotFoundError: No module named ‘generate_anchors’
同理,改为“目录.generate_anchors”
6.NameError: name ‘basestring’ is not defined
参考链接,同样是由python版本引起的,将basestring替换为str。
7. 'Dimension' and 'int'问题
File "/home/lijiale/Faster-RCNN_TF/tools/../lib/networks/network.py", line 105, in conv
kernel = self.make_var('weights', [k_h, k_w, c_i/group, c_o], init_weights, trainable)
TypeError: unsupported operand type(s) for /: 'Dimension' and 'int'
参考链接,同样是由python版本引起的,进行类型转换
c_i = input.get_shape()[-1] # python2
c_i = int(input.get_shape()[-1]) # python3
8.NameError: name 'xrange' is not defined
File "./tools/demo.py", line 125, in <module>
for i in xrange(2):
NameError: name 'xrange' is not defined
参考链接,同样是由python版本引起的,xrange()更换为range()
9. UnknownError (see above for traceback): KeyError: b'TEST'
参考链接,try add # -*- coding:utf-8 -*- in lib/networks/VGG_test.py
参考链接,fixed this problem
10. AttributeError: 'NoneType' object has no attribute 'format'
Traceback (most recent call last):
File "./tools/demo.py", line 136, in <module>
demo(sess, net, im_name)
File "./tools/demo.py", line 67, in demo
print ('Detection took {:.3f}s for '
AttributeError: 'NoneType' object has no attribute 'format'
参考链接,注意“.format”是str变量的属性。其实是自己手抖在修改print()的括号的时候造成的,小问题。
三.结果
几经波折,终于初步搞定,运行结果如下:
提供的几张测试图片上的效果如下: