## 3 Results and Discussion  
### Dataset Description and Implementation Details  
Bearing ring samples are collected using an industrial camera in the flaw detection room of the bearing factory, which contains 519 images of crack defects. All these bearing rings have at least one crack on their surface and are located in various parts of the bearing rings. Training versus test analysis is used as the validation method of the detection algorithm [32]. All original images are divided into two groups: 419 for training the CNN model, 100 for testing. After we obtain several candidate regions, the improved MobileNetV3 model is used to distinguish whether they are defects. The input of binary classification of the CNN model is the crack defect candidate region from the original image, and the input size is 224 \(\times\) 224. To create the dataset for the training and evaluation of binary classification, patches of size 224 \(\times\) 224 are extracted from the 419 images of bearing rings. Patches that contain a crack or a part of a crack are labeled defective, and patches that do not contain any parts of a crack are considered background and labeled non-defective. We usually cut the regions in the original image that are easily mistaken for defects, such as the edge and groove of the workpiece, as shown in Figure 8.  
To solve the imbalance between classes in the dataset, data augmentation and image enhancement techniques are performed to enhance the quantity and variety of images given to the classifier for classification, such as horizontal flip, rotation, width shift, and height shift. The dataset consists of 2416 non-defective patches and 2420 defective patches. \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline
**Input/Pixel** & **Operator** &
\begin{tabular}{c} **Kernel** \\ **Size/Pixel** \\ \end{tabular} & **Out** & **Stride/Pixel** & **CA** & **NL** \\ \hline
224\({}^{2}\times 3\) & conv2d & - & 16 & 2 & - & h-swish \\
112\({}^{2}\times 16\) & bottleneck & \(3\times 3\) & 16 & 1 & - & ReLU \\
112\({}^{2}\times 16\) & bottleneck & \(3\times 3\) & 24 & 2 & - & ReLU \\
56\({}^{2}\times 24\) & bottleneck & \(3\times 3\) & 24 & 1 & - & ReLU \\
56\({}^{2}\times 24\) & bottleneck & \(5\times 5\) & 40 & 2 & \(\checkmark\) & ReLU \\
28\({}^{2}\times 40\) & bottleneck & \(5\times 5\) & 40 & 1 & \(\checkmark\) & ReLU \\
28\({}^{2}\times 40\) & bottleneck & \(3\times 3\) & 80 & 2 & - & h-swish \\
14\({}^{2}\times 80\) & bottleneck & \(3\times 3\) & 80 & 1 & - & h-swish \\
14\({}^{2}\times 80\) & bottleneck & \(3\times 3\) & 112 & 1 & \(\checkmark\) & h-swish \\
14\({}^{2}\times 112\) & bottleneck & \(3\times 3\) & 112 & 1 & \(\checkmark\) & h-swish \\
14\({}^{2}\times 112\) & bottleneck & \(5\times 5\) & 160 & 2 & \(\checkmark\) & h-swish \\
7\({}^{2}\times 160\) & bottleneck & \(5\times 5\) & 160 & 1 & \(\checkmark\) & h-swish \\
7\({}^{2}\times 160\) & conv2d & \(1\times 1\) & 960 & 1 & - & h-swish \\
7\({}^{2}\times 960\) & pool & \(7\times 7\) & - & 1 & - & - \\
1\({}^{2}\times 960\) & conv2d & \(1\times 1\) & 1280 & 1 & - & h-swish \\
1\({}^{2}\times 1280\) & conv2d & \(1\times 1\) & 2 & 1 & - & - \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Related operations and parameters of the improved MobileNetV3. We split the dataset in an 8:1:1 ratio; 80% of the total dataset is used for training, 10% is used for validation, while the remaining 10% is for the test, which is shown in Table 2.  
To test the proposed method, a 4.20 GHz Intel(R) Core (TM) i7-7700K CPU and 32 GB of memory are used. The graphics card is a GTX 1060 Nvidia, the computer runs under a Windows 10 system, and the detection program was developed in a Python 3.6 environment with packages PyTorch, NumPy, and OpenCV.