简介
相信各位开发者在初次使用OpenCV时都遇到过这样的问题:网上搜索OpenCV编译教程,按照教程一步步做,执行CMake命令时怎么就卡在下载软件包 ADE: Download: v0.1.1f.zip 不动了?
事实上,为了增强自身性能和避免重复造轮子,OpenCV使用了一些第三方软件库,例如FFmpeg,oneTBB和ADE等等。在OpenCV构建过程中,根据用户的选择,CMake脚本会实时的从GitHub下载这些第三方软件库。然而,GitHub对不同网络环境的支持有限,我们难免会遇到下载超时等种种问题。
为了解决克隆OpenCV源码以及构建过程的下载问题,OpenCV中国团队联系了国内一家提供代码托管服务的网站GitCode.net,双方对OpenCV中国镜像的想法一拍即合,为广大OpenCV的开发者提供便利。
使用GitCode.net的OpenCV镜像
OpenCV对GitCode.net镜像支持的PR#21531刚刚被合并,尚未加入发行版,因此用户需要获取最新的OpenCV代码体验和使用GitCode.net的OpenCV镜像。OpenCV对镜像的支持考虑了以下三种不同的情况:
用户从GitCode.net克隆OpenCV源码
在此情况中,用户无需任何额外的设置,CMake脚本自动检测Git的源,自动从GitCode.net中下载第三方软件库:
代码语言:javascript复制$ git clone https://gitcode.net/opencv/opencv
$ cmake -B opencv-build opencv
....
-- ocv_init_download: Using gitcode-hosted mirror to download 3rdparty components.
-- Registering hook 'OPENCV_DOWNLOAD_PRE': /path/to/opencv/cmake/mirrors/gitcode.cmake
....
-- ADE: Downloading v0.1.1f.zip from https://gitcode.net/opencv/ade/-/archive/v0.1.1f/ade-v0.1.1f.zip
....
从以上的CMake输出日志可以看出成功使用GitCode镜像:
- ocv_init_download提示使用GitCode镜像下载第三方软件库;
- 相关的下载设置可在opencv源码opencv/cmake/mirrors/gitcode.cmake中找到;
- CMake从GitCode镜像中下载ADE包。
用户从GitHub.com克隆OpenCV源码
在此情况中,CMake脚本默认从GitHub下载第三方软件库。若将下载源改为GitCode镜像,则需在构建OpenCV时添加CMake选项-DOPENCV_DOWNLOAD_MIRROR_ID=gitcode:
代码语言:javascript复制$ git clone https://github.com/opencv/opencv
$ cmake -B opencv-build -DOPENCV_DOWNLOAD_MIRROR_ID=gitcode opencv
用户下载源码包
在此情况中,用户下载的源码包不含有git的信息,CMake脚本将默认从GitHub下载第三方软件库。若将下载源改为GitCode,用户需要在构建OpenCV时添加CMake选项-DOPENCV_DOWNLOAD_MIRROR_ID=gitcode:
代码语言:javascript复制$ # 在gitcode.net/opencv/opencv中点击'克隆'->'下载源代码zip'
$ # 或者在github.com/opencv/opencv中点击'Code'->'Download ZIP'
$ unzip opencv-4.x.zip
$ cmake -B opencv-build -DOPENCV_DOWNLOAD_MIRROR_ID=gitcode opencv-4.x
GitCode.net对OpenCV其他项目的支持
GitCode.net对OpenCV Organization做了镜像支持,各个OpenCV项目的镜像每天会进行同步更新。点击阅读原文即可访问https://gitcode.net/opencv了解更多信息。如果因网络受限而无法从GitHub.com下载opencv_zoo的模型,欢迎访问https://gitcode.net/opencv/opencv_zoo进行下载。
最后
在支持镜像的PR#21531中,自定义镜像也得到了一定程度的支持。若要使用自定义镜像,可参考opencv/cmake/mirrors/gitcode.cmake设置同文件夹下的custom.cmake,并且需要在相关Git服务商上创建相应镜像。
欢迎大家使用OpenCV的中国镜像。如果使用过程中遇到bug,或者发现还没有被镜像支持的第三方软件包,请留言或者提交issue,OpenCV中国团队将会及时处理。