Introduction: DragonWally (PEOPLE IDENTIFICATION SYSTEM BASED ON STEREOSCOPIC COMPUTER VISION)

PEOPLE IDENTIFICATION SYSTEM BASED ON STEREOSCOPIC COMPUTER VISION

The main objective of this instruction is to show the guidelines for replicating the firmware of the DragonWally project.

This is the latest "snapshot" of the DragonWally firmware, used during the contest "Inventando o Futuro com DragonBoard 410c" ("Inventing the Future with DragonBoard 410c") organized by Embarcados and Qualcomm.

http://www.96boards.org/go/db410c-partnership-brazil/

Please, refer to the following URL for the DragonWally project details :

https://contest.embarcados.com.br/projetos/sistema-de-identificacao-de-pessoas-baseado-em-visao-computacional-estereoscopica/

DragonWally GitHub repository:

https://github.com/cezmen/dragonwally

The following 8 steps will direct the user through the command lines that must be executed in a Linux Terminal window in order the complete the replication of the DragonWally firmware.

Step 1: INSTALLATION

The user must choose an [install_dir] directory of the DragonBoard 410c.

To install the DragonWally firmware, run the following commands (in a LXTerminal Window of the Debian) :

mkdir [install_dir]

cd [install_dir]

git clone https://github.com/cezmen/dragonwally/

cd dragonwally

tar -xvzf dragonwally-1.0.tar.gz

Step 2: ​DIRECTORY STRUCTURE DESCRIPTION

After the dragonwally-1.0.tar.gz file decompression, the user will find the following sub-directories :

DragonWally Sensor : [install_dir]/dragonwally/dw/dragonwallysensor

DragonWally Admin : [install_dir]/dragonwally/dw/dragonwallyadmin

Utility Scripts : [install_dir]/dragonwally/dw/utils

Step 3: MAIN SCRIPTS DESCRIPTION

The main scripts of the project are listed below:

ACTIVATE CAMERAS : [install_dir]/dragonwally/dw/utils/activate_two_cameras.sh

RUN DRAGONWALLY SENSOR : [install_dir]/dragonwally/dw/dragonwallysensor/run_sensor.sh

RUN DRAGONWALLY API : [install_dir]/dragonwally/dw/dragonwallyadmin/DragonWallyAPI/run_api.sh

Step 4: HARDWARE REQUIREMENTS

The following hardware parts are required for successfully running the DragonWally firmware :

[4.1] DragonBoard 410c Kit (The DragonBoard 410c SBC, HDMI display, Keyboard and Mouse)

https://www.arrow.com/en/products/dragonboard410c/arrow-development-tools

[4.2] AIStarVision MIPI Adapter 2.0 with dual OV5645 Cameras

http://www.96boards.org/product/mipi-adapter-mezzanine/
https://github.com/Kevin-WSCU/96Boards-Camera

[4.3] Logitech C270 Webcam

https://www.logitech.com/product/hd-webcam-c270

Step 5: SOFTWARE REQUIREMENTS

The DragonWally firmware also requires an specific software configuration, described below. These are pretty standard guidelines for installing the Operating System in the DragonBoard 410c:

[5.1] Operating System : Linaro Debian 16.09

http://builds.96boards.org/releases/dragonboard410c/linaro/debian/16.09/

[5.2] AIStarVision Custom Boot Image for Dual Cameras

https://github.com/Kevin-WSCU/96Boards-Camera/tree/master/Pre-built/Debian_16.09/StereoCamera/OV5645

Using the "Fastboot Method", the user must replace the original "boot image" of Linaro Debian 16.09 with the "boot-db410c.img" file provided in the link above.

Instructions of the "Fastboot Method" :

http://www.96boards.org/documentation/ConsumerEdition/DragonBoard-410c/Installation/README.md

Step 6: AMAZON AWS CLOUD REQUIREMENTS

The project depends on some Amazon AWS services (Rekognition and Polly). The user must have an Amazon AWS account and valid credentials ("access key" and "secret access key"):

[6.1] Install AWS Python packages:

pip install awscli --upgrade --user

sudo apt-get install awscli


[6.2] Configure Amazon AWS Credentials:

The user must input an "access_key" and a "secret access key" provided by Amazon AWS.

aws configure

AWS Access Key ID [None]: [access_key_provided_by_user]

AWS Secret Access Key [None]: [secret_access_key_provided_by_user]

Default region name [None]: us-east-1

Default output format [None]: json


[6.3] Install AWS SDK for Python:

pip install boto3

Step 7: INSTALL THE FRONTEND

The following commands will install the dependencies and packages of the DragonWally web Front-end:

sudo pip install Flask

sudo pip install -U flask-cors

sudo apt-get install lighttpd

sudo service lighttpd start

sudo cp -r [install_dir]/dragonwally/dw/dragonwallyadmin/DragonWallyFront/* /var/www/html/

sudo rm /var/www/html/index.lighttpd.html

sudo service lighttpd restart

Step 8: RUN DRAGONWALLY

At this point, both hardware and software should be ready to go. The DragonWally firmware expects the find 3 cameras available (with indexes 0,1 and 3) :

MIPI-CSI Camera 1 (OV5645) : Index 0 (device /dev/video0)

MIPI-CSI Camera 2 (OV5645) : Index 1 (device /dev/video1)

WEBCAM (Logitech C270) : Index 3

The following three commands will start the DragonWally firmware:

[8.1] Activate Cameras

[install_dir]/dragonwally/dw/utils/activate_two_cameras.sh


[8.2] Run DragonWally Sensor

[install_dir]/dragonwally/dw/dragonwallysensor/run_sensor.sh


[8.3] Run DragonWally API

[install_dir]/dragonwally/dw/dragonwallyadmin/DragonWallyAPI/run_api.sh

Step 9: VIDEO DEMONSTRATION