A few FAQs presented and answered by Anil (BICV Group Leader)
What skills do you look for in a PhD/Research Student?
We take students with either strong programming skills or a strong mathematics background. If you have a background in a discipline related to:
- Computing
- Statistical Inference
- 3D Visualisation/Game Rendering
- Signal Processing
- Computer Vision
- Machine Learning
then you may be someone we are interested in. However, we also collaborate widely with people from many different research areas, because the nature of visual data is so ubiquitous.
We also recognise the importance of people who can act as “glue” between disciplines. If you fit into this category, have scientific experience and an interest in working across the boundaries of healthcare, biology and computing, drop me a line. Whilst we are target our efforts mostly on analyzing visual data, we occasionally dabble with non-visual data (e.g. signals from wearable sensors).
What programming languages do you use?
I would like to say that we are language-agnostic, but actually we tend to favour and encourage Python or Matlab programming, because of the productivity that it allows in the engineering science behind algorithm design. What we do is more aligned with scientific computing than low-level, formal methods or logic-based computing, so be aware of this. Having said that, if you are confident with scientific programming in Python, you may be able to fit right in.
Recently, members of the team have been using a combination of Python, PyTorch, and associated libraries for deep learning. These are likely to be languages that we increasingly use, though a few dinosaurs amongst us rely on Matlab. So, if you have used some other language, and have no fear of learning a new one (or two), then you’d be welcome.
The only real programming “no-no” would be macros in Excel.
What other skills are important?
We strongly encourage the use of LaTeX for writing scientific papers. Good verbal communication skills are also important, and there is also a role for good writers. The ability to work as part of a team — and not being shy about sharing your code often and early — is increasingly important. I (AAB) will look at and criticise your code. If you want to work on the programming side of our activities, and don’t like the sound of this, don’t contact us!
What does a typical research project involve?
There are two main types of projects; you can see these as being either data drivenor engineering science driven.
Data Driven Given a particular data analysis problem that we’re dealing with, we plan how to tackle it by thinking intuitively about what sorts of information we want to get out of the data. There may be existing analytical tools that can be used, but usually we have to either design our own algorithms from the bottom up or significantly modify existing algorithms or software packages so that they work properly and reliably on the data we are dealing with.
Engineering Science Often, we engage in engineering science: how well does an algorithm or system work? Can it be improved? And what are the limits of its performance (usually in terms of detectability, signal-to-noise ratio, things like that)? For such projects, we tend not to end up with a working system, but test the components of complete systems. This is an important part of advancing our understanding of algorithms for inference. Projects of this form are often inspired by joint considerations of need (e.g. we know that there are issues with certain algorithms, or ways of doing things in data or image analysis) and also often by inspiration drawn from the way humans do things, and this goes all the way down to the level of neural mechanisms used in biological systems, such as population coding.
We publish in journals such as IJCV, IEEE Transactions, Pattern Recognition Letters and also with collaborators in biology or medical journals. We also target competitive, fully refereed conferences in computer vision, such as BMVC and ECCV.
Do you have links with industry?
Yes; our links occur in several ways. We have graduates that go into industry, and we keep dialogues going with several companies. Recently, our PhD students have unertaken internships with Skin Analytics, DAMAE Medical, The National Archives, Facebook AI Research, Microsoft Research, Twitter AI and DeepMind. We also work with Cortexica, which uses technology spun out from BICI (then, BICV) several years ago. Read more about the original technology of Cortexica here.
Can I do a UROP (Undergraduate Research Opportunities Project) with you?
Yes, though we cannot guarantee funding for UROPs. You can apply for funding from a number of sources; look on the main College website for UROP funding sources. We can also take unfunded students, but we have to be convinced that you are not losing out on paid opportunities or putting yourself in hardship if you do join us. People who join us without funding typically tend to be doing their own research anyway; by joining us, they get access to a team who can help give them insight into some research questions or emerging technqiues. Note that our capacity to take students is limited.
Contact us
Prof Anil Anthony Bharath
a.bharath@imperial.ac.uk
Telephone
+44 (0)20 7594 5463
Address
Room 4.12
Department of Bioengineering
Royal School of Mines Building
Imperial College London