来源:Github 翻译:孙菁
本目录中的代码实现了我们论文中(https://arxiv.org/abs/1612.01051)提出的模型一个用于自动驾驶中实时物体检测的统一、小型且低耗的完全卷积神经网络。如果我们的工作对您的研究有帮助,您可做如下引用:
@inproceedings{squeezedet,
Author = {Bichen Wu and Forrest Iandola and Peter H. Jin and Kurt Keutzer},
Title = {SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving},
Journal = {arXiv:1612.01051},
Year = {2016}
安装
Linux环境下可执行以下命令:
git clone https://github.com/BichenWuUCB/squeezeDet.git
我们以$SQDT_ROOT来调用SqueezeDet的顶层目录。
1.以下的操作假设运行的Python版本是Python2.7。找到你的用户主目录下,并在此创建虚拟环境。
cd ~virtualenv env --python=python
2.启动虚拟环境
source env/bin/activate
使用pip安装所需的Python工具包
pip install -r requirements.txt
演示
从这里(https://www.dropbox.com/s/a6t3er8f03gdl4z/model_checkpoints.tgz?dl=0)下载SqueezeDet模型的参数,解压,并将解压后的文件放在$SQDT_ROOT/data/目录下。命令行下的命令如下:
cd $SQDT_ROOT/data/wget https://www.dropbox.com/s/a6t3er8f03gdl4z/model_checkpoints.tgztar -xzvf model_checkpoints.tgzrm model_checkpoints.tgz
现在我们可以运行Demo了。执行以下命令可以检测样本中的图像
$SQDT_ROOT/data/sample.png,
cd $SQDT_ROOT/python ./src/demo.py
如果上述安装都正确的话,执行完Demo后将会生成如下的图片:
如果想检测其他图片,可以修改input_path=./data/*.png使其指向其他的图片。由于输入的图片会被缩放为1242x375的分辨率(KITTI图片分辨率),所以当输入图片接近此分辨率时模型的效果最佳。
SqueezeNet实现的是实时的物体检测,因此可以用来检测一段视频。之后我们会发布检测视频的Demo。
训练及验证
从这里(图片:http://www.cvlibs.net/download.php?file=data_object_image_2.zip,标签:http://www.cvlibs.net/download.php?file=data_object_label_2.zip)下载KITTI物体检测的数据集,并将它们放到$SQDT_ROOT/data/KITTI/目录下,解压后会生成$SQDT_ROOT/data/KITTI/training/ 和$SQDT_ROOT/data/KITTI/testing/两个子目录。
现在,我们需要将原来的训练集重新划分为训练集和验证集。
cd $SQDT_ROOT/data/KITTI/mkdir ImageSetscd ./ImageSetsls ../training/image_2/ | grep ".png" | sed s/.png// |