[98712b]: / models / __pycache__ / sdfSampler.cpython-38.pyc

Download this file

43 lines (43 with data), 3.7 kB

U

wórfãã@s\dZddlZddlmmZddlZddlZddl	m
Z
ddlZddlZ
Gdd„dƒZdS)zq CSG Fusion and SDF Sampler.
The grid_global_samp is defined following GenSDF: https://arxiv.org/abs/2206.02780.
éN)ÚcKDTreecs,eZdZ‡fdd„Zdd„Zdd„Z‡ZS)Ú
SDFSamplercs¦tt|ƒ ¡t d¡|_tj |¡||_| d¡|_	|d|_
| |j	|||¡tdƒt 
tj |j	|j
¡¡}|d|_|d|_|jjdd|_td	ƒdS)
NÚcudaÚdata_dirú.ptzLoading data: ...Úquery_pointsÚquery_points_sdfrézLoad data: End)ÚsuperrÚ__init__ÚtorchÚdevicerÚ
set_deviceÚconfÚ
get_stringrÚnp_data_nameÚprocess_dataÚprintÚloadÚosÚpathÚjoinÚsampleÚ
sample_sdfÚshapeÚsample_points_num)ÚselfrÚdatanameÚcsg_sdf1Úcsg_sdf2ÚgpuÚ	prep_data©Ú	__class__©úcD:\OneDrivePersonal\OneDrive\Graduate\Paper\2024MICCAI\Paper\Code\RoCoSDF-main\models\sdfSampler.pyrs


zSDFSampler.__init__cCsNtj dd¡}tjj|jd|dd}|d|}|j|}|j|}||fS)Né
r	F)Úreplace)ÚnpÚrandomÚchoicerrr)rÚ
batch_sizeÚindex_coarseÚ
index_fineÚindexrrr$r$r%Ú
train_data$s

zSDFSampler.train_datacCsHtdƒdd„}ddd„}d}|d	d
dƒ}|dd
dƒ}	t ||	f¡}
t |
¡ |j¡ ¡}
|
t |
j	d¡d|…}t 
||ƒ||ƒ¡}d}
|}d}gd}}g}d}||krR|d7}t |j	ddf¡}t 
||ƒ||ƒ¡}|||
d}|||kdd…dfdd…f}|||kdd…dfdd…f}| |¡| |¡||j	d7}q¨|dkrltd|›dƒtj
|dd}tj
|dd}t |j	d¡d|…}||}||}tdƒtj ¡}tj | ¡ ¡ ¡¡|_tj tj ||¡d|¡tdƒt tj
||fddtj
||fdddœtj ||¡d¡tdƒdS)NzSample around SDF volume...cSs\tj|||d}tj|||d}tj|||d}t |||¡}t ttj|ƒ¡}| dd¡S)N)Únumrr	)r(ÚlinspaceÚmeshgridÚvstackÚmapÚravelÚswapaxes)ÚstartÚendr0ÚxÚyÚzÚgÚ	positionsr$r$r%Úgen_grid4sz)SDFSampler.process_data.<locals>.gen_gridr	rcSs8dt dtj|¡t ||dd|d¡S)Nr	é)r(ÚsqrtÚpirÚexp)ÚvalsÚsigmaÚmur$r$r%Úgaussian<sz)SDFSampler.process_data.<locals>.gaussiani@
gà¿gà?éxgð¿gð?g{®Gáz„?iðI)rDé2zWarning!! sampling iterated z times.)Údimz
Sampling DONEz.plyzSaving files...)rrrZDone)r	r)rr(ÚconcatenaterÚ
from_numpyÚtor
ÚfloatÚrandpermrÚmaxÚrandÚappendÚcatÚo3dÚgeometryÚ
PointCloudÚutilityÚVector3dVectorÚdetachÚcpuÚnumpyÚpointsÚioÚwrite_point_cloudrrrÚsave)rrrrrr>rFZgrid_global_sampÚdot5Údot10ÚgridZgrid_globalZgrid_global_sdfZgaussian_sigmaÚptsÚNZcur_ptsZcur_nZcur_sdfÚiZ
thresholdsÚ
sdf_valuesZwghtsZ	total_ptsZ	total_sdfÚindicesZgrid_surfaceZgrid_surface_sdfÚpcdr$r$r%r/sZ


  



þüzSDFSampler.process_data)Ú__name__Ú
__module__Ú__qualname__rr/rÚ
__classcell__r$r$r"r%rsr)Ú__doc__rÚtorch.nn.functionalÚnnÚ
functionalÚFrZr(rÚ
scipy.spatialrÚtrimeshÚopen3drSrr$r$r$r%Ú<module>s