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 :
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
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