Git Product home page Git Product logo

face_detect_open's Introduction

A Voila-Jones face detector hardware implementation

This project attempts to realize a face detector using Voila-Jones algorithm. The reference C model is borrowed from 5kk73 GPU Assignment 2012, with some modify to fit hardware implementation and fixed some bug.

The code is written by Verilog/SystemVerilog and Synthesized on Xilinx KintexUltrascale FPGA using Vivado.

This code is just experimental for function, a lot of optimization can further be done.

Architecture

This project include 4 main module:

  • The capture, this module captures the video input to frame buffer, with a scale of the input video
  • The vj-fectch, this module accesses the frame buffer to get the pixels and feed into Volia-Jones engine.
  • The vj, this is Volia-Jones engine, accepts original pixels and generates integral image and does classify
  • The draw, this module is to draw a box onto face detected area. This draw engine does not operate on the frame buffer. It draws on video port on the fly.

Demo

Xilinx KCU105 Board, with HDMI input and output daughter boards.

The input 1080P HDMI input is scaled down to 480x270 to fill the frame buffer, then perform the face dection.

The final detection result is not very good. there is a lot missed and false detection.

Simulation

VCS is used
goto the sim/face subdirectory 
run ./face 

Synthesis

go to vivado/face directory 
run "vivado -mode tcl -source face-ku.tcl"

TODO

  • The area is large mainly because the ii registers. which can be optimized and the register width can be manual adjusted. Now all the registers use the same width.
  • The detection speed is slow, more classifiers can be paralleled to speed up the performance.
  • To speed up the performance, the data width of frame buffer should be enlarge to access multiple pixels in one clock.
  • The II select MUX can be optimized.
  • the Haar feature calculation can be implemented by shift and adder, not multiplier.
  • The square root cal module is also a limit of speed.

Reference

https://sites.google.com/site/5kk73gpu2012/assignment/viola-jones-face-detection

Junguk Cho, "FPGA-Based Face Detection System Using Haar Classifiers"

Braiden Brousseau, "An Energy-Efficient, Fast FPGA Hardware Architecture for OpenCV-Compatible Object Detection"

Peter Irgens, "An efficient and cost effective FPGA based implementation of the Viola-Jones face detection algorithm"

Author

LulinChen
[email protected]

face_detect_open's People

Contributors

lulinchen avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.