Profile

Cover photo
William Payne
Works at Continental AG
Attended UMIST
242,089 views
AboutPostsPhotosVideos

Stream

William Payne

Shared publicly  - 
 
Cool stuff!
 
SLAMBench from the PAMELA project (a collaboration between Manchester, Edinburgh and Imperial) is now available as an Android app thanks to Bruno Bodin from Edinburgh. So now you can easily benchmark your phone or tablet to see how fast it can run KinectFusion! A reminder that you can download the desktop version, source code and SLAMBench paper from ICRA 2015 at: http://apt.cs.manchester.ac.uk/projects/PAMELA/tools/SLAMBench/
This is the mobile edition of SLAMBench 1.1. You can use this benchmark to ...
1 comment on original post
1
Add a comment...

William Payne

Shared publicly  - 
Don't rely on buzzwords -- find what works for you, whether it's one process or a mix of methods.
1
Add a comment...

William Payne

Shared publicly  - 
 
Dependency management does not have to be complex:
http://blog.zoomeranalytics.com/pip-install-t/
Zoomer Analytics is the creator of xlwings and provides consulting services for scientific applications with a focus on Python for Finance.
1
Add a comment...

William Payne

Shared publicly  - 
 
The accidental deletion of engine calibration data (during a firmware update?) caused an aircraft to crash:

http://www.reuters.com/article/2015/06/09/us-airbus-a400m-idUSKBN0OP2AS20150609?v=1

This story illustrates the importance of keeping a "systems context" in mind during design.

I.e. not just designing the product in its' operational configuration, but also thinking of the operation and safety of the system in development, during manufacture, in maintenance and at end-of-life, and designing all the associated procedures, tools, data recording and analysis systems with some sort of robustness / safety concept in mind.
1
Add a comment...

William Payne

Shared publicly  - 
 
Regarding the field of view diagram in this article:

http://www.bbc.co.uk/news/magazine-33622318

It is surprising how much of the drivers Field Of View is taken up by the wing mirrors ... replacing external wing-mirrors with video-camera based systems would go a long way to improving the driver's field of view, something I hadn't contemplated 'till now.

Video-camera or radar based Automatic Emergency Braking systems would help save lives too. (Of course I'm biased, but I think video cameras have the edge in this scenario -- I'm not sure how solid of a radar return you'd get from a cyclist riding a bike with few metallic components).
Dramatic footage of a lorry driver turning into the path of a motorcyclist has gone viral.
1
Add a comment...

William Payne

Shared publicly  - 
A simple errand to get a passport photo exposes the blinkered logic lurking in the rule-bound technologies that pervade our lives.
1
1
Alastair Harrison's profile photo
Add a comment...

William Payne

Shared publicly  - 
 
More evidence of the importance of software quality and the impact of losing control over it: http://www.bbc.co.uk/news/technology-33506486
Land Rover is recalling more than 65,000 cars to fix a software bug that can unlock the vehicles' doors.
1
Add a comment...

William Payne

Shared publicly  - 
 
 
Amazing results on novel view synthesis using deep learning... This is the paper http://arxiv.org/abs/1506.06825

(Via +Kosta Derpanis​)
5 comments on original post
1
1
Enrique Fernández Perdomo's profile photo
Add a comment...

William Payne

Shared publicly  - 
 
Idea: use queue theory to maximize productivity for task-driven software development activities:

https://danslimmon.wordpress.com/2015/06/05/kanban-highway-the-least-popular-mario-kart-course/
I've been reading a really excellent book on product development called The Principles of Product Development Flow, by Donald G. Reinertsen. It's a very appealing book to me, because it sort of lay...
1
Add a comment...
Work
Occupation
Test (Development Automation) Group Leader
Skills
Machine Vision, Machine Learning, Algorithms, MATLAB, Python, C, C++, Bash, Simulink, Linux, Distributed Systems, Embedded Systems, QPID, MongoDB, Oracle, MySQL
Employment
  • Continental AG
    Test Group Leader, 2014 - present
    I support the development of machine vision algorithms for automotive surround view systems. My main focus is to build confidence across the business unit and to accelerate algorithm development by providing highly-automated test systems to the algorithm and software development teams. These systems are intended to provide continuous visibility of development progress and system performance to stakeholders across the organisation; and to provide continuous integration, continuous testing, classifier training, and algorithm parameter tuning functionality to the research and development teams. This responsibility extends to the collection, storage, analysis and exploitation of extremely large quantities of representative video data, gathered across a wide variety of environmental conditions; vehicle dynamics; platform and scene geometries, as well as the support of a range of "real-world" testing and performance evaluation activities.
  • Continental AG
    Research Engineer, 2013 - 2014
    I work on machine vision systems for advanced driver assistance and automated driving products; splitting my time between work on collision warning related algorithms and our cross-platform automated build & test systems. My machine vision software is written in C++ and MATLAB. My build-system is written in Python; Bash and CMake. Our version control and configuration management is done with Git. Continuous integration and code review are implemented using Jenkins and Gerritt. I use GCC; CppCheck; CCCC & PC-Lint for static analysis; Valgrind; GDB & DDD for debugging & profiling. As with most of my past roles, I wear the software engineering hat in a multidisciplinary research team, providing help and support with issues involving Git, GCC, profiling & static analysis.
  • EveryScreen Media
    Senior Data Engineer, 2011 - 2013
    I developed ESM's Data Science Systems, bridging the gap between ESM's academic advisers and the engineering team. I turned prototype data science concepts (MATLAB) into working products, implemented statistical and graph processing algorithms and scaled the data science systems to handle > 1 billion requests per day. I implemented data cleaning, monitoring and reporting tools. I also supported the development of ESM core production systems. It was a hands-on role, with most development done in Python, occasionally pitching in to support C++ and PHP development where required. Most of our data science systems sit on top of Linux/QPID/MongoDB/Python infrastructure.
  • Foreign & Commonwealth Office
    IT Support Officer, 2011 - 2011
    In this temporary role, I provided first line technical support to approximately 150 users.
  • Fidelity International
    Quantitative Developer, 2010 - 2011
    In this role, I provided MATLAB expertise to the “Equity Applied Research” (Quant.) team; promoting software development best practice through periodic “brown bag” sessions; writing MATLAB libraries for data handling & cleaning, statistics, distributed computing, graphing, report generation, testing, deployment, logging & fault reporting. I managed the team's production environment, as well as the development automation tool-chain, from source & configuration management through continuous integration, test & deployment automation. I implemented stock screens and charts; data quality screens and exception reports. I worked closely with quantitative analysts and gained a reputation for code quality, reliability and trustworthiness.
  • Thales Optronics
    Algorithms Engineer, 2007 - 2010
    In this role, I acted as a technical lead in a technical demonstrator programme: researching, proposing, securing funding for and implementing original machine vision (IRST) and image enhancement algorithms. I built relationships with experts from the customer community, obtained feedback and gathered requirements, carried out data analysis, proposed, designed & implemented original target detection, tracking, classification and image enhancement algorithms, whilst effecting change in the development process, successfully introducing iterative development, continuous integration and testing/performance evaluation using large scale video libraries. I gained an excellent reputation for enthusiastic engagement with problems, for effecting organisational change to improve our development processes, and for a pragmatic approach: identifying conceptually simple and computationally feasible algorithms, and driving development to get the job done. I implemented algorithms in MATLAB, Simulink, C and C++, using my software engineering background to understand how C code generated from Simulink models performed on an embedded target, advising on algorithm ease of implementation and performance issues, and prioritising algorithm development based on a solid understanding of the problem domain. Whilst in this role, I gained experience designing and implementing novel signal processing; target detection; tracking; image enhancement; navigation and machine vision algorithms. I also designed & implemented automated test & performance measurement systems, video ground-truth mark-up & ROI selection tools. I also consistently achieved the highest possible rating in all performance reviews undertaken.
  • Sophos Plc
    Software Engineer, 2006 - 2007
    In this role, I worked on Sophos Anti-Virus 7 Windows client program as part of a large development team. I carried out low-level development work on run-time code modification and analysis functionality as well as higher level work on configuration, upgrading & messaging systems, including the development of multi-threaded OO C++ code. Working in a large team on a complex and evolving software system, I gained experience using test-driven development & continuous integration techniques, carrying out code reviews & pair programming, writing unit tests & build scripts.
  • SmartSensors Ltd
    Consultant Machine Vision Engineer, 2006 - 2006
    In this role, I productised a prototype iris recognition system, developing iris image extraction and image quality estimation algorithms. I worked closely with researchers and the customer to reimplement MATLAB prototypes in C, proposing novel alternative algorithms where required to meet run-time performance and robustness guarantees. I gained experience developing image processing algorithms, translating complex mathematical and statistical concepts into code, writing optimisation & signal processing algorithms; developing embedded image processing code and developing portable embedded C code.
  • Cambridge Research Systems Ltd
    Staff Scientist, 2003 - 2005
    In this role, I developed a large MATLAB toolbox for Visual Stimulus Generation, experimental control, data calibration, collection and analysis. I built relationships with members of the customer community, providing demonstration code, advice, training and technical support for a range of visual stimulators, eye-trackers and assorted related scientific products. I developed data capture, analysis and visualisation applications in MATLAB, C and Java, as well as a CRT saccade contingent display, as part of a PhD researching adaptive control of saccades. I built up an understanding of the practicalities of experimental control and measurement in vision science, psychophysics and neuroscience; excellent MATLAB programming skills, an understanding of filtering, noise control, artefact detection and removal.
Basic Information
Gender
Male
Relationship
Married
Story
Tagline
Software Development, Machine Learning and Human Factors
Introduction
I am a sometime Algorithms Engineer, Quantitative Developer and Data Science Engineer.

I work with academics & domain experts to bring quantitative algorithms into production, often acting as a bridge between academic subject matter experts and engineering teams.

I am particularly interested in all the forgotten, mundane "Software Engineering" aspects of quantitative and statistical software development that make it different from normal software development.

How do you test a regression or a classification algorithm for which you cannot (easily) write a specification? How do you test software intended to operate on petabytes of data? How do you test a system where the cost of building a separate test or QA environment is prohibitive? or where even the cost of obtaining representative test data is prohibitive?

I am also interested in the application of robust statistics to image processing and machine vision.
Education
  • UMIST
    Artificial Intelligence, 1999 - 2003
    Image Processing and Machine Vision, Machine Learning, Neural Networks, Computational Linguistics, Formal Logic, Software Analysis & Design, Project Management, Prolog Programming, Java Programming