├── Dockerfile ├── LICENSE.md ├── README.md ├── docker ├── README.md ├── build │ ├── Makefile │ ├── Release │ │ ├── .deps │ │ │ └── Release │ │ │ │ ├── gesture.node.d │ │ │ │ └── obj.target │ │ │ │ ├── gesture.node.d │ │ │ │ └── gesture │ │ │ │ ├── admobilize-detection-manager │ │ │ │ └── lib │ │ │ │ │ └── pico │ │ │ │ │ ├── facedetect.o.d │ │ │ │ │ ├── motiondetector.o.d │ │ │ │ │ ├── picornt.o.d │ │ │ │ │ └── uniqueness2.o.d │ │ │ │ └── src │ │ │ │ ├── curl_handler.o.d │ │ │ │ ├── drawing.o.d │ │ │ │ ├── gesture_manager.o.d │ │ │ │ ├── gesture_manager_impl.o.d │ │ │ │ ├── gesture_recognition.o.d │ │ │ │ └── sha1.o.d │ │ ├── gesture.node │ │ └── obj.target │ │ │ ├── gesture.node │ │ │ └── gesture │ │ │ ├── admobilize-detection-manager │ │ │ └── lib │ │ │ │ └── pico │ │ │ │ ├── facedetect.o │ │ │ │ ├── motiondetector.o │ │ │ │ ├── picornt.o │ │ │ │ └── uniqueness2.o │ │ │ └── src │ │ │ ├── curl_handler.o │ │ │ ├── drawing.o │ │ │ ├── gesture_manager.o │ │ │ ├── gesture_manager_impl.o │ │ │ ├── gesture_recognition.o │ │ │ └── sha1.o │ ├── binding.Makefile │ ├── config.gypi │ └── gesture.target.mk ├── classifiers │ ├── .gitignore │ ├── fist_classifier │ ├── palm_classifier │ └── thumbup_classifier ├── contributors.txt ├── examples │ ├── detectGesture.js │ ├── detection-server │ │ ├── package.json │ │ ├── public │ │ │ ├── index.html │ │ │ ├── js │ │ │ │ └── camera-capture.js │ │ │ └── style │ │ │ │ └── main.css │ │ └── server.js │ ├── fist.jpg │ ├── handTracker.js │ ├── logo.png │ ├── palm.jpg │ ├── processImage.js │ └── thumb_up.jpg ├── lib │ └── gesture.js └── package.json ├── osx └── README.md └── windows └── README.md /Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # Builds OpenCV3 environment 3 | # If building on OSX or Windows you want to add at least 4 cores to the VirtualBox 4 | # Boot2Docker machine to build OpenCV3 5 | # 6 | 7 | FROM debian:jessie 8 | 9 | MAINTAINER Willem Prins 10 | 11 | ENV OPENCV_VERSION=3.1.0 12 | 13 | RUN apt-get update && apt-get -yq install \ 14 | build-essential \ 15 | cmake \ 16 | ccache \ 17 | curl \ 18 | gfortran \ 19 | git \ 20 | libjpeg-dev \ 21 | libtiff5-dev \ 22 | libjasper-dev \ 23 | libpng12-dev \ 24 | libavcodec-dev \ 25 | libavformat-dev \ 26 | libgstreamer0.10-dev \ 27 | libgstreamer-plugins-base0.10-dev \ 28 | libgtk2.0-dev \ 29 | libswscale-dev \ 30 | libv4l-dev \ 31 | libatlas-base-dev \ 32 | libfreetype6-dev \ 33 | libxvidcore-dev \ 34 | libx264-dev \ 35 | libtbb-dev \ 36 | libavutil-dev \ 37 | libavdevice-dev \ 38 | libavfilter-dev \ 39 | libavresample-dev \ 40 | libpostproc-dev \ 41 | libopenexr-dev \ 42 | libssl-dev \ 43 | libcurl4-openssl-dev \ 44 | libpthread-stubs0-dev \ 45 | pkg-config \ 46 | python-dev \ 47 | vim \ 48 | yasm \ 49 | && apt-get clean && rm -rf /var/tmp/* /var/lib/apt/lists/* /tmp/* 50 | 51 | # ---------------------------------------Node JS --------------------------------------------- 52 | RUN set -ex \ 53 | && for key in \ 54 | 9554F04D7259F04124DE6B476D5A82AC7E37093B \ 55 | 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ 56 | 0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \ 57 | FD3A5288F042B6850C66B31F09FE44734EB7990E \ 58 | 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 59 | DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ 60 | ; do \ 61 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ 62 | done 63 | 64 | ENV NPM_CONFIG_LOGLEVEL info 65 | ENV NODE_VERSION 5.3.0 66 | 67 | RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz" \ 68 | && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ 69 | && gpg --verify SHASUMS256.txt.asc \ 70 | && grep " node-v$NODE_VERSION-linux-x64.tar.gz\$" SHASUMS256.txt.asc | sha256sum -c - \ 71 | && tar -xzf "node-v$NODE_VERSION-linux-x64.tar.gz" -C /usr/local --strip-components=1 \ 72 | && rm "node-v$NODE_VERSION-linux-x64.tar.gz" SHASUMS256.txt.asc 73 | 74 | RUN npm install -g node-gyp 75 | 76 | # ------------------------------------- OpenCV ---------------------------------------- 77 | RUN mkdir -p /opt/src/opencv-${OPENCV_VERSION}/build \ 78 | && curl -sLo /opt/src/opencv3.tar.gz \ 79 | https://github.com/Itseez/opencv/archive/${OPENCV_VERSION}.tar.gz \ 80 | && tar -xzvf /opt/src/opencv3.tar.gz -C /opt/src \ 81 | && cd /opt/src/opencv-${OPENCV_VERSION}/build \ 82 | && cmake -D CMAKE_BUILD_TYPE=RELEASE \ 83 | -D CMAKE_INSTALL_PREFIX=/usr/local \ 84 | -D WITH_TBB=ON \ 85 | -D WITH_IPP=OFF \ 86 | -D WITH_OPENMP=ON \ 87 | -D WITH_GSTREAMER=ON .. \ 88 | && make -j "$(nproc)" \ 89 | && make install \ 90 | && ldconfig -v \ 91 | && rm -rf /opt/src 92 | 93 | # ----------------------------------- nlohmann/json --------------------------------------- 94 | RUN mkdir -p /opt/src/json/build \ 95 | && curl -Lo /opt/src/json.tar.gz https://github.com/nlohmann/json/tarball/master \ 96 | && tar -xzvf /opt/src/json.tar.gz -C /opt/src/json --strip-components=1 \ 97 | && mv /opt/src/json/src/json.hpp /usr/include \ 98 | && rm -rf /opt/sr 99 | 100 | #---------------------------------- Gesture --------------------------------------- 101 | 102 | RUN git clone https://github.com/matrix-io/matrix-gesture-cpp-sdk.git /root/gesture-cpp-sdk \ 103 | && git clone https://github.com/matrix-io/matrix-gesture-node-sdk.git /root/gesture-node-sdk 104 | 105 | RUN cd /root/gesture-node-sdk \ 106 | && npm install \ 107 | && npm run root-setup 108 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | LICENSE: 2 | GLP v3.0 3 | gesture.ai/#/commercial for commercial interests 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Matrix Gesture Node SDK 2 | ![alt text](https://github.com/matrix-io/matrix-gesture-node-sdk/raw/master/docker/examples/logo.png "Gesture.ai Logo") 3 | 4 | A high performance C++ library with node bindings to easily incorporate gesture recognition into any project. It uses a trained object detection method (with over 100,000 samples per gesture!) and is therefore robust to different skin colors and lighting changes. 5 | 6 | For the initial release the SDK is only linux compatible, but it can be extended to other systems via Docker and a WebSocket. 7 | 8 | There are currently three detectable gestures: open PALM, THUMB UP, and FIST. Tracking options are available so it can track changes between hands. Smoothing filters are available so fine control can be used. 9 | 10 | ![alt text](https://github.com/matrix-io/matrix-gesture-node-sdk/raw/master/docker/examples/palm.jpg "Palm") 11 | ![alt text](https://github.com/matrix-io/matrix-gesture-node-sdk/raw/master/docker/examples/fist.jpg "Fist") 12 | ![alt text](https://github.com/matrix-io/matrix-gesture-node-sdk/raw/master/docker/examples/thumb_up.jpg "Thumb Up") 13 | 14 | ### Dependences: 15 | ###### Linux 16 | gcc 4.9.3+, 17 | OpenCV 3.1.0, 18 | Node 0.12+ 19 | ###### Windows -- coming soon 20 | MSVC C++ distribution 21 | MSVC 14 (May work on others, only tested with VS 14) 22 | ###### OSX -- coming soon 23 | OpenCV 3.1.0 24 | Clang 3.4+ 25 | 26 | ## Examples (with Docker) 27 | As it is currently only linux compatible we have created an image on DockerHub under admobilize/gesture which includes all required dependencies. If you would like to build the Dockerfile yourself it is included in the repository. 28 | 29 | * First give root access to Docker as an X server. This will allow the camera feed to be accessed. 30 | 31 | ```xhost local:root``` 32 | 33 | * Download the image and create and run a daemon container, giving it access to your default camera and a port through which to host a webserver. 34 | 35 | ```sudo docker run -itd -p 8080:8080 -p 3000:3000 --privileged \ 36 | -name gesture \ 37 | -v /dev/video0:/dev/video0 \ 38 | -v /tmp/.X11-unix:/tmp/.X11-unix \ 39 | -e DISPLAY=$DISPLAY admobilize/gesture``` 40 | 41 | * Execute a command inside the docker, to run the node sample `handTracker.js` 42 | 43 | ```sudo docker exec -it gesture /bin/sh -c 'cd ~/matrix-gesture-node-sdk/; examples/handTracker.js'``` 44 | 45 | This pops up a window with the feed from your default camera and runs the tracking algorithm looking for and boxing whenever it detects a flat palm. It will also look for a thumbs up or a closed fist if the palm briefly disappears. Try out some of the examples or write your own using the documentation! 46 | 47 | It will return a `JSON` object with the location (both center (xc,yc) and top left corner (x,y)), size, hand type, and unique id. 48 | 49 | ```{ 50 | "results": 51 | [{ 52 | "hand_type":0, 53 | "height":184, 54 | "id":5, 55 | "width":184, 56 | "x":181, 57 | "xc":273, 58 | "y":196, 59 | "yc":288 60 | }] 61 | }``` 62 | 63 | For those running mac/windows, you would have to create a VirtualBox running linux to be able to access the camera from docker. Docker-engine runs a basic linux that doesn't recognize the camera. Docker is currently beta testing their new mac/windows docker which will be compatible with this library and you will be able to access your camera. Alternatively you can run detection through a node server in the node SDK where you can access it through `localhost:3000` in a browser. 64 | 65 | ```sudo docker exec -it gesture /bin/sh -c 'cd ~/matrix-gesture-node-sdk/; npm run start-test-server'``` 66 | 67 | (We have had some permission problems with google chrome and safari blocking the server on mac, but firefox works fine) 68 | 69 | ### Using without Docker 70 | 71 | As long as you have the required dependencies enter the node sdk directory and run: 72 | 73 | ```npm install && npm run setup``` 74 | 75 | or if you are root 76 | 77 | ```npm install && npm run-root-setup``` 78 | 79 | Run some examples! 80 | 81 | `node examples/handTracker.js` or `npm run start-test-server` 82 | 83 | ### Documentation 84 | The documentation can be found [here](http://gesture.ai/#/develop "Gesture.ai Documentation") 85 | 86 | ### Anonymouse Data Aggregation 87 | Gesture.ai anonymously aggregates data from people using the SDK to improve the detection of gestures and to provide the best SDK possible. This data aggregation can be turned off from the client side but it is opt-out. To opt out, run `set_data_submit(false)` on creation of a `Gesture` class. 88 | 89 | ### Community 90 | Visit and join our community [here](http://community.gesture.ai "Gesture.ai Community") -------------------------------------------------------------------------------- /docker/README.md: -------------------------------------------------------------------------------- 1 | AdMobilize Gesture 2 | ============== 3 | * AdMobilize Gesture Node SDK ,is a nodejs module to ... 4 | 5 | 6 | ## Installing 7 | 8 | * git clone https://bitbucket.org/admobilize/admobilize-gesture.git 9 | * cd admobilize-gesture 10 | * npm install 11 | * git submodule update --init --recursive --remote 12 | * node-gyp configure build -------------------------------------------------------------------------------- /docker/build/Makefile: -------------------------------------------------------------------------------- 1 | # We borrow heavily from the kernel build setup, though we are simpler since 2 | # we don't have Kconfig tweaking settings on us. 3 | 4 | # The implicit make rules have it looking for RCS files, among other things. 5 | # We instead explicitly write all the rules we care about. 6 | # It's even quicker (saves ~200ms) to pass -r on the command line. 7 | MAKEFLAGS=-r 8 | 9 | # The source directory tree. 10 | srcdir := .. 11 | abs_srcdir := $(abspath $(srcdir)) 12 | 13 | # The name of the builddir. 14 | builddir_name ?= . 15 | 16 | # The V=1 flag on command line makes us verbosely print command lines. 17 | ifdef V 18 | quiet= 19 | else 20 | quiet=quiet_ 21 | endif 22 | 23 | # Specify BUILDTYPE=Release on the command line for a release build. 24 | BUILDTYPE ?= Release 25 | 26 | # Directory all our build output goes into. 27 | # Note that this must be two directories beneath src/ for unit tests to pass, 28 | # as they reach into the src/ directory for data with relative paths. 29 | builddir ?= $(builddir_name)/$(BUILDTYPE) 30 | abs_builddir := $(abspath $(builddir)) 31 | depsdir := $(builddir)/.deps 32 | 33 | # Object output directory. 34 | obj := $(builddir)/obj 35 | abs_obj := $(abspath $(obj)) 36 | 37 | # We build up a list of every single one of the targets so we can slurp in the 38 | # generated dependency rule Makefiles in one pass. 39 | all_deps := 40 | 41 | 42 | 43 | CC.target ?= $(CC) 44 | CFLAGS.target ?= $(CPPFLAGS) $(CFLAGS) 45 | CXX.target ?= $(CXX) 46 | CXXFLAGS.target ?= $(CPPFLAGS) $(CXXFLAGS) 47 | LINK.target ?= $(LINK) 48 | LDFLAGS.target ?= $(LDFLAGS) 49 | AR.target ?= $(AR) 50 | 51 | # C++ apps need to be linked with g++. 52 | LINK ?= $(CXX.target) 53 | 54 | # TODO(evan): move all cross-compilation logic to gyp-time so we don't need 55 | # to replicate this environment fallback in make as well. 56 | CC.host ?= gcc 57 | CFLAGS.host ?= $(CPPFLAGS_host) $(CFLAGS_host) 58 | CXX.host ?= g++ 59 | CXXFLAGS.host ?= $(CPPFLAGS_host) $(CXXFLAGS_host) 60 | LINK.host ?= $(CXX.host) 61 | LDFLAGS.host ?= 62 | AR.host ?= ar 63 | 64 | # Define a dir function that can handle spaces. 65 | # http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions 66 | # "leading spaces cannot appear in the text of the first argument as written. 67 | # These characters can be put into the argument value by variable substitution." 68 | empty := 69 | space := $(empty) $(empty) 70 | 71 | # http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces 72 | replace_spaces = $(subst $(space),?,$1) 73 | unreplace_spaces = $(subst ?,$(space),$1) 74 | dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) 75 | 76 | # Flags to make gcc output dependency info. Note that you need to be 77 | # careful here to use the flags that ccache and distcc can understand. 78 | # We write to a dep file on the side first and then rename at the end 79 | # so we can't end up with a broken dep file. 80 | depfile = $(depsdir)/$(call replace_spaces,$@).d 81 | DEPFLAGS = -MMD -MF $(depfile).raw 82 | 83 | # We have to fixup the deps output in a few ways. 84 | # (1) the file output should mention the proper .o file. 85 | # ccache or distcc lose the path to the target, so we convert a rule of 86 | # the form: 87 | # foobar.o: DEP1 DEP2 88 | # into 89 | # path/to/foobar.o: DEP1 DEP2 90 | # (2) we want missing files not to cause us to fail to build. 91 | # We want to rewrite 92 | # foobar.o: DEP1 DEP2 \ 93 | # DEP3 94 | # to 95 | # DEP1: 96 | # DEP2: 97 | # DEP3: 98 | # so if the files are missing, they're just considered phony rules. 99 | # We have to do some pretty insane escaping to get those backslashes 100 | # and dollar signs past make, the shell, and sed at the same time. 101 | # Doesn't work with spaces, but that's fine: .d files have spaces in 102 | # their names replaced with other characters. 103 | define fixup_dep 104 | # The depfile may not exist if the input file didn't have any #includes. 105 | touch $(depfile).raw 106 | # Fixup path as in (1). 107 | sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) 108 | # Add extra rules as in (2). 109 | # We remove slashes and replace spaces with new lines; 110 | # remove blank lines; 111 | # delete the first line and append a colon to the remaining lines. 112 | sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ 113 | grep -v '^$$' |\ 114 | sed -e 1d -e 's|$$|:|' \ 115 | >> $(depfile) 116 | rm $(depfile).raw 117 | endef 118 | 119 | # Command definitions: 120 | # - cmd_foo is the actual command to run; 121 | # - quiet_cmd_foo is the brief-output summary of the command. 122 | 123 | quiet_cmd_cc = CC($(TOOLSET)) $@ 124 | cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< 125 | 126 | quiet_cmd_cxx = CXX($(TOOLSET)) $@ 127 | cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< 128 | 129 | quiet_cmd_touch = TOUCH $@ 130 | cmd_touch = touch $@ 131 | 132 | quiet_cmd_copy = COPY $@ 133 | # send stderr to /dev/null to ignore messages when linking directories. 134 | cmd_copy = rm -rf "$@" && cp -af "$<" "$@" 135 | 136 | quiet_cmd_alink = AR($(TOOLSET)) $@ 137 | cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crs $@ $(filter %.o,$^) 138 | 139 | quiet_cmd_alink_thin = AR($(TOOLSET)) $@ 140 | cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) 141 | 142 | # Due to circular dependencies between libraries :(, we wrap the 143 | # special "figure out circular dependencies" flags around the entire 144 | # input list during linking. 145 | quiet_cmd_link = LINK($(TOOLSET)) $@ 146 | cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS) 147 | 148 | # We support two kinds of shared objects (.so): 149 | # 1) shared_library, which is just bundling together many dependent libraries 150 | # into a link line. 151 | # 2) loadable_module, which is generating a module intended for dlopen(). 152 | # 153 | # They differ only slightly: 154 | # In the former case, we want to package all dependent code into the .so. 155 | # In the latter case, we want to package just the API exposed by the 156 | # outermost module. 157 | # This means shared_library uses --whole-archive, while loadable_module doesn't. 158 | # (Note that --whole-archive is incompatible with the --start-group used in 159 | # normal linking.) 160 | 161 | # Other shared-object link notes: 162 | # - Set SONAME to the library filename so our binaries don't reference 163 | # the local, absolute paths used on the link command-line. 164 | quiet_cmd_solink = SOLINK($(TOOLSET)) $@ 165 | cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) 166 | 167 | quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ 168 | cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) 169 | 170 | 171 | # Define an escape_quotes function to escape single quotes. 172 | # This allows us to handle quotes properly as long as we always use 173 | # use single quotes and escape_quotes. 174 | escape_quotes = $(subst ','\'',$(1)) 175 | # This comment is here just to include a ' to unconfuse syntax highlighting. 176 | # Define an escape_vars function to escape '$' variable syntax. 177 | # This allows us to read/write command lines with shell variables (e.g. 178 | # $LD_LIBRARY_PATH), without triggering make substitution. 179 | escape_vars = $(subst $$,$$$$,$(1)) 180 | # Helper that expands to a shell command to echo a string exactly as it is in 181 | # make. This uses printf instead of echo because printf's behaviour with respect 182 | # to escape sequences is more portable than echo's across different shells 183 | # (e.g., dash, bash). 184 | exact_echo = printf '%s\n' '$(call escape_quotes,$(1))' 185 | 186 | # Helper to compare the command we're about to run against the command 187 | # we logged the last time we ran the command. Produces an empty 188 | # string (false) when the commands match. 189 | # Tricky point: Make has no string-equality test function. 190 | # The kernel uses the following, but it seems like it would have false 191 | # positives, where one string reordered its arguments. 192 | # arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \ 193 | # $(filter-out $(cmd_$@), $(cmd_$(1)))) 194 | # We instead substitute each for the empty string into the other, and 195 | # say they're equal if both substitutions produce the empty string. 196 | # .d files contain ? instead of spaces, take that into account. 197 | command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\ 198 | $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) 199 | 200 | # Helper that is non-empty when a prerequisite changes. 201 | # Normally make does this implicitly, but we force rules to always run 202 | # so we can check their command lines. 203 | # $? -- new prerequisites 204 | # $| -- order-only dependencies 205 | prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) 206 | 207 | # Helper that executes all postbuilds until one fails. 208 | define do_postbuilds 209 | @E=0;\ 210 | for p in $(POSTBUILDS); do\ 211 | eval $$p;\ 212 | E=$$?;\ 213 | if [ $$E -ne 0 ]; then\ 214 | break;\ 215 | fi;\ 216 | done;\ 217 | if [ $$E -ne 0 ]; then\ 218 | rm -rf "$@";\ 219 | exit $$E;\ 220 | fi 221 | endef 222 | 223 | # do_cmd: run a command via the above cmd_foo names, if necessary. 224 | # Should always run for a given target to handle command-line changes. 225 | # Second argument, if non-zero, makes it do asm/C/C++ dependency munging. 226 | # Third argument, if non-zero, makes it do POSTBUILDS processing. 227 | # Note: We intentionally do NOT call dirx for depfile, since it contains ? for 228 | # spaces already and dirx strips the ? characters. 229 | define do_cmd 230 | $(if $(or $(command_changed),$(prereq_changed)), 231 | @$(call exact_echo, $($(quiet)cmd_$(1))) 232 | @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" 233 | $(if $(findstring flock,$(word 1,$(cmd_$1))), 234 | @$(cmd_$(1)) 235 | @echo " $(quiet_cmd_$(1)): Finished", 236 | @$(cmd_$(1)) 237 | ) 238 | @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) 239 | @$(if $(2),$(fixup_dep)) 240 | $(if $(and $(3), $(POSTBUILDS)), 241 | $(call do_postbuilds) 242 | ) 243 | ) 244 | endef 245 | 246 | # Declare the "all" target first so it is the default, 247 | # even though we don't have the deps yet. 248 | .PHONY: all 249 | all: 250 | 251 | # make looks for ways to re-generate included makefiles, but in our case, we 252 | # don't have a direct way. Explicitly telling make that it has nothing to do 253 | # for them makes it go faster. 254 | %.d: ; 255 | 256 | # Use FORCE_DO_CMD to force a target to run. Should be coupled with 257 | # do_cmd. 258 | .PHONY: FORCE_DO_CMD 259 | FORCE_DO_CMD: 260 | 261 | TOOLSET := target 262 | # Suffix rules, putting all outputs into $(obj). 263 | $(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD 264 | @$(call do_cmd,cc,1) 265 | $(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD 266 | @$(call do_cmd,cxx,1) 267 | $(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD 268 | @$(call do_cmd,cxx,1) 269 | $(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD 270 | @$(call do_cmd,cxx,1) 271 | $(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD 272 | @$(call do_cmd,cc,1) 273 | $(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD 274 | @$(call do_cmd,cc,1) 275 | 276 | # Try building from generated source, too. 277 | $(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD 278 | @$(call do_cmd,cc,1) 279 | $(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD 280 | @$(call do_cmd,cxx,1) 281 | $(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD 282 | @$(call do_cmd,cxx,1) 283 | $(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD 284 | @$(call do_cmd,cxx,1) 285 | $(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD 286 | @$(call do_cmd,cc,1) 287 | $(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD 288 | @$(call do_cmd,cc,1) 289 | 290 | $(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD 291 | @$(call do_cmd,cc,1) 292 | $(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD 293 | @$(call do_cmd,cxx,1) 294 | $(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD 295 | @$(call do_cmd,cxx,1) 296 | $(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD 297 | @$(call do_cmd,cxx,1) 298 | $(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD 299 | @$(call do_cmd,cc,1) 300 | $(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD 301 | @$(call do_cmd,cc,1) 302 | 303 | 304 | ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ 305 | $(findstring $(join ^,$(prefix)),\ 306 | $(join ^,gesture.target.mk)))),) 307 | include gesture.target.mk 308 | endif 309 | 310 | quiet_cmd_regen_makefile = ACTION Regenerating $@ 311 | cmd_regen_makefile = cd $(srcdir); /usr/local/lib/node_modules/node-gyp/gyp/gyp_main.py -fmake --ignore-environment "--toplevel-dir=." -I/root/admobilize-gesture/build/config.gypi -I/usr/local/lib/node_modules/node-gyp/addon.gypi -I/root/.node-gyp/5.3.0/include/node/common.gypi "--depth=." "-Goutput_dir=." "--generator-output=build" "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/root/.node-gyp/5.3.0" "-Dnode_gyp_dir=/usr/local/lib/node_modules/node-gyp" "-Dnode_lib_file=node.lib" "-Dmodule_root_dir=/root/admobilize-gesture" binding.gyp 312 | Makefile: $(srcdir)/../../usr/local/lib/node_modules/node-gyp/addon.gypi $(srcdir)/build/config.gypi $(srcdir)/binding.gyp $(srcdir)/../.node-gyp/5.3.0/include/node/common.gypi 313 | $(call do_cmd,regen_makefile) 314 | 315 | # "all" is a concatenation of the "all" targets from all the included 316 | # sub-makefiles. This is just here to clarify. 317 | all: 318 | 319 | # Add in dependency-tracking rules. $(all_deps) is the list of every single 320 | # target in our tree. Only consider the ones with .d (dependency) info: 321 | d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) 322 | ifneq ($(d_files),) 323 | include $(d_files) 324 | endif 325 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/gesture.node.d: -------------------------------------------------------------------------------- 1 | cmd_Release/gesture.node := rm -rf "Release/gesture.node" && cp -af "Release/obj.target/gesture.node" "Release/gesture.node" 2 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/obj.target/gesture.node.d: -------------------------------------------------------------------------------- 1 | cmd_Release/obj.target/gesture.node := g++ -shared -pthread -rdynamic -m64 -Wl,-soname=gesture.node -o Release/obj.target/gesture.node -Wl,--start-group Release/obj.target/gesture/admobilize-detection-manager/lib/pico/facedetect.o Release/obj.target/gesture/admobilize-detection-manager/lib/pico/motiondetector.o Release/obj.target/gesture/admobilize-detection-manager/lib/pico/picornt.o Release/obj.target/gesture/admobilize-detection-manager/lib/pico/uniqueness2.o Release/obj.target/gesture/src/gesture_manager.o Release/obj.target/gesture/src/gesture_manager_impl.o Release/obj.target/gesture/src/curl_handler.o Release/obj.target/gesture/src/drawing.o Release/obj.target/gesture/src/sha1.o Release/obj.target/gesture/src/gesture_recognition.o -Wl,--end-group -L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core -lcurl 2 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/facedetect.o.d: -------------------------------------------------------------------------------- 1 | cmd_Release/obj.target/gesture/admobilize-detection-manager/lib/pico/facedetect.o := g++ '-DNODE_GYP_MODULE_NAME=gesture' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/root/.node-gyp/5.3.0/include/node -I/root/.node-gyp/5.3.0/src -I/root/.node-gyp/5.3.0/deps/uv/include -I/root/.node-gyp/5.3.0/deps/v8/include -I../node_modules/nan -I../admobilize-detection-manager/lib/pico -I../src/libs -I../-I/usr/local/include/opencv -I../-I/usr/local/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -I/usr/local/include/opencv -I/usr/local/include -Wall -g -w -std=c++11 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -std=gnu++0x -MMD -MF ./Release/.deps/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/facedetect.o.d.raw -c -o Release/obj.target/gesture/admobilize-detection-manager/lib/pico/facedetect.o ../admobilize-detection-manager/lib/pico/facedetect.cpp 2 | Release/obj.target/gesture/admobilize-detection-manager/lib/pico/facedetect.o: \ 3 | ../admobilize-detection-manager/lib/pico/facedetect.cpp \ 4 | ../admobilize-detection-manager/lib/pico/facedetect.hpp \ 5 | ../admobilize-detection-manager/lib/pico/constants.hpp \ 6 | ../admobilize-detection-manager/lib/pico/face-all.h 7 | ../admobilize-detection-manager/lib/pico/facedetect.cpp: 8 | ../admobilize-detection-manager/lib/pico/facedetect.hpp: 9 | ../admobilize-detection-manager/lib/pico/constants.hpp: 10 | ../admobilize-detection-manager/lib/pico/face-all.h: 11 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/motiondetector.o.d: -------------------------------------------------------------------------------- 1 | cmd_Release/obj.target/gesture/admobilize-detection-manager/lib/pico/motiondetector.o := g++ '-DNODE_GYP_MODULE_NAME=gesture' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/root/.node-gyp/5.3.0/include/node -I/root/.node-gyp/5.3.0/src -I/root/.node-gyp/5.3.0/deps/uv/include -I/root/.node-gyp/5.3.0/deps/v8/include -I../node_modules/nan -I../admobilize-detection-manager/lib/pico -I../src/libs -I../-I/usr/local/include/opencv -I../-I/usr/local/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -I/usr/local/include/opencv -I/usr/local/include -Wall -g -w -std=c++11 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -std=gnu++0x -MMD -MF ./Release/.deps/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/motiondetector.o.d.raw -c -o Release/obj.target/gesture/admobilize-detection-manager/lib/pico/motiondetector.o ../admobilize-detection-manager/lib/pico/motiondetector.cpp 2 | Release/obj.target/gesture/admobilize-detection-manager/lib/pico/motiondetector.o: \ 3 | ../admobilize-detection-manager/lib/pico/motiondetector.cpp \ 4 | ../admobilize-detection-manager/lib/pico/motiondetector.hpp 5 | ../admobilize-detection-manager/lib/pico/motiondetector.cpp: 6 | ../admobilize-detection-manager/lib/pico/motiondetector.hpp: 7 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/picornt.o.d: -------------------------------------------------------------------------------- 1 | cmd_Release/obj.target/gesture/admobilize-detection-manager/lib/pico/picornt.o := g++ '-DNODE_GYP_MODULE_NAME=gesture' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/root/.node-gyp/5.3.0/include/node -I/root/.node-gyp/5.3.0/src -I/root/.node-gyp/5.3.0/deps/uv/include -I/root/.node-gyp/5.3.0/deps/v8/include -I../node_modules/nan -I../admobilize-detection-manager/lib/pico -I../src/libs -I../-I/usr/local/include/opencv -I../-I/usr/local/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -I/usr/local/include/opencv -I/usr/local/include -Wall -g -w -std=c++11 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -std=gnu++0x -MMD -MF ./Release/.deps/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/picornt.o.d.raw -c -o Release/obj.target/gesture/admobilize-detection-manager/lib/pico/picornt.o ../admobilize-detection-manager/lib/pico/picornt.cpp 2 | Release/obj.target/gesture/admobilize-detection-manager/lib/pico/picornt.o: \ 3 | ../admobilize-detection-manager/lib/pico/picornt.cpp \ 4 | ../admobilize-detection-manager/lib/pico/picornt.hpp \ 5 | ../admobilize-detection-manager/lib/pico/constants.hpp 6 | ../admobilize-detection-manager/lib/pico/picornt.cpp: 7 | ../admobilize-detection-manager/lib/pico/picornt.hpp: 8 | ../admobilize-detection-manager/lib/pico/constants.hpp: 9 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/uniqueness2.o.d: -------------------------------------------------------------------------------- 1 | cmd_Release/obj.target/gesture/admobilize-detection-manager/lib/pico/uniqueness2.o := g++ '-DNODE_GYP_MODULE_NAME=gesture' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/root/.node-gyp/5.3.0/include/node -I/root/.node-gyp/5.3.0/src -I/root/.node-gyp/5.3.0/deps/uv/include -I/root/.node-gyp/5.3.0/deps/v8/include -I../node_modules/nan -I../admobilize-detection-manager/lib/pico -I../src/libs -I../-I/usr/local/include/opencv -I../-I/usr/local/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -I/usr/local/include/opencv -I/usr/local/include -Wall -g -w -std=c++11 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -std=gnu++0x -MMD -MF ./Release/.deps/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/uniqueness2.o.d.raw -c -o Release/obj.target/gesture/admobilize-detection-manager/lib/pico/uniqueness2.o ../admobilize-detection-manager/lib/pico/uniqueness2.cpp 2 | Release/obj.target/gesture/admobilize-detection-manager/lib/pico/uniqueness2.o: \ 3 | ../admobilize-detection-manager/lib/pico/uniqueness2.cpp \ 4 | ../admobilize-detection-manager/lib/pico/brief.hpp \ 5 | ../admobilize-detection-manager/lib/pico/uniqueness2.hpp \ 6 | ../admobilize-detection-manager/lib/pico/constants.hpp \ 7 | ../admobilize-detection-manager/lib/pico/facedetect.hpp \ 8 | ../admobilize-detection-manager/lib/pico/posedetector.h \ 9 | ../admobilize-detection-manager/lib/pico/uniqueness.hpp 10 | ../admobilize-detection-manager/lib/pico/uniqueness2.cpp: 11 | ../admobilize-detection-manager/lib/pico/brief.hpp: 12 | ../admobilize-detection-manager/lib/pico/uniqueness2.hpp: 13 | ../admobilize-detection-manager/lib/pico/constants.hpp: 14 | ../admobilize-detection-manager/lib/pico/facedetect.hpp: 15 | ../admobilize-detection-manager/lib/pico/posedetector.h: 16 | ../admobilize-detection-manager/lib/pico/uniqueness.hpp: 17 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/obj.target/gesture/src/curl_handler.o.d: -------------------------------------------------------------------------------- 1 | cmd_Release/obj.target/gesture/src/curl_handler.o := g++ '-DNODE_GYP_MODULE_NAME=gesture' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/root/.node-gyp/5.3.0/include/node -I/root/.node-gyp/5.3.0/src -I/root/.node-gyp/5.3.0/deps/uv/include -I/root/.node-gyp/5.3.0/deps/v8/include -I../node_modules/nan -I../admobilize-detection-manager/lib/pico -I../src/libs -I../-I/usr/local/include/opencv -I../-I/usr/local/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -I/usr/local/include/opencv -I/usr/local/include -Wall -g -w -std=c++11 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -std=gnu++0x -MMD -MF ./Release/.deps/Release/obj.target/gesture/src/curl_handler.o.d.raw -c -o Release/obj.target/gesture/src/curl_handler.o ../src/curl_handler.cpp 2 | Release/obj.target/gesture/src/curl_handler.o: ../src/curl_handler.cpp \ 3 | ../src/curl_handler.h ../src/sha1.h ../src/libs/json.hpp 4 | ../src/curl_handler.cpp: 5 | ../src/curl_handler.h: 6 | ../src/sha1.h: 7 | ../src/libs/json.hpp: 8 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/obj.target/gesture/src/drawing.o.d: -------------------------------------------------------------------------------- 1 | cmd_Release/obj.target/gesture/src/drawing.o := g++ '-DNODE_GYP_MODULE_NAME=gesture' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/root/.node-gyp/5.3.0/include/node -I/root/.node-gyp/5.3.0/src -I/root/.node-gyp/5.3.0/deps/uv/include -I/root/.node-gyp/5.3.0/deps/v8/include -I../node_modules/nan -I../admobilize-detection-manager/lib/pico -I../src/libs -I../-I/usr/local/include/opencv -I../-I/usr/local/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -I/usr/local/include/opencv -I/usr/local/include -Wall -g -w -std=c++11 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -std=gnu++0x -MMD -MF ./Release/.deps/Release/obj.target/gesture/src/drawing.o.d.raw -c -o Release/obj.target/gesture/src/drawing.o ../src/drawing.cpp 2 | Release/obj.target/gesture/src/drawing.o: ../src/drawing.cpp \ 3 | ../src/drawing.h \ 4 | ../admobilize-detection-manager/lib/pico/uniqueness2.hpp \ 5 | ../admobilize-detection-manager/lib/pico/constants.hpp \ 6 | ../admobilize-detection-manager/lib/pico/facedetect.hpp \ 7 | ../admobilize-detection-manager/lib/pico/posedetector.h \ 8 | ../src/gesture_manager.h 9 | ../src/drawing.cpp: 10 | ../src/drawing.h: 11 | ../admobilize-detection-manager/lib/pico/uniqueness2.hpp: 12 | ../admobilize-detection-manager/lib/pico/constants.hpp: 13 | ../admobilize-detection-manager/lib/pico/facedetect.hpp: 14 | ../admobilize-detection-manager/lib/pico/posedetector.h: 15 | ../src/gesture_manager.h: 16 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/obj.target/gesture/src/gesture_manager.o.d: -------------------------------------------------------------------------------- 1 | cmd_Release/obj.target/gesture/src/gesture_manager.o := g++ '-DNODE_GYP_MODULE_NAME=gesture' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/root/.node-gyp/5.3.0/include/node -I/root/.node-gyp/5.3.0/src -I/root/.node-gyp/5.3.0/deps/uv/include -I/root/.node-gyp/5.3.0/deps/v8/include -I../node_modules/nan -I../admobilize-detection-manager/lib/pico -I../src/libs -I../-I/usr/local/include/opencv -I../-I/usr/local/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -I/usr/local/include/opencv -I/usr/local/include -Wall -g -w -std=c++11 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -std=gnu++0x -MMD -MF ./Release/.deps/Release/obj.target/gesture/src/gesture_manager.o.d.raw -c -o Release/obj.target/gesture/src/gesture_manager.o ../src/gesture_manager.cpp 2 | Release/obj.target/gesture/src/gesture_manager.o: \ 3 | ../src/gesture_manager.cpp ../src/gesture_manager.h \ 4 | ../src/gesture_manager_impl.h \ 5 | ../admobilize-detection-manager/lib/pico/facedetect.hpp \ 6 | ../admobilize-detection-manager/lib/pico/constants.hpp \ 7 | ../admobilize-detection-manager/lib/pico/motiondetector.hpp \ 8 | ../admobilize-detection-manager/lib/pico/uniqueness2.hpp \ 9 | ../admobilize-detection-manager/lib/pico/facedetect.hpp \ 10 | ../admobilize-detection-manager/lib/pico/posedetector.h \ 11 | ../src/curl_handler.h ../src/sha1.h ../src/libs/json.hpp 12 | ../src/gesture_manager.cpp: 13 | ../src/gesture_manager.h: 14 | ../src/gesture_manager_impl.h: 15 | ../admobilize-detection-manager/lib/pico/facedetect.hpp: 16 | ../admobilize-detection-manager/lib/pico/constants.hpp: 17 | ../admobilize-detection-manager/lib/pico/motiondetector.hpp: 18 | ../admobilize-detection-manager/lib/pico/uniqueness2.hpp: 19 | ../admobilize-detection-manager/lib/pico/facedetect.hpp: 20 | ../admobilize-detection-manager/lib/pico/posedetector.h: 21 | ../src/curl_handler.h: 22 | ../src/sha1.h: 23 | ../src/libs/json.hpp: 24 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/obj.target/gesture/src/gesture_manager_impl.o.d: -------------------------------------------------------------------------------- 1 | cmd_Release/obj.target/gesture/src/gesture_manager_impl.o := g++ '-DNODE_GYP_MODULE_NAME=gesture' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/root/.node-gyp/5.3.0/include/node -I/root/.node-gyp/5.3.0/src -I/root/.node-gyp/5.3.0/deps/uv/include -I/root/.node-gyp/5.3.0/deps/v8/include -I../node_modules/nan -I../admobilize-detection-manager/lib/pico -I../src/libs -I../-I/usr/local/include/opencv -I../-I/usr/local/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -I/usr/local/include/opencv -I/usr/local/include -Wall -g -w -std=c++11 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -std=gnu++0x -MMD -MF ./Release/.deps/Release/obj.target/gesture/src/gesture_manager_impl.o.d.raw -c -o Release/obj.target/gesture/src/gesture_manager_impl.o ../src/gesture_manager_impl.cpp 2 | Release/obj.target/gesture/src/gesture_manager_impl.o: \ 3 | ../src/gesture_manager_impl.cpp ../src/gesture_manager_impl.h \ 4 | ../admobilize-detection-manager/lib/pico/facedetect.hpp \ 5 | ../admobilize-detection-manager/lib/pico/constants.hpp \ 6 | ../admobilize-detection-manager/lib/pico/motiondetector.hpp \ 7 | ../admobilize-detection-manager/lib/pico/uniqueness2.hpp \ 8 | ../admobilize-detection-manager/lib/pico/facedetect.hpp \ 9 | ../admobilize-detection-manager/lib/pico/posedetector.h \ 10 | ../src/gesture_manager.h ../src/curl_handler.h ../src/sha1.h \ 11 | ../src/libs/json.hpp 12 | ../src/gesture_manager_impl.cpp: 13 | ../src/gesture_manager_impl.h: 14 | ../admobilize-detection-manager/lib/pico/facedetect.hpp: 15 | ../admobilize-detection-manager/lib/pico/constants.hpp: 16 | ../admobilize-detection-manager/lib/pico/motiondetector.hpp: 17 | ../admobilize-detection-manager/lib/pico/uniqueness2.hpp: 18 | ../admobilize-detection-manager/lib/pico/facedetect.hpp: 19 | ../admobilize-detection-manager/lib/pico/posedetector.h: 20 | ../src/gesture_manager.h: 21 | ../src/curl_handler.h: 22 | ../src/sha1.h: 23 | ../src/libs/json.hpp: 24 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/obj.target/gesture/src/gesture_recognition.o.d: -------------------------------------------------------------------------------- 1 | cmd_Release/obj.target/gesture/src/gesture_recognition.o := g++ '-DNODE_GYP_MODULE_NAME=gesture' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/root/.node-gyp/5.3.0/include/node -I/root/.node-gyp/5.3.0/src -I/root/.node-gyp/5.3.0/deps/uv/include -I/root/.node-gyp/5.3.0/deps/v8/include -I../node_modules/nan -I../admobilize-detection-manager/lib/pico -I../src/libs -I../-I/usr/local/include/opencv -I../-I/usr/local/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -I/usr/local/include/opencv -I/usr/local/include -Wall -g -w -std=c++11 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -std=gnu++0x -MMD -MF ./Release/.deps/Release/obj.target/gesture/src/gesture_recognition.o.d.raw -c -o Release/obj.target/gesture/src/gesture_recognition.o ../src/gesture_recognition.cpp 2 | Release/obj.target/gesture/src/gesture_recognition.o: \ 3 | ../src/gesture_recognition.cpp ../src/gesture_recognition.hpp \ 4 | /root/.node-gyp/5.3.0/include/node/v8.h \ 5 | /root/.node-gyp/5.3.0/include/node/v8-version.h \ 6 | /root/.node-gyp/5.3.0/include/node/v8config.h \ 7 | /root/.node-gyp/5.3.0/include/node/node.h \ 8 | /root/.node-gyp/5.3.0/include/node/v8.h \ 9 | /root/.node-gyp/5.3.0/include/node/node_version.h \ 10 | /root/.node-gyp/5.3.0/include/node/node_object_wrap.h \ 11 | /root/.node-gyp/5.3.0/include/node/node_version.h \ 12 | /root/.node-gyp/5.3.0/include/node/node_buffer.h \ 13 | /root/.node-gyp/5.3.0/include/node/node.h ../node_modules/nan/nan.h \ 14 | /root/.node-gyp/5.3.0/include/node/uv.h \ 15 | /root/.node-gyp/5.3.0/include/node/uv-errno.h \ 16 | /root/.node-gyp/5.3.0/include/node/uv-version.h \ 17 | /root/.node-gyp/5.3.0/include/node/uv-unix.h \ 18 | /root/.node-gyp/5.3.0/include/node/uv-threadpool.h \ 19 | /root/.node-gyp/5.3.0/include/node/uv-linux.h \ 20 | ../node_modules/nan/nan_callbacks.h \ 21 | ../node_modules/nan/nan_callbacks_12_inl.h \ 22 | ../node_modules/nan/nan_maybe_43_inl.h \ 23 | ../node_modules/nan/nan_converters.h \ 24 | ../node_modules/nan/nan_converters_43_inl.h \ 25 | ../node_modules/nan/nan_new.h \ 26 | ../node_modules/nan/nan_implementation_12_inl.h \ 27 | ../node_modules/nan/nan_persistent_12_inl.h \ 28 | ../node_modules/nan/nan_weak.h ../node_modules/nan/nan_object_wrap.h \ 29 | ../node_modules/nan/nan_typedarray_contents.h ../src/gesture_manager.h \ 30 | ../src/libs/json.hpp 31 | ../src/gesture_recognition.cpp: 32 | ../src/gesture_recognition.hpp: 33 | /root/.node-gyp/5.3.0/include/node/v8.h: 34 | /root/.node-gyp/5.3.0/include/node/v8-version.h: 35 | /root/.node-gyp/5.3.0/include/node/v8config.h: 36 | /root/.node-gyp/5.3.0/include/node/node.h: 37 | /root/.node-gyp/5.3.0/include/node/v8.h: 38 | /root/.node-gyp/5.3.0/include/node/node_version.h: 39 | /root/.node-gyp/5.3.0/include/node/node_object_wrap.h: 40 | /root/.node-gyp/5.3.0/include/node/node_version.h: 41 | /root/.node-gyp/5.3.0/include/node/node_buffer.h: 42 | /root/.node-gyp/5.3.0/include/node/node.h: 43 | ../node_modules/nan/nan.h: 44 | /root/.node-gyp/5.3.0/include/node/uv.h: 45 | /root/.node-gyp/5.3.0/include/node/uv-errno.h: 46 | /root/.node-gyp/5.3.0/include/node/uv-version.h: 47 | /root/.node-gyp/5.3.0/include/node/uv-unix.h: 48 | /root/.node-gyp/5.3.0/include/node/uv-threadpool.h: 49 | /root/.node-gyp/5.3.0/include/node/uv-linux.h: 50 | ../node_modules/nan/nan_callbacks.h: 51 | ../node_modules/nan/nan_callbacks_12_inl.h: 52 | ../node_modules/nan/nan_maybe_43_inl.h: 53 | ../node_modules/nan/nan_converters.h: 54 | ../node_modules/nan/nan_converters_43_inl.h: 55 | ../node_modules/nan/nan_new.h: 56 | ../node_modules/nan/nan_implementation_12_inl.h: 57 | ../node_modules/nan/nan_persistent_12_inl.h: 58 | ../node_modules/nan/nan_weak.h: 59 | ../node_modules/nan/nan_object_wrap.h: 60 | ../node_modules/nan/nan_typedarray_contents.h: 61 | ../src/gesture_manager.h: 62 | ../src/libs/json.hpp: 63 | -------------------------------------------------------------------------------- /docker/build/Release/.deps/Release/obj.target/gesture/src/sha1.o.d: -------------------------------------------------------------------------------- 1 | cmd_Release/obj.target/gesture/src/sha1.o := g++ '-DNODE_GYP_MODULE_NAME=gesture' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/root/.node-gyp/5.3.0/include/node -I/root/.node-gyp/5.3.0/src -I/root/.node-gyp/5.3.0/deps/uv/include -I/root/.node-gyp/5.3.0/deps/v8/include -I../node_modules/nan -I../admobilize-detection-manager/lib/pico -I../src/libs -I../-I/usr/local/include/opencv -I../-I/usr/local/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -I/usr/local/include/opencv -I/usr/local/include -Wall -g -w -std=c++11 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -std=gnu++0x -MMD -MF ./Release/.deps/Release/obj.target/gesture/src/sha1.o.d.raw -c -o Release/obj.target/gesture/src/sha1.o ../src/sha1.cpp 2 | Release/obj.target/gesture/src/sha1.o: ../src/sha1.cpp ../src/sha1.h 3 | ../src/sha1.cpp: 4 | ../src/sha1.h: 5 | -------------------------------------------------------------------------------- /docker/build/Release/gesture.node: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/gesture.node -------------------------------------------------------------------------------- /docker/build/Release/obj.target/gesture.node: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/obj.target/gesture.node -------------------------------------------------------------------------------- /docker/build/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/facedetect.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/facedetect.o -------------------------------------------------------------------------------- /docker/build/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/motiondetector.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/motiondetector.o -------------------------------------------------------------------------------- /docker/build/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/picornt.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/picornt.o -------------------------------------------------------------------------------- /docker/build/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/uniqueness2.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/obj.target/gesture/admobilize-detection-manager/lib/pico/uniqueness2.o -------------------------------------------------------------------------------- /docker/build/Release/obj.target/gesture/src/curl_handler.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/obj.target/gesture/src/curl_handler.o -------------------------------------------------------------------------------- /docker/build/Release/obj.target/gesture/src/drawing.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/obj.target/gesture/src/drawing.o -------------------------------------------------------------------------------- /docker/build/Release/obj.target/gesture/src/gesture_manager.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/obj.target/gesture/src/gesture_manager.o -------------------------------------------------------------------------------- /docker/build/Release/obj.target/gesture/src/gesture_manager_impl.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/obj.target/gesture/src/gesture_manager_impl.o -------------------------------------------------------------------------------- /docker/build/Release/obj.target/gesture/src/gesture_recognition.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/obj.target/gesture/src/gesture_recognition.o -------------------------------------------------------------------------------- /docker/build/Release/obj.target/gesture/src/sha1.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/build/Release/obj.target/gesture/src/sha1.o -------------------------------------------------------------------------------- /docker/build/binding.Makefile: -------------------------------------------------------------------------------- 1 | # This file is generated by gyp; do not edit. 2 | 3 | export builddir_name ?= ./build/. 4 | .PHONY: all 5 | all: 6 | $(MAKE) gesture 7 | -------------------------------------------------------------------------------- /docker/build/config.gypi: -------------------------------------------------------------------------------- 1 | # Do not edit. File was generated by node-gyp's "configure" step 2 | { 3 | "target_defaults": { 4 | "cflags": [], 5 | "default_configuration": "Release", 6 | "defines": [], 7 | "include_dirs": [], 8 | "libraries": [] 9 | }, 10 | "variables": { 11 | "asan": 0, 12 | "gas_version": "2.23", 13 | "host_arch": "x64", 14 | "icu_data_file": "icudt56l.dat", 15 | "icu_data_in": "../../deps/icu/source/data/in/icudt56l.dat", 16 | "icu_endianness": "l", 17 | "icu_gyp_path": "tools/icu/icu-generic.gyp", 18 | "icu_locales": "en,root", 19 | "icu_path": "./deps/icu", 20 | "icu_small": "true", 21 | "icu_ver_major": "56", 22 | "node_byteorder": "little", 23 | "node_enable_v8_vtunejit": "false", 24 | "node_install_npm": "true", 25 | "node_prefix": "/", 26 | "node_release_urlbase": "https://nodejs.org/download/release/", 27 | "node_shared_http_parser": "false", 28 | "node_shared_libuv": "false", 29 | "node_shared_openssl": "false", 30 | "node_shared_zlib": "false", 31 | "node_tag": "", 32 | "node_use_dtrace": "false", 33 | "node_use_etw": "false", 34 | "node_use_lttng": "false", 35 | "node_use_openssl": "true", 36 | "node_use_perfctr": "false", 37 | "openssl_fips": "", 38 | "openssl_no_asm": 0, 39 | "python": "/home/iojs/bin/python", 40 | "target_arch": "x64", 41 | "uv_parent_path": "/deps/uv/", 42 | "uv_use_dtrace": "false", 43 | "v8_enable_gdbjit": 0, 44 | "v8_enable_i18n_support": 1, 45 | "v8_no_strict_aliasing": 1, 46 | "v8_optimized_debug": 0, 47 | "v8_random_seed": 0, 48 | "v8_use_snapshot": "true", 49 | "want_separate_host_toolset": 0, 50 | "nodedir": "/root/.node-gyp/5.3.0", 51 | "copy_dev_lib": "true", 52 | "standalone_static_library": 1 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /docker/build/gesture.target.mk: -------------------------------------------------------------------------------- 1 | # This file is generated by gyp; do not edit. 2 | 3 | TOOLSET := target 4 | TARGET := gesture 5 | DEFS_Debug := \ 6 | '-DNODE_GYP_MODULE_NAME=gesture' \ 7 | '-D_LARGEFILE_SOURCE' \ 8 | '-D_FILE_OFFSET_BITS=64' \ 9 | '-DBUILDING_NODE_EXTENSION' \ 10 | '-DDEBUG' \ 11 | '-D_DEBUG' 12 | 13 | # Flags passed to all source files. 14 | CFLAGS_Debug := \ 15 | -fPIC \ 16 | -pthread \ 17 | -Wall \ 18 | -Wextra \ 19 | -Wno-unused-parameter \ 20 | -m64 \ 21 | -I/usr/local/include/opencv \ 22 | -I/usr/local/include \ 23 | -Wall \ 24 | -g \ 25 | -w \ 26 | -std=c++11 \ 27 | -g \ 28 | -O0 29 | 30 | # Flags passed to only C files. 31 | CFLAGS_C_Debug := 32 | 33 | # Flags passed to only C++ files. 34 | CFLAGS_CC_Debug := \ 35 | -std=gnu++0x 36 | 37 | INCS_Debug := \ 38 | -I/root/.node-gyp/5.3.0/include/node \ 39 | -I/root/.node-gyp/5.3.0/src \ 40 | -I/root/.node-gyp/5.3.0/deps/uv/include \ 41 | -I/root/.node-gyp/5.3.0/deps/v8/include \ 42 | -I$(srcdir)/node_modules/nan \ 43 | -I$(srcdir)/admobilize-detection-manager/lib/pico \ 44 | -I$(srcdir)/src/libs \ 45 | -I$(srcdir)/-I/usr/local/include/opencv \ 46 | -I$(srcdir)/-I/usr/local/include 47 | 48 | DEFS_Release := \ 49 | '-DNODE_GYP_MODULE_NAME=gesture' \ 50 | '-D_LARGEFILE_SOURCE' \ 51 | '-D_FILE_OFFSET_BITS=64' \ 52 | '-DBUILDING_NODE_EXTENSION' 53 | 54 | # Flags passed to all source files. 55 | CFLAGS_Release := \ 56 | -fPIC \ 57 | -pthread \ 58 | -Wall \ 59 | -Wextra \ 60 | -Wno-unused-parameter \ 61 | -m64 \ 62 | -I/usr/local/include/opencv \ 63 | -I/usr/local/include \ 64 | -Wall \ 65 | -g \ 66 | -w \ 67 | -std=c++11 \ 68 | -O3 \ 69 | -ffunction-sections \ 70 | -fdata-sections \ 71 | -fno-omit-frame-pointer 72 | 73 | # Flags passed to only C files. 74 | CFLAGS_C_Release := 75 | 76 | # Flags passed to only C++ files. 77 | CFLAGS_CC_Release := \ 78 | -std=gnu++0x 79 | 80 | INCS_Release := \ 81 | -I/root/.node-gyp/5.3.0/include/node \ 82 | -I/root/.node-gyp/5.3.0/src \ 83 | -I/root/.node-gyp/5.3.0/deps/uv/include \ 84 | -I/root/.node-gyp/5.3.0/deps/v8/include \ 85 | -I$(srcdir)/node_modules/nan \ 86 | -I$(srcdir)/admobilize-detection-manager/lib/pico \ 87 | -I$(srcdir)/src/libs \ 88 | -I$(srcdir)/-I/usr/local/include/opencv \ 89 | -I$(srcdir)/-I/usr/local/include 90 | 91 | OBJS := \ 92 | $(obj).target/$(TARGET)/admobilize-detection-manager/lib/pico/facedetect.o \ 93 | $(obj).target/$(TARGET)/admobilize-detection-manager/lib/pico/motiondetector.o \ 94 | $(obj).target/$(TARGET)/admobilize-detection-manager/lib/pico/picornt.o \ 95 | $(obj).target/$(TARGET)/admobilize-detection-manager/lib/pico/uniqueness2.o \ 96 | $(obj).target/$(TARGET)/src/gesture_manager.o \ 97 | $(obj).target/$(TARGET)/src/gesture_manager_impl.o \ 98 | $(obj).target/$(TARGET)/src/curl_handler.o \ 99 | $(obj).target/$(TARGET)/src/drawing.o \ 100 | $(obj).target/$(TARGET)/src/sha1.o \ 101 | $(obj).target/$(TARGET)/src/gesture_recognition.o 102 | 103 | # Add to the list of files we specially track dependencies for. 104 | all_deps += $(OBJS) 105 | 106 | # CFLAGS et al overrides must be target-local. 107 | # See "Target-specific Variable Values" in the GNU Make manual. 108 | $(OBJS): TOOLSET := $(TOOLSET) 109 | $(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) 110 | $(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) 111 | 112 | # Suffix rules, putting all outputs into $(obj). 113 | 114 | $(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD 115 | @$(call do_cmd,cxx,1) 116 | 117 | # Try building from generated source, too. 118 | 119 | $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD 120 | @$(call do_cmd,cxx,1) 121 | 122 | $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.cpp FORCE_DO_CMD 123 | @$(call do_cmd,cxx,1) 124 | 125 | # End of this set of suffix rules 126 | ### Rules for final target. 127 | LDFLAGS_Debug := \ 128 | -pthread \ 129 | -rdynamic \ 130 | -m64 131 | 132 | LDFLAGS_Release := \ 133 | -pthread \ 134 | -rdynamic \ 135 | -m64 136 | 137 | LIBS := \ 138 | -L/usr/local/lib \ 139 | -lopencv_shape \ 140 | -lopencv_stitching \ 141 | -lopencv_objdetect \ 142 | -lopencv_superres \ 143 | -lopencv_videostab \ 144 | -lopencv_calib3d \ 145 | -lopencv_features2d \ 146 | -lopencv_highgui \ 147 | -lopencv_videoio \ 148 | -lopencv_imgcodecs \ 149 | -lopencv_video \ 150 | -lopencv_photo \ 151 | -lopencv_ml \ 152 | -lopencv_imgproc \ 153 | -lopencv_flann \ 154 | -lopencv_core \ 155 | -lcurl 156 | 157 | $(obj).target/gesture.node: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) 158 | $(obj).target/gesture.node: LIBS := $(LIBS) 159 | $(obj).target/gesture.node: TOOLSET := $(TOOLSET) 160 | $(obj).target/gesture.node: $(OBJS) FORCE_DO_CMD 161 | $(call do_cmd,solink_module) 162 | 163 | all_deps += $(obj).target/gesture.node 164 | # Add target alias 165 | .PHONY: gesture 166 | gesture: $(builddir)/gesture.node 167 | 168 | # Copy this to the executable output path. 169 | $(builddir)/gesture.node: TOOLSET := $(TOOLSET) 170 | $(builddir)/gesture.node: $(obj).target/gesture.node FORCE_DO_CMD 171 | $(call do_cmd,copy) 172 | 173 | all_deps += $(builddir)/gesture.node 174 | # Short alias for building this executable. 175 | .PHONY: gesture.node 176 | gesture.node: $(obj).target/gesture.node $(builddir)/gesture.node 177 | 178 | # Add executable to "all" target. 179 | .PHONY: all 180 | all: $(builddir)/gesture.node 181 | 182 | -------------------------------------------------------------------------------- /docker/classifiers/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/classifiers/.gitignore -------------------------------------------------------------------------------- /docker/classifiers/fist_classifier: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/classifiers/fist_classifier -------------------------------------------------------------------------------- /docker/classifiers/palm_classifier: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/classifiers/palm_classifier -------------------------------------------------------------------------------- /docker/classifiers/thumbup_classifier: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matrix-io/matrix-gesture-node-sdk/13f559b8df134f5f3046d18b59928d61197a9b5d/docker/classifiers/thumbup_classifier -------------------------------------------------------------------------------- /docker/contributors.txt: -------------------------------------------------------------------------------- 1 | willemprins 2 | juliosaldana 3 | -------------------------------------------------------------------------------- /docker/examples/detectGesture.js: -------------------------------------------------------------------------------- 1 | var Gesture = require('../lib/gesture'); 2 | var gesture = new Gesture.detector(0); 3 | 4 | 5 | //setup detection options 6 | gesture.setTimeToCountDetection(2); 7 | gesture.setDraw(true); 8 | gesture.setShow(true); 9 | gesture.setFrameFlip(true); 10 | 11 | 12 | gesture.runDetection(Gesture.PINCH); 13 | 14 | 15 | //events 16 | gesture.on('error', console.log); 17 | gesture.on('frame', console.log); 18 | gesture.on('stop', function(){ 19 | console.log("Detection process was stopped"); 20 | }); 21 | 22 | 23 | -------------------------------------------------------------------------------- /docker/examples/detection-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "media-server", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "server.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.13.4", 14 | "socket.io": "^1.4.5" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /docker/examples/detection-server/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Gesture Detection 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 | 15 |
16 | 17 | 18 |
19 |
20 |
21 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec ex hendrerit, ultrices risus vitae, imperdiet ex. Curabitur justo quam, porta nec lectus at, lobortis lobortis urna. Nulla maximus sagittis velit, eu dignissim arcu rhoncus a. Morbi metus metus, feugiat pharetra velit vel, egestas iaculis mauris. Nam malesuada neque eget aliquet ultricies. Curabitur elementum varius metus, nec fringilla dolor congue laoreet. Aliquam a enim sem. Curabitur ac laoreet leo. Morbi sed orci erat. 22 | 23 | Phasellus non libero massa. Proin posuere viverra orci eu dignissim. Suspendisse viverra, tellus a lacinia porttitor, nisl dolor facilisis lectus, nec rutrum massa ante non mauris. Morbi sodales tempor turpis ut aliquam. Mauris aliquam sit amet elit ac euismod. Nulla non euismod enim. Suspendisse semper ipsum quis massa facilisis, quis facilisis enim auctor. Duis leo turpis, maximus et pharetra sed, posuere sed nulla. Mauris vel sem eget nulla pulvinar tempor interdum vel lectus. Duis sit amet consectetur justo. Ut in eros vel mauris eleifend luctus. 24 | 25 | Pellentesque feugiat blandit ullamcorper. Donec eget purus nec augue tincidunt dapibus. Aliquam eget felis posuere, egestas lorem vitae, malesuada arcu. Morbi velit tortor, dictum nec consequat vitae, congue eu urna. Sed auctor accumsan bibendum. Sed non auctor sem. Nullam hendrerit pretium ex, ut scelerisque lorem luctus eget. Morbi lacinia accumsan eros at posuere. Quisque vestibulum et odio sed luctus. Nunc neque orci, vehicula vel pulvinar et, maximus quis purus. Donec pretium sed orci sed porta. 26 | 27 | Integer ultrices condimentum mauris, vel rutrum risus auctor mattis. Praesent fringilla eleifend tellus, at laoreet quam vehicula in. Praesent commodo imperdiet odio in laoreet. Sed hendrerit velit et lectus interdum, sit amet luctus metus commodo. Aliquam erat volutpat. Morbi aliquet eros quis consectetur condimentum. Curabitur suscipit, sapien et placerat ultricies, enim arcu lobortis nulla, ut varius augue nulla in metus. Cras porta sed lorem non sodales. Suspendisse faucibus, justo sit amet euismod posuere, diam quam efficitur nisl, at imperdiet metus nisi in orci. In a leo pulvinar, lobortis ex vitae, dapibus dolor. Nulla sodales arcu ut dolor tristique, quis suscipit urna maximus. Sed accumsan sapien id ante egestas ullamcorper. Aenean ac elit a purus porttitor hendrerit vel a nisl. 28 | 29 | Mauris magna ligula, pretium sed volutpat sit amet, porta id erat. Nulla aliquet commodo tellus, ut aliquet diam tincidunt non. Aliquam condimentum tincidunt fringilla. Quisque sed laoreet nibh. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum tincidunt porttitor eros, eget tristique neque venenatis ac. Donec cursus blandit tellus, vel consequat eros eleifend egestas. Pellentesque sagittis lobortis eros eget accumsan. Pellentesque consequat ex eget felis semper hendrerit. Suspendisse cursus elit id metus mattis, consectetur lacinia nunc ornare. Mauris ut odio sed nunc dignissim porta. 30 |
31 |
32 | 33 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /docker/examples/detection-server/public/js/camera-capture.js: -------------------------------------------------------------------------------- 1 | 2 | 'use strict'; 3 | window.onload = function(argument){ 4 | 5 | 6 | var video = document.querySelector('video'); 7 | var canvas = document.querySelector('canvas'); 8 | var ctx = canvas.getContext('2d'); 9 | var localMediaStream = null; 10 | var socket = io(); 11 | var resultsContent = document.getElementById('results'); 12 | 13 | socket.on('detection', function(results){ 14 | console.log('client,results:', results); 15 | $('.box').remove(); 16 | for(var i = 0; i < results.length; i++) { 17 | $('body').append('
'); 18 | $('#box-'+results[i].id).css({ 19 | 'top': results[i].y+'px', 20 | 'height': results[i].height+'px', 21 | 'width': results[i].width+'px', 22 | 'left': results[i].x+'px'} 23 | ) 24 | 25 | } 26 | var boxHeight = (results[0].yc)/4.8; 27 | player.setVolume(boxHeight); 28 | setTimeout(function() { 29 | var videoLength = player.getDuration(); 30 | if(results[0].hand_type === 1) { 31 | var handSeek = player.getCurrentTime() + results[0].xc; 32 | player.seekTo(handSeek, true); 33 | } 34 | }, 1000); 35 | 36 | 37 | //var para = document.createElement("P"); // Create a

node 38 | //var t = document.createTextNode(JSON.stringify(results)); // Create a text node 39 | //para.appendChild(t); // Append the text to

40 | //resultsContent.appendChild(para); 41 | }); 42 | 43 | navigator.getUserMedia = navigator.getUserMedia || 44 | navigator.webkitGetUserMedia || navigator.mozGetUserMedia; 45 | var localMediaStream = null; 46 | var constraints = { 47 | audio: false, 48 | video: true 49 | }; 50 | var video = document.querySelector('video'); 51 | var dataURL; 52 | function successCallback(stream) { 53 | window.stream = stream; // stream available to console 54 | //record(stream); 55 | localMediaStream = stream; 56 | if (window.URL) { 57 | video.src = window.URL.createObjectURL(stream); 58 | } else { 59 | video.src = stream; 60 | } 61 | 62 | 63 | setInterval(snapshot, 20); 64 | } 65 | 66 | function errorCallback(error) { 67 | console.log('navigator.getUserMedia error: ', error); 68 | } 69 | 70 | navigator.getUserMedia(constraints, successCallback, errorCallback); 71 | 72 | function snapshot(){ 73 | if (localMediaStream) { 74 | ctx.drawImage(video, 0, 0); 75 | dataURL = canvas.toDataURL('image/png'); 76 | socket.emit('frame', dataURL); 77 | } 78 | } 79 | 80 | 81 | 82 | 83 | } 84 | 85 | // 2. This code loads the IFrame Player API code asynchronously. 86 | var tag = document.createElement('script'); 87 | 88 | tag.src = "https://www.youtube.com/iframe_api"; 89 | var firstScriptTag = document.getElementsByTagName('script')[0]; 90 | firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 91 | 92 | // 3. This function creates an