-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Docker
This image can be build with just docker
, but it is highly recommend to use
docker-compose
as this greatly simplifies and improves the process.
To start with the container hosted by the repo maintainer, run
docker run -it --rm --name openface algebr/openface:latest
This will drop you into a shell with binaries such as FaceLandmarkImg. For example, try this code (in the container):
curl -o tesla.jpg https://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Nicola_Tesla_LCCN2014684845.jpg/559px-Nicola_Tesla_LCCN2014684845.jpg
FaceLandmarkImg -f tesla.jpg
Then, copy the output to the host system (from host terminal):
docker cp openface:/root/processed /tmp/
cd /tmp/processed
Tip: On Ubuntu and other *nixes with X running, you can open a file directly like this:
xdg-open /tmp/processed/tesla.jpg
In repo root, run docker-compose build
to automatically build and tag.
There are two variables which can be used to modify the tag, $DOCKERUSER
and
$DOCKERTAG
. DC will automatically tag image as
${DOCKERUSER}/openface:${DOCKERTAG}
To run OpenFace like a service, you can start the container with bind mounts
in order to pass data into and out of the container easily.
$DATA_MOUNT
by default is set to /tmp/openface
. This can be overridden by
modifying .env
file, setting it in your shell environment, or passing in
before docker-compose
at runtime. Note: output will be root
owner.
export DATA_MOUNT=/tmp/openface
mkdir -p $DATA_MOUNT/tesla # this is just to ensure this is writable by user
docker-compose up -d openface && sync # sync is to wait till service starts
curl -o $DATA_MOUNT/tesla.jpg \
https://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Nicola_Tesla_LCCN2014684845.jpg/559px-Nicola_Tesla_LCCN2014684845.jpg
docker exec -it openface FaceLandmarkImg -f $DATA_MOUNT/tesla.jpg -out_dir $DATA_MOUNT/tesla
docker exec -it openface chown -R $UID:$UID $DATA_MOUNT # chown to current user
docker-compose down # stop service if you wish