#概要
写真1枚で 高精度な3D画像↓ 簡単作成できるよう。
githubは、以下。https://github.com/vt-vl-lab/3d-photo-inpainting
論文『3D Photography using Context-aware Layered Depth Inpainting』
Meng-Li Shih1 さんらは、以下。https://arxiv.org/pdf/2004.04727.pdf
ここでは、空間の捉え方を確認するために、
- 元画像に対して、depthを算出させ、
- 既にdepth算出済の状態から、元画像に格子を入れて、3D処理を実施。
結果は、以下。(加工前の静止画の出典は、https://pixabay.com/ja/ )
⇒ 水平面、垂直面がうまくとらえられている感じがする。
#まとめ
上記のgithubの技術のポイントは、別のところにあると思うので、これは、そこで使っているベースの技術の検討になっている(初心者で、そちらに関心がいった)。
尚、下記は、おそらくgithubの著者のレベルを超えた作品。 技術の軽微な破綻を、pizza取り分けの困難さに埋設?
(下記関連も含め、【1】⇒【2】⇒【3】⇒【0】(これ)の順で、記事を記載した。)
コメントなどあれば、お願いします。
#補足
論文の内容を少し意識するとした場合、
下記は、論文のfig.6であるが、何を説明してくれているのか、全く、わからない、と書こうと思ったが、、、そんな作業をしていると、少しづつ、わかってきた。。。⇒別途。
今後の予定:
- 多少、この論文を読む。
- inpaintingの技術を知る(古い技術含め)
- もっと良いdepth推定があるような気もするので、最良なdepth推定(を探してそれ)と組み合わせてみる。【3】のよりもっと良いものと。(これ、depth推定の良し悪しの評価にも使える気がする。。。)(たぶん、この項を最初にやる)
- pizzaを超える作品をつくる。
#関連
本記事の作業方法等がわかる詳細情報は、以下の関連を参照願います。
(1)
写真1枚で高精度な3D画像簡単作成やってみた【1】。(depthがPNGで編集できるようになりましたよ。)
(2)
写真1枚で高精度な3D画像簡単作成やってみた【2】。(depthをnumpyで加工してみる)
(3)
写真1枚で高精度な3D画像簡単作成やってみた【3】。勝手にdepthのみ 別の手法(intel-isl のMiDaS他)。
→ ここで、depth estimationを別のもの(2種)にしている。
ややサンプルが難しすぎたか、共通する課題のほうが目立つような結果。
(4)
写真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のレンジを
変更しても結果が同じだった気がする。
【3】
・全面が壁のような画像の場合、垂直面がうまく検出できないような気がする。
(簡単だと思うので、不思議。)depthの手法をいくつか試したが、
いまのところ良いものに出会ってない。