SMPL Stream Pipeline
Run with Docker Image
Setup SMPL Stream Service
Make sure that you have nvidia docker 2 installed. Then, download the docker image:
docker pull openxrlab/xrmocap_runtime:ubuntu1804_x64_cuda116_py38_torch1121_mmcv161_service
Clone the XRMoCap repo:
git clone https://github.com/openxrlab/xrmocap.git
Setup the XRMoCap SMPL stream service config under configs/modules/service/smpl_stream_service.py:
type = 'SMPLStreamService'
name = 'smpl_stream_service'
work_dir = f'temp/{name}'
body_model_dir = 'xrmocap_data/body_models'
device = 'cuda:0'
enable_bytes = True
enable_cors = True
port = 29091 # port to be exposed to the SMPLStreamPipeline
max_http_buffer_size = 128 * 1024 * 1024
Start the service with the startup script:
sh scripts/start_service_docker.sh configs/modules/service/smpl_stream_service.py
Run SMPL Stream Pipeline
Download the SMPLStreamPipeline docker image:
docker pull openxrlab/xrviewer_runtime:ubuntu1804_x64_py310_smpl_service
Setup the pipeline config under configs/smpl_stream_pipeline.cfg:
websocket_port=18835 # port to be exposed to the viewer
zmq_port=18836 # port that websocket server and pipeline used to communicate
websocket_server_ip='127.0.0.1' # ip address to be exposed to the viewer
smpl_stream_server_ip='127.0.0.1' # ip address of the smpl stream service on XRMoCap
smpl_stream_server_port=29091 # the smpl stream service exposed port
Run the pipeline with the config:
sudo sh scripts/run_smpl_stream_pipeline_docker.sh configs/smpl_stream_pipeline.cfg
From-scratch Setup
The SMPL stream service is integrated into XRMoCap. The installation guideline of XRMoCap can be found here. Notice that you need to download body models to xrmocap/xrmocap_data/body_models as described in Body Model Preparation. The SMPL stream service can be started using:
python tools/start_service.py --config_path configs/modules/service/smpl_stream_service.py
configs/modules/service/smpl_stream_service.py can be configured as described in Setup SMPL Stream Service.
Install the XRViewer:
# clone XRViewer
git clone https://github.com/openxrlab/xrviewer.git
# make sure that your working directory is XRViewer root
cd xrviewer/
# install XRViewer
pip install .
Start the pipeline:
python tools/run_smpl_stream_pipeline.py \
--websocket_port $websocket_port \
--zmq_port $zmq_port \
--websocket_server_ip $websocket_server_ip \
--smpl_stream_server_ip $smpl_stream_server_ip \
--smpl_stream_server_port $smpl_stream_server_port