Submitted by Irvin Lim Wei Quan (A0139812A).
This is a submission for CS3211 Parallel and Concurrent Programming, Project 1 (Image Processing: Implementation and Analysis).
The complete project report can also be found in the root directory.
A demo of the implementation for Part 3, video filters and QR code detection with GPU.js, is available at https://irvinlim.github.io/cs3211-project-1/part3/filters.html.
Some screenshots:
Various scripts that were used for benchmarking and automating the tests on the lab machine and the Tembusu cluster can be found in the part1
directory, in case you might find them useful.
Additionally, the raw output for some of the lab tasks are also stored here for scratch work.
The part2
directory contains the various HTML files showing the iterative testing and improvement of the program to investigate the low framerate, as well as to improve the framerate. These files are named testXX.html
.
You can do a diff on the files to find out what was changed between each step, like as follows:
diff test01.html test02.html
This program runs in the browser, preferably on Google Chrome. As it requires access to the device's camera, it must be run on the http
protocol instead of the file
protocol.
The solution is to start a static HTTP server, such as Python 3's http.server
or in Node.js, http-server
.
For http.server
(Python 3):
# Runs a static server on localhost:8000
python -m http.server
For SimpleHTTPServer
(Python 2):
# Runs a static server on localhost:8000
python -m SimpleHTTPServer
Otherwise, for http-server
(Node.js):
# Install http-server globally
npm i -g http-server
# Runs a static server on localhost:8080
http-server
There is an attached sample QR code which to be used within the application:
This project depends on GPU.js, as well as some auxiliary UI libraries Bulma and html5sortable.
As this is a submission for a school assignment, all dependencies are copied into this repository directly, instead of typically installing them from NPM.
Copyright, Irvin Lim