Skip to content

Face Recognition

John Sichi edited this page Jan 8, 2017 · 1 revision

After Kiosk Setup, record a set of face images for training. Then use a script like this for classifying them:

#!/bin/bash

# need to do this once before run
# export window_id=$(wmctrl -l -p | awk -v pid=$PPID '$3 == pid {print $1}')

mkdir larry
mkdir curly
mkdir moe
mkdir train
mkdir trash

for face in `ls -1 faces`; do

    display faces/$face &
    sleep 0.1
    wmctrl -i -a "$window_id"
    read -s -n 1 letter
    target=trash
    case $letter in
        l)
            target=larry
            ;;
        c)
            target=curly
            ;;
        m)
            target=moe
            ;;
    esac
    kill %%
    echo $target
    echo
    cp faces/$face $target
done

for dir in "larry" "curly" "moe"; do
  pushd $dir
  i=0
  for file in `ls -1`
  do
      filename=$(basename "$file")
      extension=${filename##*.}
      filename=${filename%.*}
       mv "$file" "$dir-$(($filename + i))".$extension
       ((++i))
  done
  popd
  mogrify -path train -resize 100x100 $dir/*
done

Clone this wiki locally