1 Star 2 Fork 0

卖菇凉小蘑菇 / face_detect_open

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

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
lulinchen@aliyun.com

空文件

简介

A Voila-Jones face detector hardware implementation 展开 收起
Verilog
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Verilog
1
https://gitee.com/qq1847123212/face_detect_open.git
git@gitee.com:qq1847123212/face_detect_open.git
qq1847123212
face_detect_open
face_detect_open
master

搜索帮助