Compiling the Alize speaker detection library in Visual Studio 2015

To compile the ALIZE speaker detection library download the projects alize-core and LIA_RAL from https://github.com/ALIZE-Speaker-Recognition. Unzip both in the same parent directory and rename the alize-core folder to ALIZE.

Open the SLN file in the ALIZE directory and build it, there should be no errors.

Afterwards open the SLN file in the LIA_RAL folder. Before you start the build process you have to make changes to two files. In Macros.h change line 301 from:

#if defined(_MSC_VER) && (!defined(__INTEL_COMPILER))

to:

#if defined(_MSC_VER) && (_MSC_VER < 1900) && (!defined(__INTEL_COMPILER))

Then change the following in MapBase.h. Add the following line after line 172 (before the keyword public:):

typedef MapBase<Derived, ReadOnlyAccessors> ReadOnlyMapBase;

Afterwards, change the following line:

Base::Base::operator=(other);

to:

ReadOnlyMapBase::Base::operator=(other);

And a few lines later change:

using Base::operator=;

to:

using ReadOnlyMapBase::Base::operator=;

Now open the SLN file in the LIA_RAL folder and build the project liatools. Make sure that you pick the same platform as you did before when compiling ALIZE.

Cross compiling OpenCV for ARM from Ubuntu

Similar to the compilation of dlib for ARM on Ubuntu (see https://www.jofre.de/?p=1494) I’d like to provide a short guilde on how to compile OpenCV for ARM on Ubuntu.

First, install all required packages:
sudo apt-get install build-essential git cmake pkg-config libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk2.0-dev libatlas-base-dev
gfortran

Download/clone OpenCV from github

Build OpenCV
mkdir build
cd build
cmake -DSOFTFP=ON -DCMAKE_TOOLCHAIN_FILE=/home/user1/opencv/platforms/linux/arm-gnueabi.toolchain.cmake ..

make

Cross compiling dlib for ARM on Ubuntu

Since I could not find any instruction to compile dlib for ARM (to use it e.g. on a raspberry pi) I decided to write one.

First, install all required packages:
sudo apt-get install libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi pkg-config libx11-dev libatlas-base-dev libgtk-3-dev libboost-all-dev build-essential cmake libncurses5-dev gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf

Download dlib and upzip:
wget http://dlib.net/files/dlib-19.8.zip
unzip dlib-19.8.zip

Compile:
cmake -DCMAKE_C_FLAGS=”-O3 -mfpu=neon -fprofile-use -DENABLE_NEON” -DNEON=ON -DCMAKE_C_COMPILER=/usr/bin/arm-linux-gnueabihf-gcc -DCMAKE_CXX_COMPILER=/usr/bin/arm-linux-gnueabihf-g++ -DCMAKE_CXX_FLAGS=”-std=c++11″ –build –config Release ..

make

sudo make install

[Gamestudio] BmapGS – Library for bitmap manipulations

For the TUST project I wrote a DLL for some advanced bitmap operations based on the cImg library. It contains for example functions like:

  • Blur
  • Resize
  • Mirror
  • Erode
  • Sharpen
  • Draw line, arrow, spline, triangle, rectangle, border, text

Have fun with it!

[Gamestudio] Leap Motion DLL

Today I finished a simple DLL to connect Gamestudio to the Leap Motion. Headers and DLL can be downloaded here. The plugin works with the Leap Motion SDK 0.7.6.

Download

Since I don’t know about the license, you have to download the SDK yourself and put the Leap.dll in the same directory as this plugin.

The device has to be enabled by calling leap_init() and can then be used, for instance, to get all hands (get_hand_count()) recognized by the device. The video below shows a quickly hacked demo.

[Leap Motion] Setting up a C++ project with Visual Studio 2010

Yesterday, my Leap Motion Developer Device arrived and I started imeadiately to try the diverse SDKs. Setting up a Java project is simple because the official resource side provides an easy but great tutorial. A C++ project is some more difficult but fairly uncomplicated, as well, when you know how to configure include and library paths. Follow these easy steps to set up a project:

  1. Create a Win32 project via File -> New Project…
  2. Right click the project and select Properties
  3. Under Configuration Properties -> VC++ Directories -> Include directories add a link to [LeapSDK]\include
  4. Under Configuration Properties -> VC++ Directories -> Library directories add a link to [LeapSDK]\lib\x86
  5. Add Leap.dll (Or Leapd.dll in debug mode) under Linker -> Input.
  6. Include at least leap.h in your project and follow the official C++ tutorial to begin your first project.

Have fun! 🙂

Eine einfache Logging-Klasse in C++

Ich schreibe gerade an einigen DLLs für Gamestudio und hatte da das Problem, dass es nicht einfach ist diese zu Debuggen. Dafür habe ich hier eine einfache Logging-Klasse geschrieben die als Singleton agiert, er muss also nicht explizit initialisiert sondern einfach nur aufgerufen werden. Das geht so:

Logger::getInstance()->log("Skins: %i", 1);

Es ist also möglich, beliebig lange Argumentelisten zu verarbeiten. Das Log wird in der Datei “Log.txt” im Verzeichnis der Anwendung gespeichert.

Den Quelltext findet ihr hinter dem More-Tag. Viel Spaß damit!

Continue reading “Eine einfache Logging-Klasse in C++”