Patent ID: 11935326
Assignee: SICHUAN UNIVERSITY
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 0:
1. A face recognition method based on an evolutionary convolutional neural network, comprising:
S1: generating N convolutional neural network structures by an indirect encoding approach according a variable-length encoding algorithm to obtain an initial population, and setting an iteration counter t=1 and a maximum number T of iterations;
S2: training each of first individuals in the initial population, performing a first fitness evaluation using face data, and selecting N parents according to a result of the first fitness evaluation;
S3: performing a crossover on the N parents by using a binary crossover algorithm to obtain N offspring, merging the N parents and the N offspring to form a mixed population, and performing a mutation operation on second individuals in the mixed population;
S4: performing a second fitness evaluation on the second individuals in the mixed population, and applying an environmental selection on the mixed population according to a result of the second fitness evaluation of the mixed population to select N third individuals from the mixed population;
S5: determining whether t is equal to T; when t is equal to T, turning to step S6; when t is not equal to T, using the N third individuals in step S4 as the N parents, incrementing the iteration counter t by one, and returning to step S3; and
S6: selecting an individual network with a first optimal fitness value from the N third individuals, and inputting a face image to be detected into the individual network with the first optimal fitness value to obtain a face recognition result;
wherein the step of generating the N convolutional neural network structures by the indirect encoding approach according to the variable-length encoding algorithm to obtain the initial population in step S1 comprises:
A1: setting a maximum number of convolutional layers to a, a maximum number of pooling layers to b, and a maximum number of fully-connected layers to c;
A2: using one convolutional layer of the convolutional layers as an input layer of a convolutional neural network structure of the N convolutional neural network structures, successively randomly adding the convolutional layers or the pooling layers behind the input layer, and setting a kernel size of the convolutional layers or a filter size of the pooling layers;
A3: determining whether a number of the convolutional layers is less than a and a number of the pooling layers is less than b, when the number of the convolutional layers is less than a and the number of the pooling layers is less than b, returning to step A2, when the number of the convolutional layers is equal to or greater than a or the number of the pooling layers is equal to or greater than b, turning to step A4;
A4: determining whether the number of the convolutional layers is a, when the number of the convolutional layers is a, adding the pooling layers until the number of the pooling layers reaches b, and setting the kernel size of the convolutional layers; when the number of the convolutional layers is not a, adding the convolutional layers until the number of the convolutional layers reaches a, and setting the filter size of the pooling layers;
A5: adding c+1 fully-connected layers connected in sequence, and inserting a batch normalization layer behind each of the convolutional layers;
A6: adding a dropout layer behind a last fully-connected layer of the c+1 fully-connected layers to obtain an initial convolutional neural network structure; and
A7: generating N initial convolutional neural network structures according to step A1 to step A6, and encoding the N initial convolutional neural network structures by the indirect encoding approach to obtain the initial population.