[創作] 用深度學習幫分類&整理CG
註: 這個程式因為根據顯卡不同要安裝的函式庫也不相同, 所以並沒有編成可執行檔提供使用, 需要會架設python環境才有辦法使用這工具。
Github:
https://github.com/zmcx16/ReclassifyAnimeCG
部落格文章(文長):
https://blog.zmcx16.moe/2021/10/reclassifyanimecg-cg.html
會想寫這個工具的主要原因是, 我有追蹤一些繪師並且用下載器去追蹤下載那些繪師的作品, 不過基本上繪師畫的圖通常就是幾天放個一張, 或是一次推出的CG圖庫都是複合的動漫畫主題, 然後下載器下載又不可能自動幫我分類這些圖片, 導致這些圖片就越來越雜
亂, 每個資料夾都混雜複數個主題&角色, 每個資料夾的名稱又沒有特定的主題性, 讓我自己事後很難找圖不說, 連看都懶得看了...。 後來就想到現在深度學習分類圖片已經很強了, 那我乾脆來寫個工具輔助我整理圖庫吧!!
這個工具目前沒有特別為動漫CG分類做特別設計, 目前功能就是單純套用目前流行的影像分類模型, 然後整合一些檔案比對跟複製的功能, 方便用來整理CG, 使用的方法如下:
--------
1. 設置config.yaml
設定想整理的圖庫位置(predict_data_path), 以及先手動整理好一小部分的資料當訓練資料(train_data_path), 還有預定之後模型分類完存放圖庫的位置
(output_data_path), 還有設定想訓練/使用的深度學習模型。
2. 執行preprocess.py
preprocess.py會生成 train.txt, test.txt, index.txt 到 label_path 位置。
train.txt儲存訓練資料的每張圖片的位置, 以及對應的資料夾名稱(類別); test.txt則是根據config.yaml裡的train_ratio來決定要從training_data裡拿多少資料做為
testing data, 如果今天是想測試模型好壞或調參數會設定到, 如果是單純想使用來整理圖片不調參數, 就直接設定成1.0; index.txt則是記錄每個類別index對應的資料夾名稱。
3. 執行train.py
train.py會開始訓練模型, 並把訓練好的模型存在train_model_path位置
4. 執行predict.py
如果config.yaml設定use_test_txt = true, predict.py會使用之前preprocess.py生成的testing data來做分類預測, 並計算這次分類的準確率, 可以根據分類好壞來調整模型跟參數改善模型; 如果use_test_txt = false, predict.py會遍歷predict_data_path位置的所有圖檔, 並針對這些圖檔做分類預測, 以及根據預測結果儲存到output_data_path。
5. 如果是調整或訓練模型到步驟4就結束了, 而如果是要整理圖庫的話, 手動確認分類結果, 把分類錯誤的部分砍掉, 之後把剩餘正確(部分)的分類結果複製到training_data內。
6. 跳回步驟2, 反覆做到個人滿意分類結果為止。
--------
Config的部分可以設定自動過濾重複的檔案, 以及複製分類結果可以選擇要直接複製檔案或製作Symbolic link, 前者的話就變成多copy一整份整理好的檔案, 後者的話就是整理的結果都用符號連結儲存, 就幾乎不會為了複製分類結果佔磁碟空間(如果要製作
Symbolic link, 建議之後看圖使用FastStone Image Viewer, 不然直接用windows圖片檢視器開啟圖片會直接導到檔案的原始位置, 而不是link所在的位置, 觀看下一張圖片時就不會照著link的資料夾位置跑)。
目前我要分類的CG有20237張, 裡面有多少分類我也不知道, 我只想分類我感興趣的作品跟角色, 剩下的就丟到其他資料夾, 第一輪我只手動分類了100多張CG, 大概有20個分
類; 跑完當然效果不怎樣, 這20幾個分類有不少分類對的, 可是不屬於這20幾個分類的項目卻也通通被丟到這裡面。 不過這結果也很正常, 畢竟分類器是基於提供的訓練資料訓練出來的。
再來我就把分類對的保留下來, 並且再擴充其他我感興趣的分類(作品_角色), 第一輪這樣下來我分類好的CG已經有2000多張, 57個分類; 再來就繼續再跑一次訓練模型, 因為
已經分類好的資料更多了, 所以跑完後模型更強, 第二輪跑完並重新整理後, 已經分類好8506張, 142個分類; 扣除掉其他類別的話, 分類器(resnext50_32x4d)的準確率已達到
96.06%, 分類器已經能幾乎辨識所有看得懂的作品角色, 而看不懂的部分就是我需要再擴充類別, 或是不感興趣歸類到其他類別就好。
我目前估計只要再跑1~2輪, 就能把我想要的CG分類完, 其他不感興趣的部分就歸其他就好。 另外我分類結果是直接製作Symbolic link不是複製檔案, 8500張CG只佔16MB硬碟空間, 缺點就是如果未來我要搬移原始檔案的位置, 那我就必須寫程式批次修改所有link
檔案。
https://i.imgur.com/pzwAwKF.png
以我來說, 這個工具就是幫助我大幅減少人工整理圖庫的時間, 讓我可以比較爽快的找圖看圖, 還有藉由可以多次rerun改善模型的方式, 不用一定要把某類一次分類完, 大幅降低精神污染的危險, 個人還算蠻滿意這次的成果, 再來要做的就是盡量提高模型的準確
率, 減少需要人工過濾分類好的圖庫的時間~。
P.S. 理想上真的要整理圖庫, 不應該去動到原始檔案的資料, 而是建立一個資料庫, 對每一個圖檔都建立tag標籤, 之後可以用tag的方式搜尋資料庫, 並瀏覽符合搜尋結果的圖片。 這算是最終想做到的方案, 現在網路上也有不少圖庫網站是提供這種方式讓使用者找圖跟瀏覽圖片, 不過這等於要把整套系統都做出來, 包含資料庫, 檔案瀏覽器, 看圖軟體三大功能都實作才行, 要是之後檔案有動到也有資料庫遷移的問題, 個人目前還沒有那麼偉大的夢想想去自己做這一套系統出來, 所以就先不考慮了。
--
推 剛開始會分類 後來就懶了XD
推 樓上ID好懷念XDD
實作推個
推Pytorch(?
要不要放個ipython-notebook範本 加點示範圖?
有空可以來搞一下, 想說改改config就能跑了, 完全沒想到可以做notebook XD
前面接一個yolo抓人臉? 但我覺得不會比較好就是
有想過搭配lbpcascade_animeface 動漫人臉識別做前處理, 後來看直接套模型acc也有 96%, 現在有再想真的有必要往這方向GO嗎XD
這個如果出成服務會想訂閱,超需要...
推成服務網站資源不知道要花多少錢, 光是使用者要把一堆圖片上傳到網站伺服器本身就 不太現實了..., 除非可以結合雲端硬碟之類的, 目前是沒有這種想法啦..., 我自己是花 4000買張GTX 1060就拿來跑了。
推
一直希望有這東西
推實作
推
推,而且還是MIT License :)
推個
趕快跟大家推不然別人以為我看不懂
推實作
推個
推
推
推
推
16
沒想到真的有人用我寫的這個工具, 先放上我最後整理的某繪師結果: 2W多張的CG, 已分類好的CG總數為13939張, 想要的分類共有179類+Others共180類, 其中Others佔4007張(歸類為不在乎的CG), 剩下的7000多張CG暫時沒有繼續分類的打算, 因為喜歡的角色作品都分得差不多了, 剩下的7000多張是還未分類的作品, 打算有閒想開12
玩了近一個月,很理想也很方便的工具! 不過在使用階段遇到很多挫折... 因為對python不熟,光是建置環境/函示庫/到可以運行就花了兩天時間, 好不容易開始跑問題又來了,我沒有分類好的圖庫, 估狗看有沒有善心人士整理,結論是天下沒有白癡的午餐。
爆
Re: [新聞] 台灣人不愛用LINE了?排名遭新興通訊軟基本上通訊軟體裝過一次除非你換手機否則不會再下載 另外對於一些熱心的tg使用者這樣哏圖貼大家笑笑無坊 但用不正確的資訊去誤導推聞其他使用者 我覺得心態可議啦...要推廣做到分享正確資訊比較好吧? 看了幾個網站資料都顯示只有2億使用者吹到10億33
Fw: [閒聊] 我做了一個快速分享p站圖片的捷徑作者: TNPSCG (TNP) 看板: Marginalman 標題: [閒聊] 我做了一個快速分享p站圖片的捷徑 時間: Tue Jun 14 01:04:47 2022 今天發現了 這個網站 才知道把www.pixiv.net網域改成pixiv.cat+作品名+副檔名就能直接顯示圖片13
[閒聊] 你在接觸acg後遇過最不可思議的事?如題 剛我朋友發生一個很扯的事情 相信很多人都有收藏圖片的習慣 比如網路上看到好看的CG圖片之類 但我朋友不只會下載- ======更新======= homebrew似乎因為系統版本不夠新(10.12)沒辦法更新 ffmpeg好像也是類似的原因 但怪的是兩個都有下載很多套件並且安裝了 跑到某一個套件時,才跳出無法更新
爆
[GOTY] TGA 2024 年度最佳遊戲提名77
[閒聊] THE GAME AWARDS 2024提名名單直播 1點60
[Vtub] 兔田佩可拉獲TGA提名年度內容創作者35
[閒聊] 有哪些描寫極好的垃圾角色?32
[閒聊] 羅傑在槍彈辯駁的世界會怎樣27
Re: [情報] 井口裕香 雜誌封面25
[閒聊] 所以TGA的公信力算是還沒敗光嗎24
[百合] 超隨便姬21
[閒聊] 年度最佳運營提名這是什麼搞笑環節46
[情報] 寶石之國 澀谷/梅田大型全幅廣告 最終卷91
[閒聊] 九日能不能撈個TGA入選呢..34
Re: [閒聊] 黑白妹2 DLC Steam版17
[閒聊] 驚爆危機family 特別PV公開15
[討論] 黑悟空TGA會得哪些獎?22
[閒聊] 所謂的牌組是不是照抄就好了?15
[閒聊] 寶可夢SV 5星色違烈空座團戰12
[火影]慕留人第二部16話 岸本終於想寫戀愛劇情了10
[鳴潮] 今汐1.4沒有出現的原因找到了29
[討論] 大家對艾爾登法環印象最深的一幕是哪邊?9
[閒聊] 山道猴裡面的強力過件到底是什麼鬼?30
[坂本] SAKAMATO DAYS 190 鬼扯的最高境界24
[閒聊] 有人喜歡用刃牙梗圖但從沒看過刃牙嗎?21
[jojo] 迪亞布羅不會把箭刺到喬魯諾的瞬間刪掉嗎8
Re: [問題] 轉生成史萊姆 後期問題出在哪裡8
[閒聊] 原來ps最強的遊戲是要塞英雄8
[閒聊]妮姬30章484編劇在測試對正妹的忍耐極限15
[閒聊] 鋼彈seed不是超級系吧23
[Vtub] 烤肉Man:咕殺7
Re: [閒聊] 修道院的修女們7
Re: [討論] 看完膽大黨第七集不想哭情緒很鬱悶正常