mirror of
https://github.com/nerfstudio-project/nerfstudio.git
synced 2026-11-11 02:24:38 +08:00
155 lines
34 KiB
Plaintext
155 lines
34 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Ray Samplers"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import torch\n",
|
|
"from pyrad.cameras.rays import RayBundle\n",
|
|
"from pyrad.graphs.modules import ray_sampler\n",
|
|
"from matplotlib import pyplot as plt"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Spaced Samplers\n",
|
|
"\n",
|
|
"A basic sampler that spaces samples based on a predefined function."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"num_samples = 1000\n",
|
|
"near = 2\n",
|
|
"far = 5\n",
|
|
"train_stratified = False\n",
|
|
"\n",
|
|
"samplers = {\n",
|
|
" \"Uniform\": ray_sampler.UniformSampler,\n",
|
|
" \"Linear in Disparity\": ray_sampler.LinearDisparitySampler,\n",
|
|
" \"Square Root\": ray_sampler.SqrtSampler,\n",
|
|
" \"Log Sampler\": ray_sampler.LogSampler,\n",
|
|
"}\n",
|
|
"\n",
|
|
"for name, Sampler in samplers.items():\n",
|
|
" sampler = Sampler(num_samples=num_samples, train_stratified=train_stratified)\n",
|
|
"\n",
|
|
" ray_bundle = RayBundle(\n",
|
|
" origins=torch.ones([1, 3]),\n",
|
|
" directions=torch.ones([1, 3]),\n",
|
|
" pixel_area=torch.ones([1, 1]),\n",
|
|
" nears=torch.ones([1]) * near,\n",
|
|
" fars=torch.ones([1]) * far,\n",
|
|
" )\n",
|
|
"\n",
|
|
" samples = sampler.generate_ray_samples(ray_bundle)\n",
|
|
" samples.bin_starts.shape\n",
|
|
"\n",
|
|
" plt.hist(samples.bin_starts, alpha=0.5, bins=100)\n",
|
|
" plt.xlabel(\"Distance\")\n",
|
|
" plt.ylabel(\"# Samples\")\n",
|
|
" plt.title(name)\n",
|
|
" plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3.8.12 ('pyrad')",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.8.12"
|
|
},
|
|
"orig_nbformat": 4,
|
|
"vscode": {
|
|
"interpreter": {
|
|
"hash": "41f62990c6e03ccb48eec29860b83c64e20fcd45204ae5014afab6809cd6f1f1"
|
|
}
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|