Derin öğrenme kullanılarak FPGA'lar ile gerçek zamanlı nesne algılama ve tanıma
Real-time object detection and recognition on FPGAS's by using deep learning
Yazar: VEYSEL YUSUF ÇAMBAY
Danışman: DOÇ. DR. AYŞEGÜL UÇAR
Fırat Üniversitesi / Fen Bilimleri Enstitüsü / Mekatronik Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Mekatronik Mühendisliği = Mechatronics Engineering
Dizin: Görsel nesne tanıma = Visual object recognition ; Yapay sinir ağları = Artificial neural networks

Özet:
Nesne algılama ve tanıma işlemi, otonom insansız yer araçları, robotik ve medikal görüntü işleme gibi birçok alanda temel görevlerden biridir. Son zamanlarda derin öğrenme, veri ölçüsü büyük olduğunda birçok araştırmacı tarafından bu alanlarda kullanılmıştır. Özellikle, derin öğrenmenin en güncel yapılarından biri olan Evrişimsel Sinir Ağları (ESA'lar) bu alanda büyük başarılar sağlamıştır. ESA'lar ile ilgili gerçek zamanlı çalışmalar, Grafik İşleme Birimi (GPU- Graphics Processing Unit) kartları ile gömülü olarak yapılmıştır. GPU'lar yüksek kararlılıkla sonuçlanmasına rağmen, yüksek güç ve enerji tüketimi ve büyük hesapsal yük problemi ortaya çıkarmıştır. Bu problemin üstesinden gelmek için, İkili Sinir Ağı (İSA'lar) olarak adlandırılan, düşük kesinlikli yani ikileştirilmiş ağırlık ve aktivasyonlu ESA'lar Alanda Programlanabilir Kapı Dizileri (FPGA-Field Programmable Gate Array)'lar üzerinde uygulanmaya başlanmıştır. Bu çalışmada, hem ARM işlemci hem de ZYNQ XC7Z020 içeren PYNQ FPGA kartı kullanılarak, nesne algılama ve tanıma işlemleri yapılmıştır. Birinci olarak; PYNQ kartı üzerine yüklenen OpenCV kütüphanesini kullanarak Haar-Kaskat sınıflayıcı oluşturulmuş, yüz ve göz algılama işlemi gerçekleştirilmiştir. İkinci olarak; bilimsel yazında geliştirilmiş olan İSA'lar kullanılarak köpek, araç, uçak vb. nesnelerin tanınması işlemi yapılmıştır. PYNQ kartına harici olarak takılan kamera ile alınan görüntü üzerinde veya hafızasında depolanan nesne görüntüsü üzerinde önceden eğilmiş ISA'lar ile gerçek zamanlı tanıma işlemleri yapılmıştır. Donanım ve yazılımda geçen süreler ve başarımları tablolar ve grafikler ile verilmiştir. Üçüncü olarak MNIST el yazısı ve CIFAR nesne görüntü veri kümeleri üzerinde tanıma işlemi uygulanarak, ESA'lar, Merkezi İşlem Birimi (CPU-Central Processing Unit) ve Nvidia'nın Jetson TK1 ve TX1 GPU kartlar ile hız ve kararlılık açısından karşılaştırmalar yapılmıştır. Son olarak, PYNQ kartına harici olarak takılan Movidius USB-GPU ile gerçek zamanlı nesne tanıma uygulamaları yapılmıştır. Elde edilen sonuçlar şekiller ile verilmiştir. Bu tez çalışması ile GPU'lar kümesi nesne algılama ve tanıma işlemleri için kullanılmadığı sürece, FPGA'ların düşük kararlılık bedelinde düşük güç tüketimi ile daha hızlı sonuç verdiği sonucuna varılmıştır. Anahtar kelimeler: FPGA, PYNQ, Nesne Algılama, Nesne Tanıma, Derin Sinir Ağları, İkileştirilmiş Sinir Ağları

Abstract:
Object detection and recognition are ones of the main tasks in many areas such as autonomous vehicles, robotic, and medical image processing. Recently, deep learning has been used in these areas by many researchers when the data measure is large. In particular, one of the most up-to-date structures of deep learning, Convolutional Neural Networks (CNNs) has achieved great success in this field. Real-time studies related to CNNs are carried out as embedded by using Graphics Processing Unit (GPUs). Although GPUs provide high stability, they need to high power and energy consumption and large computational load problems. In order to overcome this problem, it has started to be applied on the FPGA-Field Programmable Gate Array in the field of binary precision weight and activated CNNs called as Binary Neural Network (BNNs). In this study, object detection and recognition processes were performed using the PYNQ FPGA board including both the ARM processor and the ZYNQ XC7Z020. Firstly, Haar-Cascade classifier was created using the Open Computer Vision Library (OpenCV) installed on the PYNQ board, face and eye detection were performed. Secondly, the identification of objects such as cats, dogs, vehicles, aircraft-like objects was carried out using the BNNs developed in the literature. Real-time recognition was performed with pre-trained BNNs on the object image stored in the memory or on the image taken with the external camera attached to the PYNQ board. The required time for hardware and software and their performances are given by tables and figures. Thirdly, MNIST handwritten and CIFAR object image datasets were used for comparing those of PYNQ with both Central Processing Units (CPU) and Nvidia TK1 and TX1 GPU boards in terms of speed and stability. Finally, real-time object recognition applications have been made with the Movidius USB-GPU externally being plugged into the PYNQ. The obtained results were given with figures. In this thesis, it has been concluded that FPGAs have faster results with lower power consumption if the set of GPUs is used for object detection and recognition. Key words: FPGA, PYNQ, Object Detection, Object Recognition, Deep Neural Networks, Binary Neural Networks.