為使本發明的目的、技術方案和優點更加清楚,下面將結合本發明具體實施例及相應的圖式對本發明技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,發明所屬技術領域通常知識者在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
在工業瑕疵檢測中,一個基本要求是定性的判斷出是否存在瑕疵,避免不良產品走出車間或者下一個生產線。進一步要求是,檢測出瑕疵位置和類別,從而能夠快速定位瑕疵,方便後續處理和修復。而在對瑕疵位置進行檢測時,可以對瑕疵進行像素級分割,從而能夠確定瑕疵面積,方便客戶對瑕疵評比。
產品商透過對瑕疵進行檢測,實現高召回率,避免有瑕疵的產品走出產線,造成更大的損失。同時需要高準確率(低誤報率),否則會造成兩個方面的影響:在產品生產過程中,造成很多不必要的複檢、重工以及下游客戶的投訴,造成客戶生產成本上升;在產品交付工程中,因為錯誤的報告問題,導致產品評比偏低,按照低價銷售,造成客戶收入損失。
本發明實施例透過直接在特徵層上面進行像素分類和檢測框的確定,獲得瑕疵的檢測結果。
在本發明實施例中,根據圖片特徵確定像素的預測類型以及預測檢測框,預測類型反映像素是否屬於瑕疵的情況,預測目標框反映像素在具有瑕疵時的瑕疵位置;確定像素的預測類型與真實類型之間的類型損失,以及確定像素的預測檢測框與真實檢測框之間的檢測框損失,從而確定像素的總損失,根據總損失,產生瑕疵的檢測模型,並根據檢測模型對待預測圖片進行瑕疵檢測,能夠以高準確率和高速度進行瑕疵檢測的分割,且全方位自動化地實現瑕疵檢測的分割,從而減少人力成本,提高產品生產效率,為產品創造價值。
以下結合圖式,詳細說明本發明各實施例提供的技術方案。
圖1為本發明一示例性實施例提供的一種瑕疵的檢測系統的結構示意圖。如圖1所示,該檢測系統100包括:第一計算設備101以及第二計算設備102。
其中,第一計算設備101可以為單機伺服器或者伺服器陣列,或者雲端化的服務虛擬機器(VM)。
第二計算設備102也可以為單機伺服器或者伺服器陣列,或者雲端化的服務虛擬機器(VM)。
其中,第一計算設備101是指用於可以產生瑕疵的檢測模型的計算設備,該計算設備是指可以在網路虛擬環境中提供模型訓練服務的設備。在物理實現上,該計算設備可以是任何能夠提供計算服務,回應服務請求,並進行處理的設備,例如可以是常規伺服器、雲端伺服器、雲端主機、虛擬中心等。該計算設備的構成主要包括處理器、硬碟、記憶體、系統匯流排等,和通用的電腦架構類似。
第二計算設備102是指用於可以對圖片進行瑕疵檢測的計算設備,該計算設備是指可以在網路虛擬環境中提供計算處理服務的設備。在物理實現上,該計算設備可以是任何能夠提供計算服務,回應服務請求,並進行處理的設備,例如可以是常規伺服器、雲端伺服器、雲端主機、虛擬中心等。該計算設備的構成主要包括處理器、硬碟、記憶體、系統匯流排等,和通用的電腦架構類似。
在本發明實例中,第一計算設備101,獲取至少一張圖片的特徵,根據特徵確定該圖片中像素的預測類型以及預測檢測框,預測類型反映像素是否屬於瑕疵的情況,預測目標框反映像素在具有瑕疵時的瑕疵位置;確定像素的預測類型與真實類型之間的類型損失,以及確定像素的預測檢測框與真實檢測框之間的檢測框損失;根據像素的類型損失以及檢測框損失,確定像素的總損失,根據總損失,產生瑕疵的檢測模型。
第二計算設備102,接收第一計算設備101發送的檢測模型,第二計算設備102獲取至少一張待預測圖片,輸入至檢測模型中,得到待預測圖片中的像素的預測類型以及預測檢測框;第二計算設備102針對一張待預測圖片,根據預測類型聚合像素,產生像素區域,並根據像素的預測檢測框,確定像素區域的預測檢測框;根據像素區域和/或像素區域的預測檢測框,確定待預測圖片的瑕疵。
在一些實例中,檢測系統還可以包括終端103。
其中,終端103可以是任何具有一定計算能力的設備,例如,可以是智慧型手機、筆記型、PC(personal computer)電腦等。終端103的基本結構包括:至少一個處理器。處理器的數量取決於終端103的配置和類型。終端103也可以包括記憶體,該記憶體可以為易失性的,例如RAM,也可以為非易失性的,例如唯讀記憶體(Read-Only Memory,ROM)、快閃記憶體等,或者也可以同時包括兩種類型。記憶體內通常儲存有作業系統(Operating System,OS)、一個或多個應用程式,也可以儲存有程式資料等。除了處理單元和記憶體之外,終端103還包括一些基本配置,例如網卡晶片、IO匯流排、攝像頭以及音視頻元件等。可選地,終端103還可以包括一些週邊設備,例如鍵盤、滑鼠、輸入筆、印表機等。其它週邊設備在本領域中是眾所周知的,在此不做贅述。
在一些實例中,終端103將待預測圖片發送至第二計算設備102,並可以接收第二計算設備102返回的對待預測圖片進行瑕疵的檢測結果。
在上述本實施例中,第一計算設備101可以與第二計算設備102進行網路連接,第二計算設備102可以與終端103進行網路連接,該網路連接可以是有線網路連接。
需要說明的是,本發明的實施例也可以只透過一個計算設備進行模型的訓練以及並直接根據產生的模型進行瑕疵的檢測,該計算設備可以為單機伺服器或者伺服器陣列,或者雲端化的服務虛擬機器(VM)。
在一些實例中,第一計算設備101還可以從終端103獲取至少一張待預測圖片,輸入至檢測模型中,得到待預測圖片中的像素的預測類型以及預測檢測框;第二計算設備102針對一張待預測圖片,根據預測類型聚合像素,產生像素區域,並根據像素的預測檢測框,確定像素區域的預測檢測框;根據像素區域和/或像素區域的預測檢測框,確定待預測圖片的瑕疵。
在一些實例中,第二計算設備102也可以獲取至少一張圖片的特徵,根據特徵確定該圖片中像素的預測類型以及預測檢測框,預測類型反映像素是否屬於瑕疵的情況,預測目標框反映像素在具有瑕疵時的瑕疵位置;確定像素的預測類型與真實類型之間的類型損失,以及確定像素的預測檢測框與真實檢測框之間的檢測框損失;根據像素的類型損失以及檢測框損失,確定像素的總損失,根據總損失,產生瑕疵的檢測模型。
下面結合方法實施例,可以針對第一計算設備101或第二計算設備102對模型的產生過程以及第一計算設備101或第二計算設備102對瑕疵的檢測過程進行詳細說明。
圖2為本發明一示例性實施例的資料處理方法的流程示意圖。本發明實施例提供的該方法200由計算設備執行,該方法200包括以下步驟:
201:獲取至少一張圖片的特徵,根據特徵確定該圖片中像素的預測類型以及預測檢測框,預測類型反映像素是否屬於瑕疵的情況,預測目標框反映像素在具有瑕疵時的瑕疵位置。
202:確定像素的預測類型與真實類型之間的類型損失,以及確定像素的預測檢測框與真實檢測框之間的檢測框損失。
203:根據像素的類型損失以及檢測框損失,確定像素的總損失,根據總損失,產生瑕疵的檢測模型。
以下針對上述步驟進行詳細闡述:
201:獲取至少一張圖片的特徵,根據特徵確定該圖片中像素的預測類型以及預測檢測框,預測類型反映像素是否屬於瑕疵的情況,預測目標框反映像素在具有瑕疵時的瑕疵位置。
其中,特徵是指某一類物件區別於其他類物件的相應(本質)特點或特性, 或是這些特點和特性的集合。特徵是透過測量或處理能夠抽取的資料。對於圖像(或圖片)而言,每一幅圖像都具有能夠區別於其他類圖像的自身特徵,例如,顏色特徵、紋理特徵、形狀特徵和空間關係特徵等。
預測類型是指對像素是否屬於瑕疵的預測分類,當像素屬於瑕疵時,其瑕疵所屬的類型。可以透過預測機率來確定該像素最終的預測類型。
預測目標框是指能像素所屬瑕疵在圖片上的位置所在的預測規則框,如矩形框等。
在一些實例中,獲取圖片的特徵的方式可以為:透過卷積神經網路,獲得圖片的特徵。例如,將圖片輸入至卷積神經網路中,獲取到該圖片的各個特徵。
其中,卷積神經網路是指一類包含卷積計算且具有深度結構的前饋神經網路,包含了一個由卷積層、池化層和全連接層構成的特徵抽取器。
在一些實例中,根據特徵確定該圖片中像素的預測類型以及預測檢測框,包括:根據全卷積神經網路模型,對特徵進行處理,確定該圖片中像素的預測類型以及預測檢測框。
其中,全卷積神經網路(也可以稱為全卷積神經網路模型)是指在卷積神經網路的基礎上改進的神經網路,可將卷積神經網路中的全連接層轉換為卷積層的神經網路。
在一些實例中,根據全卷積神經網路模型,對特徵進行處理,確定該圖片中像素的預測類型以及預測檢測框,包括:根據全卷積神經網路模型,對特徵進行處理得到像素的至少一個預測類型的預測機率;選擇預測機率最大的預測類型作為該像素的預測類型;將預測機率最大的預測類型對應的預測檢測框作為該像素的預測檢測框。
例如,計算設備可以從其他計算設備節點獲取到多個圖片,並對多個圖片進行歸一化處理,將處理後的圖片輸入至卷積神經網路(也可以稱為卷積神經網路模型)中,獲取到處理後的圖片的特徵或特徵層。計算設備在根據全卷積神經網路(也可以稱為全卷積神經網路模型)對處理後的圖片的特徵或特徵層進行處理,對對應圖片上的每個像素進行分類,得到像素的預測類型的預測機率,同時根據全卷積神經網路確定每個預測類型對應的預測檢測框,如A圖片的a像素的不具有瑕疵的預測機率為0.2,具有a瑕疵的預測機率為0.6,具有b瑕疵的預測機率為0.3,選擇預測機率最大的預測類型作為該像素的預測類型,即a像素的預測類型為a瑕疵,並獲取該a瑕疵對應的預測檢測框對應的矩形框座標(predx1、predx2、predy1、predy2)作為像素a的預測檢測框的座標。
需要說明的是,對於預測檢測框為矩形框而言,其座標是具有相同橫坐標的兩個點和相同縱坐標的兩個點組成,故為了簡單示意可將矩形塊座標寫成(pred x1、pred x2、pred y1、pred y2)的形式。
此外,在前文所涉及到的座標均是在圖片中的座標。
202:確定像素的預測類型與真實類型之間的類型損失,以及確定像素的預測檢測框與真實檢測框之間的檢測框損失。
其中,類型損失是指用來評價的預測類型和真實類型之間不一樣的程度,如,類型不同的程度。其中,真實類型是指對像素是否屬於瑕疵的真實分類,且每個像素只屬於一種真實類型,該真實類型是已知數據。
檢測框損失是指用來評價的預測檢測框與真實檢測框之間不一樣的程度,如,座標位置不同的程度。其中,真實檢測框是指能像素所屬瑕疵在圖片上的位置所在的真實規則框,如矩形框等,且每個像素只具有一種真實檢測框,該真實檢測框是已知數據。
在一些實例中,確定像素的預測類型與真實類型之間的類型損失,包括:根據像素的真實類型以及與該真實類型相符的預測類型的預測機率,確定該真實類型下的像素的類型損失。
在一些實例中,可以透過下式1)確定像素的預測類型與真實類型之間的類型損失:
其中,
為類型損失,M為真實類型的總數目,
為像素o預測類型是否為真實類型c對應的數值,
是像素
屬於預測類型
的預測機率。
需要說明的是,真實類型的總數目是指多個圖片的所有像素所涉及的真實類型的總數目,如共涉及7個類型,無瑕疵、a瑕疵、b瑕疵、c瑕疵、d瑕疵、e瑕疵以及f瑕疵。當像素
的預測類型與真實類型相同時,
為1,當像素
的預測類型與真實類型不相同時,
為0。c屬於M,可以為1-7。
例如,根據前文所述,以像素a為例進行說明,像素a的瑕疵類型為a瑕疵,即a瑕疵類型,對於a像素而言其類型損失=0(c=1)-1*log0.6(c=2)+0(c=3)+0(c=4)+0(c=5)+0(c=6)+0(c=7)=
- log 0.6。
需要說明的是,c=1是指當真實類型為無瑕疵類型,c=2是指當真實類型為a瑕疵類型,以此類推直至c=7,不再贅述。
在一些實例中,確定像素的預測檢測框與真實檢測框之間的檢測框損失,包括:根據預測檢測框在對應圖片中的預測座標,確定該預測檢測框對於對應像素的相對預測座標;獲取真實檢測框對於對應像素的相對真實座標;確定相對預測座標與相對真實座標之間的座標距離;根據座標距離確定檢測框損失。
其中,預測座標是指前文所述的透過全卷積神經網路得到的預測檢測框對應的座標位置,例如預測檢測框對應的矩形框座標(pred x1、pred x2、pred y1、pred y2)。
真實檢測框在對應圖片中的真實座標是像素真實檢測框對應的座標位置,例如真實檢測框對應的矩形框座標(x1、x2、y1、y2),且該真實座標位是已知的。
相對預測座標是指以該像素為基準,預測檢測框所在的座標位置。
相對真實座標是指以該像素為基準,真實檢測框所在的座標位置。
在一些實例中,相對預測座標的確定方式可以為:設預測檢測框位置為(pred x1、pred x2、pred y1、pred y2),當下像素座標為(x, y),圖片大小設為(w, h),w為圖片寬度,h為圖片高度, 則相對預測座標(也可以稱為回歸目標)為((x- pred x1)/w,(y- pred y1)/h,(pred x2-x)/w,(pred y2-y)/h)。
需要說明的是,相對真實座標的確定方式與相對預測座標的確定方式相同,此處就不再贅述。例如,相對真實座標可以為((x-x1)/w,(y-y1)/h,(x2-x)/w,(y2-y)/h)。
此外,對於相對真實座標是在對應的像素具有瑕疵的前提下才存在的,相對預測座標是在對應的像素預測具有瑕疵的前提下才存在的。當像素存在相對預測座標時,其可以不存在相對真實座標,此時,相對真實座標為0。
在一些實例中,可以透過公式2)確定檢測框損失:
其中,
為檢測框損失,x為座標距離。
例如,根據前文所述,對於像素a而言,x為
((x- pred x1)/w,(y- pred y1)/h,(pred x2-x)/w,(pred y2-y)/h)與((x-x1)/w,(y-y1)/h,(x2-x)/w,(y2-y)/h)的座標距離。當
小於1時,則檢測框損失為
,否則當
大於或等於1時檢測框損失為
。
203:根據像素的類型損失以及檢測框損失,確定像素的總損失,根據總損失,產生瑕疵的檢測模型。
其中,總損失是指用來評價的預測瑕疵與真實瑕疵之間不一樣的檢測程度。
在一些實例中,根據像素的類型損失以及檢測框損失,確定像素的總損失,包括:根據像素的類型損失,確定像素的類型損失和;根據像素的檢測框損失,確定像素的檢測框損失和;根據類型損失和與檢測框損失和,確定總損失。
在一些實例中,可以透過下式3)確定像素的類型損失和
:
其中,
為多個圖片的像素的總數目。
故,類型損失和
為多個圖片中的所有像素的類型損失的總和。
在一些實例中,確定像素的檢測框損失和的方式可以為:多個圖片中的具有預測檢測框的像素的檢測框損失的總和。
在一些實例中,根據類型損失和與檢測框損失和,確定總損失,包括:根據加權求和演算法,確定類型損失和與檢測框損失和的總損失。
在一些實例中,可以透過下式4)確定總損失
:
其中,
為權重係數,
為檢測框損失和。
為了降低誤報率,需要對容易產生誤報的負樣本進行挖掘。而這樣的樣本可能存在於沒有瑕疵的圖片上,因此需要有選擇性的篩選負樣本。正樣本由於一直參與訓練,因此不會受影響。
在一些實例中,該方法200還包括:針對任一圖片,從該圖片中不屬於瑕疵的正常像素中獲取困難負樣本,困難負樣本是指具有預定品質的負樣本;針對任一圖片,將該圖片中屬於瑕疵的像素作為正樣本;其中,根據像素的類型損失,確定像素的類型損失和,包括:確定至少一張圖片中的困難負樣本的類型損失和;確定至少一張圖片中的正樣本的類型損失和,將困難負樣本的類型損失和與正樣本的類型損失和,作為對應圖片的類型損失。
其中,正樣本是指屬於瑕疵的像素。
負樣本是指不屬於瑕疵的正常像素。
困難負樣本是指優質的負樣本,容易將其檢測為瑕疵的像素。
在一些實例中,從該圖片中不屬於瑕疵的正常像素中獲取困難負樣本,包括:將每個圖片中不屬於瑕疵的正常像素作為負樣本,並確定負樣本的類型損失;將負樣本的類型損失由大到小進行排序,並選擇出相鄰類型損失差距最大對應的兩個負樣本,將排序靠後的負樣本作為臨界點,將排序在臨界點之前的負樣本作為困難負樣本。
例如,根據前文所述,從多個圖片中選擇器任一圖片為例進行說明,對於圖片A中具有多個負樣本,根據式1)分別計算每個負樣本的類型損失,並將得到的多個像素的類型損失進行由大到小的排序,從該排序中選擇出相鄰損失差距最大對應的兩個負樣本,如圖7所示,可知相鄰損失差距最大是0.7與0.3之間的差距0.4,此時0.7對應的負樣本為排序中的第200個負樣本,0.3對應的負樣本為排序中的第201個負樣本,則將選擇第201個負樣本作為臨界點,則0.3為對應的差距點(gap point),選擇前200個負樣本作為困難負樣本。
需要說明的是,對每個圖片都進行困難負樣本的選擇,得到多個圖片對應的多個困難負樣本。
在一些實例中,可以透過下式5)和下式6)來確定困難負樣本的類型損失和:
其中,
為像素o的權重,
為差距點(gap point)。
其中,負樣本的類型損失和loss
負樣本
計算如下式6):
其中,
為像素o的負樣本的類型損失。
需要說明的是,公式5)和公式6)是針對一張圖片而言的。多個圖片中的每個圖片都可以根據公式5)和公式6)進行處理,獲取到困難負樣本的類型損失和。
將多個圖片的loss
負樣本
與多個圖片的每個正樣本的類型損失進行求和,得到多個圖片對應的
。
需要說明的是,為了保證演算法訓練收斂,對於包含瑕疵的圖片,若瑕疵像素樣本數目為N, 則參與訓練負樣本數目至少為N,至多為5N。對於不含瑕疵的圖像,可以根據上述方式進行困難負樣本的數目確定,為了保證演算法收斂,可以設置困難負樣本的數目閾值,如任一圖片的大小為(w,h),則選擇困難負樣本數目至多為(w*h)/r,其中,r為比例值。對於包含瑕疵的圖片,也根據上述方式進行困難負樣本的數目確定。
在一些實例中,根據總損失,產生瑕疵的檢測模型,包括:根據總損失,更新檢測模型的檢測參數,進行模型的反覆運算訓練,直到滿足反覆運算訓練停止條件,產生檢測模型。
其中,檢測參數是用於檢測瑕疵的參數,例如卷積神經網路中的參數,可以用於獲取圖片的特徵,或全卷積神經網路的參數,可以用於確定該圖片中像素的預測類型以及預測檢測框。
例如,根據前文所述,根據總損失,來調整全卷積神經網路的參數,在進行上述步驟繼續確定新的總損失,並根據總損失繼續調整全卷積神經網路的參數,持續進行全卷積神經網路的反覆運算,直到總損失維持在一個閾值範圍內,或者訓練次數達到了閾值,即可停止訓練,得到一個訓練好的檢測模型,如全卷積神經網路模型。
本發明實施例,透過全卷積神經網路,直接對像素值進行分割,同時對其預測檢測框進行回歸,從而能夠避免瑕疵寬高比差距過大,無法覆蓋的問題,實現多尺度、形變大瑕疵的檢測;透過對負樣本進行數目動態篩選,保證正樣本參與訓練以及困難負樣本得到訓練,同時針對工業瑕疵檢測場景中,無瑕疵圖片遠多餘有瑕疵圖片的特性,充分利用沒有瑕疵的圖片進行負樣本訓練,其中容易引起誤報的地方會參與訓練,保持正負比例均衡,降低誤報的同時不會降低模型召回率。
圖3為本發明另一示例性實施例提供的一種瑕疵的檢測方法的流程示意圖。本發明實施例提供的該方法300由計算設備執行,該方法300包括以下步驟:
301:獲取至少一張待預測圖片,確定待預測圖片中的像素的預測類型以及預測檢測框。
302:針對一張待預測圖片,根據預測類型聚合像素,產生像素區域,並根據像素的預測檢測框,確定像素區域的預測檢測框。
303:根據像素區域和/或像素區域的預測檢測框,確定待預測圖片的瑕疵。
以下針對上述步驟進行詳細闡述:
301:獲取至少一張待預測圖片,確定待預測圖片中的像素的預測類型以及預測檢測框。
在一些實例中,確定待預測圖片中的像素的預測類型以及預測檢測框,包括:將至少一張待預測圖片輸入至產生的瑕疵的檢測模型,得到待預測圖片中的像素的預測類型以及預測檢測框。
例如,根據前文所述,計算設備可以從終端獲取到多張待預測圖片,並將多張待預測圖片進行歸一化處理,並將處理後的圖片輸入至產生的瑕疵的檢測模型中,如,全卷積神經網路模型中,進行前向傳播,得到待預測圖片中的像素的預測類型以及預測檢測框。
302:針對一張待預測圖片,根據預測類型聚合像素,產生像素區域,並根據像素的預測檢測框,確定像素區域的預測檢測框。
其中,像素區域是指由多個像素組成的區域。
在一些實例中,根據預測類型聚合像素,產生像素區域,包括:根據預測類型的預測機率,確定每個像素的瑕疵類型;根據瑕疵類型,聚合像素,產生相同瑕疵類型的像素的聚合區域,作為像素區域。
在一些實例中,該方法300還包括:將相同瑕疵類型作為該像素區域的瑕疵類型;其中,根據像素的預測檢測框,確定像素區域的預測檢測框,包括:選擇像素區域中該瑕疵類型的預測機率最高的像素的預測檢測框作為該像素區域的預測檢測框。
例如,根據前文所述,計算設備透過產生的瑕疵檢測模型中的softmax函數(歸一化指數函數)的方式,對像素的預測機率進行處理,獲取每個像素的最大預測機率對應的預測類型,作為每個像素的瑕疵類型;根據每個像素的瑕疵類型進行區域的聚合,將同一個瑕疵類型的像素進行聚合,產生像素區域,若該像素區域中的像素的瑕疵類型為瑕疵c,則該像素區域的瑕疵類型也為瑕疵c,從而獲得瑕疵的語義分割結果,如圖5所示,其中聚合區域為矩形框中的橢圓區域。選擇該像素區域中瑕疵c的預測機率最高的像素,將該像素的預測檢測框作為該像素區域的預測檢測框。
需要說明的是,語義分割結果是指根據圖像的語義來進行分割,如圖像內容作為語義。
此外,還可以直接透過全卷積神經網路模型確定該像素區域的瑕疵類型,實現語義分割。
303:根據像素區域和/或像素區域的預測檢測框,確定待預測圖片的瑕疵。
在一些實例中,根據像素區域和/或像素區域的預測檢測框,確定待預測圖片的瑕疵,包括:當像素區域的瑕疵類型屬於第一類型時,將像素區域的瑕疵類型作為該待預測圖片包含的瑕疵類型,將像素區域的預測檢測框作為該待預測圖片包含的瑕疵的預測檢測框;當像素區域中的部分像素超出預測檢測框時,從像素區域中去除部分像素,將剩餘像素組成的區域作為該待預測圖片包含的瑕疵的像素區域。
其中,第一類型可以為塊狀瑕疵,如圖5所示,橢圓形區域。
例如,根據前文所述,當像素區域的瑕疵類型為瑕疵a,且瑕疵a屬於塊狀瑕疵的一種,則對應的待預測圖片中包含塊狀瑕疵,計算設備直接將該像素區域的預測檢測框作為塊狀瑕疵的預測檢測框,同時,將超出該預測檢測框的像素區域中的像素去除,將像素區域中的剩餘像素組成的區域作為該塊狀瑕疵的像素區域。
在一些實例中,根據像素區域和/或像素區域的預測檢測框,確定待預測圖片的瑕疵,包括:當像素區域的瑕疵類型屬於第二類型時,將像素區域的瑕疵類型作為該待預測圖片包含的瑕疵類型,將像素區域作為該待預測圖片包含的瑕疵的像素區域,將像素區域的最小外接矩形框作為該待預測圖片包含的瑕疵的預測檢測框。
其中,第一類型可以為線狀瑕疵,如圖6所示,幾條線狀瑕疵。
例如,根據前文所述,當像素區域的瑕疵類型為瑕疵d,且瑕疵d屬於線狀瑕疵的一種,則對應的待預測圖片中包含線狀瑕疵,計算設備採用openCV的minAreaRect函數的方法尋找線狀瑕疵的最小外接矩形框,作為預測檢測框的輸出結果,同時直接將像素區域作為線狀瑕疵的像素區域。
應理解,對於塊狀瑕疵以及線狀瑕疵對應的瑕疵類型是已知的,故,可以根據不同的瑕疵類型,確定該瑕疵屬於線狀瑕疵還是塊狀瑕疵。
本發明的實施例,工業檢測中常見的兩類瑕疵,塊狀瑕疵和線狀瑕疵,採用不同後處理方式,塊狀瑕疵檢測結果信賴度更高,線狀瑕疵語義分割結果信賴度更高。
圖4為本發明另一示例性實施例提供的又一種瑕疵的檢測方法的流程示意圖。本發明實施例提供的該方法400由計算設備執行,該方法400包括以下步驟:
401:獲取至少一張圖片的特徵,根據特徵確定該圖片中像素的預測類型以及預測檢測框,預測類型反映像素是否屬於瑕疵的情況,預測目標框反映像素在具有瑕疵時的瑕疵位置。
402:確定像素的預測類型與真實類型之間的類型損失,以及確定像素的預測檢測框與真實檢測框之間的檢測框損失。
403:根據像素的類型損失以及檢測框損失,確定像素的總損失,根據總損失,產生瑕疵的檢測模型。
404:根據產生瑕疵的檢測模型,確定待預測圖片中的像素的預測類型以及預測檢測框。
405:針對一張待預測圖片,根據預測類型聚合像素,產生像素區域,並根據像素的預測檢測框,確定像素區域的預測檢測框。
406:根據像素區域和/或像素區域的預測檢測框,確定待預測圖片的瑕疵。
需要說明的是,上述實施例所提供方法400中的步驟的具體實施方式在前文已經詳細闡述過了,此處就不再贅述。
圖8為本發明又一示例性實施例提供的資料處理裝置的結構框架示意圖。該資料處理裝置800可以應用於計算設備中,該資料處理裝置800包括獲取模組801、確定模組802以及產生模組803,以下針對各個模組的功能進行詳細的闡述:
獲取模組801,用於獲取至少一張圖片的特徵,根據特徵確定該圖片中像素的預測類型以及預測檢測框,預測類型反映像素是否屬於瑕疵的情況,預測目標框反映像素在具有瑕疵時的瑕疵位置。
確定模組802,用於確定像素的預測類型與真實類型之間的類型損失,以及確定像素的預測檢測框與真實檢測框之間的檢測框損失;
產生模組803,用於根據像素的類型損失以及檢測框損失,確定像素的總損失,根據總損失,產生瑕疵的檢測模型。
在一些實例中,產生模組803包括:第一確定單元,用於根據像素的類型損失,確定像素的類型損失和;第二確定單元,用於根據像素的檢測框損失,確定像素的檢測框損失和;第三確定單元,用於根據類型損失和與檢測框損失和,確定總損失。
在一些實例中,獲取模組801,用於針對任一圖片,從該圖片中不屬於瑕疵的正常像素中獲取困難負樣本,困難負樣本是指具有預定品質的負樣本;針對任一圖片,將該圖片中屬於瑕疵的像素作為正樣本。
其中,第一確定單元,用於確定至少一張圖片中的困難負樣本的類型損失和;確定至少一張圖片中的正樣本的類型損失和,將困難負樣本的類型損失和與正樣本的類型損失和,作為對應圖片的類型損失。
在一些實例中,獲取模組801,包括:第四確定單元,用於將每個圖片中不屬於瑕疵的正常像素作為負樣本,並確定負樣本的類型損失;選擇單元,用於將負樣本的類型損失由大到小進行排序,並選擇出相鄰類型損失差距最大對應的兩個負樣本,將排序靠後的負樣本作為臨界點,將排序在臨界點之前的負樣本作為困難負樣本。
在一些實例中,獲取模組801,用於根據全卷積神經網路模型,對特徵進行處理,確定該圖片中像素的預測類型以及預測檢測框。
在一些實例中,確定模組802,用於根據像素的真實類型以及與該真實類型相符的預測類型的預測機率,確定該真實類型下的像素的類型損失。
在一些實例中,透過下式1)確定像素的預測類型與真實類型之間的類型損失:
其中,
為類型損失,M為真實類型的總數目,
為像素o預測類型是否為真實類型c對應的數值,
是像素
屬於預測類型
的預測機率。
在一些實例中,確定模組802,包括:第五確定單元,用於根據預測檢測框在對應圖片中的預測座標,確定該預測檢測框對於對應像素的相對預測座標;獲取單元,用於獲取真實檢測框對於對應像素的相對真實座標;第五確定單元,用於確定相對預測座標與相對真實座標之間的座標距離;第五確定單元,用於根據座標距離確定檢測框損失。
在一些實例中,透過公式2)確定檢測框損失:
其中,
為檢測框損失,x為座標距離。
在一些實例中,產生模組803,用於根據總損失,更新檢測模型的檢測參數,進行模型的反覆運算訓練,直到滿足反覆運算訓練停止條件,產生檢測模型。
在一些實例中,產生模組803,用於根據加權求和演算法,確定類型損失和與檢測框損失和的總損失。
在一些實例中,獲取模組801,用於根據全卷積神經網路模型,對特徵進行處理得到像素的至少一個預測類型的預測機率;選擇預測機率最大的預測類型作為該像素的預測類型;將預測機率最大的預測類型對應的預測檢測框作為該像素的預測檢測框。
圖9為本發明又一示例性實施例提供的一種瑕疵的檢測裝置的結構框架示意圖。該檢測裝置900可以應用於計算設備中,該檢測裝置900包括:獲取模組901、產生模組902以及確定模組903,以下針對各個模組的功能進行詳細的闡述:
獲取模組901,用於獲取至少一張待預測圖片,確定待預測圖片中的像素的預測類型以及預測檢測框。
產生模組902,用於針對一張待預測圖片,根據預測類型聚合像素,產生像素區域,並根據像素的預測檢測框,確定像素區域的預測檢測框。
確定模組903,用於根據像素區域和/或像素區域的預測檢測框,確定待預測圖片的瑕疵。
在一些實例中,產生模組902包括:確定單元,用於根據預測類型的預測機率,確定每個像素的瑕疵類型;產生單元,用於根據瑕疵類型,聚合像素,產生相同瑕疵類型的像素的聚合區域,作為像素區域。
在一些實例中,該裝置900還包括:選擇模組,用於將相同瑕疵類型作為該像素區域的瑕疵類型;其中,產生模組902,用於選擇像素區域中該瑕疵類型的預測機率最高的像素的預測檢測框作為該像素區域的預測檢測框。
在一些實例中,確定模組903,包括:選擇單元,用於當像素區域的瑕疵類型屬於第一類型時,將像素區域的瑕疵類型作為該待預測圖片包含的瑕疵類型,將像素區域的預測檢測框作為該待預測圖片包含的瑕疵的預測檢測框;去除單元,用於當像素區域中的部分像素超出預測檢測框時,從像素區域中去除部分像素,將剩餘像素組成的區域作為該待預測圖片包含的瑕疵的像素區域。
在一些實例中,確定模組903,用於當像素區域的瑕疵類型屬於第二類型時,將像素區域的瑕疵類型作為該待預測圖片包含的瑕疵類型,將像素區域作為該待預測圖片包含的瑕疵的像素區域,將像素區域的最小外接矩形框作為該待預測圖片包含的瑕疵的預測檢測框。
在一些實例中,獲取模組901,用於將至少一張待預測圖片輸入至產生的瑕疵的檢測模型,得到待預測圖片中的像素的預測類型以及預測檢測框。
圖10為本發明又一示例性實施例提供的又一種瑕疵的檢測裝置的結構框架示意圖。該檢測裝置1000可以應用於計算設備中,該檢測裝置1000包括:獲取模組1001、確定模組1002以及產生模組1003,以下針對各個模組的功能進行詳細的闡述:
獲取模組1001,用於獲取至少一張圖片的特徵,根據特徵確定該圖片中像素的預測類型以及預測檢測框,預測類型反映像素是否屬於瑕疵的情況,預測目標框反映像素在具有瑕疵時的瑕疵位置。
確定模組1002:用於確定像素的預測類型與真實類型之間的類型損失,以及確定像素的預測檢測框與真實檢測框之間的檢測框損失。
產生模組1003,用於根據像素的類型損失以及檢測框損失,確定像素的總損失,根據總損失,產生瑕疵的檢測模型。
確定模組1002:用於根據產生瑕疵的檢測模型,確定待預測圖片中的像素的預測類型以及預測檢測框。
產生模組1003,用於針對一張待預測圖片,根據預測類型聚合像素,產生像素區域,並根據像素的預測檢測框,確定像素區域的預測檢測框;
確定模組1002:用於根據像素區域和/或像素區域的預測檢測框,確定待預測圖片的瑕疵。
以上描述了圖8所示的資料處理800的內部功能和結構,在一個可能的設計中,圖8所示的資料處理裝置800的結構可實現為計算設備,如圖11所示,該計算設備1100可以包括:記憶體1101以及處理器1102;
記憶體1101,用於儲存電腦程式;
處理器1102,用於執行電腦程式,以用於:
獲取至少一張圖片的特徵,根據特徵確定該圖片中像素的預測類型以及預測檢測框,預測類型反映像素是否屬於瑕疵的情況,預測目標框反映像素在具有瑕疵時的瑕疵位置;確定像素的預測類型與真實類型之間的類型損失,以及確定像素的預測檢測框與真實檢測框之間的檢測框損失;根據像素的類型損失以及檢測框損失,確定像素的總損失,根據總損失,產生瑕疵的檢測模型。
在一些實例中,處理器1102,具體用於:根據像素的類型損失,確定像素的類型損失和;第二確定單元,用於根據像素的檢測框損失,確定像素的檢測框損失和;第三確定單元,用於根據類型損失和與檢測框損失和,確定總損失。
在一些實例中,處理器1102,具體用於:針對任一圖片,從該圖片中不屬於瑕疵的正常像素中獲取困難負樣本,困難負樣本是指具有預定品質的負樣本;針對任一圖片,將該圖片中屬於瑕疵的像素作為正樣本。
其中,處理器1102,具體用於:確定至少一張圖片中的困難負樣本的類型損失和;確定至少一張圖片中的正樣本的類型損失和,將困難負樣本的類型損失和與正樣本的類型損失和,作為對應圖片的類型損失。
在一些實例中,處理器1102,具體用於:將每個圖片中不屬於瑕疵的正常像素作為負樣本,並確定負樣本的類型損失;將負樣本的類型損失由大到小進行排序,並選擇出相鄰類型損失差距最大對應的兩個負樣本,將排序靠後的負樣本作為臨界點,將排序在臨界點之前的負樣本作為困難負樣本。
在一些實例中,處理器1102,具體用於:根據全卷積神經網路模型,對特徵進行處理,確定該圖片中像素的預測類型以及預測檢測框。
在一些實例中,處理器1102,具體用於:根據像素的真實類型以及與該真實類型相符的預測類型的預測機率,確定該真實類型下的像素的類型損失。
在一些實例中,透過下式1)確定像素的預測類型與真實類型之間的類型損失:
其中,
為類型損失,M為真實類型的總數目,
為像素o預測類型是否為真實類型c對應的數值,
是像素
屬於預測類型
的預測機率。
在一些實例中,處理器1102,具體用於:根據預測檢測框在對應圖片中的預測座標,確定該預測檢測框對於對應像素的相對預測座標;獲取真實檢測框對於對應像素的相對真實座標;確定相對預測座標與相對真實座標之間的座標距離;根據座標距離確定檢測框損失。
在一些實例中,透過公式2)確定檢測框損失:
其中,
為檢測框損失,x為座標距離。
在一些實例中,處理器1102,具體用於:根據總損失,更新檢測模型的檢測參數,進行模型的反覆運算訓練,直到滿足反覆運算訓練停止條件,產生檢測模型。
在一些實例中,處理器1102,具體用於:根據加權求和演算法,確定類型損失和與檢測框損失和的總損失。
在一些實例中,處理器1102,具體用於:根據全卷積神經網路模型,對特徵進行處理得到像素的至少一個預測類型的預測機率;選擇預測機率最大的預測類型作為該像素的預測類型;將預測機率最大的預測類型對應的預測檢測框作為該像素的預測檢測框。
另外,本發明實施例提供了一種電腦儲存媒體,電腦程式被一個或多個處理器執行時,致使一個或多個處理器實現圖2方法實施例中資料處理方法的步驟。
以上描述了圖9所示的檢測裝置900的內部功能和結構,在一個可能的設計中,圖9所示的檢測裝置900的結構可實現為計算設備,如圖12所示,該計算設備1200可以包括:記憶體1201以及處理器1202;
記憶體1201,用於儲存電腦程式;
處理器1202,用於執行電腦程式,以用於:
獲取至少一張待預測圖片,確定待預測圖片中的像素的預測類型以及預測檢測框;針對一張待預測圖片,根據預測類型聚合像素,產生像素區域,並根據像素的預測檢測框,確定像素區域的預測檢測框;根據像素區域和/或像素區域的預測檢測框,確定待預測圖片的瑕疵。
在一些實例中,處理器1102,具體用於:根據預測類型的預測機率,確定每個像素的瑕疵類型;根據瑕疵類型,聚合像素,產生相同瑕疵類型的像素的聚合區域,作為像素區域。
在一些實例中,處理器1102,還用於:將相同瑕疵類型作為該像素區域的瑕疵類型;其中,處理器1102,具體用於:選擇像素區域中該瑕疵類型的預測機率最高的像素的預測檢測框作為該像素區域的預測檢測框。
在一些實例中,處理器1102,具體用於:當像素區域的瑕疵類型屬於第一類型時,將像素區域的瑕疵類型作為該待預測圖片包含的瑕疵類型,將像素區域的預測檢測框作為該待預測圖片包含的瑕疵的預測檢測框;當像素區域中的部分像素超出預測檢測框時,從像素區域中去除部分像素,將剩餘像素組成的區域作為該待預測圖片包含的瑕疵的像素區域。
在一些實例中,處理器1102,具體用於:當像素區域的瑕疵類型屬於第二類型時,將像素區域的瑕疵類型作為該待預測圖片包含的瑕疵類型,將像素區域作為該待預測圖片包含的瑕疵的像素區域,將像素區域的最小外接矩形框作為該待預測圖片包含的瑕疵的預測檢測框。
在一些實例中,處理器1102,具體用於:將至少一張待預測圖片輸入至產生的瑕疵的檢測模型,得到待預測圖片中的像素的預測類型以及預測檢測框。
另外,本發明實施例提供了一種電腦儲存媒體,電腦程式被一個或多個處理器執行時,致使一個或多個處理器實現圖3方法實施例中瑕疵的檢測方法的步驟。
以上描述了圖10所示的裝置1000的內部功能和結構,在一個可能的設計中,圖10所示的裝置1000的結構可實現為計算設備,如圖13所示,該計算設備1300可以包括:記憶體1301以及處理器1302;
記憶體1301,用於儲存電腦程式;
處理器1302,用於執行電腦程式,以用於:
記憶體,用於儲存電腦程式;
處理器,用於執行電腦程式,以用於:
獲取至少一張圖片的特徵,根據特徵確定該圖片中像素的預測類型以及預測檢測框,預測類型反映像素是否屬於瑕疵的情況,預測目標框反映像素在具有瑕疵時的瑕疵位置;確定像素的預測類型與真實類型之間的類型損失,以及確定像素的預測檢測框與真實檢測框之間的檢測框損失;根據像素的類型損失以及檢測框損失,確定像素的總損失,根據總損失,產生瑕疵的檢測模型;根據產生瑕疵的檢測模型,確定待預測圖片中的像素的預測類型以及預測檢測框;針對一張待預測圖片,根據預測類型聚合像素,產生像素區域,並根據像素的預測檢測框,確定像素區域的預測檢測框;根據像素區域和/或像素區域的預測檢測框,確定待預測圖片的瑕疵。
另外,本發明實施例提供了一種電腦儲存媒體,電腦程式被一個或多個處理器執行時,致使一個或多個處理器實現圖4方法實施例中瑕疵的檢測方法的步驟。
另外,在上述實施例及圖式中的描述的一些流程中,包含了按照特定順序出現的多個操作,但是應該清楚瞭解,這些操作可以不按照其在本文中出現的順序來執行或並存執行,操作的序號如201、202、203等,僅僅是用於區分開各個不同的操作,序號本身不代表任何的執行順序。另外,這些流程可以包括更多或更少的操作,並且這些操作可以按循序執行或並存執行。需要說明的是,本文中的“第一”、“第二”等描述,是用於區分不同的消息、設備、模組等,不代表先後順序,也不限定“第一”和“第二”是不同的類型。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部模組來實現本實施例方案的目的。本領域普通技術人員發明所屬技術領域通常知識者在不付出創造性的勞動的情況下,即可以理解並實施。
透過以上的實施方式的描述,本領域的技術人員可以清楚地瞭解到各實施方式可借助加必需的通用硬體平台的方式來實現,當然也可以透過硬體和軟體結合的方式來實現。基於這樣的理解,上述技術方案本質上或者說對現有技術做出貢獻的部分可以以電腦產品的形式體現出來,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式設計多媒體資料處理設備的處理器以產生一個機器,使得透過電腦或其他可程式設計多媒體資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式設計多媒體資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式設計多媒體資料處理設備上,使得在電腦或其他可程式設計設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式設計設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫態性電腦可讀媒體(transitory media),如調變的資料信號和載波。
最後應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,發明所屬技術領域通常知識者應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。