Skip to content
This repository was archived by the owner on May 27, 2020. It is now read-only.

Assignment

Michael Hirsch, Ph.D edited this page Sep 4, 2019 · 17 revisions

Any model Raspberry Pi, including the Pi Zero W, can be used for this miniproject. The essential task is to estimate relative numbers of automobiles traveling a segment of road vs. time. In general, we don't have enough Pi CPU computing power to track cars frame-by-frame or use advanced machine learning techniques. We can instead sample periodically and assume cars we already counted have passed out of our region of interest.

This problem is representative of many Senior Design projects and real world projects in that you don't have enough CPU computational power, don't have a wide array of sensors, or enough battery power, etc. to track things exactly. Instead you have a weak CPU and mediocre sensor, and have to make relative estimates.

The overall miniproject structure is like:

  1. load an embedded computer with an operating system and program
  2. collect sensor (video) data and process that data on the embedded system to a count of automobiles in each video frame and logs the reduced data to disk or cloud
  3. basic analysis of algorithm and interpreting algorithm output (what does this plot mean, why didn't it perform as well as desired). Plots are generated in the cloud or on laptop typically.

10% of the miniproject grade is for the automation quality of your overall system--that the Pi boots, processes video, sends relative automobile traffic rates to the cloud or logs to disk without human intervention besides powering up the Pi.

Programming

30% of the miniproject grade is for the effectiveness of the miniproject code uploaded to your Senior Capstone GitHub repo. The staff may run your code on a Raspberry Pi as part of the evaluation to reproduce your results.

We expect you will plot for each processed video segment the estimated number of cars traveling the road segment per time interval. The idea is that you couldn't upload all the video or store all the video on the SD card.

Cloud

30% of the miniproject grade is for the effectiveness of the cloud service used to collect and plot the data.

Report

30% of the miniproject grade is for the report. Roughly the equivalent of a 2 page report (not counting images, video) is expected. We aren't concerned with exact report length, just get your message across well.

Please make the report as a Wiki within your miniproject GitHub repo. Your GitHub code & report is to be turned in Thursday Sept 19, 2019.

In the report, explain your results with content including:

  • Estimate the system performance with regard to false detection and false negatives, i.e. compare with what you counted by manually looking at a short segment of video.
  • How do you think the system could be improved? (E.g. accuracy, energy)
  • explain a bit about your chosen algorithm. Chances are you're using library functions--why did you choose them? (Performance, accuracy, ...)
  • plot the estimated number of cars traveling the road segment per ten minute time interval

When grading, we are assuming this is perhaps the first time you've tried to process streaming video.

Individual contribution

The final individual grade is based on each student's contribution. Your team should indicate in your Wiki who did what. For example:

  • Jane: coding for video acquisition, autosaving processed data to disk
  • Jack: installed OS, optimized counting algorithm parameters

Grading notes

We are looking for:

  1. Pi boots, runs program, uploads car counts to cloud, cloud generates plots by itself--a human doesn't have to manually intervene except to initially power up the Pi.
  2. This program outputs a small data file of car count vs. time, having processed the video onboard the Pi to produce this output file
  3. The cloud generated plot(s) are from data uploaded while your system in running e.g. periodically during the day/night
  4. You can explain your individual technical contributions

Clone this wiki locally