Implementation of CNN on Zynq based FPGA for Real-time Object Detection

The aim of this work is to implement a Convolutional Neural Network (CNN) using a Python framework on Xilinx® Zynq® based Field Programmable Gate Array (FPGA). And the prototype is used to tackle the challenging problem of real-time object detection in computer vision. Pre-trained CNN models are implemented using Tensorflow Application Programming Interface (API). The models are then implemented on Xilinx® Zynq® based FPGA using Python productivity for Zynq (PYNQ). The versatility of this approach is tested on four state-of-the-art object detectors based on the classifiers i.e. mobilenet v1 and inception v2 and the meta-architectures i.e. SSD and Faster R-CNN which have been trained on MS-COCO dataset. System functionality is compared on the basis of system latency, detection accuracy and ease of implementation on ARM® embedded mobile platforms. It is observed from the results and real-time frame rate, SSD with inception v2 model is suitable for the intended application. This hardware software co-design approach forms the basis of FPGA based hardware accelerators.

[1]  David F. Bacon,et al.  FPGA Programming for the Masses , 2013, ACM Queue.

[2]  Kaiming He,et al.  Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks , 2015, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[3]  Wei Liu,et al.  SSD: Single Shot MultiBox Detector , 2015, ECCV.

[4]  Yu Wang,et al.  Towards Real-Time Object Detection on Embedded Systems , 2018, IEEE Transactions on Emerging Topics in Computing.

[5]  Dumitru Erhan,et al.  Going deeper with convolutions , 2014, 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).

[6]  Geoffrey E. Hinton,et al.  ImageNet classification with deep convolutional neural networks , 2012, Commun. ACM.