DOI QR코드

DOI QR Code

Cascade CNN with CPU-FPGA Architecture for Real-time Face Detection

실시간 얼굴 검출을 위한 Cascade CNN의 CPU-FPGA 구조 연구

  • Received : 2017.12.15
  • Accepted : 2017.12.29
  • Published : 2017.12.31

Abstract

Since there are many variables such as various poses, illuminations and occlusions in a face detection problem, a high performance detection system is required. Although CNN is excellent in image classification, CNN operatioin requires high-performance hardware resources. But low cost low power environments are essential for small and mobile systems. So in this paper, the CPU-FPGA integrated system is designed based on 3-stage cascade CNN architecture using small size FPGA. Adaptive Region of Interest (ROI) is applied to reduce the number of CNN operations using face information of the previous frame. We use a Field Programmable Gate Array(FPGA) to accelerate the CNN computations. The accelerator reads multiple featuremap at once on the FPGA and performs a Multiply-Accumulate (MAC) operation in parallel for convolution operation. The system is implemented on Altera Cyclone V FPGA in which ARM Cortex A-9 and on-chip SRAM are embedded. The system runs at 30FPS with HD resolution input images. The CPU-FPGA integrated system showed 8.5 times of the power efficiency compared to systems using CPU only.

얼굴 검출에는 다양한 포즈, 빛의 세기, 얼굴이 가려지는 현상 등의 많은 변수가 존재하므로, 높은 성능의 검출 시스템이 요구된다. 이에 영상 분류에 뛰어난 Convolutional Neural Network (CNN)이 적절하나, CNN의 많은 연산은 고성능 하드웨어 자원을 필요로한다. 그러나 얼굴 검출을 위한 소형, 모바일 시스템의 개발에는 저가의 저전력 환경이 필수적이고, 이를 위해 본 논문에서는 소형의 FPGA를 타겟으로, 얼굴 검출에 적절한 3-Stage Cascade CNN 구조를 기반으로하는 CPU-FPGA 통합 시스템을 설계 구현한다. 가속을 위해 알고리즘 단계에서 Adaptive Region of Interest (ROI)를 적용했으며, Adaptive ROI는 이전 프레임에 검출된 얼굴 영역 정보를 활용하여 CNN이 동작해야 할 횟수를 줄인다. CNN 연산 자체를 가속하기 위해서는 FPGA Accelerator를 이용한다. 가속기는 Bottleneck에 해당하는 Convolution 연산의 가속을 위해 FPGA 상에 다수의 FeatureMap을 한번에 읽어오고, Multiply-Accumulate (MAC) 연산을 병렬로 수행한다. 본 시스템은 Terasic사의 DE1-SoC 보드에서 ARM Cortex A-9와 Cyclone V FPGA를 이용하여 구현되었으며, HD ($1280{\times}720$)급 입력영상에 대해 30FPS로 실시간 동작하였다. CPU-FPGA 통합 시스템은 CPU만을 이용한 시스템 대비 8.5배의 전력 효율성을 보였다.

Keywords

References

  1. V. Jain and E. G. Learned-Miller, "FDDB: A benchmark for face detection in unconstrained settings," Univ. Massachusetts, Amherst, MA, USA, Tech. Rep. MCS-2010-009, 2010.
  2. C. Zhang, "Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks," Proceedings of the 2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, pp. 161-170, 2015. DOI:10.1145/2684746.2689060
  3. P. Viola and M. J. Jones, "Robust real-time face detection," International Journal of Computer Vision, vol. 57, no. 2, pp. 137-154, May. 2004. DOI:10.1023/B:VISI.0000013087.49260.fb
  4. M.Mathias, R. Benenson, M. Pedersoli and L. Van Gool, "Face detection without bells and whistles," European Conference on Computer Vision, 2014, pp. 720-735. DOI:10.1007/978-3-319-10593-2_47
  5. J. Yan, Z. Lei, L. Wen, and S. Li, "The fastest deformable part model for object detection," in IEEE Conf. Comput. Vis. Pattern Recognit., 2014, pp. 2497-2504.
  6. X. Zhu and D. Ramanan, "Face detection, pose estimation, and landmark localization in the wild," in IEEE Conf. Comput. Vis. Pattern Recognit., 2012, pp. 2879-2886. DOI: 10.1109/CVPR.2012.6248014
  7. A. Krizhevsky, I. Sutskever, and G. E. Hinton, "ImageNet classification with deep convolutional neural networks," in Adv. Neural Inf. Process. Syst., 2012, pp. 1097-1105.
  8. Y. Sun, Y. Chen, X.Wang, and X. Tang, "Deep learning face representation by joint identification-verification," in Adv. Neural Inf. Process. Syst., 2014, pp. 1988-1996.
  9. H. Li, Z. Lin, X. Shen, J. Brandt, and G. Hua, "A convolutional neural network cascade for face detection," in IEEE Conf. Comput. Vis. Pattern Recognit., 2015, pp. 5325-5334.
  10. C. Zhang and Z. Zhang, "Improving multiview face detection with multitask deep convolutional neural networks," in IEEE Winter Conf. Appl. Comput. Vis., 2014, pp. 1036-1041. DOI: 10.1109/WACV.2014.6835990
  11. S. Chakradhar, M. Sankaradas, V. Jakkula and S. Cadambi, "A dynamically congurable coprocessor for convolutional neural networks," In ACM SIGARCH Computer Architecture News, vol.38, no.3, pp.247-257, ACM, Jun.2010. DOI:10.1145/1816038.1815993
  12. T. Chen and O. Temam. Diannao, "A small-footprint high-throughput accelerator for ubiquitous machine-learning," SIGPLAN Not., vol,49. no.4, pp.269-284, Feb. 2014. DOI:10.1145/2644865.2541967
  13. A. Krizhevsky, I. Sutskever and G. E. Hinton, "Imagenet classication with deep convolutional neural networks," Advances in Neural Information Processing Systems, 25 pp.1097-1105. Curran Associates, Inc., 2012.
  14. D. Aysegul, J. Jonghoon, G. Vinayak, K. Bharadwaj, C. Alfredo, M. Berin and C. Eugenio, "Accelerating deep neural networks on mobile processor with embedded programmable logic," In NIPS 2013. IEEE, 2013.
  15. S. Cadambi, A. Majumdar, M. Becchi, S. Chakradhar and H. P. Graf, "A programmable parallel accelerator for learning and classication," In Proceedings of the 19th international conference on Parallel architectures and compilation techniques, pp.273-284. ACM, 2010. DOI:10.1145/1854273.1854309
  16. C. Farabet, C. Poulet, J. Y. Han and Y. LeCun, "Anfpga-based processor for onvolutional networks," In Field Programmable Logic and Applications FPL 2009. International Conference, IEEE, 2009. pp. 32-37. DOI: 10.1109/FPL.2009.5272559
  17. M. Peemen, A. A. Setio, B. Mesman and H. Corporaal, "Memory-centric accelerator design for convolutional neural networks," In Computer Design (ICCD), 2013 IEEE 31st International Conference, IEEE, 2013. pp.13-19. DOI: 10.1109/ICCD.2013.6657019
  18. Kaipeng Zhang, "Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks," IEEE Signal Processing Letters, 2016, vol.23, no.10, pp. 1499-1503, Oct. 2016. DOI: 10.1109/LSP.2016.2603342