Digital depth perception
James Cooper is studying a PhD in Computer Science.
“My PhD research project is testing alternative programming techniques for digital depth perception. This is commonly used with self-guided vehicles. One of the main methods used to perform computerised depth perception involves replicating what our eyes and brain do: matching up corresponding points in the ‘image’ from each eye, and using the change in position of those points between the images to guess how far away something is from our eyes.
“There have been many algorithms proposed, but it’s far from being a ‘solved problem’. Some of those proposed algorithms appear to have a clear theoretical overlap with concepts from programming languages, but there doesn’t seem to have been any work in the past to combine the two areas. Essentially, I’m trying to combine the two and see if it works; or, if it doesn’t, see if I can figure out why it doesn’t.
“Most of my research work involves trying to program existing algorithms in novel ways, to find out whether these new ways might work better. It's not as simple as it sounds, because those new ways aren't really supported by the currently-popular programming languages, meaning I have to use more obscure ones with limited supporting resources, so I have to spend as much time working out how to use the language as I do implementing these algorithms. Plus, of course, a lot of reading.
“Two of my favourite areas of Computer Science are programming languages and computer vision, but in research terms, the two fields tend to operate in separate worlds. I like the fact that I'm doing something that brings the two together and has an excuse to keep learning about both. I also quite enjoy programming in general, so it’s great to be able to spend time doing that.
“Probably the single biggest surprise for me in my research so far is that it seemed nobody has ever before attempted what I am doing. The areas of computer vision and programming languages I am trying to bring together seem like such a close fit in their ideas to me. It was a bit of shock to me that I could find no prior work to combine them. In a way that was helpful since it meant I had a novel topic to pursue for my PhD.
I think the main challenge for my PhD is perseverance. I have had to learn several things to which I had little prior exposure, to get to grips fully with the finer points of my chosen topic. Usually, my first learning attempt only gets so far. What I have found, however, is that every time I try again, the little bit I learnt previously helps me to learn a bit more. With enough attempts, and varying the resources I am drawing on, I can eventually get my head around each of these things, at least to the extent needed for my work.
“My research is arguably the start of a particular topic, but hopefully won’t be the end. My main hopes are: that it will get computer vision researchers thinking more about the specifics of implementing their proposed algorithms; and that it will inspire programming languages folks to look deeper into practical computer vision applications as a test of the fruits of their research.
“Computer vision is useful in all sorts of places. One of my supervisors, Associate-Professor Patrice Delmas, frequently works with people from across the University and beyond. Through him, I was involved in the early stages of a project with the Institute of Marine Science for estuary conservation. That work involved spending a few mornings flying drones to take pictures at the beach!
“If I had to choose just one piece of advice for anyone interested in doing research or a PhD, I would probably say that it is essential to ensure that you routinely read new (to you) research papers from the broader field you’re working in. It’s easy to let that slip as there’s always a more pressing priority but reading broadly is a great way to find gaps in your knowledge you weren’t aware of. Making sure to set aside some time regularly to read more broadly is crucial, because otherwise you may well never do it.”