《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 解決方案 > 從三大案例,看如何用 CV 模型解決非視覺問題

從三大案例,看如何用 CV 模型解決非視覺問題

2019-01-30

近幾年,深度學(xué)習(xí)已經(jīng)徹底改變了計(jì)算機(jī)視覺。由于各類學(xué)習(xí)資源隨處可見,任何人都可以在數(shù)天(甚至數(shù)小時(shí))內(nèi)掌握最新技術(shù),并將它應(yīng)用到自己的領(lǐng)域內(nèi)。隨著深度學(xué)習(xí)變得越來(lái)越普遍,一個(gè)重要的問題就是如何將它創(chuàng)造性地應(yīng)用在不同的領(lǐng)域里。


今天,計(jì)算機(jī)視覺領(lǐng)域的深度學(xué)習(xí)已經(jīng)解決了大量關(guān)于圖像識(shí)別、目標(biāo)檢測(cè)和圖像分割等方面的問題。在這些領(lǐng)域中,深度神經(jīng)網(wǎng)絡(luò)表現(xiàn)出了極其優(yōu)異的性能。


即使你的數(shù)據(jù)并不是可視化的,同樣可以利用這些視覺領(lǐng)域深度學(xué)習(xí)模型(特別是 CNN 模型)的強(qiáng)大功能——你所需要做的僅僅是:將你的數(shù)據(jù)從非視覺領(lǐng)域變換成圖像,然后就可以將由圖像訓(xùn)練出來(lái)的模型應(yīng)用到你的數(shù)據(jù)上。理論上而言,任何有局部相關(guān)性的數(shù)據(jù)都能使用卷積網(wǎng)絡(luò)處理,因此你會(huì)驚奇地發(fā)現(xiàn),這種方法竟然出奇得好。


在這篇文章中,我將簡(jiǎn)單介紹 3 個(gè)案例,看一下企業(yè)如何將視覺深度學(xué)習(xí)模型創(chuàng)造性地應(yīng)用到非視覺領(lǐng)域。在這三個(gè)案例中,基本方法都是將非視覺問題轉(zhuǎn)換成適合做圖像分割的問題,然后利用深度學(xué)習(xí)模型來(lái)解決。


案例一:石油工業(yè)


梁泵(beam pumps)通常在石油工業(yè)中被用來(lái)從地下抽取石油或天然氣。它們由連接在步進(jìn)梁(walking beam)的發(fā)動(dòng)機(jī)提供動(dòng)力。步進(jìn)梁將發(fā)動(dòng)機(jī)的旋轉(zhuǎn)運(yùn)動(dòng)傳遞到抽油桿的垂直往復(fù)運(yùn)動(dòng),從而將石油抽取到地面。

微信圖片_20190130202444.jpg

一個(gè)步進(jìn)泵,也成為抽油機(jī)。


作為一個(gè)復(fù)雜系統(tǒng),梁泵很容易出現(xiàn)故障。為了輔助診斷,在洗盤上安裝了一個(gè)測(cè)量梁桿負(fù)載的測(cè)功機(jī)(dynamometer)。測(cè)功機(jī)會(huì)繪制出一個(gè)測(cè)功機(jī)泵卡(dynamometer pump card),如下圖所示,顯示出引擎旋轉(zhuǎn)周期內(nèi)的負(fù)載。

微信圖片_20190130202510.jpg

測(cè)功機(jī)卡


當(dāng)梁泵出現(xiàn)故障時(shí),測(cè)功機(jī)卡的形狀就會(huì)發(fā)生變化。通常情況下會(huì)邀請(qǐng)專業(yè)技術(shù)人員來(lái)檢測(cè)測(cè)功機(jī)卡,并判斷哪里出現(xiàn)問題,并提出解決方案。這個(gè)過(guò)程非常耗時(shí),且只有極為專業(yè)的人士才能有效地解決問題。


另一方面,這個(gè)過(guò)程看起來(lái)完全可以自動(dòng)化。之前也曾嘗試用過(guò)許多經(jīng)典的機(jī)器學(xué)習(xí)系統(tǒng)來(lái)解決這個(gè)問題,但結(jié)果并不是很好,正確率只有 60% 左右。


貝克休斯(Baker Hughes)作為眾多油田服務(wù)公司之一,則采用了一種創(chuàng)新性的方法將深度學(xué)習(xí)應(yīng)用到了這個(gè)問題上。他們首先將測(cè)功機(jī)卡轉(zhuǎn)換成圖像,并將之作為預(yù)訓(xùn)練 ImageNet 模型的輸入。結(jié)果非常令人振奮,只使用圖像分類預(yù)訓(xùn)練模型并根據(jù)新數(shù)據(jù)做了些微調(diào),正確率瞬間從 60% 提升到了 93%;對(duì)模型進(jìn)一步的優(yōu)化后,他們甚至將正確率提高到 97%。

微信圖片_20190130202528.jpg


貝克休斯使用系統(tǒng)的一個(gè)樣例。左圖是一張輸入圖片,右圖是缺陷模式的實(shí)時(shí)分類。整個(gè)系統(tǒng)只需要在便攜設(shè)備上就可以運(yùn)行,右下角顯示了推斷時(shí)間。


貝克休斯采用這種方法不僅獲得了比之前經(jīng)典機(jī)器學(xué)習(xí)方法更高的精度,甚至他們現(xiàn)在都不再需要梁泵技術(shù)專家來(lái)花費(fèi)大量時(shí)間診斷問題了。一旦出現(xiàn)機(jī)器故障,他們能夠立刻進(jìn)行修復(fù)。


想了解更多關(guān)于這個(gè)案例的內(nèi)容,你可以:


讀一些類似工作的文章: https://www.knepublishing.com/index.php/KnE-Engineering/article/download/3083/6587 

或觀看視頻:https://v.qq.com/x/page/h08318aglac.html


案例二:在線欺詐檢測(cè)


計(jì)算機(jī)用戶在使用計(jì)算機(jī)時(shí)具有獨(dú)特的模式和習(xí)慣,你瀏覽網(wǎng)頁(yè)時(shí)使用鼠標(biāo)的方式或你撰寫電子郵件時(shí)敲擊鍵盤的方式,都是獨(dú)一無(wú)二的。


在這種特殊情況下,Splunk 解決了根據(jù)用戶使用計(jì)算機(jī)鼠標(biāo)的方式對(duì)用戶進(jìn)行分類的問題。如果你的系統(tǒng)可以根據(jù)鼠標(biāo)使用模式唯一識(shí)別用戶,則可以將其用于欺詐檢測(cè)。想象一下這種情況:欺詐者竊取某人的登錄名和密碼,然后使用它們登錄并在網(wǎng)上商店購(gòu)物。由于每個(gè)人使用計(jì)算機(jī)鼠標(biāo)的方式都是獨(dú)一無(wú)二的,系統(tǒng)可以輕松檢測(cè)到這種異常并防止發(fā)生欺詐性交易,并通知真實(shí)賬戶所有者。


使用專門的 JavaScript 代碼就可以收集所有鼠標(biāo)活動(dòng),該程序可以每 5 - 10 毫秒記錄一次鼠標(biāo)活動(dòng)。結(jié)果,每個(gè)用戶的數(shù)據(jù)將包含每頁(yè)每個(gè)用戶大約 5000 - 10000 個(gè)數(shù)據(jù)點(diǎn)。這里有兩個(gè)挑戰(zhàn):第一,每個(gè)用戶都有大量的數(shù)據(jù);第二,不同用戶的數(shù)據(jù)集所包含的數(shù)據(jù)點(diǎn)數(shù)量不同。這很不方便,如果序列長(zhǎng)度不同,通常需要更為復(fù)雜的深度學(xué)習(xí)框架。


解決方案是將每個(gè)用戶在每個(gè)網(wǎng)頁(yè)上的鼠標(biāo)活動(dòng)轉(zhuǎn)換為單個(gè)圖像。在每個(gè)圖像中,鼠標(biāo)移動(dòng)由一條線表示,其顏色編碼鼠標(biāo)速度,左右點(diǎn)擊由綠色和紅色圓圈表示。這種處理初始數(shù)據(jù)的方法解決了這兩個(gè)問題:首先,所有圖像具有相同的大?。黄浯?,現(xiàn)在基于圖像的深度學(xué)習(xí)模型可以與該數(shù)據(jù)一起使用。

微信圖片_20190130202549.jpg

在每張圖中,鼠標(biāo)運(yùn)動(dòng)被表示成一條線,線的顏色代表鼠標(biāo)速度;左擊表示為綠色圓,右擊表示為紅色圓。


Splunk 使用 TensorFlow + Keras 構(gòu)建了一個(gè)深度學(xué)習(xí)系統(tǒng)來(lái)進(jìn)行用戶分類,他們進(jìn)行了兩個(gè)實(shí)驗(yàn):


金融服務(wù)網(wǎng)站用戶群體的分類——訪問類似頁(yè)面時(shí)的常客組和非客戶組。他們使用了一個(gè)相對(duì)較小的僅包含 2000 張圖像的訓(xùn)練數(shù)據(jù)集。在基于 VGG16 的修改架構(gòu)上訓(xùn)練僅 2 分鐘后,系統(tǒng)便能夠識(shí)別這兩個(gè)類別,準(zhǔn)確度超過(guò) 80%。


用戶的個(gè)人分類。任務(wù)是針對(duì)給定用戶進(jìn)行預(yù)測(cè),來(lái)判斷使用者是該用戶還是其他模仿者。同樣是一個(gè)非常小的訓(xùn)練數(shù)據(jù)集,只有 360 張圖像;同樣是基于 VGG16 的框架,但考慮到數(shù)據(jù)集較小防止過(guò)擬合做了些許調(diào)整。經(jīng)過(guò) 3 分鐘的訓(xùn)練便可以達(dá)到約 78% 的準(zhǔn)確率,考慮到這種任務(wù)本身是挑戰(zhàn)性的,因此這樣的結(jié)果還是蠻令人振奮的。


更多信息,可以閱讀關(guān)于這個(gè)系統(tǒng)和實(shí)驗(yàn)的完整文章:https://www.splunk.com/blog/2017/04/18/deep-learning-with-splunk-and-tensorflow-for-security-catching-the-fraudster-in-neural-networks-with-behavioral-biometrics.html


案例三:鯨魚的聲學(xué)檢測(cè)


在這個(gè)例子中,谷歌使用卷積神經(jīng)網(wǎng)絡(luò)分析了聲音記錄并從中檢測(cè)出了座頭鯨。這對(duì)于座頭鯨的研究是有非常有用的,例如跟蹤個(gè)體鯨魚的運(yùn)動(dòng)、歌曲的屬性、鯨魚的數(shù)量等。在這里,有意思的并不是他們研究的目的,而是如何預(yù)處理數(shù)據(jù)以方便使用卷積神經(jīng)網(wǎng)絡(luò)。


將音頻數(shù)據(jù)轉(zhuǎn)換為圖像的方法是使用頻譜圖。頻譜圖是音頻數(shù)據(jù)基于頻率特征的視覺表示。

微信圖片_20190130202615.jpg

一個(gè)例子:一個(gè)男性說(shuō)」nineteenth century」的頻譜圖。


將聲學(xué)數(shù)據(jù)轉(zhuǎn)換為頻譜圖后,谷歌研究人員使用 ResNet-50 框架來(lái)訓(xùn)練模型。他們訓(xùn)練出的模型性能達(dá)到:


90% 精度:分類為鯨魚聲音的音頻片段中的 90% 是正確的;

90% 召回率:給定鯨魚聲音的錄音,有 90%的可能性被標(biāo)記為鯨魚。


這個(gè)結(jié)果令人印象深刻,將很大程度上有助于鯨魚的研究。


讓我們將焦點(diǎn)從鯨魚切換到你處理音頻數(shù)據(jù)時(shí)可以做的事情。創(chuàng)建頻譜圖時(shí),你可以選擇要使用的頻率,這取決于你的音頻數(shù)據(jù)類型。對(duì)于人類語(yǔ)音、座頭鯨歌曲、工業(yè)設(shè)備錄音等,你可能需要不同的頻率,因?yàn)椴煌那闆r下重要信息往往包含在不同的頻段中,這時(shí)候就必須依靠你的領(lǐng)域知識(shí)來(lái)選擇參數(shù)了。例如如果你正在處理的是人類語(yǔ)音數(shù)據(jù),那么你首選的就應(yīng)該是梅爾頻率倒譜系數(shù)了。


目前有一些很好的軟件來(lái)處理音頻。Librosa(https://librosa.github.io/librosa/)是一個(gè)免費(fèi)的音頻分析 Python 庫(kù),可以使用 CPU 來(lái)生成頻譜圖。如果你正在使用 TensorFlow 進(jìn)行開發(fā)并希望在 GPU 上進(jìn)行頻譜圖計(jì)算,那么這也是可以的(https://www.tensorflow.org/api_guides/python/contrib.signal#Computing_spectrograms)。


想了解 Google 如何使用座頭鯨數(shù)據(jù)的詳細(xì)內(nèi)容,可以參考 Google AI 的博客文章: https://ai.googleblog.com/2018/10/acoustic-detection-of-humpback-whales.html。


總而言之,本文中概述的一般方法遵循兩個(gè)步驟。首先找到一種將數(shù)據(jù)轉(zhuǎn)換為圖像的方法,然后使用一個(gè)預(yù)訓(xùn)練的卷積網(wǎng)絡(luò)或自己從頭開始訓(xùn)練一個(gè)卷積網(wǎng)絡(luò)。第一步比第二步更難,這需要你去創(chuàng)造性思考如何將你的數(shù)據(jù)轉(zhuǎn)換成圖像,希望我提供的示例對(duì)解決你的問題有所幫助。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。