资讯专栏INFORMATION COLUMN

opencv python 优化

宠来也 / 453人阅读

摘要:此处仅注明相关的内容,并提供重要来源的链接。一旦工作,对其进行分析,找到瓶颈并进行优化。尽可能避免在中使用循环,尤其是双循环三循环等。尽可能最大程度地保存算法代码,因为和针对向量运算进行了优化。

Performance Measurement and Improvement Techniques

1使用OpenCV测量性能

cv2.getTickCount:函数返回参考事件(如机器开启时刻)到调用此函数的时钟周期数. 因此,如果在函数执行之前和之后调用它,则会获得用于执行函数的时钟周期数.
cv2.getTickFrequency:函数返回时钟周期的频率,或每秒钟的时钟周期数.

如果要在几秒内找到执行时间:
代码:

import cv2

e1 = cv2.getTickCount()
# your code execution
e2 = cv2.getTickCount()
time = (e2 - e1)/ cv2.getTickFrequency()
print(time)

输出:
9.909108700445166e-06
2 OpenCV中的默认优化

许多OpenCV功能都使用SSE2,AVX等进行了优化,当然它也包含未经优化的代码。 因此,如果我们的系统支持这些功能,我们应该利用它们(几乎所有现代处理器都支持它们).编译时默认启用它, 因此,OpenCV运行优化代码(如果已启用),否则运行未优化代码。 您可以使用cv2.useOptimized()来检查它是否已启用/禁用,并使用cv2.setUseOptimized()来启用/禁用它.

代码

# check if optimization is enabled
cv2.useOptimized()

输出:True

# Disable it
cv2.setUseOptimized(False)
cv2.useOptimized()

输出:False
性能优化技术

有几种技术和编码方法可以利用Python和Numpy的最大性能。 此处仅注明相关的内容,并提供重要来源的链接。 这里要注意的主要是,首先尝试以简单的方式实现算法。 一旦工作,对其进行分析,找到瓶颈并进行优化。

尽可能避免在Python中使用循环,尤其是双循环/三循环等。它们本身就很慢。

尽可能最大程度地保存算法/代码,因为Numpy和OpenCV针对向量运算进行了优化。

Exploit缓存一致性。

除非需要,否则不要复制数组。 尝试使用视图。 阵列复制是一项昂贵的操作。

即使在完成所有这些操作之后,如果您的代码仍然很慢,或者使用大型循环是不可避免的,请使用其他库(如Cython)来加快速度。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41973.html

相关文章

  • 千呼万唤始出来,OpenCV 4.0正式发布!

    摘要:目前,支持尚未完成仅支持加载编码的和,还未支持编码。部分支持对象检测网络的版本缺少一些提供矩形列表的最终图层。而且,此更改也已添加到分支。请注意,仅在英特尔上进行测试,因此仍需要额外的。为了使实时采集处理有高效,在模块中更新了支持。 OpenCV 4.0 正式版来啦!虽然官网还没更新,但Github已经放出来了!重回英特尔的OpenCV终于迎来一次大版本更新,增加了诸多新特性,快来一起看看吧...

    nifhlheimr 评论0 收藏0
  • 机器视觉、模式识别库汇总

    摘要:十开放模式识别项目开放模式识别项目,致力于开发出一套包含图像处理计算机视觉自然语言处理模式识别机器学习和相关领域算法的函数库。 一、开源生物特征识别库 OpenBROpenBR 是一个用来从照片中识别人脸的工具。还支持推算性别与年龄。使用方法:$ br -algorithm FaceRecognition -compare me.jpg you.jpg二、计算机视觉库 OpenCVOpenC...

    habren 评论0 收藏0
  • 女朋友嫌我拍的照片有雾,连夜用OpenCV写出❤️去雾算法❤️逃过一劫(收藏保命)

    ❤️欢迎订阅《从实战学python》专栏,用python实现爬虫、办公自动化、数据可视化、人工智能等各个方向的实战案例,有趣又有用!❤️ 更多精品专栏简介点这里 治愈生活的良方 就是保持对生活的热爱 前言 哈喽,大家好,我是一条。 每次和女朋友出去玩,拍照是必须的,天气好还行,天气要是不好,加上我这破手机,那拍的简直惨不忍睹,自己都不过去。 但是没什么能难倒程序员的,为了不挨骂,连夜写出去雾...

    DTeam 评论0 收藏0
  • [译]OpenCV Text Detection (EAST text detector)

    摘要:的文本检测器是一种基于新颖架构和训练模式的深度学习模型。深度学习文本检测器图文本检测全卷积网络的结构等人的图。随着和的发布,我们现在可以使用一种名为的基于深度学习的文本检测器,它基于等人的年论文一种高效精确的场景文本检测器。 by Adrian Rosebrock on August 20, 2018 in Deep Learning, Optical Character Recogn...

    VincentFF 评论0 收藏0
  • opencv python 霍夫线变换

    摘要:比这更短的线段被拒绝了。最大限度允许线段之间的间隙把它们当作一条线来对待 Hough Line Transform 霍夫变换是一种检测任何形状的流行技术,可以检测形状,即使它被破坏或扭曲一点点.一条线可以表示成y = mx + c或参数形式,像ρ=xcosθ+ysinθ,其中ρ是从原点到直线的垂直距离,θ角是由这条垂线和水平轴以逆时针的方向形成的(这个方向取决于你如何表示坐标系统,这...

    dingda 评论0 收藏0

发表评论

0条评论

宠来也

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<