## 3 Experiments
### Implementation Details  
In order to extract the appearance features in real time, we needed to train our network on the pedestrian re-identification dataset in advance. In this paper, we trained it on a public dataset, Market1501 [23]. Our network structure is shown in Table 1. In terms of width, we divided it into three parts as mentioned in Section 2.3. In terms of depth, we had a total of seven convolution blocks for the global part, and only four convolution blocks for the local part. These convolution blocks mainly refer to residual blocks in the wide residual network (ResNet) [26], which has the characteristics of smaller parameters and more efficient performance. In order to solve the vanishing gradient problem and ensure that the accuracy of the deep layer network is not lower than the shallow layer network, ResNet introduced a skip connection. By directly adding the output of the upper layer to lower layer, the output of the two layers could be identically mapped, which means it maintains the optimal accuracy of the network without any modification to the optimal features. After convoluting each region by different blocks, we got the relatively deep semantic information of the global region and the shallow semantic information of the two local regions. Then, we attached a full connection layer and a batch and L2 normalization layer to the network. By combining the 128-dimensional global feature with two 256-dimensional local features, we got a 640-dimensional appearance feature from the last layer. \begin{table}
\begin{tabular}{c c c c c} \hline \hline \multirow{2}{*}{**Layer**} & \multirow{2}{*}{**Output Size**} & \multicolumn{3}{c}{**Patch Size, Channel, Stride**} \\ \cline{3-5}  & & **Global** & **Local Cross** & **Local Horizontal** \\ \hline Conv1 & \(128\times 64\) & & & \([3\times 3,32]\times 2\) & \\ \hline \multirow{2}{*}{Conv2} & G: \(64\times 32\) & \multirow{2}{*}{\(3\times 3\) MP, S-2} & SL-4, 2x2 MP, S-1 & SL-4, 2x2 MP, S-1 \\ \cline{3-5}  & LC: \(64\times 32\) & & \([3\times 3,32]\times 2\) & \([3\times 3,32]\times 2\) & \([3\times 3,32]\times 2\) \\ \cline{3-5}  & LH: \(32\times 64\) & & \([3\times 3,32]\times 2\) & \([3\times 3,64]\), S-2 & \([3\times 3,64]\), S-2 \\ \hline \multirow{2}{*}{Conv3} & G: \(64\times 32\) & \multirow{2}{*}{\([3\times 3,32]\times 2\)} & \multirow{2}{*}{\([3\times 3,64]\)} & \multirow{2}{*}{\([3\times 3,64]\)} & \multirow{2}{*}{\([3\times 3,64]\)} \\  & LC: \(32\times 16\) & & & \([3\times 3,64]\) & \([3\times 3,64]\) \\ \hline \multirow{2}{*}{Conv4} & G: \(32\times 16\) & \multirow{2}{*}{\([3\times 3,64]\)} & \multirow{2}{*}{\([3\times 3,64]\times 2\)} & \multirow{2}{*}{\([3\times 3,64]\times 2\)} & \multirow{2}{*}{\([3\times 3,64]\times 2\)} \\  & LC: \(16\times 8\) & & \([3\times 3,64]\) & \(3\times 3\) MP, S-2 & \(3\times 3\) MP, S-2 \\ \hline \multirow{2}{*}{Conv5} & G: \(32\times 16\) & \multirow{2}{*}{\([3\times 3,64]\times 2\)} & \multirow{2}{*}{\([3\times 3,64]\times 2\)} & \multirow{2}{*}{\([3\times 3,64]\times 2\)} \\  & & & & \\ \hline \multirow{2}{*}{Conv6} & G: \(16\times 8\) & \([3\times 3,128]\), S-2 & \multirow{2}{*}{\([3\times 3,128]\)} & \multirow{2}{*}{\([3\times 3,128]\times 2\)} \\  & & & & \\ \hline \multirow{2}{*}{Fc} & \multirow{2}{*}{\(1\times 1\)} & \(16\times 8\) MP & CA-4, 16x8 MP & CA-4, 8x16 MP \\ \cline{3-5}  & & & & CA-3, \([1\times 1,640]\) \\ \hline \multirow{2}{*}{Batch and L2 normalization} & \multirow{2}{*}{\(1\times 1\)} & \multirow{2}{*}{\([1\times 1,640]\)} & \multirow{2}{*}{\([1\times 1,640]\)} \\ \cline{3-5}  & & & & \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Proposed appearance extracting structure. MP: Max-Pooling; S: Stride; SL: Slice; CA: Concatenation; G: Global; LC: Local Cross; LH: Local Horizontal. Our appearance feature extraction was implemented in Tensorflow [27] and tested on a PC with Intel core i7-7700 CPU, 16 GB RAM, and Nvidia GTX 1070 GPU, while our tracking part was implemented in Python and tested on the same PC.