OpenCV对的并行处理

这篇具有很好参考价值的文章主要介绍了OpenCV对的并行处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

并行处理

一些 OpenCV 算法可以使用多线程来加速处理。OpenCV 可以使用线程后端之一进行构建。

后端 选择 违约 平台 描述
线程 WITH_PTHREADS_PF 类 Unix 基于 pthreads 库的默认后端可在 Linux、Android 和其他类 Unix 平台上使用。线程池是在OpenCV中实现的,可以通过环境变量进行控制。有关详细信息,请查看 modules/core/src/parallel_impl.cpp 文件中的源代码。OPENCV_THREAD_POOL_*
并发 不适用 窗户 并发运行时在 Windows 上可用,除非启用了其他后端,否则将在支持的平台上打开
最大公约数 不适用 苹果 Grand Central Dispatch 可在 Apple 平台上使用,除非启用其他后端,否则将自动打开。使用全局系统线程池。
待定 WITH_TBB 关闭 倍数 线程构建块是一个用于并行编程的跨平台库。
OpenMP WITH_OPENMP 关闭 倍数 OpenMPAPI 依赖于编译器支持。
HPX型 WITH_HPX 关闭 倍数 高性能 ParallelX 是一个实验性的后端,更适合多处理器环境。
  • 注意

    OpenCV 可以从 GitHub 下载和构建 TBB 库,此功能可以通过选项启用。BUILD_TBB

线程插件

从 4.5.2 版本开始,OpenCV 支持动态加载的线程后端。目前只支持单独的编译过程:首先,您必须使用一些默认的并行后端(例如 pthreads)构建 OpenCV,然后构建每个插件并将生成的二进制文件复制到 libbin 文件夹中。

选择 违约 描述
PARALLEL_ENABLE_PLUGINS 启用插件支持,如果禁用此选项,OpenCV 将不会尝试加载任何内容

查看 OpenCV 安装概述,了解独立插件构建说明。

GUI 后端(highgui 模块)

OpenCV 依赖于各种 GUI 库进行窗口绘制。

选择 违约 平台 描述
WITH_GTK Linux操作系统 GTK 是 Linux 和类 Unix 操作系统中的常用工具包。默认情况下,如果找到,将使用版本 3,可以使用该选项强制使用版本 2。WITH_GTK_2_X
WITH_WIN32UI 窗户 WinAPI 是 Windows 中的标准 GUI API。
不适用 macOS操作系统 Cocoa 是 macOS 中使用的框架。
WITH_QT 关闭 跨平台 Qt是一个跨平台的GUI框架。
  • 注意

    使用 Qt 支持编译的 OpenCV 启用了高级 highgui 界面,有关详细信息,请参见 Qt New Functions。

OpenGL的

WITH_OPENGL(默认:OFF)

OpenGL 集成可用于绘制具有以下后端的硬件加速窗口:GTK、WIN32 和 Qt。并启用与 OpenGL 的基本互操作性,有关详细信息,请参阅 OpenGL 互操作性和 OpenGL 支持。

HighGUI 插件

从 OpenCV 4.5.3 开始,GTK 后端可以构建为动态加载的插件。可以使用以下选项来控制此机制:

选择 违约 描述
HIGHGUI_ENABLE_PLUGINS 完全启用或禁用插件。
HIGHGUI_PLUGIN_LIST 以逗号或分号分隔的要编译为插件的后端名称列表。支持的名称包括 gtk、gtk2、gtk3all

查看 OpenCV 安装概述,了解独立插件构建说明。

深度学习神经网络推理后端和选项(dnn 模块)

OpenCV 有自己的 DNN 推理模块,该模块具有自己的内置引擎,但也可以使用其他库来优化处理。可以在单个构建中启用多个后端。选择在运行时自动或手动进行。

选择 违约 描述
WITH_PROTOBUF 启用 protobuf 库搜索。OpenCV 可以构建自己的库副本,也可以使用外部库。dnn 模块需要此依赖项,如果找不到模块,则禁用该模块。
BUILD_PROTOBUF 构建自己的 protobuf 副本。如果要使用外部库,则必须禁用。
PROTOBUF_UPDATE_FILES 关闭 重新生成所有 .proto 文件。必须安装与使用的 Protobuf 版本兼容的 Protoc 编译器。
OPENCV_DNN_OPENCL 启用内置 OpenCL 推理后端。
WITH_INF_ENGINE 关闭 自 OpenVINO 2022.1 起已弃用启用英特尔推理引擎 (IE) 后端。允许以IE格式(.xml + .bin)执行网络。推理引擎必须作为 OpenVINO 工具套件的一部分安装,也可以作为从源代码构建的独立库安装。
INF_ENGINE_RELEASE 2020040000 自 OpenVINO 2022.1 起已弃用定义与 OpenVINO 工具套件版本绑定的推理引擎库版本。必须是 10 位字符串,例如 OpenVINO 2020.4 的 2020040000
WITH_NGRAPH 关闭 自 OpenVINO 2022.1 起已弃用启用英特尔 NGraph 库支持。该库是推理引擎后端的一部分,它允许执行从 OpenCV 支持的多种格式的文件中读取的任意网络:Caffe、TensorFlow、PyTorch、Darknet 等。必须安装 NGraph 库,它包含在推理引擎中。
WITH_OPENVINO 关闭 启用英特尔 OpenVINO 工具套件支持。应用于 OpenVINO>=2022.1 而不是 和 。WITH_INF_ENGINE``WITH_NGRAPH
OPENCV_DNN_CUDA 关闭 启用 CUDA 后端。必须安装 CUDA、CUBLAS 和 CUDNN。
WITH_HALIDE 关闭 使用实验性的 Halide 后端,它可以在运行时为 dnn 层生成优化的代码。必须安装卤化物。
WITH_VULKAN 关闭 启用实验性 Vulkan 后端。不需要额外的依赖项,但可以使用外部 Vulkan 标头 ()。VULKAN_INCLUDE_DIRS

安装布局

安装根目录

若要安装生成的二进制文件,应配置根位置。默认值取决于发行版,在 Ubuntu 中通常设置为 .它可以在配置过程中更改:/usr/local

cmake -DCMAKE_INSTALL_PREFIX=/opt/opencv ../opencv

此路径可以相对于当前工作目录,在以下示例中,它将设置为:<absolute-path-to-build>/install

cmake -DCMAKE_INSTALL_PREFIX=安装 ../opencv

生成库后,可以使用以下命令将所有文件复制到配置的安装位置:

cmake --构建。--target 安装

要以普通用户身份将二进制文件安装到系统位置(例如),必须使用提升的权限运行上一个命令:/usr/local

sudo cmake --build 。--target 安装

  • 注意

    在某些平台 (Linux) 上,可以在安装过程中删除符号信息。二进制文件将缩小 10-15%,但调试将受到限制:cmake --构建。--目标安装/剥离

组件和位置

选项 cane 用于控制是否安装库的一部分:

选择 违约 描述
INSTALL_C_EXAMPLES 关闭 samples/cpp 目录安装 C++ 示例源。
INSTALL_PYTHON_EXAMPLES 关闭 samples/python 目录安装 Python 示例源。
INSTALL_ANDROID_EXAMPLES 关闭 samples/android 目录安装 Android 示例源。
INSTALL_BIN_EXAMPLES 关闭 安装预构建的示例应用程序(必须启用)。BUILD_EXAMPLES
INSTALL_TESTS 关闭 安装测试(必须启用)。BUILD_TESTS
OPENCV_INSTALL_APPS_LIST 要安装的预构建应用程序的逗号或分号分隔列表(来自 apps 目录)

以下选项允许相对于安装前缀修改组件的安装位置。这些选项的默认值取决于平台和其他选项,请查看 cmake/OpenCVInstallLayout.cmake 文件了解详情。

选择 组件
OPENCV_BIN_INSTALL_PATH 应用程序, 动态库 (WIN)
OPENCV_TEST_INSTALL_PATH 测试应用程序
OPENCV_SAMPLES_BIN_INSTALL_PATH 示例应用程序
OPENCV_LIB_INSTALL_PATH 动态库、导入库 (WIN)
OPENCV_LIB_ARCHIVE_INSTALL_PATH 静态库
OPENCV_3P_LIB_INSTALL_PATH 第三方库
OPENCV_CONFIG_INSTALL_PATH CMake 配置包
OPENCV_INCLUDE_INSTALL_PATH 头文件
OPENCV_OTHER_INSTALL_PATH 额外的数据文件
OPENCV_SAMPLES_SRC_INSTALL_PATH 示例源
OPENCV_LICENSES_INSTALL_PATH 包含的第三方组件的许可证
OPENCV_TEST_DATA_INSTALL_PATH 测试数据
OPENCV_DOC_INSTALL_PATH 文档
OPENCV_JAR_INSTALL_PATH 带有 Java 绑定的 JAR 文件
OPENCV_JNI_INSTALL_PATH Java 绑定的 JNI 部分
OPENCV_JNI_BIN_INSTALL_PATH 来自 Java 绑定的 JNI 部分的动态库

以下选项可用于更改常见方案的安装布局:

选择 违约 描述
INSTALL_CREATE_DISTRIB 关闭 调整多个内容以生成 Windows 和 Android 发行版。
INSTALL_TO_MANGLED_PATHS 关闭 将一个级别添加到多个安装位置,以允许并行安装。例如,启用此选项后,标头将安装到 /usr/include/opencv-4.4.0 而不是 /usr/include/opencv4

其他功能

选择 违约 描述
OPENCV_ENABLE_NONFREE 关闭 已知库中包含的某些算法受专利保护,默认情况下处于禁用状态。
OPENCV_FORCE_3RDPARTY_BUILD 关闭 一次启用所有选项。BUILD_
OPENCV_IPP_ENABLE_ALL 关闭 一次启用所有选项。OPENCV_IPP_
ENABLE_CCACHE ON(在类 Unix 平台上) 启用 ccache 自动检测。该工具包装编译器调用并缓存结果,可以显著缩短重新编译时间。
ENABLE_PRECOMPILED_HEADERS ON(用于 MSVC) 启用预编译标头支持。缩短了构建时间。
BUILD_DOCS 关闭 启用文档构建(doxygendoxygen_cppdoxygen_python doxygen_javadoc目标)。必须安装 Doxygen 才能构建 C++ 文档。必须安装 Python 和 BeautifulSoup4 才能构建 Python 文档。必须安装 Javadoc 和 Ant 才能构建 Java 文档(Java SDK 的一部分)。
ENABLE_PYLINT ON(启用文档或示例时) 使用 Pylint(check_pylint目标)启用 python 脚本检查。必须安装 Pylint。
ENABLE_FLAKE8 ON(启用文档或示例时) 使用 Flake8(check_flake8目标)启用 python 脚本检查。必须安装 Flake8。
BUILD_JAVA 启用 Java 包装器构建。必须安装 Java SDK 和 Ant。
BUILD_FAT_JAVA_LIB ON(适用于静态 Android 版本) 构建单个opencv_java动态库,其中包含与 Java 绑定捆绑在一起的所有库功能。
BUILD_opencv_python2 构建 python2 绑定(已弃用)。必须安装带有开发文件和 numpy 的 Python。
BUILD_opencv_python3 生成 python3 绑定。必须安装带有开发文件和 numpy 的 Python。
CAROTENE_NEON_ARCH '(自动)' 将霓虹灯拱门切换为胡萝卜素。如果它没有设置任何内容,它将被自动检测。如果设置为 8,则使用 ARMv8(及更高版本)。否则,将使用 ARMv7。

TODO:需要单独的教程来涵盖绑定构建

自动构建

某些功能是专门为自动化构建环境添加的,例如持续集成和打包系统。

选择 违约 描述
ENABLE_NOISY_WARNINGS 关闭 启用多个被视为干扰的编译器警告,即重要性低于其他警告。这些警告通常被忽略,但在某些情况下可能值得检查。
OPENCV_WARNINGS_ARE_ERRORS 关闭 将编译器警告视为错误。生成将停止。
ENABLE_CONFIG_VERIFICATION 关闭 对于每个已启用的依赖项(选项),请验证是否已找到并启用它(变量)。默认情况下,如果未找到依赖项,功能将静默关闭,但启用此选项后,cmake 配置将失败。方便于需要稳定库配置的打包系统,不依赖于环境波动。WITH_``HAVE_
OPENCV_CMAKE_HOOKS_DIR OpenCV 允许通过在每个阶段和子阶段添加自定义钩子脚本来自定义配置过程。在此变量设置的目录中具有预定义名称的 cmake 脚本将包含在各个配置阶段之前和之后。文件名示例:CMAKE_INIT.cmakePRE_CMAKE_BOOTSTRAP.cmakePOST_CMAKE_BOOTSTRAP.cmake 等。其他名称未记录在案,可以通过搜索ocv_cmake_hook宏调用在项目 cmake 文件中找到。
OPENCV_DUMP_HOOKS_FLOW 关闭 在每个 cmake 钩子脚本调用上启用调试消息打印。

Contrib 模块

如前所述,模块中使用了以下构建选项,可以通过设置选项将这些额外的模块添加到最终构建中。opencv_contrib``DOPENCV_EXTRA_MODULES_PATH

选择 违约 描述
WITH_CLP 关闭 将添加模块中所需的 coinor 线性规划库构建支持。确保安装 coinor-clp 的开发库。videostab

 

   在线教程

  • 麻省理工学院人工智能视频教程 – 麻省理工人工智能课程
  • 人工智能入门 – 人工智能基础学习。Peter Norvig举办的课程
  • EdX 人工智能 – 此课程讲授人工智能计算机系统设计的基本概念和技术。
  • 人工智能中的计划 – 计划是人工智能系统的基础部分之一。在这个课程中,你将会学习到让机器人执行一系列动作所需要的基本算法。
  • 机器人人工智能 – 这个课程将会教授你实现人工智能的基本方法,包括:概率推算,计划和搜索,本地化,跟踪和控制,全部都是围绕有关机器人设计。
  • 机器学习 – 有指导和无指导情况下的基本机器学习算法
  • 机器学习中的神经网络 – 智能神经网络上的算法和实践经验
  • 斯坦福统计学习

有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

opencv 加载 并行执行插件,opencv,人工智能,计算机视觉

opencv 加载 并行执行插件,opencv,人工智能,计算机视觉

人工智能书籍

  • OpenCV(中文版).(布拉德斯基等)
  • OpenCV+3计算机视觉++Python语言实现+第二版
  • OpenCV3编程入门 毛星云编著
  • 数字图像处理_第三版
  • 人工智能:一种现代的方法
  • 深度学习面试宝典
  • 深度学习之PyTorch物体检测实战
  • 吴恩达DeepLearning.ai中文版笔记
  • 计算机视觉中的多视图几何
  • PyTorch-官方推荐教程-英文版
  • 《神经网络与深度学习》(邱锡鹏-20191121)

  • opencv 加载 并行执行插件,opencv,人工智能,计算机视觉

第一阶段:零基础入门(3-6个月)

新手应首先通过少而精的学习,看到全景图,建立大局观。 通过完成小实验,建立信心,才能避免“从入门到放弃”的尴尬。因此,第一阶段只推荐4本最必要的书(而且这些书到了第二、三阶段也能继续用),入门以后,在后续学习中再“哪里不会补哪里”即可。

opencv 加载 并行执行插件,opencv,人工智能,计算机视觉

第二阶段:基础进阶(3-6个月)

熟读《机器学习算法的数学解析与Python实现》并动手实践后,你已经对机器学习有了基本的了解,不再是小白了。这时可以开始触类旁通,学习热门技术,加强实践水平。在深入学习的同时,也可以探索自己感兴趣的方向,为求职面试打好基础。

opencv 加载 并行执行插件,opencv,人工智能,计算机视觉

第三阶段:工作应用

opencv 加载 并行执行插件,opencv,人工智能,计算机视觉

这一阶段你已经不再需要引导,只需要一些推荐书目。如果你从入门时就确认了未来的工作方向,可以在第二阶段就提前阅读相关入门书籍(对应“商业落地五大方向”中的前两本),然后再“哪里不会补哪里”。

 有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

opencv 加载 并行执行插件,opencv,人工智能,计算机视觉

opencv 加载 并行执行插件,opencv,人工智能,计算机视觉

opencv 加载 并行执行插件,opencv,人工智能,计算机视觉文章来源地址https://www.toymoban.com/news/detail-827049.html

到了这里,关于OpenCV对的并行处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV(加载、修改、保存图像)

    目录 1、图像加载 2、显示图像 3、修改图像 4、图像保存 OpenCV官方文档查询地址:OpenCV: OpenCV modules  加载图像(用cv::imread ) imread 功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称 第二个参数,表示加载的图像是什么类型,支持常见的三个参数值: I

    2024年02月12日
    浏览(42)
  • OpenCV 01(图像加载与显示)

    现在说的机器视觉(Machine Vision)一般指计算机视觉(Computer Vision), 简单来说就是研究如何使机器看懂东西。就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。 人脸识别

    2024年02月09日
    浏览(32)
  • 【OpenCV】P2 程序加载显示图片

    在 Opencv 中,如果想要加载展示一张图片,有以下几个步骤: 读取图像 :根据指定路径读取图像,将图像转化为数字矩阵形式; 创建窗口 :创建图像显示窗口,命名窗口名称; 显示图像 :通过窗口以数字矩阵形式展示图像; 释放内存 :展示完成,释放内存。 OpenCV 提供函

    2024年01月25日
    浏览(35)
  • 人工智能-OpenCV+Python实现人脸识别(人脸检测)

    在OpenCV中使用Haar特征检测人脸,那么需要使用OpenCV提供的xml文件(级联表)在haarcascades目录下。这张级联表有一个训练好的AdaBoost训练集。首先要采用样本的Haar特征训练分类器,从而得到一个级联的AdaBoost分类器。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征

    2024年02月06日
    浏览(104)
  • OpenCV(视频加载与摄像头使用)

    目录 1、VideoCapture类 2、视频属性get()  3、视屏文件保存

    2024年02月12日
    浏览(53)
  • QImage加载opencv读取的图片出错

    今天写opencv的时候, 突然发现一件很奇怪的事情, 用摄像头读取的图片, 用QImage加载的时候传入img.data, 一切都很正常, 但是如果我是从保存的图片读取灰度图, 传入img.data, 它会告诉我QImage不能传入memoryview, 但是我打了断点, 也打印过, 它们确实都是memoryview, 而且

    2024年04月13日
    浏览(41)
  • 加载美女图片之OpenCV 图像读取与显示

    📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c++和openCv阶段——目标Windows,MySQL,Qt,数据结构与算法,openCv,Linux,多线程,会持续分享学习成果和小项目的 📖作者主页:热爱编程的小K 📖专栏链接:OpenCV 🎉欢迎各位→点赞👏 + 收藏💞 + 留言🔔​ 💬

    2023年04月15日
    浏览(68)
  • 人工智能算法工程师面试题——之OpenCV必背汇总(四)

    在OpenCV中,图像融合通常指的是将两个或更多图像以某种方式组合在一起,以创建一个新的图像。这个过程可以用于多种目的,比如艺术效果、图像修复或信息增强。实现图像融合的一种常见方法是通过加权求和,也就是每个像素位置上将不同图像的像素值按照一定的权重相

    2024年02月21日
    浏览(50)
  • OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture

    OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture 出现这种情况基本是因为: VideoCapture 读取视频路径错误。 比如:在这里我电脑不知道为什么默认摄像头是1不是0,所以视频读取错误,我改为 VideoCapture cap(1)就对了。 同理,如果调用的不是

    2024年01月23日
    浏览(44)
  • OpenCV加载资源文件中的PNG图像资源(Windows平台)

    在VS中右键\\\"资源文件\\\"-添加-资源-选择要添加的图片-修改图片的ID为IDB_PNG_BACKGROUND(可以是别的),随后通过如下代码将图像进行加载即可:

    2024年02月14日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包