ECE 59500 - Computer Vision for Embedded Systems

Note:

Students may purchase a Raspberry PI 4 for the programming assignments; Engineering students with ECN accounts will be able to access a Raspberry PI in the instructor's lab via the Internet.

Course Details

Lecture Hours: 3 Credits: 1

Counts as:

  • EE Elective
  • CMPE Selective - Special Content

Normally Offered:

Each Fall

Campus/Online:

On-campus and online

Requisites:

ECE 20875

Requisites by Topic:

Python for Data Science or similar

Catalog Description:

This course provides an overview of running computer vision (OpenCV and PyTorch) on an embedded system (Raspberry Pi). The course emphasizes on the resource constraints imposed by embedded systems and examines methods (such as quantization and pruning) to reduce resource requirements. This course will have programming assignments and projects proposed by the students.

Required Text(s):

None.

Recommended Text(s):

  1. Online tutorials for OpenCV, PyTorch, and Raspberry Pi may be helpful
  2. Reading materials (research papers) will be assigned

Learning Outcomes:

  1. Use computer vision to analyze images. [None]
  2. List the constraints of embedded systems. [None]
  3. Explore design space of computer vision. [None]
  4. Evaluate different methods for accuracy/time tradeoffs. [None]

Lecture Outline:

Lecture Topic
1 Overview, image data formats, OpenCV
2 Edge detection and segmentation
3 Applications of computer vision in embedded systems
4 Datasets, bias, privacy, competitions
5 Machine learning and PyTorch
6 Performance and resources (time, memory, accuracy)
7 Object detection and motion tracking
8 Data annotation and generation
9 Quantization
10 Pruning and network architecture search
11 Tree modular networks
12 Vision in context, MobileNet
13 Real-time vision
14 Review and discussion

Assessment Method:

Homework, midterm, project, class participation. (3/2022)