plasmasphere.net -プラズマスフィア ドットネット-
Diary
SwinIR(Python)を使って画像をAI高画質化する
2022/12/13(Tue) 22:12
Pythonで動くSwinIRという画像の高解像度化をしてくれるツールをインストールしてみました。手順を書いておきます。
大まかには CodeFormer のインストールと似てるので、そちらも参照していただければと。
Python のインストール
対応したバージョン(3.10系)のpythonを入れます。
非公式Pythonダウンロードリンクがおすすめです。
PyTorch のインストール
https://pytorch.org/
PyTorch を使うには CUDA も必要です。公式サイトに対応した CUDA のバージョンが書かれてますので、環境にあったバージョンをインストールしてください。
pip でインストールしたいので、私はこうしました。pipのインストールコマンドがでてますので、これを入力します。
CUDA Toolkit は Archive ページから 11.6.2 をダウンロードしました。
SwinIR のインストール
git コマンドが使える場合は以下を。
git clone https://github.com/JingyunLiang/SwinIR.git
使えない場合は、GitHub から直接 Download Zip して、解凍したらOKです。
必要なライブラリが揃っていれば、解凍したフォルダに移動すれば使えるようになります。
必要なライブラリ
PyTorchのみインストールしている状態だと、他に必要なのは以下だと思います。
pip install opencv-python tqdm timm ipython
SwinIR を動かす
以下のコマンドで画像の解像度が上がります。CodeFormerは顔の解像度だけですが、こちらは画像自体が高解像度化します。
python main_test_swinir.py --task classical_sr --scale 2 --training_patch_size 48 --model_path model_zoo/swinir/001_classicalSR_DIV2K_s48w8_SwinIR-M_x2.pth --folder_lq testsets/Set5/LR_bicubic/X2 --folder_gt testsets/Set5/HR
--folder_gt 引数のフォルダ以下にある画像をターゲットにして処理します。
他のコマンドはGitHubのREADME.mdに書いてあるので、そちらを参照してください。
入力画像のサイズ(容量ではなく横x高さ)が大きいとエラー出しますので注意。あと、相当マシンパワー使います…。
処理されたファイルは SwinIR/results 以下に保存されます。
拡大結果
入力した画像は昔撮ったうちのにゃんこです(かわいい)
アップスケール後の画像は大きすぎるので少し縮小して表示させてます。クリックすると原寸が見れます。
waifu2x-caffee との比較
waifu2x-cafee との画像比較です。
SwinIR
waifu2x-cafee
ん-、どちらもかわいいですが、SwinIRの方がよりかわいいですね。
waifu2xも相当綺麗になると思ってたんですが、ちょっとレベルが違いましたねこれは…。
今回みたいに、昔撮った解像度の低い写真をアップスケールするのには丁度いいんじゃないでしょうか。
しかし、waifu2xよりも綺麗になるのはちょっとびっくりしました。
処理速度やマシン負荷でいうとwaifu2xの方が軽いですが、綺麗さでいうとSwinIRが圧倒的です。
ウマ娘の育成ログを自動取得するアプリ
2022/11/12(Sat) 17:11
ウマ娘の育成ログを自動取得してグラフ化するアプリを作りました。
UmaUmaLogger
起動してStartボタン押すだけの簡単アプリです。
一応readme.txt書いてますけど、使い方分かんなかったら twitter でリプ貰えれば対応するかもしれません。
UmaUmaLogger -plasmasphere.net-
umaumalogger - GitHub
Windows-GUIアプリ作るの面倒だったんで、ガワはTauriに任せてます。
Windows10なら問題なく動くと思うよ。
Vanilla JavaScript でブログ用カレンダー皇歴(皇紀)表示付き
2022/10/23(Sun) 18:10
Vanilla もしくはネイティブのJavaScriptでカレンダーを作りました。
当サイトの日記に設置しているものです。
GotHubにあるので必要な方は持って行ってください。
https://github.com/sou1ka/koukicalendar
日付にリンクを付けたり、祝日を設定できたりします。詳しくはREADMEに書いてるんでそっち読んでください。
当サイトのカレンダーの祝日には、Holidays JP API を使わせてもらっています。
こんな感じで使います。
new KoukiCalendar(".koukicalendar", { changeCalendar: async function(d, past) { if(!this.holiday || new Date(d).getFullYear() != new Date(past).getFullYear()) { var f = await fetch("https://holidays-jp.github.io/api/v1/" + new Date(d).getFullYear() + "/date.json"); this.setHoliday(await f.json()); } } });
多分これはどのJSカレンダーも対応してない自信があるんですが、皇歴表示にも対応してます。
emperorTime: true で使えます。
new KoukiCalendar(".koukicalendar", { emperorTime: true });
表示するとこんな感じ。
デザイン情報はカレンダーとしての体をなす部分しか書いていません。幅はターゲットにしたエレメントに準拠します。それぞれクラス情報書いてますが、必要な箇所は開発コンソールで確認してもらえればと。需要あれば追記します。
使い方わかんなかったら twitter 辺りでリプもらえれば説明するかもしれないししないかもしれません。
ユーザスクリプトを使ってダークモード未対応ページをダークモードにする
2022/10/20(Thu) 23:10
WebブラウザにOSのダークモードが反映されるようになって久しいですが、漏れなく全てのWebサイトはダークモードの対応をするべきというのが私の持論でございます。
かくいう当サイトも対応しております。やったのつい最近だけどな!
とはいえ、ダークモード未対応のサイトもまだ多くあります。そんな時にOSのダークモードに合わせてページの色合いを変更できるスタイルを紹介します。
Violentmonkey(Greacemonkey)をインストールして、以下の内容を貼り付けるだけです。
Chrome版(Edge版) Violentmonkey
Firefox版 Violentmonkey
window.addEventListener("load", (event) => { let style = `<style> html { filter: invert(1) hue-rotate(180deg); } iframe, img, object * { filter: invert(1) hue-rotate(180deg); } <style>`; document.querySelector("head").insertAdjacentHTML("beforeend", style); });
Violentmonkey の使い方が分からない人はこの辺とか読んでみてください。
https://gigazine.net/news/20210211-violentmonkey/
CSSで色を反転させるだけなので、白は黒くなって黒は白くなります。そもそもダークモードに対応していないページだけで対応すればいいので、その辺りは適宜やってください。
反転させたくないエレメントがある場合は、iframe, img, object * の後ろに追加するといいです。
CodeFormerインストール方法と使い方(Windows版)
2022/10/15(Sat) 11:10
CodeFormer という python で動く画像の顔面修復AIをインストールしてみたので、手順を書いておきます。
私のインストールした10月9日のバージョンでは、画像だけでなくて動画も入力ソースにできるようでした。
python のインストール
対応したバージョン(3.10系)のpythonを入れます。私はそもそも入れてなかったので、対応した最新版を入れました。
公式は分かりにくいので、非公式Pythonダウンロードリンクがおすすめ。
私がインストールしたのは 3.10.7 ですが、10月15日現在では 3.10.8 が出ているようです。
PyTorch のインストール
https://pytorch.org/
PyTorch を使うには CUDA も必要です。公式サイトに対応した CUDA のバージョンが書かれてますので、環境にあったバージョンをインストールしてください。
pip でインストールしたいので、私はこうしました。pipのインストールコマンドがでてますので、これを入力します。
CUDA Toolkit は Archive ページから 11.6.2 をダウンロードしました。
CodeFormer のインストール
git コマンドが使える場合は以下を。
git clone https://github.com/sczhou/CodeFormer
使えない場合は、GitHub から直接 Download Zip して、解凍したらOKです。
設置したフォルダに移動して以下コマンドを実行します。
pip install -r requirements.txt
pip install basicsr
エラーが出なければインストール完了してます。
CodeFormer を動かす
とりあえず以下コマンドでサンプルの主に顔部分の解像度が爆上がりします。
python inference_codeformer.py -w 0.7 --has_aligned --face_upsample -i inputs\cropped_faces -o results
処理が終わったら入力ファイル(inputs\cropped_faces)と results フォルダの画像を見比べてください。引くほど鮮明になってるはずです。
実行時にエラーが出る場合があります。
ModuleNotFoundError: No module named ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''basicsr.version''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
basicsr/__init__.py ファイルの、from .version import __gitsha__, __version__
をコメントアウトしてみてください。多分動きます。
コマンドの -i が入力パス、-o が出力パスです。-i は動画も指定できるようです。
昔のWebCamで撮った動画ファイルを入力してみましたが、3分の動画を処理するのに10分くらいかかっていたので、実用的とは言えないかもしれません。
私のGPUが GTX 1660 ですので、最近のGPUならもっと速いと思います。
画像の解像度を上げる、というものではなく、顔の解像度を上げる処理ですので、普遍的に解像度アップに使えるようなものではないですが、ブレた写真とかの顔がいきなり綺麗になるのは結構楽しいです。
マッドキャッツ ゲーミングマウス R.A.T. DWS & B.A.T. 6+
2022/10/10(Mon) 17:10
マッドキャッツ(Mad catz)のマウス、R.A.T. DWS と B.A.T. 6+ を買いました。
B.A.T. 6+外観
この子の良いところはサムレストとピンキーレストが後付けできるところ。マウスにしっかり被せて持つと、親指と小指はマウスパッドに擦るのは必然…!
そんな時このアクセサリがあると全く気にすることなく指を置くことができます。
疲れません。最高です。
R.A.T. DWS外観(左)。右側に映っているのは昔買った M.O.U.S.9 です。
DWSはサムレストはついていますが、ピンキーレストはついていません。写真にはピンキーレストが付いていますが、これは今は無き R.A.T.7 のオプションを付けています。
付けられるんですね。 MOUS9 にも付けれてましたが、DWS にも付けられます。
外装の設計は変わってないんでしょうね。これもピンキーレストを付けると小指が以下略。
どちらも素晴らしいアイテムですが、左右スクロールやボタンのカスタマイズが細かくてきる DWS の方が好きです。
BAT6+は有線専用なので、会社に置いてます。快適です。
REALFORCE R2 テンキーレス PFU Limited Edition
2022/10/07(Fri) 01:10
かなり前ですが、REALFORCE R2 テンキーレス PFU Limited Edition を買いました。
以前91UDK-Gを買いましたが、それの唯一の後継機種です。
初代で唯一不満だった出っ張ったデザインがなくなって R2 は最高です。最&高です。
唯一というのも、キー押下圧が45g統一、テンキーレス、昇華印刷、という仕様が R2 では PFU Limited Edition にしかありません。
めっちゃ細かく仕様が分かれてて、US配列、JIS配列、テンキー有無でそれぞれあって、選べるのは良いんですが果たしてここまで細かくする必要があったのか疑問ではあります。
もうちょいまとめて値段少し抑えてほしいというのが正直なところ。
とはいえ、キーボードとしては最高峰の一角ではあるので、少々お値段が高くとも問題はないのですけども。
※もう一角はHHKB
もうこのキーボードじゃないと長時間タイピングできませんし、速度もでません。完全に調教されてますね。
使ってるのは家ではなくて、会社ですけどね。
会社で買うキーボード全部これにしようと提案したら、高杉って却下されましたが。ハハ
タイピング速度上がるし、それはつまり仕事効率上がるということだし、開発会社としては良い投資だと思うんですがね。
ちなみに、BT 対応した R3 も出ていますが、こちらは買っていません。
Bluetooth 対応で最高かよ!とリリースニュース見たときは思ったのですが、製品画像でガックリしました。
フレームが大きくて丸いんですもの。望んでないのよ丸いフレームは。どっかの安くて白いUSキーボードにでも作らせとけばいいんですよそんなもの。
R4 で R2 のデザインに BT ついたら買うと思います。
キャリア端末(au)の APN が保存できない場合
2022/10/03(Mon) 20:10
SIMロック解除したAndroid端末にMVNOのSIMを刺してAPNが保存できない場合、 「SIMステータスの更新」をすると、APNを設定できるようになります。
設定→デバイス情報→SIMカードステータス→SIMステータス更新
で更新できます。
WiFi接続が必要なのでそこだけ注意。