在商品質(zhì)量控制方面,快速圖像處理速度有利于及時(shí)發(fā)現(xiàn)產(chǎn)品缺陷。當(dāng)產(chǎn)品出現(xiàn)缺陷時(shí),可以快速捕獲并反饋信息,生產(chǎn)者可以立即采取措施減少不良產(chǎn)品的產(chǎn)生。比如在手機(jī)屏幕生產(chǎn)中,快速的圖像處理可以及時(shí)檢測(cè)屏幕上的缺陷和劃痕,防止缺陷屏幕進(jìn)入下一道工序,降低成本,提高產(chǎn)品質(zhì)量水平。
分析:是什么減緩了圖像處理的速度?
因?yàn)閳D像處理速度如此重要,那么是什么因素在實(shí)際應(yīng)用中拖慢了它的步伐呢?綜上所述,主要有以下三個(gè)方面。
(一)圖像分辨率過(guò)高。
工業(yè)相機(jī)的像素在追求超清畫質(zhì)的道路上不斷上升,從最初的 100 萬(wàn)像素已經(jīng)發(fā)展到今天 5000 萬(wàn)像素甚至更多,單個(gè)圖像的原始大小也從 10K 飆升至數(shù)百 MB。雖然高分辨率圖像可以提供更清晰的細(xì)節(jié),但是在操作過(guò)程中需要大量的計(jì)算資源。
在軟件處理過(guò)程中,邊緣檢測(cè)、特征提取、閾值分割等操作需要同步完成。常用于工業(yè)控制機(jī)。 CPU 例如,通常需要處理這些高分辨率圖像。 2 - 3 可以在幾秒鐘內(nèi)完成相關(guān)操作,但實(shí)際生產(chǎn)線需要 1 秒內(nèi)完成 3 - 5 幀圖像處理。這導(dǎo)致響應(yīng)速度遠(yuǎn)遠(yuǎn)落后于生產(chǎn)需求,導(dǎo)致圖像沉積和檢驗(yàn)延遲。例如,在一個(gè)精密的電子元件檢驗(yàn)場(chǎng)景中,高分辨率相機(jī)被用來(lái)獲取圖像,以檢測(cè)元件上的細(xì)微劃痕和缺陷。但是由于圖像分辨率太高,需要投入一幀圖像來(lái)處理。 2 秒以上的時(shí)間,而生產(chǎn)線的節(jié)奏是每秒生產(chǎn) 3 個(gè)體元件,這使得檢測(cè)系統(tǒng)不能及時(shí)處理所有圖像,大量元件在檢測(cè)區(qū)域等待,嚴(yán)重影響生產(chǎn)效率。
(二)冗余算法設(shè)計(jì)
為了追求更高的檢測(cè)精度,一些機(jī)器視覺(jué)檢測(cè)公司在手機(jī)上選擇未優(yōu)化的復(fù)雜算法,而不是根據(jù)具體場(chǎng)景的適應(yīng)性進(jìn)行有針對(duì)性的選擇。雖然這些復(fù)雜的算法理論上可以提供更準(zhǔn)確的測(cè)試結(jié)果,但在實(shí)際應(yīng)用中往往沒(méi)有充分考慮計(jì)算資源和處理效率。
(三)軟硬件協(xié)作不足
軟硬件協(xié)同不足是圖像處理速度下降的重要原因之一。這具體表現(xiàn)為兩個(gè)常見(jiàn)的錯(cuò)誤:一個(gè)是重硬件輕算法,另一個(gè)是新算法配舊硬件。
重型硬件輕算法的情況比較普遍,有些企業(yè)在硬件上投入大量資金,選擇 4K 高端設(shè)備,如相機(jī)、高性能工控機(jī)等,但在軟件算法上仍使用傳統(tǒng)模板匹配算法的原始版本。
加速秘籍:全方位提高圖像處理速率
在了解影響圖像處理速度的因素后,下面將從圖像預(yù)處理、算法優(yōu)化、軟件適配、全鏈路流程協(xié)同四個(gè)方面介紹提高圖像處理速度的具體方法。
(一)圖像預(yù)處理巧妙。
對(duì)圖像進(jìn)入核心算法之前,通過(guò)對(duì)圖像進(jìn)行預(yù)處理,可以減少無(wú)效數(shù)據(jù),減輕后續(xù)計(jì)算壓力。通常有三種常見(jiàn)的方法。
區(qū)域切割是通過(guò)簡(jiǎn)單的閾值分割和輪廓定位,選擇關(guān)鍵特征,對(duì)核心區(qū)域進(jìn)行精細(xì)處理。例如,在電路板檢測(cè)中,包括電子元件在內(nèi)的區(qū)域只被切割進(jìn)行檢測(cè),而忽略了電路板的空白部分,大大降低了數(shù)據(jù)處理量。
圖像壓縮和格式提升可以在不損失關(guān)鍵特征的情況下壓縮圖像數(shù)據(jù)量。 50%-70%,根據(jù)場(chǎng)景要求選擇圖像格式。比如在對(duì)圖像細(xì)節(jié)要求不高的情況下,選擇 JPEG 這種格式可以在保證一定圖像質(zhì)量的同時(shí),有效地減小文件大小,加快數(shù)據(jù)傳輸和響應(yīng)速度,從而實(shí)現(xiàn)圖像的存儲(chǔ)和傳輸。
噪聲和干擾抑制是通過(guò)高斯濾波和中值濾波提前去除圖像噪聲,防止后續(xù)算法因“識(shí)別噪聲”而消耗計(jì)算率。在食品包裝檢測(cè)中,通過(guò)濾波處理去除圖像中的隨機(jī)噪聲,使檢測(cè)算法更加注重檢測(cè)包裝上的缺陷,如密封是否緊密,標(biāo)簽是否正確。
(二)精確的算法優(yōu)化
一般來(lái)說(shuō),算法優(yōu)化的方向是輕量化和場(chǎng)景化。
通過(guò)卷積層切割、權(quán)重量化、知識(shí)蒸餾等技術(shù),對(duì)深度學(xué)習(xí)模型進(jìn)行“瘦身”,可以降低模型體積,提高速度。卷積層切割是去除神經(jīng)網(wǎng)絡(luò)中冗余的卷積層,減少計(jì)算量;權(quán)重量化是將模型參數(shù)值從高精度(例如 32 位置浮點(diǎn)數(shù))轉(zhuǎn)換為低精度(例如 8 位置整數(shù)),從而降低存儲(chǔ)需求,提高推理速度;知識(shí)蒸餾是模仿大型教師模型的導(dǎo)出,通過(guò)訓(xùn)練小學(xué)生模型來(lái)實(shí)現(xiàn)模型的輕量化。
簡(jiǎn)化算法流程也是特定場(chǎng)景優(yōu)化的關(guān)鍵。例如,在零件定位場(chǎng)景中,傳統(tǒng)的“模板完全匹配”被“邊緣梯度定位”所取代,位置通過(guò)提取零件輪廓的梯度特征直接鎖定。傳統(tǒng)的模板完全匹配算法需要在整個(gè)圖像上滾動(dòng)比較模板,計(jì)算量極大;邊緣梯度定位算法利用零件邊緣的梯度信息,可以快速準(zhǔn)確地確定零件的位置,大大提高響應(yīng)速度。
將復(fù)雜的算法拆解成多個(gè)平行任務(wù),同步處理硬件的多線程能力,也能有效提高圖像處理速度。在目標(biāo)檢測(cè)算法中,圖像的不同區(qū)域可以分配到不同的過(guò)程中進(jìn)行處理,最后結(jié)果可以合并,從而加快整個(gè)檢測(cè)過(guò)程。
(三)選擇合適的軟件。
為了充分發(fā)揮硬件性能,防止硬件性能浪費(fèi),在實(shí)際應(yīng)用中,需要根據(jù)不同的場(chǎng)景選擇合適的軟件。
用簡(jiǎn)單的場(chǎng)景固定 FPGA,F(xiàn)PGA(現(xiàn)場(chǎng)可編程門陣列)具有并行處理能力和高速數(shù)據(jù)傳輸?shù)奶攸c(diǎn),適用于一些對(duì)實(shí)時(shí)性要求高、算法相對(duì)固定簡(jiǎn)單的場(chǎng)景,如簡(jiǎn)單字符識(shí)別、物體記數(shù)等。在商品包裝上的字符識(shí)別中,F(xiàn)PGA 能迅速處理圖像,識(shí)別字符內(nèi)容,保證產(chǎn)品包裝信息的準(zhǔn)確性。
多目標(biāo)場(chǎng)景復(fù)雜使用 GPU,GPU(圖形處理器)具有強(qiáng)大的并行計(jì)算能力,能夠快速處理大量數(shù)據(jù),適用于智能交通中的車輛和行人檢查、工業(yè)生產(chǎn)中的各種零件同時(shí)檢查等復(fù)雜多目標(biāo)場(chǎng)景。在智能交通系統(tǒng)中,GPU 能同時(shí)處理多個(gè)攝像機(jī)采集的圖像,對(duì)車輛和行人的位置、速度等信息進(jìn)行實(shí)時(shí)監(jiān)控,為交通管理提供數(shù)據(jù)支持。
內(nèi)嵌式邊緣輕量化場(chǎng)景 AI 內(nèi)嵌模塊 AI 模塊體積小,功耗低,可以在邊緣設(shè)備上實(shí)現(xiàn)輕量化人工智能計(jì)算,適用于對(duì)設(shè)備體積和功耗有嚴(yán)格要求的場(chǎng)景,如智能家居的安全監(jiān)控、可穿戴設(shè)備的健康監(jiān)控等。在智能家居攝像頭中,嵌入式 AI 該模塊可以實(shí)時(shí)分析視頻圖像,檢查行為問(wèn)題,如有人闖入、物體移動(dòng)等,并及時(shí)向客戶發(fā)送報(bào)警信息。