1/31
This week, I made significant progress by identifying which model we would use and why it is well suited for this board. I selected YOLOv3-tiny because it is small enough to fit within the board’s resource constraints while still maintaining good accuracy when quantized to INT8. It also performs well for real-time video processing, which makes it a strong fit for our application.
In addition, I spent time studying the YOLOv3 model in more detail and analyzing how it would map onto an RTL implementation. From this analysis, I expect the design to primarily require MAC units that will be composed into convolution modules, BRAM for on-chip storage, and support for operations such as Leaky ReLU, Batch Normalization, and Max Pooling. Some pre- and post-processing will likely be handled in software. I am also working on a block-level diagram of the model so I can walk through each layer and determine how to properly parameterize the corresponding RTL modules.
I also explored potential use cases for our design and reviewed several related research papers this week, which helped inform both the architectural choices and application focus.
Paper 1: FPGA Implementation of CNN Accelerator with Pruning for ADAS Applications
https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10544357&tag=1
Paper 2: QuantLaneNet: A 640-FPS and 34-GOPS/W FPGA-Based CNN Accelerator for Lane Detection
https://pmc.ncbi.nlm.nih.gov/articles/PMC10422460/pdf/sensors-23-06661.pdf
Paper 3: A Survey of FPGA-Based Vision Systems for Autonomous Cars
https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9991145&tag=1
Paper 4: Agricultural machinery automatic navigation technology
https://www.sciencedirect.com/science/article/pii/S2589004223027918
Papers 1, 2, and 3 were helpful in expanding the scope of our project and clarifying the eventual use case: a delivery robot that can quickly recognize objects and people in real time.
I also found a GitHub repository where someone implemented a similar approach. This was useful for understanding what data they trained on and how they deployed the model on a board similar to ours.
https://github.com/Yu-Zhewen/Tiny_YOLO_v3_ZYNQ
By next week I hope to start doing the RTL and also researching and starting training the model. This has to be done as soon as possible.
