最近对在调研基于双目的baseline在自动驾驶技术上的应用,我老大要我去查一些自动驾驶公司以及发布的demo,哪去找呀?摸摸索索发现github上有个不错的自动驾驶目标检测的demo,于是去研究了一下:
squeezeDet是自动驾驶实施目标检测论文原文:SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving
源代码:https://github.com/BichenWuUCB/squeezeDet
源代码里有下载以及使用步骤,但我是遇到许多坑,本着有install必block的体质,做个总结:
1、初学者建议直接按顺序config虚拟环境,因为运行此demo需要很多requirements,如果不熟悉的话很容易安装出错浪费大量时间,还有可能因为各软件之间的版本不对而增加工作量,因此,我就按要求配置了虚拟环境:
git clone https://github.com/BichenWuUCB/squeezeDet.git
cd ~
virtualenv env --python=python
source env/bin/activate
如果显示程序“virtualenv”尚未安装。 就sudo apt install virtualenv 一下。source后,前面会有个(env)标志
2、不知道是不是我理解问题吼,它2017年的代码,居然代码跟requirement中的python版本不符合。代码是Python2,requirement.txt中居然要求opencv-python3.2.0.6。这直接导致了
pip install -r requirements.txt
运行上面命令之后,你就有大段代码不兼容的问题要改了。(记得修改路径,不然会显示找不到文件)
cd squeezeDet/data
wget https://www.dropbox.com/s/a6t3er8f03gdl4z/model_checkpoints.tgz #下载model
tar -xzvf model_checkpoints.tgz #解压
rm model_checkpoints.tgz #移除压缩包
运行 python ./src/demo.py
我认为或许可以把requirements.txt中的版本号改成2,或许能直接成功。否则您将遇到:
and so on...
这些问题的解决方法遵循以下几个原则:
①Python版本问题。在Python3中:from A import B:A必须是上级文件夹目录,当A为.py文件时,表示引用A中的B函数,需要改成from .A import B;
try ...except Exception as e:代替: try ...except Exception, e:
print要加括号。
import cPickle 改成 import pickle
②line24: from config import *
line171: mc = kitti_squeezeDet_config.kitti_squeezeDet_config()指引用的是kitti_squeezeDet_config.py文件中的kitti_squeezeDet_config()函数,注意需包含上级目录。
③ 运行py文件的位置问题。在上级目录下的终端运行即可。
感谢:https://blog.csdn.net/weixin_31200719/article/details/79929932