Research – Haar Cascades

A Haar Cascade is an object detection algorithm.

image courtesy of: https://docs.opencv.org

It uses a classifier which is trained to detect an object and does this by superimposing a positive image over a set of negative images over a number of stages. Quite a large number of stages.

This machine learning approach is computationally heavy and reliant upon possession of a training set. However there seem to be a number of them available online. Each with their own focus of object detection.

 

Haar-cascade Detection in OpenCV

OpenCV has it’s own trainer and detector which can be used to train your own classifier, which in our case would need to track the left eye of a person over a series of three images.

By applying some demo code kindly provided by OpenCV to one of our project images, we can see that this could well be a viable approach to take with our project and worthy of further research.

Similar to HAAR Cascades are LBP (Local Binary Pattern) Cascades which seem to operate similarly in the respect that they both use training sets. However, LBP Cascades can provide quicker results with slightly less accuracy.

Local Binary Patterns could be thought of as a computationally cheaper version of the Haar Cascade. LBP works by thresholding with the use of a 3×3 grid. The value of the centre pixel in the grid is used as a threshold value and the surrounding pixels in the grid are thresholded and summed together to form the descriptor used. LBP yields results that would be similar to Haar Cascades while offering a much simpler process.

References:

Face Detection using Haar Cascades (accessed 25.10 2018)
https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_objdetect/py_face_detection/py_face_detection.html#face-detection

Viola P. Jones MJ. Rapid Object Detection using a Boosted Cascade of Simple Features. IEEE Computer Society Conference on Computer Vision and Pattern Recognition 1:I-511- I-518 vol.1
https://www.researchgate.net/publication/3940582_Rapid_Object_Detection_using_a_Boosted_Cascade_of_Simple_Features

Deep Learning Haar Cascaded Explained (accessed 25.10 2018)
http://www.willberger.org/cascade-haar-explained/

Pietikäinen M. Local Binary Patterns. Machine Vision Group, Department of Electrical and Information Engineering, University of Oulu, Finland.
http://www.scholarpedia.org/article/Local_Binary_Patterns

Huang D. Shan C. Ardebilian M. Wang Y. Chen L. Local Binary Patterns and Its Application to Facial Image Analysis: A Survey
https://liris.cnrs.fr/Documents/Liris-5004.pdf

Week 6 – Lab Work

 

Assignement 1 – Lighting

 

Week 5 – Lab Work

Today we explored kernels in more depth.

The second part of this lab was used to finish off our first modules .assignment.

Project Research – Preliminary Stage

To succeed in the aims of our project to track an item within an image across a series of similar images we are going to need to explore the technology within four potential ways of tackling this challenge before deciding on any particular approach.

Tracking motion – Looking for things that are different between images, if it doesn’t move and the pixel value hasn’t changed we are not interested, we are only interested in what has changed.

Tracking texture – The gradient orientation that occurs in the localized portions of an image is counted in texture based technique. It is then computed using overlapping local contrast normalization on a dense grid of uniformly spaced cells for improving accuracy.

Shape based – Simple pattern matching can be applied with appropriate templates.

Colour based – Creates a gaussian mixture model to describe the colour disrtibution within the sequence of images and to segment the images into background and objects.

References:

Klimek RB. Wright TW. Sielken RS. Color Image Processing and Object
Tracking System. Lewis Research Center, Cleveland, Ohio. Trinity University, San Antonio, Texas .
https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19960016954.pdf

Yazdi M. Bouwmans T. New Trends on Moving Object Detection in Video
Images Captured by a moving Camera: A Survey. HAL Archives
https://hal.archives-ouvertes.fr/hal-01724322/document

Object tracking & Motion detection in video sequences (accessed 16.10.2018)
http://sccg.sk/~cernekova/

Balaji S RDr. S. Karthikeyan. A survey on moving object tracking using image processing. Conference: 2017 11 th International Conference on Intelligent Systems and Control (ISCO)
https://www.researchgate.net/publication/315711962_A_survey_on_moving_object_tracking_using_image_processing

Pramod Patil SP. Techniques and Methods for Detection and Tracking of Moving Object in a Video . International Journal of Innovative Research in Computer and Communication Engineering. Vol. 4, Issue 5, May 2016
http://www.rroij.com/open-access/techniques-and-methods-for-detection-and-tracking-f-moving-object-in-a-video-.pdf

The First Computer I used

Today in class I was asked, what was the first computer I used and I had to think waaaaay back. It also took a while.

Was it the Aston 3 I though! A primitive beast that looked like it had been made in somebody’s shed and generated TV captions. It stored everything on a fearsome looking 7″ floppy disc that could be erased by a change of wind direction.

 

Or was it the Abekas A72, another Caption Generator with a sleek futuristic keyboard and half a rack of hardware to support its amazing ant-aliasing powers.

 

Or could it have been the CMX Edit control system, driven by Unix command prompt with GPI’s for external FX units such as Vision Mixers and DVE’s.

 

Or maybe it the Quantel Paintbox, which was the forerunner to Adobe Photoshop but was definitely not as portable.

 

No it was in fact the Amiga 500.

This was a popular gaming machine in its day but we used it for generating info trivia boxes for the 1980’s Channel 4/ITV music Show ‘The Chart Show’. An illegible example of this can be seen at around 2 minutes on this clip from the show.

Week 4 – Lab Material

Transformation along with more image adjustments such as cropping, rotating, scaling. We also covered image Math such as adding, dividing, subtraction and multiplication. Finally we had in introduction to Kernels, yikes…

Code for the lab tasks:

 

 

Week 3 – Drawing on images & Thresholding

This week we performed further image manipulation in the form of adding, circles and lines and borders on images loaded into OpenCV. We also looked into Threholding and were introduced to the Histogram in relation to image Processing.

Code for the lab tasks.

 

The Project – Initial thoughts

Our project is describes as follows:

‘Find the left eye in the first image and track it through the image sequence’

The image sequence described contains a person talking about cats (I think) but the solution required needs to be generally applicable.

My initial thoughts are two create a program that can isolate a unique colour in conjunction with recognising patterns within the detail. of the image but I am sure there are many potential approaches that can be taken. So…

 

 

 

 

 

 

 

After research more specifics will follow…