線画抽出の既存実装 - sketchKerasについて
概要
- sketchKerasを調べた
- Pytorchで再実装した
sketchKeras
アニメ絵から線画抽出する既存手法を調べていると,sketchKerasというレポジトリがありました.
sketchKerasの実装はありますが,解説や論文はなかったので公式実装を調べて, Pytorchで実装し直しました.
モデル構造
sketchKerasは単純なU-netベースのネットワークのようです.公式実装を読み込んでモデルをplot_modelで図にしたものとmodel.summary()して出力した結果を以下に示します.
再実装・テスト
これがわかれば他のフレームワークで書き直すのは難しくないので,自分でもPytorchで書き直してみました.重みもPytorch用に移植しました.
以下に実行結果を3例示します.左が元画像,真ん中が3x3 Sobelフィルタをかけた画像,右がsketchKerasの出力結果です.
(Original image from https://safebooru.org/index.php?page=post&s=view&id=1234461)
(Original image from https://www.metmuseum.org/art/collection/search/45434?searchField=All&sortBy=Relevance&ft=Katsushika+Hokusai&offset=0&rpp=20&pos=1)
(Original image from https://safebooru.org/index.php?page=post&s=view&id=3066528)
微分フィルタの結果で認められるようなグラデーションの小さい不連続に起因するエッジが sketchKerasでは抑えられているように見えます.またフォントのエッジがきれいに出ているようにも見えます.