攜程圖像智能化建設之路
攜程作為OTA行業的領跑者,擁有全球百萬家酒店數以億計的酒店圖像,酒店圖像數量還在以每天數十萬的速度增長。面對海量酒店圖像,如何完成智能處理與挖掘,大幅減少圖像的人工干預,又如何實現智能應用,改善用戶獲取酒店信息的速度、準確性和完整性,提高用戶滿意度,這些都成為急需解決的問題。
相比學術界追求的模型創新性,我們更加關注技術實踐在落地場景的效果,力求以簡單而有效的方法來解決實際業務問題。為解決上述問題,我們從0到1,圍繞酒店圖像智能化進行了一系列研究和探索。當前酒店圖像智能化的整體架構如下圖所示。
其中,通過圖像智能處理與挖掘,能夠節省大量人工處理圖像的成本,挖掘豐富的圖像信息,在此基礎上,通過圖像智能應用可以進一步有效地為用戶和酒店創造巨大價值。下面我們將圍繞這兩個部分展開,從多個具體實踐出發,分享攜程酒店圖像智能化從0到1的建設之路。
一、圖像智能處理與挖掘
圖像智能處理與挖掘是酒店圖像智能化的基礎,包括圖像預審核、圖像質量提升和圖像信息挖掘三個環節。
1、圖像預審核
圖像預審核是整個酒店圖像智能化的第一步,旨在通過一系列圖像技術,輔助人工高效地完成海量圖像的審核工作,減少人力成本的投入,當前包括相似圖像自動去重、水印/廣告等視覺可見的不合規圖像的預檢測等等。下面介紹其中一些實踐。
相似圖像去重
酒店圖像之間的相同/相似主要表現為1)尺寸形變;2)裁剪殘缺;3)色彩變化;4)旋轉變化;5)拍攝視角移動等多種情況,如下圖所示。
相似圖像去重一般分為1)圖像特徵表達的提取和2)圖像之間相似度計算兩個主要步驟。對於圖像特徵表達的提取,常見的手工設計特徵有顏色、紋理、HOG、SIFT和SURF等;此外基於深度學習的深層特徵表達也經常被使用。對於圖像之間相似度計算,常見的無監督距離度量方法有歐式距離、曼哈頓距離和餘弦距離等;常見的有監督距離度量方法有LMNN、KISSME、LFDA和MFA等。然而這些方法基於浮點特徵計算相似度,計算速度普遍較慢,因此通過哈希學習方法將圖像特徵轉換為二元編碼,再利用漢明距離進行相似度的快速計算更加符合工業界對圖像數據處理速度的要求。
對於相同/相似的酒店圖像,大部分全局特徵(比如顏色、紋理和HOG)不能很好地解決圖像裁剪殘缺和旋轉變化等問題;一些局部特徵(比如SIFT和SURF)與基於深度學習的特徵雖然表達效果較好,但是由於特徵提取複雜,計算速度過於緩慢。
針對以上特徵提取方法存在的缺陷,我們採用一種快速特徵點提取和描述演算法ORB作為圖像的特徵表達,並使用漢明距離完成相似度計算。ORB特徵具有以下優點:1)特徵提取速度快;2)在大多數情況下,去重效果能夠與SIFT/SURF持平;3)提取的特徵直接是二元編碼形式,無需使用哈希學習方法就可以直接利用漢明距離快速計算相似度。
在真實應用中,我們還對其進一步優化,從而彌補ORB特徵不具有尺度不變性的不足,也降低了形變和模糊等因素對ORB特徵的影響,在保證性能的同時,提升了圖像去重的準確率。
圖像水印檢測
水印在圖像中的視覺顯著性很低,具有面積小,顏色淺,透明度高等特點,帶水印圖像與未帶水印圖像之間的差異往往很小,區分度較低。
我們將圖像水印檢測問題轉化為一種特殊的單目標檢測任務。在深度學習興起前,可變形部件模型(DPM)一直是流行的目標檢測方法。深度學習出現後,以R-CNN、SPPNet、FastR-CNN、FasterR-CNN、SSD、YOLO/YOLO2等為代表的一系列基於深度卷積神經網路的目標檢測方法成為主流。
一個魯棒的目標檢測網路,需要大量的標籤數據來支撐,然而收集和標記一個大規模水印目標檢測數據集是一件十分耗時耗力的工作。為了解決該問題,我們設計了一套訓練數據自動生成和自動標記的數據集製作系統,以較小的人力投入建立了一個多元化的大規模水印目標檢測數據集。
在該數據集上,我們進一步對比FasterR-CNN、SSD和YOLO2三種主流的目標檢測方法。通過對性能和效果的綜合評估,我們選擇在YOLO2的基礎上進行改進,使其更加適應水印單目標檢測任務,從而實現最終的水印圖像檢測器。基於該檢測器,我們實現對數據集中常見上百種水印的完美檢測,對數據集中未出現的水印也展現出很好的檢測效果。
2、圖像質量提升
圖像質量提升旨在通過一系列圖像技術,改善酒店圖像的質量,進一步減少人工對圖像的處理成本,當前包括圖像去模糊、小圖放大和圖像智能美化等等。下面主要分享我們在酒店小圖放大中的一些實踐。
酒店小圖放大
酒店如果存在低解析度圖像通常會被轉為高解析度圖像展示給用戶,從而使用戶獲取更多圖像細節,更好地增加對瀏覽酒店的了解。然而,低解析度圖像直接放大,圖像會顯得模糊,圖像細節信息很難恢復。
為了令低解析度圖像放大後變得更加清晰,我們引入圖像超解析度技術。最簡單的圖像超解析度方法是圖像插值,但插值後的圖像很容易形成鋸齒邊緣,細節恢復效果較差。傳統的圖像超解析度方法一般採用稀疏表示和字典學習的方式來實現,利用大量高-低解析度樣本對作為先驗信息進行圖像細節恢復,常見的方法有SR、ANR、SF和A+等。隨著深度學習的發展,通過全卷積神經網路學習低解析度圖像到高解析度圖像的端到端映射函數成為主流方法,其中以SRCNN、DRCN、VDSR、SRResNet、SRGAN和SRDenseNet等方法為典型代表。
在真實的小圖放大場景中,我們選擇VDSR來構建超解析度網路,結構如上圖所示。具體地,我們組合多種倍數的圖像樣本進行混合訓練,令一個模型能夠同時適應多種不同倍數的超解析度。
然而,在實際應用中我們還遇到一些問題:1)超解析度網路使用的損失函數一般是最小均方誤差(MSE),該函數使重建結果有較高的信噪比,但是缺少高頻信息,會使圖像出現過度平滑的紋理。2)真實的低解析度酒店圖像往往存在有損壓縮,圖像本身具有塊效應,直接使用超解析度網路恢復細節,會使圖像的塊效應更加嚴重。
為了進一步提升圖像超解析度的效果,我們在VDSR基礎上,針對上述問題做了一系列改進,在保證網路輸出的圖像更加自然的同時,也大幅降低了塊效應的影響。利用上述模型,低解析度圖像的高解析度重建能夠被高效地實現,酒店圖像質量得到明顯提升,人工處理圖像的成本大幅減少。
3、圖像信息挖掘
圖像信息挖掘旨在通過一系列圖像技術,自動快速地挖掘出圖像中蘊含的豐富內容,為每張酒店圖像都建立一個信息檔案,為下一步圖像智能應用打下堅實的基礎,當前包括圖像內容分類、圖像多目標檢測和圖像質量評價等等。下面對其中的一些實踐做簡單介紹。
圖像內容分類
酒店圖像是對酒店各方面信息的直觀展示,因為我們需要儘可能地幫助用戶方便快捷地發現他們想要瀏覽的圖像內容,所以酒店圖像的內容分類顯得尤為重要。
隨著深度學習的出現,尤其是卷積神經網路的興起,利用大量已經標註類別的酒店圖像樣本直接訓練一個深度卷積神經網路,比如常用的AlexNet、VGGNet、ResNet、DenseNet和基於Inception的一系列網路等,就可以實現對酒店圖像的分類。然而,如果通過人工標註大量訓練樣本代價極大,如果訓練樣本不足則會導致網路過擬合。為了能夠實現在標註少量酒店圖像的情況下達到良好的分類效果,我們利用深度網路有效的遷移學習能力,對在大規模數據集上已經預訓練的網路權重進行微調。
在實際應用中,我們沒有藉助應用最為廣泛的ImageNet數據集,因為該數據集圖像的內容和酒店圖像差異過大,影響了網路遷移學習的效果。為了儘可能的提升網路的遷移能力,我們藉助與酒店圖像內容最為接近的自然場景圖像數據集上預訓練的VGGNet作為初始設置。同時,我們進一步利用水平翻轉、隨機裁剪和色彩抖動等方式對標註的小規模酒店圖像數據集進行數據增強。
基於以上的方法,我們實現了酒店圖像內容十餘個類別的準確區分,為之後圖像智能應用做好了準備。
圖像質量評價
在上一節中,我們介紹了通過酒店圖像分類模型來挖掘圖像的類別信息。接下來我們需要更進一步對所有酒店圖像進行質量評價,為每張酒店圖像計算質量分數來表徵其質量的高低。
起初我們選擇清晰度這一客觀指標作為圖像質量評價的標準,然而我們發現僅以清晰度作為圖像質量評價的標準存在不足,清晰度高但內容不好看的圖像為數不少。因此我們更希望能夠從美學角度來對圖像質量進行評價。
圖像美感度是一個非常主觀的概念,很難有一個統一的標準去量化,為了能夠儘可能準確地量化圖像的美感度分數,我們選擇深度學習的方法來實現美感度評價。具體地,我們把計算分數的回歸問題轉化為判斷圖像好看與否的分類問題,為了把模型的判斷結果轉化為美感度分數,我們在模型的最後一層輸出圖像被判斷為好看的概率,作為圖像的美感度分數。通過這種方法可以很直觀地把一個二元分類器的輸出結果轉化成打分的結果。
在實際應用中,我們又再次遇到了同樣的問題,缺少大量標註了好看/不好看標籤的訓練圖像。由於在酒店圖像分類中,我們利用卷積神經網路強大的遷移學習能力取得了成功,所以我們決定繼續沿用這種方法。由於酒店圖像的美觀度受到內容、色彩和構圖等多方面的影響,所以我們不再像酒店圖像分類那樣只藉助內容單一的場景圖像數據集,而是將包羅萬象的ImageNet數據集和場景圖像數據集混合進行ResNet模型的預訓練,力求讓儘可能多的圖像參與層數更多的ResNet模型的學習,令更深的網路能夠記住更多圖像的內容,對圖像內不同區域之間關係的理解更加深入,從而進一步提高網路在美感度評價上的遷移能力。
在數據集標註的過程中,由於圖像好看與否主觀性依賴很強,所以我們綜合了多人評判結果作為每張酒店圖像好看與否的標註。由於圖像經過翻轉、裁剪或色彩抖動都會令圖像的美感度發生變化,所以我們未對數據集進行數據增強。為了防止直接微調網路出現過擬合,我們轉而利用特徵遷移,在ResNet的深層特徵表達基礎上,訓練支持向量機實現酒店圖像好看/不好看的二元分類模型,模型結構如上圖所示。通過圖像質量評價,我們獲取了酒店圖像的質量分數,為後續圖像智能應用提供了重要依據。
二、圖像智能應用
圖像智能應用能夠為用戶和酒店創造巨大價值,是圖像智能化的重要組成部分,當前包括圖像智能展示、圖文智能結合和酒店視頻等應用場景。
1、圖像智能展示
酒店和房型的首圖如何挑選才能提升用戶的滿意度,酒店圖像如何排序才能使用戶快速獲取想要的酒店信息。我們針對這些問題,對圖像進行一系列智能展示,在包括酒店/房型的首圖優選、酒店圖像分類展示和質量/個性化排序等方面做了諸多嘗試,努力提升用戶體驗。
酒店/房型的首圖是用戶對酒店/房型的初始印象,除了商家或運營人工指定首圖外,絕大部分酒店和房型的首圖都是由機器進行挑選。為此,我們基於圖像智能挖掘獲取的圖像解析度、內容類型、清晰度/美感度分數,設計了完整的首圖優選模型,力求把圖像多種不同信息自適應融合起來,為酒店挑選最優的酒店圖像展示給用戶。
通過我們的首圖優選模型,酒店和房型的首圖質量大大提高,對比效果如上圖所示(左為原版,右為新版)。更優質的酒店和房型首圖使得用戶預訂轉化率顯著上升,在提高用戶滿意度的同時,也給酒店帶來了價值。
2、圖文智能結合
在圖像單一展示的基礎上,我們還進行了一些圖像和文本智能結合的探索,包括圖像自動添加描述和酒店圖文介紹自動生成等工作。
我們嘗試對酒店圖像自動添加描述,使用戶在瀏覽圖像的過程中能夠瀏覽文字,加深其對圖像內容的了解。然而,利用基於深度學習的ImageCaption模型從圖像得到的描述性文字顯得生硬而平淡,直接展示給用戶很不自然。我們在此基礎上進行改進,進一步結合海量用戶點評數據,利用真實用戶的評論內容來描述酒店圖像。
點評不僅流暢而且自帶情感,用戶在瀏覽圖像的同時可以看到其他用戶對該圖像內容的真實評價,方便快捷地提升了用戶獲取酒店信息的豐富度和可靠性,用戶瀏覽費力度也得到顯著下降。下圖展示了圖像瀏覽中結合點評描述的應用場景。
3、從圖像到視頻
隨著移動通信的發展和WIFI的普及,用戶已經不再滿足於只瀏覽靜態圖像,視頻的觀看需求日益增長。我們在這方面也做了一些實踐,通過視頻播放形式對酒店信息進行連續展示,使用戶觀看酒店視頻就可以對酒店信息進行更全面的了解,減少用戶的瀏覽費力度,提升用戶體驗。
為每家酒店拍攝視頻需要投入大量人力物力,為了快速獲取酒店高質量精美視頻,我們利用酒店圖像來自動生成酒店視頻。具體地,我們藉助圖像挖掘中獲取的豐富的圖像信息,設計了一個智能選圖系統,實現視頻圖像的自動挑選。同時,我們通過酒店的文本信息自動匹配相應的字幕。下圖展示了一個酒店視頻包含的部分圖像和字幕。
酒店視頻上線後,取得了很好的反響,用戶通過觀看酒店視頻加深了對酒店的了解。現在酒店視頻日均觀看數萬次,用戶預訂轉化率和間夜量顯著上升,用戶和酒店實現了雙贏。我們還在繼續對酒店視頻不斷優化和迭代,力求為用戶和酒店創造出更大價值。
三、總結與展望
我們通過介紹攜程多個真實的圖像智能化案例,分享了從0到1的圖像智能化建設之路,但計算機視覺和機器學習對於攜程圖像智能化的價值遠遠不限於此。接下來我們將繼續在多個圖像應用場景進行深入挖掘,力求為攜程圖像智能化貢獻更多的力量。
【作者簡介】李翔,攜程數據智能部信息科學組圖像技術負責人,專註於計算機視覺和機器學習的研究和應用,現階段致力於酒店圖像智能化,在包括ICCV和CVPR在內的學術會議和國際期刊上發表10餘篇論文。
更多來自攜程技術人的一手乾貨,歡迎搜索關注「攜程技術中心」微信公號。
推薦閱讀:
※數據嗨客 | 第7期:機器學習中的過擬合問題
※《數據架構》閱讀筆記(五)作業環境
※互聯網數據分析之道:轉化篇
※數據壓縮有沒有可能發展到極限?
※FOFA小技能 看我山裡老農如何薅WordPress收費主題
TAG:大數據 |