系列文章目录

巧了,第一篇,目前什么都没有


文章目录

  • 系列文章目录
  • 前言
  • 一、OPENMP并行加速
    • 1.开启openMP
    • 2.指令及注意事项
  • 二、PCL直通滤波与法向量加速
    • 1.直通滤波
    • 2.法向量计算

前言

毕竟成为了高贵的算法工程师,还是要对代码稍微有点要求。其实目前很多东西还在复制粘贴阶段,这就是传说中的CV工程师吧,爱了爱了。

一、OPENMP并行加速

最近在做一个三维的检测项目,算法开发完发现速度还是有些慢。本来就是调用PCL和OPENCV做的,简单看起来没什么加速的内容了。
然后就发现了openMP这个还不错的东西,目前使用的功能很简单,就是在for循环之前加指令让for循环并行。步骤如下:

1.开启openMP

主要介绍在VS中和Cmake中开启
Visual Studio:
在项目上右键然后在c/c++中语言选项开启OpenMP支持即可
Cmake:
添加上述语句即可,测试以后发现还是在Cmake里加运行更快,无法证实且不明原因,就留下这个疑似谣言吧。

2.指令及注意事项

  int number_Porcs = omp_get_num_procs();cout << "procs:" << number_Porcs << endl;
#pragma omp parallel for num_threads(8)for (int i = 0; i < Box_list.size(); i++) {FasteningRes fasteningRes_temp;//单个扣件检测算法DetectionElasticBar(img_input, Box_list[i].box, Box_list[i].isleft, class_n_, image_path, fasteningRes_temp);//添加单个扣件检测结果到结果队列res[i] = fasteningRes_temp;}

#progma那条就是并行指令了,可以指定线程数,omp_get_num_procs()可以获取你电脑有几个线程。
其实还是有蛮多指令的,但我感觉精髓就是这个。
然后使用起来需要保证for循环内的结构块互不干扰,比如我的FasteningRes就在for内声明,要是在外部声明就是被共用了,会有问题。
然后最后本来是要用push_back()加到vector里,但OpenMP不能用pushback,所以我在之前加了个循环,先pushback进去,在在这边当数组用就可以了。

二、PCL直通滤波与法向量加速

1.直通滤波

有个震惊的发现,通过passthrough进行直通滤波居然比直接for循环滤波还慢大约6倍以上。以下为简单的时间对比,希望对大家有帮助:
我都不想看了,嘛回事儿?

2.法向量计算

当然,实测没差这么多,就差一倍。懒得细写,就这样喽。

算法加速篇(一)------OPENMP并行加速及PCL直通滤波和求法向量加速相关推荐

  1. OpenMP并行加速笛卡尔乘积

    1.字典字符集的笛卡尔乘积 问题描述: 对于给定的由字典字符集组合而成的表达式,求该表达式构成的所有元素.例如表达式[0-9][a-z],其中0-9表示10个数字,a-z表示26个小写字母,构成的所有 ...

  2. 内网、校园网BT下载必看帖(BitComet加速篇)

    内网.校园网BT下载必看帖(BitComet加速篇) 一.关于本文 1.首先感谢BitComet开发组为我们提供了这么一款高性能的BT下载客户端软件. 2.如果在本文的帮助下您提高了下载速度,那么请你 ...

  3. [转载]BitComet 加速篇

    内网.校园网BT下载必看帖(BitComet加速篇) 不一定非要是内网,或者校园网,ADSL其他的网络同样有不错的效果 一.关于本文 1.首先感谢BitComet开发组为我们提供了这么一款高性能的BT ...

  4. openMP 并行库

    最近项目需要优化一下运行速度,决定使用并行方式加速,由于 openMP 简单好用,决定学习一下并记录方便后续的学习 1.配置 使用的是VS2013,配置只需要两步: 1.新建工程 2.点击 菜单栏-& ...

  5. 《异常检测——从经典算法到深度学习》5 Opprentice——异常检测经典算法最终篇

    <异常检测--从经典算法到深度学习> 0 概论 1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法 3 基于One-Class SVM的异常检测算法 4 基于高斯概率密度异常检测 ...

  6. OpenMP并行编程计算π值及PSRS排序

    一. OpenMP简介 OpenMP是一个共享存储并行系统上的应用程序接口.它规范了一系列的编译制导.运行库例程和环境变量. 它提供了C/C++和FORTRAN等的应用编程接口,已经应用到UNIX.W ...

  7. 4. GC 算法(实现篇) - GC参考手册

    您应该已经阅读了前面的章节: 垃圾收集简介 - GC参考手册 Java中的垃圾收集 - GC参考手册 GC 算法(基础篇) - GC参考手册 学习了GC算法的相关概念之后, 我们将介绍在JVM中这些算 ...

  8. 深度优先搜索_0基础学算法 搜索篇第一讲 深度优先搜索

    0基础学算法 搜索篇第一讲 深度优先搜索 相信绝大多数人对于深度优先搜索和广度优先搜索是不会特别陌生的,如果我这样说似乎你没听说过,那如果我说dfs和bfs呢?先不说是否学习过它们,至少它们的大名应该 ...

  9. 漫画:小白为了面试如何刷题?(呕心沥血算法指导篇)

    来自:小浩算法 三年高考,五年刷题.leetcode不算从其他各处收录的题目,单就自己的题库,总共有1600+,如果按照每天刷一道的话,总共需要5年.那我们真的需要把这些题目全部刷完吗?如果不是,刷多 ...

最新文章

  1. 基于XMPP协议的aSmack源码分析
  2. Chrome开始集成图形识别 API(Shape Detection API)
  3. linux kernel中的module_init/initcall代码导读
  4. android 判断时间是否过期_眉笔眉粉有保质期吗?怎么判断眉笔眉粉是否过期?...
  5. Oracle入门(十四.18)之使用动态SQL
  6. 【牛客 - 157C】PH试纸(前缀和,或权值线段树,主席树)
  7. linux python开发环境sql数据迁移到mysql_linux环境下python怎样操作mysql数据库
  8. C#树状图 初始默认选中节点
  9. Factory Method (工厂方法)
  10. 使用console配置线连接真机路由器
  11. 条形码和区块链将彻底改变零售业
  12. Android逆向分析案例——某点评APP登陆请求数据解密
  13. 解决elementui的el-dialog 对话框 屏幕放大缩小不变形问题
  14. iOS苹方字体使用说明
  15. 决斗小游戏代码html,《游戏王:决斗链接》的基础玩法介绍
  16. 爬取微博热搜制作词云
  17. c程序设计语言k rpdf,《C程序设计语言》(KR)中文高清非扫描件
  18. 超牛逼!这款开源性能监控系统真强大~
  19. 详细设计 英文_谷歌英文网站如何优化?
  20. python中math.ceil是什么意思_带有Python示例的math.ceil()方法

热门文章

  1. 计算机二级选择题知识点汇总
  2. GY-39 气压,温湿度,光强度 传感器
  3. 学习大数据有哪些就业方向?
  4. 使用d2rq的第一步
  5. Shell脚本网站监控预警!自动化运维脚本!!!
  6. 1 尴尬的一代(写给1987—1991年出生的同学)
  7. Linux技巧--打造高效工作环境
  8. bzoj3926【ZJOI2015】诸神眷顾的幻想乡
  9. 计算机毕设Python+Vue在线药物配送系统(程序+LW+部署)
  10. 计算机操作系统试题库系统论文,计算机操作系统试题库(原)