Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Run Instant NeRF on Docker

F8865f41777ef3caced0e4e6801ff83a?s=47 masa-ita
April 26, 2022

Run Instant NeRF on Docker

写真からあっという間に3Dシーンを生成するInstant NeRFをDockerで動かす。
Python機械学習勉強会in新潟 #15 2022-4-24

F8865f41777ef3caced0e4e6801ff83a?s=128

masa-ita

April 26, 2022
Tweet

More Decks by masa-ita

Other Decks in Technology

Transcript

  1. 写真からあっという間に 3Dシーンを⽣成する Instant NeRFをDockerで動かす 板垣正敏@Python機械学習勉強会in新潟 #15 2022-4-24

  2. アジェンダ š NeRFとは︖ š Instant NeRFとは︖ š Instant NGPとは︖ š

    noVNCとは︖ š 環境構築の⼿順 š データの準備 š デモ š まとめ 2
  3. NeRFとは︖ 3

  4. NeRFとは︖ š NeRF: Representing Scenes as Neural Radiance Fields for

    View Synthesis š https://arxiv.org/abs/2003.08934 š Novel View Synthesis (いくつかの画像から新しいカメラ位置からの画像を合成する⼿法)の1つ š 被写体の形状を学習するのではなく、空間内のある位置(座標)と⽅向から、RGBの輝度 (Radiance)と不透明度(Opacity)を得るためのMLPを学習させる š このため、⾼解像度でもネットワークパラメータは少なくて済む š ただし、学習時間は元の論⽂ではNVIDIA V100で1、2⽇かかる 4
  5. NeRFとは︖︓その原理 š 被写体の形状を学習するのではなく、空間内のある位置(座標)と⽅向から、RGBの輝度 (Radiance)と不透明度(Opacity)を得るためのMLPを学習させる š カメラを通る直線上の座標をサンプリングし、上記で得られた輝度と不透明度からRGBを計算 5

  6. NeRFとは︖︓その構造 š MLPは⽐較的単純 š Positional Encodingした位置座標𝛾(𝑥)は5層⽬に残差⼊⼒あり š Positional Encodingした⽅向ベクトル𝛾(𝑑)は不透明度𝜎出⼒の後に⼊⼒(不透明度はどこから⾒ても同 じ)

    18 B. Mildenhall, P. P. Srinivasan, M. Tancik et al. RGB (x) <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="C39OhB+IczRcjLNINXH29e9lt8M=">AAAB2HicbZDNSgMxFIXv1L86Vq1rN8EiuCpTN+pOcOOygmML7VAymTttaCYzJHeEMvQFXLhRfDB3vo3pz0KtBwIf5yTk3hMXSloKgi+vtrW9s7tX3/cPGv7h0XGz8WTz0ggMRa5y04+5RSU1hiRJYb8wyLNYYS+e3i3y3jMaK3P9SLMCo4yPtUyl4OSs7qjZCtrBUmwTOmtowVqj5ucwyUWZoSahuLWDTlBQVHFDUiic+8PSYsHFlI9x4FDzDG1ULcecs3PnJCzNjTua2NL9+aLimbWzLHY3M04T+zdbmP9lg5LS66iSuigJtVh9lJaKUc4WO7NEGhSkZg64MNLNysSEGy7INeO7Djp/N96E8LJ90w4eAqjDKZzBBXTgCm7hHroQgoAEXuDNm3iv3vuqqpq37uwEfsn7+Aap5IoM</latexit> <latexit sha1_base64="hQhj+CULGdG3QS0LVa1KRUGPisw=">AAAB73icbVA9T8MwFHwpX6UUCF1ZLCqkslQJC7AhsTAWidBKbVQ5rtNatZ3IdlCrKH+FhQEQ/4aNf4PTdoCWkyyd7t7TO1+UcqaN5307la3tnd296n7toH54dOye1J90kilCA5LwRPUirClnkgaGGU57qaJYRJx2o+ld6XefqdIskY9mntJQ4LFkMSPYWGnoNgZjLARuDQQ2kyjOZ8XF0G16bW8BtEn8FWnCCp2h+zUYJSQTVBrCsdZ930tNmGNlGOG0qA0yTVNMpnhM+5ZKLKgO80X2Ap1bZYTiRNknDVqovzdyLLSei8hOlhH1uleK/3n9zMTXYc5kmhkqyfJQnHFkElQWgUZMUWL43BJMFLNZEZlghYmxddVsCf76lzdJcNm+aXsPHlThFM6gBT5cwS3cQwcCIDCDF3iDd6dwXp2PZVsVZ1VbA/7A+fwB4CiSuw==</latexit> <latexit sha1_base64="hQhj+CULGdG3QS0LVa1KRUGPisw=">AAAB73icbVA9T8MwFHwpX6UUCF1ZLCqkslQJC7AhsTAWidBKbVQ5rtNatZ3IdlCrKH+FhQEQ/4aNf4PTdoCWkyyd7t7TO1+UcqaN5307la3tnd296n7toH54dOye1J90kilCA5LwRPUirClnkgaGGU57qaJYRJx2o+ld6XefqdIskY9mntJQ4LFkMSPYWGnoNgZjLARuDQQ2kyjOZ8XF0G16bW8BtEn8FWnCCp2h+zUYJSQTVBrCsdZ930tNmGNlGOG0qA0yTVNMpnhM+5ZKLKgO80X2Ap1bZYTiRNknDVqovzdyLLSei8hOlhH1uleK/3n9zMTXYc5kmhkqyfJQnHFkElQWgUZMUWL43BJMFLNZEZlghYmxddVsCf76lzdJcNm+aXsPHlThFM6gBT5cwS3cQwcCIDCDF3iDd6dwXp2PZVsVZ1VbA/7A+fwB4CiSuw==</latexit> <latexit sha1_base64="Wrp6sfGRkT1YIiwCAWhsM6HtC1M=">AAAB+nicbVA9T8MwFHzhs5SvUEaWiAqpLFXKAmwVLIxFIrRSE1WO67RWbSeyHdQqyl9hYQDEyi9h49/gtBmg5SRLp7v39M4XJowq7brf1tr6xubWdmWnuru3f3BoH9UeVZxKTDwcs1j2QqQIo4J4mmpGeokkiIeMdMPJbeF3n4hUNBYPepaQgKORoBHFSBtpYNf8EeIcNXyO9DiMsml+PrDrbtOdw1klrZLUoURnYH/5wxinnAiNGVKq33ITHWRIaooZyat+qkiC8ASNSN9QgThRQTbPnjtnRhk6USzNE9qZq783MsSVmvHQTBYR1bJXiP95/VRHV0FGRZJqIvDiUJQyR8dOUYQzpJJgzWaGICypyergMZIIa1NX1ZTQWv7yKvEumtdN996tt2/KNipwAqfQgBZcQhvuoAMeYJjCM7zCm5VbL9a79bEYXbPKnWP4A+vzBz63lBw=</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> (x) <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="C39OhB+IczRcjLNINXH29e9lt8M=">AAAB2HicbZDNSgMxFIXv1L86Vq1rN8EiuCpTN+pOcOOygmML7VAymTttaCYzJHeEMvQFXLhRfDB3vo3pz0KtBwIf5yTk3hMXSloKgi+vtrW9s7tX3/cPGv7h0XGz8WTz0ggMRa5y04+5RSU1hiRJYb8wyLNYYS+e3i3y3jMaK3P9SLMCo4yPtUyl4OSs7qjZCtrBUmwTOmtowVqj5ucwyUWZoSahuLWDTlBQVHFDUiic+8PSYsHFlI9x4FDzDG1ULcecs3PnJCzNjTua2NL9+aLimbWzLHY3M04T+zdbmP9lg5LS66iSuigJtVh9lJaKUc4WO7NEGhSkZg64MNLNysSEGy7INeO7Djp/N96E8LJ90w4eAqjDKZzBBXTgCm7hHroQgoAEXuDNm3iv3vuqqpq37uwEfsn7+Aap5IoM</latexit> <latexit sha1_base64="hQhj+CULGdG3QS0LVa1KRUGPisw=">AAAB73icbVA9T8MwFHwpX6UUCF1ZLCqkslQJC7AhsTAWidBKbVQ5rtNatZ3IdlCrKH+FhQEQ/4aNf4PTdoCWkyyd7t7TO1+UcqaN5307la3tnd296n7toH54dOye1J90kilCA5LwRPUirClnkgaGGU57qaJYRJx2o+ld6XefqdIskY9mntJQ4LFkMSPYWGnoNgZjLARuDQQ2kyjOZ8XF0G16bW8BtEn8FWnCCp2h+zUYJSQTVBrCsdZ930tNmGNlGOG0qA0yTVNMpnhM+5ZKLKgO80X2Ap1bZYTiRNknDVqovzdyLLSei8hOlhH1uleK/3n9zMTXYc5kmhkqyfJQnHFkElQWgUZMUWL43BJMFLNZEZlghYmxddVsCf76lzdJcNm+aXsPHlThFM6gBT5cwS3cQwcCIDCDF3iDd6dwXp2PZVsVZ1VbA/7A+fwB4CiSuw==</latexit> <latexit sha1_base64="hQhj+CULGdG3QS0LVa1KRUGPisw=">AAAB73icbVA9T8MwFHwpX6UUCF1ZLCqkslQJC7AhsTAWidBKbVQ5rtNatZ3IdlCrKH+FhQEQ/4aNf4PTdoCWkyyd7t7TO1+UcqaN5307la3tnd296n7toH54dOye1J90kilCA5LwRPUirClnkgaGGU57qaJYRJx2o+ld6XefqdIskY9mntJQ4LFkMSPYWGnoNgZjLARuDQQ2kyjOZ8XF0G16bW8BtEn8FWnCCp2h+zUYJSQTVBrCsdZ930tNmGNlGOG0qA0yTVNMpnhM+5ZKLKgO80X2Ap1bZYTiRNknDVqovzdyLLSei8hOlhH1uleK/3n9zMTXYc5kmhkqyfJQnHFkElQWgUZMUWL43BJMFLNZEZlghYmxddVsCf76lzdJcNm+aXsPHlThFM6gBT5cwS3cQwcCIDCDF3iDd6dwXp2PZVsVZ1VbA/7A+fwB4CiSuw==</latexit> <latexit sha1_base64="Wrp6sfGRkT1YIiwCAWhsM6HtC1M=">AAAB+nicbVA9T8MwFHzhs5SvUEaWiAqpLFXKAmwVLIxFIrRSE1WO67RWbSeyHdQqyl9hYQDEyi9h49/gtBmg5SRLp7v39M4XJowq7brf1tr6xubWdmWnuru3f3BoH9UeVZxKTDwcs1j2QqQIo4J4mmpGeokkiIeMdMPJbeF3n4hUNBYPepaQgKORoBHFSBtpYNf8EeIcNXyO9DiMsml+PrDrbtOdw1klrZLUoURnYH/5wxinnAiNGVKq33ITHWRIaooZyat+qkiC8ASNSN9QgThRQTbPnjtnRhk6USzNE9qZq783MsSVmvHQTBYR1bJXiP95/VRHV0FGRZJqIvDiUJQyR8dOUYQzpJJgzWaGICypyergMZIIa1NX1ZTQWv7yKvEumtdN996tt2/KNipwAqfQgBZcQhvuoAMeYJjCM7zCm5VbL9a79bEYXbPKnWP4A+vzBz63lBw=</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> <latexit sha1_base64="6F05rQ6IIUhALFsWYUmKYX8h5zw=">AAAB+nicbVBPS8MwHE3nvzn/1Xn0EhzCvIxWBPU29OJxgnWDtYw0S7ewJC1JKhulX8WLBxWvfhJvfhvTrQfdfBB4vPf78Xt5YcKo0o7zbVXW1jc2t6rbtZ3dvf0D+7D+qOJUYuLhmMWyFyJFGBXE01Qz0kskQTxkpBtObgu/+0SkorF40LOEBByNBI0oRtpIA7vujxDnqOlzpMdhlE3zs4HdcFrOHHCVuCVpgBKdgf3lD2OcciI0ZkipvuskOsiQ1BQzktf8VJEE4Qkakb6hAnGigmyePYenRhnCKJbmCQ3n6u+NDHGlZjw0k0VEtewV4n9eP9XRVZBRkaSaCLw4FKUM6hgWRcAhlQRrNjMEYUlNVojHSCKsTV01U4K7/OVV4p23rlvO/UWjfVO2UQXH4AQ0gQsuQRvcgQ7wAAZT8AxewZuVWy/Wu/WxGK1Y5c4R+APr8wc/95Qg</latexit> (d) <latexit sha1_base64="Z+u0Yue3pS9TMvqDyVRY2E+Un5Q=">AAAB+nicbVBPS8MwHE39O+e/Oo9egkOYl9GKoN6GXjxOsG6wlpGm6RaWpCVJxVH6Vbx4UPHqJ/HmtzHdetDNB4HHe78fv5cXpowq7Tjf1srq2vrGZm2rvr2zu7dvHzQeVJJJTDycsET2Q6QIo4J4mmpG+qkkiIeM9MLJTen3HolUNBH3epqSgKORoDHFSBtpaDf8EeIctXyO9DiM86g4HdpNp+3MAJeJW5EmqNAd2l9+lOCME6ExQ0oNXCfVQY6kppiRou5niqQIT9CIDAwViBMV5LPsBTwxSgTjRJonNJypvzdyxJWa8tBMlhHVoleK/3mDTMeXQU5Fmmki8PxQnDGoE1gWASMqCdZsagjCkpqsEI+RRFibuuqmBHfxy8vEO2tftZ2782bnumqjBo7AMWgBF1yADrgFXeABDJ7AM3gFb1ZhvVjv1sd8dMWqdg7BH1ifPyGTlAw=</latexit> <latexit sha1_base64="Z+u0Yue3pS9TMvqDyVRY2E+Un5Q=">AAAB+nicbVBPS8MwHE39O+e/Oo9egkOYl9GKoN6GXjxOsG6wlpGm6RaWpCVJxVH6Vbx4UPHqJ/HmtzHdetDNB4HHe78fv5cXpowq7Tjf1srq2vrGZm2rvr2zu7dvHzQeVJJJTDycsET2Q6QIo4J4mmpG+qkkiIeM9MLJTen3HolUNBH3epqSgKORoDHFSBtpaDf8EeIctXyO9DiM86g4HdpNp+3MAJeJW5EmqNAd2l9+lOCME6ExQ0oNXCfVQY6kppiRou5niqQIT9CIDAwViBMV5LPsBTwxSgTjRJonNJypvzdyxJWa8tBMlhHVoleK/3mDTMeXQU5Fmmki8PxQnDGoE1gWASMqCdZsagjCkpqsEI+RRFibuuqmBHfxy8vEO2tftZ2782bnumqjBo7AMWgBF1yADrgFXeABDJ7AM3gFb1ZhvVjv1sd8dMWqdg7BH1ifPyGTlAw=</latexit> <latexit sha1_base64="Z+u0Yue3pS9TMvqDyVRY2E+Un5Q=">AAAB+nicbVBPS8MwHE39O+e/Oo9egkOYl9GKoN6GXjxOsG6wlpGm6RaWpCVJxVH6Vbx4UPHqJ/HmtzHdetDNB4HHe78fv5cXpowq7Tjf1srq2vrGZm2rvr2zu7dvHzQeVJJJTDycsET2Q6QIo4J4mmpG+qkkiIeM9MLJTen3HolUNBH3epqSgKORoDHFSBtpaDf8EeIctXyO9DiM86g4HdpNp+3MAJeJW5EmqNAd2l9+lOCME6ExQ0oNXCfVQY6kppiRou5niqQIT9CIDAwViBMV5LPsBTwxSgTjRJonNJypvzdyxJWa8tBMlhHVoleK/3mDTMeXQU5Fmmki8PxQnDGoE1gWASMqCdZsagjCkpqsEI+RRFibuuqmBHfxy8vEO2tftZ2782bnumqjBo7AMWgBF1yADrgFXeABDJ7AM3gFb1ZhvVjv1sd8dMWqdg7BH1ifPyGTlAw=</latexit> <latexit sha1_base64="PHtNjW6na207435B/B6JIWe5ANM=">AAAB7HicbVDLSgNBEOz1GeMr6tHLYBA8hV0R1FvQi8cIbhJIljA7mU3GzGOZmRXCkn/w4kHFqx/kzb9xkuxBEwsaiqpuurvilDNjff/bW1ldW9/YLG2Vt3d29/YrB4dNozJNaEgUV7odY0M5kzS0zHLaTjXFIua0FY9up37riWrDlHyw45RGAg8kSxjB1knNrmEDgXuVql/zZ0DLJChIFQo0epWvbl+RTFBpCcfGdAI/tVGOtWWE00m5mxmaYjLCA9pxVGJBTZTPrp2gU6f0UaK0K2nRTP09kWNhzFjErlNgOzSL3lT8z+tkNrmKcibTzFJJ5ouSjCOr0PR11GeaEsvHjmCimbsVkSHWmFgXUNmFECy+vEzC89p1zb+/qNZvijRKcAwncAYBXEId7qABIRB4hGd4hTdPeS/eu/cxb13xipkj+APv8wcIeY72</latexit> <latexit sha1_base64="PHtNjW6na207435B/B6JIWe5ANM=">AAAB7HicbVDLSgNBEOz1GeMr6tHLYBA8hV0R1FvQi8cIbhJIljA7mU3GzGOZmRXCkn/w4kHFqx/kzb9xkuxBEwsaiqpuurvilDNjff/bW1ldW9/YLG2Vt3d29/YrB4dNozJNaEgUV7odY0M5kzS0zHLaTjXFIua0FY9up37riWrDlHyw45RGAg8kSxjB1knNrmEDgXuVql/zZ0DLJChIFQo0epWvbl+RTFBpCcfGdAI/tVGOtWWE00m5mxmaYjLCA9pxVGJBTZTPrp2gU6f0UaK0K2nRTP09kWNhzFjErlNgOzSL3lT8z+tkNrmKcibTzFJJ5ouSjCOr0PR11GeaEsvHjmCimbsVkSHWmFgXUNmFECy+vEzC89p1zb+/qNZvijRKcAwncAYBXEId7qABIRB4hGd4hTdPeS/eu/cxb13xipkj+APv8wcIeY72</latexit> <latexit sha1_base64="PHtNjW6na207435B/B6JIWe5ANM=">AAAB7HicbVDLSgNBEOz1GeMr6tHLYBA8hV0R1FvQi8cIbhJIljA7mU3GzGOZmRXCkn/w4kHFqx/kzb9xkuxBEwsaiqpuurvilDNjff/bW1ldW9/YLG2Vt3d29/YrB4dNozJNaEgUV7odY0M5kzS0zHLaTjXFIua0FY9up37riWrDlHyw45RGAg8kSxjB1knNrmEDgXuVql/zZ0DLJChIFQo0epWvbl+RTFBpCcfGdAI/tVGOtWWE00m5mxmaYjLCA9pxVGJBTZTPrp2gU6f0UaK0K2nRTP09kWNhzFjErlNgOzSL3lT8z+tkNrmKcibTzFJJ5ouSjCOr0PR11GeaEsvHjmCimbsVkSHWmFgXUNmFECy+vEzC89p1zb+/qNZvijRKcAwncAYBXEId7qABIRB4hGd4hTdPeS/eu/cxb13xipkj+APv8wcIeY72</latexit> + + 60 256 256 256 256 256 256 256 256 60 24 256 128 6
  7. NeRFとは︖︓⼯夫点 š カメラの向き(視線の⽅向)は3次元単位ベクトルで表現 š 前スライドの説明では⼊⼒を3次元座標とカメラの向きを表す⾓度(θ, φ)として表現しているが、実装では3次 元の単位ベクトル d で表す š

    Positional Encoding š ニューラルネットワークが苦⼿とする⾼周波成分の学習のため、⾼次元にマッピングするPositional Encodingを 採⽤ γ 𝑝 = (sin 2!𝜋𝑝 , cos 2!𝜋𝑝 , ⋯ , sin(2"#$ 𝜋𝑝), cos(2"#$ 𝜋𝑝)) š 実装では、位置座標𝛾(𝑥)は60次元、カメラの向き𝛾 𝑑 は24次元のベクトルにエンコーディングしている š Hierarchical Volume Sampling š RGB合成のための直線上サンプリングで、何もない点をサンプリングしてもムダ š 「荒い」ネットワークと「緻密な」ネットワークを学習させ、荒いネットワークのサンプリング結果から、最適 なサンプリングの密度を計算して緻密なネットワークからサンプリングを⾏う 7
  8. Instant NeRFとは︖ 8

  9. Instant NeRFとは︖ 9 https://blogs.nvidia.com/blog/2022/03/25/instant-nerf-research-3d-ai/

  10. Instant NGPとは︖ š Instant Neural Graphics Primitives with a Multiresolution

    Hash Encoding š https://arxiv.org/abs/2201.05989 š ハッシュテーブルを使うことで、2次元あるいは3次元のグラフィック情報を圧縮エンコードし、 ニューラルネットワークでの処理やレンダリングを⾼速にする⼿法の提案 š MLPの⼊⼒サイズが⼩さくなることで計算量を削減 š エンコーディングの学習パラメータ数は多いが、更新は局所的なので計算量はさほど⼤きくない š NeRFだけでなく、Gigapixel Image Approximation、Signed Distance Functions、Neural Radiance Cachingにおいても効果を確認 š 実装はNVIDIA GPUに特化したCUDAおよびtiny-cuda-nnフレームワークを使⽤ 10
  11. Instant Neural Graphic Primitives の仕組み š NeRFの周波数(sin/cos)を使ったノンパラメトリックな位置エンコーディングの代わりに、複数 解像度での位置情報をハッシュテーブルのキーとして特徴量をマッピング、補間で得られた各解 像度の特徴量をMLPの⼊⼒とする 11

  12. Instant Neural Graphic Primitives の演算 š 各階層の解像度 š 𝑁! ≔

    N"#$ * 𝑏! š 𝑏 ≔ exp %& '!"#(%& '!$% )(* š ハッシュ関数の定義 š ℎ 𝕩 = 𝑑 ⊕ 𝑖 = 1 𝑥# 𝜋# 𝑚𝑜𝑑 𝑇 š ただし、⊕はbitwise XORで、𝜋# は𝜋* = 1を除き⼗分⼤きい素数 š ハッシュの衝突対策は⾏わない Fig. 3. Illustration of the multiresolution hash encoding in 2D. (1) for a given input c assign indices to their corners by hashing their integer coordinates. (2) for all resultin vectors from the hash tables \; and (3) linearly interpolate them according to the relat result of each level, as well as auxiliary inputs b 2 R⇢, producing the encoded MLP in gradients are backpropagated through the MLP (5), the concatenation (4), the linear in Table 1. Hash encoding parameters and their typical values. Only the hash table size ) and max. resolution #max need to be tuned to the use case. Parameter Symbol Value Number of levels ! 16 Max. entries per level (hash table size) ) [214, 224 ] Number of feature dimensions per entry 2 Coarsest resolution #min 16 Finest resolution #max [512, 524288] 3 MULTIRESOLUTION HASH ENCODING Given a fully connected neural network<(y; ), we are interested in an encoding of its inputs y = enc(x;\) that improves the approxima- tion quality and training speed across a wide range of applications without incurring a notable performance overhead. Our neural net- work not only has trainable weight parameters , but also trainable encoding parameters \. These are arranged into ! levels, each con- taining up to) feature vectors with dimensionality . Typical values b eac wh grid is 1 into no opt sub num bou W wh larg 12
  13. Instant NeRFを学習させてみる 13

  14. noVNCとは︖ š 私のNVIDIA GPU 搭載のLinuxマシンでは、ライブラリなどの互換性問題を避けるため、極⼒ Dockerで環境構築をしている š ただ、instant-ngpはGUIを含むツールであるため、デスクトップ環境が欲しい š Dockerでデスクトップ環境を使⽤する⽅法としてVNCが⼿っ取り早い

    š noVNCは、VNCポート(5900)を直接呼び出すVNCプロトコルクライアントの代わりにHTTP経 由でブラウザをクライアントとして使⽤できるのでさらに⼿っ取り早い š https://novnc.com/info.html 14
  15. 環境構築の⼿順 š はじめからnoVNCを使ったUbuntuのDocker環境の⽇本語版をベースにした š https://github.com/uphy/ubuntu-desktop-jp š NVIDIA CUDAを使⽤するため、上記のベースイメージを ubuntu:20.04からnvidia/cuda:11.2.2- devel-ubuntu20.04に変更

    š 上記のイメージをベースに、さらに下記のソフトウェアをインストール š cmakeの最新バージョン š Python3.7以降 š Instant-ngp š COLMAPの依存ライブラリ š Ceres Solver(⾮線形最⼩⼆乗法に対応した最適化ライブラリ) š COLMAP(カメラパラメータ推定SfM: Structure-from-Motionのツール) š ffmpeg(動画からのサンプリング⽤) 15
  16. データの準備 š COLMAPとは︖ š SfM (Structure-from-Motion), MVS(Multi-View Stereo)ツール š 動画または複数の静⽌画から3次元構造の復元を⾏うツール

    š NeRFの⼊⼒には、画像の他にカメラ座標と画⾓の情報が必要であるため、⼊⼒データからこうした情報を復元す るのに使⽤する š NeRFで使うデータセットでは、50枚から150枚程度の写真で、中⼼となる被写体が写っているものが望 ましいが、必ずしも360度をカバーするものでなくとも良い š 写真をimagesサブフォルダに格納した上で、Instant-ngpのリポジトリ中のPythonスクリプトを下記の ように実⾏する python [path-to-instant-ngp]/scripts/colmap2nerf.py –colmap_matcher exhaustive ¥ –-run_colmap –aabb_scale 16 š ビデオ⼊⼒の場合 python [path-to-instant-ngp]/scripts/colmap2nerf.py ==video_in path/to/videofile ¥ --video_fps 2 –-run_colmap –aabb_scale 16 16
  17. デモ 17

  18. まとめ š 2020年に発表されて話題になっていたNeRFをもう少し知りたいと思っていたところ、私の⼿持ち の環境でもつかえそうなInstant NGPというものをNVIDIAが発表したのを知り、動かしてみた。 š NVIDIAの紹介ビデオのような⾼品質の画像は⽣成できなかったが、NVIDIA GeForce RTX-2080 Ti

    (GPUメモリ11GB)の環境でも、独⾃のデータで学習させることができた。 š ⾼精細の画像⽣成には、データの質や、もう少し⼤きいGPUメモリなどが必要かもしれない。 š 多次元のデータを、限られたサイズでエンコードするInstant NGPの⼿法には、論⽂で紹介されて いる分野以外にも可能性を感じた。 š (おまけ)Docker上でも簡単にGUIがつかえるnoVNCは結構便利かもしれない。 18
  19. 参考 š 【論⽂5分まとめ】Multiresolution Hash Encoding š https://zenn.dev/takoroy/articles/d7bbb43ef12a2e š 三次元復元関連のツール紹介 š

    https://cyberagent.ai/blog/research/14861/ š 三次元空間のニューラルな表現とNeRF š https://blog.albert2005.co.jp/2020/05/08/nerf/ š 3D volumetric rendering with NeRF š https://keras.io/examples/vision/nerf/ š 数式を使わずにやさしく解説するNeRF: Neural Radiance Fields š https://techblog.leapmind.io/blog/introduction-to-nerf-without-math/ 19
  20. 追記 š ビルドに必要なDockerfile等をGitHub.comで公開しました。 š https://github.com/masa-ita/instant-ngp-on-docker š 発表時に使⽤していた⽇本語版UbuntuのnoVNCイメージはライセンスが不明だったため、下記 のリポジトリをベースとしました。 š docker-ubuntu-vnc-desktop

    š https://github.com/fcwu/docker-ubuntu-vnc-desktop 20