Sparse Representations in Image Processing: From Theory to Practice

Brought by: edX

Overview

This course is a follow-up to the first introductory course of sparse representations. Whereas the first course puts emphasis on the theory and algorithms in this field, this course shows how these apply to actual signal and image processing needs.

Models play a central role in practically every task in signal and image processing. Sparse representation theory puts forward an emerging, highly effective, and universal such model. Its core idea is the description of the data as a linear combination of few building blocks - atoms - taken from a pre-defined dictionary of such fundamental elements.

In this course, you will learn how to use sparse representations in series of image processing tasks. We will cover applications such as denoising, deblurring, inpainting, image separation, compression, super-resolution, and more. A key feature in migrating from the theoretical model to its practical deployment is the adaptation of the dictionary to the signal. This topic, known as "dictionary learning" will be presented, along with ways to use the trained dictionaries in the above mentioned applications.

Syllabus

This program is composed from two separate parts:
1. Part 1: Sparse Representations in Signal and Image Processing: Fundamentals.
2. Part 2: Sparse Representations in Image Processing: From Theory to Practice.
While we recommend taking both courses, each of them can be taken independently of the other. The duration of each course is five weeks, and each part includes: (i) knowledge-check questions and discussions, (ii) series of quizzes, and (iii) Matlab programming projects. Each course will be graded separately, using the average grades of the questions/discussions [K] quizzes [Q], and projects [P], by Final-Grade = 0.1K + 0.5Q + 0.4P.
The following includes more details of the topics we will cover in the second course:

  • Overview of the field and this course.

  • Sparseland theoretic and algorithmic background.

  • Introduction to image priors and their evolution in image processing.

  • In-depth view of the Sparseland model including a geometry perspective and processing of Sparseland' signals.

  • Image deblurring and Iterative Shrinkage Thresholding Algorithm (ISTA).

  • Sparesland from an estimation point of view, including a crash-course of estimation theory.

  • The quest for a dictionary: choosing versus learning a dictionary, including basic dictionary learning algorithms: MOD and KSVD.

  • Challenges in dictionary learning and advanced methods, including the double-sparsity, unitary and signature dictionaries.

  • The image denoising problem and ways to solve it, including global and patch-based Sparseland methods.

  • Crash course on SURE estimator for parameter tuning.

  • The tasks of image separation and inpainting, including Morphological Component Analysis (MCA) and global versus patch-based treatment.

  • The single image super-resolution problem and ways to solve it using Sparseland.

  • Course summary and future research directions of the field.

Taught by

Michael Elad and Yaniv Romano

Sparse Representations in Image Processing: From Theory to Practice
Go to course

Sparse Representations in Image Processing: From Theory to Practice

Brought by: edX

  • edX
  • Free
  • English
  • Certificate Not Available
  • Certain days
  • advanced
  • English
8.1.2PHP Version991msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (514ms)
    • Application (475ms)
    • 1 x Booting (51.87%)
      513.87ms
      1 x Application (47.92%)
      474.74ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed177ms
      • select * from `courses` where `slug_en` = 'sparse-representations-in-image-processing:-from-theory-to-practice' limit 1
        10.66ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. sparse-representations-in-image-processing:-from-theory-to-practice
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-07-28 11:25:10' where `id` = 2420
        165ms/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-28 11:25:10
        • 1. 2420
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (19)
        250μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (1) and `providers`.`deleted_at` is null
        250μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 2411 limit 1
        260μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2411
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        K2NqqpzfTf29jino14U3zThoh8ETk8xUhnmla2Mk
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/sparse-representations-in-image-processin...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/sparse-representations-in-image-processing:-from-theory-to-practice
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.107" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.107" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "966403a6aa74ab3a-YYZ" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.107" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.107" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "966403a6aa74ab3a-YYZ" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "28098" "REMOTE_ADDR" => "172.70.80.188" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/sparse-representations-in-image-processing:-from-theory-to-practice" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1753701909.7834 "REQUEST_TIME" => 1753701909 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Mon, 28 Jul 2025 11:25:10 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ijl4UHd0SHhXd0ZMelk1VkYxdmYxS2c9PSIsInZhbHVlIjoiNnYyNE5MOWlXU1NsSFBWamI5SDNGcStsVTF0Q3kxbVlvL2huNTg0VTRFVWgya2lEeTRDc3FyQnowSFBtNXc2NlB5bVR5WmNQSlZrRDZGak1XVkRSZEFDdWlORlF5K1JFaXB4VFhCV2htbEpKS0VKNzJaY0pyeDV3TlpuYlQvOEUiLCJtYWMiOiJlYzE1ZTIyY2MxMzEzNTUyMWI2Njk3YWI0MWI0YTRjYmVkODdiYzQxNjIzZDNhNTU5NzhhZDA5NDFjZWY0ZmFiIiwidGFnIjoiIn0%3D; expires=Mon, 28 Jul 2025 13:25:10 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Ijl4UHd0SHhXd0ZMelk1VkYxdmYxS2c9PSIsInZhbHVlIjoiNnYyNE5MOWlXU1NsSFBWamI5SDNGcStsVTF0Q3kxbVlvL2huNTg0VTRFVWgya2lEeTRDc3FyQnowSFBtNXc2NlB5bVR5W" 1 => "laravel_session=eyJpdiI6Ikkya3VkNTJmUWlpbDFuSDN4NTV5Tmc9PSIsInZhbHVlIjoiZUorYWJpWUN2SEJxMS84RnBQNjVCelpheUliOFFFZ3dnbCtHRmpvRjdiRkxFajM3bWc0bkJXclpTeFNwTUNmYXlJVW44MXFIS01Pa2FIMVZMSU9IZVQxUnRyZndkb1ZrbkRvd0RiT1FkcXdaZ284TVkvNzZ5QkUrNFRzK1VTUjQiLCJtYWMiOiI5OGEzOTBkZGYwODIyZmI4YWYxZjVmZGFhOWNhZjY2MTI0MTViNDcwNmI2YWE4NmE1ZWYwMGM3MTcwMWM2ODY2IiwidGFnIjoiIn0%3D; expires=Mon, 28 Jul 2025 13:25:10 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Ikkya3VkNTJmUWlpbDFuSDN4NTV5Tmc9PSIsInZhbHVlIjoiZUorYWJpWUN2SEJxMS84RnBQNjVCelpheUliOFFFZ3dnbCtHRmpvRjdiRkxFajM3bWc0bkJXclpTeFNwTUNmYXlJ" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ijl4UHd0SHhXd0ZMelk1VkYxdmYxS2c9PSIsInZhbHVlIjoiNnYyNE5MOWlXU1NsSFBWamI5SDNGcStsVTF0Q3kxbVlvL2huNTg0VTRFVWgya2lEeTRDc3FyQnowSFBtNXc2NlB5bVR5WmNQSlZrRDZGak1XVkRSZEFDdWlORlF5K1JFaXB4VFhCV2htbEpKS0VKNzJaY0pyeDV3TlpuYlQvOEUiLCJtYWMiOiJlYzE1ZTIyY2MxMzEzNTUyMWI2Njk3YWI0MWI0YTRjYmVkODdiYzQxNjIzZDNhNTU5NzhhZDA5NDFjZWY0ZmFiIiwidGFnIjoiIn0%3D; expires=Mon, 28-Jul-2025 13:25:10 GMT; path=/XSRF-TOKEN=eyJpdiI6Ijl4UHd0SHhXd0ZMelk1VkYxdmYxS2c9PSIsInZhbHVlIjoiNnYyNE5MOWlXU1NsSFBWamI5SDNGcStsVTF0Q3kxbVlvL2huNTg0VTRFVWgya2lEeTRDc3FyQnowSFBtNXc2NlB5bVR5W" 1 => "laravel_session=eyJpdiI6Ikkya3VkNTJmUWlpbDFuSDN4NTV5Tmc9PSIsInZhbHVlIjoiZUorYWJpWUN2SEJxMS84RnBQNjVCelpheUliOFFFZ3dnbCtHRmpvRjdiRkxFajM3bWc0bkJXclpTeFNwTUNmYXlJVW44MXFIS01Pa2FIMVZMSU9IZVQxUnRyZndkb1ZrbkRvd0RiT1FkcXdaZ284TVkvNzZ5QkUrNFRzK1VTUjQiLCJtYWMiOiI5OGEzOTBkZGYwODIyZmI4YWYxZjVmZGFhOWNhZjY2MTI0MTViNDcwNmI2YWE4NmE1ZWYwMGM3MTcwMWM2ODY2IiwidGFnIjoiIn0%3D; expires=Mon, 28-Jul-2025 13:25:10 GMT; path=/; httponlylaravel_session=eyJpdiI6Ikkya3VkNTJmUWlpbDFuSDN4NTV5Tmc9PSIsInZhbHVlIjoiZUorYWJpWUN2SEJxMS84RnBQNjVCelpheUliOFFFZ3dnbCtHRmpvRjdiRkxFajM3bWc0bkJXclpTeFNwTUNmYXlJ" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "K2NqqpzfTf29jino14U3zThoh8ETk8xUhnmla2Mk" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/sparse-representations-in-image-processing:-from-theory-to-practice" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]