Name | NetID | Section |
---|---|---|
Eitan Tse | eitanyt2 | ECE 110 |
Statement of Purpose
I am planning to train a machine learning algorithm to recognize handwritten characters, and create a hardware accelerator on an FPGA to accelerate recognition of handwritten digits by the trained algorithm. The goals are to have a high accuracy algorithm (hopefully >90+%) and an effective hardware accelerator that runs quickly. Perhaps ideally it would be near-real time, but I don't know about the feasibility of that.
Background Research
I’m interested in learning how to use FPGAs and gaining further experience with machine learning since they are extremely versatile and can be used in a wide variety of applications. In addition, I’m interested in both of these areas. This was inspired by a project that made a calculator using machine learning to recognize digits and the operation signs to carry out the calculations (Microdent’s project).
I am currently looking around for projects to gain familiarity with programming the FPGA and eventually learning and then building the hardware accelerator from scratch.
The ML algorithm (a concurrent neural network) is coming along- as of 9/30 I will be training it on about half the EMNIST dataset, due to some issues with processing the size of the dataset. I will see where it goes from there; hopefully I will resolve the issue and train it on the entirety of the dataset.
Block Diagram / Flow Chart
System Overview
- The image input is either going to be an image that is processed into 28x28 pixel images
- right now it is looking like it'll be from the computer itself, but I hope to use a camera if possible
- ML algorithm is a concurrent neural network trained on the EMNIST dataset
- Hardware accelerator is dedicated hardware that will run the algorithm faster than the hardware on the laptop
- Program will output the predicted digit, displayed on the device to which the FPGA is connected.
Parts
Provide a list of parts that you may need for your project. You should include details such as the quantity, model number, purpose, vendor, and price (excluding taxes and shipping) for each part. This list may change as you work on your project.
1x PYNQ-Z2 board (obtained)- $123.00 (Newark)
1x CAT6 Ethernet Cable (obtained)- $1.64 (ECE supply store)
1x USB-A to Ethernet Adapter (obtained)- $18.23 (ECE supply store)
1x 8GB SD card (obtained)- $4.31 (ECE supply store)
Possible Challenges
I foresee learning how to program an FPGA as something difficult as I have very little prior experience with this. I'll need to learn it from the ground up.
Final Papers and Video
Video: https://drive.google.com/file/d/130k8OUPl__X-OBvahk9nKDQF7Mxa2Yzk/view?usp=sharing
Paper: https://docs.google.com/document/d/1QIUtwLZg0N5-t6F3OFqhM6kb39_yjdRbpGKNWQGTVbo/edit?usp=sharing
References
[1]"GitHub - Microdent/Handwritten_Mathematical_Calculator_on_FPGA: A simple demo to implement the Handwritten Mathematical Calculator on PYNQ-Z2 FPGA platform by using HLS.", GitHub, 2021. [Online]. Available: https://github.com/Microdent/Handwritten_Mathematical_Calculator_on_FPGA. [Accessed: 16- Sep- 2021].