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.