Caffe 和PyCaffe 环境搭建和demo运行
主要问题集中在编译这一块,首先是caffe (C++ 项目)的依赖项,另外pycaffe 依赖项问题较多.
参考官网的安装说明,我这里重点只说坑, 环境基于Ubuntu16,Ubuntu14,都试过了。
首先简单说明下,Caffe 是基于C++源码(github)编译,在这个基础上再通过git clone py-faster-rcnn 这个项目来编译Python 的接口。
如下几个坑给后人查阅
Cython 编译
在py-faster-rcnn 项目中首先需要搞定Cython 的环境和编译,在 RepoRoot/lib 的setup.py 中,把GPU相关的代码都注释掉,再makeCaffe 和PyCaffe 编译
在faster-rcnn.. 中配置 Makefile.config, 然后make && make pycaffe, 在编译caffe时,可能会遇到某些库找不到,比如在ubuntu15,16上面 hdf5相关的库不在Makefile.config 默认指定的位置,参考hdf5 issue,在make文件中加上lib 的位置。另外再编译pycaffe接口之前,要搞定python先关的依赖项
将caffe-fast-rcnn/python目录下的requirements下的依赖都装一遍,for req in $(cat requirement.txt); do pip install $req; done
- 可能还会遇到找不到numpy ,这个要自己查一下numpy是放到 /usr/bin 下面的python/dist-package/下了,还是/usr/local/bin/python/.. 替换下MakeFile.config中的 python 依赖包地址
最后还可能遇到个pyyaml 的问题,把这个库用pip 装一下。不然import yaml 找不到module
因为暂时采用CPU模式,GPU相关的都要注释掉,包括demo.py 中的 gpu nms_wrapper 相关的语句。
- 最终还可能遇到机器内存不够的情况。。SWAP 把云服务器或者虚拟机的虚拟内存提高点,一般实体机不会遇到这个情况。
以上过程中找到的一些博文,作为填坑的参考:
纯CPU环境下装Caffe
CPU环境下装Caffe2
github上关于CPU运行的几个issue
一些关于机器学习与GIS应用结合的思考
看了些gis公司关于这方面的研究,主要有几类应用方向:
- 基于图像的对象识别
例如基于高分影像的道路对象识别,用于更新道路信息,当然也可用于城市空间中道路拥堵的分析,车辆的识别和追踪。 基于大数据的,不仅限于图像。维度更多,异构,应用难度大。例如,基于用户反馈数据的道路拥堵分析。
结合硬件,可以赋予无人机,无人车自动驾驶的功能。。那么其中要求控制器(例如手机或者pc)具有图像识别算法的运行环境(caffe2和tensorflow 都实现了,包括较早的opencv都可以做到)和基础设施,在读取无人机回传图像的同时做对象识别,匹配事先制定的规则,自行调整飞行方向。
初步环境已经搭好了,后面继续研究如何实时对框选样本进行识别。