• Stars
    star
    316
  • Rank 131,856 (Top 3 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 3 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Face tracking plugin for OBS Studio

OBS Face Tracker Plugin

Introduction

This plugin provide a feature to track face of a person by detecting and tracking a face.

This plugin employs dlib on face detection and object tracking. The frame of the source is periodically taken to face detection algorithm. Once a face is found, the face is tracked. Based on the location and the size of the face under tracking, the frame will be cropped.

Usage

For several use cases, total 3 methods are provided.

Face Tracker Source

The face tracker is implemented as a source. You can easily have another source that tracks and zooms into a face.

  1. Click the add button on the source list.
  2. Add Face Tracker.
  3. Scroll to the bottom and set Source property.

See Properties for the description of each property.

Face Tracker Filter

The face tracker is implemented as an effect filter so that any video source can have the face tracker.

  1. Open filters for a source on OBS Studio.
  2. Click the add button on Effect Filters.
  3. Add Face Tracker.

See Properties for the description of each property.

Face Tracker PTZ

Experimental version of PTZ control is provided as an video filter.

  1. Open filters for a source on OBS Studio,
  2. Click the add button on Audio/Video Filters.
  3. Add Face Tracker PTZ.

See Properties for the description of each property.

See Limitations for current limitations of PTZ control feature.

Wiki

Building

This plugin requires dlib to be built. The dlib should be extracted under obs-face-tracker so that it will be linked statically. I modified dlib so that openblasp won't be linked but openblas.

For macOS, install openblas and configure the path.

brew install openblas
export OPENBLAS_HOME=/usr/local/opt/openblas/

For Linux and macOS, expand obs-face-tracker outside obs-studio and build.

d0="$PWD"
git clone https://github.com/obsproject/obs-studio.git
mkdir obs-studio/build && cd obs-studio/build
cmake ..
make
cd "$d0"

git clone https://github.com/norihiro/obs-face-tracker.git
cd obs-face-tracker
git submodule update --init
mkdir build && cd build
cmake .. \
	-DLIBOBS_INCLUDE_DIR=$d0/obs-studio/libobs \
	-DLIBOBS_LIB=$d0/obs-studio/libobs \
	-DOBS_FRONTEND_LIB="$d0/obs-studio/build/UI/obs-frontend-api/libobs-frontend-api.dylib" \
	-DCMAKE_BUILD_TYPE=RelWithDebInfo
make

For Windows, see .github/workflows/main.yml.

Known issues

This plugin is heavily under development. So far these issues are under investigation.

  • Memory usage is gradually increasing when continuously detecting faces.
  • It consumes a lot of CPU resource.
  • The frame sometimes vibrates because the face detection results vibrates.

License

This plugin is licensed under GPLv2.

Sponsor

  • Jimcom USA - a company of Live Streaming and Content Recording Professionals. Development of PTZ camera control is supported by Jimcom. Jimcom is now providing a 20% discount for their broadcast-quality network-connected PTZ cameras and free shipping in the USA. Visit Jimcom USA and enter the coupon code FACETRACK20 when you order.

Acknowledgments

More Repositories

1

obs-color-monitor

Vectorscope, waveform, and histogram for OBS Studio
C
125
star
2

obs-vnc

VNC viewer integrated into OBS Studio as a source plugin
C
85
star
3

obs-vban

VBAN audio plugin for OBS Studio
C
40
star
4

obs-text-pthread

Rich text source plugin for OBS Studio
C
31
star
5

obs-async-audio-filter

This filter aims to fix audio glitches caused by asynchronous audio of the source
CMake
30
star
6

obs-multisource-effect

Custom effect source to blend multiple sources for OBS Studio
CMake
22
star
7

obs-command-source

Dummy Source in OBS-Studio to Execute Command
CMake
19
star
8

obs-audio-pan-filter

Pan control filter for OBS audio source
CMake
16
star
9

obs-async-source-duplication

OBS plugin to duplicate asynchronous video/audio sources
C
15
star
10

obs-mute-filter

OBS Studio plugin to mute audio of a source
CMake
15
star
11

obs-main-view-source

Duplicate main view of OBS Studio
CMake
14
star
12

obs-loudness-dock

EBU R 128 loudness meter plugin for OBS Studio
CMake
12
star
13

obs-frame-interleave-filter

Plugin to interleave frames on OBS Studio
CMake
7
star
14

ldifdiff

compare two LDAP entries and output with a format of ldapmodify
Python
6
star
15

obs-shutdown-plugin

Shutdown OBS Studio through websocket API
CMake
5
star
16

obs-lua-scripts

Lua scripts for OBS Studio
Lua
5
star
17

obs-audio-video-sync-dock

OBS Studio plugin to measure latency between audio and video.
C++
4
star
18

obs-rendering-lag

Shell
4
star
19

obs-source-record-async

Asynchronous source record plugin for OBS Studio
C
4
star
20

obs-h8819-source

OBS Studio audio source capturing REAC packets
C
3
star
21

obs-audio-latency-comparator

Calculate audio correlation in OBS Studio
C
2
star
22

qvisca-ip

A GUI tool to control a PTZ camera compatible with VISCA over IP
C++
2
star
23

obs-output-filter

OBS plugin providing a source filter that redirect video to an output
CMake
2
star
24

alignaudio

a tool to align audio files
C
2
star
25

reaccapture

a user-level software to capture audio data from REAC equipment
C++
2
star
26

obs-studio-devel-action

Script to setup development environment for obs-studio plugins
Shell
2
star
27

autoinput

a Firefox addon that fills input boxes automatically.
JavaScript
2
star
28

untriseptium

A GUI automation library in python with OCR
Python
1
star
29

vmxethproxy

V-Mixer MIDI over Ethernet proxy
C++
1
star
30

audio-network-analyzer

Network analyzer using PulseAudio
C
1
star
31

obs-aja-output-filter

AJA output filter for OBS Studio
CMake
1
star
32

libvisca-ip

libvisca with TCP and UDP connection
C
1
star
33

obs-asynchronous-audio-source

Asynchronous audio source to test libobs
CMake
1
star