劉 偉 徐 強 賴澤豐
(珠海格力電器股份有限公司 珠海 519070)
社會、企業(yè)、消費者日益關(guān)注企業(yè)聲譽,各行業(yè)競爭日益加劇。傳統(tǒng)空調(diào)生產(chǎn)線的質(zhì)量檢測都是靠檢驗人員耳聽、手摸、眼看等方式進行,這些方式不僅會受檢驗人員主觀因素及經(jīng)驗差異性的影響,導致產(chǎn)品質(zhì)量檢測過程難以實現(xiàn)一致性和可靠性,而且會因為人無法識別的原因?qū)е潞芏喈a(chǎn)品缺陷難以檢測,從而導致次品流入市場,給企業(yè)帶來巨大的損失。
為了解決上述問題,通過前期的技術(shù)探索,發(fā)現(xiàn)借助目前的人工智能技術(shù)手段才能夠徹底解決上述的問題,特提出通過聲紋特征對空調(diào)質(zhì)量進行檢測的技術(shù)方案:
規(guī)劃檢測生產(chǎn)線:環(huán)形和臺站式生產(chǎn)線分內(nèi)機、外機共計4 條產(chǎn)線;
檢測的空調(diào)類型:主要針對家用外機、家用內(nèi)機和商用風管內(nèi)機,本次按照1 000種空調(diào)類型進行設(shè)計。故障分為四大類:風葉碰響、氣流聲(液流聲)、管道碰撞、其它異響,見表1。
表1 故障分類明細表
本文結(jié)合實際檢測需求進行了實現(xiàn)功能的總體設(shè)計和規(guī)劃。
在模型建立完成之后,通過在各質(zhì)量檢測點設(shè)置的聲音采集設(shè)備采集空調(diào)聲紋,并通過網(wǎng)線傳輸?shù)街鳈C上,由主機將聲音格式.wav提取為聲紋特征信息.mat,再通過模型判斷,打上標簽之后,根據(jù)資源存儲分類原則,將該信息存放在模型訓練集群存儲資源對應(yīng)的位置上。
其中按照內(nèi)機和外機、不同產(chǎn)品類型、不同故障類型進行存儲;存儲聲音特征數(shù)據(jù)名稱為Product_ID_Fault_name_YY-MM-DD hh:mm:ss。
可溯源修改標簽,在后續(xù)檢查中發(fā)現(xiàn),由于某些標簽的原因?qū)е履骋还收险`判逐漸增加,則可追溯分析,修改此類別標簽。
音頻發(fā)送模塊發(fā)送音頻之后,若發(fā)送失敗,則認為網(wǎng)絡(luò)傳輸故障,此時在界面顯示,并進行聲音提醒。將采集得到的音頻信息,送入系統(tǒng)中,根據(jù)Flink架構(gòu),將其分配到相應(yīng)的處理時間和相應(yīng)的處理模塊中去,模型空調(diào)的合格判斷,并輸出最終的判斷結(jié)果,得出產(chǎn)品是否合格或者故障類型,指出故障發(fā)生的空調(diào)器件,協(xié)助檢查人員對空調(diào)故障迅速定位檢查。
在軟件設(shè)計初期,采用微服務(wù)架構(gòu),保留需求和空調(diào)類型、空調(diào)故障類型擴展接口,支持需求和空調(diào)類型、空調(diào)故障類型的擴充,保證隨著業(yè)務(wù)的擴展,系統(tǒng)能夠根據(jù)新的類型數(shù)據(jù),進行訓練,得到新的涵蓋新的類型的訓練模型,提高系統(tǒng)的擴展性能。
前端層基于目前前后端分離開發(fā)模式,快速構(gòu)建應(yīng)用系統(tǒng)。前端主要依托UI框架、WEB Framework、前端服務(wù)化、組件化以及快速腳手架的方式搭建前端應(yīng)用系統(tǒng),通過AJAX技術(shù),請求并接收后臺微服務(wù)化RESTFUL API的JSON數(shù)據(jù),渲染前端功能。由于部署在生產(chǎn)車間,只需要支持應(yīng)用終端PC即可。
網(wǎng)關(guān)層(api-gateway)主要對外釋放微服務(wù)架構(gòu)所提供的相關(guān)服務(wù),主要包括預(yù)測結(jié)果可視化api和業(yè)務(wù)分析api。來響應(yīng)和組合用戶不同場景的應(yīng)用系統(tǒng)。
服務(wù)化平臺主要是分布式微服務(wù)化架構(gòu)提供技術(shù)支持,實現(xiàn)認證授權(quán)、服務(wù)注冊,保證系統(tǒng)的安全性。
基礎(chǔ)組件層:該層主要為系統(tǒng)平臺介于數(shù)據(jù)層之上的基礎(chǔ)組件,主要提供平臺日志記錄、監(jiān)控、數(shù)據(jù)訪問方式、配置中心、任務(wù)調(diào)度中心、消息中心、分布式緩存、全局唯一性標識的底層技術(shù)支撐。為平臺提供全面容錯策略。
存儲層:該層主要實現(xiàn)數(shù)據(jù)存儲方式的搭建,根據(jù)限定的存儲方式,容易驗證和追查,并為模型的自適應(yīng)學習提供了數(shù)據(jù)的支撐。
DevOps平臺層:該層是平臺的開發(fā)和測試平臺,主要為平臺迭代構(gòu)建出高可用、擴展性強、安全性強的快速開發(fā)測試及部署平臺,簡化相關(guān)環(huán)節(jié)流程,保障系統(tǒng)健壯持續(xù)發(fā)展。
容器網(wǎng)絡(luò)層:整個平臺所構(gòu)建和部署的基礎(chǔ)為DOCKER容器化技術(shù)、網(wǎng)絡(luò)協(xié)議等系統(tǒng)平臺支撐提供運行環(huán)境的保障。該系統(tǒng)平臺的設(shè)計,主要遵循標準的安全協(xié)議、運維協(xié)議,打造全生態(tài)的高端平臺,提供高效服務(wù)。
整體系統(tǒng)架構(gòu)中,其核心處理模塊是產(chǎn)線上產(chǎn)品缺陷檢測功能,對于該檢測功能的內(nèi)容,設(shè)計出如下的軟件架構(gòu)如圖2所示。
圖1 系統(tǒng)總體方框圖
圖2 軟件系統(tǒng)總體方框圖
上述的軟件架構(gòu)主要包括空調(diào)音頻采集功能、空調(diào)信息處理模塊、音頻轉(zhuǎn)換功能、空調(diào)音頻標定功能、空調(diào)缺陷檢測功能、模型自主學習功能、結(jié)果展示及交互功能等。
第一步聲音采集:在目前的每一個質(zhì)檢口放置一臺音頻采集設(shè)備,將收集到的音頻直接傳送到預(yù)測集群的電腦上,對應(yīng)的電腦按照設(shè)定的區(qū)域進行緩存,在判斷出產(chǎn)品質(zhì)量之后,按照情況判斷是否需要及時清除掉和打上標簽自動上傳到模型訓練集群中對應(yīng)的存儲資源位置上。
第二步空調(diào)信息處理:此處需要與現(xiàn)有系統(tǒng)相連,獲取當前空調(diào)產(chǎn)品類型,隨后與系統(tǒng)中的“空調(diào)信息處理模型”相結(jié)合,分析出當前空調(diào)產(chǎn)品的聲音信息與其對應(yīng)的模型ID;
第三步空調(diào)缺陷檢測:在通過“空調(diào)信息處理模塊”、“模型調(diào)度模塊”以及預(yù)處理等一系列操作之后,調(diào)用對應(yīng)的模型對采集到的音頻信息進行判斷,判斷結(jié)果傳送到“標簽生產(chǎn)模塊”中去,得到空調(diào)質(zhì)量的檢測結(jié)果,將結(jié)果呈現(xiàn)到“可視化模塊”進行統(tǒng)計和展示。
第四步樣本存儲:在空調(diào)質(zhì)量判斷之后,將音頻信息傳送到“存儲分配模塊”,結(jié)合“空調(diào)信息處理模塊”和“標簽生產(chǎn)模塊”,根據(jù)既定規(guī)則,將其傳送至“存儲/訓練”服務(wù)器集群中去,并將其存儲在對應(yīng)的存儲空間中。
第五步可視化展示:將空調(diào)質(zhì)量檢測判斷結(jié)果進行呈現(xiàn),同時完成“人機交互”功能。
第六步模型自適應(yīng)訓練:根據(jù)設(shè)定規(guī)則,模型自動驅(qū)使進行再訓練,根據(jù)“進程管理模塊”和“資源調(diào)度模塊”,決定“存儲/訓練”服務(wù)器集群中在什么位置獲取訓練樣本和哪些模型進行再訓練。
由于數(shù)據(jù)信息小而雜,因此不推薦使用NAS架構(gòu),而是將數(shù)據(jù)存儲在模型訓練服務(wù)器集群內(nèi)部的固態(tài)硬盤里,這樣能夠增加模型的訓練速度,減少時間長度。經(jīng)分析,建議的系統(tǒng)架構(gòu)如圖3所示。
圖3 服務(wù)器系統(tǒng)架構(gòu)圖
1)空調(diào)產(chǎn)品質(zhì)量檢測系統(tǒng)
保持產(chǎn)線的生產(chǎn)工藝工作流程,與目前內(nèi)部系統(tǒng)接口內(nèi)容:當前產(chǎn)線信息、當前產(chǎn)線生產(chǎn)產(chǎn)品信息、各類型空調(diào)組成器件說明信息。
檢測系統(tǒng)生成產(chǎn)品檢測報告,并將該分析報告主動上傳到MS系統(tǒng)中去,同時檢測系統(tǒng)會將報告保留一段時間,時間長度為L,暫定30 day;系統(tǒng)主頁面/結(jié)果呈現(xiàn)界面如圖4所示。
圖4 系統(tǒng)主頁/結(jié)果展示界面圖
通過系統(tǒng),可得知當前預(yù)測空調(diào)類型,調(diào)取對應(yīng)的模型,對空調(diào)質(zhì)量進行檢測。模型預(yù)測之后,通過網(wǎng)絡(luò)將空調(diào)質(zhì)量檢測結(jié)果以JSON的形式上傳到應(yīng)用服務(wù)器,將檢測結(jié)果進行展示,其展示效果如圖4所示,主要說明如下:
每一條產(chǎn)線上的多個質(zhì)檢位置點的檢測結(jié)果匯總到該產(chǎn)線對應(yīng)的應(yīng)用服務(wù)器上進行結(jié)果展示;故障診斷結(jié)果中顯示信息包括產(chǎn)品信息、產(chǎn)品類型、質(zhì)檢位置(產(chǎn)線和質(zhì)檢口)以及產(chǎn)品診斷故障類型;待復診信息,在一條生產(chǎn)線上多個質(zhì)檢口出現(xiàn)故障產(chǎn)品時,此處會記錄各個故障產(chǎn)品信息,方便質(zhì)檢人員逐一進行質(zhì)量復檢;
復檢部件展示區(qū)域,通過產(chǎn)品類型,三維空間可調(diào)整的展示該種產(chǎn)品的輪廓,并使用紅色顯示故障部件;同時,復檢時,可通過反饋,將該空調(diào)產(chǎn)品的故障類型進行重新標定,否則維持原本的標簽。在“擴展菜單”里的“復檢接口”中按照產(chǎn)品類型信息分別進行記錄,并按照不同產(chǎn)線分開記錄。
模型管理界面通過主界面中的“模型展示接口”進入,主要包括模型index、模型訓練空調(diào)類型種類個數(shù)、模型最近一次部署時間、模型部署狀態(tài)、模型一定時間段內(nèi)的準確性統(tǒng)計、記錄、再訓練開關(guān)。
可將新添加空調(diào)類型放在某一model里,其存儲位置也按照對應(yīng)規(guī)則存儲到其相應(yīng)位置上;通過模型部署時間及部署狀態(tài),及時對模型再次進行操作;
準確性等因素,主動發(fā)起模型再次訓練;否則模型按照既定規(guī)則(例如:準確率降低到85 %或相對降低了5 %等)進行訓練;點擊model,則會出現(xiàn)模型訓練過程的記錄,例如準確性圖形和loss圖形等。再訓練“retrain”分為綠色、黃色、藍色,藍色表示部署失敗,綠色為正常工作狀態(tài),黃色表示模型準確性預(yù)警狀態(tài)。
復檢展示界面,按照產(chǎn)線記錄各產(chǎn)線中不合格空調(diào)的信息,包括產(chǎn)品名稱,空調(diào)類型以及故障類型。
業(yè)務(wù)擴展界面從主頁面的“業(yè)務(wù)擴展接口”點擊進入,主要功能包括新空調(diào)類型的添加、空調(diào)類型的刪除、模型的刪除等功能。
說明如下:
新空調(diào)類型的添加需要選擇模型,系統(tǒng)根據(jù)模型將其訓練的空調(diào)類型的音頻存儲到固定位置上去。添加新空調(diào)類型時,可使用文件夾添加的方式進行添加。新空調(diào)類型的添加,通過點擊“文件名”按鈕,進而根據(jù)目前所保存路徑去添加所要添加的新空調(diào)類型的音頻數(shù)據(jù);
在樣本收集階段,將樣本按照空調(diào)類型、故障類型分開進行存儲,標簽標定時對應(yīng)的故障類型;“操作”模塊,可對目前添加的內(nèi)容進行刪除操作或者添加上傳操作;“立即訓練”模塊,可添加一部分樣本立即對模型進行訓練操作。
樣本/模型刪除;對某一模型刪除操作,則對應(yīng)的樣本類型都刪除掉;對某一空調(diào)類型刪除操作,則對應(yīng)的空調(diào)類型樣本刪除。
針對測試的結(jié)果,本文也設(shè)計了自動進行產(chǎn)線的質(zhì)量數(shù)據(jù)分析,相關(guān)的分析功能和結(jié)果展示界面,分上下兩部分,其中上半部分為所選擇的當前產(chǎn)品質(zhì)量的對比分析,可以選擇要查看的產(chǎn)線、產(chǎn)品、批次以及要進行對比的維度,并輸出文字分析內(nèi)容;下半部分為所有產(chǎn)線、所有產(chǎn)品的結(jié)果呈現(xiàn)。可通過分析結(jié)果導出接口,可導出整個車間的產(chǎn)品質(zhì)量分析報告。
2)自主學習功能
由于實際生產(chǎn)線上會產(chǎn)生大量新的產(chǎn)品音頻,舊的模型無法精準的包含這些內(nèi)容,當然也會出現(xiàn)新的空調(diào)類型,所以需要模型具備自主學習的能力,不斷的幫助系統(tǒng)進行“壯大”、“完善”,以維持較高的檢測正確性和有效性。其主要實現(xiàn)的自主學習驅(qū)動因素包含:舊模型準確性下降到一定閾值水平以下,新空調(diào)類型的產(chǎn)生;
自主學習系統(tǒng)將采取系統(tǒng)自動修復和人為交互操作兩種方式;系統(tǒng)自動修復,模型的準確性降低,系統(tǒng)自動驅(qū)動模型再訓練;人為交互操作,新空調(diào)類型在“業(yè)務(wù)交互界面”添加后,會驅(qū)動模型再次訓練。
本文研究的主要目標是學會識別所有可能的缺陷或異常,確定每一種已知缺陷的聲紋特點(不同頻率下的振幅與相);確定一個或多個安裝用于實時跟蹤監(jiān)測的錄音探頭的有效位置,達到高效地探測出每一種可能的缺陷的目標;(聲紋與型號關(guān)聯(lián)分析)針對所有不同型號的空調(diào)識別同類缺陷的聲紋差異;確定是否能采用相同的安裝位置達到高效地探測出每一種可能的缺陷的目標。
本文的研究主要分三個階段進行;第一階段是特征與算法的探索,采集和整理數(shù)據(jù)并進行降噪、時域與頻域分析和多種特征提取(FFT、GMM、MFCC、Spectrogram、 CRP、TDHA等等)和分類嘗試(SVM、KNN、PNN、CNN等等)。
第二階段是組合的探索,比較各種特征以及算法之間的組合(Classifier Fusion),找出行之有效的特征與模型的組合,形成完整的工具體系。
第三階段是生產(chǎn)部署考慮,擴大缺陷類別和產(chǎn)品型號的覆蓋,以及對生產(chǎn)系統(tǒng)的設(shè)計和部署分析。
本文前期采集了實驗室環(huán)境下空調(diào)內(nèi)機273 分鐘各類異常的錄音,比如“軸承安裝不到位”;從四個不同位置錄了40 min的音頻;采集了在生產(chǎn)現(xiàn)場測試廠房內(nèi)的空調(diào)外機330 min各類異常的錄音,比如“管道碰撞”從四個不同位置錄了60 min的音頻。詳細如圖5所示。
圖5 采集數(shù)據(jù)頻域展示圖
本文將采用直接數(shù)據(jù)驅(qū)動而不是物理模型的方法,利用機器學習直接從采集的數(shù)據(jù)中學會缺陷分類。嘗試采用多種不同的算法和模型(包括不同的組合),目的是尋找和建立起確實可行的高效的缺陷識別工具。運用了多種手段和算法可以將聲頻數(shù)據(jù)轉(zhuǎn)換為特征矩陣或張量。同樣實用多種算法(包括深度學習)對特征進行學習、識別和分類。
音頻常見特征如圖6中所示,其中第一列的STFT功率能量和恒Q功能能量分別為兩種不同變換得到的能量表現(xiàn)形式;由于梅爾譜與MFCC的計算大致相同,但MFCC進一步進行了離散余弦變換(DCT),其特征更加明顯,并且梅爾譜維度過度影響運算速度,因此梅爾譜不再作為選取特征。
圖6 音頻常見特性表
本文模型驗證共選取了兩種不同的特征組合進行驗證,二分類模型和五分類模型;左側(cè)上下兩張圖及右側(cè)上下兩張圖分別代表電磁環(huán)頂中隔離板場景和正常場景下,并且采用了兩套精度不同的采集設(shè)備進行驗證,設(shè)備1和設(shè)備2在位置3和位置1上采集音頻的梅爾圖如圖7所示;明顯看出設(shè)備1能夠在較低頻帶采集到信息;
圖7 典型故障梅爾圖
同時采用設(shè)備1和設(shè)備2在電磁環(huán)頂中隔離板場景下進行了RMS、質(zhì)心頻率的數(shù)據(jù)分析如圖8所示。
圖8 典型故障的RMS質(zhì)心頻率分析圖
本文驗證共選了四類常見的噪聲故障作為典型數(shù)據(jù)進行模型的訓練,分別是管碰壁、電磁閥電磁噪聲、風葉毛刺、軸承噪音這四類,針對這四類故障數(shù)據(jù)進行數(shù)據(jù)的特征文件信息存儲如圖9所示,并進行二分類模型訓練,訓練結(jié)果如圖10所示,準確率均高于97 %;誤判率低于1.8 %。
圖9 典型故障的二分類特征數(shù)據(jù)文件信息圖
圖10 典型故障的二分類模型結(jié)果
圖11 典型故障的五分類特征數(shù)據(jù)文件信息圖
如圖11表示五分類模型訓練集采用第一天采集的音頻數(shù)據(jù),評估集使用第二天采集音頻; 訓練結(jié)果顯示,上述第一種方案準確性均高于77 %,第二種方案準確性均高于89 %;說明在第一天數(shù)據(jù)基礎(chǔ)上添加新數(shù)據(jù)準確性高出12 %左右;從將第一天采集到的音頻作為訓練集,得到模型,使用第二天采集音頻作為評估集,得到準確率如圖12所示均高于77 %,說明模型均有延展性,使用第二天的數(shù)據(jù)可以辨識第一天的數(shù)據(jù)。
圖12 典型故障的五分類模型訓練結(jié)果圖
本文主要針對空調(diào)過程質(zhì)量控制的在線噪音檢測,選取了生產(chǎn)過程中常見的裝配異常所導致產(chǎn)品故障噪音種類4類進行了研究,通過模型的訓練和改進,二分類模型其某位置下的某一工況的辨識度準確率均很高,均高于94 %;在相同設(shè)備,固定位置下,五分類模型的準確率均高于96 %;另外,對于生產(chǎn)現(xiàn)場一些氣動設(shè)備的噪聲帶寬比較寬,對于判斷結(jié)果會產(chǎn)生較大的干擾,這一問題需要我們繼續(xù)進行深入的研究。