[創作] 用深度學習幫分類&整理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好像也是類似的原因 但怪的是兩個都有下載很多套件並且安裝了 跑到某一個套件時,才跳出無法更新
58
[閒聊] 寶可夢遊戲都不請聲優配音的原因是什麼58
[閒聊] 檔案不是沒人玩了嗎49
[閒聊] 宙斯為啥捨棄Faker去韓華?34
[閒聊] TGA 2024 年度最佳遊戲之我見43
[閒聊] 是鱷魚太有良心,還是芥見跟赤坂太G8?29
[情報] 更生文化出版帳戶被列為詐騙警示戶29
[閒聊] 日式演唱會是不是有特定的模式?31
[閒聊] 選取含有夜神月的圖片27
[閒聊] 新版獵人 進攻蟻王城池開始旁白大出8
[閒聊] 宙斯:我是來提離隊的18
Re: [情報] 更生文化出版帳戶被列為詐騙警示戶16
[閒聊] 一般人戴助聽器有用喔17
[閒聊] 葬送的芙莉蓮 13817
[閒聊] 膽大黨的小愛羅 怎麼長歪的43
[閒聊] 藍色監獄284 寶潔好壞好帥 戀愛惹27
[討論] 台V圈又發生什麼破事了?聲帶小姐復活?40
[閒聊] 說到「我相信」會想到什麼?49
[閒聊] 超強的動態視力可以用在哪?8
[萌夯]崛起嵐龍是不是頂級糞怪33
[Vtub] Holo哪些人唱歌跟平常樣子有落差?16
[Vtub] 小箱or個人Vtuber 1119 DD串30
[閒聊] 兔田Pekora拿下TGA機率高嗎11
[閒聊] 學生會也有洞 FIGHT OF CHICKEN10
[閒聊] 吉伊卡哇 221 黑色流星24
[閒聊] 牙突(突刺)是不是武士刀最實用的招式?10
[蔚藍] 羽留奈的誘惑10
[閒聊] 假如我握著劍,就無法擁抱你10
[閒聊] 奶 奶子 大奶子29
[holo]holo是什麼時候開始看團員相性9
[閒聊] 布加拉提放到第三部 大概是什麼等級