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


大作業項目簡介

在如今的信息科技時代, 帶有拍照功能的移動設備如手機、相機等得到了極大的普及和流行, 各種各樣的圖片和視頻可以隨時隨地獲得, 並借助互聯網快速傳播, 這種趨勢使得網絡上的數字圖片和視頻數據呈現出爆炸式的增長.

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

圖像檢索系統, 圖片來源: 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 兩種改進方法得到的結果進行了分析, 這兩種改進方法都使得原有模型的性能有了較大的提升.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM