3D Reconstruction - Multiple Viewpoints

بواسطة: Coursera

Overview

This course focuses on the recovery of the 3D structure of a scene from images taken from different viewpoints. We start by first building a comprehensive geometric model of a camera and then develop a method for finding (calibrating) the internal and external parameters of the camera model. Then, we show how two such calibrated cameras, whose relative positions and orientations are known, can be used to recover the 3D structure of the scene. This is what we refer to as simple binocular stereo. Next, we tackle the problem of uncalibrated stereo where the relative positions and orientations of the two cameras are unknown. Interestingly, just from the two images taken by the cameras, we can both determine the relative positions and orientations of the cameras and then use this information to estimate the 3D structure of the scene.

Next, we focus on the problem of dynamic scenes. Given two images of a scene that includes moving objects, we show how the motion of each point in the image can be computed. This apparent motion of points in the image is called optical flow. Optical flow estimation allows us to track scene points over a video sequence. Next, we consider the video of a scene shot using a moving camera, where the motion of the camera is unknown. We present structure from motion that takes as input tracked features in such a video and determines not only the 3D structure of the scene but also how the camera moves with respect to the scene. The methods we develop in the course are widely used in object modeling, 3D site modeling, robotics, autonomous navigation, virtual reality and augmented reality.

Syllabus

  • Getting Started: 3D Reconstruction - Multiple Viewpoints
  • Camera Calibration
  • Uncalibrated Stereo
  • Optical Flow
  • Structure from Motion

Taught by

Shree Nayar

3D Reconstruction - Multiple Viewpoints
الذهاب الي الدورة

3D Reconstruction - Multiple Viewpoints

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • beginner
  • English
8.1.2PHP Version225msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (138ms)
    • Application (86.2ms)
    • 1 x Booting (61.48%)
      138.48ms
      1 x Application (38.27%)
      86.20ms
      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 ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed3.35ms
      • select * from `courses` where `slug_ar` = '3d-reconstruction---multiple-viewpoints' limit 1
        2.04ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. 3d-reconstruction---multiple-viewpoints
        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-14 00:05:50' where `id` = 130
        530μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-14 00:05:50
        • 1. 130
        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 (16)
        150μ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)
        130μ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 `institutions` where `institutions`.`id` in (30) and `institutions`.`deleted_at` is null
        160μ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 `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        150μ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` = 130 limit 1
        190μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 130
        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\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        tJxeOhdrqKeXcbFIo9FVGF1nd3iwBnFElYBoXVmd
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/3d-rec...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/3d-reconstruction---multiple-viewpoints
        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.135.192.183" ] "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.135.192.183" ] "cf-ray" => array:1 [ 0 => "92fef42c0bf5f14f-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.135.192.183" "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.135.192.183" "HTTP_CF_RAY" => "92fef42c0bf5f14f-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" => "23776" "REMOTE_ADDR" => "172.70.131.154" "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" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/3d-reconstruction---multiple-viewpoints" "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" => 1744589150.3405 "REQUEST_TIME" => 1744589150 ]
        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, 14 Apr 2025 00:05:50 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImNZM1Y2SDhWNDk3akt0MEZHcmxjaEE9PSIsInZhbHVlIjoiTjhLRURjci9vZVUwZ3pvTFdzVzBRaUJXYzB1SVFLZjM4WGRpQnJIcDg1dWdTRlF2QitoUDJZVFA5VDVtZ0VLZ1pMRnBxK0kvZ1lWdjNCOXdFbkdHa1haK0hjdlkvdVlvRjNiSHRVT2hZbng2VmtmTmgzenhaRzI3UVA5d1RoSEMiLCJtYWMiOiI0MjI0ZGI3Y2I2MWE5NWY0YzI5Y2Y2NTFiNmU1NWE2NTBjMTMyOTU1ZTMwOWRiYmJiNzkwYmE2YWQyN2JhZDhkIiwidGFnIjoiIn0%3D; expires=Mon, 14 Apr 2025 02:05:50 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImNZM1Y2SDhWNDk3akt0MEZHcmxjaEE9PSIsInZhbHVlIjoiTjhLRURjci9vZVUwZ3pvTFdzVzBRaUJXYzB1SVFLZjM4WGRpQnJIcDg1dWdTRlF2QitoUDJZVFA5VDVtZ0VLZ1pMRnBxK" 1 => "laravel_session=eyJpdiI6Ii92RjNyZUJFT2dQbjF0MTlmYXM5MkE9PSIsInZhbHVlIjoiSWhmTXZYaWNZOWEyemI1RWpGa3IvSVQ0MjJGWlp3Q3pnTjZSZFJVTldpSE1UTjRzU1pkN1paY2NzTFBqSk4rakl2WXRoTnFOVk05eklzanNHdU45dFIyYTdURTJqOXo2Z0c5MmZkQjBzOEpYNzI3ZVRCM2VJS0lFcHVoWEdLZlQiLCJtYWMiOiIwNWI4ZjBmNTU4OTUyYWJlM2IzOTYxN2Y5YzMwMzc4YTE3ODg1YzNmMzI2YTcyNGRlYzJkYmRkYjFkMmFhYTQ3IiwidGFnIjoiIn0%3D; expires=Mon, 14 Apr 2025 02:05:50 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Ii92RjNyZUJFT2dQbjF0MTlmYXM5MkE9PSIsInZhbHVlIjoiSWhmTXZYaWNZOWEyemI1RWpGa3IvSVQ0MjJGWlp3Q3pnTjZSZFJVTldpSE1UTjRzU1pkN1paY2NzTFBqSk4rakl2" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImNZM1Y2SDhWNDk3akt0MEZHcmxjaEE9PSIsInZhbHVlIjoiTjhLRURjci9vZVUwZ3pvTFdzVzBRaUJXYzB1SVFLZjM4WGRpQnJIcDg1dWdTRlF2QitoUDJZVFA5VDVtZ0VLZ1pMRnBxK0kvZ1lWdjNCOXdFbkdHa1haK0hjdlkvdVlvRjNiSHRVT2hZbng2VmtmTmgzenhaRzI3UVA5d1RoSEMiLCJtYWMiOiI0MjI0ZGI3Y2I2MWE5NWY0YzI5Y2Y2NTFiNmU1NWE2NTBjMTMyOTU1ZTMwOWRiYmJiNzkwYmE2YWQyN2JhZDhkIiwidGFnIjoiIn0%3D; expires=Mon, 14-Apr-2025 02:05:50 GMT; path=/XSRF-TOKEN=eyJpdiI6ImNZM1Y2SDhWNDk3akt0MEZHcmxjaEE9PSIsInZhbHVlIjoiTjhLRURjci9vZVUwZ3pvTFdzVzBRaUJXYzB1SVFLZjM4WGRpQnJIcDg1dWdTRlF2QitoUDJZVFA5VDVtZ0VLZ1pMRnBxK" 1 => "laravel_session=eyJpdiI6Ii92RjNyZUJFT2dQbjF0MTlmYXM5MkE9PSIsInZhbHVlIjoiSWhmTXZYaWNZOWEyemI1RWpGa3IvSVQ0MjJGWlp3Q3pnTjZSZFJVTldpSE1UTjRzU1pkN1paY2NzTFBqSk4rakl2WXRoTnFOVk05eklzanNHdU45dFIyYTdURTJqOXo2Z0c5MmZkQjBzOEpYNzI3ZVRCM2VJS0lFcHVoWEdLZlQiLCJtYWMiOiIwNWI4ZjBmNTU4OTUyYWJlM2IzOTYxN2Y5YzMwMzc4YTE3ODg1YzNmMzI2YTcyNGRlYzJkYmRkYjFkMmFhYTQ3IiwidGFnIjoiIn0%3D; expires=Mon, 14-Apr-2025 02:05:50 GMT; path=/; httponlylaravel_session=eyJpdiI6Ii92RjNyZUJFT2dQbjF0MTlmYXM5MkE9PSIsInZhbHVlIjoiSWhmTXZYaWNZOWEyemI1RWpGa3IvSVQ0MjJGWlp3Q3pnTjZSZFJVTldpSE1UTjRzU1pkN1paY2NzTFBqSk4rakl2" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "tJxeOhdrqKeXcbFIo9FVGF1nd3iwBnFElYBoXVmd" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/3d-reconstruction---multiple-viewpoints" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]