亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        活塞桿拋光表面微細(xì)缺陷的快速篩查技術(shù)

        2021-08-12 08:29:32姜慶勝李研彪計(jì)時(shí)鳴
        關(guān)鍵詞:活塞桿線程灰度

        姜慶勝,李研彪,計(jì)時(shí)鳴

        (浙江工業(yè)大學(xué) 機(jī)械工程學(xué)院,浙江 杭州 310023)

        1 問題的描述

        活塞總成是大多數(shù)減振器的主要構(gòu)件之一,得到了普遍應(yīng)用。如圖1所示,活塞桿表面與導(dǎo)向器導(dǎo)向孔表面形成密封面,活塞桿表面品質(zhì)直接影響減振器密封效果、減振性能和使用壽命?;钊麠U是大批量的精密加工產(chǎn)品,在活塞桿交付使用前必須嚴(yán)格剔除存在表面缺陷的不合格產(chǎn)品。目前普遍采用人工肉眼篩查剔除,效率低下,準(zhǔn)確率不穩(wěn)定,且有損工人眼睛健康。

        對(duì)于表面缺陷檢測(cè),李少波等[1]對(duì)傳統(tǒng)檢測(cè)方法、基于計(jì)算機(jī)視覺的檢測(cè)方法、基于機(jī)器學(xué)習(xí)的檢測(cè)方法等均作了比較全面的比較?;钊麠U是經(jīng)過拋光的金屬圓軸,針對(duì)該特征,以往一些學(xué)者對(duì)表面缺陷的信息采集進(jìn)行了研究和實(shí)驗(yàn),比較典型的有蘇俊宏等[2]采用多次曝光來將柱面合并成一張圖片的方法來獲取缺陷照片;郭皓然等[3]采用投影照射不斷曝光的形式來得到曲面的缺陷照片;ALI等[4]提出對(duì)圓柱形表面采用攝像機(jī)和多平面鏡的方法來獲取被檢測(cè)缺陷表面的信息。

        相對(duì)于傳統(tǒng)的缺陷檢測(cè),當(dāng)今更多的研究是基于計(jì)算機(jī)視覺和深度學(xué)習(xí)的表面缺陷檢測(cè)識(shí)別方法,大部分文獻(xiàn)都是針對(duì)物體平面的缺陷識(shí)別。物體平面的缺陷信息獲取一般都是通過照片一次或多次拍照得到缺陷圖像,在這樣的圖片基礎(chǔ)上采用數(shù)字圖像的預(yù)處理技術(shù)去除噪聲,然后采用某些算法識(shí)別出缺陷[5-9]。總之,采用不同方法獲取的圖像應(yīng)根據(jù)相應(yīng)的特征采取不同的圖像處理技術(shù)來實(shí)現(xiàn)檢測(cè)。

        利用機(jī)器視覺自動(dòng)識(shí)別表面缺陷是未來技術(shù)的發(fā)展趨勢(shì)。羅菁等[10]、湯勃等[11]等對(duì)最近幾年機(jī)器視覺檢測(cè)方法作了總結(jié);對(duì)于機(jī)械零件表面缺陷的檢測(cè),具有代表性的有RAVIKUMAR等[12]使用直方圖統(tǒng)計(jì)特征法的研究;TSAI等[13]采用傅立葉特征法的研究;LI等[14]則對(duì)于細(xì)微缺陷的識(shí)別進(jìn)行了研究。

        對(duì)于微細(xì)缺陷的識(shí)別,需要高分辨率圖像檢測(cè),從而導(dǎo)致圖像處理計(jì)算量巨大,串行算法效率在許多場(chǎng)合難以滿足在線實(shí)時(shí)檢測(cè)要求。計(jì)算機(jī)統(tǒng)一設(shè)備架構(gòu)(Compute Unified Device Architecture, CUDA)可利用中央處理器(Central Processing Unit, CPU)和圖形處理器(Graphic Processing Unit, GPU)各自的優(yōu)點(diǎn)實(shí)現(xiàn)計(jì)算問題的并行化,為大規(guī)模數(shù)據(jù)計(jì)算提供高效計(jì)算能力,因此已在圖像處理、物理模擬等科學(xué)研究領(lǐng)域得到應(yīng)用。例如,AYDIN等[15]基于CUDA實(shí)現(xiàn)了對(duì)圓柱形金屬表面圖像進(jìn)行并行圖像分割,計(jì)算速度提升了71倍;PIERRO等[16]將CUDA用于Josephson結(jié)的模擬計(jì)算,實(shí)現(xiàn)了相對(duì)i7-6700處理器的400倍加速;YAM-UICAB等[17]通過CUDA C實(shí)現(xiàn)了GPU對(duì)圖像中直線的霍夫變換,較當(dāng)前最好的串行方法速度提升了10倍;WANG等[18]將CUDA應(yīng)用于NNP(nearest neighbor partitioning)分類器,實(shí)現(xiàn)了近70倍的計(jì)算加速;WANG等[19]通過CUDA實(shí)現(xiàn)了并行浮動(dòng)圖心算法,針對(duì)數(shù)據(jù)量巨大的航天飛機(jī)數(shù)據(jù)集計(jì)算,獲得了近90倍的加速;閆鈞華等[20]應(yīng)用CUDA實(shí)現(xiàn)了對(duì)基于SIFT(scale invariant feature transform)圖像配準(zhǔn)算法的加速,較在CPU上提速100多倍;王玉亮等[21]基于CUDA實(shí)現(xiàn)了眼底圖像的快速自動(dòng)配準(zhǔn)與拼接。

        本文提出一種針對(duì)線掃描圖像的基于CUDA并行計(jì)算體系的減振器活塞桿拋光表面微細(xì)缺陷的快速篩查方法,實(shí)現(xiàn)了對(duì)16 384×4 096大幅圖像中極少微細(xì)局部缺陷的并行快速篩查,并應(yīng)用于減振器活塞桿表面品質(zhì)實(shí)時(shí)在線檢測(cè)系統(tǒng),解決了通過線掃描方式得到的拋光軸表面缺陷大幅圖像中微細(xì)局部缺陷的高效篩查的技術(shù)瓶頸。

        2 活塞桿表面缺陷特征及表面成像方法

        活塞桿表面缺陷一般包括坑點(diǎn)、起泡、針孔、脫鍍、裂紋、劃傷、磕碰傷等,部分典型缺陷如圖2所示。圖2a、圖2b、圖2c和圖2d分別是小凹坑、缺口、磨損和劃傷缺陷。

        活塞桿表面具有如下特征:①表面拋光后形成鏡面,導(dǎo)致光源照射表面不可避免地形成高光反射區(qū);②可能存在尺度非常小的缺陷,最小缺陷的長(zhǎng)寬尺度為0.1 mm,為滿足活塞桿表面微小缺陷的檢測(cè),圖像必須有較高的分辨率。

        針對(duì)活塞桿表面特征,本文提出一種采用線掃描原理的活塞桿表面成像方法:線掃描相機(jī)每次可以成像一個(gè)像素單位的一行圖像,該行圖像成像的空間位置固定,當(dāng)采用漫反射型條形LED光源照射活塞桿表面時(shí),只要將活塞桿表面的高光反射區(qū)避開成像空間位置,成像效果即可得到保障。獲取圖像時(shí),使活塞桿勻速轉(zhuǎn)動(dòng),每轉(zhuǎn)動(dòng)一個(gè)設(shè)定的角度單位,線掃描相機(jī)采集一行圖像,直到活塞桿旋轉(zhuǎn)一周,即可獲得活塞桿表面的一幅完整的圖像,該方法有效解決了活塞桿表面(軸類零件均有類似問題)難以清晰成像的困難,經(jīng)線掃描相機(jī)獲取的活塞桿表面圖像,成像質(zhì)量?jī)?yōu)良,缺陷與背景灰度差異明顯,而且偶然出現(xiàn)的需要預(yù)處理的噪聲干擾稀疏且獨(dú)立,如圖3所示。

        針對(duì)小尺度缺陷的檢測(cè)需求,本文采用1×16 384像素的黑白工業(yè)線掃描相機(jī)(每一行圖像具有16 384個(gè)像素),對(duì)活塞桿圓周進(jìn)行4 096等分,即完整的活塞桿表面圖像像素尺寸為4 096×16 384,約6 700萬像素。本文檢測(cè)系統(tǒng)的設(shè)計(jì)適用于直徑小于φ24 mm,待檢工作區(qū)長(zhǎng)度小于320 mm的活塞桿檢測(cè),周向分辨率為0.018 mm,軸向分辨率為0.02 mm,能可靠檢測(cè)出尺度大于0.1 mm的缺陷。相機(jī)采樣速度為48 kHz,完成整幅圖像采集耗時(shí)約0.085 s。

        3 活塞桿表面圖像中缺陷的并行篩查算法

        3.1 基于TDIIA的濾噪算法

        對(duì)線掃相機(jī)獲取的活塞桿表面圖像統(tǒng)計(jì)分析表明,缺陷與正常表面及干擾噪聲對(duì)比,具有明顯差異:

        (1)缺陷像素的灰度介于40~60之間,而正常表面介于90~110之間。

        (2)對(duì)應(yīng)缺陷的8連通域像素個(gè)數(shù)大于80,而偶然出現(xiàn)的圖像干擾噪聲像素團(tuán),8連通域像素個(gè)數(shù)一般少于16個(gè)像素,或呈現(xiàn)線寬為2個(gè)像素以下較長(zhǎng)的線型噪聲。

        圖像干擾噪聲的灰度呈現(xiàn)低于或接近缺陷像素灰度和灰度高于正常表面灰度兩種情況。對(duì)于后者,只要按正常表面對(duì)待,無需處理;對(duì)于前者,則需濾除,以免誤判為缺陷。噪聲像素團(tuán)面積小于4×4像素,如圖4所示為部分噪聲像素團(tuán)的實(shí)例,其中深色像素為噪聲,淺色像素為正常表面。

        對(duì)于缺陷的篩查,傳統(tǒng)方法需經(jīng)過4個(gè)步驟:①對(duì)圖像進(jìn)行濾波處理;②掃描所有像素,尋找出灰度符合缺陷特點(diǎn)的疑似缺陷像素;③通過對(duì)所有疑似缺陷像素進(jìn)行8聯(lián)通域分析,查找出符合8聯(lián)通特征的疑似缺陷像素團(tuán);④對(duì)所有疑似缺陷像素團(tuán)進(jìn)行尺度判斷,去除尺度小于最小缺陷尺度的疑似缺陷像素團(tuán)后,留下的缺陷像素團(tuán)則為篩查出的缺陷。該方法計(jì)算繁瑣、耗時(shí)大,且不易實(shí)現(xiàn)并行計(jì)算。

        本文根據(jù)第2章對(duì)活塞桿表面噪聲像素團(tuán)的尺度和形態(tài)特征的分析,提出一種基于5×5的二維間隔沖擊陣列卷積核(Two Dimensional Interval impulse Array convolution kernel,TDIIA)的卷積濾波算法,在濾除噪聲的同時(shí),可以獲得缺陷像素團(tuán)。

        TDIIA卷積核的定義如下:

        (1)

        式中:i=0,1,…,4;j=0,1,…,4。

        基于TDIIA的卷積濾波計(jì)算方法如下:

        (2)

        式中:F(i,j)為TDIIA卷積核;A(y,x)為線掃描灰度圖像;B(h,w)為濾波后的灰度圖像。

        線掃描相機(jī)獲得圖像的尺寸為4 096×16 384像素。為使卷積核在圖像邊緣卷積計(jì)算方便,調(diào)整線掃描相機(jī)有效視場(chǎng)為(4 096-4)×(16 384-4)。因此,式(2)中:

        H=4 096,W=16 384;

        h=0,1,…,H-5;

        w=0,1,…,W-5;

        x=w+j=0,1,…,W-1;

        y=h+i=0,1,…,H-1。

        A(y,x)矩陣由有效視場(chǎng)(4 096-4)×(16 384-4)擴(kuò)展得到,相對(duì)有效視場(chǎng)矩陣,在四周各方向均向外擴(kuò)展2個(gè)灰度為圖像背景的平均灰度的像素,即做到圖像四周各邊緣區(qū)為正常背景圖像,其中無噪聲。

        設(shè)灰度閾值gT=80,灰度小于gT的像素判定為缺陷或噪聲,大于gT的像素判定為正常表面。

        經(jīng)TDIIA卷積核與原始圖像卷積運(yùn)算后,通過二維間隔沖擊陣列的卷積發(fā)揮作用,得到具有如下特點(diǎn)的結(jié)果,即噪聲像素團(tuán)(如圖4給出的典型噪聲像素團(tuán))與背景的灰度均會(huì)大于gT,而真實(shí)缺陷的灰度一定會(huì)小于gT,從而可靠濾除噪聲像素團(tuán),并識(shí)別出存在的缺陷。

        3.2 缺陷篩查算法

        經(jīng)TDIIA卷積運(yùn)算,若圖像中無真實(shí)缺陷,則所有像素灰度均應(yīng)大于閾值gT。因此,對(duì)于原始圖像中是否存在真實(shí)缺陷,依據(jù)以下判據(jù)予以判斷:

        (3)

        若矩陣C(h,w)中存在非零結(jié)果,則判定表面存在缺陷。采用基于CUDA的并行規(guī)約計(jì)算方法對(duì)C(h,w)所有像素求和以判斷圖像中是否存在缺陷,計(jì)算效率可以得到顯著提高。

        3.3 基于CUDA的并行濾波及缺陷篩查算法

        為解決在線實(shí)時(shí)檢測(cè)系統(tǒng)受制于6 700萬像素活塞桿表面原始圖像處理耗時(shí)大的技術(shù)瓶頸,本文提出一種基于CUDA的TDIIA卷積濾波及缺陷篩查算法,有效縮短了計(jì)算耗時(shí)。

        CUDA的并行運(yùn)算通過NVIDIA顯卡中的GPU實(shí)現(xiàn),軟件采用CUDA的C語言編程并封裝為kernel函數(shù)[22-23]。CPU通過設(shè)置kernel函數(shù)啟動(dòng)多個(gè)thread(線程)并行計(jì)算,而kernel函數(shù)則在GPU上運(yùn)行。

        完整的CUDA應(yīng)用程序包括主機(jī)端(CPU)串行執(zhí)行程序和設(shè)備端(GPU)并行運(yùn)算程序。分別由_global_和_device_的kernel函數(shù)決定函數(shù)由主機(jī)調(diào)用或由設(shè)備調(diào)用,如圖5所示。

        該項(xiàng)目中完整的串行圖像處理程序結(jié)構(gòu)如圖6所示,對(duì)應(yīng)的CUDA并行處理程序結(jié)構(gòu)如圖7所示。

        由圖6和圖7可知,同一個(gè)應(yīng)用程序采用串行處理和并行處理的相同點(diǎn)和不同點(diǎn)。進(jìn)行并行計(jì)算的前提必須是數(shù)據(jù)已經(jīng)在GPU的全局內(nèi)存中,并且已經(jīng)按照一維順序排列放置好了,在數(shù)據(jù)導(dǎo)入GPU全局內(nèi)存之前的軟件處理過程分別是“讀圖并賦值”、“動(dòng)態(tài)地址分配”、“產(chǎn)生二維數(shù)組”、“二維數(shù)組轉(zhuǎn)一維數(shù)組”、“CPU地址分配”、“GPU地址分配”“將一維數(shù)組拷貝到GPU全局內(nèi)存”。

        如果將圖像直接讀入GPU,圖像本身數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)是不能參與計(jì)算的,而且也沒有這樣的讀入命令或函數(shù)來實(shí)現(xiàn)將圖像直徑讀入CPU。在“讀圖并賦值”之后,要將數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)的數(shù)組形式,即“產(chǎn)生二維數(shù)組”,在實(shí)際中并行計(jì)算的數(shù)據(jù)存放都是一維排列存放,因此要將數(shù)據(jù)都轉(zhuǎn)換成此種標(biāo)準(zhǔn)形式存放。GPU并行計(jì)算的本質(zhì)是由無數(shù)個(gè)獨(dú)立計(jì)算單元進(jìn)行簡(jiǎn)單計(jì)算,這些互相獨(dú)立的計(jì)算單元之間沒有數(shù)據(jù)交換,每個(gè)計(jì)算單元的計(jì)算結(jié)果直接存放于內(nèi)存中。前面所有處理過程是為并行計(jì)算做準(zhǔn)備,均不符合并行計(jì)算要求,最后的“內(nèi)存釋放”也不具備并行計(jì)算條件。因此,并行計(jì)算部分只有濾波和篩查兩個(gè)部分可以考慮。

        由前所述,基于CUDA實(shí)現(xiàn)圖像數(shù)據(jù)的并行計(jì)算,在濾波之前的一些必要的輔助工作不得不通過串行方式完成。但是這些輔助工作涉及CPU與GPU之間的大量數(shù)據(jù)傳輸,耗時(shí)不能忽略,因此GPU并行計(jì)算減少的運(yùn)算耗時(shí)往往會(huì)被輔助工作的耗時(shí)所淹沒。是否應(yīng)采用并行計(jì)算,需要判定并行計(jì)算用時(shí)的減少能否明顯抵消輔助工作用時(shí)的增加。

        基于3.1和3.2的算法思路,可以轉(zhuǎn)化為并行化運(yùn)算,并可以通過以下兩個(gè)方法,進(jìn)一步提升計(jì)算效率。

        (1)改進(jìn)的TDIIA卷積濾噪算法

        如圖8所示,TDIIA卷積濾噪算法采用實(shí)線框范圍內(nèi)的5×5卷積核,以C為中心,進(jìn)行卷積運(yùn)算,結(jié)果即為C坐標(biāo)下的濾波結(jié)果(若不作除9運(yùn)算,則灰度被放大9倍)。TDIIA卷積核與原始圖像的卷積運(yùn)算即實(shí)現(xiàn)整個(gè)圖像的濾波。卷積運(yùn)算的大量時(shí)間消耗在數(shù)據(jù)讀取方面,卷積核滑動(dòng)到每一個(gè)位置時(shí),需要對(duì)9個(gè)數(shù)據(jù)進(jìn)行讀數(shù),并進(jìn)行8次加法計(jì)算,注意到這些數(shù)據(jù)實(shí)際在后續(xù)卷積核滑動(dòng)后的運(yùn)算中還會(huì)用到,包括部分加法中間結(jié)果也需使用多次,從而嚴(yán)重影響卷積計(jì)算效率。

        因此,更為有效地減少計(jì)算耗時(shí)的方法是減少原算法中的數(shù)據(jù)讀取次數(shù)和加法運(yùn)算次數(shù)。為此,本文提出一種基于卷積核分離計(jì)算的改進(jìn)的TDIIA卷積濾噪算法,其基本原理如圖9所示。

        首先,對(duì)于圖8所示卷積核,采用縱向?yàn)V波模板F1遍歷整個(gè)原始圖像進(jìn)行3點(diǎn)數(shù)據(jù)(灰色)累加計(jì)算,得到中間結(jié)果矩陣,然后對(duì)中間結(jié)果矩陣采用橫向?yàn)V波模板F2進(jìn)行3點(diǎn)數(shù)據(jù)(灰色)累加計(jì)算,得到最終結(jié)果矩陣。對(duì)于P1位置的數(shù)據(jù),在F2移動(dòng)過程中,分別在位置0、位置1和位置2會(huì)被讀取,共計(jì)3次;對(duì)于P2位置的數(shù)據(jù),在F2移動(dòng)過程中,分別在位置0、位置1和位置2共計(jì)被讀取3次。因此,綜合F1和F2濾波計(jì)算,一個(gè)數(shù)據(jù)僅會(huì)被讀取3次,而其中加法計(jì)算僅需4次。算法的實(shí)現(xiàn)步驟為:

        (4)

        式中:i∈-2,0,2;h=2,3,…,H-3;w=0,1,…,W-1。

        (5)

        式中:j∈-2,0,2;h=2,3,…,H-3;w=2,3,…,W-3。

        這里,A是由有效視場(chǎng)(4 096-4)×(16 384-4)的擴(kuò)展得到的4 096×16 384圖像,因此H=4 096,W=16 384。B1為中間結(jié)果矩陣,B2為最終結(jié)果矩陣(做除9運(yùn)算即為濾波后的圖像)。

        與原始TDIIA卷積濾噪算法對(duì)比,最終結(jié)果矩陣(約6 700萬個(gè)元素)中每一元素計(jì)算時(shí)的訪問數(shù)據(jù)次數(shù)由9次減少到6次,加法運(yùn)算的次數(shù)由8次減少到4次,分別降低至原方法的67%和50%,有效減少了總體濾波計(jì)算的時(shí)間。

        (2)共享內(nèi)存與全局內(nèi)存混合規(guī)約求和算法

        缺陷的篩查算法是通過對(duì)式(3)中C(h,w)求累加和實(shí)現(xiàn),若累加和結(jié)果大于零,則表示圖像中存在像素團(tuán)大于規(guī)定面積的缺陷點(diǎn),需要求和的元素個(gè)數(shù)為N=4 096×16 384=67 108 864。采用常規(guī)串行計(jì)算,則需時(shí)間為67 108 864×Δt,這里Δt為單次求和計(jì)算所需時(shí)間。

        規(guī)約算法可以利用并行機(jī)制,可以實(shí)現(xiàn)對(duì)大數(shù)據(jù)的快速累加求和,對(duì)于N個(gè)數(shù)據(jù)的規(guī)約求和并行計(jì)算時(shí)間僅為:

        t=log2(N)Δt。

        (6)

        式中Δt為單次求和計(jì)算所需時(shí)間。對(duì)式(3)中C(h,w)的所有元素求和,若完全采用規(guī)約求和并行計(jì)算,則求和時(shí)間僅為26Δt,較采用串行計(jì)算方法相比,計(jì)算時(shí)間幾乎可以忽略不計(jì)。

        考慮GPU運(yùn)算時(shí)共享內(nèi)存較全局內(nèi)存具有更高的計(jì)算速度。同時(shí)減少線程(threads)空閑等待時(shí)間,本文進(jìn)一步發(fā)揮共享內(nèi)存快速數(shù)據(jù)讀取優(yōu)勢(shì),采用一種共享內(nèi)存與全局內(nèi)存混合規(guī)約求和方法。首先在一個(gè)線程中將每隔threadsPerBlock×blockPerGrid(即1 024×128個(gè)元素)的值累加求和,以減少線程空閑等待,每個(gè)線程累加次數(shù)為512次,將其結(jié)果存放進(jìn)共享內(nèi)存,每個(gè)線程產(chǎn)生一個(gè)元素,合計(jì)1 024×128個(gè)元素存入共享內(nèi)存,然后對(duì)每個(gè)塊(block)對(duì)應(yīng)的1 024個(gè)線程采用規(guī)約求和算法得到一個(gè)結(jié)果存放在第一個(gè)共享內(nèi)存緩存的第一個(gè)元素位置,共計(jì)會(huì)生成128個(gè)數(shù)據(jù),最后將這個(gè)128個(gè)數(shù)據(jù)回傳到CPU求出累加和。

        算法中每個(gè)塊中線程數(shù)量threadsPerBlock為1 024,由GPU硬件確定,而blockPerGrid根據(jù)實(shí)驗(yàn)得到優(yōu)化結(jié)果,如圖10所示。實(shí)驗(yàn)結(jié)果表明,本文運(yùn)算每格(grid)采用128個(gè)塊(block)時(shí),運(yùn)算速度最快。

        3.4 基于CUDA的并行濾波及缺陷篩查算法的編程實(shí)現(xiàn)

        改進(jìn)的TDIIA卷積濾噪算法和共享內(nèi)存與全局內(nèi)存混合規(guī)約求和算法采用C++、Opencv與CUDA C混合編程。為便于GPU核函數(shù)數(shù)據(jù)處理,濾波運(yùn)算均將二維數(shù)據(jù)轉(zhuǎn)變?yōu)橐痪S數(shù)據(jù)進(jìn)行計(jì)算,數(shù)據(jù)讀取與加法計(jì)算量與二維計(jì)算相同。

        參與并行計(jì)算的一維數(shù)組如何和圖像的像素位置一一對(duì)應(yīng)是編程實(shí)現(xiàn)的關(guān)鍵因素之一。Nvidia圖像處理卡通過固定的位置索引函數(shù)在核函數(shù)中實(shí)現(xiàn),如圖11所示為其中的一種索引方法。

        圖11是一個(gè)32×256的圖像,即一個(gè)二維的數(shù)組(32,256),線程表示列y,線程塊表示行x,Dim表示線程塊的大小,即線程的數(shù)量256,即一行有幾個(gè)像素。(x,y)值就是某個(gè)像素的具體位置,這樣就可以計(jì)算得到一個(gè)唯一的索引:將線程塊索引與每個(gè)線程塊中的線程數(shù)量相乘,然后加上線程在線程塊中的索引,即pix=x+y×Dim,pix為某個(gè)像素在全局內(nèi)存中的偏移量。Nvidia圖像處理卡中的索引命令之一為:tid=threadIdx.x+blockIdx.x×blockDim.x,一旦知道某個(gè)索引tid,就相當(dāng)于知道了這個(gè)tid值對(duì)應(yīng)的線程索引和線程塊的索引,即知道了(x,y)值。這是在全局內(nèi)存中的索引方式,當(dāng)數(shù)據(jù)被讀入共享內(nèi)存中時(shí),也有固定的索引命令:cacheIndex=threadIdx.x,cacheIdex為共享內(nèi)存中的位置偏移量。

        項(xiàng)目中并行計(jì)算部分分為兩部分:①濾波的卷積計(jì)算,這部分是基于全局內(nèi)存的計(jì)算,因此采用的是全局內(nèi)存位置索引;②像素篩選部分,這部分是將數(shù)據(jù)拷貝到共享內(nèi)存中去計(jì)算,采用的是共享內(nèi)存的位置索引。

        該項(xiàng)目中,并行計(jì)算通過縱向?yàn)V波模板核函數(shù)、橫向?yàn)V波模板核函數(shù)和缺陷像素統(tǒng)計(jì)核函數(shù)完成。其中縱向?yàn)V波模板核函數(shù)和橫向?yàn)V波模板核函數(shù)的并行計(jì)算線程與圖像像素對(duì)應(yīng),按以下方式進(jìn)行索引:

        unsignedintx=threadIdx.x+blockIdx.x×blockDim.x;

        unsignedinty=threadIdx.y+blockIdx.y×blockDim.y;

        unsignedintpix=y×W+x;

        其中:x為圖像寬度方向像素索引;y為圖像高度方向像素索引;pix為二維圖像轉(zhuǎn)變?yōu)橐痪S向量后的像素索引;W=16 384為圖像寬度。

        考慮濾波模板運(yùn)算時(shí)圖像邊緣與運(yùn)算模板中心重疊時(shí)的情況,以圖像平均灰度替代圖像邊沿?zé)o法實(shí)現(xiàn)卷積運(yùn)算的像素的灰度。以條件語句控制模板避開這些像素運(yùn)算。

        縱向?yàn)V波模板并行計(jì)算線程須滿足如下條件:

        (pix>W2-1&&pix

        橫向?yàn)V波模板并行計(jì)算線程須滿足如下條件:

        (pix>W2+1&&pix

        其中:W2=16384×2為圖像上邊緣及下邊緣所占像素?cái)?shù),N=4 096×16 384為圖像對(duì)應(yīng)的一維數(shù)組的長(zhǎng)度。

        缺陷像素統(tǒng)計(jì)核函數(shù)為各線程塊聲明共享內(nèi)存變量數(shù)組,每一個(gè)線程塊各有一個(gè)cache副本,針對(duì)4 092×16 380個(gè)像素,共設(shè)置具有1 024個(gè)線程的線程塊128個(gè),以及對(duì)應(yīng)的128個(gè)共享內(nèi)存副本。其中,線程索引為inttid=threadIdx.x+blockIdx.x×blockDim.x;共享內(nèi)存索引為intcacheIndex=threadIdx.x。通過對(duì)所有線程塊cache副本內(nèi)元素規(guī)約運(yùn)算求和以提高并行計(jì)算速度。

        4 實(shí)驗(yàn)及結(jié)果分析

        4.1 計(jì)算機(jī)配置

        程序運(yùn)算速度與硬件配置有關(guān),本文系統(tǒng)配置的CPU為Intel(R)CPU E5-2620 v3 @2.40 GHz(2 core)內(nèi)存32 GB,GPU為Nvidia的GTK1080Ti。操作系統(tǒng)是Windows Servers 2012 R2 64位操作系統(tǒng)。

        4.2 圖像采集單元

        本文采用的活塞桿表面線掃描成像方法的原理如第2章所述,圖12a給出了活塞桿、線掃描相機(jī)、光源的空間布局形式,圖12b給出了實(shí)際的活塞桿表面圖像采集單元。

        4.3 實(shí)驗(yàn)結(jié)果分析

        (1)改進(jìn)的TDIIA卷積濾噪算法效果

        實(shí)驗(yàn)表明,本文算法結(jié)果可靠,對(duì)于縱橫向尺度均大于0.1 mm的缺陷(灰度一般低于70)可以準(zhǔn)確識(shí)別,而對(duì)于噪聲像素團(tuán)(8連通域少于16個(gè)像素,或呈現(xiàn)線寬為2個(gè)像素以下較長(zhǎng)的線型)則能可靠濾除。濾波算法后通過規(guī)約并行計(jì)算可快速判斷圖像中是否存在缺陷對(duì)應(yīng)像素。

        圖13給出了改進(jìn)的TDIIA卷積濾噪算法效果,其中圖13a為原始圖像的局部放大圖,圖13b為濾波后的結(jié)果。對(duì)于8聯(lián)通域16像素點(diǎn)及以下的斑塊,濾波后100%灰度大于規(guī)定的灰度(與低灰度噪聲點(diǎn)的灰度有明顯區(qū)別),而16像素點(diǎn)以上的斑塊,濾波計(jì)算后,100%至少保留1個(gè)像素的灰度低于所設(shè)置的灰度閾值,因此被認(rèn)為該斑塊尺度大于噪聲,可以判定為缺陷。同理,對(duì)于線寬為2像素以下的線條,也會(huì)被認(rèn)為是噪聲被濾除。

        本文采用CUDA核函數(shù)進(jìn)行并行計(jì)算,設(shè)定每個(gè)block為16×64=1 024個(gè)線程,共有256×256個(gè)block,即共計(jì)有67 108 864個(gè)線程參與并行運(yùn)算,使得并行運(yùn)算耗時(shí)較串行大為縮減。雖然,存在輔助數(shù)據(jù)傳遞工作用時(shí)開銷,但CUDA并行計(jì)算仍得到了較好的總體速度提升。

        (2)粒度與計(jì)算效率實(shí)驗(yàn)對(duì)比

        通過實(shí)驗(yàn),考察了粒度選擇對(duì)于并行計(jì)算效率的影響。如圖14所示,優(yōu)化選擇格(grid)、塊(block)和線程(thread)的數(shù)量,可以得到較快的并行計(jì)算速度。在每格128個(gè)塊時(shí),每塊256個(gè)線程時(shí)計(jì)算速度最快。GPU硬件決定每塊最多可設(shè)置1 024個(gè)線程,但實(shí)驗(yàn)結(jié)果表明,每塊線程數(shù)為512或1 024的情況,計(jì)算速度均低于每塊線程數(shù)256的速度。

        (3)加速比分析

        加速比計(jì)算公式如式(7):

        (7)

        式中:S為加速比;TS為串行計(jì)算運(yùn)行時(shí)間;TP為并行計(jì)算運(yùn)行時(shí)間。

        將圖7本文方法(在本文給出的硬件配置條件下)與圖6的傳統(tǒng)CPU串行運(yùn)算進(jìn)行對(duì)比,軟件構(gòu)成的前面3個(gè)階段“讀圖并賦值”、“地址分配”和“產(chǎn)生二維數(shù)組”以及最后的“內(nèi)存釋放”串并行是一樣的,不參與耗時(shí)對(duì)比,而不同部分“GPU拷貝數(shù)據(jù)到CPU”階段的時(shí)間可以忽略不計(jì),因?yàn)樵擁?xiàng)目中只有幾個(gè)數(shù)據(jù)被拷貝,時(shí)間幾乎為零。同樣,“CPU地址分配”和“GPU地址分配”是一次分配多次使用,即在GPU上開辟存儲(chǔ)空間的操作僅在初始化時(shí)進(jìn)行一次,耗時(shí)約1 s,在后續(xù)反復(fù)的運(yùn)算時(shí)不再需要,因此不計(jì)算在時(shí)間消耗比較中。這樣就得到了如表1所示的加速比。

        從表1看出,針對(duì)6 700萬像素的減振器活塞桿表面圖像的濾噪和缺陷篩查,本文方法在耗時(shí)方面具有明顯優(yōu)勢(shì),本文方法總體運(yùn)算耗時(shí)節(jié)省了67.4%,總加速比為3.07。若僅考慮濾波和篩查運(yùn)算環(huán)節(jié),則并行計(jì)算較傳統(tǒng)的串行計(jì)算方法速度提升了52.4倍。

        傳統(tǒng)的CPU串行運(yùn)算,不需要2D轉(zhuǎn)1D、CPU到GPU數(shù)據(jù)傳遞等輔助環(huán)節(jié),但由于CPU串行運(yùn)算部分相比GPU多線程運(yùn)算部分要慢很多,并行運(yùn)算仍體現(xiàn)出運(yùn)算優(yōu)勢(shì)。如果是計(jì)算密集型的計(jì)算,串行運(yùn)算時(shí)耗時(shí)越多,則并行運(yùn)算節(jié)省時(shí)間越明顯,加速比就越大。

        本文還針對(duì)8 192×2 048、4 096×1 024、2 048×512的圖像,做了串、并計(jì)算對(duì)比試驗(yàn),運(yùn)行對(duì)比情況如表1所示。在不同分辨率的圖像下,總體運(yùn)行加速比穩(wěn)定,均在3~5倍左右。但是,從濾波和篩查計(jì)算來看,16 384×4 096圖像的濾波加速比是44.7倍,篩查是118倍,濾波與篩查綜合加速比為52.4倍。相對(duì)而言,較低分辨率圖像的處理,濾波加速基本恒定在數(shù)十倍,而篩查則是處理像素越多,加速比越高。

        表1 傳統(tǒng)串行計(jì)算和串并結(jié)合的程序運(yùn)行時(shí)間對(duì)比

        續(xù)表1

        (4)并行平臺(tái)壓力測(cè)試實(shí)驗(yàn)

        單幅圖像的處理并不能說明并行平臺(tái)具有GPU計(jì)算的穩(wěn)定性,需要對(duì)大量數(shù)據(jù)的處理性能對(duì)比,這里采用分辨率16 384×4 096為測(cè)試圖像,大量測(cè)試并行計(jì)算的時(shí)間、濾波時(shí)間和篩選時(shí)間的變化情況,如圖15所示。

        由圖15可知,數(shù)據(jù)量較大時(shí),GPU并行計(jì)算平臺(tái)仍然具有穩(wěn)定的性能。

        (5)篩選正確率的實(shí)驗(yàn)

        通過1 000幅實(shí)際拍攝的含有如圖2所示4種缺陷的圖像進(jìn)行了缺陷篩查實(shí)驗(yàn),在圖像含有高斯、均勻、椒鹽噪聲干擾情況下,采用本文提出的方法均可以正確判斷出圖像中是否含有缺陷,缺陷篩查正確率為100%,達(dá)到規(guī)定尺寸的缺陷沒有漏檢情況發(fā)生。

        5 串并混合算法與生產(chǎn)工藝流程結(jié)合減少篩選時(shí)間

        基于CUDA并行運(yùn)算的濾波及缺陷篩查算法由改進(jìn)的TDIIA卷積濾噪算法和共享內(nèi)存與全局內(nèi)存混合規(guī)約求和算法組合構(gòu)成。本文將該算法應(yīng)用于減振器活塞桿表面品質(zhì)機(jī)器視覺檢測(cè)系統(tǒng),系統(tǒng)工作原理如圖16所示。待檢活塞桿通過夾持機(jī)構(gòu)由上料區(qū)開始以步進(jìn)方法逐步移動(dòng)至下料區(qū),在檢測(cè)區(qū)勻速旋轉(zhuǎn),由線掃描相機(jī)攝取圓周完整表面圖像,待計(jì)算機(jī)系統(tǒng)對(duì)攝取圖像分析分類后,根據(jù)活塞桿表面的品質(zhì),按合格、不合格可修復(fù)和廢品3類情況分別移動(dòng)至不同的下料區(qū)。

        圖16中:n為工件編號(hào),tL為上料時(shí)間;tB為工件移至緩存區(qū)時(shí)間;tC為圖像處理的計(jì)算時(shí)間;tM為圖像采集時(shí)間;tD為工件移至下料區(qū)時(shí)間,tD1、tD2和tD3分別表示移至對(duì)應(yīng)合格、不合格可修復(fù)和廢品的下料區(qū)所需時(shí)間(由于移動(dòng)距離的差異,所需時(shí)間也有差異)。其中tL、tB、tD(tD1、tD2或tD3取其一)時(shí)間統(tǒng)一為0.5 s,同步進(jìn)行,同時(shí)完成。tM為圖像采集時(shí)間,線掃描相機(jī)完成整幅圖像采集耗時(shí)約0.085 s,為保證成像質(zhì)量,待檢活塞桿旋轉(zhuǎn)穩(wěn)定時(shí)開始采樣,總體時(shí)間0.5 s。由工件移動(dòng)和相機(jī)采樣構(gòu)成一個(gè)完整節(jié)拍,耗時(shí)1 s,周而復(fù)始。由于機(jī)械運(yùn)動(dòng)與相機(jī)采樣均不占用CPU和GPU時(shí)間,濾波及缺陷篩查運(yùn)算也同步在上述節(jié)拍中完成,耗時(shí)為tC,若tC>1 s,則需要放慢機(jī)械動(dòng)作,以滿足運(yùn)算耗時(shí)需求。本文方法有效減少了運(yùn)算耗時(shí),確保在小于1 s時(shí)間內(nèi)完成缺陷篩查運(yùn)算,對(duì)于提高機(jī)器視覺檢測(cè)系統(tǒng)工作效率具有重要意義。

        本文方法提高了基于機(jī)器視覺的產(chǎn)品品質(zhì)在線檢測(cè)的工作效率,可廣泛應(yīng)用于計(jì)算機(jī)集成制造系統(tǒng)中,在多供應(yīng)商跨企業(yè)協(xié)同生產(chǎn)系統(tǒng)[24]、云制造加工服務(wù)物聯(lián)網(wǎng)體系[25]中也可以發(fā)揮重要的作用。

        6 結(jié)束語

        本文提出一種減振器活塞桿表面品質(zhì)檢測(cè)系統(tǒng)實(shí)現(xiàn)方案,采用線掃描相機(jī)有效避免高光反射,清晰獲取了活塞桿表面4 096×16 384的2D灰度圖像,滿足了活塞桿表面缺陷篩查自動(dòng)化的需求。提出一種改進(jìn)的TDIIA卷積濾噪算法,用于對(duì)圖像噪聲像素團(tuán)與活塞桿表面缺陷識(shí)別,與混合規(guī)約求和算法組合,實(shí)現(xiàn)了CPU與GPU的串并混合編程方法,提升了缺陷篩查運(yùn)算速度,較串行算法總體運(yùn)算耗時(shí)節(jié)省了67.4%,可以確保檢測(cè)系統(tǒng)以高效率工作。

        本文提出的算法可準(zhǔn)確濾除噪聲像素團(tuán),并對(duì)屬于活塞桿表面缺陷的像素進(jìn)行計(jì)數(shù)。實(shí)驗(yàn)檢測(cè)系統(tǒng)的實(shí)驗(yàn)結(jié)果表明,所提算法對(duì)缺陷篩查效果良好,缺陷判斷正確率達(dá)到了100%,達(dá)到規(guī)定尺寸的缺陷沒有漏檢情況發(fā)生。

        本文主要研究高反光金屬軸表面缺陷的快速檢測(cè),在高光表面的軸加工過程中,軸表面會(huì)滯留一些油漬,或者經(jīng)過油漬清洗工藝后滯留有水漬,這些油漬和水漬會(huì)影響高光表面微細(xì)缺陷的檢測(cè)準(zhǔn)確率,下一步將研究如何快速的識(shí)別油漬和水漬的干擾,以及缺陷的分類。

        猜你喜歡
        活塞桿線程灰度
        BOG壓縮機(jī)活塞桿的優(yōu)化
        采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過濾技術(shù)
        基于灰度拉伸的圖像水位識(shí)別方法研究
        基于最大加權(quán)投影求解的彩色圖像灰度化對(duì)比度保留算法
        淺談linux多線程協(xié)作
        基于活塞桿沉降位移信號(hào)的活塞桿斷裂故障診斷方法的研究
        基于灰度線性建模的亞像素圖像抖動(dòng)量計(jì)算
        基于ADINA的大型隔膜泵活塞桿的優(yōu)化設(shè)計(jì)
        氫壓縮機(jī)活塞桿斷裂分析
        Linux線程實(shí)現(xiàn)技術(shù)研究
        国产欧美日韩一区二区三区| 黄片亚洲精品在线观看| 中文字幕在线乱码亚洲| 久久精品国产只有精品96| 亚洲av无码久久寂寞少妇| 日韩中文字幕精品免费一区| 亚洲av一区二区在线| 无码人妻一区二区三区免费看| 日本乱人伦在线观看| 亚洲九九夜夜| 久久一区二区av毛片国产| 亚洲av乱码一区二区三区按摩| 日韩av高清无码| 无码制服丝袜中文字幕| 一区二区在线观看精品在线观看| 免费观看羞羞视频网站| 国产3p视频| 人妻免费黄色片手机版| 精品人妻一区二区三区久久| 最近中文字幕视频完整版在线看| 精品欧美久久99久久久另类专区| 国产激情视频在线观看首页| 手机看黄av免费网址| 欧美极品美女| 亚洲精品中文字幕尤物综合 | 波多野无码AV中文专区| 中文字幕在线乱码亚洲| 日韩中文字幕免费视频| 亚洲日韩图片专区小说专区| 国产精品亚洲av一区二区三区| 4455永久免费视频| 国产人妻无码一区二区三区免费| 狠狠色欧美亚洲综合色黑a| 亚洲最大一区二区在线观看| 人人色在线视频播放| 久久久久亚洲av成人网址| 国产91久久精品成人看网站 | 免费在线不卡黄色大片| 少妇人妻中文字幕hd| 美女裸体自慰在线观看| 亚洲一区二区不卡日韩|