KittiSeg 是基于FCN的,去年的时候是Kitties road segmentation的第一名。 最近正好在看这一块的内容,就先try一下。代码地址 https://github.com/MarvinTeichmann/KittiSeg
git clone https://github.com/MarvinTeichmann/KittiSeg.git #clone this repository
git submodule update --init --recursive #初始化submodules
由于该代码是在linux系统下的,所以需要修改一些细节。
1.Linux和win的不同
win 和 Linux 不一样,会导入不了submodle的包
所以在主文件夹下添加文件install_windows.bat 内容如下
del %~dp0\incl\evaluation
del %~dp0\incl\seg_utils
del %~dp0\incl\tensorflow_fcn
del %~dp0\incl\tensorvision
mklink /D %~dp0\incl\evaluation %~dp0\submodules\evaluation
mklink /D %~dp0\incl\seg_utils %~dp0\submodules\evaluation\kitti_devkit
mklink /D %~dp0\incl\tensorflow_fcn %~dp0\submodules\tensorflow-fcn
mklink /D %~dp0\incl\tensorvision %~dp0\submodules\TensorVision\tensorvision
echo ok
pause
并用管理员身份运行
2.python2 和 3 的不兼容
运行 train.py报错:
gives tensorflow ValueError: No variables provided
根据https://github.com/MarvinTeichmann/KittiSeg/issues/35
将在optimizer/generic_optimizer.py 中 grads_and_vars = zip(clipped_grads, tvars) 改为 grads_and_vars = list(zip(clipped_grads, tvars))
解决
报错:
"kitti_seg_input.py", line 355, in start_enqueuing_threads gen.next()
根据https://github.com/MarvinTeichmann/KittiSeg/issues/69 fork一个3.5的版本
https://github.com/tylercode362/KittiSeg/tree/hotfix/python3.5_support
报错:
File "incl\tensorvision\train.py", line 163, in _print_eval_dict print_str = string.join([nam + ": %.2f" for nam in eval_names], AttributeError: module 'string' has no attribute 'join'
更改incl\tensorvision\train.py", linse 163,
print_str = ",".join([nam + ": %.2f" for nam in eval_names])
train.py 至此可以跑通了。
3.其他问题
运行 train.py报错:
ERROR Enter URL in hypes/kittiSeg.json
尝试 https://github.com/MarvinTeichmann/KittiSeg/issues/134
将 vgg.npy 放在两处 KittiSeg/DATA 与KittiSeg/DATA/wights 解决(另,win不分大写小写,所以data和DATA是一样的)