探討圖庫行業AI圖片評分系統的構建和應用

0 評論 1671 瀏覽 9 收藏 12 分鐘

為了提升圖庫公司審核圖片投稿的效率,我們或許可以搭建AI圖片評分系統,來幫助提升審核效率。那么,圖庫行業的AI圖片評分系統應該怎么搭建?本文梳理了基本思路與流程,一起來看一下,或許會對你有所啟發。

一、需求背景

圖庫行業,基本業務流是投稿——審核——入庫——上線銷售,對于國內幾大頭部圖庫公司,除代理版權圖片之外,均有自己的供稿人社區。例如:

  • 視覺中國(代理Getty Images):500px(攝影師社區)、愛視覺(插畫師社區)
  • 圖蟲創意(代理Adobe Stock):圖蟲(攝影師社區)
  • 千圖網:千圖網(圖片、插畫、設計模板供稿)
  • 站酷海洛(代理Shutter Stock):站酷海洛(圖片、插畫供稿)

對于有自己社區、供稿途徑的公司來說,審核的效率是在審核、入庫環節的痛點。出于降本增效的目的,審核人員一定是有限的,不可能無止境的增加。而人工審核的效率,是相對固定的。隨著社區/供稿途徑的發展,投稿量、每日待審圖片勢必會持續增加。如果審核時間長,會導致投稿用的體驗差,給社區發展帶來明顯的負面影響。

因此,本文所述,是借助AI圖片評分系統,輔助審核提高審核效率,甚至直接完成一部分審核工作,從而提高審核速度,提高投稿人的用戶體驗及圖庫每日入庫圖片數量。該系統已用于實際生產中,達到預期目標,現作基本思路和流程的分享。

二、目標

輔助圖片審核,提高圖片審核效率。

三、目標用戶群

圖庫業務,圖片審核人員。

四、基本思路

對所有社區投稿內容(非簽約攝影師部分)給出AI評分,AI評分分為質量評分、美學評分,分別代表社區用戶對圖片的認可,以及圖片色彩、構圖等美學因素的評價。對于高于評分閾值的圖片推送到人工審核,對于低于閾值的圖片自動審核拒絕。

在審核系統中展示每張圖片的質量評分、美學評分,以供審核人員參考,方便在外包審核人員審美水平參差不齊的情況下提供參考和輔助,確保審核標準的相對統一和穩定。

五、核心流程示意圖

六、結構概述

整體系統開發流程分為以下幾大部分:

  • 數據收集
  • 數據處理
  • 模型訓練(模型微調 Fine-tune)
  • 模型評估
  • 模型優化

最終會獲得訓練后的模型參數,模型參數結合底層模型構成AI評分應用,可對圖片進行AI評分,獲得質量評分與美學評分。

七、數據收集

模型訓練需要收集對應訓練數據集與測試數據集。為保證訓練出來模型參數的通用性和準確性,需要對數據集有一些構建策略。

1. 訓練數據集

從攝影師社區選取100萬張圖片,為保證訓練模型對各種類別、風格圖片的通用性,需要保證這100萬張圖片均勻分布于各類風格、主題,例如:人像、靜物、彩色、黑白、城市建筑、人文攝影等。并且為保證評分分布的多樣性,需要選取盡可能完整的用戶評分分布的圖片。

100萬張圖片取完之后,我們自然就獲得了100萬張圖片+評分的數據對,評分作為圖片的數據標簽。(為防止極端評分、不客觀評分的影響,每張圖片分數取所有用戶評分的中位數評分)該部分作為訓練質量評分模型的訓練數據集。

100萬張圖片中,抽取10萬張,交由眾包系統,進行人工美學評分。眾包人員來自各大高校設計、藝術相關專業在校生、畢業生。從而獲得10萬張圖片+美學評分的數據對,評分作為圖片數據標簽。該部分數據作為美學評分訓練的數據集。

2. 測試數據集

參照訓練數據及邏輯,再從攝影師社區選取1萬張圖片,盡可能在圖片分類、評分上分布均勻,確保多樣性。取圖片的用戶評分中位數作為質量評分參考,另通過眾包平臺給這1萬張圖片打上美學評分。該部分數據作為模型評估使用的測試數據集。

八、數據處理

1. 圖片壓縮

考慮到后續模型的處理效率,并且質量、美學評分更多看整體色塊像素分布,不需要太多細節,因此將圖片統一壓縮為224*224像素。

2. 數據歸一化處理

為讓數據在各個維度上分布更加一致,加速優化算法更快收斂。避免模型在一個特征維度上過渡你和,提高模型泛化能力。需要對數據進行歸一化處理。本方案中主要涉及兩部分,一是圖片像素的歸一化處理,二是評分的歸一化處理。

圖片像素值從0~255全部轉換到0~1的浮點數,質量評分、美學評分也轉換計算到0~1的浮點數。

九、模型訓練

1. 選擇模型

本方案,總共從多種模型中選擇了深度殘差網絡(ResNet)來進行訓練。對比了ResNet50、ResNet101、ResNet152三個模型,從效率(訓練速度)、評分預測準確性來進行模型評估,最終選擇了ResNet50即可滿足業務需求。

2. 模型微調(Fine-tune)

ResNet50是一個通用的特征提取器,先天在圖像分類、物體檢測、圖像分割、特征提取等圖像處理需求上有很好的支持。微調最終要的一步是替換模型最后一層(全連接層),因為我們期望的評分是一個連續分值,屬于回歸問題,ResNet50默認的最后一層是離散輸出,適用于分類問題。原始ResNet50輸出單元數量是1000,相當于1000個類別。我們需要改為輸出單元數量為1,并通過激活函數限定保證輸出的預測分值在0~1之間。

3. 損失函數

本案例中我們選擇了最常用的回歸損失函數均方誤差(MSE),計算預測值和真實值之間的平方差的平均值。

4. 優化器

案例中考慮到綜合性能,我們選擇了Adam作為優化器。

5. 訓練模型

上述工作完畢之后開始進行模型訓練,最終輸出了兩個模型參數,分別用于預測圖片質量評分、美學評分。

十、模型評估

使用測試數據集(測試數據集是完全與訓練數據集無交集的獨立數據集)對模型輸出的質量評分、美學評分進行了測試。最終與人工評分整體誤差控制在10%~15%。

十一、模型優化

整個模型訓練的過程相對簡單,期間我們進行的模型優化主要在以下幾方面:

  • 模型選擇:在ResNet50、ResNet101、ResNet152之間,從訓練效率、輸出準確性綜合評估。
  • 訓練周期評估:基于Early Stopping,盡可能降低訓練時間,避免過擬合,在準確度沒有明顯提升的訓練周期及時停止周期的增加。
  • 優化器&學習率優化:由算法工程師測試不同優化器、學習率,確保最終模型評分與人工評分誤差在可接受范圍內。

十三、其他知識分享

因為這一塊,也是現有了需求,再從需求想解決方案,其實很多技術對于產品經理的我來說都是0基礎,好在有一些開發背景情況下了解得會快一些。

對于產品經理來說,一些技術知識夠用即可,所謂夠用即可以知道什么技術能干什么事,怎么評估不同技術和方案的好壞,能夠結合技術給出解決方案,能夠和技術同學更好的溝通即可。

反而不能夠太過于鉆一塊技術,想著自己如何如何深入,人的時間經歷是有限的,如何發現問題,解決問題才是這個工作的核心所在(個人所見,不一定對)。

所以在這個項目里,一些基礎的知識做了些思維導圖,不一定很對,沒有仔細校驗過,可以分享給有需要的同學。

1. 深度學習優化器

2. 深度學習損失函數

3. PyTorch

4. 開源機器學習庫

5. 圖像處理模型

本文由 @Damon 原創發布于人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基于CC0協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!