This is an outline of the course.
Workshops happen in class - after a brief introduction from the instructor students will go through the workshop by themselves either alone or in groups.
A selection of pre-course material will be made available for all students before the course.
These will include general Python introductory exercises, links to courses etc. not related to image analysis.
Introduction to image analysis.
Learning objectives:
- Give examples of problems in image analysis.
- Describe situations where Python is useful for image analysis.
- List and descibe common Python libraries used in image analysis.
Indicative content:
- Introduction to the course structure and ICAs
- What is image analysis and what can we use it for
- The rationale for using Python - not as an absolute substitute for existing pieces of software
- Very cursory introduction (1-2 slides, to be used as a reference) to the tools we will be using
- Examples of problems to be solved in image analysis
Learning objectives:
- Describe images as multidimensional arrays
- Manipulate images using Python (Numpy)
Indicative content:
- Images as multidimensional arrays (tensors)
- Image visualization - 2D and 3D
- Colour spaces, colour palettes, LUTs
- Basic image manipulation
- Image cropping and scaling in 2D and 3D
- Image histograms and their manipulations
Further reading:
- Harris et al. Array programming with Numpy - Nature, 2020
Learning objectives:
- Open and visualize images using Python
- Crop, rotate, scale images
- Save modified images
- Plot and manipulate image histograms
- Visualize videos/3D stacks/multidimensional images
Filters and features - week 1.
Monday 20 and Tuesday 21 holiday.
Learning objectives:
- Define and give examples of image features
- Explain their use in image analysis
- Define image filters and their use
Indicative content:
- Image features - what they are, how do we use them
- Definition of filters and related terminology (convolution, kernel size, stride, edge behaviour)
- Use cases - improving images, detecting structures of interest in images
- Traditional vs "modern" usage of filters in machine learning (more on that later in the course)
- Examples of filters
- Non convolutional filters (mean/median/max (erosion)/min (dilation))
- Convolutional filters (Gaussian, Sobel)
Filters and features - week 2.
Friday 1 October holiday.
Learning objectives:
Indicative content:
- Image featurization
- Detecting edges (Sobel, Canny)
- Detecting corners (Harris, Shi-Tomasi)
- Texture features (Entropy, GLCM features)
- Other (SIFT and DAISY descriptors)
Learning objectives:
- Use Python to detect edges and corners in an image
- Use Python to extract texture features from an image
Holiday week, no lectures!
Filters and features - week 3.
Learning objectives:
- Describe and apply methods for detection of shapes in an image
- Describe and apply methods for particle detection
- Discuss advantages and issues with these methods
Indicative content:
- The Hough transform to detect lines or circles
- Particle detection (Difference of Gaussians, Laplacian of Gaussians, etc.)
Suggested reading:
Indicative content:
- Release of groups on Learn
- Overview of tasks (for both ICAs) and marking criteria
- Examples of possible projects
- Writing good documentation
- Suggested timeline for project
Tracking.
Learning objectives:
- Discuss the issues related to analysis of multidimensional datasets
- Describe common tracing algorithms
- Implement them in Python
Indicative content:
- Problems associated with analysing multidimensional datasets – stacks and videos
- Tracing algorithms (vessels, neurites, cell processes)
Learning objectives:
- Discuss issues with tracking objects/particles in videos
- Describe common tracking algorithms
- Implement them in Python
Indicative content:
- Registration algorithms
- Tracking algorithms
Learning objectives:
Indicative content:
Video registration / Particle tracking / Tracing?
Segmentation.
Learning objectives:
- Define the different types of segmentation
- Describe common algorithms to segment images
- Explain the challenges of segmentation
Indicative content:
- Semantic vs instance segmentation
- Common issues in segmentation
- Thresholding methods (Otsu, multi-Otsu, local thresholding)
- Edge based segmentation
- k-means segmentation
- Watershed
- Something else on segmentation (TBD)
Learning objectives:
Indicative content:
Segmantation of cells
Traditional ML approaches in image analysis.
Learning objectives:
Indicative content:
- Recap of ML terminology (training, validation and test set, loss function, etc)
- Trainable (random forest) segmentation
- Image classification using SVM or logistic regression
Learning objectives:
- Describe the basic structure of an ANN
- Describe how (multi-layer) perceptrons (MLPs) work
- Discuss pros and cons of various types of activation functions
- Discuss the limitations of MLPs
Indicative content:
- Introduction to (shallow) neural networks
- The perceptron
- Multilayer perceptron and hidden layers
- Activation functions
- Gradient descent
Convolutional neural networks (CNNs).
- Deep networks
- General structure
- An overview of how a CNN "learns" features
- Types of network layers
- Introduction to Keras and Tensorflow
- Building a simple CNN with Keras
Idea: we are going to briefly go through the project each group is developing and discuss how they can improve on that (30 min/group)
CNNs architectures.
Learning objectives:
Indicative content:
- Transfer learning
- Common CNN architectures
- AlexNet
- LeNet
- U-Net
- Inception
Learning objectives:
Indicative content:
- CNN for cell segmentation in 2D and 3D
- More on U-Net
- StarDist
- YOLO
Idea: we are going to briefly go through the project each group is developing and discuss how they can improve on that (30 min/group)
Learning objectives:
Practical aspects of using CNNs.
Learning objectives:
- Define hyperparameters and discuss why their choice is important
- Discuss different strategies for hyperparameter optimization
Indicative content:
- Hyperparameters optimization
- What are hyperparameters?
- Search strategies (Grid, HyperBand, Bayesian)
- AutoKeras
Learning objectives:
- Describe the concept of data augmentation and discuss why it is needed
- Strategies for data augmentation in image analysis
Indicative content:
- Data augmentation
Classification with CNN
Learning objectives:
Autoencoders.
Learning objectives:
Indicative content:
- What are autoencoders?
- Applications of autoencoders (denoising, anomaly detection, domain adaptation)
- Latent space
Indicative content:
- Analysis of recent papers
Autoencoders
Learning objectives:
Recent topics in image analysis.
- Lecture 13.1
Indicative content:
Analysis of recent papers
- Lecture 13.2
Indicative content:
Analysis of recent papers
No lectures.
- Time reserved for the finalization of the ICAs
SUBMISSION ICA 1 - Wednesday 15 December 12 noon.
SUBMISSION ICA 2 - Wednesday 22 December 12 noon.
END OF COURSE