一. 項(xiàng)目地址:GitHub
Official的Faster RCNN是caffe的,懶得再配環(huán)境,于是想找一個(gè)tensorflow版本(上面地址)。原項(xiàng)目是python2的,但我的環(huán)境是python3的,故遷移之,記錄如下。
二. 一些問(wèn)題
非原創(chuàng),一些整理。
1. make.sh修改
參考博客
2.print函數(shù)的問(wèn)題
因?yàn)樵?xiàng)目是python2的,但我的環(huán)境是python3,所以需要把所有的print改為print().
3.Cpickle的問(wèn)題
同樣是由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'問(wèn)題
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版本引起的,進(jìn)行類(lèi)型轉(zhuǎn)換
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變量的屬性。其實(shí)是自己手抖在修改print()的括號(hào)的時(shí)候造成的,小問(wèn)題。
三.結(jié)果
幾經(jīng)波折,終于初步搞定,運(yùn)行結(jié)果如下:
提供的幾張測(cè)試圖片上的效果如下: