# Facial Expression Recognition — Part 1: Solution Pipeline on Ubuntu

Source: [https://docs.qualcomm.com/doc/80-63442-4/topic/facial-expression-recognition-part-1.html](https://docs.qualcomm.com/doc/80-63442-4/topic/facial-expression-recognition-part-1.html)

Pre-processing the data set, training the model and running inference on the
        desktop

Multiple techniques have been proposed for facial expression recognition (FER),
            technology designed to identify facial expressions like anger, disgust, fear, happiness,
            sadness, surprise and no emotion (neutral). Recognizing facial expressions has
            ramifications for business and society. Entertainment companies can use FER to [gauge audience reaction](https://techcrunch.com/2017/07/25/this-facial-recognition-system-tracks-how-youre-enjoying-a-movie/) in real time, and
            airport security has tested it for [biometrically verifying identity](https://www.tsa.gov/biometrics-technology).

The following describes the pipeline of one approach to FER, including tests on images of
            human faces bearing various expressions.

## Setting up

The data set contains the grayscale images of human faces sized at 48×48 pixels. The
                training set contains 35,888 examples with three columns:

- Pixels — contains space-separated pixel values for each image
- Usage — differentiates training and test images
- Emotion — consists of numeric value from 0 to 6, where 0=Angry, 1=Disgust,
                    2=Fear, 3=Happy, 4=Sad, 5=Surprise, 6=Neutral

[Here is the project hierarchy:](https://github.com/globaledgesoft/on-device-facial-experssion-recognition/tree/master/board-application)  
![](data:image/png;base64,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)

## Loading the data set

[pandas](https://pandas.pydata.org/),
                a python library with powerful data structures for data manipulation, makes it
                easier to read the CSV file and store it as training data and test data.

    df = pd.read_csv('fer 2013.csv')
    train_data = df[df['Usage'] == 'Training'].copy()
    test_data = df[df['Usage'] == 'PublicTest'].copy()
    train_data['pixels'] = train_data['pixels'].apply(lambda \ m:np.asarray(m.split(' '), dtype='float32'))
    test_data['pixels'] = test_data['pixels'].map(lambda \ m:np.asarray(m.split(' ')))Copy to clipboard

## Pre-processing the data set

The FerHelper class is used for formatting the data set for the model. The class has
                three methods:

- set\_up\_images() – Converts the image data as 48x48 NumPy array
- one\_hot\_encode() – Used for one-hot encoding of input image labels
- next\_batch() – Used during training of model when images are fed to the model in
                    batches

    class FerHelper():
    def __init__(self):
       self.i = 0
       self.train_images = None
       self.train_labels = None
       self.test_images = None
       self.test_labels = None
    def one_hot_encode(vec, vals=7):
        n = len(vec)
        out = np.zeros((n, vals))
        out[range(n), vec] = 1
        return out
    def set_up_images(self, train, test):
       print ('setting up training images and labels')
       j = 0
       self.train_images = np.zeros((len(train), 48, 48))
       for pixels in train_data['pixels']:
        self.train_images[j] = pixels.reshape(48, 48)
        j += 1
       self.train_images = self.train_images.reshape((len(train), \
    48,48,1))
       self.train_images = self.train_images.astype('float32') / 255
       self.train_labels = one_hot_encode(train_data['emotion'].values)
       print ('setting up testing images and labels')
       k = 0
       self.test_images = np.zeros((len(test), 48, 48))
       for test_pixels in test_data['pixels']:
        self.test_images[k] = test_pixels.reshape((48, 48))
        k += 1
       self.test_images = np.expand_dims(self.test_images, 3)
       self.test_images = self.test_images.astype('float32') / 255
       self.test_labels = one_hot_encode(test_data['emotion'].values)
    def next_batch(self, batch_size):
       batch_size = self.train_images[self.i:self.i + \
    batch_size].shape[0]
       x = self.train_images[self.i:self.i + \
    batch_size].reshape(batch_size, 48, 48, 1)
       y = self.train_labels[self.i:self.i + batch_size]
       self.i = (self.i + batch_size) % len(self.train_images)
       return x, yCopy to clipboard

## Architecture of the CNN model

The model is trained using the TensorFlow framework. The architecture for training
                the FER data set to classify emotions is as follows:  
![](data:image/png;base64,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dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICBleGlmOlBpeGVsWERpbWVuc2lvbj0iNzIzIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iNTM2IgogICB0aWZmOkltYWdlV2lkdGg9IjcyMyIKICAgdGlmZjpJbWFnZUhlaWdodD0iNTM2IgogICB0aWZmOk9yaWVudGF0aW9uPSIxIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4=)

In the following code, the method neural\_network\_model() defines the model
                architecture. The model accepts the input image of size 48×48 and returns a 1×7
                array of output with the probabilities of each class. accepts the input image of
                size 48×48 and returns a 1×7 array of output with the probabilities of each
                class.

    def neural_network_model(input_x):
        # convolutional layer 1
        with tf.name_scope('conv_layer1'):
         output_conv1 = tf.layers.conv2d(
          inputs=input_x,
          filters=32,
          kernel_size=[3, 3],
          padding="same",
          activation=tf.nn.relu)
        with tf.name_scope('maxpool_at_layer1'):
         output_maxpool1 = tf.layers.max_pooling2d(inputs=output_conv1, \
        pool_size=[2, 2], strides=2)
        # convolutional layer 2
        with tf.name_scope('conv_layer2'):
         output_conv2 = tf.layers.conv2d(
          inputs=output_maxpool1,
          filters=64,
          kernel_size=[3, 3],
          padding="same",
          activation=tf.nn.relu)
        with tf.name_scope('maxpool_at_layer2'):
         output_maxpool2 = tf.layers.max_pooling2d(inputs=output_conv2, \
        pool_size=[2, 2], strides=2)
        # convolutional layer 3
        with tf.name_scope('conv_layer3'):
         output_conv3 = tf.layers.conv2d(
          inputs=output_maxpool2,
          filters=64,
          kernel_size=[3, 3],
          padding="same",
          activation=tf.nn.relu)
        with tf.name_scope('maxpool_at_layer3'):
         output_maxpool3 = tf.layers.max_pooling2d(inputs=output_conv3, \
        pool_size=[2, 2], strides=2)
        # flattening
        with tf.name_scope('flattened'):
         flatten_conv = tf.reshape(output_maxpool3, [-1, 6 * 6 * 64])
        # Processing at fc1
        with tf.name_scope('Fc1'):
         activated_output_fc1 = tf.layers.dense(inputs=flatten_conv, \
        units=1024, activation=tf.nn.relu)
        with tf.name_scope('FC2'):
         activated_output_fc2 = tf.layers.dense(inputs= \
        activated_output_fc1, units=7, activation=tf.nn.softmax)
        return activated_output_fc2Copy to clipboard

## Training the model

The following code trains the model for 100 epochs and saves the model’s checkpoints.
                At every epoch it has three files with .meta, .data and .index extensions.

    def build_and_train_model(x, train_data, test_data):
        pred_res = neural_network_model(x)
        saver = tf.train.Saver()
        train_len = len(train_data)
        batch_size = 64
        # before tf.session, run these two lines
        ch = FerHelper()
        ch.set_up_images(train_data, test_data)
    
        with tf.name_scope("cross_entropy"):
         cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits \
        (logits=pred_res, labels=y_true))
         print ('in cross_entropy')
        with tf.name_scope('optimizer'):
         optimizer = tf.train.AdamOptimizer(3e-4).minimize(cross_entropy)
         print('in optimizer')
        with tf.name_scope('truth_table_bool'):
         truth_table_bool= tf.equal(tf.argmax(pred_res, 1), tf.argmax(y_true, 1));
        with tf.name_scope('truth_table_int'):
         truth_table_int = tf.cast(truth_table_bool, tf.float32)
        with tf.name_scope('correct_preds'):
         correct_preds = tf.reduce_mean(truth_table_int)
        epoch = 100
        steps = int(train_len / batch_size)
        with tf.Session() as sess:
         writer = tf.summary.FileWriter('./board-logs/', sess.graph)
         sess.run(tf.global_variables_initializer())
         for ep in range(1, epoch + 1):
          for step in range(1, steps):
           if (step%100 == 0):
            print ('Epoch : {}/{}, Step {}/{}'.format(ep, epoch, step, steps))
            batch = ch.next_batch(batch_size)
            sess.run(optimizer, feed_dict={x: batch[0], y_true: batch[1]})
          acc_result = sess.run(correct_preds, feed_dict={x: ch.test_images, \
         y_true: ch.test_labels})
          model_title = './checkpoints/fer-model-' + str(ep)
          saver.save(sess, model_title)
          tf.train.write_graph(sess.graph.as_graph_def(), '.', model_title + \
         '.pbtxt', as_text=True)
          print('At epoch : {} \tAccuracy on test-set is : {}'.format (ep, \ acc_result))
         writer.close()Copy to clipboard

The output to screen shows that the model gives ~56% accuracy on the validation set
                during training.  
![](data:image/png;base64,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UuEnkiHyekr5NVnZ+2pv4JPehQho1TcNet+J53g/oXYuEBfQqgAaI2KMWt0PObTi17ehZfZWR4syuY3apwaR0tc+0v9S48BuRxmZzLWm1AskVKXCTyRD5IZjya541fCDsWzpgh++qoiYOzzy+Pd95mH4mQbhF5qRNSR+rEVYSUZgAAAASUkqAAgAAAADABIBAwABAAAAAQAAADEBAgAQAAAAMgAAAGmHBAABAAAAQgAAAAAAAABTaG90d2VsbCAwLjIyLjAAAgACoAkAAQAAABsFAAADoAkAAQAAAMEBAAAAAAAAWE1QIPIJAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICBleGlmOlBpeGVsWERpbWVuc2lvbj0iMTMwNyIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjQ0OSIKICAgdGlmZjpJbWFnZVdpZHRoPSIxMzA3IgogICB0aWZmOkltYWdlSGVpZ2h0PSI0NDkiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiLz4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pg==)

## Converting the model to DLC

As described above, the Qualcomm Neural Processing SDK for AI includes a [snpe-tensorflow-to-dlc](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2/tools.html#snpe-tensorflow-to-dlc) tool for converting
                the .meta file to the deep learning container (DLC) format required by the SDK. Run
                the tool from the directory containing the .meta file, and use the following input
                arguments:

- Input Layer name: x
- Input Shape: 1, 48, 48, 1
- Output Layer name: truth\_table\_bool/ArgMax

That is:

    $ snpe-tensorflow-to-dlc -- graph fer-model-100.meta -i x 1,48,48,1 -- out_node truth_table_bool/ArgMax -- dlc fer.dlcCopy to clipboard

The resulting fer.dlc file is in the format required by the SDK.

## Running inference on Ubuntu using the Qualcomm Neural Processing SDK for
                AI

The SDK requires the NumPy array, which is stored in raw form as an input for running
                inference against a model. The following code generates the pre-processed array as
                raw-file.txt:

    import numpy as np
    import cv2
    from os import listdir
    from os.path import isfile, join
    
    myInputPath = './data/input/'
    myOutputPath = './data/raw-images/'
    
    allImages=[f for f in listdir(myInputPath) if isfile(join(myInputPath, f))]
    raw_images = []
    
    for i in allImages:
        ifile = myInputPath+i
        ofile = myOutputPath + ifile.split('/')[-1].split('.')[0] + '.raw'
        raw_images.append(ofile.split('/')[-1])
    
        img = cv2.imread(ifile, 0)
        img = cv2.resize(img, (48, 48))
    
        np_arr = np.array(img).astype('float32')
        np_arr.tofile(ofile)
    
    with open(myOutputPath+"raw-file.txt", "w") as myfile:
        for rimg in raw_images:
         myfile.write(myOutputPath+rimg+'\n')Copy to clipboard

Run the following command from the base location of the .dlc file:

    $ snpe-net-run - - container fer.dlc - -input_list ./data/raw-images/raw-file.txtCopy to clipboard

That generates an output folder in which the results are stored. It contains the
                output tensor data of 7 probabilities for 7 categories (emotions).

## Displaying the results

The SDK includes a [show_inceptionv3_classifications.py](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2/tutorial_inceptionv3.html) script
                to check the results from classifying the content of the output folder generated in
                the previous step. Modify show\_inceptionv3\_classifications.py script as follows:

- Update the number of labels field, which states the total number of facial
                    expressions classified by your model (e.g., for 7 different expressions, number
                    of labels = 7)
- Update the path of cur\_results\_file to your snpe-net-run results folder.
- Save the script.

Now, run the script from the base location of the .dlc file to generate an output
                label-file

    $ python $SNPE_ROOT/models/inception_v3/scripts/ show_inceptionv3_classifications.py -i ./data/raw-images/raw-file.txt -o output -l ./data/label-file.txtCopy to clipboard

where raw-file.txt contains the path to raw images and label-file.txt contains the
                labels of the model.

This is an example of typical output:  
![](data:image/png;base64,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)

**Parent Topic:** [Vision-based AI Use Cases](https://docs.qualcomm.com/doc/80-63442-4/topic/vision-based-ai-use-cases.html)

Last Published: Jun 24, 2024

[Previous Topic
Facial Keypoint Detection](https://docs.qualcomm.com/bundle/publicresource/80-63442-4/topics/facial-keypoint-detection.md) [Next Topic
Facial Expression Recognition — Part 2: Solution Pipeline on Android](https://docs.qualcomm.com/bundle/publicresource/80-63442-4/topics/facial-expression-recognition-part-2.md)