Moved all image processing into background threads and updated the udpate block on the recognition method to use a CGFloat progress parameter