LoginSignup
1
1

More than 3 years have passed since last update.

写真1枚で高精度な3D画像簡単作成やってみた【2】。(depthをnumpyで加工してみる)

Last updated at Posted at 2020-05-27

概要

写真1枚で
高精度な3D画像↓ 簡単作成できるよう。

写真1枚で高精度な3D画像簡単作成やってみた【1】。(depthがPNGで編集できるようになりましたよ。)
の記事参照。

ここでは、
depthをnumpyで加工してみる

以下が論文とgithub。

https://arxiv.org/pdf/2004.04727.pdf
論文『3D Photography using Context-aware Layered Depth Inpainting』
Meng-Li Shih1 さんら

githubは、以下。
https://github.com/vt-vl-lab/3d-photo-inpainting

まず、普通の実施例

加工元画像 
https://pixabay.com/ja/ を利用

元の1枚の静止画。

結果。

元の1枚の静止画。

結果。

numpyでdepthを加工

とりあえず、depthの値を20段階ぐらいに?離散化してみた。
(すみません、例として、失敗しています。作用が全くわからない。。。 作用は、次項参照。)

2行たしてみた
実際は、例えば、意味のある関数をつくって作用させればいい?ここの処理フェーズでやるのがいいかどうかは検討がいると思うが。

run.py
        # compute
        with torch.no_grad():
            out = model.forward(img_input)

        out = out//0.1#######追加
        out = out*0.1#######追加

        depth = utils.resize_depth(out, target_width, target_height)
        img = cv2.resize((img * 255).astype(np.uint8), (target_width, target_height), interpolation=cv2.INTER_AREA)

numpyでdepthを加工(作用を強くした例)

上記より粒度を5倍にあげた。

        out = out//0.5#######追加
        out = out*0.5#######追加

あとがき

pngの編集を前の記事に書いたが、デフォルトのnumpyのほうが扱いやすいかもと思い、numpyでの編集の例を示した。(残念ながら、意味ある編集に至らず。。。)
コメントなどあればお願いします。

関連:
写真1枚で高精度な3D画像簡単作成やってみた【3】。勝手にdepthのみ 別の手法(intel-isl のMiDaS他)。

:star2:写真1枚で高精度な3D画像簡単作成やってみた【0】。(空間の捉え方を確認した)

:new:写真1枚で高精度な3D画像簡単作成やってみた【-1】。(隠れた領域が、本当に見えるのか?)

役立つかもしれない情報(一連の記事【-1】~【3】総合)

【1】
・GFORCE GTX1050Ti(専用GPUメモリ4.0GB)では、
GPUのメモリ不足で動かない場合あり
 これは、画像サイズに依存するのではなく
 おそらく、画像の中身で3Dの表現に必要なメモリ量の関係か何か。
 解決策、見つけていません。パラメータ変更等でなんとかなるのかも。
赤い車ので、専用GPUメモリ3.4GB程度、白のは2.7GB程度使用されていました。
 このメモリ問題に関しては、とりえず、Google Colabとかを使うのがいいのでは?
・PNGによるdepth情報の編集を示しましたが、確か、デフォルトはnumpy?。
 そのデータ(numpy)をガタガタ扱うのができる方は、そちらを編集するのもありかも。
・PNGで表現されたdepthの情報は、どこかで正規化されている気がする。PNGのdepthのレンジを
  変更しても結果が同じだった気がする。:star:

【3】
・全面が壁のような画像の場合、垂直面がうまく検出できないような気がする。
  (簡単だと思うので、不思議。)depthの手法をいくつか試したが、
  いまのところ良いものに出会ってない。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1