在現在的信息科技時代, 帶有拍照功能的移動設備如手機、相機等獲得了極大的普及和流行, 各類各樣的圖片和視頻能夠隨時隨地得到, 並藉助互聯網快速傳播, 這種趨勢使得網絡上的數字圖片和視頻數據呈現出爆炸式的增加.git
大量的數字圖像信息給人們生產生活帶來了許多便利的同時, 也給海量圖像數據管理帶來了挑戰, 研究從海量的圖像數據庫中高效地查詢到感興趣的圖像的技術變得愈來愈重要, 這種從圖像數據庫中查找給定圖像的技術稱爲圖像檢索.github
當前的圖像檢索方法按照數據有無標註能夠劃分爲:監督、無監督、半監督、弱監督以及僞監督和自監督方法;按照模型主體結構又包括:自編碼網絡、孿生網絡、對抗生成網絡、注意力網絡、循環神經網絡等;按照特徵的形式能夠分爲:二進制描述、實數特徵描述以及聚合描述;按照檢索方式又能夠分爲:基於文本的檢索、基於內容的檢索以及文本與圖像多模態的檢索三類方法.算法
本項目要求在數據集中找出與給定查詢圖像屬於相同商品類別的圖像,數據集來自 Kaggle 競賽 Shopee - Price Match Guarantee, 競賽連接以下:數據庫
數據集包含 train.csv
和 test.csv
兩個 csv
文件以及 train_images/
和 test_images/
兩個圖像文件夾.機器學習
train.csv
文件包含 34250 行數據, 其前 5 行以下表所示:函數
表格第一列爲索引, 第二列爲每張圖片獨特的識別 id, 第三列爲圖片文件名, 第四列爲圖片感知哈希值, 第五列爲圖像的標題, 主要爲印尼語和部分英語, 第六列爲圖像的標籤, 相同的標籤表示圖像爲同一個類別, 表格中沒有缺失數據.工具
train_images/
文件夾包含 32412 張圖片, 圖片的文件名與 train.csv
中的 image 列相對應.性能
針對上述研究任務, 基於多個機器學習模型進行了探索、研究和分析. 本項目所有代碼和報告均在GitHub開源, 地址以下:學習
本文使用機器學習相關算法研究商品圖像檢索問題, 基於每一個商品的圖像信息和文本描述信息, 給定查詢圖片和文本, 在數據集中尋找與查詢圖片類似的圖片, 輸出所有類似圖片的集合.
上述任務能夠劃分爲三個子任務: 僅利用圖像信息進行檢索, 僅利用文本信息進行檢索以及同時利用圖像信息與文本信息進行檢索.
針對僅利用圖像信息進行檢索, 本文創建了 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 進行度量層輸出融合獲得的模型, 其結果爲
對於實驗結果, 本文分析了模型超參數對性能的影響, 針對每一個模型都獲得了更優的模型超參數. 而且本文分析了特徵的重要性, 發現文本特徵對於本次任務比圖像特徵更加劇要.
本文還進行了錯誤分析, 案例分析以及實驗結果的可視化分析, 對模型在不一樣數據集上的表現進行了全面深刻和可視化的詳細分析.
最後本文對 Min2 和 INB 兩種改進方法獲得的結果進行了分析, 這兩種改進方法都使得原有模型的性能有了較大的提高.