Classez et segmentez des données visuelles

Brought by: OpenClassrooms

Overview

Bienvenue dans le cours de vision par ordinateur ! Dans ce cours, vous allez apprendre à classifier des images à l'aide des algorithmes issus du Machine Learning, en particulier de l'apprentissage supervisé (approche plutôt traditionnelle) et du Deep Learning (approche très moderne).

La première partie vous permettra d'acquérir les bases en traitement d'images, en particulier les opérations de lissage avec les filtres. Dans une deuxième partie, vous découvrirez la notion fondamentale de features en vision, et étudierez les méthodes classiques de détection et de description de features. Vous pourrez alors développer votre premier algorithme de classification d'images, en entraînant un algorithme d'apprentissage supervisé sur les features extraites. Enfin, la troisième partie est dédiée aux fameux réseaux de neurones convolutifs (CNN), qui constituent aujourd'hui les algorithmes les plus performants pour classer des images.

Prérequis :

Ce cours fait partie du parcours Data Scientist. Il se situe au croisement des mathématiques et de l'informatique. Pour en profiter pleinement, n'hésitez pas à vous rafraîchir la mémoire, avant ou pendant le cours, sur :

  • Python pour le calcul numérique (numpy) et la création de graphiques (pyplot), que nous utiliserons dans les parties TP du cours
  • Quelques notions d'algèbre linéaire : manipulation de vecteurs, multiplications de matrices, normes, et valeurs/vecteurs propres
  • Quelques notions de probabilités et statistiques, telles que distribution de loi de probabilité et variance
  • Les méthodes supervisées linéaires
  • Les méthodes supervisées non-linéaires, en particulier les réseaux de neurones

Syllabus

Part #1 - Améliorez l’aspect visuel de vos images
1. Comprenez comment un ordinateur voit une image
2. Appliquez vos premiers traitements d'images
3. Filtrez une image
Activity: Implémentez et comparez des filtres de débruitage

Part #2 - Détectez et décrivez efficacement les zones d’intérêts dans une image
1. Découvrez la notion de "features" dans une image
2. Détectez les coins et les bords dans une image
3. Décrivez efficacement les features détectées avec SIFT
4. Utilisez ces features pour classifier des images
Quiz: Partie 2

Part #3 - Classifiez les images à l’aide de réseaux de neurones convolutifs
1. Qu'est ce qu'un réseau de neurones convolutif (ou CNN) ?
2. Découvrez les différentes couches d'un CNN
3. Apprenez à construire un CNN et gagnez du temps avec le Transfer Learning
4. TP : Implémentez votre premier réseau de neurones avec Keras
Quiz: Partie 3

Taught by

Pascal Monasse and Kimia Nadjahi

Classez et segmentez des données visuelles
Go to course

Classez et segmentez des données visuelles

Brought by: OpenClassrooms

  • OpenClassrooms
  • Free
  • French
  • Certificate Available
  • Available at any time
  • All
  • N/A
8.1.2PHP Version396msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (254ms)
    • Application (141ms)
    • 1 x Booting (64.1%)
      254.12ms
      1 x Application (35.65%)
      141.35ms
      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 executed7.82ms
      • select * from `courses` where `slug_en` = 'classez-et-segmentez-des-données-visuelles' limit 1
        6.61ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. classez-et-segmentez-des-données-visuelles
        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-04-09 18:33:46' where `id` = 1936
        380μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-09 18:33:46
        • 1. 1936
        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 (3)
        170μ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)
        140μ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 (36) and `providers`.`deleted_at` is null
        180μ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` = 1927 limit 1
        340μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1927
        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
        Eq63VkqZO7yb8AS6vax98pkG9Vw6nzicDsMfs7nB
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/classez-et-segmentez-des-donn%C3%A9es-vis...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/classez-et-segmentez-des-donn%C3%A9es-visuelles
        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 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "priority" => array:1 [ 0 => "u=0, i" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.147.74.223" ] "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" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.147.74.223" ] "cf-ray" => array:1 [ 0 => "92dc183fdc768114-ORD" ] "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_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_PRIORITY" => "u=0, i" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.147.74.223" "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_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.147.74.223" "HTTP_CF_RAY" => "92dc183fdc768114-ORD" "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" => "42540" "REMOTE_ADDR" => "172.70.131.115" "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/classez-et-segmentez-des-donn%C3%A9es-visuelles" "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" => 1744223626.4895 "REQUEST_TIME" => 1744223626 ]
        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 => "Wed, 09 Apr 2025 18:33:46 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImhsMEFVSEI2OGpMaWtmaGIwWVhlUmc9PSIsInZhbHVlIjoieEVhbHU4WkFoRkoxTkVOY2ZWb2pFY2tKcUgxditNak1Iei9FQU5EMWplV1l5Snh5SnJidTJPWm1NbkF0azFvTDZIZ0UyWVg4M2NUSVdSNUtTVnJIekxFQXY1Z1JsYVovd0JUWHo0RHAwQ1prMCtJbnhHZEpjalU3UURMb3Y4bk8iLCJtYWMiOiI1YWFiYjc3NDkxN2Y1ZjA2MDI0ZGNlNTc1OTIzNDk1M2ViNDE3ZTI2NWQyYTYyMzMyZGEyYzNiMTA5MDdmZjY0IiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 20:33:46 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImhsMEFVSEI2OGpMaWtmaGIwWVhlUmc9PSIsInZhbHVlIjoieEVhbHU4WkFoRkoxTkVOY2ZWb2pFY2tKcUgxditNak1Iei9FQU5EMWplV1l5Snh5SnJidTJPWm1NbkF0azFvTDZIZ0UyW" 1 => "laravel_session=eyJpdiI6ImFkanQxY2NXMjFzNVdXd1cxY3pmblE9PSIsInZhbHVlIjoieXRWTDQwKzVZdlhEdzhDeDY4YjB3Z0F3a3lhM2VYZ2hybFU0ZnhCY2NoaTJ1TU1GeUwyUm5KR3NjV0FsRUZBSExzNDlpUVBqRVorTy9wQzYyZnF2ZG5lZ21tMXZ1RkFaZ2R4Y3pHUGN3WXZ5dWpGZVd5NFllaE5raGovZE4zeHAiLCJtYWMiOiJhMzc0NzhiNTdlMDllYjI2Njg3YjkyZjdiZDBiYjUzNThhZDdiMzA1NDBlOTA2YTEyNzlmY2FiMTZmN2IyYjI1IiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 20:33:46 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6ImFkanQxY2NXMjFzNVdXd1cxY3pmblE9PSIsInZhbHVlIjoieXRWTDQwKzVZdlhEdzhDeDY4YjB3Z0F3a3lhM2VYZ2hybFU0ZnhCY2NoaTJ1TU1GeUwyUm5KR3NjV0FsRUZBSExz" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImhsMEFVSEI2OGpMaWtmaGIwWVhlUmc9PSIsInZhbHVlIjoieEVhbHU4WkFoRkoxTkVOY2ZWb2pFY2tKcUgxditNak1Iei9FQU5EMWplV1l5Snh5SnJidTJPWm1NbkF0azFvTDZIZ0UyWVg4M2NUSVdSNUtTVnJIekxFQXY1Z1JsYVovd0JUWHo0RHAwQ1prMCtJbnhHZEpjalU3UURMb3Y4bk8iLCJtYWMiOiI1YWFiYjc3NDkxN2Y1ZjA2MDI0ZGNlNTc1OTIzNDk1M2ViNDE3ZTI2NWQyYTYyMzMyZGEyYzNiMTA5MDdmZjY0IiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 20:33:46 GMT; path=/XSRF-TOKEN=eyJpdiI6ImhsMEFVSEI2OGpMaWtmaGIwWVhlUmc9PSIsInZhbHVlIjoieEVhbHU4WkFoRkoxTkVOY2ZWb2pFY2tKcUgxditNak1Iei9FQU5EMWplV1l5Snh5SnJidTJPWm1NbkF0azFvTDZIZ0UyW" 1 => "laravel_session=eyJpdiI6ImFkanQxY2NXMjFzNVdXd1cxY3pmblE9PSIsInZhbHVlIjoieXRWTDQwKzVZdlhEdzhDeDY4YjB3Z0F3a3lhM2VYZ2hybFU0ZnhCY2NoaTJ1TU1GeUwyUm5KR3NjV0FsRUZBSExzNDlpUVBqRVorTy9wQzYyZnF2ZG5lZ21tMXZ1RkFaZ2R4Y3pHUGN3WXZ5dWpGZVd5NFllaE5raGovZE4zeHAiLCJtYWMiOiJhMzc0NzhiNTdlMDllYjI2Njg3YjkyZjdiZDBiYjUzNThhZDdiMzA1NDBlOTA2YTEyNzlmY2FiMTZmN2IyYjI1IiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 20:33:46 GMT; path=/; httponlylaravel_session=eyJpdiI6ImFkanQxY2NXMjFzNVdXd1cxY3pmblE9PSIsInZhbHVlIjoieXRWTDQwKzVZdlhEdzhDeDY4YjB3Z0F3a3lhM2VYZ2hybFU0ZnhCY2NoaTJ1TU1GeUwyUm5KR3NjV0FsRUZBSExz" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "Eq63VkqZO7yb8AS6vax98pkG9Vw6nzicDsMfs7nB" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/classez-et-segmentez-des-donn%C3%A9es-visuelles" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]