An tool can automatically generate wireless signal measurement and simultaneously train the deep learning models online.
Deep learning (DL) has been used for wireless signal analysis in many applications, e.g., indoor localization. By collecting measurement data of wireless signals from the environment, DL models can be trained to accurately predict the change of signal characteristics. However, constructing high-quality DL training data from a real experiment environment is often labor-intensive and time consuming, which is the biggest obstacle to applying the newest DL model to wireless network research. To address such issues, we present DeepWiSim, a ray-tracing-based wireless signal simulator that automates the DL process from data generation to model training and evaluation. The demonstration shows that DeepWiSim can efficiently generate high-quality simulated wireless signal measurement data and simultaneously train and evaluate the DL model.
git clone https://github.com/codelzz/DeepWiSim.git
- Download and Install the UnrealEngine Launcher.
- Open Unreal Engine Launcher and install UnrealEngine (>=4.26.2)
- Install required dependencies
pip install -r requirements.txt
-
Open DeepWiSim.uproject file
-
When start the project for the first time, UE4 will pop up a panel says "Missing DeepWiSim Modules" please click Yes to rebuild the project. (You might encouter Error say "DeepWiSim could not be compiled.", please refer to Troubles Shooting)
-
Click Build button to build the project
-
Click Play button to run the simulator
- In DeepWiSimPy (Source\DeepWiSimPy) directory run
python app.py
Run JupyterLab for Data Visualization
- In DeepWiSimPy directory run
jupyter lab
You can open the settings menu with the key <P>
.
-
Control Mode
, controls the behavior of our target character.IDEL
, the target character will remain in his current position.Constant
, the target character will walk with a constant path.Random
, the target character will walk randomly.
(Notice: the AI can only take control of the target when you are in GodMode. If you are manually controlling the target, you can press
<Tab>
switch back to GodMode and release the target control.) -
Frequency (GHz)
, control the frequency of the simulated wireless signal. It is set to 2.45 GHz by default as simulating Bluetooth beacon signal. -
Transmit Power (dBm)
, control the transmit power of the beacon -
DPI
, control the resolution of wireless sensor, increase DPI will increase the number of rays for simulating signal propagation. -
Ray-trace Distance (cm)
, controls how far the ray can reach. -
Ray-trace Depth (cm)
, controls the number of times the ray can be reflected.
DeepWiSim also provides a way to generate data manually. After the simulator starts, you can press <Tab>
to switch between GodMode
and PlayerMode
. In PlayerMode
you can control the target to travel around the area. The simulator will keep sending measurement results to the deep learning service.
In the settings.py (in Source\DeepWiSimPy) file, you can change the APP_CONFIG
settings.
preprocessed_csv_file
, specifies the output measurement result.checkpoint_path
, specifies where to store the deep learning model parameters.training_history
, specifies where to store the training log.training_epochs
, specifies how many epochs to run for the same dataset.data_size
, specifies the number of rows to use for construct the training dataset. The deep learning service will always use the lastdata_size
rows inpreprocessed_csv_file
for dataset construction.
- "DeepWiSim could not be compiled" when rebuilt the unreal project.
This error might cause by missing .NET Framework 4.8 SDK. Fix:
- Download and install Build Tools for Visual Studio 2019
- After installed, the visual stuido installer will open.
- Click "Individual components" on the top of navigation menu.
- Select .NET Framework 4.8 SDK and click install.
- After installed the SDK, please re-open the unreal project files and continue the setup.
- If you want to release UE4 control while running the simulator, you can press
<F8>
to eject and press the same key again to get back control.