Speed comparison of Cartoonifier on desktop versus embedded

You will notice that the code runs much slower on Raspberry Pi than on your desktop! By far the two easiest ways to run it faster are to use a faster device or use a smaller camera resolution. The following table shows some frame rates, frames per seconds (FPS), for both the sketch and paint modes of Cartoonifier on a desktop, Raspberry Pi 1, Raspberry Pi 2, Raspberry Pi 3, and Jetson TK1. Note that the speeds don't have any custom optimizations and only run on a single CPU core, and the timings include the time for rendering images to the screen. The USB webcam used is the fast PS3 Eye webcam running at 640 x 480 since it is the fastest low-cost webcam on the market.

It's worth mentioning that Cartoonifier is only using a single CPU core, but all the devices listed have four CPU cores except for Raspberry Pi 1, which has a single core, and many x86 computers have hyperthreading to give roughly eight CPU cores. So, if you wrote your code to efficiently make use of multiple CPU cores (or GPU), the speeds might be 1.5 to 3 times faster than the single-threaded figures shown:

Computer Sketch mode Paint mode
Intel Core i7 PC 20 FPS 2.7 FPS
Jetson TK1ARM CPU 16 FPS 2.3 FPS
Raspberry Pi 3 4.3 FPS 0.32 FPS (3 seconds/frame)
Raspberry Pi 2 3.2 FPS 0.28 FPS (4 seconds/frame)
Raspberry Pi Zero 2.5 FPS 0.21 FPS (5 seconds/frame)
Raspberry Pi 1 1.9 FPS 0.12 FPS (8 seconds/frame)

 

Notice that Raspberry Pi is extremely slow at running the code, especially the paint mode, so we will try simply changing the camera and the resolution of the camera.