2017-11-22 21:04:05 +00:00
# Sample Apps for Affdex SDK for Windows and Linux
2015-03-09 21:24:59 +00:00
2017-11-22 21:04:05 +00:00
Welcome to our repository on GitHub! Here you will find example code to get you started with our Affdex Linux SDK 4.0.0, Affdex Windows SDK 3.4 and begin emotion-enabling you own app! Documentation for the SDKs is available on the < a href = http://developer.affectiva.com/ > Affectiva's Developer Portal< / a > .
2015-03-09 21:24:59 +00:00
2017-11-22 21:04:05 +00:00
Build Status
-------------
2018-05-15 18:33:07 +00:00
- Windows: [![Build status ](https://ci.appveyor.com/api/projects/status/github/Affectiva/cpp-sdk-samples?branch=master&svg=true )](https://ci.appveyor.com/project/ahamino/win-sdk-samples)
2016-06-06 03:52:17 +00:00
- Ubuntu: [![Build Status ](https://travis-ci.org/Affectiva/cpp-sdk-samples.svg?branch=master )](https://travis-ci.org/Affectiva/cpp-sdk-samples)
2015-03-09 21:24:59 +00:00
2016-02-03 12:20:08 +00:00
Dependencies
------------
2015-03-09 21:24:59 +00:00
2017-11-22 21:04:05 +00:00
##### Windows
2017-02-04 03:47:24 +00:00
- Affdex SDK 3.4 (64 bit)
2015-03-09 21:24:59 +00:00
- Visual Studio 2013 or higher
2017-11-22 21:04:05 +00:00
##### Linux
- Ubuntu 16.04 with GCC v5.4.1
- CentOS 7 with GCC v4.8.x
- Affdex SDK 4.0.0
- CMake 3.5 or higher
2015-03-09 21:24:59 +00:00
2017-11-22 21:04:05 +00:00
##### Additional dependencies
2016-02-03 12:20:08 +00:00
2016-07-25 18:42:21 +00:00
- OpenCV 2.4
2017-11-22 21:04:05 +00:00
- Boost 1.63
2017-02-04 03:47:24 +00:00
- libuuid
- libcurl
- libopenssl
2016-02-03 12:20:08 +00:00
Installation
------------
2016-03-18 18:28:55 +00:00
2017-11-22 21:22:31 +00:00
- Download Affdex SDK for Linux [from here ](https://affectiva.readme.io/docs/getting-started-with-the-affectiva-sdk-for-linux#section-1-download-and-extract-the-sdk-archive )
2017-11-22 21:24:00 +00:00
- Download Affdex SDK for Windows [from here ](https://affectiva.readme.io/docs/getting-started-with-the-emotion-sdk-for-windows#section-1-download-and-run-the-sdk-installer )
2017-11-22 21:22:31 +00:00
2016-03-18 18:28:55 +00:00
2017-11-22 21:04:05 +00:00
##### Windows
2015-04-21 22:12:54 +00:00
- Install the SDK using MSI installer.
2016-02-03 12:20:08 +00:00
- The additional dependencies get installed automatically by NuGet.
2017-11-22 21:04:05 +00:00
##### Linux
2017-11-22 21:28:39 +00:00
*Installation Guide for dependencies CMake v3.8.1 and Boost v1.63 for CentOS 7 and Ubuntu 16.04*
2017-11-22 21:04:05 +00:00
- Boost
```
$ wget https://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz
$ tar -xzvf boost_1_63_0.tar.gz -C $HOME
$ cd boost_1_63_0
$ ./bootstrap.sh
$ sudo ./b2 -j $(nproc) cxxflags=-fPIC threading=multi runtime-link=shared \
--with-log --with-serialization --with-system --with-date_time \
--with-filesystem --with-regex --with-timer --with-chrono --with-thread \
--with-program_options install
```
- CMAKE
```
$ wget https://cmake.org/files/v3.8/cmake-3.8.1.tar.gz \
$ tar -xvf cmake-3.8.1.tar.gz & & rm cmake-3.8.1.tar.gz
$ cd $SRC_DIR/cmake-3.8.1/
$ ./bootstrap --system-curl & & \
make -j$(nproc) & & \
make install & & \
rm -rf $SRC_DIR/cmake-3.8.1
```
2017-11-22 21:28:39 +00:00
- Building the SDK on Ubuntu 16.04
2016-03-18 18:28:55 +00:00
```bashrc
2018-02-24 20:41:30 +00:00
$ sudo apt-get install build-essential libopencv-dev libcurl4-openssl uuid-dev
$ wget https://download.affectiva.com/linux/gcc-5.4/affdex-cpp-sdk-4.0-75-ubuntu-xenial-xerus-x86_64bit.tar.gz
$ mkdir $HOME/affdex-sdk
$ tar -xzvf affdex-cpp-sdk-4.0-75-ubuntu-xenial-xerus-x86_64bit.tar.gz -C $HOME/affdex-sdk
$ export AFFDEX_DATA_DIR=$HOME/affdex-sdk/data
$ git clone https://github.com/Affectiva/cpp-sdk-samples.git $HOME/sdk-samples
$ mkdir $HOME/build
$ cd $HOME/build
$ cmake -DOpenCV_DIR=/usr/ -DBOOST_ROOT=/usr/ -DAFFDEX_DIR=$HOME/affdex-sdk $HOME/sdk-samples
$ make
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/affdex-sdk/lib
# The SDK statically links a forked version of OpenCV, so if you run into double free or corruption error
# then you will need to preload the OpenCV library installed from package manager
# Use this command to find the path of libopencv_core.so.2.4
$ ldconfig -p | grep libopencv_core.so.2.4
$ export LD_PRELOAD=/path/to/libopencv_core.so.2.4
2016-03-18 18:28:55 +00:00
```
2017-11-22 21:28:39 +00:00
- Building the SDK on CentOS 7
2017-02-04 03:47:24 +00:00
```bashrc
2017-11-22 21:04:05 +00:00
$ sudo yum install libcurl-devel.x86_64 libuuid-devel.x86_64 opencv-devel
$ wget https://download.affectiva.com/linux/centos-4.8/affdex-cpp-sdk-4.0-2941-centos-7-x86_64bit.tar.gz
$ mkdir $HOME/affdex-sdk
$ tar -xzvf affdex-cpp-sdk-4.0-2941-centos-7-x86_64bit.tar.gz -C $HOME/affdex-sdk
$ export AFFDEX_DATA_DIR=$HOME/affdex-sdk/data
$ git clone https://github.com/Affectiva/cpp-sdk-samples.git $HOME/sdk-samples
$ mkdir $HOME/build
$ cd $HOME/build
$ cmake -DOpenCV_DIR=/usr/ -DBOOST_ROOT=/usr/ -DAFFDEX_DIR=$HOME/affdex-sdk $HOME/sdk-samples
$ make
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/affdex-sdk/lib
2018-02-24 20:41:30 +00:00
# The SDK statically links a forked version of OpenCV, so if you run into double free or corruption error
# then you will need to preload the OpenCV library installed from package manager
# Use this command to find the path of libopencv_core.so.2.4
$ ldconfig -p | grep libopencv_core.so.2.4
$ export LD_PRELOAD=/path/to/libopencv_core.so.2.4
2017-02-04 03:47:24 +00:00
```
2016-02-03 12:20:08 +00:00
2016-02-03 12:22:00 +00:00
OpenCV-webcam-demo (c++)
2016-02-03 12:20:08 +00:00
------------------
2017-02-04 03:47:24 +00:00
Project for demoing the [FrameDetector class ](http://developer.affectiva.com/v3_2/cpp/analyze-frames/ ). It grabs frames from the camera, analyzes them and displays the results on screen.
2016-02-03 12:20:08 +00:00
The following command line arguments can be used to run it:
-h [ --help ] Display this help message.
-d [ --data ] arg (=data) Path to the data folder
-r [ --resolution ] arg (=640 480) Resolution in pixels (2-values): width
height
--pfps arg (=30) Processing framerate.
--cfps arg (=30) Camera capture framerate.
--bufferLen arg (=30) process buffer size.
--cid arg (=0) Camera ID.
--faceMode arg (=0) Face detector mode (large faces vs small
faces).
--numFaces arg (=1) Number of faces to be tracked.
--draw arg (=1) Draw metrics on screen.
Video-demo (c++)
----------
2017-11-22 21:22:31 +00:00
Project for demoing the Windows SDK [VideoDetector class ](http://developer.affectiva.com/v3_2/cpp/analyze-video/ ) and [PhotoDetector class ](http://developer.affectiva.com/v3_2/cpp/analyze-photo/ ). It process video or image files, displays the emotion metrics and exports the results in a csv file.
2015-04-21 22:12:54 +00:00
2016-02-03 12:20:08 +00:00
The following command line arguments can be used to run it:
2015-04-21 22:12:54 +00:00
2016-02-03 12:20:08 +00:00
-h [ --help ] Display this help message.
-d [ --data ] arg (=data) Path to the data folder
2016-06-06 03:31:56 +00:00
-i [ --input ] arg Video or photo file to process.
2016-02-03 12:20:08 +00:00
--pfps arg (=30) Processing framerate.
--draw arg (=1) Draw video on screen.
--faceMode arg (=1) Face detector mode (large faces vs small
faces).
--numFaces arg (=1) Number of faces to be tracked.
--loop arg (=0) Loop over the video being processed.
2015-04-21 22:12:54 +00:00
2016-02-03 12:20:08 +00:00
For an example of how to use Affdex in a C# application .. please refer to [AffdexMe ](https://github.com/affectiva/affdexme-win )
2017-11-22 21:04:05 +00:00
Docker Build Instructions
-------------------------
2018-02-24 20:41:30 +00:00
The Dockerfile's are located in the [docker ](docker ) directory. To build the docker image please refer to the files for instructions.