I am a computer scientist interested in object recognition, machine learning, and applications of deep neural networks. I finished my Ph.D. at the University of British Columbia in April 2014 and was supervised by David Lowe.

Selected Publications

Sancho McCann. “Object classification and localization using spatially localized features”. Ph.D. Dissertation. UBC Department of Computer Science. 2014. [pdf]

Sancho McCann and David G. Lowe. “Spatially Local Coding for Object Recognition.” ACCV, 2012. [pdf][poster][project page]

Sancho McCann and David G. Lowe. “Local Naive Bayes Nearest Neighbor for Image Classification.” CVPR, 2012. [pdf] [project page]

David Meger, Per-Erik. Forssén, Kevin Lai, Scott Helmer, Sancho McCann, Tristram Southey, Matthew Baumann, James J. Little, and David G. Lowe. “Curious George: An Attentive Semantic Robot”. In Robotics and Autonomous Systems Journal, Volume 56, Number 6, pp. 503—511. June 2008. [pdf]

Sancho McCann and Jacky Baltes. “Towards Automatic Image Modification as an Empirical Test of Image Segmentation.” In Proc. 9th International Conference on Control, Automation, Robotics and Vision (ICARCV), 2006. [pdf]

Sancho McCann and Jacky Baltes. “Abarenbou – A Small Vision-Based Humanoid Robotic Research platform.” In Proc. of the Third International Conference on Computational Intelligence, Robotics, and Autonomous Systems (CIRAS), 2005. [pdf]

A more complete list is at my Google Scholar profile.


Spatially local coding

Visualization of features This method for classifying images takes features that have been extracted from a training dataset and groups them into clusters that are similar in appearance and location.

More details, code: [Project page]

Local Naive Bayes Nearest Neighbor

Local Naive Bayes Nearest Neighbor improves upon the NBNN image classification algorithm. Local NBNN gives higher classification accuracy and runs 100 times faster than NBNN on the Caltech 256 dataset.

More details, code: [Project page]

Humanoid Robot

I worked with Dr. Jacky Baltes to build a small-size humanoid robot. I coded in C and cross compiled for the ARM processor on a Sony Clie. I programmed it to walk and to find and kick a ball. This was our entry in the 2005 FIRA RoboWorld Cup.

Sancho McCann and Jacky Baltes. “Abarenbou – A Small Vision-Based Humanoid Robotic Research platform.” In Proc. of the Third International Conference on Computational Intelligence, Robotics, and Autonomous Systems (CIRAS), 2005. [pdf]

Robot Airplane

At the University of Manitoba, I was part of a team that built a robot airplane that could take-off, fly a search pattern, and land—all autonomously. The airplane sent a video feed and telemetry to a ground station, where one of our teammates could mark targets of interest and report their coordinates. We placed first out of seventeen teams in a competition that included BYU, University of Texas, Cornell, MIT, and UCSD. I wrote much of the computer vision code, which transformed the video feed’s pixel coordinates into GPS coordinates, and presented that information to our ground station’s operator.

Paul Furgale, Sancho McCann, Jim Majewski, Andrew Bugera, and Kory Zelickson. “Team Manitoba 2006 AUVSI Student Competition Project Description.” AUVSI: 4th Annual Student Unmanned Aerial Vehicle Competition, 2006 [pdf]

AtmosView: Visualization Redesign

I created AtmosView, a new visualization for atmospheric sounding data (vertical profiles of the atmosphere’s temperature and humidity). People use this data to predict soaring conditions, atmospheric stability, and the likelihood of severe weather. Previous diagrams have been called the most difficult atmospheric diagrams to read. AtmosView helps readers see this information on individual charts, and allows them to more easily compare between multiple charts.

Sancho McCann. “Atmospheric Sounding Visualization.” Project report. [pdf]


Languages, libraries, and tools

Python: 2/3, NumPy, SciPy, Matplotlib, Cython

C/C++: C++11, Boost, Google Test, Protocol Buffers, Apache Thrift

Scala: Play 2.x, Slick

Computer vision: Custom algorithm research, design, implementation, evaluation. OpenCV. Convolutional and recurrent neural networks using Caffe, Torch, TensorFlow.

Research Assistant, University of Manitoba — 2005

I worked with Dr. Jacky Baltes in the Autonomous Agents Laboratory on a small, humanoid robot. I wrote vision algorithms and developed a stable walking gait for the robot.

Research and Development, Frantic Films — 2006

I did production work for Superman Returns and software development for their rendering pipeline.

Software Engineer Intern, Google — 2010, 2011

In 2010, I helped develop a prototype Android application with the Geo/Street View team.

In 2011, I worked on improving the automatic organization of YouTube data.

Head of Research and Development, Shelfie — 2014-2017

Shelfie was an app that automatically identified books in photos that our users took of their bookshelves. I wrote most of the automatic recognition system, including feature-based nearest-neighbor matching, text-recognition, and convolutional neural networks. I created custom validation datasets and tools for quality control. I managed our SRED and IRAP projects, drafted patent applications, and mentored teammates when they helped with this research.

Leadership, volunteering, hobbies

I have a Commercial Pilot Licence and a Class 1 Flight Instructor Rating. I got most of my flight experience as a flight instructor at Flying Colors Pilot Training and flew with their precision flight team. I’ve also delivered flight training to Canadian Forces pilots taking their Primary Flight Training and have held a Class 2 Aerobatic Flight Instructor rating. I won the John C. Webster Memorial Trophy. Today, I stay current by flying recreationally around the lower mainland of British Columbia.

I was a member of the Canadian Forces in the Cadet Instructor Cadre. My duties included organizing training programs, supervision and development of instructors, administrative work, and many ad-hoc leadership roles. I’ve developed and taught an introductory level aviation course.

During my time at UBC, I held several volunteer roles in the Department of Computer Science at UBC. I led activities for outreach programs, I was a member of the department’s recruiting and admissions committee, and I’ve helped deliver the TA training program. I was the president of the Computer Science Graduate Student Association and I was a councilor representing the computer science graduate students in UBC’s Graduate Student Society.

I played competitive ultimate and held leadership roles with UBC Ultimate, Refinery, and Blackfish. I’m an amateur short-distance sprinter.