探討圖庫行業AI圖片評分系統的構建和應用
為了提升圖庫公司審核圖片投稿的效率,我們或許可以搭建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協議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發揮!