よこぼと申します。
超初心者です🔰
同じような初心者・初学者の方にも、
育成や普及活動を進める立場の方にも、
参考になるような記事をあげていけたらと思います。
よろしくお願いします🙇
=======================
今回のテーマは「超解像」です!
超解像ってなに?
低解像度の画像から失われた情報を補って高解像度の画像を生成する技術です。
なるほどね…
低解像度の画像…
それって、モザイクを取り払うってことやん!👀✨
そうです、今回はモザイクを取り払ってみせましょうー✨
みなさまに先にお伝えしておくべきことがあります。
『よこぼによこしまな気持ちは一切ありません』
もう一回言っておきましょう。
『よこぼによこしまな気持ちは一切ありません』
それでは本編いくぜ!でへへ!!
=======================
◆colabとkaggle
最初はGPTに
「colabで超解像やってみたりできないかな?」
と相談して、コード書いてもらいました。
ただ、colab(無料プラン)で遊びすぎるとGPUの使用制限がかかってしまいます😱
だから途中からKaggleを使って遊ぶことにしました。
Kaggleでは無料プランでも週30時間はGPU使えます。colabと違って残り時間がわかるのも便利です!
リンク
Google Colab
https://www.kaggle.com/
◆モデルの話(読み飛ばしてOKです)
EDSR(Enhanced Deep Residual Networks for Single Image Super-Resolution)をもとに軽量化したモデルをGPTさんが作ってくれました。
EDSRの元論文→https://arxiv.org/abs/1707.02921
◎構成
・ResBlock×n(活性化あり・スケール付きのシンプル残差)
・本体の最後にもう一発のConvで整形
・UpsampleBlock(PixelShuffle)でx2/x3/x4へ
・tailでRGB出力(Conv)
◎データの流れ
・headで3ch→n_featsへ変換
・ResBlockでディテールを“加算学習”(x + body(x)*res_scale)
・低解像のまま特徴を溜め込み、最後だけPixelShuffleで拡大
・仕上げのConvで3chへ
◎ポイント
・低解像域で計算→最後にアップサンプルなので速くて省メモリ。
・PixelShuffleはチェッカーボード(縞)アーチファクトが出にくい傾向。
・いわゆるEDSR思想(大域的なスキップ+多段残差)を軽量化している。※GPTさんにmermaidで出してもらってnapkin AIで成形
シンプルに言えば
「低解像→特徴抽出→高解像再構成」という処理を繰り返し学習し、
出力が元の高解像画像(HR)に近づくようにLossで調整していくモデル
です。
◆学習と結果
学習データはdiv2K(画像数1000枚、本家EDSRでも使用)を使いました!
学習時間は1時間ぐらい!
(一回6時間にチャレンジしたんですが、途中で止まってました😭)
kaggleってこんな感じ
さあ…それではお待ちかねの結果です!
どん!!!
(「入力:出力:元画像」の順番に並べてます)
おおー!
元画像まではいかなくても、
ちょっと良くなってるのがわかりませんか?
え?わからない?
もっと心の目で見てください❤️
あなたの心の目スキルも同時に問われているのです
どうでしょう?
前回(※)は惜敗でしたが、
今回は成功したと言ってもいいんじゃないでしょうか?
※前回↓
いやー、なかなか楽しかったです。
勉強にもなりました😆
ちなみに最初は猫画像でトライしてたんですが、
あまりにも変化がわかりにくいので文字が入った看板画像にしましたー🐈
ここまでお読みいただき本当にありがとうございました🙇
こんな感じで日々遊びながら楽しみながら勉強してます❗️
アドバイスやコメントいただけると喜びます🤩
それではまた次回‼️




