NXP Semiconductors SLN-VIZNAS-IOT User Manual
Hide thumbs Also See for SLN-VIZNAS-IOT:
Table of Contents

Advertisement

Quick Links

NXP Semiconductors
User's Guide
MCU VIZNAS Solution User's Guide

TABLE OF CONTENTS

1
INTRODUCTION ............................................................................................................................................ 6
1.1
RT106F VISION CROSSOVER PROCESSOR OVERVIEW ...................................................................................... 6
1.2
2
GET STARTED WITH SLN-VIZNAS-IOT ............................................................................................................ 9
2.1
.................................................................................................................................................... 9
2.2
2.2.1
Access the Camera ............................................................................................................................... 10
2.2.2
Register a Face ..................................................................................................................................... 12
2.2.3
Liveness Detection and Anti-Spoofing .................................................................................................. 14
2.2.4
Connect to Serial CLI ............................................................................................................................ 16
2.2.5
Enable Verbose Mode .......................................................................................................................... 18
2.2.6
(Optional) Enable Low Power Mode .................................................................................................... 20
3
ADDITIONAL FEATURES .............................................................................................................................. 22
3.1
.................................................................................................................................................. 22
3.1.1
SW1 - Toggle GUI ................................................................................................................................ 23
3.1.2
SW2 - Manual Deregistration.............................................................................................................. 24
3.1.3
SW3 - Toggle IR/RGB Output .............................................................................................................. 26
3.1.4
SW4 - Manual Registration ................................................................................................................. 27
3.2
............................................................................................................................................ 29
3.2.1
List Available Commands ..................................................................................................................... 29
3.2.2
List All Registered Users ....................................................................................................................... 31
3.2.3
Manually Add Users ............................................................................................................................. 31
3.2.4
Manually Delete Users ......................................................................................................................... 32
3.2.5
Rename Users ...................................................................................................................................... 32
3.2.6
Verbose Mode ...................................................................................................................................... 32
3.2.7
Configure IR LED Brightness ................................................................................................................. 35
3.2.8
Configure White LED Brightness .......................................................................................................... 35
3.2.9
Print Version Information .................................................................................................................... 35
3.2.10
Save Users Through Resets ............................................................................................................. 36
3.2.11
Enable OTW (Over-the-Wire) Update Mode ................................................................................... 36
3.2.12
Reset the SLN-VIZNAS-IOT ............................................................................................................... 36
3.2.13
Configure Emotion Recognition ...................................................................................................... 37
3.2.14
Configure Liveness Detection .......................................................................................................... 38
1
...................................................................................................................................... 7
............................................................................................................................................ 9
SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020
Document Number: SLN-VIZNAS-IOT-UG
NXP Semiconductors
Rev. 1.1, 10/2020

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the SLN-VIZNAS-IOT and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Summary of Contents for NXP Semiconductors SLN-VIZNAS-IOT

  • Page 1: Table Of Contents

    MCU VIZNAS Solution User’s Guide TABLE OF CONTENTS INTRODUCTION ............................6 RT106F VISION CROSSOVER PROCESSOR OVERVIEW ..................6 ............................7 DDITIONAL ERIPHERALS GET STARTED WITH SLN-VIZNAS-IOT ......................9 ..............................9 ONTENTS ............................9 UNNING THE 2.2.1 Access the Camera ..........................10 2.2.2...
  • Page 2 AMERA 8: SLN-VIZNAS-IOT M ....................12 IGURE ANUAL EGISTRATION UTTON 9: R ..........................12 IGURE EGISTRATION IN ROGRESS 10: S ..........................13 IGURE UCCESSFUL EGISTRATION 11: R ............................13 IGURE EGISTRATION AILED SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 3 " C ......................39 IGURE DETECTION RESOLUTION VGA OMMAND 61: " " C ......................40 IGURE DETECTION RESOLUTION QVGA OMMAND 62: " " C ......................40 IGURE DISPLAY OUTPUT MODE IR OMMAND SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 4 OWER 3: V ........................18 ABLE ERBOSE ONFIGURATION ABLE 4: V ........................19 ABLE ERBOSE BBREVIATION ABLE 5: P ..........................22 ABLE UTTONS UNCTIONALITY 6: S ............................31 ABLE ERIAL OMMAND ABLE SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 5 ............................44 ABLE RGUMENTS 12: A ............................52 ABLE ONFIGURATIONS 13: R ............................ 62 ABLE EFERENCE OCUMENTS 14: A ........................63 ABLE BBREVIATIONS AND EFINITIONS 15: R ............................. 63 ABLE EVISION ISTORY SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 6: Introduction

    1 Introduction NXP’s MCU-based SLN-VIZNAS-IOT development kit provides OEMs with a fully integrated, self-contained, software and hardware solution. This includes the i.MX RT106F run-time library and pre-integrated machine learning face recognition algorithms, as well as all required drivers for peripherals, such as camera and memories.
  • Page 7: Additional Peripherals

    1.2 Additional Peripherals In addition to the i.MX RT106F, included in the kit are many additional peripherals essential to experiencing everything the SLN-VIZNAS-IOT kit has to offer. Many of these peripherals are shown in the figure below. Figure 1: SLN-VIZNAS-IOT Additional Peripherals Additionally, the SLN-VIZNAS-IOT kit comes with an IR+RGB Dual Camera Adapter like that shown below for use in secure applications.
  • Page 8 Recommended Computer Configuration The MCU SLN-VIZNAS-IOT SDK requires an up-to-date computer which runs the MCUXpresso IDE version 11.2. It also requires a terminal program to communicate with the device via USB. https://www.nxp.com/support/developer-resources/software-development- tools/mcuxpresso-software-and-tools/mcuxpresso-integrated-development- environment-ide:MCUXpresso-IDE Computer type OS version Terminal Apple...
  • Page 9: Get Started With Sln-Viznas-Iot

    2 Get Started with SLN-VIZNAS-IOT 2.1 Box Contents The SLN-VIZNAS-IOT kit arrives in a box alongside a printed Quick Start Guide and a USB-C Cable. Figure 3: SLN-VIZNAS-IOT Box Contents Please check your kit for damage or marks, and, if seen, please contact your NXP representative.
  • Page 10: Access The Camera

    2.2.1 Access the Camera NOTE: Camera enumeration is currently supported on Windows and Ubuntu. With the kit powered on and connected to your computer, the SLN-VIZNAS-IOT kit will automatically enumerate as both a serial device and USB camera device. To access the kit’s camera, open Camera if using Windows, or Cheese, if using Ubuntu.
  • Page 11: Figure 6: Sln-Viznas-Iot Camera Output In Camera App

    After opening the camera app, video coming directly from the kit will be shown in the app’s camera window: Figure 6: SLN-VIZNAS-IOT Camera Output in Camera App NOTE: The Windows Camera app has a “face finder” feature of its own, shown by the smaller blue box around the face in the above screenshot.
  • Page 12: Register A Face

    2.2.2 Register a Face To make full use of the face detection and recognition features of the SLN-VIZNAS-IOT, you must register a face. To begin registering a new face, press the Manual Registration button on the kit (SW4). Figure 8: SLN-VIZNAS-IOT Manual Registration Button Once pressed, a message indicating registration is taking place will appear at the top of the screen, and the bounding box around the user’s face will turn from blue to green.
  • Page 13: Figure 10: Successful Registration

    IR and RGB cameras by adjusting the pwm values for the IR and white LEDs. For more information, check Troubleshooting out the section near the end of this guide. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 14: Liveness Detection And Anti-Spoofing

    “save” command if they should be retained (see Save Users Through Resets). 2.2.3 Liveness Detection and Anti-Spoofing The SLN-VIZNAS-IOT comes with Liveness Detection and Anti-Spoofing turned ON by default, meaning that the system can discern between your actual face and a print- out/phone display picture of your face.
  • Page 15: Figure 14: Printed Picture Spoof Attack

    2.2.5 Enable Verbose Mode) while attempting to recognize the printed picture in Figure 14, we can see that the inference engine detects a face, but recognizes that the image captured by the IR camera is a “fake”/”spoofed” face. Figure 15: Fake Face Detected SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 16: Connect To Serial Cli

    Use the “help” command to display a list of all the available serial commands and their usage. We will be discussing a few of these commands in the upcoming sections. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 17: Figure 17: Serial Commands "Help" Menu

    "app_type <0|1|2|3|4>": 0 - Elock(light) 1 - Elock(heavy) 2 - Door access(light) 3 - Door access(heavy) 4 - Userid "low_power <on|off>": Turn low power mode on|off Figure 17: Serial Commands "Help" Menu SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 18: Enable Verbose Mode

    2.2.5 Enable Verbose Mode The SLN-VIZNAS-IOT kit supports debug message logging which provides important inference performance information, for example, the time it took to detect a user. Serial debug messages are disabled by default but can be enabled via a serial command.
  • Page 19: Figure 20: On-Screen Info For Registering Face

    (hence “rgbLive: 1”), the IR liveness check has not passed (hence “irLive: 0”). This would suggest that there may be an issue with the IR camera – likely a lighting issue. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 20: Optional) Enable Low Power Mode

    ~20s. A “recognition timeout” message like the one shown in Figure 22 will be displayed on screen as a warning that the SLN-VIZNAS-IOT will be entering sleep mode within the next 5 seconds.
  • Page 21: Figure 22: "Recognition Timeout" Message

    SW3 push button shown in the following figure: Figure 23: Hibernation Wake-up Trigger (SW3) Upon detecting the trigger, the SLN-VIZNAS-IOT will automatically wake up and begin running as normal. For more specifics on low power mode, check out Low Power Mode.
  • Page 22: Additional Features

    Table 5: Push Buttons Functionality 3.1 Push Buttons The SLN-VIZNAS-IOT kit makes use of on-board push buttons in order to give users easy access to some of the kit’s most useful features, like face registering and deregistering, and the ability to change between manual and automatic enrollment mode.
  • Page 23: Sw1 - Toggle Gui

    Figure 25: GUI Toggled Off NOTE: The behavior of this button is identical to that of the “display interface” serial command. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 24: Sw2 - Manual Deregistration

    To deregister a face, simply stare straight-on at the camera while aligning the face inside the bounding box for ~1-3 seconds and wait for a message confirming the removal of the user. Once deregistered, the number of registered users will be decremented by one. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 25: Figure 28: "Username Removed" Message

    (~5s). NOTE: The behavior of this button is identical to specifying the name of the user whose face is being captured by the camera as the argument to the “del USERNAME” command. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 26: Sw3 - Toggle Ir/Rgb Output

    SW3 push button can be used to toggle between the output coming from the IR and RGB cameras as shown in the following figure. Figure 31: SW3 The behavior of SW3 is identical to that of the “display output_mode <rgb|ir>” command. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 27: Sw4 - Manual Registration

    While registration is taking place, a “Registering” message will be shown. Figure 33: Registration in Progress NOTE: If pressing the button does not produce a ‘Registering’ message, ensure that the “base” board and “expansion” board are properly connected inside of the enclosure. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 28: Figure 34: Successful Registration

    Should your face fail to register properly, either due to the registration being canceled or timing out, a message like the following will be displayed: Figure 35: Registration Failed To retry, simply press the manual registration button again. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 29: Serial Commands

    3.2 Serial Commands In order to access the full suite of features that the SLN-VIZNAS-IOT has to offer, communication via serial is needed. Using serial, users can be added and deleted, the camera’s detection resolution can be configured, as well as several additional capabilities.
  • Page 30 < rgb | ir > ir camera is shown Configures the display output device to use either video display output_device < usb | riverdi > over USB or the Riverdi display. (Requires Riverdi display) SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 31: List All Registered Users

    USER_NAME.” After a few seconds, should the demo find a face, it will begin recording and saving a face, with success indicated by a green border around the newly registered face. SHELL>> add Cooper SHELL>> Start registering ‘Cooper’ Figure 38: "add Cooper" Command SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 32: Manually Delete Users

    Figure 42: "rename user_0 Cooper" Command 3.2.6 Verbose Mode The SLN-VIZNAS-IOT kit supports debug message logging which provides important inference performance information, for example, the time it took to detect a user. Serial debug messages are disabled by default but can be enabled via a serial command.
  • Page 33: Figure 44: Example Verbose Mode Debug Message

    In addition to debug logging over serial, enabling “verbose 3” will also display some useful on-screen information as well that can be helpful when troubleshooting registration/recognition issues. An example can be seen in the images below: SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 34: Figure 45: On-Screen Info For Registering Face

    RGB and IR liveness checks (hence “rgbLive: 1” and “irLive: 1”). NOTE: The “front face check” is only performed by the inference engine for faces being registered to ensure that no face gets registered that it is improperly angled towards the camera. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 35: Configure Ir Led Brightness

    Figure 49: "ir_pwm 60" Command 3.2.9 Print Version Information It can be useful to know which version of the SLN-VIZNAS-IOT inference engine is being run in order to know which features are currently supported. To determine the version number of the Oasis Lite inference engine being used by your kit, use the “version”...
  • Page 36: Save Users Through Resets

    The “save” command returns a success message along with the time taken in milliseconds to save all the faces into flash. 3.2.11 Enable OTW (Over-the-Wire) Update Mode OTW updates and enabling OTW Update Mode are discussed in the SLN-VIZNAS-IOT Developer’s Guide. 3.2.12 Reset the SLN-VIZNAS-IOT Situations can arise in which it is useful to reset the kit without needing to physically power cycle the kit.
  • Page 37: Configure Emotion Recognition

    3.2.13 Configure Emotion Recognition The SLN-VIZNAS-IOT kit supports emotion recognition in addition to face recognition. This feature comes disabled by default and needs to be enabled via serial commands. Once connected to the kit via serial, use the command “emotion 0”, “emotion 2”, “emotion 4”, or “emotion 7.”...
  • Page 38: Configure Liveness Detection

    Figure 56: "liveness off" command Figure 57: "liveness on" Command SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 39: Configure Detection Resolution

    3.2.15 Configure Detection Resolution The SLN-VIZNAS-IOT kit comes with both VGA and QVGA detection resolution settings*. By default, the kit runs in VGA mode. Although VGA takes more processing power which can slightly affect detection times, the higher resolution provided by VGA mode also allows for further roughly double detection/recognition range compared to using QVGA.
  • Page 40: Display Ir Output

    SHELL>> display output_mode rgb SHELL>> display rgb frame Figure 63: "display mode not supported" Message NOTE: This command will only change the camera being shown, not the camera(s) being used for detection and recognition. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 41: Configure Display Output Device (Requires Riverdi Display)

    The behavior of this command is identical to that of the SW1 push button. SHELL>> display interface loopback SHELL>> Interface changed with success Figure 66: "display interface loopback" Command Figure 67: GUI Toggled Off SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 42: Toggle Wi-Fi Enablement

    SHELL>> Wi-Fi will stop Figure 72: "Wi-Fi will stop" Message or a message indicating that the Wi-Fi is already off: SHELL>> wifi off SHELL>> Wi-Fi driver is off Figure 73: "Wi-Fi driver is off" Message SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 43: Reset Wi-Fi

    Failure to properly specify both an SSID and password will result in output like the following: SHELL>> wifi credentials test_ssid SHELL>> Wrong command for wi-fi credentials Figure 78: "wifi credentials" w/ Bad Arg SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 44: Retrieve Ip Address

    The arguments in the command correspond to the following app types: Number/Argument Corresponding App Type E-Lock (Light) E-Lock (Heavy) Door Access (Light) Door Access (Heavy) Userid Table 11: App Type Arguments SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 45: Configure Low Power Mode

    More information about low power mode can be found in the Low Power Mode section. 3.3 Remote (Wireless) Registration The SLN-VIZNAS-IOT supports the ability to register faces both locally by using either CLI commands or the on-board push buttons as described in earlier sections, but it also supports remote registration via BLE using an Android phone/tablet application.
  • Page 46: Connect Kits

    Simply press “Connect” next to the device you want to add in order to register the VIZNAS kit to your list of kits being managed. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 47 Android app, and the kit your phone/tablet is currently connected to will display a BLE icon indicating a connection is currently established with that SLN-VIZNAS-IOT kit. Additionally, users can connect/disconnect from a device using the BLE icon in the upper right-hand corner of the screen, and using a simple swipe gesture, an individual lock can be renamed or deleted entirely.
  • Page 48: Manage Users

    SLN-VIZNAS-IOT kit using an Android application. This includes the ability to add, list, and delete users from the SLN-VIZNAS-IOT’s local face database by providing 2-way synchronization. This section will give an overview of each of these features.
  • Page 49 Figure 91: Remote Face Capture Screen The “face capture” screen may provide instructional cues to help you properly align your face, etc. and will automatically return to the previous screen once your face has successfully been registered. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 50 Alternatively, individual users registered remotely but not yet synced with the kit can be synced by clicking the “sync icon” next to a user’s name. Figure 93: User List Screen SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 51: Remote Credential Provisioning

    Figure 94: Remote Deletion Screen 3.4 Remote Credential Provisioning In addition to the FaceRec Manager App, the SLN-VIZNAS-IOT also comes with a reference application for remote credential provisioning over Wi-Fi and BLE call the VIZN Companion App. This application allows users to remotely provide Wi-Fi credentials using an existing Wi-Fi connection or via BLE.
  • Page 52: App Configurations

    Choosing between the heavy and light model configurations comes down to a question of performance vs. # of users, and that is generally determined by the use-case. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 53: E-Lock Vs. Door Access Vs. Userid

    SLN-VIZN-IOT kit which is no longer in active circulation. Unlike the original SLN-VIZN-IOT kit, however, the remote registration and low power mode features of the SLN-VIZNAS-IOT are fully functioning in this version of the UserID application. For more information on the UserID app type, check out the User Guide for the SLN-VIZN- IOT.
  • Page 54: Low Power Mode

    Low power mode demonstrates the power saving capabilities of the RT106F chip, which can be useful in battery-powered applications like a battery-powered door lock. While low power mode is enabled, the SLN-VIZNAS-IOT kit will automatically go to sleep according to the rules in the following diagram:...
  • Page 55: Audio Feedback

    Triggering a wakeup will cause the board to return to normal operation. **NOTE: The PIR sensor as a wakeup trigger is currently disabled on the SLN-VIZNAS-IOT due to a manufacturing issue with the PIR sensor which causes unpredictable behavior when using the PIR sensor as a wakeup source.
  • Page 56: Display Configurations

    Figure 98: Riverdi RVT28UEFNWC10 NOTE: The SLN-VIZNAS-IOT features a SPI interface to connect a Serial display from Riverdi, which is supported by our Software Package. However, the MIMXRT106F also embeds a parallel display controller which a customer could enable on their own board by leveraging existing NXP drivers from the RT1060/RT1062 EVK package.
  • Page 57 To configure the display in use, simply specify either “usb” or “riverdi” as the argument to the “display output_device” command (see 3.2.17 Configure Display Output Device (Requires Riverdi Display)). SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 58: Troubleshooting

    For example, in the below screenshots we can see that the IR camera was falsely detecting a fake face. This is likely due to a lighting issue which is covered in the next section Ensure Lighting is Sufficient. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 59: Ensure Lighting Is Sufficient

    One of the most common issues when registering a face is insufficient lighting for the IR and/or RGB camera. Shown below are a few examples of insufficient lighting for the RGB and IR cameras: Figure 100: Bad RGB Lighting SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 60: Adjust Face Proximity And Position

    Oftentimes, an improper face angle and/or the proximity to the camera can cause registration to fail. Shown below are a few examples of improper usage. Figure 102: Improper Face Angle & Proximity SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 61 To help ensure the proper face angle is used, it can be helpful to slowly move the face from left to right and up to down. SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 62: Document Details

    Internet of Things Instruction Vector Table JTAG Joint Test Action Group MANF Manufacturer Microcontroller Unit MEMS Micro-Electro-Mechanical System Mass Storage Device Original Equipment Manufacturer Over the Wire One Time Programmable Read Only Memory SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 63: Revision History

    Table 14: Abbreviations and Definitions 5.3 Revision History Date Version Details of Change Author Reviewers Cooper 10/28/20 Production 1.1 Various Corrections Carnahan Cooper 9/29/20 Production 1.0 Initial Version Carnahan Table 15: Revision History SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...
  • Page 64 Arm11, big.LITTLE, CoreLink, CoreSight, DesignStart, Mali, Mbed, NEON, POP, Sensinode, Socrates, ULINK and Versatile are trademarks of Arm Limited (or its subsidiaries) in the EU and/or elsewhere. All rights reserved. © 2019 NXP B.V SLN-VIZNAS-IOT User Guide, Rev. 1.1, 10/2020 NXP Semiconductors...

Table of Contents