Package Summary

Tags No category tags.
Version 0.0.5
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/tue-robotics/image_recognition.git
VCS Type git
VCS Version master
Last Updated 2024-03-12
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The image_recognition_openface package

Additional Links

No additional links.

Maintainers

  • Rein Appeldoorn

Authors

No additional authors.

image_recognition_openface

Face recognition with use of Openface (https://cmusatyalab.github.io/openface/)

Installation

See https://github.com/tue-robotics/image_recognition

Make sure that openface is correctly installed. Installation instructions can be found here: https://cmusatyalab.github.io/openface/setup/. Make sure you have installed CUDA8. CUDA10 is not working: https://github.com/torch/torch7/issues/1180

export TORCH_INSTALL_PATH=~/torch
export OPENFACE_INSTALL_PATH=~/openface
git clone https://github.com/torch/distro.git ~/torch --recursive && \
cd $TORCH_INSTALL_PATH && bash install-deps && ./install.sh && \
for NAME in dpnn nn optim optnet csvigo cutorch cunn fblualib torchx tds; do $TORCH_INSTALL_PATH/install/bin/luarocks install $NAME; done && \
sudo -H pip install dlib && \
git clone https://github.com/cmusatyalab/openface.git $OPENFACE_INSTALL_PATH && \
cd $OPENFACE_INSTALL_PATH && sudo -H python setup.py install && \
./models/get-models.sh

How-to

ROS Node

Run the image_recognition_openface node in one terminal (Specify the dlib and openface_net path as ROS parameter):

rosrun image_recognition_openface face_recognition_node

Run the rqt annotation client (https://github.com/tue-robotics/image_recognition_rqt)

rosrun image_recognition_rqt annotation_gui

Setup the service by clicking the gear wheel in the top-right corner. Select the /annotate services exposed by the openface ros node. Also don't forget to set-up your labels.

Configuration

Now draw a rectangle around the face you would like to learn. The face recognizer will find the biggest face in the image and store a representation for this face.

Annotate

Now select the label and you will see that the openface ros node stores the face (console output node):

[INFO] [WallTime: 1478636380.407308] Succesfully learned face of 'rokus'

Learn as many faces as you want ..

Next step is starting the image_recognition_Rqt test gui (https://github.com/tue-robotics/image_recognition_rqt)

rosrun image_recognition_rqt test_gui

Again configure the service you want to call with the gear-wheel in the top-right corner of the screen. If everything is set-up, draw a rectangle in the image and ask the service for detections:

Test

You will see that the result of the detection will prompt in a dialog combo box. Also the detections will be drawn on the image.

Command line

Command line interface to test the detection / recognition based on an image:

usage: get_face_recognition IMAGE [-k ALIGN_PATH] [-s NET_PATH] [-v]

Run the command on an example image:

rosrun image_recognition_openface get_face_recognition `rospack find image_recognition_openface`/doc/example.png

This will lookup this image in the image_recognition_openface/doc folder and perform recognitions

Example

Output:

[RecognizedFace(roi=(374, 188, 108, 123), l2_distances=[]), RecognizedFace(roi=(72, 147, 88, 105), l2_distances=[]), RecognizedFace(roi=(377, 95, 74, 86), l2_distances=[]), RecognizedFace(roi=(149, 26, 74, 86), l2_distances=[]), RecognizedFace(roi=(52, 47, 75, 86), l2_distances=[]), RecognizedFace(roi=(246, 115, 88, 102), l2_distances=[]), RecognizedFace(roi=(0, 0, 42, 60), l2_distances=[]), RecognizedFace(roi=(336, 33, 74, 86), l2_distances=[]), RecognizedFace(roi=(228, 0, 62, 60), l2_distances=[])]

Since no faces were trained, the l2_distances will not be calculated of-course.

CHANGELOG

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Changelog for package image_recognition_openface ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.0.5 (2019-06-08)

  • Installation instructions openpose / openface + model download
    • Added installation instructions openpose + model dowload
    • Added installation instructions openface + model download
    • Added download script for model
  • Added catkin lint to all packages
  • Correctly store and publish images on parameters
  • refactor package xml to 2.0
  • rename ROS pkgs with image_recognition_prefix
  • Contributors: Rein Appeldoorn

0.0.4 (2017-02-07)

0.0.3 (2017-02-07)

  • fix(): Add targets install for scripts
  • Add python-numpy run dependency
  • Contributors: Matthijs van der Burgh, Rein Appeldoorn

0.0.2 (2017-01-17)

0.0.1 (2017-01-17)

  • Added image recognition util to support labeled and raw writing of image in predefined folder structure
  • Update README.md
  • added images
  • Update README.md Added cli doc
  • added example image
  • Create README.md
  • Documentation
  • Fixed ROI bounds
  • Moved funtionality to src and added cmd line tool
  • tmp folder defaults to /tmp/openface
  • Working annotation gui and test gui for both image_recognition_tensorflow object recognition and image_recognition_openface face recognition
  • Working of openface ros node with image_recognition api
  • added packages openface ros and skybiometry ros
  • Contributors: Rein Appeldoorn

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged image_recognition_openface at Robotics Stack Exchange