• 大小: 14.42MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-20
  • 语言: 其他
  • 标签: waifu2x  

资源简介

火火火火的waifu2x,运行环境win7+vs2013+opencv2.4.12,你值得拥有,可以直接点击sln运行。

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-

# waifu2x.py by @marcan42 based on https://github.com/nagadomi/waifu2x
# MIT license see https://github.com/nagadomi/waifu2x/blob/master/LICENSE

# 必要なモジュールのインポート
import json sys numpy as np # jsonサポート、システム、数値ユーティリティ(と思われる)
from scipy import misc signal # scipyより、その他処理、信号処理
from PIL import Image # 画像ファイル取り扱いユーティリティ
# Model export script: https://mrcn.st/t/export_model.lua (needs a working waifu2x install)

#infile outfile 
modelpath = sys.argv[1:] # コマンドライン引数読み込み(入力ファイル、出力ファイル、モデルjsonファイルへのパス)

model = json.load(open(modelpath)) # jsonファイルのロード(jsonファイルに記述された構造をそのままメモリ上に展開していると思われる)
# モデルの1階層が持つ情報:
#   * nInputPlane : このモデルに入力するべき平面の数
#   * nOutputPlane : このモデルから出力されるべき平面の数
#   * weight : 入力平面に対して畳み込み演算を行う重み行列の集合
#     - nInputPlane個の重み行列をパックしたものがnOutputPlane個入っている。行列の要素は全てfloat値。
#     - 例えば、初回は1個の重み行列をパックしたものが32個、2階層目は32個の重み行列をパックしたものが32個(つまり行列の数は1024個)入っている。
#     - 1つの重み行列は全て3x3行列となっている。従って、1回畳み込みを行う度に平面の大きさは上下左右1要素ずつ小さくなる。
#     - 計算時のアンカー(畳み込みの中心とする行列の位置)はおそらく(22)であると思われる(そうでないと、出力平面が変な方向に移動してしまうため)。
#   * bias : 出力平面一つに対して(全要素に加算することにより)掛けるバイアス値
#     - float値がnOutputPlaneの数だけ用意されている。
#   * kWkH : 未使用値(重み行列1つの大きさであると思われる。配布されているモデルの場合は全て3x3である)

im = Image.open(infile).convert(“YCbCr“) # 入力ファイルの読み込み -> YCbCr色空間への変換
im = misc.fromimage(im.resize((2*im.size[0] 2*im.size[1]) resample=Image.NEAREST)).astype(“float32“)
# 入力画像を2倍の幅・高さにNearestNeighbor法でリサイズした後、それをscipyで取り扱い可能な行列表現にし、
# その要素の型を32bit-floatにする

planes = [np.pad(im[::0] len(model) “edge“) / 255.0]
# 画像データの周りに、画像の端をコピーする形で、モデルの大きさ(核の行列の大きさ)分だけパッドを入れ、0~1の間でクリップする
# このplanesは輝度情報のみを取り出している(!)
# オリジナルのwaifu2xも、reconstruct時に入力をYUV色空間に変換した後、Yのみを取り出して処理している

count = sum(step[“nInputPlane“] * step[“nOutputPlane“] for step in model)# 畳み込み演算の必要回数を計算
# つまり、countの数だけ入力平面に対する重み行列の畳み込みが行われる。
progress = 0

for step in model: # ループ:ステップ(1つのモデル階層) 始め
    assert step[“nInputPlane“] == len(planes) 
    # このステップのモデルに定義された入力平面の数と実際の入力平面の数は一致していなければならない
    assert step[“nOutputPlane“] == len(step[“weight“]) == len(step[“bias“])
    # モデルの出力平面はモデルの重み行列集合の数とそのバイアスの数と一致していなければならない
    # つまり、各ステップの重み行列集合の数とそのバイアスの数だけ、そのステップによって平面が出力される
    
    o_planes = [] # 出力平面の格納場所を初期化
    
    for bias weights in zip(step[“bias“] step[“weight“]): # ループ:バイアス&重み行列集合 始め
        partial = None # partialをNone(null値)に初期化
        for ip kernel in zip(planes weights): # ループ:入力平面&核(重み行列) 始め
            p = signal.fftconvolve(ip np.float32(kernel) “valid“) # 入力平面に対して核を畳み込み演算
            if partial is None:
                partial = p # 最初の畳み込み演算の結果を代入
            else:
                partial += p # 畳み込み演算の結果を加算したものを代入
                # したがって、partialにはこのステップにおける全ての入力平面に対する重み行列の畳み込み演算の結果の総和が入る
            progress += 1
            sys.stderr.write(“\r%.1f%%...“ % (100 * progress / float(count)))
        # ループ:入力平面&核 終わり
        partial += np.float32(bias) # 計算したpartialにバイアスを加算(バイアスは1つの数値なので、partial全体にバイアスがかかる)
        # ここまでが

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-11-22 11:02  waifu2x-converter-cpp\
     文件        6058  2016-11-22 09:27  waifu2x-converter-cpp\LICENSE
     文件        2573  2016-11-22 09:27  waifu2x-converter-cpp\README.md
     目录           0  2016-11-22 11:01  waifu2x-converter-cpp\waifu2X\
     目录           0  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\
     文件         178  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\allconv.sed
     文件        6082  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\hints-jp.md
     文件        3276  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\README-jp.md
     文件        5953  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-commented.py
     目录           0  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\
     文件         670  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\export_model_nocuda.lua
     目录           0  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\lib\
     文件        1897  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\lib\image_loader.lua
     文件        1178  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\lib\iproc.lua
     文件         924  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\lib\LeakyReLU.lua
     文件        1830  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\lib\minibatch_adam.lua
     文件        5714  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\lib\pairwise_transform.lua
     文件        2051  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\lib\reconstruct.lua
     文件        1903  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\lib\settings.lua
     文件        1202  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\lib\srcnn.lua
     文件        2333  2016-11-22 09:27  waifu2x-converter-cpp\waifu2X\appendix\waifu2x-nocuda\waifu2x.lua
     目录           0  2016-11-22 10:38  waifu2x-converter-cpp\waifu2X\cfgmgr32.pdb\
     目录           0  2016-11-22 10:38  waifu2x-converter-cpp\waifu2X\cfgmgr32.pdb\E4C73E93B825413F99E80BA656C483172\
     文件           0  2016-11-22 10:38  waifu2x-converter-cpp\waifu2X\cfgmgr32.pdb\E4C73E93B825413F99E80BA656C483172\cfgmgr32.pd_
     目录           0  2016-11-22 10:01  waifu2x-converter-cpp\waifu2X\Debug\
     文件      334848  2016-11-22 10:59  waifu2x-converter-cpp\waifu2X\Debug\waifu2X.exe
     文件     2396152  2016-11-22 10:59  waifu2x-converter-cpp\waifu2X\Debug\waifu2X.ilk
     文件     3427328  2016-11-22 10:59  waifu2x-converter-cpp\waifu2X\Debug\waifu2X.pdb
     目录           0  2016-11-22 10:34  waifu2x-converter-cpp\waifu2X\iertutil.pdb\
     目录           0  2016-11-22 10:34  waifu2x-converter-cpp\waifu2X\iertutil.pdb\29A68B8FC1B641BDA6D6F68F78CA98162\
     文件           0  2016-11-22 10:34  waifu2x-converter-cpp\waifu2X\iertutil.pdb\29A68B8FC1B641BDA6D6F68F78CA98162\iertutil.pd_
............此处省略76个文件信息

评论

共有 条评论