习惯了使用腾讯或百度等AI SDK,调一调API接口,就能完成人脸识别,好像很酷的样子。不过长此以往,是不是就会成为一个“API调用师”呢?小公司慢慢地会变成大公司的触手,只能应用或只会使用大公司希望小公司用的技能,掐住小公司的喉咙。被少数资本集团垄断支配的感觉应该不好吧?
作为个人改变不了什么大环境,就尽量自己挣扎下吧!正好项目需要用到OpenCV,那么就从这里开始吧!
下载Opencv Source包
1 | wget https://github.com/opencv/opencv/archive/4.5.2.zip ./ |
下载完成后,解压待用,文件夹名可以修改,也可以不改。
下载第三方库IPPICV
如果不翻墙,大概率在生产配置文件的时候,会报错说无法下载IPPICV库,所以我们需要手动下载,然后指定编译时去本地文件夹下载。
打开GITHUB仓库去下载:
https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20191018点击:Code下载按钮,下载到本地解压。
修改OpenCV source包中的配置文件,使编译OpenCV时,从手动下载的IPPICV文件夹安装。
修改文件路径:~/Downloads/opencv-4.5.2/3rdparty/ippicv/ippicv.cmake的第43行:
“https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
为本地刚下载、解压好的文件目录1
2
3"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
请user为当前用户名,苹果电脑可以使用~,ubuntu不识别~.
"file://home/user/download/opencv_3rdparty-ippicv-master_20191018/ippicv/"
安装cmake
如果敲入命令行:cmake,提示没有找到这个命令,则需要先安装cmake.
1 | cmake |
1 | sudo apt install cmake |
如果安装很慢,记得要将apt的源切换到国内的镜像哦。
生成配置文件,准备开始编译
- 进入opencv 文件夹,建立build文件夹,进入build文件夹。然后查看生成的配置文件和结果,看哪些库是缺少的,把可能用得到的库安装起来,再重新生成编译配置文件,再开始真正的编译。
1
2
3mkdir build
cd build
cmake ..
安装编译OpenCV缺少的库
有些库是不可缺少的,有些是可选的。自己根据需要,或编译失败的提示,多次尝试就可以了。
例如,缺少ccache(加快编译速度),ant(执行一些任务)就直接安装:
1
sudo apt install ccache ant libpng-dev pkg-config
安装OpenBlas
openblas 是一个开源的矩阵计算库,包含了诸多的精度和形式的矩阵计算算法。就精度而言,包括float和double,两种数据类型的数据,其矩阵调用函数也是不一样。不同矩阵,其计算方式也是有所不同,(姑且认为向量也是一维矩阵),例如,向量与向量之间的计算,向量与矩阵之间的计算,矩阵与矩阵之间的计算。1
sudo apt-get install libopenblas-dev
安装FFMPEG需要的库
1
sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavresample-dev
也许还有几个库没有安装,例如GUI相关的,如果不需要的话就不用安装了。
正式编译
在build文件夹,输入命令开始编译。
1 | make |
编译速度感人,你可以去拖个地,洗个衣服,再做个饭回来。
可能是我编译的比较全,花了2个小时。
安装
检查下build/bin下是否存在opencv-452.jar,如果有大概率编译成功了。
在build文件夹执行安装命令,将库文件安装到/usr/local文件夹
1 | sudo make install |
最后
安装完毕,才是开始。算是萌新入手了新手武器,首先找到自带的例子踏上征程吧!