模式識別課程大作業 Shopee 商品影像檢索

九一居士發表於2021-08-03

大作業專案簡介

在如今的資訊科技時代, 帶有拍照功能的移動裝置如手機、相機等得到了極大的普及和流行, 各種各樣的圖片和視訊可以隨時隨地獲得, 並藉助網際網路快速傳播, 這種趨勢使得網路上的數字圖片和視訊資料呈現出爆炸式的增長.

大量的數字影像資訊給人們生產生活帶來了許多便利的同時, 也給海量影像資料管理帶來了挑戰, 研究從海量的影像資料庫中高效地查詢到感興趣的影像的技術變得越來越重要, 這種從影像資料庫中查詢給定影像的技術稱為影像檢索.

影像檢索系統, 圖片來源: https://www.ssla.co.uk/image-retrieval-system/

當前的影像檢索方法按照資料有無標註可以劃分為:監督、無監督、半監督、弱監督以及偽監督和自監督方法;按照模型主體結構又包括:自編碼網路、孿生網路、對抗生成網路、注意力網路、迴圈神經網路等;按照特徵的形式可以分為:二進位制描述、實數特徵描述以及聚合描述;按照檢索方式又可以分為:基於文字的檢索、基於內容的檢索以及文字與影像多模態的檢索三類方法.

本專案要求在資料集中找出與給定查詢影像屬於相同商品類別的影像,資料集來自 Kaggle 競賽 Shopee - Price Match Guarantee, 競賽連結如下:

https://www.kaggle.com/c/shopee-product-matching/overview

Shopee - Price Match Guarantee 競賽介面

資料集包含 train.csvtest.csv 兩個 csv 檔案以及 train_images/test_images/ 兩個影像資料夾.

train.csv 檔案包含 34250 行資料, 其前 5 行如下表所示:

 表格前5行

表格第一列為索引, 第二列為每張圖片獨特的識別 id, 第三列為圖片檔名, 第四列為圖片感知雜湊值, 第五列為影像的標題, 主要為印尼語和部分英語, 第六列為影像的標籤, 相同的標籤表示影像為同一個類別, 表格中沒有缺失資料.

train_images/ 資料夾包含 32412 張圖片, 圖片的檔名與 train.csv 中的 image 列相對應.

 資料夾部分圖片

針對上述研究任務, 基於多個機器學習模型進行了探索、研究和分析. 本專案全部程式碼和報告均在GitHub開源, 地址如下:

https://github.com/jingxuanyang/Shopee-Product-Matching

Shopee-Product-Matching 專案介面

研究報告簡介

本文使用機器學習相關演算法研究商品影像檢索問題, 基於每個商品的影像資訊和文字描述資訊, 給定查詢圖片和文字, 在資料集中尋找與查詢圖片相似的圖片, 輸出全部相似圖片的集合.

上述任務可以劃分為三個子任務: 僅利用影像資訊進行檢索, 僅利用文字資訊進行檢索以及同時利用影像資訊與文字資訊進行檢索.

  • 針對僅利用影像資訊進行檢索, 本文建立了 resnet50, resnext50_32x4d, densenet121, efficientnet_b3, eca_nfnet_l0, 影像模型 Ensemble 等 6 個影像模型.

  • 針對僅利用文字資訊進行檢索, 本文建立了 tf-idf, bert-base-multilingual-uncased, bert-base-indonesian-1.5G, distilbert-base-indonesian, paraphrase-xlm-r-multilingual-v1, paraphrase-distilroberta-base-v1, 文字模型 Ensemble 等 7 個文字模型.

  • 針對同時利用影像資訊與文字資訊進行檢索,本文建立了 TF-IDF 與 ResNet 取並集, SBERT 與 NFNet 取並集, TF-IDF 與 ResNet 度量層輸出融合, SBERT 與 NFNet 度量層輸出融合, 影像 Ensemble 與 文字 Ensemble 取並集等 5 個影像文字融合模型.

從機器學習的角度出發, 本文基於資料分佈特性和嵌入空間特性提出了 Min2 最少兩個原則以及 INB 迭代鄰域混合兩種模型改進方法, 這兩種改進方法都使得原有模型的效能有了較大的提升.

針對資料集劃分, 基於保證訓練集, 驗證集與測試集的資料保持相同分佈的原則, 本文利用機器學習工具包 scikit-learn 提供的 GroupKFold 函式將資料分為數量相等 5 個組, 並按組劃分為 3:1:1 的三份, 分別為訓練集, 驗證集與測試集.

對於評價指標, 本文選擇選擇精確率, 召回率以及 F1 分數, 並且計算方式為按行計算並取平均值. 精確率可以表示找到的相似圖片是否準確, 而召回率可以表示找到的相似圖片是否全面, 最終模型的效能評價採用精確率與召回率的綜合評定指標 F1 分數來確定.

僅利用影像資訊進行檢索任務中, NFNet 模型效能最優, 僅利用文字資訊進行檢索任務中, SBERT 模型效能最優, 同時利用影像資訊與文字資訊進行檢索任務中, NFNet 與 SBERT 強強聯合進行度量層輸出融合效能最優, 而且綜合來看文字模型的 F1 分數均大於影像模型的 F1 分數.

所有的 18 個模型中, 以 F1 分數為評價依據, 效能最優的模型為 NFNet 模型 eca_nfnet_l0 與 SBERT 模型 paraphrase-xlm-r-multilingual-v1 進行度量層輸出融合得到的模型, 其結果為

\[ \begin{aligned} \overline{F1}&=0.888967\\ \bar{R}&=0.928442\\ \bar{P}&=0.893179\\ \end{aligned} \]

對於實驗結果, 本文分析了模型超引數對效能的影響, 針對每個模型都得到了更優的模型超引數. 並且本文分析了特徵的重要性, 發現文字特徵對於本次任務比影像特徵更加重要.

本文還進行了錯誤分析, 案例分析以及實驗結果的視覺化分析, 對模型在不同資料集上的表現進行了全面深入和視覺化的詳細分析.

最後本文對 Min2 和 INB 兩種改進方法得到的結果進行了分析, 這兩種改進方法都使得原有模型的效能有了較大的提升.

相關文章