摘要:此處僅注明相關(guān)的內(nèi)容,并提供重要來(lái)源的鏈接。一旦工作,對(duì)其進(jìn)行分析,找到瓶頸并進(jìn)行優(yōu)化。盡可能避免在中使用循環(huán),尤其是雙循環(huán)三循環(huán)等。盡可能最大程度地保存算法代碼,因?yàn)楹歪槍?duì)向量運(yùn)算進(jìn)行了優(yōu)化。
Performance Measurement and Improvement Techniques
1使用OpenCV測(cè)量性能cv2.getTickCount:函數(shù)返回參考事件(如機(jī)器開啟時(shí)刻)到調(diào)用此函數(shù)的時(shí)鐘周期數(shù). 因此,如果在函數(shù)執(zhí)行之前和之后調(diào)用它,則會(huì)獲得用于執(zhí)行函數(shù)的時(shí)鐘周期數(shù).
cv2.getTickFrequency:函數(shù)返回時(shí)鐘周期的頻率,或每秒鐘的時(shí)鐘周期數(shù).
如果要在幾秒內(nèi)找到執(zhí)行時(shí)間:
代碼:
import cv2 e1 = cv2.getTickCount() # your code execution e2 = cv2.getTickCount() time = (e2 - e1)/ cv2.getTickFrequency() print(time) 輸出: 9.909108700445166e-062 OpenCV中的默認(rèn)優(yōu)化
許多OpenCV功能都使用SSE2,AVX等進(jìn)行了優(yōu)化,當(dāng)然它也包含未經(jīng)優(yōu)化的代碼。 因此,如果我們的系統(tǒng)支持這些功能,我們應(yīng)該利用它們(幾乎所有現(xiàn)代處理器都支持它們).編譯時(shí)默認(rèn)啟用它, 因此,OpenCV運(yùn)行優(yōu)化代碼(如果已啟用),否則運(yùn)行未優(yōu)化代碼。 您可以使用cv2.useOptimized()來(lái)檢查它是否已啟用/禁用,并使用cv2.setUseOptimized()來(lái)啟用/禁用它.
代碼:
# check if optimization is enabled cv2.useOptimized() 輸出:True # Disable it cv2.setUseOptimized(False) cv2.useOptimized() 輸出:False性能優(yōu)化技術(shù)
有幾種技術(shù)和編碼方法可以利用Python和Numpy的最大性能。 此處僅注明相關(guān)的內(nèi)容,并提供重要來(lái)源的鏈接。 這里要注意的主要是,首先嘗試以簡(jiǎn)單的方式實(shí)現(xiàn)算法。 一旦工作,對(duì)其進(jìn)行分析,找到瓶頸并進(jìn)行優(yōu)化。
盡可能避免在Python中使用循環(huán),尤其是雙循環(huán)/三循環(huán)等。它們本身就很慢。
盡可能最大程度地保存算法/代碼,因?yàn)镹umpy和OpenCV針對(duì)向量運(yùn)算進(jìn)行了優(yōu)化。
Exploit緩存一致性。
除非需要,否則不要復(fù)制數(shù)組。 嘗試使用視圖。 陣列復(fù)制是一項(xiàng)昂貴的操作。
即使在完成所有這些操作之后,如果您的代碼仍然很慢,或者使用大型循環(huán)是不可避免的,請(qǐng)使用其他庫(kù)(如Cython)來(lái)加快速度。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41973.html
摘要:目前,支持尚未完成僅支持加載編碼的和,還未支持編碼。部分支持對(duì)象檢測(cè)網(wǎng)絡(luò)的版本缺少一些提供矩形列表的最終圖層。而且,此更改也已添加到分支。請(qǐng)注意,僅在英特爾上進(jìn)行測(cè)試,因此仍需要額外的。為了使實(shí)時(shí)采集處理有高效,在模塊中更新了支持。 OpenCV 4.0 正式版來(lái)啦!雖然官網(wǎng)還沒(méi)更新,但Github已經(jīng)放出來(lái)了!重回英特爾的OpenCV終于迎來(lái)一次大版本更新,增加了諸多新特性,快來(lái)一起看看吧...
摘要:十開放模式識(shí)別項(xiàng)目開放模式識(shí)別項(xiàng)目,致力于開發(fā)出一套包含圖像處理計(jì)算機(jī)視覺(jué)自然語(yǔ)言處理模式識(shí)別機(jī)器學(xué)習(xí)和相關(guān)領(lǐng)域算法的函數(shù)庫(kù)。 一、開源生物特征識(shí)別庫(kù) OpenBROpenBR 是一個(gè)用來(lái)從照片中識(shí)別人臉的工具。還支持推算性別與年齡。使用方法:$ br -algorithm FaceRecognition -compare me.jpg you.jpg二、計(jì)算機(jī)視覺(jué)庫(kù) OpenCVOpenC...
??歡迎訂閱《從實(shí)戰(zhàn)學(xué)python》專欄,用python實(shí)現(xiàn)爬蟲、辦公自動(dòng)化、數(shù)據(jù)可視化、人工智能等各個(gè)方向的實(shí)戰(zhàn)案例,有趣又有用!?? 更多精品專欄簡(jiǎn)介點(diǎn)這里 治愈生活的良方 就是保持對(duì)生活的熱愛 前言 哈嘍,大家好,我是一條。 每次和女朋友出去玩,拍照是必須的,天氣好還行,天氣要是不好,加上我這破手機(jī),那拍的簡(jiǎn)直慘不忍睹,自己都不過(guò)去。 但是沒(méi)什么能難倒程序員的,為了不挨罵,連夜寫出去霧...
摘要:的文本檢測(cè)器是一種基于新穎架構(gòu)和訓(xùn)練模式的深度學(xué)習(xí)模型。深度學(xué)習(xí)文本檢測(cè)器圖文本檢測(cè)全卷積網(wǎng)絡(luò)的結(jié)構(gòu)等人的圖。隨著和的發(fā)布,我們現(xiàn)在可以使用一種名為的基于深度學(xué)習(xí)的文本檢測(cè)器,它基于等人的年論文一種高效精確的場(chǎng)景文本檢測(cè)器。 by Adrian Rosebrock on August 20, 2018 in Deep Learning, Optical Character Recogn...
摘要:比這更短的線段被拒絕了。最大限度允許線段之間的間隙把它們當(dāng)作一條線來(lái)對(duì)待 Hough Line Transform 霍夫變換是一種檢測(cè)任何形狀的流行技術(shù),可以檢測(cè)形狀,即使它被破壞或扭曲一點(diǎn)點(diǎn).一條線可以表示成y = mx + c或參數(shù)形式,像ρ=xcosθ+ysinθ,其中ρ是從原點(diǎn)到直線的垂直距離,θ角是由這條垂線和水平軸以逆時(shí)針的方向形成的(這個(gè)方向取決于你如何表示坐標(biāo)系統(tǒng),這...
閱讀 3221·2021-09-30 09:48
閱讀 3497·2021-09-22 16:00
閱讀 1071·2019-08-30 13:08
閱讀 3110·2019-08-30 10:53
閱讀 2422·2019-08-29 18:33
閱讀 1596·2019-08-29 12:47
閱讀 904·2019-08-29 12:16
閱讀 1935·2019-08-26 12:02