# Designing Convolutional Neural Networks using Surrogate assisted Genetic Algorithm for Medical Image Classification

Muhammad Junaid Ali, Laurent Moalic, Mokhtar Essaid, Lhassane Idoumghar

<figure><img src="image_1.png" /></figure>

## ► To cite this version:

Muhammad Junaid Ali, Laurent Moalic, Mokhtar Essaid, Lhassane Idoumghar. Designing Convolutional Neural Networks using Surrogate assisted Genetic Algorithm for Medical Image Classification. Genetic and Evolutionary Computing Conference, Jul 2023, Lisbon (Portugal), Portugal. pp.173-186, 10.1145/3583133.359067. hal-04976943

HAL Id: hal-04976943

https://hal.science/hal-04976943v1

Submitted on 4 Mar 2025

HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Designing Convolutional Neural Networks using Surrogate assisted Genetic Algorithm for Medical Image Classification

Muhammad Junaid Ali
IRIMAS, UR7499,
University Haute Alsace
Mulhouse, France

Mokhtar Essaid
IRIMAS, UR7499,
University Haute Alsace
Mulhouse, France

Laurent Moalic
IRIMAS, UR7499,
University Haute Alsace
Mulhouse, France

Lhsanne Idoumghar
IRIMAS, UR7499,
University Haute Alsace
Mulhouse, France

## ABSTRACT

Recently, Deep Learning (DL) algorithms have shown state-of-the-art performance in numerous tasks. The design of DL algorithms is time-consuming process that requires expert-level knowledge. To overcome this problem, Neural Architecture Search (NAS) is proposed, which automatically searches for the best neural network architecture for a given task. Indeed, evolutionary NAS has emerged as a widely studied research area, in which evolutionary algorithms are used to design neural networks. In this study, we proposed a novel encoding scheme to represent Convolutional Neural Network (CNN) architectures using continuous representation, which provides a larger search space and potentially finds better solutions compared to discrete representations. Moreover, it allows better exploitation of genetic operators, leading to a quick convergence of individuals. Furthermore, in order to reduce the computational time of the evaluation phase during the search process, surrogate models are used to provide an alternative objective function. To evaluate the effectiveness of the proposal, experiments are performed on CIFAR-10 and multiple datasets from the MedMNIST benchmark. The experimental results demonstrated the effectiveness of the proposed approach compared to several existing state-of-the-art algorithms.

## CCS CONCEPTS

* Computing Methodologies; * Neural networks;

## KEYWORDS

Neural Architecture Search, AutoML, AutoDL, Deep Learning

## ACM Reference Format:

Muhammad Junaid Ali, Laurent Moalic, Mokhtar Essaid, and Lhsanne Idoumghar. 2023. Designing Convolutional Neural Networks using Surrogate assisted Genetic Algorithm for Medical Image Classification. In *Genetic*

and Evolutionary Computation Conference Companion (GECCO '23 Companion), July 15–19, 2023, Lisbon, Portugal. ACM, New York, NY, USA, 4 pages.
https://doi.org/10.1145/3583133.3590678

## 1 INTRODUCTION

Deep Learning (DL) algorithms have become popular due to their ability to automatically features extraction and learning using backpropagation. However, their implementation is difficult due to domain expertise and time. To overcome this, researchers have proposed Neural Architecture Search (NAS), which automatically searches for a suitable DL architecture using different optimization strategies. Reinforcement Learning (RL), Gradient-Based (GB) and evolutionary approaches are mostly used as an search strategy to design Deep Neural Networks (DNNs). Early NAS approaches used RL for designing DNNs [19], while Differentiable Architecture Search (DARTS) emerged as one of the most resilient GB approaches [5]. However, these approaches involve designing huge networks and a lot of time to search for a suitable architecture.

Evolutionary Approaches (EA) based NAS algorithms have been proposed to solve this problem. However, EA algorithms do not guarantee an optimal architecture due to their stochastic nature and the computational time. To reduce their search time, several performance estimation strategies have been proposed. Surrogate modeling is one of the famous performance estimation approach used in NAS. These surrogate-based approaches are trained on initialized network representations and their fitness values which use Machine Learning (ML) algorithms to estimate the fitness value of offspring to speed up the optimization process. They are often used as an evaluation process in evolutionary algorithms to predict the fitness of individuals in the population as approximation models. Solution representation for EA algorithms has been shown to have a serious impact on the performance of Evolutionary Neural Architecture Search (E-NAS). Studies have been conducted to determine the impact of different encoding schemes on the performance of NAS algorithms [16], [18].

NAS has been widely applied in different application domains such as Medical Image Analysis (MIA), image classification, time series prediction, multi-task learning, etc. In MIA, NAS is mostly applied to medical image classification and segmentation problems. Recent studies demonstrate the effectiveness of surrogate-based models in reducing the computational time of E-NAS for medical image segmentation problems [6] [1],[2]. Multiple surrogate-based

<footnote>Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the owner/author(s).
GECCO '23 Companion, July 15–19, 2023, Lisbon, Portugal
© 2023 Copyright held by the owner/author(s).
ACM ISBN 979-8-4007-0120-7/23/07...$15.00
https://doi.org/10.1145/3583133.3590678</footnote>
approaches have been proposed able to reduce the search time [14][7][6]. Surrogate models are a promising option to design Convolutional Neural Network (CNN) architectures for medical image classification problems.

Hence, this work proposes a surrogate-based approach for searching CNN architectures using Genetic Algorithm (GA) for medical image classification problem. We proposed an encoding scheme relying on a continuous representation of individuals. Moreover, the surrogate model is used to reduce the evaluation time. The proposed surrogate-assisted GA efficiently designed CNN architectures using only a single objective.

# 2 PROPOSED METHODOLOGY

## 2.1 Search Space

We used cell-based search space as several strong NAS approaches have adopted this representation. In this search space the architecture is divided into two types of cells, normal and reduction cells. The normal cell is used for processing the input features and keeps the same resolution as the feature map. In reduction cells, the resolution of feature maps is reduced using pooling, stride-2 convolution layer, or some dimensionality reduction operations.

The complete network is formed by stacking these cells. Each one consists of selection of several pre-defined operations. In this study, ten different operations are used as shown in Figure 1, which consists of 3 × 3 and 5 × 5 separable convolutions, 3 × 3 and 5 × 5 dilated convolutions, 3 × 3 max pooling, 7 × 1 × 1 × 7 convolution, Inverted Residual Network (IRN), and skip connections. IRN concept is introduced to reduce the residual network parameters. It uses skip connection to connect the data from a previous layers to the last layer. In IRN, the number of output channels obtained is equal to the number of input channels.

<figure><img src="image_3.png" /><figcaption>Figure 1: Visual mapping of a candidate gene with Convolution operation</figcaption></figure>

## 2.2 Proposed Gene Encoding Scheme

For the representation of CNN architecture, an encoding scheme based on the continuous representation was designed as shown in Figure 2, where each CNN operation is represented by a real number between 0 and 1. Moreover, each cell of the encoding scheme represents an operation (CNN block or pooling layer). The convolution operation represents different types of CNN operations as illustrated above. The connection to the node represents multiple

<figure><img src="image_4.png" /><figcaption>Figure 2: An example of proposed encoding scheme</figcaption></figure>

convolution operations. The mathematical formulation of the encoding $\tilde{A}$ and decoding $\tilde{D}$ of individuals is given as

$P_r$ = Random probability value for each candidate
$O_N$ = Total number of available network operations

$$ \begin{aligned} \tilde{A} &= [a_1, a_2, a_3, a_4, \dots, a_n] & \text{whereas} & a_i &= P_{ri} \quad 0 \le P_{ri} \le 1 \\ \tilde{D} &= [d_1, d_2, d_3, d_4, \dots, d_n] & \text{whereas} & d_i &= \text{Operations}[O_N \times a_i] \end{aligned} $$

## 2.3 Population initialization and individuals selection

For population initialization, Latent Hypercube Sampling (LHS) is applied to generate individuals randomly. It is a well-known method for generating near-random sampling values from a multi-dimensional distribution. The advantage of LHS is its capability of well distributing samples over the sample space.

For individuals selection, tournament selection method is used with tournament size of two. In this method, two individuals are randomly picked and compared based on their fitness scores. The individual with the higher fitness score is chosen, and the process is repeated to select another individual.

## 2.4 Offspring generation

The offspring generation phase is the core of the optimization process, as it can affect the final solution quality. We applied three different kind of crossover operators named one-point, two-point and uniform crossover. Two-point crossover shows best performance in our case. Apart from crossover, random swapping mutation operator is used in this study. During the crossover phase, two points on both parent chromosomes are randomly chosen and two offspring are generated, carrying the genetic information of both parents. For the mutation operator, a gene is randomly chosen and replaced by a random number between 0 and 1.

## 2.5 Evaluation of Fitness

For fitness evaluation, the networks are trained on the training dataset and evaluated on the validation set of the dataset. The error rate of the classifier on the valid set is used as the objective function. The surrogate model is used to approximate the fitness of offspring individuals. In this study, we trained the surrogate model on the genotype representations (encoding) of individuals and their evaluated fitness. 80% of the offspring's fitness value is predicted by the surrogate model and 20% off-springs fitness value is predicted manually by training them, and the surrogate model is retrained on these 20% individuals fitness values.

The motivation behind this idea is to improve the surrogate performance over the number of generations. Due to the important computational time required for training the CNN architectures, our objective is to reduce the time required for fitness evaluation during
the search time. Moreover, due to the continuous representation of individuals, the surrogate model can easily learn to differentiate the individuals, as ML algorithms have shown to be effective on continuous features.

# 3 EXPERIMENTAL RESULTS AND SETTINGS

## 3.1 Dataset details

We have used two different categories of datasets. One for the task of image classification and another for medical image classification. The CIFAR-10 dataset is used to evaluate the performance of image classification tasks, while MedMNIST is a medical images benchmark for Automatic Machine Learning (AutoML) algorithms which contains multiple datasets consisting of different modalities and organs. Five datasets are selected belonging to diverse tasks and having multiple classes for classification, including PathMNIST, OrganAMNIST, RetinaMNIST, DermaMNIST, and ChestMNIST. The authors of MedMNIST datasets have defined their datasets in train/val/test split. For CIFAR-10, training and validation set has been provided. We split the training set into train and validation set with 80:20 ratio.

## 3.2 Experimental Settings

To implement the proposal, Python with Pytorch framework was used to implement the DL algorithm. It is worth mentioning that the experiments are performed on Nvidia A100 GPU with 96GB RAM and Intel i10 processor for CIFAR-10 and NVIDIA RTX 1000 GPU with 96GB RAM and Intel i10 processor for MedMNIST datasets<fnref n="1" />. To evaluate the effectiveness of the proposal, experiments on CIFAR-10 dataset and medical datasets consisting of multiple modalities and organs with different parameter settings are performed and results on best set of parameters are reported.

## 3.3 Results on CIFAR-10 Dataset

The achieved results on the CIFAR 10 dataset in terms of the Top-1 error rate, number of parameters in millions, and searching time in GPU days are shown in Table 1. The proposed approach shows a clear advantage compared to handcrafted architectures in terms of classification error, the number of parameters, and search days in GPU. In comparison with single objective approaches, the proposed approach outperforms AE-CNN [15], CGPCNN [13] and Amoeba-Net [9]. However, Table 2 shows that our approach outperforms the Firefly algorithm, but with fewer parameters because we only set the number of layers to 8.

In comparison with multi-objective approaches the error-rate is somehow similar but the number of parameters of proposed approach are low as compared to NSGANET [8], In terms of NSGANET-V2 [7] the training of super-net takes lot of time which makes this approach very time consuming.

## 3.4 Results on MedMNIST Datasets

In Table 2, a detailed comparison of the proposed approach with different AutoML and DL algorithms on multiple instances from MedMNIST is shown. In terms of Area Under the Curve (AUC) and accuracy scores, the results reveal that the proposed method

performs better than the ResNet DL architecture for both resolutions. However, in comparison with AutoML approaches, Google AutoML vision performs slightly better in terms of AUC score for chestMNIST and accuracy for DermaMNIST. However, the proposed approach outperforms on most of the other datasets.

<table><caption>Table 1: Comparison on CIFAR-10 dataset of classification error rate, the number of parameters expressed in millions (1 × 10⁶), and GPU-days</caption><thead><tr><th>Model</th><th>Error-rate</th><th>Params</th><th>GPU-days</th><th>Method</th></tr></thead><tbody><tr><td>DenseNet [4]</td><td>4.1</td><td>7.0M</td><td>-</td><td>Handcrafted</td></tr><tr><td>VGG [12]</td><td>6.66</td><td>20.04M</td><td>-</td><td>Handcrafted</td></tr><tr><td>ResNet [3]</td><td>4.62</td><td>10.2M</td><td>-</td><td>Handcrafted</td></tr><tr><td colspan="5" style="text-align: center;">Single Objective</td></tr><tr><td>AE-CNN [15]</td><td>4.3</td><td>2.0M</td><td>27</td><td>Evolutionary</td></tr><tr><td>CGP-CNN [13]</td><td>5.92</td><td>1.5M</td><td>8</td><td>Evolutionary</td></tr><tr><td>FireFly [11]</td><td>3.3</td><td>3.21</td><td>-</td><td>Evolutionary</td></tr><tr><td>AmoebaNet-A [9]</td><td>3.34</td><td>3.2M</td><td>3150</td><td>Evolutionary</td></tr><tr><td>Large-Scale Evolution [10]</td><td>5.4</td><td>5.4</td><td>2750</td><td>Evolutionary</td></tr><tr><td colspan="5" style="text-align: center;">Multi Objectives</td></tr><tr><td>NSGANET [8]</td><td>3.85</td><td>3.3</td><td>8</td><td>Evolutionary</td></tr><tr><td>MOPSO [17]</td><td>4.49</td><td>-</td><td>24</td><td>Evolutionary</td></tr><tr><td>NSGANET-V2 [7]</td><td>1.6</td><td>2.2M</td><td>-</td><td>Evolutionary</td></tr><tr><td>Proposed</td><td>3.34 (4 &ne; 1.83)</td><td>0.67M</td><td>0.8</td><td>Evolutionary</td></tr></tbody></table>

## 3.5 Study of different surrogate Models

We used the Extreme Gradient Boosting (XGBoost) regressor as a surrogate model in our approach, which is chosen among three different regression models after experiments. To select the best model, we train 120 different randomly sampled architectures from the search space to get their fitness values. These surrogate models are then trained on randomly sampled 100 architectures and their fitness values. The training of these models took approximately 4 GPU days. For evaluation, the spearman coefficient<fnref n="2" /> between actual and predicted accuracy is computed on the test set consisting of 20 individuals. The comparison of spearman coefficient score of three different ML regression models is shown in Table 3.

All the experiments are performed on the same split dataset to have fair comparison. In each generation, the fitness values of 80% offspring individuals is predicted by surrogate models and 10% individuals fitness is computed by training the decoded individuals. The surrogate model is retrained in every generation on the fitness

<footnote n="1">¹The code for our paper can be found here</footnote>

<footnote n="2">²The Spearman correlation coefficient is a non-parametric measure of rank to find the statistical dependence of ranking between two variables.</footnote>
<table><caption>Table 2: Comparison in terms of AUC and Accuracy scores on MedMNIST benchmark datasets with different DL and AutoML approaches</caption><thead><tr><th rowspan="2">Methods</th><th colspan="2">PathMNIST</th><th colspan="2">ChestMNIST</th><th colspan="2">Dataset Name<br>DermaMNIST</th><th colspan="2">RetinaMNIST</th><th colspan="2">OrganAMNIST</th></tr><tr><th>AUC</th><th>ACC</th><th>AUC</th><th>ACC</th><th>AUC</th><th>ACC</th><th>AUC</th><th>ACC</th><th>AUC</th><th>ACC</th></tr></thead><tbody><tr><td>ResNet-18 (28)</td><td>0.983</td><td>0.907</td><td>0.768</td><td>0.947</td><td>0.917</td><td>0.735</td><td>0.717</td><td>0.524</td><td>0.997</td><td>0.935</td></tr><tr><td>ResNet-18 (224)</td><td>0.989</td><td>0.909</td><td>0.773</td><td>0.947</td><td>0.920</td><td>0.754</td><td>0.710</td><td>0.493</td><td>0.998</td><td>0.951</td></tr><tr><td>ResNet-50 (28)</td><td>0.990</td><td>0.911</td><td>0.769</td><td>0.947</td><td>0.913</td><td>0.735</td><td>0.726</td><td>0.528</td><td>0.997</td><td>0.935</td></tr><tr><td>ResNet-50 (224)</td><td>0.989</td><td>0.892</td><td>0.773</td><td>0.948</td><td>0.912</td><td>0.731</td><td>0.716</td><td>0.511</td><td>0.998</td><td>0.947</td></tr><tr><td>Auto-sklearn</td><td>0.934</td><td>0.716</td><td>0.649</td><td>0.779</td><td>0.902</td><td>0.719</td><td>0.690</td><td>0.515</td><td>0.963</td><td>0.762</td></tr><tr><td>AutoKeras</td><td>0.959</td><td>0.834</td><td>0.742</td><td>0.937</td><td>0.915</td><td>0.749</td><td>0.719</td><td>0.503</td><td>0.994</td><td>0.905</td></tr><tr><td>Google AutoML Vision</td><td>0.944</td><td>0.728</td><td><strong>0.778</strong></td><td>0.948</td><td>0.914</td><td><strong>0.768</strong></td><td>0.750</td><td>0.531</td><td>0.990</td><td>0.886</td></tr><tr><td>Proposed NAS Approach (28)</td><td><strong>0.997</strong></td><td><strong>0.945</strong></td><td>0.706</td><td><strong>0.949</strong></td><td><strong>0.924</strong></td><td>0.75</td><td><strong>0.77</strong></td><td><strong>0.532</strong></td><td><strong>0.999</strong></td><td><strong>0.960</strong></td></tr></tbody></table>

values of 10% decoded individuals to further improve the performance. The training of the surrogate models took 1 to 2 minute approximately and prediction took 0.1 minute per individual.

<table><caption>Table 3: Results of 3 different regressors trained with 120 samples gathered by running multiple experiments on CIFAR-10 dataset.</caption><thead><tr><td>Surrogate Model</td><td>Spearman Coefficient</td></tr></thead><tbody><tr><td>XG Boost</td><td>0.47 ± 0.06</td></tr><tr><td>Random Forest</td><td>0.27 ± 0.11</td></tr><tr><td>Decision Tree</td><td>0.21 ± 0.14</td></tr></tbody></table>

## 4 CONCLUSION

This study proposed an approach for designing CNN architectures using GA with continuous encoding scheme for the representation of individuals. Experiments on CIFAR-10 and MedMNIST datasets achieved competitive results compared to previous approaches and outperformed in medical image classification on MedMNIST benchmark datasets. A significant advantage of proposed encoding is that it can be easily used with different metaheuristics and multi-objective algorithms for variety of tasks.

## ACKNOWLEDGEMENT

This work was funded by ArtIC project "Artificial Intelligence for Care" (grant ANR-20-THIA-0006-01) and co-funded by IRIMAS Institute / Université de Haute Alsace.The authors would like to thank the Mesocentre of Strasbourg for providing access to the GPU cluster as well as the providers of all datasets used in this paper.

## REFERENCES

[1] Maria Baldeon Calisto and Susana K Lai-Yuen. 2021. EMONAS-Net: Efficient multiobjective neural architecture search using surrogate-assisted evolutionary algorithm for 3D medical image segmentation. *Artificial Intelligence in Medicine* 119 (2021), 102154.

[2] Truong Dang, Anh Vu Luong, Alan Wee Chung Liew, John McCall, and Tien Thanh Nguyen. 2022. Ensemble of deep learning models with surrogate-based optimization for medical image segmentation. In *2022 IEEE Congress on Evolutionary Computation (CEC)*. IEEE, 1–8.

[3] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. 2016. Deep residual learning for image recognition. In *Proceedings of the IEEE conference on computer vision and pattern recognition*. 770–778.

[4] Gao Huang, Zhuang Liu, Laurens Van Der Maaten, and Kilian Q Weinberger. 2017. Densely connected convolutional networks. In *Proceedings of the IEEE conference on computer vision and pattern recognition*. 4700–4708.

[5] Hanxiao Liu, Karen Simonyan, and Yiming Yang. 2018. Darts: Differentiable architecture search. *arXiv preprint arXiv:1806.09055* (2018).

[6] Shiqing Liu, Haoyu Zhang, and Yaochu Jin. 2022. A survey on surrogate-assisted efficient neural architecture search. *arXiv preprint arXiv:2206.01520* (2022).

[7] Zhichao Lu, Kalyanmoy Deb, Erik Goodman, Wolfgang Banzhaf, and Vishnu Naresh Boddeti. 2020. Nsganetv2: Evolutionary multi-objective surrogate-assisted neural architecture search. In *Computer Vision–ECCV 2020: 16th European Conference, Glasgow, UK, August 23–28, 2020, Proceedings, Part I 16*. Springer, 35–51.

[8] Zhichao Lu, Ian Whalen, Vishnu Boddeti, Yashesh Dhebar, Kalyanmoy Deb, Erik Goodman, and Wolfgang Banzhaf. 2019. Nsga-net: neural architecture search using multi-objective genetic algorithm. In *Proceedings of the genetic and evolutionary computation conference*. 419–427.

[9] Esteban Real, Alok Aggarwal, Yanping Huang, and Quoc V Le. 2019. Regularized evolution for image classifier architecture search. In *Proceedings of the aaai conference on artificial intelligence*, Vol. 33, 4780–4789.

[10] Esteban Real, Sherry Moore, Andrew Selle, Saurabh Saxena, Yutaka Leon Sümatsu, Jie Tan, Quoc V Le, and Alexey Kurakin. 2017. Large-scale evolution of image classifiers. In *International Conference on Machine Learning*. PMLR, 2902–2911.

[11] Ahmed I Sharaf and El-Sayed F Radwan. 2019. An automated approach for developing a convolutional neural network using a modified firefly algorithm for image classification. In *Applications of Firefly Algorithm and its Variants: Case Studies and New Developments*. Springer, 99–118.

[12] Karen Simonyan and Andrew Zisserman. 2014. Very deep convolutional networks for large-scale image recognition. *arXiv preprint arXiv:1409.1556* (2014).

[13] Masanori Suganuma, Masayuki Kobayashi, Shinichi Shirakawa, and Tomoharu Nagao. 2020. Evolution of deep convolutional neural networks using cartesian genetic programming. *Evolutionary computation* 28, 1 (2020), 141–163.

[14] Yanan Sun, Handing Wang, Bing Xue, Yaochu Jin, Gary G Yen, and Mengjie Zhang. 2019. Surrogate-assisted evolutionary deep learning using an end-to-end random forest-based performance predictor. *IEEE Transactions on Evolutionary Computation* 24, 2 (2019), 350–364.

[15] Yanan Sun, Bing Xue, Mengjie Zhang, and Gary G Yen. 2019. Completely automated CNN architecture design based on blocks. *IEEE transactions on neural networks and learning systems* 31, 4 (2019), 1242–1254.

[16] Gustavo-Adolfo Vargas-Hakim, Efrén Mezura-Montes, and Héctor-Gabriel Acosta-Mesa. 2021. A review on convolutional neural network encodings for neuroevolution. *IEEE Transactions on Evolutionary Computation* 26, 1 (2021), 12–27.

[17] Bin Wang, Bing Xue, and Mengjie Zhang. 2020. Particle swarm optimization for evolving deep convolutional neural networks for image classification: Single- and multi-objective approaches. *Deep Neural Evolution: Deep Learning with Evolutionary Computation* (2020), 155–184.

[18] Colin White, Willie Neiswanger, Sam Nolen, and Yash Savani. 2020. A study on encodings for neural architecture search. *Advances in Neural Information Processing Systems* 33 (2020), 20309–20319.

[19] Barret Zoph, Vijay Vasudevan, Jonathon Shlens, and Quoc V Le. 2018. Learning transferable architectures for scalable image recognition. In *Proceedings of the IEEE conference on computer vision and pattern recognition*. 8697–8710.