4.3.1. 3D-IWGAN

The 3D model of the pervious pavement microstructure is generated using GAN in the first part of our system (3D model generator). The network takes a 2D image as the input in the generator network. This 2D image is transformed into a 3D image by the deconvolutional neural network. From the generator, the image is delivered to the discriminator network and it is tested against the real sample image of the microstructure to check whether the generated 3D model is real or fake using the discriminator.

The 3D-IWGAN network architecture used for 3D microstructure reconstruction in module one consists of two independent networks, the generator *G* and discriminator *D*. A 400-dimensional latent vector with normal distribution serves as the input for the generator network. Figure 7 shows the architecture of the generator network.

The latent vector was generated using the VAE, whose architecture is identical to that of discriminator network in the 3D image generation of GAN. Figure 8 illustrates the architecture of the VAE. This input passes through a fully connected layer with 2048 nodes. After getting through the fully connected layer, it passes through four deconvolutional layers whose length of stride and kernel size are 1 and 5, respectively. The first three deconvolutional layers in the generator network have a batch normalization layer and use

the rectified linear unit (ReLU) as their activation function to address the vanishing gradient problem and promote sparse activations, while the fourth layer uses a hyperbolic tangent (tanh) as its activation function to make sure that our generating samples are in the range [−1, 1]. The output of the generator network is a 3D image of size 20 × 20 × 20 voxels.

**Figure 7.** Generator network. It takes a fixed-length 400-dimensional latent vector as the input and generates a sample in the domain.

**Figure 8.** VAE architecture.

The discriminator network D takes an input image of size 20 × 20 × 20 voxels. This input passes through four 3D convolutional layers, followed by a final fully connected layer. It is then condensed to a single value known as the discriminator output. The features of the architecture of the generator and discriminator networks are listed in Tables 3 and 4, respectively.

**Table 3.** Generator network architecture. The first three layers use ReLU activation functions and the last layer uses the Tanh activation function.



**Table 4.** Discriminator network architecture. All layers use the LeakyReLU activation function and no batch normalization is used.

### 4.3.2. Enhanced Gradient Penalty

Various types of gradient penalty are used to improve the convergence and stability of GAN training. One of the most commonly used gradient penalties is the one-centered gradient penalty [24], which is described as

$$\mathbb{E}\_{\mathbb{A}\sim p\_{\mathcal{X}}}[D(\hat{\mathfrak{x}})] - \mathbb{E}\_{\mathbb{x}\sim p\_{\mathcal{I}}}[D(\mathfrak{x})] + \lambda \mathbb{E}\_{\mathbb{A}\sim p\_{\mathcal{X}}}[\left(\left\|\nabla\_{\mathcal{X}}D(\hat{\mathfrak{x}})\right\|\_{2}\right)^{2}] \tag{4}$$

In this paper, we used an enhanced gradient penalty for our 3D-IWGAN system. The original 3D-IWGAN gradient penalty is being modified to enhance the training stability of our GAN. Its formal definition is as follows:

$$
\lambda \mathbb{E}\_{\mathbb{A}\sim p\_x} [ ( \| \nabla\_{\mathcal{X}} D(\mathfrak{X}) \|\_{2} - 1)^2 ] \tag{5}
$$

The gradient penalty used in this study is a form of zero-centered gradient penalty. In the zero-centered gradient penalty, we want to set the gradient to zero as the generator distribution (*pg*) approaches the target distribution (*pr*). When *pg* = *pr*, the gradient in connection to all datapoints on the line segmen<sup>t</sup> between a pair of real and fake samples should be zero.

### *4.4. Pavement Analysis*

In the final part of our system, we analyzed the physical properties of the microstructure, such as porosity and permeability, using the 3D model output from the model generator part. The pavement analysis comprised two sub-parts: (1) *PermSolver* and (2) *MorphAnalyzer*.

*PermSolver* is an open-source framework developed by NIST [37]. It takes a 3D image of the microstructure as the input, converts it into x-y-z velocity and pressure components, then solves the Stokes equation using a finite difference scheme. By solving this equation, we can ge<sup>t</sup> the computed permeability of the porous microstructure.

Other than permeability values, we can also calculate the hydraulic conductivity (*K*) with this equation:

$$K = k \frac{\rho \mathcal{g}}{\mu} \tag{6}$$

where *k* is the permeability value (from *Permsolver*), *ρ* is the density of fluid, *g* is the acceleration due to gravity, and *μ* is the dynamic viscosity of the fluid. In the following Section 5 the results of computing the hydraulic conductivity are described.

*MorphAnalyzer* is a tool that is used to compute the important characteristics of microstructure morphology. In our model we use three characteristics: porosity, specific area, and Euler characteristic. Porosity is calculated using the total number of pores based on the output of the 3D model reconstruction module. The specific area and Euler characteristic are obtained by using *ImageJ* [38]. The values extracted in this part are important in the investigation of the adsorption process and pore network connectivity of the permeable pavement microstructure.

### **5. Implementation and Evaluation**

In this section, we present the performance evaluation of our system.

### *5.1. Experimental Setup*

### 5.1.1. Hardware and Software

To evaluate the proposed system, we used one commodity machine. This machine is equipped with an Intel Xeon(R) CPU E5-2609 v4 @ 1.70 GHz x 16, with 64 GB memory, NVIDIA GeForce GTX 1060 6 GB, and runs on a 64-bit Ubuntu 16.04 operating system.

We implemented our approach in Python 2.7 using Tensorflow-GPU 1.2.1 performed with CUDA Toolkit 8.0 and cuDNN 6.0.
