From 87d3a47053864572e6c6ff034075f387c0465df9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torben=20T=C3=B6niges=20=28ttoenige=29?= Date: Thu, 3 Dec 2015 15:27:56 +0100 Subject: [PATCH 01/17] installing dlib shape predictor model is now optional --- CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 29d6f08..76c39ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,7 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) +OPTION(ENABLE_INSTALL_DLIB_FACE_MODEL "Install the dlib face landmarks model" OFF) set(CMAKE_AUTOMOC TRUE) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -27,10 +28,15 @@ ADD_SUBDIRECTORY(src) CONFIGURE_FILE(gazetool.sh.in gazetool.sh @ONLY) INSTALL(FILES - data/shape_predictor_68_face_landmarks.dat data/gaze_est_deg.dat data/lid_est.dat data/vertgaze_est_deg.dat DESTINATION share/gazetool) +IF(ENABLE_INSTALL_DLIB_FACE_MODEL) + INSTALL(FILES + data/shape_predictor_68_face_landmarks.dat + DESTINATION share/gazetool) +ENDIF() + INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/gazetool.sh DESTINATION bin) From 5e455bbfa024f18a60886eb639d565eccc662ce3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torben=20T=C3=B6niges=20=28ttoenige=29?= Date: Thu, 3 Dec 2015 16:50:03 +0100 Subject: [PATCH 02/17] first steps to remove qt5 dependency --- CMakeLists.txt | 14 +++++++++---- src/CMakeLists.txt | 52 ++++++++++++++++++++++++++++++++++------------ src/gazehyps.h | 5 ++++- 3 files changed, 53 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 76c39ce..a71c985 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,16 +6,22 @@ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) OPTION(ENABLE_INSTALL_DLIB_FACE_MODEL "Install the dlib face landmarks model" OFF) +OPTION(ENABLE_QT5 "Enable QT5 support" ON) + set(CMAKE_AUTOMOC TRUE) set(CMAKE_INCLUDE_CURRENT_DIR ON) FIND_PACKAGE(dlib REQUIRED) FIND_PACKAGE(OpenCV REQUIRED) FIND_PACKAGE(Boost COMPONENTS system chrono program_options REQUIRED) -FIND_PACKAGE(Qt5Core REQUIRED) -FIND_PACKAGE(Qt5Widgets REQUIRED) -FIND_PACKAGE(Qt5OpenGL REQUIRED) -FIND_PACKAGE(Qt5Gui REQUIRED) + +IF (ENABLE_QT5) + FIND_PACKAGE(Qt5Core REQUIRED) + FIND_PACKAGE(Qt5Widgets REQUIRED) + FIND_PACKAGE(Qt5OpenGL REQUIRED) + FIND_PACKAGE(Qt5Gui REQUIRED) + ADD_DEFINITIONS(-DENABLE_QT5) +ENDIF() IF(ENABLE_YARP_SUPPORT) FIND_PACKAGE(YARP REQUIRED) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 429cb0e..51e1b90 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,7 +1,8 @@ -QT5_WRAP_UI(UI_HEADERS gazergui.ui) +IF (ENABLE_QT5) + QT5_WRAP_UI(UI_HEADERS gazergui.ui) +ENDIF() SET(GAZETOOL_SRC - main.cpp imageprovider.cpp faceparts.cpp pupilfinder.cpp @@ -14,28 +15,53 @@ SET(GAZETOOL_SRC shapedetectionworker.cpp gazehyps.cpp regressionworker.cpp - gazergui.cpp - glimageview.cpp - workerthread.cpp eyepatcher.cpp featureextractor.cpp abstractlearner.cpp rlssmoother.cpp - ${UI_HEADERS} blockingqueue.h ) - IF(ENABLE_YARP_SUPPORT) ADD_DEFINITIONS(-DENABLE_YARP_SUPPORT) SET(GAZETOOL_SRC ${GAZETOOL_SRC} yarpsupport.cpp) ENDIF() -ADD_EXECUTABLE(gazetool ${GAZETOOL_SRC}) -ADD_DEPENDENCIES(gazetool ${UI_HEADERS}) -TARGET_LINK_LIBRARIES(gazetool GL ${Boost_LIBRARIES} ${YARP_LIBRARIES} ${OpenCV_LIBS} ${dlib_LIBRARIES}) -qt5_use_modules(gazetool Core Widgets Gui OpenGL) -INSTALL(TARGETS gazetool - RUNTIME DESTINATION bin +ADD_LIBRARY(gaze SHARED ${GAZETOOL_SRC}) +target_link_libraries(gaze ${OpenCV_LIBS} ${dlib_LIBRARIES} ${Boost_LIBRARIES} ${YARP_LIBRARIES}) + + + +IF (ENABLE_QT5) + qt5_use_modules(gaze Core) +ENDIF() + +INSTALL(TARGETS gaze + LIBRARY DESTINATION lib ) + + +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ + DESTINATION "include/gaze" + FILES_MATCHING + PATTERN "*.h") + + +IF (ENABLE_QT5) + SET(GAZETOOL_BIN + main.cpp + gazergui.cpp + workerthread.cpp + glimageview.cpp + ${UI_HEADERS}) + + ADD_EXECUTABLE(gazetool ${GAZETOOL_BIN}) + ADD_DEPENDENCIES(gazetool ${UI_HEADERS}) + TARGET_LINK_LIBRARIES(gazetool gaze GL) + qt5_use_modules(gazetool Core Widgets Gui OpenGL) + + INSTALL(TARGETS gazetool + RUNTIME DESTINATION bin + ) +ENDIF() diff --git a/src/gazehyps.h b/src/gazehyps.h index 6c0f42b..dd87604 100644 --- a/src/gazehyps.h +++ b/src/gazehyps.h @@ -6,14 +6,17 @@ #include #include #include -#include #include #include "pupilfinder.h" class GazeHypList; typedef std::shared_ptr GazeHypsPtr; +#ifdef ENABLE_QT5 +#include Q_DECLARE_METATYPE(GazeHypsPtr) +#endif + struct GazeHyp { dlib::rectangle faceDetection; From e0e1960f13b77160afcd6391ed15bbed9285a4d2 Mon Sep 17 00:00:00 2001 From: Torben Toeniges Date: Fri, 4 Dec 2015 06:45:01 +0100 Subject: [PATCH 03/17] adding avx flag --- CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index a71c985..2cb0db9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,11 @@ OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) OPTION(ENABLE_INSTALL_DLIB_FACE_MODEL "Install the dlib face landmarks model" OFF) OPTION(ENABLE_QT5 "Enable QT5 support" ON) +option(USE_AVX_INSTRUCTIONS "Compile your program with AVX instructions" OFF) +if(USE_AVX_INSTRUCTIONS) + add_definitions(-mavx) +endif() + set(CMAKE_AUTOMOC TRUE) set(CMAKE_INCLUDE_CURRENT_DIR ON) From bd29a378f7b0a020d2da6475eeda33bda6a33429 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torben=20T=C3=B6niges=20=28ttoenige=29?= Date: Fri, 4 Dec 2015 09:07:58 +0100 Subject: [PATCH 04/17] new folder structure --- CMakeLists.txt | 2 ++ src/CMakeLists.txt | 41 +------------------------ src/lib/CMakeLists.txt | 41 +++++++++++++++++++++++++ src/{ => lib}/abstractlearner.cpp | 0 src/{ => lib}/abstractlearner.h | 0 src/{ => lib}/blockingqueue.h | 0 src/{ => lib}/eyelidlearner.cpp | 0 src/{ => lib}/eyelidlearner.h | 0 src/{ => lib}/eyepatcher.cpp | 0 src/{ => lib}/eyepatcher.h | 0 src/{ => lib}/facedetectionworker.cpp | 0 src/{ => lib}/facedetectionworker.h | 0 src/{ => lib}/faceparts.cpp | 0 src/{ => lib}/faceparts.h | 0 src/{ => lib}/featureextractor.cpp | 0 src/{ => lib}/featureextractor.h | 0 src/{ => lib}/gazehyps.cpp | 0 src/{ => lib}/gazehyps.h | 0 src/{ => lib}/imageprovider.cpp | 0 src/{ => lib}/imageprovider.h | 0 src/{ => lib}/mutualgazelearner.cpp | 0 src/{ => lib}/mutualgazelearner.h | 0 src/{ => lib}/pupilfinder.cpp | 0 src/{ => lib}/pupilfinder.h | 0 src/{ => lib}/regressionworker.cpp | 0 src/{ => lib}/regressionworker.h | 0 src/{ => lib}/relativeeyelidlearner.cpp | 0 src/{ => lib}/relativeeyelidlearner.h | 0 src/{ => lib}/relativegazelearner.cpp | 0 src/{ => lib}/relativegazelearner.h | 0 src/{ => lib}/rlssmoother.cpp | 0 src/{ => lib}/rlssmoother.h | 0 src/{ => lib}/shapedetectionworker.cpp | 0 src/{ => lib}/shapedetectionworker.h | 0 src/{ => lib}/verticalgazelearner.cpp | 0 src/{ => lib}/verticalgazelearner.h | 0 36 files changed, 44 insertions(+), 40 deletions(-) create mode 100644 src/lib/CMakeLists.txt rename src/{ => lib}/abstractlearner.cpp (100%) rename src/{ => lib}/abstractlearner.h (100%) rename src/{ => lib}/blockingqueue.h (100%) rename src/{ => lib}/eyelidlearner.cpp (100%) rename src/{ => lib}/eyelidlearner.h (100%) rename src/{ => lib}/eyepatcher.cpp (100%) rename src/{ => lib}/eyepatcher.h (100%) rename src/{ => lib}/facedetectionworker.cpp (100%) rename src/{ => lib}/facedetectionworker.h (100%) rename src/{ => lib}/faceparts.cpp (100%) rename src/{ => lib}/faceparts.h (100%) rename src/{ => lib}/featureextractor.cpp (100%) rename src/{ => lib}/featureextractor.h (100%) rename src/{ => lib}/gazehyps.cpp (100%) rename src/{ => lib}/gazehyps.h (100%) rename src/{ => lib}/imageprovider.cpp (100%) rename src/{ => lib}/imageprovider.h (100%) rename src/{ => lib}/mutualgazelearner.cpp (100%) rename src/{ => lib}/mutualgazelearner.h (100%) rename src/{ => lib}/pupilfinder.cpp (100%) rename src/{ => lib}/pupilfinder.h (100%) rename src/{ => lib}/regressionworker.cpp (100%) rename src/{ => lib}/regressionworker.h (100%) rename src/{ => lib}/relativeeyelidlearner.cpp (100%) rename src/{ => lib}/relativeeyelidlearner.h (100%) rename src/{ => lib}/relativegazelearner.cpp (100%) rename src/{ => lib}/relativegazelearner.h (100%) rename src/{ => lib}/rlssmoother.cpp (100%) rename src/{ => lib}/rlssmoother.h (100%) rename src/{ => lib}/shapedetectionworker.cpp (100%) rename src/{ => lib}/shapedetectionworker.h (100%) rename src/{ => lib}/verticalgazelearner.cpp (100%) rename src/{ => lib}/verticalgazelearner.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2cb0db9..b060063 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,8 +34,10 @@ ENDIF() INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${YARP_INCLUDE_DIRS} ${dlib_INCLUDE_DIRS}) +ADD_SUBDIRECTORY(src/lib) ADD_SUBDIRECTORY(src) + CONFIGURE_FILE(gazetool.sh.in gazetool.sh @ONLY) INSTALL(FILES diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 51e1b90..09783ae 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,52 +2,13 @@ IF (ENABLE_QT5) QT5_WRAP_UI(UI_HEADERS gazergui.ui) ENDIF() -SET(GAZETOOL_SRC - imageprovider.cpp - faceparts.cpp - pupilfinder.cpp - eyelidlearner.cpp - mutualgazelearner.cpp - relativeeyelidlearner.cpp - relativegazelearner.cpp - verticalgazelearner.cpp - facedetectionworker.cpp - shapedetectionworker.cpp - gazehyps.cpp - regressionworker.cpp - eyepatcher.cpp - featureextractor.cpp - abstractlearner.cpp - rlssmoother.cpp - blockingqueue.h -) +INCLUDE_DIRECTORIES(lib) IF(ENABLE_YARP_SUPPORT) ADD_DEFINITIONS(-DENABLE_YARP_SUPPORT) SET(GAZETOOL_SRC ${GAZETOOL_SRC} yarpsupport.cpp) ENDIF() - -ADD_LIBRARY(gaze SHARED ${GAZETOOL_SRC}) -target_link_libraries(gaze ${OpenCV_LIBS} ${dlib_LIBRARIES} ${Boost_LIBRARIES} ${YARP_LIBRARIES}) - - - -IF (ENABLE_QT5) - qt5_use_modules(gaze Core) -ENDIF() - -INSTALL(TARGETS gaze - LIBRARY DESTINATION lib -) - - -INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ - DESTINATION "include/gaze" - FILES_MATCHING - PATTERN "*.h") - - IF (ENABLE_QT5) SET(GAZETOOL_BIN main.cpp diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt new file mode 100644 index 0000000..3ae10ec --- /dev/null +++ b/src/lib/CMakeLists.txt @@ -0,0 +1,41 @@ +SET(GAZETOOL_LIB_SRC + imageprovider.cpp + faceparts.cpp + pupilfinder.cpp + eyelidlearner.cpp + mutualgazelearner.cpp + relativeeyelidlearner.cpp + relativegazelearner.cpp + verticalgazelearner.cpp + facedetectionworker.cpp + shapedetectionworker.cpp + gazehyps.cpp + regressionworker.cpp + eyepatcher.cpp + featureextractor.cpp + abstractlearner.cpp + rlssmoother.cpp + blockingqueue.h +) + +IF(ENABLE_YARP_SUPPORT) + ADD_DEFINITIONS(-DENABLE_YARP_SUPPORT) + SET(GAZETOOL_LIB_SRC ${GAZETOOL_LIB_SRC} yarpsupport.cpp) +ENDIF() + + +ADD_LIBRARY(gaze SHARED ${GAZETOOL_LIB_SRC}) +target_link_libraries(gaze ${OpenCV_LIBS} ${dlib_LIBRARIES} ${Boost_LIBRARIES} ${YARP_LIBRARIES}) + +IF (ENABLE_QT5) + qt5_use_modules(gaze Core) +ENDIF() + +INSTALL(TARGETS gaze + LIBRARY DESTINATION lib +) + +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ + DESTINATION "include/gaze" + FILES_MATCHING + PATTERN "*.h") diff --git a/src/abstractlearner.cpp b/src/lib/abstractlearner.cpp similarity index 100% rename from src/abstractlearner.cpp rename to src/lib/abstractlearner.cpp diff --git a/src/abstractlearner.h b/src/lib/abstractlearner.h similarity index 100% rename from src/abstractlearner.h rename to src/lib/abstractlearner.h diff --git a/src/blockingqueue.h b/src/lib/blockingqueue.h similarity index 100% rename from src/blockingqueue.h rename to src/lib/blockingqueue.h diff --git a/src/eyelidlearner.cpp b/src/lib/eyelidlearner.cpp similarity index 100% rename from src/eyelidlearner.cpp rename to src/lib/eyelidlearner.cpp diff --git a/src/eyelidlearner.h b/src/lib/eyelidlearner.h similarity index 100% rename from src/eyelidlearner.h rename to src/lib/eyelidlearner.h diff --git a/src/eyepatcher.cpp b/src/lib/eyepatcher.cpp similarity index 100% rename from src/eyepatcher.cpp rename to src/lib/eyepatcher.cpp diff --git a/src/eyepatcher.h b/src/lib/eyepatcher.h similarity index 100% rename from src/eyepatcher.h rename to src/lib/eyepatcher.h diff --git a/src/facedetectionworker.cpp b/src/lib/facedetectionworker.cpp similarity index 100% rename from src/facedetectionworker.cpp rename to src/lib/facedetectionworker.cpp diff --git a/src/facedetectionworker.h b/src/lib/facedetectionworker.h similarity index 100% rename from src/facedetectionworker.h rename to src/lib/facedetectionworker.h diff --git a/src/faceparts.cpp b/src/lib/faceparts.cpp similarity index 100% rename from src/faceparts.cpp rename to src/lib/faceparts.cpp diff --git a/src/faceparts.h b/src/lib/faceparts.h similarity index 100% rename from src/faceparts.h rename to src/lib/faceparts.h diff --git a/src/featureextractor.cpp b/src/lib/featureextractor.cpp similarity index 100% rename from src/featureextractor.cpp rename to src/lib/featureextractor.cpp diff --git a/src/featureextractor.h b/src/lib/featureextractor.h similarity index 100% rename from src/featureextractor.h rename to src/lib/featureextractor.h diff --git a/src/gazehyps.cpp b/src/lib/gazehyps.cpp similarity index 100% rename from src/gazehyps.cpp rename to src/lib/gazehyps.cpp diff --git a/src/gazehyps.h b/src/lib/gazehyps.h similarity index 100% rename from src/gazehyps.h rename to src/lib/gazehyps.h diff --git a/src/imageprovider.cpp b/src/lib/imageprovider.cpp similarity index 100% rename from src/imageprovider.cpp rename to src/lib/imageprovider.cpp diff --git a/src/imageprovider.h b/src/lib/imageprovider.h similarity index 100% rename from src/imageprovider.h rename to src/lib/imageprovider.h diff --git a/src/mutualgazelearner.cpp b/src/lib/mutualgazelearner.cpp similarity index 100% rename from src/mutualgazelearner.cpp rename to src/lib/mutualgazelearner.cpp diff --git a/src/mutualgazelearner.h b/src/lib/mutualgazelearner.h similarity index 100% rename from src/mutualgazelearner.h rename to src/lib/mutualgazelearner.h diff --git a/src/pupilfinder.cpp b/src/lib/pupilfinder.cpp similarity index 100% rename from src/pupilfinder.cpp rename to src/lib/pupilfinder.cpp diff --git a/src/pupilfinder.h b/src/lib/pupilfinder.h similarity index 100% rename from src/pupilfinder.h rename to src/lib/pupilfinder.h diff --git a/src/regressionworker.cpp b/src/lib/regressionworker.cpp similarity index 100% rename from src/regressionworker.cpp rename to src/lib/regressionworker.cpp diff --git a/src/regressionworker.h b/src/lib/regressionworker.h similarity index 100% rename from src/regressionworker.h rename to src/lib/regressionworker.h diff --git a/src/relativeeyelidlearner.cpp b/src/lib/relativeeyelidlearner.cpp similarity index 100% rename from src/relativeeyelidlearner.cpp rename to src/lib/relativeeyelidlearner.cpp diff --git a/src/relativeeyelidlearner.h b/src/lib/relativeeyelidlearner.h similarity index 100% rename from src/relativeeyelidlearner.h rename to src/lib/relativeeyelidlearner.h diff --git a/src/relativegazelearner.cpp b/src/lib/relativegazelearner.cpp similarity index 100% rename from src/relativegazelearner.cpp rename to src/lib/relativegazelearner.cpp diff --git a/src/relativegazelearner.h b/src/lib/relativegazelearner.h similarity index 100% rename from src/relativegazelearner.h rename to src/lib/relativegazelearner.h diff --git a/src/rlssmoother.cpp b/src/lib/rlssmoother.cpp similarity index 100% rename from src/rlssmoother.cpp rename to src/lib/rlssmoother.cpp diff --git a/src/rlssmoother.h b/src/lib/rlssmoother.h similarity index 100% rename from src/rlssmoother.h rename to src/lib/rlssmoother.h diff --git a/src/shapedetectionworker.cpp b/src/lib/shapedetectionworker.cpp similarity index 100% rename from src/shapedetectionworker.cpp rename to src/lib/shapedetectionworker.cpp diff --git a/src/shapedetectionworker.h b/src/lib/shapedetectionworker.h similarity index 100% rename from src/shapedetectionworker.h rename to src/lib/shapedetectionworker.h diff --git a/src/verticalgazelearner.cpp b/src/lib/verticalgazelearner.cpp similarity index 100% rename from src/verticalgazelearner.cpp rename to src/lib/verticalgazelearner.cpp diff --git a/src/verticalgazelearner.h b/src/lib/verticalgazelearner.h similarity index 100% rename from src/verticalgazelearner.h rename to src/lib/verticalgazelearner.h From c8a0fb37b10bcf03b5e6f0646ccfdaca6c9c6698 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torben=20T=C3=B6niges=20=28ttoenige=29?= Date: Fri, 4 Dec 2015 13:48:41 +0100 Subject: [PATCH 05/17] Config files + qt5 includes in CMakeLists.txt --- CMakeLists.txt | 11 ++++--- config/gazeConfig.cmake.in | 39 +++++++++++++++++++++++ gazetool.sh.in => config/gazetool.sh.in | 0 src/CMakeLists.txt | 42 +++++++++++++------------ 4 files changed, 67 insertions(+), 25 deletions(-) create mode 100644 config/gazeConfig.cmake.in rename gazetool.sh.in => config/gazetool.sh.in (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index b060063..565ba76 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,9 +4,11 @@ PROJECT(gazetool) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +SET(GAZE_CONFIG_DIR "${CMAKE_CURRENT_SOURCE_DIR}/config") + OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) OPTION(ENABLE_INSTALL_DLIB_FACE_MODEL "Install the dlib face landmarks model" OFF) -OPTION(ENABLE_QT5 "Enable QT5 support" ON) +OPTION(ENABLE_QT5 "Build demo (QT5 is required)" ON) option(USE_AVX_INSTRUCTIONS "Compile your program with AVX instructions" OFF) if(USE_AVX_INSTRUCTIONS) @@ -35,10 +37,11 @@ ENDIF() INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${YARP_INCLUDE_DIRS} ${dlib_INCLUDE_DIRS}) ADD_SUBDIRECTORY(src/lib) -ADD_SUBDIRECTORY(src) +IF (ENABLE_QT5) + ADD_SUBDIRECTORY(src) +ENDIF() -CONFIGURE_FILE(gazetool.sh.in gazetool.sh @ONLY) INSTALL(FILES data/gaze_est_deg.dat @@ -51,5 +54,3 @@ IF(ENABLE_INSTALL_DLIB_FACE_MODEL) data/shape_predictor_68_face_landmarks.dat DESTINATION share/gazetool) ENDIF() - -INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/gazetool.sh DESTINATION bin) diff --git a/config/gazeConfig.cmake.in b/config/gazeConfig.cmake.in new file mode 100644 index 0000000..a2d2ec5 --- /dev/null +++ b/config/gazeConfig.cmake.in @@ -0,0 +1,39 @@ +# =================================================================================== +# The dlib CMake configuration file +# +# ** File generated automatically, do not modify ** +# +# Usage from an external project: +# In your CMakeLists.txt, add these lines: +# +# FIND_PACKAGE(dlib REQUIRED) +# TARGET_LINK_LIBRARIES(MY_TARGET_NAME ${dlib_LIBRARIES}) +# +# This file will define the following variables: +# - dlib_LIBRARIES : The list of all imported targets for dlib modules. +# - dlib_INCLUDE_DIRS : The dlib include directories. +# - dlib_VERSION : The version of this dlib build. +# - dlib_VERSION_MAJOR : Major version part of this dlib revision. +# - dlib_VERSION_MINOR : Minor version part of this dlib revision. +# +# =================================================================================== + + +# Compute paths +get_filename_component(dlib_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + +if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_LESS 2.8) + get_filename_component(dlib_INSTALL_PATH "@CONF_INSTALL_PATH@" ABSOLUTE) +else() + get_filename_component(dlib_INSTALL_PATH "@CONF_INSTALL_PATH@" REALPATH) +endif() + +set(dlib_INCLUDE_DIRS "${dlib_INSTALL_PATH}/include") + +# Our library dependencies (contains definitions for IMPORTED targets) +if(NOT TARGET dlib-shared AND NOT dlib_BINARY_DIR) + include("${dlib_CMAKE_DIR}/dlib.cmake") +endif() + +find_library(dlib_LIBRARIES dlib HINTS ${dlib_INSTALL_PATH}/lib) +set(dlib_LIBRARIES ${dlib_LIBRARIES} "@dlib_needed_libraries@") diff --git a/gazetool.sh.in b/config/gazetool.sh.in similarity index 100% rename from gazetool.sh.in rename to config/gazetool.sh.in diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 09783ae..f0f959a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,4 @@ -IF (ENABLE_QT5) - QT5_WRAP_UI(UI_HEADERS gazergui.ui) -ENDIF() +QT5_WRAP_UI(UI_HEADERS gazergui.ui) INCLUDE_DIRECTORIES(lib) @@ -9,20 +7,24 @@ IF(ENABLE_YARP_SUPPORT) SET(GAZETOOL_SRC ${GAZETOOL_SRC} yarpsupport.cpp) ENDIF() -IF (ENABLE_QT5) - SET(GAZETOOL_BIN - main.cpp - gazergui.cpp - workerthread.cpp - glimageview.cpp - ${UI_HEADERS}) - - ADD_EXECUTABLE(gazetool ${GAZETOOL_BIN}) - ADD_DEPENDENCIES(gazetool ${UI_HEADERS}) - TARGET_LINK_LIBRARIES(gazetool gaze GL) - qt5_use_modules(gazetool Core Widgets Gui OpenGL) - - INSTALL(TARGETS gazetool - RUNTIME DESTINATION bin - ) -ENDIF() +SET(GAZETOOL_BIN + main.cpp + gazergui.cpp + workerthread.cpp + glimageview.cpp + ${UI_HEADERS}) + +ADD_EXECUTABLE(gazetool ${GAZETOOL_BIN}) +ADD_DEPENDENCIES(gazetool ${UI_HEADERS}) +TARGET_LINK_LIBRARIES(gazetool gaze GL) +qt5_use_modules(gazetool Core Widgets Gui OpenGL) + + +CONFIGURE_FILE("${GAZE_CONFIG_DIR}/gazetool.sh.in" gazetool.sh @ONLY) +MESSAGE( STATUS "${GAZE_CONFIG_DIR}") + +INSTALL(TARGETS gazetool + RUNTIME DESTINATION bin +) + +INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/gazetool.sh DESTINATION bin) From c7fbf51c5068487a79a9d7ef0cb51ae44f18ed96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torben=20T=C3=B6niges=20=28ttoenige=29?= Date: Fri, 4 Dec 2015 15:22:17 +0100 Subject: [PATCH 06/17] cmake files, TODO: completly split demo from lib --- config/gazeConfigVersion.cmake.in | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 config/gazeConfigVersion.cmake.in diff --git a/config/gazeConfigVersion.cmake.in b/config/gazeConfigVersion.cmake.in new file mode 100644 index 0000000..768f88f --- /dev/null +++ b/config/gazeConfigVersion.cmake.in @@ -0,0 +1,11 @@ +set(PACKAGE_VERSION "@gaze_VERSION@") + +# Check whether the requested PACKAGE_FIND_VERSION is compatible +if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() From d58f988734a8a019475333a2c3cc84a163db3d0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torben=20T=C3=B6niges=20=28ttoenige=29?= Date: Fri, 4 Dec 2015 15:22:30 +0100 Subject: [PATCH 07/17] cmake files, TODO: completly split demo from lib --- CMakeLists.txt | 17 +++++++++++----- config/gazeConfig.cmake.in | 41 +++++++++----------------------------- config/gazetool.sh.in | 2 +- src/CMakeLists.txt | 8 +++++++- src/lib/CMakeLists.txt | 28 +++++++++++++++++++++++--- 5 files changed, 54 insertions(+), 42 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 565ba76..1e7bdcd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,14 @@ cmake_minimum_required(VERSION 2.8) -PROJECT(gazetool) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +PROJECT(gaze) + +set(GAZE_MAJOR_VERSION 0) +set(GAZE_MINOR_VERSION 1) +set(GAZE_PATCH_VERSION 0) +set(GAZE_VERSION + ${GAZE_MAJOR_VERSION}.${GAZE_MINOR_VERSION}.${GAZE_PATCH_VERSION}) + +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGSq} -std=c++11") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) SET(GAZE_CONFIG_DIR "${CMAKE_CURRENT_SOURCE_DIR}/config") @@ -36,7 +43,7 @@ ENDIF() INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${YARP_INCLUDE_DIRS} ${dlib_INCLUDE_DIRS}) -ADD_SUBDIRECTORY(src/lib) +#ADD_SUBDIRECTORY(src/lib) IF (ENABLE_QT5) ADD_SUBDIRECTORY(src) @@ -47,10 +54,10 @@ INSTALL(FILES data/gaze_est_deg.dat data/lid_est.dat data/vertgaze_est_deg.dat - DESTINATION share/gazetool) + DESTINATION share/gaze) IF(ENABLE_INSTALL_DLIB_FACE_MODEL) INSTALL(FILES data/shape_predictor_68_face_landmarks.dat - DESTINATION share/gazetool) + DESTINATION share/gaze) ENDIF() diff --git a/config/gazeConfig.cmake.in b/config/gazeConfig.cmake.in index a2d2ec5..c91fb32 100644 --- a/config/gazeConfig.cmake.in +++ b/config/gazeConfig.cmake.in @@ -1,39 +1,16 @@ -# =================================================================================== -# The dlib CMake configuration file -# -# ** File generated automatically, do not modify ** -# -# Usage from an external project: -# In your CMakeLists.txt, add these lines: -# -# FIND_PACKAGE(dlib REQUIRED) -# TARGET_LINK_LIBRARIES(MY_TARGET_NAME ${dlib_LIBRARIES}) -# -# This file will define the following variables: -# - dlib_LIBRARIES : The list of all imported targets for dlib modules. -# - dlib_INCLUDE_DIRS : The dlib include directories. -# - dlib_VERSION : The version of this dlib build. -# - dlib_VERSION_MAJOR : Major version part of this dlib revision. -# - dlib_VERSION_MINOR : Minor version part of this dlib revision. -# -# =================================================================================== - +# - Config file for the gaze package +# It defines the following variables +# GAZE_INCLUDE_DIRS - include directories for FooBar +# GAZE_LIBRARIES - libraries to link against # Compute paths -get_filename_component(dlib_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(gaze_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_LESS 2.8) - get_filename_component(dlib_INSTALL_PATH "@CONF_INSTALL_PATH@" ABSOLUTE) -else() - get_filename_component(dlib_INSTALL_PATH "@CONF_INSTALL_PATH@" REALPATH) -endif() +set(gaze_INCLUDE_DIRS "@INSTALL_INCLUDE_DIRS@") -set(dlib_INCLUDE_DIRS "${dlib_INSTALL_PATH}/include") - # Our library dependencies (contains definitions for IMPORTED targets) -if(NOT TARGET dlib-shared AND NOT dlib_BINARY_DIR) - include("${dlib_CMAKE_DIR}/dlib.cmake") +if(NOT TARGET gaze) + include("${gaze_CMAKE_DIR}/gazeTargets.cmake") endif() -find_library(dlib_LIBRARIES dlib HINTS ${dlib_INSTALL_PATH}/lib) -set(dlib_LIBRARIES ${dlib_LIBRARIES} "@dlib_needed_libraries@") +set(gaze_LIBRARIES gaze) diff --git a/config/gazetool.sh.in b/config/gazetool.sh.in index 06ed675..f34a54b 100755 --- a/config/gazetool.sh.in +++ b/config/gazetool.sh.in @@ -1,3 +1,3 @@ #!/bin/bash prefix="@CMAKE_INSTALL_PREFIX@" -exec "$prefix/bin/gazetool" -m "$prefix/share/gazetool/shape_predictor_68_face_landmarks.dat" --estimate-gaze "$prefix/share/gazetool/gaze_est_deg.dat" --estimate-verticalgaze "$prefix/share/gazetool/vertgaze_est_deg.dat" --estimate-lid "$prefix/share/gazetool/lid_est.dat" "$@" +exec "$prefix/bin/gazetool" -m "$prefix/share/gaze/shape_predictor_68_face_landmarks.dat" --estimate-gaze "$prefix/share/gaze/gaze_est_deg.dat" --estimate-verticalgaze "$prefix/share/gaze/vertgaze_est_deg.dat" --estimate-lid "$prefix/share/gaze/lid_est.dat" "$@" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f0f959a..396ebda 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,12 @@ QT5_WRAP_UI(UI_HEADERS gazergui.ui) -INCLUDE_DIRECTORIES(lib) +# INCLUDE_DIRECTORIES(lib) + +find_package(gaze REQUIRED) + +INCLUDE_DIRECTORIES(${gaze_INCLUDE_DIRS}) + +MESSAGE(STATUS ${gaze_INCLUDE_DIRS}) IF(ENABLE_YARP_SUPPORT) ADD_DEFINITIONS(-DENABLE_YARP_SUPPORT) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 3ae10ec..5b5319a 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -1,4 +1,4 @@ -SET(GAZETOOL_LIB_SRC +SET(GAZE_LIB_SRC imageprovider.cpp faceparts.cpp pupilfinder.cpp @@ -20,17 +20,33 @@ SET(GAZETOOL_LIB_SRC IF(ENABLE_YARP_SUPPORT) ADD_DEFINITIONS(-DENABLE_YARP_SUPPORT) - SET(GAZETOOL_LIB_SRC ${GAZETOOL_LIB_SRC} yarpsupport.cpp) + SET(GAZE_LIB_SRC ${GAZE_LIB_SRC} yarpsupport.cpp) ENDIF() -ADD_LIBRARY(gaze SHARED ${GAZETOOL_LIB_SRC}) +ADD_LIBRARY(gaze SHARED ${GAZE_LIB_SRC}) target_link_libraries(gaze ${OpenCV_LIBS} ${dlib_LIBRARIES} ${Boost_LIBRARIES} ${YARP_LIBRARIES}) IF (ENABLE_QT5) qt5_use_modules(gaze Core) ENDIF() + +export(TARGETS gaze + FILE "${PROJECT_BINARY_DIR}/gazeTargets.cmake") +export(PACKAGE gaze) + + +set(INSTALL_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/gaze/") + +configure_file("${GAZE_CONFIG_DIR}/gazeConfig.cmake.in" + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gazeConfig.cmake" @ONLY) +configure_file("${GAZE_CONFIG_DIR}/gazeConfigVersion.cmake.in" + "${PROJECT_BINARY_DIR}/gazeConfigVersion.cmake" @ONLY) + +export(TARGETS gaze + FILE "${PROJECT_BINARY_DIR}/gazeTargets.cmake") + INSTALL(TARGETS gaze LIBRARY DESTINATION lib ) @@ -39,3 +55,9 @@ INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION "include/gaze" FILES_MATCHING PATTERN "*.h") + +install(FILES + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gazeConfig.cmake" + "${PROJECT_BINARY_DIR}/gazeConfigVersion.cmake" + "${PROJECT_BINARY_DIR}/gazeTargets.cmake" + DESTINATION "lib/cmake/gaze" COMPONENT dev) From 261c6241e56a9bf47dbb6826ec8146ce432bbcdf Mon Sep 17 00:00:00 2001 From: Torben Toeniges Date: Fri, 4 Dec 2015 20:47:17 +0100 Subject: [PATCH 08/17] structure --- CMakeLists.txt | 63 ------------------- data/CMakeLists.txt | 18 ++++++ src/CMakeLists.txt | 36 ----------- src/demo/CMakeLists.txt | 54 ++++++++++++++++ {config => src/demo/config}/gazetool.sh.in | 0 src/{ => demo}/gazergui.cpp | 0 src/{ => demo}/gazergui.h | 0 src/{ => demo}/gazergui.ui | 0 src/{ => demo}/glimageview.cpp | 0 src/{ => demo}/glimageview.h | 0 src/{ => demo}/main.cpp | 0 src/{ => demo}/workerthread.cpp | 0 src/{ => demo}/workerthread.h | 0 src/{ => demo}/yarpsupport.cpp | 0 src/{ => demo}/yarpsupport.h | 0 src/lib/CMakeLists.txt | 46 +++++++++++++- .../lib/config}/gazeConfig.cmake.in | 0 .../lib/config}/gazeConfigVersion.cmake.in | 0 18 files changed, 116 insertions(+), 101 deletions(-) delete mode 100644 CMakeLists.txt create mode 100644 data/CMakeLists.txt delete mode 100644 src/CMakeLists.txt create mode 100644 src/demo/CMakeLists.txt rename {config => src/demo/config}/gazetool.sh.in (100%) rename src/{ => demo}/gazergui.cpp (100%) rename src/{ => demo}/gazergui.h (100%) rename src/{ => demo}/gazergui.ui (100%) rename src/{ => demo}/glimageview.cpp (100%) rename src/{ => demo}/glimageview.h (100%) rename src/{ => demo}/main.cpp (100%) rename src/{ => demo}/workerthread.cpp (100%) rename src/{ => demo}/workerthread.h (100%) rename src/{ => demo}/yarpsupport.cpp (100%) rename src/{ => demo}/yarpsupport.h (100%) rename {config => src/lib/config}/gazeConfig.cmake.in (100%) rename {config => src/lib/config}/gazeConfigVersion.cmake.in (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 1e7bdcd..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,63 +0,0 @@ -cmake_minimum_required(VERSION 2.8) - -PROJECT(gaze) - -set(GAZE_MAJOR_VERSION 0) -set(GAZE_MINOR_VERSION 1) -set(GAZE_PATCH_VERSION 0) -set(GAZE_VERSION - ${GAZE_MAJOR_VERSION}.${GAZE_MINOR_VERSION}.${GAZE_PATCH_VERSION}) - -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGSq} -std=c++11") -SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) - -SET(GAZE_CONFIG_DIR "${CMAKE_CURRENT_SOURCE_DIR}/config") - -OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) -OPTION(ENABLE_INSTALL_DLIB_FACE_MODEL "Install the dlib face landmarks model" OFF) -OPTION(ENABLE_QT5 "Build demo (QT5 is required)" ON) - -option(USE_AVX_INSTRUCTIONS "Compile your program with AVX instructions" OFF) -if(USE_AVX_INSTRUCTIONS) - add_definitions(-mavx) -endif() - -set(CMAKE_AUTOMOC TRUE) -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -FIND_PACKAGE(dlib REQUIRED) -FIND_PACKAGE(OpenCV REQUIRED) -FIND_PACKAGE(Boost COMPONENTS system chrono program_options REQUIRED) - -IF (ENABLE_QT5) - FIND_PACKAGE(Qt5Core REQUIRED) - FIND_PACKAGE(Qt5Widgets REQUIRED) - FIND_PACKAGE(Qt5OpenGL REQUIRED) - FIND_PACKAGE(Qt5Gui REQUIRED) - ADD_DEFINITIONS(-DENABLE_QT5) -ENDIF() - -IF(ENABLE_YARP_SUPPORT) - FIND_PACKAGE(YARP REQUIRED) -ENDIF() - -INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${YARP_INCLUDE_DIRS} ${dlib_INCLUDE_DIRS}) - -#ADD_SUBDIRECTORY(src/lib) - -IF (ENABLE_QT5) - ADD_SUBDIRECTORY(src) -ENDIF() - - -INSTALL(FILES - data/gaze_est_deg.dat - data/lid_est.dat - data/vertgaze_est_deg.dat - DESTINATION share/gaze) - -IF(ENABLE_INSTALL_DLIB_FACE_MODEL) - INSTALL(FILES - data/shape_predictor_68_face_landmarks.dat - DESTINATION share/gaze) -ENDIF() diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt new file mode 100644 index 0000000..404f41e --- /dev/null +++ b/data/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 2.8) + +PROJECT(gaze_data) + +OPTION(ENABLE_INSTALL_DLIB_FACE_MODEL "Install the dlib face landmarks model" OFF) + + +INSTALL(FILES + gaze_est_deg.dat + lid_est.dat + vertgaze_est_deg.dat + DESTINATION share/gaze) + +IF(ENABLE_INSTALL_DLIB_FACE_MODEL) + INSTALL(FILES + shape_predictor_68_face_landmarks.dat + DESTINATION share/gaze) +ENDIF() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt deleted file mode 100644 index 396ebda..0000000 --- a/src/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -QT5_WRAP_UI(UI_HEADERS gazergui.ui) - -# INCLUDE_DIRECTORIES(lib) - -find_package(gaze REQUIRED) - -INCLUDE_DIRECTORIES(${gaze_INCLUDE_DIRS}) - -MESSAGE(STATUS ${gaze_INCLUDE_DIRS}) - -IF(ENABLE_YARP_SUPPORT) - ADD_DEFINITIONS(-DENABLE_YARP_SUPPORT) - SET(GAZETOOL_SRC ${GAZETOOL_SRC} yarpsupport.cpp) -ENDIF() - -SET(GAZETOOL_BIN - main.cpp - gazergui.cpp - workerthread.cpp - glimageview.cpp - ${UI_HEADERS}) - -ADD_EXECUTABLE(gazetool ${GAZETOOL_BIN}) -ADD_DEPENDENCIES(gazetool ${UI_HEADERS}) -TARGET_LINK_LIBRARIES(gazetool gaze GL) -qt5_use_modules(gazetool Core Widgets Gui OpenGL) - - -CONFIGURE_FILE("${GAZE_CONFIG_DIR}/gazetool.sh.in" gazetool.sh @ONLY) -MESSAGE( STATUS "${GAZE_CONFIG_DIR}") - -INSTALL(TARGETS gazetool - RUNTIME DESTINATION bin -) - -INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/gazetool.sh DESTINATION bin) diff --git a/src/demo/CMakeLists.txt b/src/demo/CMakeLists.txt new file mode 100644 index 0000000..bea9978 --- /dev/null +++ b/src/demo/CMakeLists.txt @@ -0,0 +1,54 @@ +cmake_minimum_required(VERSION 2.8) + +PROJECT(gazetool) + +set(GAZETOOL_MAJOR_VERSION 0) +set(GAZETOOL_MINOR_VERSION 1) +set(GAZETOOL_PATCH_VERSION 0) +set(GAZETOOL_VERSION + ${GAZETOOL_MAJOR_VERSION}.${GAZETOOL_MINOR_VERSION}.${GAZETOOL_PATCH_VERSION}) + +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + +OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) +option(USE_AVX_INSTRUCTIONS "Compile your program with AVX instructions" OFF) + +if(USE_AVX_INSTRUCTIONS) + add_definitions(-mavx) +endif() + +set(CMAKE_AUTOMOC TRUE) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +FIND_PACKAGE(OpenCV REQUIRED) +FIND_PACKAGE(gaze REQUIRED) +FIND_PACKAGE(Qt5Core REQUIRED) +FIND_PACKAGE(Qt5Widgets REQUIRED) +FIND_PACKAGE(Qt5OpenGL REQUIRED) +FIND_PACKAGE(Qt5Gui REQUIRED) +ADD_DEFINITIONS(-DENABLE_QT5) + +INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS} ${gaze_INCLUDE_DIRS}) + +QT5_WRAP_UI(UI_HEADERS gazergui.ui) + +SET(GAZETOOL_BIN + main.cpp + gazergui.cpp + workerthread.cpp + glimageview.cpp + ${UI_HEADERS}) + +ADD_EXECUTABLE(gazetool ${GAZETOOL_BIN}) +ADD_DEPENDENCIES(gazetool ${UI_HEADERS}) +TARGET_LINK_LIBRARIES(gazetool ${gaze_LIBRARIES} GL) +qt5_use_modules(gazetool Core Widgets Gui OpenGL) + +CONFIGURE_FILE("config/gazetool.sh.in" gazetool.sh @ONLY) + +INSTALL(TARGETS gazetool + RUNTIME DESTINATION bin +) + +INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/gazetool.sh DESTINATION bin) diff --git a/config/gazetool.sh.in b/src/demo/config/gazetool.sh.in similarity index 100% rename from config/gazetool.sh.in rename to src/demo/config/gazetool.sh.in diff --git a/src/gazergui.cpp b/src/demo/gazergui.cpp similarity index 100% rename from src/gazergui.cpp rename to src/demo/gazergui.cpp diff --git a/src/gazergui.h b/src/demo/gazergui.h similarity index 100% rename from src/gazergui.h rename to src/demo/gazergui.h diff --git a/src/gazergui.ui b/src/demo/gazergui.ui similarity index 100% rename from src/gazergui.ui rename to src/demo/gazergui.ui diff --git a/src/glimageview.cpp b/src/demo/glimageview.cpp similarity index 100% rename from src/glimageview.cpp rename to src/demo/glimageview.cpp diff --git a/src/glimageview.h b/src/demo/glimageview.h similarity index 100% rename from src/glimageview.h rename to src/demo/glimageview.h diff --git a/src/main.cpp b/src/demo/main.cpp similarity index 100% rename from src/main.cpp rename to src/demo/main.cpp diff --git a/src/workerthread.cpp b/src/demo/workerthread.cpp similarity index 100% rename from src/workerthread.cpp rename to src/demo/workerthread.cpp diff --git a/src/workerthread.h b/src/demo/workerthread.h similarity index 100% rename from src/workerthread.h rename to src/demo/workerthread.h diff --git a/src/yarpsupport.cpp b/src/demo/yarpsupport.cpp similarity index 100% rename from src/yarpsupport.cpp rename to src/demo/yarpsupport.cpp diff --git a/src/yarpsupport.h b/src/demo/yarpsupport.h similarity index 100% rename from src/yarpsupport.h rename to src/demo/yarpsupport.h diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 5b5319a..a94194f 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -1,3 +1,45 @@ +cmake_minimum_required(VERSION 2.8) + +PROJECT(gaze_lib) + +set(GAZE_LIB_MAJOR_VERSION 0) +set(GAZE_LIB_MINOR_VERSION 1) +set(GAZE_LIB_PATCH_VERSION 0) +set(GAZE_LIB_VERSION + ${GAZE_LIB_MAJOR_VERSION}.${GAZE_LIB_MINOR_VERSION}.${GAZE_LIB_PATCH_VERSION}) + +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + +OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) +OPTION(ENABLE_QT5 "Build demo (QT5 is required)" ON) + +option(USE_AVX_INSTRUCTIONS "Compile your program with AVX instructions" OFF) +if(USE_AVX_INSTRUCTIONS) + add_definitions(-mavx) +endif() + +set(CMAKE_AUTOMOC TRUE) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +FIND_PACKAGE(dlib REQUIRED) +FIND_PACKAGE(OpenCV REQUIRED) +FIND_PACKAGE(Boost COMPONENTS system chrono program_options REQUIRED) + +IF (ENABLE_QT5) + FIND_PACKAGE(Qt5Core REQUIRED) + FIND_PACKAGE(Qt5Widgets REQUIRED) + FIND_PACKAGE(Qt5OpenGL REQUIRED) + FIND_PACKAGE(Qt5Gui REQUIRED) + ADD_DEFINITIONS(-DENABLE_QT5) +ENDIF() + +IF(ENABLE_YARP_SUPPORT) + FIND_PACKAGE(YARP REQUIRED) +ENDIF() + +INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS} ${Boost_INCLUDE_DIR} ${YARP_INCLUDE_DIRS} ${dlib_INCLUDE_DIRS}) + SET(GAZE_LIB_SRC imageprovider.cpp faceparts.cpp @@ -39,9 +81,9 @@ export(PACKAGE gaze) set(INSTALL_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/gaze/") -configure_file("${GAZE_CONFIG_DIR}/gazeConfig.cmake.in" +configure_file("config/gazeConfig.cmake.in" "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gazeConfig.cmake" @ONLY) -configure_file("${GAZE_CONFIG_DIR}/gazeConfigVersion.cmake.in" +configure_file("config/gazeConfigVersion.cmake.in" "${PROJECT_BINARY_DIR}/gazeConfigVersion.cmake" @ONLY) export(TARGETS gaze diff --git a/config/gazeConfig.cmake.in b/src/lib/config/gazeConfig.cmake.in similarity index 100% rename from config/gazeConfig.cmake.in rename to src/lib/config/gazeConfig.cmake.in diff --git a/config/gazeConfigVersion.cmake.in b/src/lib/config/gazeConfigVersion.cmake.in similarity index 100% rename from config/gazeConfigVersion.cmake.in rename to src/lib/config/gazeConfigVersion.cmake.in From 5b8b2132535a20992535d87bdd3f831c83f38319 Mon Sep 17 00:00:00 2001 From: Torben Toeniges Date: Fri, 4 Dec 2015 20:50:15 +0100 Subject: [PATCH 09/17] TODO write Readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 65b55fc..3442d2b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +------------ DEPRECATED ---------------- + This repository contains a calibration free gaze tracking system based on freely available libraries and data sets. The system is able to estimate horizontal and vertical gaze directions as well as eye closeness. A system description will be available in: * `Lars Schillingmann and Yukie Nagai, "Yet Another Gaze Detector: An Embodied Calibration Free System for the iCub Robot", 15th IEEE RAS Humanoids Conference on Humanoid Robots, 2015` From eeacc4b01abace0523aedb457178f6da47f846f7 Mon Sep 17 00:00:00 2001 From: Torben Toeniges Date: Wed, 9 Dec 2015 16:54:14 +0100 Subject: [PATCH 10/17] remove avx from cmake file --- src/demo/CMakeLists.txt | 5 ----- src/lib/CMakeLists.txt | 5 ----- 2 files changed, 10 deletions(-) diff --git a/src/demo/CMakeLists.txt b/src/demo/CMakeLists.txt index bea9978..a1d8adc 100644 --- a/src/demo/CMakeLists.txt +++ b/src/demo/CMakeLists.txt @@ -12,11 +12,6 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) -option(USE_AVX_INSTRUCTIONS "Compile your program with AVX instructions" OFF) - -if(USE_AVX_INSTRUCTIONS) - add_definitions(-mavx) -endif() set(CMAKE_AUTOMOC TRUE) set(CMAKE_INCLUDE_CURRENT_DIR ON) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index a94194f..2610657 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -14,11 +14,6 @@ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) OPTION(ENABLE_QT5 "Build demo (QT5 is required)" ON) -option(USE_AVX_INSTRUCTIONS "Compile your program with AVX instructions" OFF) -if(USE_AVX_INSTRUCTIONS) - add_definitions(-mavx) -endif() - set(CMAKE_AUTOMOC TRUE) set(CMAKE_INCLUDE_CURRENT_DIR ON) From b8016ae5b45b94497ad9154af91f0b3d0df5d30b Mon Sep 17 00:00:00 2001 From: Torben Toeniges Date: Wed, 9 Dec 2015 17:00:13 +0100 Subject: [PATCH 11/17] change name of demo to ui --- src/{demo => ui}/CMakeLists.txt | 0 src/ui/CMakeLists.txt.user | 183 +++++++++++++++++++++++++ src/{demo => ui}/config/gazetool.sh.in | 0 src/{demo => ui}/gazergui.cpp | 0 src/{demo => ui}/gazergui.h | 0 src/{demo => ui}/gazergui.ui | 0 src/{demo => ui}/glimageview.cpp | 0 src/{demo => ui}/glimageview.h | 0 src/{demo => ui}/main.cpp | 0 src/{demo => ui}/workerthread.cpp | 0 src/{demo => ui}/workerthread.h | 0 src/{demo => ui}/yarpsupport.cpp | 0 src/{demo => ui}/yarpsupport.h | 0 13 files changed, 183 insertions(+) rename src/{demo => ui}/CMakeLists.txt (100%) create mode 100644 src/ui/CMakeLists.txt.user rename src/{demo => ui}/config/gazetool.sh.in (100%) rename src/{demo => ui}/gazergui.cpp (100%) rename src/{demo => ui}/gazergui.h (100%) rename src/{demo => ui}/gazergui.ui (100%) rename src/{demo => ui}/glimageview.cpp (100%) rename src/{demo => ui}/glimageview.h (100%) rename src/{demo => ui}/main.cpp (100%) rename src/{demo => ui}/workerthread.cpp (100%) rename src/{demo => ui}/workerthread.h (100%) rename src/{demo => ui}/yarpsupport.cpp (100%) rename src/{demo => ui}/yarpsupport.h (100%) diff --git a/src/demo/CMakeLists.txt b/src/ui/CMakeLists.txt similarity index 100% rename from src/demo/CMakeLists.txt rename to src/ui/CMakeLists.txt diff --git a/src/ui/CMakeLists.txt.user b/src/ui/CMakeLists.txt.user new file mode 100644 index 0000000..08ca203 --- /dev/null +++ b/src/ui/CMakeLists.txt.user @@ -0,0 +1,183 @@ + + + + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + true + 1 + true + 0 + true + 0 + 8 + true + 1 + true + true + true + false + + + + ProjectExplorer.Project.PluginSettings + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + {8d22daa1-e5a0-4b77-8382-318fed004393} + 0 + 0 + 0 + + false + /home/ttoenige/behavior/src/gazetool/src/ui/build + + + + + false + false + true + Make + + CMakeProjectManager.MakeStep + + 1 + Build + + ProjectExplorer.BuildSteps.Build + + + + clean + + true + false + true + Make + + CMakeProjectManager.MakeStep + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Default + Default + CMakeProjectManager.CMakeBuildConfiguration + + 1 + + + 0 + Deploy + + ProjectExplorer.BuildSteps.Deploy + + 1 + Deploy locally + + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + + false + false + false + false + true + 0.01 + 10 + true + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + + + false + %{buildDir} + Custom Executable + + ProjectExplorer.CustomExecutableRunConfiguration + 3768 + true + false + false + false + true + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.EnvironmentId + {ef37e8e6-e439-4b1d-837f-a43a30b8de16} + + + ProjectExplorer.Project.Updater.FileVersion + 15 + + diff --git a/src/demo/config/gazetool.sh.in b/src/ui/config/gazetool.sh.in similarity index 100% rename from src/demo/config/gazetool.sh.in rename to src/ui/config/gazetool.sh.in diff --git a/src/demo/gazergui.cpp b/src/ui/gazergui.cpp similarity index 100% rename from src/demo/gazergui.cpp rename to src/ui/gazergui.cpp diff --git a/src/demo/gazergui.h b/src/ui/gazergui.h similarity index 100% rename from src/demo/gazergui.h rename to src/ui/gazergui.h diff --git a/src/demo/gazergui.ui b/src/ui/gazergui.ui similarity index 100% rename from src/demo/gazergui.ui rename to src/ui/gazergui.ui diff --git a/src/demo/glimageview.cpp b/src/ui/glimageview.cpp similarity index 100% rename from src/demo/glimageview.cpp rename to src/ui/glimageview.cpp diff --git a/src/demo/glimageview.h b/src/ui/glimageview.h similarity index 100% rename from src/demo/glimageview.h rename to src/ui/glimageview.h diff --git a/src/demo/main.cpp b/src/ui/main.cpp similarity index 100% rename from src/demo/main.cpp rename to src/ui/main.cpp diff --git a/src/demo/workerthread.cpp b/src/ui/workerthread.cpp similarity index 100% rename from src/demo/workerthread.cpp rename to src/ui/workerthread.cpp diff --git a/src/demo/workerthread.h b/src/ui/workerthread.h similarity index 100% rename from src/demo/workerthread.h rename to src/ui/workerthread.h diff --git a/src/demo/yarpsupport.cpp b/src/ui/yarpsupport.cpp similarity index 100% rename from src/demo/yarpsupport.cpp rename to src/ui/yarpsupport.cpp diff --git a/src/demo/yarpsupport.h b/src/ui/yarpsupport.h similarity index 100% rename from src/demo/yarpsupport.h rename to src/ui/yarpsupport.h From 991b88725ca7a488e86aacfb97718ec204d9f3ed Mon Sep 17 00:00:00 2001 From: Torben Toeniges Date: Thu, 10 Dec 2015 11:02:00 +0700 Subject: [PATCH 12/17] renaming library to gazetool --- src/lib/config/gazetoolConfig.cmake.in | 16 ++++++++++++++++ src/lib/config/gazetoolConfigVersion.cmake.in | 11 +++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/lib/config/gazetoolConfig.cmake.in create mode 100644 src/lib/config/gazetoolConfigVersion.cmake.in diff --git a/src/lib/config/gazetoolConfig.cmake.in b/src/lib/config/gazetoolConfig.cmake.in new file mode 100644 index 0000000..ffd8565 --- /dev/null +++ b/src/lib/config/gazetoolConfig.cmake.in @@ -0,0 +1,16 @@ +# - Config file for the gazetool package +# It defines the following variables +# GAZETOOL_INCLUDE_DIRS - include directories for FooBar +# GAZETOOL_LIBRARIES - libraries to link against + +# Compute paths +get_filename_component(gazetool_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + +set(gazetool_INCLUDE_DIRS "@INSTALL_INCLUDE_DIRS@") + +# Our library dependencies (contains definitions for IMPORTED targets) +if(NOT TARGET gazetool) + include("${gazetool_CMAKE_DIR}/gazetoolTargets.cmake") +endif() + +set(gazetool_LIBRARIES gazetool) diff --git a/src/lib/config/gazetoolConfigVersion.cmake.in b/src/lib/config/gazetoolConfigVersion.cmake.in new file mode 100644 index 0000000..95941c5 --- /dev/null +++ b/src/lib/config/gazetoolConfigVersion.cmake.in @@ -0,0 +1,11 @@ +set(PACKAGE_VERSION "@gazetool_VERSION@") + +# Check whether the requested PACKAGE_FIND_VERSION is compatible +if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() From 5834481f64212a1ddfd1b9e676edc28ee25c310e Mon Sep 17 00:00:00 2001 From: Torben Toeniges Date: Thu, 10 Dec 2015 11:02:07 +0700 Subject: [PATCH 13/17] renaming library to gazetool --- data/CMakeLists.txt | 6 +-- src/lib/CMakeLists.txt | 55 +++++++++++------------ src/lib/config/gazeConfig.cmake.in | 16 ------- src/lib/config/gazeConfigVersion.cmake.in | 11 ----- src/ui/CMakeLists.txt | 16 +++---- src/ui/CMakeLists.txt.user | 14 +++--- src/ui/config/gazetool.sh.in | 2 +- 7 files changed, 44 insertions(+), 76 deletions(-) delete mode 100644 src/lib/config/gazeConfig.cmake.in delete mode 100644 src/lib/config/gazeConfigVersion.cmake.in diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 404f41e..3edd9b3 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 2.8) -PROJECT(gaze_data) +PROJECT(gazetool_data) OPTION(ENABLE_INSTALL_DLIB_FACE_MODEL "Install the dlib face landmarks model" OFF) @@ -9,10 +9,10 @@ INSTALL(FILES gaze_est_deg.dat lid_est.dat vertgaze_est_deg.dat - DESTINATION share/gaze) + DESTINATION share/gazetool) IF(ENABLE_INSTALL_DLIB_FACE_MODEL) INSTALL(FILES shape_predictor_68_face_landmarks.dat - DESTINATION share/gaze) + DESTINATION share/gazetool) ENDIF() diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 2610657..2253ba2 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -1,12 +1,12 @@ cmake_minimum_required(VERSION 2.8) -PROJECT(gaze_lib) +PROJECT(libgazetool) -set(GAZE_LIB_MAJOR_VERSION 0) -set(GAZE_LIB_MINOR_VERSION 1) -set(GAZE_LIB_PATCH_VERSION 0) -set(GAZE_LIB_VERSION - ${GAZE_LIB_MAJOR_VERSION}.${GAZE_LIB_MINOR_VERSION}.${GAZE_LIB_PATCH_VERSION}) +set(GAZETOOL_LIB_MAJOR_VERSION 0) +set(GAZETOOL_LIB_MINOR_VERSION 1) +set(GAZETOOL_LIB_PATCH_VERSION 0) +set(GAZETOOL_LIB_VERSION + ${GAZETOOL_LIB_MAJOR_VERSION}.${GAZETOOL_LIB_MINOR_VERSION}.${GAZETOOL_LIB_PATCH_VERSION}) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) @@ -35,7 +35,7 @@ ENDIF() INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS} ${Boost_INCLUDE_DIR} ${YARP_INCLUDE_DIRS} ${dlib_INCLUDE_DIRS}) -SET(GAZE_LIB_SRC +SET(GAZETOOL_LIB_SRC imageprovider.cpp faceparts.cpp pupilfinder.cpp @@ -57,44 +57,39 @@ SET(GAZE_LIB_SRC IF(ENABLE_YARP_SUPPORT) ADD_DEFINITIONS(-DENABLE_YARP_SUPPORT) - SET(GAZE_LIB_SRC ${GAZE_LIB_SRC} yarpsupport.cpp) + SET(GAZETOOL_LIB_SRC ${GAZETOOL_LIB_SRC} yarpsupport.cpp) ENDIF() -ADD_LIBRARY(gaze SHARED ${GAZE_LIB_SRC}) -target_link_libraries(gaze ${OpenCV_LIBS} ${dlib_LIBRARIES} ${Boost_LIBRARIES} ${YARP_LIBRARIES}) +ADD_LIBRARY(gazetool SHARED ${GAZETOOL_LIB_SRC}) +target_link_libraries(gazetool ${OpenCV_LIBS} ${dlib_LIBRARIES} ${Boost_LIBRARIES} ${YARP_LIBRARIES}) IF (ENABLE_QT5) - qt5_use_modules(gaze Core) + qt5_use_modules(gazetool Core) ENDIF() +set(INSTALL_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/gazetool/") -export(TARGETS gaze - FILE "${PROJECT_BINARY_DIR}/gazeTargets.cmake") -export(PACKAGE gaze) +configure_file("config/gazetoolConfig.cmake.in" + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gazetoolConfig.cmake" @ONLY) +configure_file("config/gazetoolConfigVersion.cmake.in" + "${PROJECT_BINARY_DIR}/gazetoolConfigVersion.cmake" @ONLY) +export(TARGETS gazetool + FILE "${PROJECT_BINARY_DIR}/gazetoolTargets.cmake") +export(PACKAGE gazetool) -set(INSTALL_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/gaze/") - -configure_file("config/gazeConfig.cmake.in" - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gazeConfig.cmake" @ONLY) -configure_file("config/gazeConfigVersion.cmake.in" - "${PROJECT_BINARY_DIR}/gazeConfigVersion.cmake" @ONLY) - -export(TARGETS gaze - FILE "${PROJECT_BINARY_DIR}/gazeTargets.cmake") - -INSTALL(TARGETS gaze +INSTALL(TARGETS gazetool LIBRARY DESTINATION lib ) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ - DESTINATION "include/gaze" + DESTINATION "include/gazetool" FILES_MATCHING PATTERN "*.h") install(FILES - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gazeConfig.cmake" - "${PROJECT_BINARY_DIR}/gazeConfigVersion.cmake" - "${PROJECT_BINARY_DIR}/gazeTargets.cmake" - DESTINATION "lib/cmake/gaze" COMPONENT dev) + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gazetoolConfig.cmake" + "${PROJECT_BINARY_DIR}/gazetoolConfigVersion.cmake" + "${PROJECT_BINARY_DIR}/gazetoolTargets.cmake" + DESTINATION "lib/cmake/gazetool" COMPONENT dev) diff --git a/src/lib/config/gazeConfig.cmake.in b/src/lib/config/gazeConfig.cmake.in deleted file mode 100644 index c91fb32..0000000 --- a/src/lib/config/gazeConfig.cmake.in +++ /dev/null @@ -1,16 +0,0 @@ -# - Config file for the gaze package -# It defines the following variables -# GAZE_INCLUDE_DIRS - include directories for FooBar -# GAZE_LIBRARIES - libraries to link against - -# Compute paths -get_filename_component(gaze_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) - -set(gaze_INCLUDE_DIRS "@INSTALL_INCLUDE_DIRS@") - -# Our library dependencies (contains definitions for IMPORTED targets) -if(NOT TARGET gaze) - include("${gaze_CMAKE_DIR}/gazeTargets.cmake") -endif() - -set(gaze_LIBRARIES gaze) diff --git a/src/lib/config/gazeConfigVersion.cmake.in b/src/lib/config/gazeConfigVersion.cmake.in deleted file mode 100644 index 768f88f..0000000 --- a/src/lib/config/gazeConfigVersion.cmake.in +++ /dev/null @@ -1,11 +0,0 @@ -set(PACKAGE_VERSION "@gaze_VERSION@") - -# Check whether the requested PACKAGE_FIND_VERSION is compatible -if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - set(PACKAGE_VERSION_COMPATIBLE TRUE) - if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index a1d8adc..aba7654 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 2.8) -PROJECT(gazetool) +PROJECT(gazetool_ui) set(GAZETOOL_MAJOR_VERSION 0) set(GAZETOOL_MINOR_VERSION 1) @@ -17,14 +17,14 @@ set(CMAKE_AUTOMOC TRUE) set(CMAKE_INCLUDE_CURRENT_DIR ON) FIND_PACKAGE(OpenCV REQUIRED) -FIND_PACKAGE(gaze REQUIRED) +FIND_PACKAGE(gazetool REQUIRED) FIND_PACKAGE(Qt5Core REQUIRED) FIND_PACKAGE(Qt5Widgets REQUIRED) FIND_PACKAGE(Qt5OpenGL REQUIRED) FIND_PACKAGE(Qt5Gui REQUIRED) ADD_DEFINITIONS(-DENABLE_QT5) -INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS} ${gaze_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS} ${gazetool_INCLUDE_DIRS}) QT5_WRAP_UI(UI_HEADERS gazergui.ui) @@ -35,14 +35,14 @@ SET(GAZETOOL_BIN glimageview.cpp ${UI_HEADERS}) -ADD_EXECUTABLE(gazetool ${GAZETOOL_BIN}) -ADD_DEPENDENCIES(gazetool ${UI_HEADERS}) -TARGET_LINK_LIBRARIES(gazetool ${gaze_LIBRARIES} GL) -qt5_use_modules(gazetool Core Widgets Gui OpenGL) +ADD_EXECUTABLE(gazetool_ui ${GAZETOOL_BIN}) +ADD_DEPENDENCIES(gazetool_ui ${UI_HEADERS}) +TARGET_LINK_LIBRARIES(gazetool_ui ${gazetool_LIBRARIES} GL) +qt5_use_modules(gazetool_ui Core Widgets Gui OpenGL) CONFIGURE_FILE("config/gazetool.sh.in" gazetool.sh @ONLY) -INSTALL(TARGETS gazetool +INSTALL(TARGETS gazetool_ui RUNTIME DESTINATION bin ) diff --git a/src/ui/CMakeLists.txt.user b/src/ui/CMakeLists.txt.user index 08ca203..199c32b 100644 --- a/src/ui/CMakeLists.txt.user +++ b/src/ui/CMakeLists.txt.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget @@ -149,15 +149,15 @@ 13 14 + gazetool_ui + + false + 2 - - - false - %{buildDir} - Custom Executable + gazetool_ui - ProjectExplorer.CustomExecutableRunConfiguration + CMakeProjectManager.CMakeRunConfiguration.gazetool_ui 3768 true false diff --git a/src/ui/config/gazetool.sh.in b/src/ui/config/gazetool.sh.in index f34a54b..16e592b 100755 --- a/src/ui/config/gazetool.sh.in +++ b/src/ui/config/gazetool.sh.in @@ -1,3 +1,3 @@ #!/bin/bash prefix="@CMAKE_INSTALL_PREFIX@" -exec "$prefix/bin/gazetool" -m "$prefix/share/gaze/shape_predictor_68_face_landmarks.dat" --estimate-gaze "$prefix/share/gaze/gaze_est_deg.dat" --estimate-verticalgaze "$prefix/share/gaze/vertgaze_est_deg.dat" --estimate-lid "$prefix/share/gaze/lid_est.dat" "$@" +exec "$prefix/bin/gazetool_ui" -m "$prefix/share/gazetool/shape_predictor_68_face_landmarks.dat" --estimate-gaze "$prefix/share/gazetool/gaze_est_deg.dat" --estimate-verticalgaze "$prefix/share/gazetool/vertgaze_est_deg.dat" --estimate-lid "$prefix/share/gazetool/lid_est.dat" "$@" From c48562d33fe149d479b4bb1e91e52f8fa57dd45c Mon Sep 17 00:00:00 2001 From: Torben Toeniges Date: Thu, 10 Dec 2015 11:44:09 +0700 Subject: [PATCH 14/17] global cmake configuration file --- CMakeLists.txt | 51 +++++++++++ data/CMakeLists.txt | 2 +- src/ui/CMakeLists.txt.user | 183 ------------------------------------- 3 files changed, 52 insertions(+), 184 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 src/ui/CMakeLists.txt.user diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..45001e5 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 2.8) + +PROJECT(gazetool_demo) + +set(GAZETOOL_MAJOR_VERSION 0) +set(GAZETOOL_MINOR_VERSION 1) +set(GAZETOOL_PATCH_VERSION 0) +set(GAZETOOL_VERSION + ${GAZETOOL_MAJOR_VERSION}.${GAZETOOL_MINOR_VERSION}.${GAZETOOL_PATCH_VERSION}) + +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + +OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) + +add_subdirectory(src/lib) +add_subdirectory(data) + +set(CMAKE_AUTOMOC TRUE) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +FIND_PACKAGE(OpenCV REQUIRED) +FIND_PACKAGE(Qt5Core REQUIRED) +FIND_PACKAGE(Qt5Widgets REQUIRED) +FIND_PACKAGE(Qt5OpenGL REQUIRED) +FIND_PACKAGE(Qt5Gui REQUIRED) +ADD_DEFINITIONS(-DENABLE_QT5) + +INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS} src/ui src/lib) + +QT5_WRAP_UI(UI_HEADERS src/ui/gazergui.ui) + +SET(GAZETOOL_BIN + src/ui/main.cpp + src/ui/gazergui.cpp + src/ui/workerthread.cpp + src/ui/glimageview.cpp + ${UI_HEADERS}) + +ADD_EXECUTABLE(gazetool_ui ${GAZETOOL_BIN}) +ADD_DEPENDENCIES(gazetool_ui ${UI_HEADERS}) +TARGET_LINK_LIBRARIES(gazetool_ui gazetool GL) +qt5_use_modules(gazetool_ui Core Widgets Gui OpenGL) + +CONFIGURE_FILE("src/ui/config/gazetool.sh.in" gazetool.sh @ONLY) + +INSTALL(TARGETS gazetool_ui + RUNTIME DESTINATION bin +) + +INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/gazetool.sh DESTINATION bin) diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 3edd9b3..196fc42 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8) PROJECT(gazetool_data) -OPTION(ENABLE_INSTALL_DLIB_FACE_MODEL "Install the dlib face landmarks model" OFF) +OPTION(ENABLE_INSTALL_DLIB_FACE_MODEL "Install the dlib face landmarks model" ON) INSTALL(FILES diff --git a/src/ui/CMakeLists.txt.user b/src/ui/CMakeLists.txt.user deleted file mode 100644 index 199c32b..0000000 --- a/src/ui/CMakeLists.txt.user +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - true - 1 - true - 0 - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - - ProjectExplorer.Project.Target.0 - - Desktop - Desktop - {8d22daa1-e5a0-4b77-8382-318fed004393} - 0 - 0 - 0 - - false - /home/ttoenige/behavior/src/gazetool/src/ui/build - - - - - false - false - true - Make - - CMakeProjectManager.MakeStep - - 1 - Build - - ProjectExplorer.BuildSteps.Build - - - - clean - - true - false - true - Make - - CMakeProjectManager.MakeStep - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Default - Default - CMakeProjectManager.CMakeBuildConfiguration - - 1 - - - 0 - Deploy - - ProjectExplorer.BuildSteps.Deploy - - 1 - Deploy locally - - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - - false - false - false - false - true - 0.01 - 10 - true - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - gazetool_ui - - false - - 2 - - gazetool_ui - - CMakeProjectManager.CMakeRunConfiguration.gazetool_ui - 3768 - true - false - false - false - true - - 1 - - - - ProjectExplorer.Project.TargetCount - 1 - - - ProjectExplorer.Project.Updater.EnvironmentId - {ef37e8e6-e439-4b1d-837f-a43a30b8de16} - - - ProjectExplorer.Project.Updater.FileVersion - 15 - - From 578edcafdb02cc93e0d86a69e79199137ec11a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torben=20T=C3=B6niges=20=28ttoenige=29?= Date: Wed, 16 Dec 2015 14:00:41 +0100 Subject: [PATCH 15/17] adding dependencies --- CMakeLists.txt | 16 +++++++++++++++- data/CMakeLists.txt | 5 +++-- src/lib/CMakeLists.txt | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 45001e5..a3be592 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,13 +20,27 @@ set(CMAKE_AUTOMOC TRUE) set(CMAKE_INCLUDE_CURRENT_DIR ON) FIND_PACKAGE(OpenCV REQUIRED) +FIND_PACKAGE(dlib REQUIRED) +FIND_PACKAGE(Boost COMPONENTS system chrono program_options REQUIRED) FIND_PACKAGE(Qt5Core REQUIRED) FIND_PACKAGE(Qt5Widgets REQUIRED) FIND_PACKAGE(Qt5OpenGL REQUIRED) FIND_PACKAGE(Qt5Gui REQUIRED) ADD_DEFINITIONS(-DENABLE_QT5) -INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS} src/ui src/lib) + +IF(ENABLE_YARP_SUPPORT) + FIND_PACKAGE(YARP REQUIRED) +ENDIF() + +INCLUDE_DIRECTORIES( + ${OpenCV_INCLUDE_DIRS} + ${Boost_INCLUDE_DIR} + ${YARP_INCLUDE_DIRS} + ${dlib_INCLUDE_DIRS} + src/lib + src/ui) + QT5_WRAP_UI(UI_HEADERS src/ui/gazergui.ui) diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 196fc42..866c939 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -11,8 +11,9 @@ INSTALL(FILES vertgaze_est_deg.dat DESTINATION share/gazetool) + IF(ENABLE_INSTALL_DLIB_FACE_MODEL) INSTALL(FILES - shape_predictor_68_face_landmarks.dat - DESTINATION share/gazetool) + shape_predictor_68_face_landmarks.dat + DESTINATION share/gazetool) ENDIF() diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 2253ba2..57877f0 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -12,7 +12,7 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) -OPTION(ENABLE_QT5 "Build demo (QT5 is required)" ON) +OPTION(ENABLE_QT5 "Build QT5 support (QT5 is required)" ON) set(CMAKE_AUTOMOC TRUE) set(CMAKE_INCLUDE_CURRENT_DIR ON) From c1e920eaf3a1d3f22cc11a6ec02a364cf0da21de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torben=20T=C3=B6niges=20=28ttoenige=29?= Date: Wed, 16 Dec 2015 14:11:14 +0100 Subject: [PATCH 16/17] readme update --- README.md | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3442d2b..80ff862 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,13 @@ ------------- DEPRECATED ---------------- - This repository contains a calibration free gaze tracking system based on freely available libraries and data sets. The system is able to estimate horizontal and vertical gaze directions as well as eye closeness. A system description will be available in: * `Lars Schillingmann and Yukie Nagai, "Yet Another Gaze Detector: An Embodied Calibration Free System for the iCub Robot", 15th IEEE RAS Humanoids Conference on Humanoid Robots, 2015` Please cite the above paper when using this module for your research. -## Installation +## Out of the box demo installation Make sure you have the following dependencies available / installed: * QT5: http://www.qt.io/download/ -* opencv 2.x.x: http://opencv.org/downloads.html +* opencv: http://opencv.org/downloads.html * boost: http://www.boost.org/ * dlib: http://dlib.net/ * run `getFaceAlignmentModel.sh` in the `data` directory to download dlib's face alignment model which is required for running gazetool. @@ -23,6 +21,28 @@ Compiling ## Running gazetool * Run `gazetool.sh -c 0` to use the first webcam attached to your system +## Manual library installation (no QT is needed) + +Make sure you have the following dependencies available / installed: +* opencv: http://opencv.org/downloads.html +* boost: http://www.boost.org/ +* dlib: http://dlib.net/ +* run `getFaceAlignmentModel.sh` in the `data` directory to download dlib's face alignment model which is required for running gazetool. + +Compiling +* cmake is used, thus a standard cmake configure run is required in the data and the src/lib folder +* `cd data` +* `mkdir build && cd build && cmake ..` +* run `make` +* run `make install` +* `cd ../../src/lib` +* `mkdir build && cd build && cmake ..` +* run `make` +* run `make install` + +This will install the library and all necessary configuration files to use it. +Furthermore a cmake module file is created in `${CMAKE_INSTALL_PREFIX}/lib/cmake/gazetool` which can be used to link against this library. + ## Technical Notes * Sync to vblank might negatively affect performance From 6ea563bd60a8992a7e5aff8618a853a74bf454ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torben=20T=C3=B6niges=20=28ttoenige=29?= Date: Thu, 17 Dec 2015 13:44:25 +0100 Subject: [PATCH 17/17] remove last qt dependency of the library --- src/lib/CMakeLists.txt | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 57877f0..9ff9852 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -12,7 +12,6 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) OPTION(ENABLE_YARP_SUPPORT "Enable yarp support" OFF) -OPTION(ENABLE_QT5 "Build QT5 support (QT5 is required)" ON) set(CMAKE_AUTOMOC TRUE) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -21,13 +20,6 @@ FIND_PACKAGE(dlib REQUIRED) FIND_PACKAGE(OpenCV REQUIRED) FIND_PACKAGE(Boost COMPONENTS system chrono program_options REQUIRED) -IF (ENABLE_QT5) - FIND_PACKAGE(Qt5Core REQUIRED) - FIND_PACKAGE(Qt5Widgets REQUIRED) - FIND_PACKAGE(Qt5OpenGL REQUIRED) - FIND_PACKAGE(Qt5Gui REQUIRED) - ADD_DEFINITIONS(-DENABLE_QT5) -ENDIF() IF(ENABLE_YARP_SUPPORT) FIND_PACKAGE(YARP REQUIRED) @@ -64,9 +56,6 @@ ENDIF() ADD_LIBRARY(gazetool SHARED ${GAZETOOL_LIB_SRC}) target_link_libraries(gazetool ${OpenCV_LIBS} ${dlib_LIBRARIES} ${Boost_LIBRARIES} ${YARP_LIBRARIES}) -IF (ENABLE_QT5) - qt5_use_modules(gazetool Core) -ENDIF() set(INSTALL_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/gazetool/")