HARDWARE/SOFTWARE CO-DESIGN PARTITIONING ALGORITHM FOR MACHINE VISION APPLICATIONS
MetadataShow full item record
Advancements in FPGA technologies now allows the implementation of machine vision using hardware component rather than processors for increased efficiency. The combination of hardware and software implementations, however, can provide even more efficient results by combining the advantages of both technologies. This leads to the problem of partitioning the machine vision algorithms between hardware and software. The hardware/software partition problem is NP-hard, which means that a solution to the problem can be checked in polynomial time, but the time to find the solution is not predictable. Automated methods based on a genetic algorithm or discrete particle swarm optimization algorithm allow a designer to implement computer vision algorithms without concerns for the hardware/software partitioning. Their reliance on randomness to explore different partitioning selections, however, means that the optimum result might not be reached and that the processing time cannot be predicted. This dissertation introduces a model for image processing and computer vision algorithms in a set of elementary blocks, each of which is assigned one or more configuration. This configuration can be either hardware or software and is linked to the corresponding resource utilization and performance. A procedure is also introduced to allocate the different blocks to either hardware or software, and a cost function is defined to evaluate the relevance of the generated design. The implementation of the model and procedure allows for the partitioning of any image processing in polynomial time by checking various implementations and selecting the optimum solution. This thesis includes two test cases used to test the efficiency of the method. The shift-invariant features transform is used to demonstrate the viability of the partitioning results on an algorithm containing multiple image convolution operations in parallel. The neural network, on the other hand, is used to demonstrate the performances of the procedure when machine vision algorithm contains many blocks. Finally, this dissertation present a set of machine vision applications, such as object tracking, object recognition, optical character recognition, facial recognition, and visually impaired assistance. The proposed model and procedure could be included in the design flow of hardware/software co-design tools and provide a library of image processing blocks ready to be implemented. This would allow image processing and computer vision designers would be able to implement any algorithm efficiently in hardware/software co-design without the need to know how to partition it.