Available projects 2019-20
The list of projects here gives ideas from staff. These projects are
available in 2019/2020. Due to research leave, some staff may be
unavailable in Autumn 2019 or Spring 2020 and so will be only partly
available for supervision and may share projects with another supervisor.
Discuss projects that interest you with the named supervisor. When you agree your choice of project
with a supervisor, let Gemma Gardiner (4B112) know once this is finalized.
TBA (To Be Announced) has the following meanings:
-
supervisor - a project has been provisionally
proposed, with a supervisor yet to be found
-
student - a project has been proposed but no student
has yet taken it up
-
outline - only a working title has been proposed, with
a project description to follow
denotes a collaborative project with an external organisation
(mainly companies). These projects are ideal opportunities for a student to
gain industrially relevant experience, and perhaps even find a future
employer. If there is competition for collaborative projects, some form of
interview will be used to make the selection.
Index of supervisors:
Dr S Haraldsson |
Dr P Maier |
Dr P McMenemy |
Dr K Nogueira |
Dr D Bhowmik |
Dr A Bracciali |
Dr S Brownlee |
Dr DE Cairns |
Prof BP Graham |
Chris Grigson |
Dr SB Jones |
Dr M Kolberg |
Dr J Li |
Prof G Ochoa |
Prof CE Shankland |
Dr KM Swingler |
Title
Student: tbc
Outline:
project
Predicting SAT Runtime
Student: tbc
Outline:
Checking the satisfiability of Boolean formulae (SAT) is a well-known,
and practically relevant, NP-complete problem. Algorithms for solving
SAT are known since the 1960s. In fact, one of the earliest such
algorithms, the /Davis-Putnam procedure/ for checking satisfiability of
a Boolean formula in conjunctive normal form is still the basis of most
modern-day SAT solvers. Davis-Putnam is essentially a search algorithm,
exploring a potentially exponential binary search tree by backtracking.
While SAT solvers can solve many problems efficiently, there are hard
instances that take a long time to solve. It is difficult to predict a
priori whether a given instance will be hard, and if so, how long
solving it might take.
This project aims to apply machine learning to statistical data that is
generated dynamically by a state-of-the-art SAT solver. More precisely,
the aim of the project is to examine whether a machine learning model is
able to predict how long a state-of-the-art SAT solver will take to
solve hard problem instances, based on features extracted from runs of
the SAT solver.
Skills in data collection and analysis are required. Prior expertise in
SAT solving is NOT expected or required.
Collecting YewPar Runtime Statistics
Student: tbc
Outline:
The YewPar library (https://github.com/BlairArchibald/YewPar) is a new
C++ framework for parallel combinatorial search by backtracking. YewPar
is based on HPX (https://github.com/STEllAR-GROUP/hpx), a C++ framework
for task parallel programming on large compute clusters.
For evaluating the performance of parallel searches, YewPar needs to be
extended to collect search-specific statistics, such as how many search
tree nodes are evaluated per task, or how often does each task
backtrack.
The aim of this project is get familiar with a modern C++ framework for
parallel and distributed programming, and to extend the YewPar library
to collect search-specific runtime statistics, while adding as little
runtime overhead as possible.
The project requires working knowledge of C++. Basic familiarity with
parallel or distributed programming concepts would be advantageous.
Heuristic Implementation to Generate the Maximum Number of
Codewords in an (n,d) Linear Block Code.
Student: tbc
Outline:
Linear block codes have applications in binary communication channels,
where intrinisic error detection and correction capabilities are
essential to ensure accuracy of communication on noisy media of
communication. Linear block codes transmit pre-determined codewords as
binary strings of length n (e.g., concatenations of n 0's and/or 1's):
the greater the number of pre-determined codewords, then the more
sophisticated the language of transmission. Therefore using longer
binary strings is required to transmit increasingly sophisticated
information quickly but this requires increased bandwidths, and so
maximising the number of codewords that can be used is desirable. This
is offset by the need to use increasing Hamming Distances between
codewords to provide increasing levels of error detection and
correction.
In this project we will investigate how many codewords can be determined
for an n-length linear block code, whilst providing varying levels of
error detection and correction. This will be achieved by designing
algorithms which will generate codewords for specific (n,d) linear block
codes, as well as trying to determine why some algorithmic approaches to
this problem generate more codewords than others.
Graph Convolution Network for Image Segmentation
Student: tbc
Outline:
The project aims to analyze the hypothesis that Graph Convolutional
Networks (GCNs) (https://openreview.net/pdf?id=SJU4ayYgl,
https://tkipf.github.io/graph-convolutional-networks/) can be used to
perform image segmentation. GCN is a novel deep learning-based method
capable of performing classification of structured data from different
domains and applications, including social networks, knowledge graphs,
protein-interaction networks, the World Wide Web, etc. In these
networks, the input are graphs (with features associated with the nodes)
that are processed taken into consideration the neighborhoods. It would
be really interesting to analyze the performance of this technique for
image segmentation as well as investigate how well it handles the
pixels' neighborhoods.
For this project, the student would research using deep learning
frameworks (such as PyTorch and TensorFlow). Hence, it would be very
important to have some experience with Python.
Face Recognition App
Student: tbc
Outline:
This project involves the creation of a face recognition app. The main
idea is to create an app that, given an input face image, retrieves
similar faces from a previously established database. Such app could be
used by the police to identify fugitives and missing people.
Contextual Aware Detections
Student: Daniel Rooney
Outline:
The project will be jointly supervised by Thales UK, Glasgow (https://www.thalesgroup.com/en) and Dr Bhowmik. This will be an exciting opportunity for you to get exposed to industry.
The Digital Crew demonstrator currently uses a CNN to detect people within the field of view of the camera and issue alerts. The initial simplifying assumption was that all people were threats/of interest - this is clearly not true. Sometimes people walk along a road/footpath and are benign, sometimes people "pop-up" from behind a wall/in a window/on a rooftop and are of more interest. It would be good to try to identify a method by which these "pop-up" targets can be identified. This may be through implicit (or explicit) scene segmentation into regions of higher interest, or by providing a more contextual output from the classifier ("man near a wall", "person at a window", "person walking on a path") which can be interpreted at the next level up (which would be out of the scope of this project).
Prerequisite: Good programming skill in C++ / Python
Edge Processing/Smart Sensing/Region sub-sampling/Network optimisation
Student: TBA
Outline:
The project will be jointly supervised by Thales UK, Glasgow (https://www.thalesgroup.com/en) and Dr Bhowmik. This will be an exciting opportunity for you to get exposed to industry.
As increasing numbers of uncompressed high resolution cameras are expected to be used as an input to a CNN type classification engine, it becomes unfeasible for a single central processing to handle all of the data. Can a lightweight (FPGA-based?) CNN be used to pre-select image patches of potential interest in order to sub-sample the input space into patches of potential interest for further processing by a larger CNN with more computation resources? This processing may take place at the sensor, or at nodes filtering some sub-set of the total number of cameras.
Prerequisite: Good programming skill in C++ / Python
Jetson TX-2 Optimisation
Student: TBA
Outline:
The project will be jointly supervised by Thales UK, Glasgow (https://www.thalesgroup.com/en) and Dr Bhowmik. This will be an exciting opportunity for you to get exposed to industry.
This project will involve optimisation on Jetson TX-2 GPU devices. This project intend to optimise image processing algorithms to potentially use GPU boards to process imagery from a small number of cameras in a framework.
Prerequisite: Good programming skill in C++ / Python
Modeling and Predicting Cyber Hacking Breaches using Machine Learning techniques
Student: Holly Evans
Outline:
In this project the student will focus on machine learning techniques for modeling and predicting cyber hacking breaches. This involves analyzing cyber incident data sets to understand threat situation particularly for malware based cyber hacking activities. One of the approaches will be by capturing the malicious behavior (i.e., high level semantics) of malware. We intend to develop a number of machine learning approaches to train and test classifier using these features. Further reading:
https://ieeexplore.ieee.org/document/8360172
https://ieeexplore.ieee.org/document/7299317
Prerequisite: Good programming skill in C++ / Python
The multimedia blockchain: A distributed and tamper-proof media transaction framework
Student: TBA
Outline:
In this project the student will build a framework for trusted media transaction based on emerging Blockchain technology. The distributed and tamperproof framework will aid the JPEG Privacy and Security standard (https://jpeg.org/items/20180213_press.html). The blockchain network records any media transaction with necessary information related to intellectual property rights, access control rules and content signature. You'll use content signature, generated by compressed sensed samples or low-resolution, low bit-rate compression to verify the image integrity and authenticity. Further reading on this is available from: https://goo.gl/fhN4nG.
Prerequisite: Good programming skill in C++ / Python
Fake/Doctored image identification using machine learning and physical properties
Student: TBA
Outline:
Image/video forensics, part of advanced digital forensics, is an important component of the modern forensic investigation. Distinct from other forensic evidences, image and video recording provides a real-time eyewitness account that investigators, prosecutors and the jury can listen or watch exactly what transpired. However due to availability of sophisticated image editing software such as Adobe Photoshop, it is now very easy to manipulate/doctor images for various purposes including tampering evidences or spreading rumors.
In this project the student will develop an image processing algorithm that can detect fake/doctored images without having access to the original image. You will use a combination of image processing, machine learning and physical properties of the content in the image. Further reading for contextual understanding: http://www.bbc.com/future/story/20170629-the-hidden-signs-that-can-reveal-if-a-photo-is-fake.
Prerequisite: Good programming skill in C++ / Python / MATLAB.
Fake news detection using machine learning and natural language processing
Student: TBA
Outline:
Due to the growing presence of social media or social networking sites people are digitally connected more than ever. This also empowers citizens to express their views in multitude of topics ranging from Government policies, events in everyday life to just sharing their emotions. However the growing influence experience by the propaganda of fake news is now cause for concern for all walks of life. Election results are argued on some occasions to have been manipulated through the circulation of unfounded and some time doctored stories on social media.
In this project the student will develop a machine learning based algorithm that can classify fake news. This will also explore natural language processing in order to extract key features that attribute to fake news identification.
Prerequisite: Good programming skill in C++ / Python
Image auto-captioning using Deep Learning
Student: TBA
Outline:
Image auto-captioning is an emerging area that has many applications. It is easy to capture and share images, extract the geo-location or even identify the objects. However it is a very challenging problem to train a computer to see an image, understand and describe its content. In this project the student will develop an algorithm that generates natural language descriptions of images and their regions. You'll explore about the inter-modal correspondences between language and visual data. You'll use advanced machine learning techniques such as deep learning in this work. Further reading: https://cs.stanford.edu/people/karpathy/deepimagesent/.
Prerequisite: Good programming skill in C++ / Python
Resource requirement: Computer (preferably with GPU), MATLAB.
Low power and accelerated computer vision system design on a heterogeneous FPGA+CPU platform
Student: TBA
Outline:
Scene understanding and prompt reaction to an interesting event is a critical feature for any time critical computer vision systems for safe and reliable interaction with the environment. The deployment scenarios include a range of applications such as mobile robotics, autonomous cars, mobile and wearable devices or public space surveillance (airport / railway station). Modern vision systems which play a significant role in such interaction process require higher level scene understanding with ultra-fast processing capabilities operating at extremely low power. This is achievable through heterogeneous vision system design where FPGAs and CPUs are used for efficient implementation of image processing algorithms.
In this project the student will develop a vision system on a Xilinx Zynq (a heterogeneous FPGA+CPU platform https://www.xilinx.com/products/boards-and-kits/1-5ey5xx.html). The student will learn a new computing paradigm using Xilinx SDx development environments for embedded computing ( https://www.xilinx.com/products/design-tools/software-zone.html). Initial reading on the topic: https://goo.gl/oHWd4r.
Prerequisite: Good programming skill in C++, Python.
Resource requirement: Computer. Vision system kit is available.
The development and application of machine learning and data science to investigate animal health in marine ecosystems
Student: TBA
Outline:
Monitoring and investigating animal health is a crucial component of marine eco-system analysis: historical analysis of health records can allow predictive modelling of disease outbreaks and development of prevention or mitigation measures. Much information has been collected over the years relating to marine ecosystems, for example pathology records of salmon farm diseases and marine mammal strandings. The aim of this project is to develop approaches for deducing the structure of data from unstructured or loosely structured documents to generate useful, context-specific knowledge.
Prerequisite: Good programming skill in C++ / Python
Quantitative modelling
Student: TBA
Outline:
This project is about the use of a formal (programming) language to develop
a model of a system of interest, ideally in the field of biology or population
dynamics, but other alternatives can be discussed.This project can be largely
adapted to student interests, both in terms of the system to be modelled, the
language/formalism/tool that will be used for modelling, and the type of properties
one wants to study about the system. If you are vaguely interested, come to talk to
me, we will explore possibilities together. For a curious student willing to address
research-related topics.
Drone Programming
Student: TBA
Outline:
This project is for a student who wishes to investigate and play with new and
developing technology. We have a camera-enabled programmable
Dji drone . The drone comes with a
programming environment and some available API. This is a highly explorative
and expectedly rewarding and fun project, with the potential to develop some
expertise in a hot technology. Who wants to be the first to program the drone?
This could possibly be an initial step of a larger project to be developed in a
few years by several students. The application can be agreed, from simple case studies
to programming the drone for a specific task. Learning the basics of flying the drone
and legal requirements could be needed (but can reasonably be avoided, if preferred).
This project is also suitable to be developed by two/three collaborating students
developing independent parts. Good programming skills and understanding of computation
are (highly) desirable.
AppSisted Parking
Student: TBA
Outline:
We want to design and develop a mobile application that can assist finding a
parking. Initially, the test case will probably be the crowded parking lots at
the University, but the project could have a more general scope (which could
also include collaborations with companies).
Beyond the quite general aim, the details of the design and implementation of the
application can be discussed and agreed, according to the interests and ideas of the
student. Early commitment preferable. Requires some inital basic understanding of the
mobile technology and willingness to learn the details of it, as needed. The project
can be extended to include elements of social computing and shared economy.
IoT: Collecting and using data
Student: Louis Smith
Outline:
This is actually a series of possibly coordinated projects to be carried out
independently. The idea is to use sensors of different types to generate data,
along the idea of the Internet of Things. Such sensors can be located in the wild,
in a city or in more restricted spaces, such as a building. Data need then to be
visualised, interpreted, used. Developing an innovative collection/usage of data
can be part of the project.
This project(s) can be carried out at different levels, e.g. dealing with the
sensor devices and data transmission aspects, or with the algorithmic analysis or social
usage of data. One starting point could be the continuation/extension of a previous
project on monitoring water quality in lakes. Another one, the exploration of novel
wireless communications and the transformations that they will enable. Multidisciplinary
collaborations and collaborations with external entities are possible. Good understanding
of computational and technological aspects is desirable, willingness to play with,
experiment and learn how different devices and novel technologies work, needed.
An instance of this general project, currently under definition, is a possible
collaboration with public agencies to collect and manage data about attendance
by the public to specific events. Please, ask for further details, if this
sounds of interest for you (this project is currently under negotiation).
One such project will be on monitoring the University's lake in collaboration with the Biology division.
Raploch Community Partnership (RCP): Supporting Social Wellbeing and Quality of Life
Student: TBA
Outline:
This is a project done in collaboration with RCP. "Raploch Community
Partnership is a community led organisation focussing on the
economic and social regeneration of Raploch and the wider Stirling
area. We aim to help the people and organisations of the area to
realise their potential through their activity, work and incomes.
We want a thriving prosperous community and for that prosperity to
be sustainable - with economic wellbeing enhancing social
wellbeing and quality of life."
In this project a student will design and develop a system to
track how people contribute to the goals of RCP within the
community and how they can be supported in that. Likely, this
could be done by designing an app that is able to record people's
contributions and activities. Aspects of social media and
crowdsourcing, e.g. how people activities and progresses are
publicised and coordinated within the community, can also be
considered.
Students are expected to contribute to the definition of such a
project, with a social impact. Collaborations with the division of
Economics about interpreting collected data are also a possibility.
BitCoins? How much are they worth ?
Student: TBA
Outline:
This is a research-oriented project aiming at exploring the
context of virtual currencies. This is an exciting field which is
strongly developing and deemed to have an impact on our society in
the near future. The project will be about understanding and
exploring the technology, particularly the block-chain upon which
such currencies rely. This will consider mainly the associated
computational aspects. Most likely, writing programs interacting
with one block-chain will be part of the project.
No previous knowledge is required. However, this is a
research-oriented project suitable for a student with a strong CS
backgroud willing to explore new technologies.
Evolutionary Algorithms for Creating Music
Student: Isla Roberts & Jonathan Burgess
Outline:
Evolutionary algorithms are good at searching for solutions to difficult problems and have been applied to various real-world problems. They can also be used for creativity, such as generating music. This is probably with the input of a human, who will evaluate the possible tunes as they are found. The process can reduce the human input by basing tunes on an existing collection of music, or by guessing the human's preferences based on what they liked previously. For someone learning to play an instrument, it might also be valuable to explore the trade-off between interesting or appealing music and music that is difficult or easy to play. This project will explore the possibilities of generating music using evolutionary algorithms and machine learning. The skills required are general programming in Java and some creativity.
Development of Java-specific mutation operators for search based software engineering
Student: TBA
Outline:
Maintenance of software is one of the most time-consuming parts of the development cycle. Artificial intelligence methods, including search and optimisation methods like evolutionary algorithms (EAs), offer exciting potential to revolutionise software development, by automatically improving existing software. An open-source tool "Gin" uses such methods to search the source code of Java programs for possible changes. Currently the tool implements a few high-level operators, such as swap/delete/copy line, or swap "equals" for "less/more than". Ideally, the tool should make more use of known Java syntax and constructs. The goal is to automatically fix bugs, make the software run faster, more efficiently, or in some other way produce better results. You'll need some experience in Java and optimisation methods like EAs or other metaheuristics.
Towards Greener AI
Student: Aya Hammad
Outline:
Machine learning is everywhere - and is having an impact on our planet as vast server centres consume ever-increasing amounts of energy. This project will explore the impact of different data sets on the energy consumption of various classifiers in the Java WEKA toolkit.
The Evolutionary Glazing Salesman
Student: TBA
Outline:
This project will apply AI in the form of an evolutionary algorithm to designing the windows on a building. Aside from making the building more attractive to look at, this can have a hugh impact on the energy needed to run it - for heating, lighting and cooling - and on how much it costs to build. We will look at smart ways to solve the problem and generate interesting layouts.
Automatically speeding up Python by caching
Student: TBA
Outline:
In Python, it is possible to speed up code by adding annotations. e.g. https://pypi.org/project/cachetools/ and https://docs.python.org/3/library/functools.html - it could be possible to automatically speed up existing programs by applying caching in this way and testing whether the program still works in the same way. This project will look at using search based methods such as evolutionary algorithms to explore possible caching annotations to find the ones that are worthwhile.
Modelling Neural Systems
Student: Matthew Kennedy
Outline: I am interested in computer simulations, based on mathematical models, of (parts of) the brain.
Such simulations look at individual neurons in some detail, or neural networks using simplified
models of the neurons. If you are interested, then we can formulate a project tailored towards
what you would like to do. Typical projects will involve implementing an existing model in a
high level language such as Java or Python, and developing a suitable GUI to examine model output.
Specific simulation packages such as NEURON or Brian (Python-based) might also be used. Some
projects might concentrate on the visualisation aspects eg animated model output and data presentation.
Reinforcement learning for game play or animal behaviour
Student: Luke Robertson & Connor Stewart
Outline: Reinforcement learning is an interesting artificial intelligence (AI) algorithm for learning good sequences of actions to achieve reward. For example, for an animal this might be the sequence of turns needed to find a food location. Reward only happens occasionally, and until reward is obtained, it is hard to know what to do. But after sufficient experience, a good path (sequence of actions) to reward can be learnt. This algorithm has been applied to models of animal foraging, but can be applied in any situation involving a system with a state and an agent who can take one of a number of actions at each time step, and who may occasionally receive a reward. Game play (computer games, card games etc) is another suitable scenario where the payoff (reward) may only happen infrequently eg at the very end of the game. A project will involve selecting a suitable application (game; simulation of animal behaviour; or anything else) and then trialling reinforcement learning algorithms on it. Coding can be done from scratch in any preferred language, or use may be made of appropriate neural network libraries (available for Python, Java etc).
Learning in context
Student: TBA
Artificial neural networks are able to learn to recognise, categorize and make predictions
about data streams, such as images of faces, financial trading data etc. The networks are
trained on example data, rather than being programmed directly. However, such training is
usually done without considering issues such as the context in which the data was collected.
For example, a Satnav system that generates routes without considering the vehicle being
driven: we have all seen pictures of large trucks getting stuck on bends that are too tight
for them! Training algorithms for neural networks that take context into account do exist,
but are not yet widely used. The aim of this project is to program some examples using these
algorithms to illustrate their usefulness. The starting point are results published in several
research papers. Any programming language can be used, and suitable neural network APIs can
provide a starting point (eg TensorFlow from Google).
Animations / Games to aid Teaching of Computing Concepts
Student: Raina Durnan
The aim of this project is to develop suitable animations and visualisations of specific concepts in computer science. These could form part of a game that drives the concept learning. The resultant products should be useable either by an instructor in a course or by individual students for self-learning. Specific projects can be developed around aspects of the student’s choice e.g. was there a topic in any of your taught modules that was difficult to grasp and you can see how visualisation (graphics) and animation could have helped your understanding? Examples could be: data compression algorithms such as LZW (CSCU9N5); scheduling algorithms used by operating systems (CSCU9V4); collision detection in computer games (CSCU9N6) etc. Multiple students could undertake different topics. Technologies might include Java, Javascript, suitable game/animation engines.
(with Health Sciences and Sport)
Heart rate variability
Please speak to Chris Grigson , room 4b65 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Student: Luca Fanottoli
Outline:
Heart rate variability is a key fitness and health indicator. The r-r interval or interval between heart beats can be easily read with several technologies including ECG, Pulse oximetry and Piezo sensors. The Poincaré plot is a good visual indication of HRV and might be implemented live on an Android device. Other measures can be derived from HR data. HR data can be combined with data from other sensors measuring for example breathing and activity.
See https://en.wikipedia.org/wiki/Heart_rate_variability
Components:
- Maxim 30100 sensor
- H7 bluetooth belt
- Logging to memory card
- Android app with Poincaré live display
- Communications, cloud and datalogging
(with Health Sciences and Sport)
Handgrip fitness trainer for sedentary people
Please speak to Chris Grigson , room 4B65 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Possible Sports co-supervisor: Niels Vollaard
Student: Abdulraoof Abdullah M Almasoumi
Outline:
Regular, light hand exercise has been shown to improve blood pressure and may have
other whole body health benefits. An Android app can guide users through a
training routine providing encoragement and setting goals. The app might take
readings from a low cost custom hand grip sensor. The app should display live
results, a clear overall summary of past data and automatically load data to the
cloud.
See http://www.bbc.co.uk/programmes/articles/3nvRZxYFPxHCCvxGwmDt0cC/is-there-a-short-cut-to-getting-fit
Components:
- Andoid training app
- Sensor development
- Power management
- Communications, cloud and datalogging
(with Health Sciences and Sport)
Human skeleton map / Goniometry
Please speak to Chris Grigson , room 4B65 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Sports co-supervisor: Angus Hunter
Student: TBA
Outline:
Measuring the orientation of limbs is important in sport and health research.
A goniometer specifically measures joint angles but other instruments offer a more complete
view of limb positions and many are non contact or wireless. Traditional methods are often
bulky, expensive or time consuming. Newer methods include the Kinect game controller and
inertial measurement units (IMUs) but are these accurate and how do they compare to established
methods? Can you make your own wireless IMU based sensor? Can you make a wireless adapter
for a traditional sensor? Software could interpret data from multiple sensors and display a
live animated skeleton. Other software might interface to the cloud and calculate the accuracy
of the different sensors. Special algorithms may be required to improve results from IMU sensors.
A specific and unusual application (Dave Clark) is flexibility testing to measure fitness in Rugby
teams, a video analysis application would be ideal for this simple, well controlled test.
See:
Components:
- IMUs Arduino Microbit (embedded code)
- Android interface
- Desktop interface
- Piezo resistive
- Kinect
- Performance comparison
- Communications, cloud and datalogging
- Kinovea angular measurements and camera errors
- In house video analysis software
(with Health Sciences and Sport)
Vertical Jump measurement system
Please speak to Chris Grigson , room 4B65(or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Sports co-supervisor: Oliver Witard
Student: TBA
Outline:
Vertical jumps provide a key measure of performance. Develop a force platform and height sensor.
Establish communication with a small computing platform such as Raspberry pi, Beaglebone or Arduino.
Write a gui application to guide the user through the test. Analyse the test and display results
alongside the plotted raw data. Log the results to memory card and the cloud.
See:
Components:
- Load platform
- Displacement sensor
- Embedded linux or RPi application
- Android app
- Communications, cloud and datalogging
(with Health Sciences and Sport)
Reaction timer
Please speak to Chris Grigson , room 4B65 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Sports co-supervisor: Angus Hunter/James Dugdale
Student: TBA
Outline:
We have a reaction timing system built using a Arduino mega and touchscreen.
This works well and there are many opportunities to improve the system and
discover new applications.
Components:
- Improve existing system
- Add transducers to measure reaction for different senses and limbs
- Communications, cloud and datalogging
- Adapt for different sports including football
(with Health Sciences and Sport)
Instrumented massage bed
Please speak to Chris Grigson , room 4B65 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Sports co-supervisor: TBA
Student: TBA
Outline:
It is difficult to standardise a massage procedure over multiple participants.
And instrumented massage be could give live feedback to the masseuse. Applied force
in multiple directions is an obvious measurement but are there any others?
Components:
- Instrumenting the bed and tools
- Rpi interface DAQ over i2C using the common HX711 amplifier
- Signal processing & experimental measures
- Communications, cloud and datalogging
(with Health Sciences and Sport)
Fuji pressure film analysis software
Please speak to Chris Grigson , room 4B65 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Sports co-supervisor: Lewis Macgregor
Student: TBA
Outline:
The pressure applied during massage and foam rolling can be recorded on pressure sensitive films.
The image on the film lasts for a limited time. Develop software to accurately map the pressure
recorded on the film in good time. This project is technically easy so the software should be
complete, intuitive feature rich and debugged.
Components:
- Acquire image
- Filter
- Map colour intensity to pressure
- Analyse the pressure map for key statistics
- Store pressure map and results in a handy format
A Brookshear Machine Emulator for Teaching
Student: TBA
Outline:
This project is to produce a good Java implementation of the 'Brookshear
machine'. See S J Maybank's lecture slides, based on the description
in Brookshear's text book on Computing Science. See also chapter 2 and
Appendix C of G J Brookshear's book. Copies of this are available
from the Library.
Low-level implementation issues have been re-introduced
into the second semester computing science module. The Brookshear Machine
is being used to illustrate the concepts. Having a good,
educational tool, produced 'in house', would be good. Currently, students
have to use something only partially adequate.
A variety of existing implementations are available on the web and
elsewhere. These are each incomplete or inappropriate in some way: some are
written in the wrong programming language, and some have no accessible
source code. There are lots of good ideas out there, but not all together in
one neat package.
An important addition to what most existing implementations offer is the
need for an assembler. The existing implementations allow the user to type
hexadecimal into memory cells, and some can load files with programs already
coded in hex. An assembler would translate an assembly language version of a
program into a loadable hex file. ANTLR is suggested for this, which is a very interesting
compiler generator tool.
The Scripted Debugging of Java Applications using JPDA
Student: TBA
Outline:
A simple, universal way to debug programs is to insert additional diagnostic
statements into a program. This produces, usually, a textual log consisting
of any useful messages about the status of execution that the programmer
wishes. The disadvantages of this approach are that the program needs
editing to add and remove the diagnostic statements (itself an error prone
activity) and that the textual logs can become too bulky to be useful.
An alternative is to use an "interactive debugger". In this
approach the original program is run without alteration, but it is under the
low-level control of the debugger facility. The programmer can request that
execution pauses at nominated "breakpoints" so that progress can
be checked, values of variables inspected and so on. Although the original
program does not require meticulous editing, using the interactive debugger
on a large application is itself an intensive and meticulous process.
Interactive debuggers for Java are included in Eclipse and BlueJ, and there
is a stand-alone Java debugger called JSwat.
In this project a hybrid solution is proposed. The programmer devises a
"debugging script" (which could be, say, an XML document)
describing at which points in a Java program's execution the progress is
to be monitored, and what should be reported at those points. There could be
many sophisticated extensions of this idea. The program is then run under
the control of a debugger facility that automatically sets breakpoints
according to the script, fetches information and reports appropriately at
the breakpoints, and so on. This could be purely automatic (producing a
diagnostic log), or could itself be controlled interactively by the
programmer.
The technology to be applied in this project is principally the section of
the libraries call the Java Platform Debugger Architecture (see JPDA online). The JPDA allows
a Java application (the debugger) running on one JVM to control and
interrogate another Java application (the debuggee) running on another JVM.
A tool for supporting "Attendance and Engagement" monitoring procedures
Student: Fraser Stalker
Outline:
The University has recently established a supportive policy concerning students'
"Attendance and Engagement" . This "has been developed as part of the University's commitment to provide a
comprehensive supportive learning environment in which all students are encouraged to develop a breadth of skills,
abilities and approaches to their studies and maximise their full potential".
The general principle is that module coordinators should record
student attendance/engagement at specific "points of contact" (for example, tutorials and coursework
submission). This will allow the coordinator to identify "when expected points of contact are missed
which may indicate a student at risk", and the coordinator may then invite them for a meeting to
discuss any problems that the student has with the module, or can refer the student to their
personal tutor to "discuss any concerns the student may have and if necessary, direct them to
the appropriate support service".
This is particularly important in the case of overseas "Tier 4" visa students (from outside Europe), who risk having their
visas cancelled (and being deported) if they do not engage with their studies.
This project is to develop a system for supporting the Division's module coordinators in their implementation
of this policy. It should
- keep attendance records for each student/module,
- make it as easy as possible for coordinators/tutors/etc to record attendance at sessions,
submission of courseworkwork, etc,
- be configurable with "triggers" to alert module coordinators when students miss expected
points of contact,
- cross-check attendance records between modules,
- be able to produce readable and archivable attendance record reports.
The implementation technology can be anything appropriate, either desktop or web, perhaps with mobile/tablet
interface components, and would probbaly require a shared database.
An on-screen marking tool for providing feedback on programming assignments
Student: Ashley Johnston
Outline:
Traditionally we annotate printed versions of programming assignments with feedback for the student
(printed either by the student or by the marker).
It is then necessary either to return the feedback to the student (it's not always easy to find them),
or to persuade the student to come and collect their feedback (it's surprising how difficult that seems
to be for some students!).
An alternative is to complete the marking electronically, and to return the feedback to the student by
email or perhaps via a web link. The clear advantages are that there is no paper management, and
feedback is delivered directly to the student. Note that this is not automatic marking, but
electronically supported manual marking and feedback.
Turnitin, accessible at Stirling through Succeed, includes an on-screen marking feature called GradeMark
(see YouTube demo here: https://www.youtube.com/watch?v=r9_mmowfEDo).
However, although GradeMark is quite sophisticated, it seems to have some drawbacks:
- It is not intended for, and is not well adapted to, marking program code (and Turnitin is not adapted to receiving code):
language extensions such as .java, annotating layout issues, indicating blocks of code, allowing feedback comments connecting several sections of code.
- GradeMark has a nice on-screen interactive view of feedback: students hover their mouse over feedback markers
and the detailed comments pop up. However, the student cannot "take away" this interactive view, they must
be logged in to Succeed and GradeMark.
- Students can download a static PDF file showing their code with feedback, but the PDF consists of simple page images,
with brief markers overlaid on the program text - sometimes obscuring it. The full feedback is available at the
end, but without easy links back to where the markers are. (See example)
So, I would like a desktop application that allows the addition of feedback to programming assignments,
and makes it possible for students to view their feedback nicely. One possibility is a Java desktop application,
generating self-contained HTML/Javascript files with program text and interactive, printable feedback. The application should be
able to help the marker manage a whole class's submissions for an assignment, and should produce feedback out in a form
suitable for convenient emailing back to the class. No support is required for actual marking.
Developing a mobile application for students
Student: Steohanie Massie & Constantinos Constantinou
Outline:
Servlet Services on the SIP Application Server
Student: TBA
Outline:
Like ordinary telephony, Internet telephony can provide services such as
call blocking, call waiting, and call forwarding. However Internet
telephony offers a more flexible range of choices such as filtering calls
by the source address or source domain.
SIP (Session Initiation Protocol) is an increasingly popular standard for
Internet telephony. So far there have been two main approaches to
developing SIP services: CPL (Call Processing Language) and CGI (Common
Gateway Interface). However, more recently a third approach has been
developed: SIP Servlets.
This project is to investigate SIP Servlets. This will include developing
some SIP Servlet services and deploying them on a testbed within the
department. Particular emphasis will be placed on the new opportunities
offered by SIP Servlets, such as the integration of communications with
other computer and web applications.
This project would be appropriate for a student with an interest in
(tele)communications and programming.
Simulating P2P Overlay Algorithms
Student: TBA
Outline:
Structured overlays provide scalable network overlays based on a
distributed data structure that supports deterministic behaviour for data
lookup. Structured P2P overlays impose restrictions on node placement in
the overlay, and hence improve the efficiency of data lookup.
A number of such algorithms have been developed. These algorithms can be
complex. Due to the inherent dynamic nature of such networks, these
algorithms are difficult to study without suitable implementation.
Simulation environments provide a suitable testbed for this work (e.g.
Omnet++ with Oversim).
Ongoing research activities at Stirling require the implementation of
particular P2P algorithms in such simulators. This project will focus on
implementing one such algorithm and verify its behaviour by running sample
simulations and studying suitable performance measures.
Programming Mobile Phones
Student: Calum Arthur
Outline:
Mobile Apps are big business and are developed for a variety of purposes. Applications can be developed in a
platform specific way (Android or iPhone) or using a cross platform approach such as PhoneGap and Titanium. This
project will develop an app in different ways and compare the advantages/challenges with each approach.
Handwriting Recognition
Student: Joseph Robson & Eldar Zhapykeev
Outline:
Handwriting recognition is the ability of a computer to receive and
interpret intelligible handwritten input from sources such as paper
documents, photographs, touch-screens and other devices. The aim of the
project is to implement pattern recognition on handwritten characters by
firstly extracting features and then passing them to a classifier. The
digitised form of the handwritten text needs to be first generated. Images
will then be analysed to determine the significant features, symbolic and/or
statistical, that can be extracted. The feature extraction program should
take raw images as input and produce a binary output indicating whether or
not the feature is present. The binary output would feed into a feature
vector for classification, possibly by a neural network. The project will
also investigate original thought and encourage methodical investigation of
hypotheses, even if these hypotheses turns out to be wrong.
A System for Automating the Job Recruitment Process
Student: Ryan Junor & Nikita Barinov
Outline:
A software system is needed to allow job recruiters to post jobs. It is also
needed by job seekers to view the posted jobs via different search
categories (such as location, industry, etc.) and to apply for jobs that
they think are suitable. The basic tasks of the system will include the
analysis of requirements, the design of a database that will support the
main activities, and the implementation of a web front-end to the database
which supports two interfaces that will allow both types of user (i.e. job
recruiter and job seeker) to use the database effectively.
A Knowledge Driven Search with Evolutionary Ruin and Stochastic Rebuild: Case Studies of Vehicle Routing Problems
Student: TBA
Outline:
The Vehicle Routing Problem (VRP) is a well known problem in operational research where customers of known demands
are supplied by one or several depots. The objective is to find a set of delivery routes satisfying some
requirements or constraints and giving minimal total cost. The VRP has drawn enormous interests from many
researchers during the last decades because of its vital role in planning of distribution systems and logistics in
many sectors such as garbage collection, mail delivery and task sequencing.
This project aims to develop a new model for intelligent search, in which the advantages of single-solution-based
approaches (e.g. local search) and population-based approaches (e.g. genetic algorithms) are combined. To achieve this,
the key difficulty of how to carry out an evolution on a single solution will be resolved. Experts' tacit knowledge on
the efficiency of the deployment of individual solution components will play a central role in the development of the
proposed model.
An Intelligent and Interactive System for Project Presentation Scheduling
Student: TBA
Outline:
Scheduling ubiquitously exists in everyday life affecting both the private and public sectors. It is the optimisation process of selecting among alternative plans and assigning limited resources over time among the set of activities in the plan, subject to resource limitation, precedence relationships, due dates, and other constraints. Scheduling is known to be NP-hard and has proven to be a difficult task for human planners and schedulers. Hence, this topic has attracted a significant number of researchers, in an effort to develop automatic scheduling algorithms to replace humans.
This proposal deals with a real problem at the University of Stirling. Students on the Computer Science course are required to undertake a supervised year-long project as part of their undergraduate final year. The problem is concerned with the scheduling of individual ten-minute presentations within a number of parallel sessions in a single day, which is constrained by the presence of session chairs, supervisors and second markers. Metaheuristic approaches will be investigated to find the (near-)optimal solutions of the problem, and a Java based software system for interactive scheduling will be developed.
Managing the Honours projects
Student: TBA
Outline:
You can probably imagine what this might cover: From staff adding project proposals, through records of
supervisors and second markers and lists of current projects in progress, to the archiving and
presentation of catalogues past projects. All for integration with the current CSCU9Z7 web site, though
supporting the module coordinator with a desktop application is also a possibility.
Machine Learning & Supply Chain Management
Student: TBA
Outline:
The project aims to accurately predict future demand for products with machine learning in order to assist with supply chain management within an organisation. The users of the software will be able to enter the data about a product and get a demand forecast based on the past data. The software will also tackle the problem of managing suppliers within a supply chain efficiently, and so will contain features to help with things such as supplier change overs and supplier contracts. The software will also contain additional features (e.g. order tracking, sales data visualisation, accounts and just in time ordering) to deal with other aspects of supply chain management.
Network Analysis in NetLogo
Student: TBA
Outline:
NetLogo (ccl.northwestern.edu/netlogo)
is a free open-source tool for the agent-based
computational simulation of complex systems. Graphs or networks can be represented as
agents connected by links, allowing the simulation of dynamic processes that take place
on a network. For example, it is possible to model the spread of a virus on a computer
network, or the formation and evolution of human social contact networks. There are a
number of publicly available network data sets, for example,
http://www-personal.umich.edu/~mejn/netdata/.
NetLogo's Network extension allows such
data sets to be imported and used in simulation models.
The project will explore the usability and flexibility of the NetLogo Network extension by
using it to create a collection of examples of network models based on imported data sets.
If time permits, the use of NetLogo will be compared with another network analysis tool,
iGraph (http://igraph.org/redirect.html).
Module assessment report generator for Computing Science modules
Student: TBA
Outline:
To prepare the final results for each module, a number of documents and pieces of information must be combined: a list of registered students,
coursework results, exam results, and information about students who have deferred exams or have withdrawn from the module. Currently this is
done manually by module coordinators, who must combine several spreadsheets of different formats to produce a report to be presented at the
examiners' meeting. The Chief Examiner must then archive these reports and extract result files to be uploaded to the Portal. All of this is
tedious and time-consuming and requires diligent checking to avoid errors.
This project will create an integrated tool to automate this process. The tool will take as inputs module information, class lists, and
assessment results, and will out the required reports in a uniform format (probably as an Excel spreadsheet). The tool will also automatically
archive the reports and create the files for uploading to the portal. The details of the implementation framework to be used will be decided
later. One possibility is a combination of Java, MySql, and the Apache POI for generation of Excel spreadsheets from Java. Another possibility
is a web-based implementation with PhP, MySql, and PHPExcel.
Modelling A Complex System
Student: TBA
Outline:
This is a generic project that may be taken up by more than one student. The
project will use tools and techniques for modelling complex systems, such as
Agent Based Modelling and process algebras, to model and study a complex
system. The specific system to be studied will be decided by the supervisors
and students; however, the supervisors can suggest examples from biology,
epidemiology, environmental economics, ecology, and other areas. The project
will involve some programming using non-standard, domain-specific languages
such as NetLogo and BioPEPA, as well as some data analysis using statistical
tools such as Excel or R. Some background in mathematics (probability,
statistics, ordinary differential equations) would be helpful but is not
assumed.
Games and interactive simulations for teaching and public engagement
Student: Nicholas Whitton & Darren Morgan
Outline:
This is a generic project that may be taken up by more than one student. it builds upon ongoing research in the use of computer games and interactive simulations for university teaching and public engagement. Existing examples include an interactive simulation of predator-prey interaction and population dynamics, used in an Ecology course, and a fishery management game, used in an Aquaculture course to teach the principles of managing fish stock sustainably. The project will involve identifying a new application for games and simulations in teaching or public engagement, and then developing and evaluating a game or simulation.
Extracting and Analysing a Social Collaboration Network
Student: TBA
Outline:
A social network is a set of people or groups of people with some pattern of contacts or
interactions between them. A network is represented as a set of points (or vertices)
denoting people, joined in pairs by lines (or edges) denoting acquaintance. One could,
in principle, construct the social network for a company or firm, for a school or university,
or for any other community up to and including the entire world.
This project will extract the data associated to a scientific collaboration network. Once
the data is collected the goal is to analyse it and visualise it using modern complex networks
libraries and tools.
The skills required are general programming in Python or Java, web programming for data
collection, data analysis and visualisation.
Visualising Dynamic Networks
Student: TBA
Outline:
Networks have become a powerful modelling tool for studying complex systems in science
and society. A network captures the connectivity pattern between the system's components.
Important examples are the Internet and the WWW. Networks are represented as a set of points
(or vertices) denoting components, joined in pairs by lines (or edges) denoting interaction.
The network structure arises from the underlying system and can evolve with the system dynamics.
Data sets containing dynamic network information related to optimisation algorithms will be
provided. The project will explore ways of analysing and visualising the dynamic networks.
The goal is to provide animations and videos reflecting the network dynamic. A number of
freeware libraries and tools for network analysis and visualisation are available, and this
project will explore what are the most suitable for dynamic networks.
The skills required are general programming in Python or Java, data manipulation, analysis
and visualisation.
3D Network Visualisation
Student: TBA
Outline:
Networks have become a powerful modelling tool for studying complex systems in science and
society. A network captures the connectivity pattern between the system's components. Important
examples are the Internet and the WWW. Networks are represented as a set of points (or vertices)
denoting components, joined in pairs by lines (or edges) denoting interaction.
Data sets containing network information related to optimisation algorithms will be provided.
One of the nodes features (their fitness) can be represented as the depth coordinate in a
3D plot. This project will explore ways of visualising the networks in 3D. The goal is to
provide 3D images and videos reflecting the network structure. A number of freeware libraries
and tools for network analysis and visualisation are available, and this project will explore
what are the most suitable for 3D visualisation. The project may require the implementation or
modification of network layout algorithms, which are more suitable than those available in the
freeware libraries, for the task at hand.
The skills required are general programming in Python or Java, data manipulation, analysis and
visualisation.
Egocentric Networks: Analysis and Visualisation
Student: TBA
Outline:
Networks have become a powerful modelling tool for studying complex systems in science
and society. A network captures the connectivity pattern between the system's components.
Networks are represented as a set of points (or vertices) denoting components, joined in
pairs by lines (or edges) denoting interaction. Egocentric analysis examines the local
structure of networks around a single node (the ego). The purpose is to understand how
network egocentric features relate to processes taking place on them.
Data sets containing social networks will be gathered form existing repositories. Additional
data sets with network information related to optimisation algorithms will be provided. The
goal is to analyse the networks using egocentric analysis. A number of freeware libraries
and tools for network analysis and visualisation are available, and this project will explore
which are the most suitable for egocentric analysis.
The skills required are general programming in Python or Java, data manipulation, analysis
and visualisation
Scottish Tennis tournament and player ranking app
Student: TBA
Outline:
Many young people all over Scotland train in tennis (and we have the National Tennis Centre on campus). The head of tennis is involved with Tennis Scotland as a creator/consultant on a project to link tournaments across Scotland with a leaderboard: this will build up player experience in live competition. The information is currently cumbersome to access through separate websites. The project will be to create an appealing mobile app which brings together tournament information with player information, allowing quick and easy access to the games coming up, and how each player can improve their ranking.
Note: the project should not simply replicate the information in a new database - it would be important to interface with the existing information sources. This project involves working with an external client and will test your skills in professional software engineering. The project may be suitable for more than one student as extensions can be envisaged (iOS vs Android, engaging graphical interfaces, notifications and gamification).
Working with University Information Services
Student: TBA
Outline:
University Information Services develop a number of systems to support the work of the university, and are interested in working with project students to achieve some of their goals. Precise project details have still to be worked out, but possible systems include: development of an attendance monitoring system for labs, automated grouping of users to facilitate customised email lists, and researching the use of new technologies to develop versions of existing systems.
Key elements of these projects will be: working with Information Services as clients, and developing systems to operate within a complex environment of existing legacy systems.
Use of genetic programming and evolutionary algorithms to create better models
Student: TBA
Outline:
Computational and mathematical models are being increasingly used to describe biological systems, but modelling is a skilled task, requiring training and expertise. An alternative approach to this problem is to use computers to help us to build the model. Evolutionary algorithms can help in finding the right parameter values in a hand-built model to match experimental data. More excitingly, genetic programming techniques may be used to help build the models themselves.
This project involves using a tool already built here at Stirling to develop models, exploring the possibilities of using genetic programming techniques for model creation. The target system is up to the student: some possible systems of interest are bacterial colonies, memory function, human disease spread.
Specification and Analysis of Biological Systems using Process Algebra
Student: TBA
Outline:
Biologists are producing lots of data about biological systems, but lack the tools to structure this data: computer science can help, through modelling. Of particular importance is gaining an understanding of how different low level interactions contribute to the overall operation of a system. Computer Scientists can supply tools to help understand those systems, e.g. process algebra such as PEPA (Performance Evaluation Process Algebra) or Bio-PEPA (PEPA adapted for biology).
The aim of the project would be to use process algebra to specify and analyse a (biological) system. This means building a model of the system then using simulation tools to explore how that model behaves in different scenarios. For example, build a disease system and then explore what happens if vaccination is added.
Several projects are possible within this basic framework:
-
Describe disease spread and the effects of different control programmes.
For example, whooping cough in Scotland and infant vaccination, or
tuberculosis in wild rodents and the potential to infect other mammals.
-
Describe cancer cell response to chemical treatments and combinations
of treatments to determine optimal dosage.
-
Construct a model to test whether memory retrieval can be viewed as
signal processing problem with either a fixed lower threshold or a more
variable threshold.
-
Model immune cells and invading cells as a predator-prey relationship.
Under what conditions does the prey or the predator dominate.
-
You may have your own ideas about suitable systems to model. Please feel
free to suggest something. It can be a computer system too (since this is
what process algebras were originally designed for).
Leave now for an airport/train pickup
Student: TBA
Outline:
I'm always being picked up from the train station or the airport. Can you make an app to support my drivers to leave the house at just the right time to get to the rendezvous point, taking into account traffic and arrival delays of the flight or train? This is especially relevant when meeting an early morning flight: can you set an alarm to wake them up in time to get to the airport?
Under-represented groups in Computing Science
Student: TBA
Outline:
Take a sample of the population of computer scientists and compare it with the wider population: are the numbers of men and women equal? What about those with disabilities? Are different sexualities represented? What about ethnic groups? Are older or younger people more prevalent? (Hint: computing is dominated by younger, white, straight men. Probably. We don't have all the data.)
You may either choose to investigate the problem further to provide data, or design an intervention to target those under-represented groups. For example, micro-aggressions might be a problem: develop a technological solution to the problem of measuring micro-aggressions, carry out experiments, and evaluate your data. Or you might analyse data (e.g. adverts for courses) to see if they display evidence of gendered language which is skewing the applicants to male or female. Are certain sorts of interfaces more suitable for men than women? How will you find out? Many possible projects are within this topic, but they must be based around a technological response to the problem (that is, you have to build something).
Computer Vision Food Classifier
Student: TBA
Outline:
This is part of a wider research project about the use of food diaries. The project will involve training a computer vision system to recognise and classify a variety of different types of food on a plate. This will be done using the Tensorflow and OpenCV libraries in Python and a choice of convolutional neural network models. The working system will be used as a prototype in a food diary app designed to help people eat more healthily.
3D Object Location with Computer Vision and Headphones
Student: TBA
Outline:
3D headphones are usually used for games and entertainment, but this project will use them to help partially sighted people locate objects in the world around them. There are several interesting challenges you could address: 3D object detection in images, soundscape design, or user interaction. I have a working prototype already, so you wouln't be starting from scratch. The system uses Python and libraries such as Tensorflow and OpenCV.
Dude, Where's My Mug? An Image Driven Dialogue
Student: Christos Nanos
Outline:
This project will use a mixture of state of the art computer vision and speech processing technology to build a system that allows users to ask simple questions about images. A simple example might be:
User: "Where is the horse in the picture?"
Computer: "To the left of the tree".
The project will use existing computer vision and speech processing libraries programmed in Python. The project will provide opportunities to work with systems like Amazon's Alexa and Google's speech engine. There is budget for buying interesting kit and using state of the art AI.
A Guiding Hand - Helping the Visually Impaired Locate Close Objects
Student: Asim Aryal
Outline:
Eating in a resaurant can be challenging when you are blind. Where are the knives and forks? Can you pick up your water without knocking over the wine glass? This project will use computer vision libraries in Python to track the location of a person's hand as they reach for different objects laid out on a table. It will investiage different methods for providing guidance to the person, such as instructions through headphones (left a bit, forward a bit) or with haptics (vibrating patterns on a wrist band). There is budget for buying interesting kit and using state of the art AI.
Indoor Mapping with Microsoft Kinect
Student: TBA
Outline:
The Microsoft Kinect camera has a depth sensor, and infrared projector and camera and a normal RGB camera. This project will use these to create 3D maps of rooms in a house with the goal of locating people or objects in 3D space. You will use Python to process the images generated by the Kinect using a mixture of Microsoft's own libraries and other computer vision libraries such as OpenCV. You may also like to try some machine learning with the images using Tensorflow. There is budget for buying interesting kit and using state of the art AI.
Computer Aided Design for Dementia
Student: TBA
Outline:
People with dementia can suffer from cognitive visual impairment, meaning that they find it hard to interpret what they see. Their lives can be improved by good use of interior design, for example making sure objects have high contrast compared to their backgrounds and avoiding carpets that have confusing patterns. This project will use computer vision to detect a number of design scenarios in a home and generate automatic advice to somebody who wants to improve the suitability of the home for a person with dementia. We already have a working prototype and are working towards using the system in a mobile app. The project is in collaboration with the Dementia Centre at Stirling. The system uses Python and libraries such as Tensorflow and OpenCV.
Updated 9/09/19 17:08
|