├── README.md ├── Guide_to_Cameras_magicbook ├── content │ ├── toc.html │ └── webcam.jpg ├── javascripts │ └── scripts.js ├── build │ ├── build2 │ │ ├── assets │ │ │ ├── scripts.js │ │ │ ├── red.jpg │ │ │ ├── depth.jpg │ │ │ ├── webcam.jpg │ │ │ ├── FLIR0510.jpg │ │ │ ├── infrared.jpg │ │ │ ├── thermal.jpg │ │ │ ├── Roboto-Bold.eot │ │ │ ├── Roboto-Bold.ttf │ │ │ ├── Roboto-Bold.woff │ │ │ ├── CrimsonText-Bold.ttf │ │ │ ├── CrimsonText-Italic.ttf │ │ │ ├── CrimsonText-Regular.eot │ │ │ ├── CrimsonText-Regular.ttf │ │ │ ├── CrimsonText-Regular.woff │ │ │ ├── CrimsonText-Regular.woff2 │ │ │ ├── CrimsonText-SemiBold.ttf │ │ │ ├── CrimsonText-BoldItalic.ttf │ │ │ ├── CrimsonText-SemiBoldItalic.ttf │ │ │ └── html.css │ │ ├── Notes_on_TouchUp.html │ │ ├── BriefSoftwareDiscussion.html │ │ ├── cameras.html │ │ ├── Outdoor_Considerations.html │ │ ├── Notes_on_Lenses.html │ │ ├── MultiCamera.html │ │ ├── Experimental.html │ │ ├── Others.html │ │ ├── LIDAR.html │ │ ├── MoCapSystems.html │ │ ├── OlderCameras.html │ │ ├── Camera_Interfaces.html │ │ ├── Notes_on_Latency.html │ │ ├── MachineVisionCams.html │ │ ├── Wireless.html │ │ ├── VolumetricCapture.html │ │ ├── ReferencesAndCredits.html │ │ ├── Thermal.html │ │ ├── Other_RGB_Cameras.html │ │ ├── toc.html │ │ ├── HighSpeed.html │ │ └── InfraredCameras.html │ └── build1 │ │ ├── assets │ │ ├── red.jpg │ │ ├── depth.jpg │ │ ├── webcam.jpg │ │ ├── FLIR0510.jpg │ │ ├── infrared.jpg │ │ ├── thermal.jpg │ │ ├── Roboto-Bold.eot │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Bold.woff │ │ ├── CrimsonText-Bold.ttf │ │ ├── CrimsonText-Italic.ttf │ │ ├── CrimsonText-Regular.eot │ │ ├── CrimsonText-Regular.ttf │ │ ├── CrimsonText-Regular.woff │ │ ├── CrimsonText-Regular.woff2 │ │ ├── CrimsonText-SemiBold.ttf │ │ ├── CrimsonText-BoldItalic.ttf │ │ ├── CrimsonText-SemiBoldItalic.ttf │ │ └── pdf.css │ │ └── consolidated.pdf ├── stylesheets │ ├── test.scss │ ├── html.scss │ ├── pdf.scss │ └── _shared.scss ├── GuidetoCameras_book.code-workspace ├── images │ ├── red.jpg │ ├── depth.jpg │ ├── webcam.jpg │ ├── FLIR0510.jpg │ ├── infrared.jpg │ └── thermal.jpg ├── fonts │ ├── Roboto-Bold.eot │ ├── Roboto-Bold.ttf │ ├── Roboto-Bold.woff │ ├── CrimsonText-Bold.ttf │ ├── CrimsonText-Italic.ttf │ ├── CrimsonText-Regular.eot │ ├── CrimsonText-Regular.ttf │ ├── CrimsonText-Regular.woff │ ├── CrimsonText-SemiBold.ttf │ ├── CrimsonText-BoldItalic.ttf │ ├── CrimsonText-Regular.woff2 │ └── CrimsonText-SemiBoldItalic.ttf ├── includes │ ├── toc.html │ ├── footnotes.html │ ├── navigation.html │ └── toc_item.html ├── layouts │ ├── pdf.html │ └── html.html └── magicbook.json ├── part-1-the-basics ├── README.md ├── lidar-scanners.md ├── smartphone-cameras.md ├── other-rgb-cameras.md ├── infrared-cameras.md ├── depth-cameras.md └── basic-rgb-webcam.md ├── part-2-the-exotic ├── README.md ├── 360-cameras.md ├── experimental-technologies.md ├── multi-camera-and-on-board-compute-systems.md ├── other-cameras-and-systems.md ├── motion-capture-systems.md ├── legacy-cameras-and-technologies.md ├── high-end-machine-vision-cameras.md ├── wireless-imaging-systems.md ├── volumetric-capture.md ├── thermal-cameras.md └── high-speed-or-slow-motion-cameras.md ├── previous_versions ├── README.md ├── guide_to_cameras_magicbook-1 │ ├── content │ │ ├── README.md │ │ └── 01_01_webcam.md │ └── README.md ├── guide_to_cameras_magicbook-2 │ ├── content │ │ ├── README.md │ │ └── 01_02_other_rgb_cameras.md │ └── README.md ├── guide_to_cameras_magicbook-3 │ ├── content │ │ ├── README.md │ │ └── 01_03_smartphone_cameras.md │ └── README.md ├── guide_to_cameras_magicbook-4 │ ├── content │ │ ├── README.md │ │ └── 01_04_infraredcameras.md │ └── README.md ├── guide_to_cameras_magicbook-5 │ ├── content │ │ ├── README.md │ │ └── 01_05_depthcameras.md │ └── README.md ├── guide_to_cameras_magicbook-6 │ ├── content │ │ ├── README.md │ │ └── 01_06_lidar.md │ └── README.md ├── guide_to_cameras_magicbook-7 │ ├── content │ │ ├── README.md │ │ └── 02_01_thermal.md │ └── README.md ├── guide_to_cameras_magicbook-8 │ ├── content │ │ ├── README.md │ │ └── 02_02_machinevisioncams.md │ └── README.md ├── guide_to_cameras_magicbook-9 │ ├── content │ │ ├── README.md │ │ └── 02_03_multicamera.md │ └── README.md ├── guide_to_cameras_magicbook │ ├── content │ │ ├── README.md │ │ └── 00_00_introduction.md │ └── README.md ├── guide_to_cameras_magicbook-10 │ ├── content │ │ ├── README.md │ │ └── 02_05_wireless.md │ └── README.md ├── guide_to_cameras_magicbook-11 │ ├── content │ │ ├── README.md │ │ └── 02_04_highspeed.md │ └── README.md ├── guide_to_cameras_magicbook-12 │ ├── content │ │ ├── README.md │ │ └── 02_06_mocapsystems.md │ └── README.md ├── guide_to_cameras_magicbook-13 │ ├── content │ │ ├── README.md │ │ └── 02_08_360cameras.md │ └── README.md ├── guide_to_cameras_magicbook-14 │ ├── content │ │ ├── README.md │ │ └── 02_07_volumetriccapture.md │ └── README.md ├── guide_to_cameras_magicbook-15 │ ├── content │ │ ├── README.md │ │ └── 02_09_others.md │ └── README.md ├── guide_to_cameras_magicbook-16 │ ├── content │ │ ├── README.md │ │ └── 02_10_oldercameras.md │ └── README.md ├── guide_to_cameras_magicbook-17 │ ├── content │ │ ├── README.md │ │ └── 02_11_experimental.md │ └── README.md ├── guide_to_cameras_magicbook-18 │ ├── content │ │ ├── README.md │ │ └── 03_01_camera_interfaces.md │ └── README.md ├── guide_to_cameras_magicbook-19 │ ├── content │ │ ├── README.md │ │ └── 03_02_outdoor_considerations.md │ └── README.md ├── guide_to_cameras_magicbook-20 │ ├── content │ │ ├── README.md │ │ └── 03_03_notes_on_lenses.md │ └── README.md ├── guide_to_cameras_magicbook-21 │ ├── content │ │ ├── README.md │ │ └── 03_04_notes_on_latency.md │ └── README.md ├── guide_to_cameras_magicbook-22 │ ├── content │ │ ├── README.md │ │ └── 03_05_notes_on_touchup.md │ └── README.md ├── guide_to_cameras_magicbook-23 │ ├── content │ │ ├── README.md │ │ └── 03_06_briefsoftwarediscussion.md │ └── README.md ├── guide_to_cameras_magicbook-24 │ ├── content │ │ ├── README.md │ │ └── 03_07_referencesandcredits.md │ └── README.md └── guide_to_cameras_magicbook-25 │ ├── content │ ├── README.md │ └── formatreference.md │ └── README.md ├── part-3-supplementary-information ├── README.md ├── brief-software-discussion.md ├── outdoor-considerations.md ├── notes-on-image-enhancement.md ├── notes-on-lenses.md ├── camera-interfaces.md ├── references-and-acknowledgements.md └── notes-on-latency.md ├── images ├── red.jpg ├── depth.jpg ├── webcam.jpg ├── infrared.jpg └── thermal.jpg ├── .gitbook └── assets │ ├── dslr.jpg │ ├── rgb_webcam.jpg │ ├── smartphone.jpeg │ ├── flir-thermals.png │ ├── IM0051025__44513.png │ ├── infrared_example.webp │ ├── slow-cam-inline.jpg.webp │ ├── 2020-12-22_13-30-35__2_.jpg │ └── depth-camera-invalidation-low-signal.png ├── .gitignore └── introduction ├── outline.md ├── questions-to-consider.md └── overview.md /README.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/content/toc.html: -------------------------------------------------------------------------------- 1 | {{ toc }} 2 | -------------------------------------------------------------------------------- /part-1-the-basics/README.md: -------------------------------------------------------------------------------- 1 | # Part 1 - The Basics 2 | 3 | -------------------------------------------------------------------------------- /part-2-the-exotic/README.md: -------------------------------------------------------------------------------- 1 | # Part 2 - The Exotic 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/README.md: -------------------------------------------------------------------------------- 1 | # Previous\_Versions 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-1/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-2/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-3/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-4/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-5/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-6/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-7/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-8/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-9/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /part-3-supplementary-information/README.md: -------------------------------------------------------------------------------- 1 | # Part 3 - Supplementary Information 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-10/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-11/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-12/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-13/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-14/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-15/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-16/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-17/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-18/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-19/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-20/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-21/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-22/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-23/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-24/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-25/content/README.md: -------------------------------------------------------------------------------- 1 | # content 2 | 3 | -------------------------------------------------------------------------------- /part-3-supplementary-information/brief-software-discussion.md: -------------------------------------------------------------------------------- 1 | # Brief Software Discussion 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-1/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-10/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-11/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-12/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-13/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-14/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-15/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-16/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-17/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-18/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-19/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-2/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-20/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-21/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-22/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-23/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-24/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-25/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-3/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-4/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-5/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-6/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-7/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-8/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-9/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook/README.md: -------------------------------------------------------------------------------- 1 | # Guide\_to\_Cameras\_magicbook 2 | 3 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/javascripts/scripts.js: -------------------------------------------------------------------------------- 1 | console.log("this only runs in the HTML build!"); 2 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/scripts.js: -------------------------------------------------------------------------------- 1 | console.log("this only runs in the HTML build!"); 2 | -------------------------------------------------------------------------------- /images/red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/images/red.jpg -------------------------------------------------------------------------------- /images/depth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/images/depth.jpg -------------------------------------------------------------------------------- /images/webcam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/images/webcam.jpg -------------------------------------------------------------------------------- /images/infrared.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/images/infrared.jpg -------------------------------------------------------------------------------- /images/thermal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/images/thermal.jpg -------------------------------------------------------------------------------- /part-2-the-exotic/360-cameras.md: -------------------------------------------------------------------------------- 1 | # 360 Cameras 2 | 3 | ## 360 Cameras and Filming 4 | 5 | \[WIP] https://www.insta360.com 6 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-23/content/03_06_briefsoftwarediscussion.md: -------------------------------------------------------------------------------- 1 | # Brief Software Discussion 2 | 3 | [WIP] -------------------------------------------------------------------------------- /.gitbook/assets/dslr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/.gitbook/assets/dslr.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/stylesheets/test.scss: -------------------------------------------------------------------------------- 1 | @import 'shared'; 2 | 3 | .container { 4 | max-width: 700px; 5 | margin: 0 auto; 6 | } 7 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-13/content/02_08_360cameras.md: -------------------------------------------------------------------------------- 1 | # 360 Cameras and Filming 2 | 3 | [WIP] 4 | https://www.insta360.com -------------------------------------------------------------------------------- /.gitbook/assets/rgb_webcam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/.gitbook/assets/rgb_webcam.jpg -------------------------------------------------------------------------------- /.gitbook/assets/smartphone.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/.gitbook/assets/smartphone.jpeg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/GuidetoCameras_book.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | } 6 | ], 7 | "settings": {} 8 | } -------------------------------------------------------------------------------- /.gitbook/assets/flir-thermals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/.gitbook/assets/flir-thermals.png -------------------------------------------------------------------------------- /.gitbook/assets/IM0051025__44513.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/.gitbook/assets/IM0051025__44513.png -------------------------------------------------------------------------------- /.gitbook/assets/infrared_example.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/.gitbook/assets/infrared_example.webp -------------------------------------------------------------------------------- /.gitbook/assets/slow-cam-inline.jpg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/.gitbook/assets/slow-cam-inline.jpg.webp -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/images/red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/images/red.jpg -------------------------------------------------------------------------------- /.gitbook/assets/2020-12-22_13-30-35__2_.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/.gitbook/assets/2020-12-22_13-30-35__2_.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/images/depth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/images/depth.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/images/webcam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/images/webcam.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/content/webcam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/content/webcam.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/images/FLIR0510.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/images/FLIR0510.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/images/infrared.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/images/infrared.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/images/thermal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/images/thermal.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/Roboto-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/Roboto-Bold.eot -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/Roboto-Bold.woff -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/stylesheets/html.scss: -------------------------------------------------------------------------------- 1 | @import 'shared'; 2 | 3 | .container { 4 | max-width: 700px; 5 | margin: 0 auto; 6 | padding: 50px 50px; 7 | } 8 | 9 | 10 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/red.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/red.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/CrimsonText-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/CrimsonText-Bold.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/includes/toc.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /.gitbook/assets/depth-camera-invalidation-low-signal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/.gitbook/assets/depth-camera-invalidation-low-signal.png -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/depth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/depth.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/webcam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/webcam.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/consolidated.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/consolidated.pdf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/depth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/depth.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/webcam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/webcam.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/CrimsonText-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/CrimsonText-Italic.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/CrimsonText-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/CrimsonText-Regular.eot -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/CrimsonText-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/CrimsonText-Regular.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/CrimsonText-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/CrimsonText-Regular.woff -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/CrimsonText-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/CrimsonText-SemiBold.ttf -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-19/content/03_02_outdoor_considerations.md: -------------------------------------------------------------------------------- 1 | # Outdoor considerations 2 | 3 | [WIP] 4 | 5 | Extra notes on using cameras outdoors? Link to my outdoor writeup? -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/FLIR0510.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/FLIR0510.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/infrared.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/infrared.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/thermal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/thermal.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/FLIR0510.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/FLIR0510.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/infrared.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/infrared.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/thermal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/thermal.jpg -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/CrimsonText-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/CrimsonText-BoldItalic.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/CrimsonText-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/CrimsonText-Regular.woff2 -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-22/content/03_05_notes_on_touchup.md: -------------------------------------------------------------------------------- 1 | ### Image touch-up and Noise 2 | 3 | [WIP] 4 | 5 | Low light, De-noising, upscaling and other machine learning cleanup 6 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/Roboto-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/Roboto-Bold.eot -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/Roboto-Bold.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/Roboto-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/Roboto-Bold.eot -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/Roboto-Bold.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/includes/footnotes.html: -------------------------------------------------------------------------------- 1 |
    2 | {% for footnote in footnotes %} 3 |
  1. {{ footnote.label }}
  2. 4 | {% endfor %} 5 |
6 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/Roboto-Bold.woff -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/Roboto-Bold.woff -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/fonts/CrimsonText-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/fonts/CrimsonText-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /part-3-supplementary-information/outdoor-considerations.md: -------------------------------------------------------------------------------- 1 | # Outdoor Considerations 2 | 3 | ## Outdoor considerations 4 | 5 | \[WIP] 6 | 7 | Extra notes on using cameras outdoors? Link to my outdoor writeup? 8 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Bold.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Bold.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Italic.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Italic.ttf -------------------------------------------------------------------------------- /part-3-supplementary-information/notes-on-image-enhancement.md: -------------------------------------------------------------------------------- 1 | # Notes on Image Enhancement 2 | 3 | #### Image touch-up and Noise 4 | 5 | \[WIP] 6 | 7 | Low light, De-noising, upscaling and other machine learning cleanup 8 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Regular.eot -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Regular.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Regular.woff -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-Regular.woff2 -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-SemiBold.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Regular.eot -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Regular.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Regular.woff -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-Regular.woff2 -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-SemiBold.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-BoldItalic.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-BoldItalic.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build1/assets/CrimsonText-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laserpilot/Guide_To_Cameras_Interactive_Installations/HEAD/Guide_to_Cameras_magicbook/build/build2/assets/CrimsonText-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/stylesheets/pdf.scss: -------------------------------------------------------------------------------- 1 | @import 'shared'; 2 | 3 | section[data-type="chapter"] { 4 | page-break-after: always; 5 | 6 | } 7 | 8 | nav[data-type="toc"] a[href]::after { 9 | content: " [Page " target-counter(attr(href), page) "]" 10 | } 11 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/layouts/pdf.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ config.title }} 6 | {{ javascripts }} 7 | {{ stylesheets }} 8 | 9 | 10 | {{ content }} 11 | 12 | 13 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/includes/navigation.html: -------------------------------------------------------------------------------- 1 | {% if navigation.prev %} 2 | Previous: {{navigation.prev.label}} 3 | {% endif %} 4 | 5 | {% if navigation.next %} 6 | Next: {{navigation.next.label}} 7 | {% endif %} 8 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-17/content/02_11_experimental.md: -------------------------------------------------------------------------------- 1 | # Experimental technologies 2 | 3 | Need ideas here - 4 | [Microphone Arrays as generalized cameras](https://ieeexplore.ieee.org/document/4270343) 5 | 6 | Notes about the actual physical limitations of cameras and technologies that will need to be further developed to overcome them? -------------------------------------------------------------------------------- /part-2-the-exotic/experimental-technologies.md: -------------------------------------------------------------------------------- 1 | # Experimental Technologies 2 | 3 | ## Experimental technologies 4 | 5 | Need ideas here - [Microphone Arrays as generalized cameras](https://ieeexplore.ieee.org/document/4270343) 6 | 7 | Notes about the actual physical limitations of cameras and technologies that will need to be further developed to overcome them? 8 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-9/content/02_03_multicamera.md: -------------------------------------------------------------------------------- 1 | # Multi-camera and on-board compute systems 2 | 3 | [WIP] 4 | Camera systems that may use multiple cameras or are cameras that are integrated with on-board computing power for computer vision. 5 | 6 | [Pixy](https://pixycam.com/pixy2/) 7 | [Vizy](https://www.kickstarter.com/projects/charmedlabs/vizy) -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/layouts/html.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ config.title }} 6 | {{ javascripts }} 7 | {{ stylesheets }} 8 | 9 | 10 |
11 | {{ content }} 12 | {% include navigation.html %} 13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /part-2-the-exotic/multi-camera-and-on-board-compute-systems.md: -------------------------------------------------------------------------------- 1 | # Multi-Camera and on-board compute systems 2 | 3 | ## Multi-camera and on-board compute systems 4 | 5 | \[WIP] Camera systems that may use multiple cameras or are cameras that are integrated with on-board computing power for computer vision. 6 | 7 | [Pixy](https://pixycam.com/pixy2/) 8 | 9 | [Vizy](https://www.kickstarter.com/projects/charmedlabs/vizy) 10 | -------------------------------------------------------------------------------- /part-3-supplementary-information/notes-on-lenses.md: -------------------------------------------------------------------------------- 1 | # Notes on Lenses 2 | 3 | ## Camera measurements 4 | 5 | \[WIP] 6 | 7 | Talk about the very basics of measuring a cameras field of view based on its lens. This can be good for estimating the amount of image you'll get at a given distance. 8 | 9 | #### Notes on Lenses 10 | 11 | \[WIP] 12 | 13 | Talk briefly about different lenses and mounts Microscopy? Macro? Zoom lenses 14 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-20/content/03_03_notes_on_lenses.md: -------------------------------------------------------------------------------- 1 | # Camera measurements 2 | 3 | [WIP] 4 | 5 | Talk about the very basics of measuring a cameras field of view based on its lens. This can be good for estimating the amount of image you'll get at a given distance. 6 | 7 | ### Notes on Lenses 8 | 9 | [WIP] 10 | 11 | Talk briefly about different lenses and mounts 12 | Microscopy? Macro? 13 | Zoom lenses -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/includes/toc_item.html: -------------------------------------------------------------------------------- 1 | {% for item in children %} 2 |
  • 3 | {% if item.href %} 4 | {{ item.label }} 5 | {% else %} 6 | {{ item.label }} 7 | {% endif %} 8 | {% if item.children.length > 0 %} 9 |
      10 | {% include toc_item.html children=item.children %} 11 |
    12 | {% endif %} 13 |
  • 14 | {% endfor %} 15 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-15/content/02_09_others.md: -------------------------------------------------------------------------------- 1 | # Other cameras and systems (robotic/Moving and other observational tracking devices, Security Cameras) 2 | 3 | [Freefly](https://freeflysystems.com) 4 | Full Spectrum Cameras (for UV and Infrared) 5 | "Bullet time" camera arrays (big freeze, A-1 array, other vendors, etc) 6 | [David Rokeby's "Very nervous System" ](https://www.wired.com/1995/03/rokeby/) uses an array of light sensors to trigger effects -------------------------------------------------------------------------------- /part-2-the-exotic/other-cameras-and-systems.md: -------------------------------------------------------------------------------- 1 | # Other Cameras and Systems 2 | 3 | ## Other cameras and systems (robotic/Moving and other observational tracking devices, Security Cameras) 4 | 5 | [Freefly](https://freeflysystems.com) 6 | 7 | Full Spectrum Cameras (for UV and Infrared) 8 | 9 | Robotic Cameras and Point-Tilt-Zoom/PTZ Cameras 10 | 11 | "Bullet time" camera arrays (big freeze, A-1 array, other vendors, etc) 12 | 13 | [David Rokeby's "Very nervous System" ](https://www.wired.com/1995/03/rokeby/)uses an array of light sensors to trigger effects 14 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/Notes_on_TouchUp.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 | 14 | Previous: Notes on Latency 15 | 16 | Next: Brief Software Discussion 17 |
    18 | 19 | 20 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-6/content/01_06_lidar.md: -------------------------------------------------------------------------------- 1 | # LIDAR 2 | 3 | [NEEDS IMAGE] 4 | 5 | [LiDAR Wikipedia entry](https://en.wikipedia.org/wiki/Lidar) 6 | 7 | LIDAR is a specialized imaging technique that has some similarities to the depth cameras discussed previously. LIDAR stands for Light Detection and Ranging and it has many applications in various industries, but it has caught on as a technology for interactive installations in the last decade. 8 | 9 | Suggested brands to investigate: 10 | 11 | - FARO 12 | - SICK 13 | - Hokuyo 14 | - Quanergy 15 | - LIVOX 16 | - Velodyne 17 | - Ouster OS1 / OS0 18 | - Intel L515 -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-12/content/02_06_mocapsystems.md: -------------------------------------------------------------------------------- 1 | # Motion capture and XR systems 2 | 3 | These could have their own article and I have limited experience with them, but they are worth adding to the list for completeness. Motion capture systems are primarily used to capture the movements of performers that are then mapped to the skeletons of 3D models, essentiall puppeteering them. Motion capture systems can be camera-based or non-camera-based (like a suit covered in IMU's or inertial measurement units like the [Xsens](https://www.xsens.com)). We'll just cover the basic camera-based systems here. 4 | 5 | [Stype](https://stype.tv/redspy/) 6 | 7 | [WIP] 8 | -------------------------------------------------------------------------------- /part-2-the-exotic/motion-capture-systems.md: -------------------------------------------------------------------------------- 1 | # Motion Capture Systems 2 | 3 | ## Motion capture and XR systems 4 | 5 | These could have their own article and I have limited experience with them, but they are worth adding to the list for completeness. Motion capture systems are primarily used to capture the movements of performers that are then mapped to the skeletons of 3D models, essentiall puppeteering them. Motion capture systems can be camera-based or non-camera-based (like a suit covered in IMU's or inertial measurement units like the [Xsens](https://www.xsens.com)). We'll just cover the basic camera-based systems here. 6 | 7 | [Stype](https://stype.tv/redspy/) 8 | 9 | \[WIP] 10 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/BriefSoftwareDiscussion.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Brief Software Discussion

    14 |

    [WIP]

    15 |
    16 | Previous: 17 | 18 | Next: References and Acknowledgments 19 |
    20 | 21 | 22 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-16/content/02_10_oldercameras.md: -------------------------------------------------------------------------------- 1 | # Older Camera/Video Technologies (Analog, Old RCA Cams) 2 | 3 | The use cases for older camera technologies are much more rare and may only come up on certain productions that require the analog aesthetic in a way that can't be recreated with real time visual effects. 4 | 5 | It would be a large research project to dive into all of the older technologies, but we'll just stick with some noteable ones. 6 | 7 | Old consumer video cameras and security cameras are probably the most likely candidates for use. Their resolution is fairly low 8 | 9 | The biggest advantage that analog cameras used to have over their digital counterparts is that their latency from lens to screen was much lower because there weren't added layers of digital to analog conversion. -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/cameras.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    360 Cameras and Filming

    14 |

    [WIP] 15 | https://www.insta360.com

    16 |
    17 | Previous: Volumetric Capture 18 | 19 | Next: Other cameras and systems (robotic/Moving and other observational tracking devices, Security Cameras) 20 |
    21 | 22 | 23 | -------------------------------------------------------------------------------- /part-2-the-exotic/legacy-cameras-and-technologies.md: -------------------------------------------------------------------------------- 1 | # Legacy Cameras and Technologies 2 | 3 | ## Older Camera/Video Technologies (Analog, Old RCA Cams) 4 | 5 | The use cases for older camera technologies are much more rare and may only come up on certain productions that require the analog aesthetic in a way that can't be recreated with real time visual effects. 6 | 7 | It would be a large research project to dive into all of the older technologies, but we'll just stick with some noteable ones. 8 | 9 | Old consumer video cameras and security cameras are probably the most likely candidates for use. Their resolution is fairly low 10 | 11 | The biggest advantage that analog cameras used to have over their digital counterparts is that their latency from lens to screen was much lower because there weren't added layers of digital to analog conversion. 12 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/Outdoor_Considerations.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Outdoor considerations

    14 |

    [WIP]

    15 |

    Extra notes on using cameras outdoors? Link to my outdoor writeup?

    16 |
    17 | Previous: Camera interfaces (USB 2 and 3, HDMI, NDI, IP cameras, GigE) 18 | 19 | Next: Camera measurements 20 |
    21 | 22 | 23 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-18/content/03_01_camera_interfaces.md: -------------------------------------------------------------------------------- 1 | # Camera interfaces (USB 2 and 3, HDMI, NDI, IP cameras, GigE) 2 | 3 | [WIP] 4 | 5 | [GigE Vision Wikipedia](https://en.wikipedia.org/wiki/GigE_Vision) 6 | 7 | Another important thing to keep in mind is that while many artistically geared software environments do work off-the-shelf with various cameras and input types (typically with [UVC](https://en.wikipedia.org/wiki/USB_video_device_class), more exotic cameras aren't always plug and play. Make sure you do your research before making a big purchase. If the tool doesn't exist to pull in a video feed, there are a few technologies that can route video between applications or even over the network. The most common tools are [Syphon](http://syphon.v002.info) for macOS and [Spout](https://spout.zeal.co) for Windows, but there are other options out there as well. 8 | 9 | See also: CameraLink and CoaXPress -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/Notes_on_Lenses.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Camera measurements

    14 |

    [WIP]

    15 |

    Talk about the very basics of measuring a cameras field of view based on its lens. This can be good for estimating the amount of image you'll get at a given distance.

    16 |
    17 | Previous: Outdoor considerations 18 | 19 | Next: Notes on Latency 20 |
    21 | 22 | 23 | -------------------------------------------------------------------------------- /part-1-the-basics/lidar-scanners.md: -------------------------------------------------------------------------------- 1 | # LiDAR Scanners 2 | 3 | 4 | 5 | ## LIDAR 6 | 7 |

    Example of long range LiDAR

    8 | 9 |

    Example of what many LiDAR scanners look like

    10 | 11 | [LiDAR Wikipedia entry](https://en.wikipedia.org/wiki/Lidar) 12 | 13 | 14 | 15 | LIDAR is a specialized imaging technique that has some similarities to the depth cameras discussed previously. LIDAR stands for Light Detection and Ranging and it has many applications in various industries, but it has caught on as a technology for interactive installations in the last decade. 16 | 17 | Suggested brands to investigate: 18 | 19 | * FARO 20 | * SICK 21 | * Hokuyo 22 | * Quanergy 23 | * LIVOX 24 | * Velodyne 25 | * Ouster OS1 / OS0 26 | * Intel L515 27 | -------------------------------------------------------------------------------- /part-3-supplementary-information/camera-interfaces.md: -------------------------------------------------------------------------------- 1 | # Camera Interfaces 2 | 3 | ## Camera interfaces (USB 2 and 3, HDMI, NDI, IP cameras, GigE) 4 | 5 | \[WIP] 6 | 7 | [GigE Vision Wikipedia](https://en.wikipedia.org/wiki/GigE\_Vision) 8 | 9 | Another important thing to keep in mind is that while many artistically geared software environments do work off-the-shelf with various cameras and input types (typically with [UVC](https://en.wikipedia.org/wiki/USB\_video\_device\_class), more exotic cameras aren't always plug and play. Make sure you do your research before making a big purchase. If the tool doesn't exist to pull in a video feed, there are a few technologies that can route video between applications or even over the network. The most common tools are [Syphon](http://syphon.v002.info) for macOS and [Spout](https://spout.zeal.co) for Windows, but there are other options out there as well. 10 | 11 | See also: CameraLink and CoaXPress 12 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/MultiCamera.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Multi-camera and on-board compute systems

    14 |

    [WIP] 15 | Camera systems that may use multiple cameras or are cameras that are integrated with on-board computing power for computer vision.

    16 |

    Pixy 17 | Vizy

    18 |
    19 | Previous: High End Machine Vision Cameras 20 | 21 | Next: High-speed or Slow Motion Cameras 22 |
    23 | 24 | 25 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/Experimental.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Experimental technologies

    14 |

    Need ideas here - 15 | Microphone Arrays as generalized cameras

    16 |

    Notes about the actual physical limitations of cameras and technologies that will need to be further developed to overcome them?

    17 |
    18 | Previous: Older Camera/Video Technologies (Analog, Old RCA Cams) 19 | 20 | Next: Camera interfaces (USB 2 and 3, HDMI, NDI, IP cameras, GigE) 21 |
    22 | 23 | 24 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/assets/html.css: -------------------------------------------------------------------------------- 1 | /*body { 2 | font-family: "Helvetica", "Arial", sans-serif; 3 | color: #333; 4 | }*/ 5 | @font-face { 6 | font-family: 'Roboto'; 7 | src: url('Roboto-Bold.eot'); 8 | src: url('Roboto-Bold.eot?#iefix') format("embedded-opentype"), url('Roboto-Bold.woff') format("woff"), url('Roboto-Bold.ttf') format("truetype"), url('Roboto-Bold.svg#robotobold') format("svg"); 9 | font-weight: normal; 10 | font-style: normal; } 11 | 12 | @font-face { 13 | font-family: 'Crimson'; 14 | src: url('CrimsonText-Regular.eot'); 15 | src: url('CrimsonText-Regular.eot?#iefix') format("embedded-opentype"), url('CrimsonText-Regular.woff') format("woff"), url('CrimsonText-Regular.ttf') format("truetype"), url('CrimsonText-Regular.svg#crimsontext-regular') format("svg"); 16 | font-weight: normal; 17 | font-style: normal; } 18 | 19 | h1, h2, h3, h4, h5, p, ul, li { 20 | font-family: 'Crimson'; 21 | color: #333; } 22 | 23 | img, iframe { 24 | margin: auto; 25 | display: block; } 26 | 27 | .container { 28 | max-width: 700px; 29 | margin: 0 auto; 30 | padding: 50px 50px; } 31 | -------------------------------------------------------------------------------- /part-3-supplementary-information/references-and-acknowledgements.md: -------------------------------------------------------------------------------- 1 | # References and Acknowledgements 2 | 3 | 4 | 5 | ## References and Acknowledgments 6 | 7 | [Advantage of monochrome cameras for accuracy over color images](https://maxmax.com/faq/camera-tech/debayer-study) [How to Measure the latency of your webcam with openCV](https://www.dlology.com/blog/how-to-measure-the-latency-of-a-webcam-with-opencv/) [DreamChip Cameras](https://www.atom-one.de/#atom-cameras) [Netv2 video capture and overlay device](https://www.adafruit.com/product/4248) [DepthKit](https://www.depthkit.tv) 8 | 9 | Huge thanks to [Elliot Woods](http://elliotwoods.info) for a ton of thoughtful suggestions on how to expand the guide from its 2013 version. [Kyle McDonald](http://kylemcdonald.net), [Theo Watson](http://theowatson.com/), [Zach Lieberman](http://thesystemis.com/) and [Golan Levin](http://www.flong.com/) for some great additional tips to help round out some of the suggestions here. 10 | 11 | Rough notes for for 2020 update: [GOOGLE DOC FOR CAMERAS](https://docs.google.com/spreadsheets/d/1zM1VhLzEeqW-6vP7xw6DVx-RA1b90rNA8ZxfCAxu-qw/edit#gid=0) 12 | 13 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/stylesheets/_shared.scss: -------------------------------------------------------------------------------- 1 | /*body { 2 | font-family: "Helvetica", "Arial", sans-serif; 3 | color: #333; 4 | }*/ 5 | 6 | @font-face { 7 | font-family: 'Roboto'; 8 | src: font-path('Roboto-Bold.eot'); 9 | src: font-path('Roboto-Bold.eot?#iefix') format('embedded-opentype'), 10 | font-path('Roboto-Bold.woff') format('woff'), 11 | font-path('Roboto-Bold.ttf') format('truetype'), 12 | font-path('Roboto-Bold.svg#robotobold') format('svg'); 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | 17 | @font-face { 18 | font-family: 'Crimson'; 19 | src: font-path('CrimsonText-Regular.eot'); 20 | src: font-path('CrimsonText-Regular.eot?#iefix') format('embedded-opentype'), 21 | font-path('CrimsonText-Regular.woff') format('woff'), 22 | font-path('CrimsonText-Regular.ttf') format('truetype'), 23 | font-path('CrimsonText-Regular.svg#crimsontext-regular') format('svg'); 24 | font-weight: normal; 25 | font-style: normal; 26 | } 27 | 28 | 29 | h1, h2, h3, h4, h5, p, ul, li { 30 | font-family: 'Crimson'; 31 | color: #333; 32 | } 33 | 34 | img, iframe { 35 | margin: auto; 36 | display: block; 37 | } 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ########################### 2 | # ignore generated binaries 3 | # but not the data folder 4 | ########################### 5 | 6 | */bin/* 7 | !*/bin/data/ 8 | 9 | ######### 10 | # general 11 | ######### 12 | 13 | */[Bb]uild/ 14 | */[Oo]bj/ 15 | *.o 16 | */[Dd]ebug*/ 17 | */[Rr]elease*/ 18 | *.mode* 19 | *.app/ 20 | *.pyc 21 | .svn/ 22 | *.log 23 | 24 | ######################## 25 | # IDE files which should 26 | # be ignored 27 | ######################## 28 | 29 | # XCode 30 | *.pbxuser 31 | *.perspective 32 | *.perspectivev3 33 | *.mode1v3 34 | *.mode2v3 35 | # XCode 4 36 | xcuserdata 37 | *.xcworkspace 38 | 39 | # Code::Blocks 40 | *.depend 41 | *.layout 42 | 43 | # Visual Studio 44 | *.sdf 45 | *.opensdf 46 | *.suo 47 | *.pdb 48 | *.ilk 49 | *.aps 50 | ipch/ 51 | 52 | # Eclipse 53 | .metadata 54 | local.properties 55 | .externalToolBuilders 56 | 57 | ################## 58 | # operating system 59 | ################## 60 | 61 | # Linux 62 | *~ 63 | # KDE 64 | .directory 65 | .AppleDouble 66 | 67 | # OSX 68 | .DS_Store 69 | *.swp 70 | *~.nib 71 | # Thumbnails 72 | ._* 73 | 74 | # Windows 75 | # Image file caches 76 | Thumbs.db 77 | # Folder config file 78 | Desktop.ini 79 | 80 | # Android 81 | .csettings -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build1/assets/pdf.css: -------------------------------------------------------------------------------- 1 | /*body { 2 | font-family: "Helvetica", "Arial", sans-serif; 3 | color: #333; 4 | }*/ 5 | @font-face { 6 | font-family: 'Roboto'; 7 | src: url('Roboto-Bold.eot'); 8 | src: url('Roboto-Bold.eot?#iefix') format("embedded-opentype"), url('Roboto-Bold.woff') format("woff"), url('Roboto-Bold.ttf') format("truetype"), url('Roboto-Bold.svg#robotobold') format("svg"); 9 | font-weight: normal; 10 | font-style: normal; } 11 | 12 | @font-face { 13 | font-family: 'Crimson'; 14 | src: url('CrimsonText-Regular.eot'); 15 | src: url('CrimsonText-Regular.eot?#iefix') format("embedded-opentype"), url('CrimsonText-Regular.woff') format("woff"), url('CrimsonText-Regular.ttf') format("truetype"), url('CrimsonText-Regular.svg#crimsontext-regular') format("svg"); 16 | font-weight: normal; 17 | font-style: normal; } 18 | 19 | h1, h2, h3, h4, h5, p, ul, li { 20 | font-family: 'Crimson'; 21 | color: #333; } 22 | 23 | img, iframe { 24 | margin: auto; 25 | display: block; } 26 | 27 | section[data-type="chapter"] { 28 | page-break-after: always; } 29 | 30 | nav[data-type="toc"] a[href]::after { 31 | content: " [Page " target-counter(attr(href), page) "]"; } 32 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/Others.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Other cameras and systems (robotic/Moving and other observational tracking devices, Security Cameras)

    14 |

    Freefly 15 | Full Spectrum Cameras (for UV and Infrared) 16 | "Bullet time" camera arrays (big freeze, A-1 array, other vendors, etc) 17 | David Rokeby's "Very nervous System" uses an array of light sensors to trigger effects

    18 |
    19 | Previous: 360 Cameras and Filming 20 | 21 | Next: Older Camera/Video Technologies (Analog, Old RCA Cams) 22 |
    23 | 24 | 25 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/LIDAR.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    LIDAR

    14 |

    [NEEDS IMAGE]

    15 |

    LiDAR Wikipedia entry

    16 |

    LIDAR is a specialized imaging technique that has some similarities to the depth cameras discussed previously. LIDAR stands for Light Detection and Ranging and it has many applications in various industries, but it has caught on as a technology for interactive installations in the last decade.

    17 |

    Suggested brands to investigate:

    18 | 28 |
    29 | Previous: Depth Cameras 30 | 31 | Next: Thermal Cameras 32 |
    33 | 34 | 35 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-25/content/formatreference.md: -------------------------------------------------------------------------------- 1 | # Markdown chapter 2 | 3 | This is a chapter written in markdown. 4 | 5 | ## Internal links 6 | 7 | You can link to other files simply by making an internal [link](formatreference.md#second-chapter-id). The build process will automatically search for this ID in all files, and append the filename if needed for the particular format. 8 | 9 | ## Images 10 | 11 | You can insert images simply by adding an image tag with the name of the image. This will look for an image located in `images/bruce.jpg`, but you can easily change this location if you want. 12 | 13 | ![Picture of Bruce Springsteen](../../../Guide\_to\_Cameras\_magicbook/content/bruce.jpg) 14 | 15 | ## Code examples 16 | 17 | Code examples can be written using the markdown syntax, and they will automatically be converted to HTMLBook programlistings. Here's an example of using the `console.log` function. 18 | 19 | ```js 20 | console.log("hello"); 21 | ``` 22 | 23 | ## Footnotes 24 | 25 | You can also write footnotes using the Markdown syntax^\[They are great], or the HTMLBook syntaxThey are great too. 26 | 27 | Then you use the following `footnotes` liquid tag to insert the footnote references on the page. This is often done at the bottom of the page. 28 | 29 | \{{ footnotes \}} 30 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/MoCapSystems.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Motion capture and XR systems

    14 |

    These could have their own article and I have limited experience with them, but they are worth adding to the list for completeness. Motion capture systems are primarily used to capture the movements of performers that are then mapped to the skeletons of 3D models, essentiall puppeteering them. Motion capture systems can be camera-based or non-camera-based (like a suit covered in IMU's or inertial measurement units like the Xsens). We'll just cover the basic camera-based systems here.

    15 |

    Stype

    16 |

    [WIP]

    17 |
    18 | Previous: Wireless cameras 19 | 20 | Next: Volumetric Capture 21 |
    22 | 23 | 24 | -------------------------------------------------------------------------------- /introduction/outline.md: -------------------------------------------------------------------------------- 1 | # Outline 2 | 3 | 4 | 5 | In the sections below, Part 1 covers several common camera types and their strengths and weaknesses. Following that, Part 2 will cover some less common cameras and other topics like camera systems that use hybrid approaches. Part 3 will cover some supplementary information like camera measurements, latency, and other brief software topics. Here is an outline of what we'll be covering. 6 | 7 | * **Part 0 - Questions to consider when choosing a camera** 8 | * **Part 1 - The Basics** 9 | * The Basic RGB Webcam 10 | * Other RGB Cameras 11 | * Infrared Cameras 12 | * Depth Cameras 13 | * LIDAR 14 | * **Part 2 - The Exotic** 15 | * Thermal Cameras 16 | * High-end Machine Vision Cameras 17 | * Multi-camera and on-board compute systems 18 | * High-speed or Slow Motion Cameras 19 | * Wireless Cameras 20 | * Motion Capture systems 21 | * Volumetric Capture 22 | * 360 Cameras and Filming 23 | * Other Cameras and Systems (Robotic/Moving, and other "observational tracking devices") 24 | * Older Camera/Video Technologies (Analog, Old RCA Cams) 25 | * Experimental Technologies 26 | * **Part 3 - Supplemental Information** 27 | * Camera interfaces (USB 2 and 3, HDMI, NDI, IP, GigE, etc) 28 | * Outdoor considerations 29 | * Notes on Lenses 30 | * Notes on Latency 31 | * Notes on image touch-up and noise reduction 32 | * Brief software discussions 33 | * Other References and Acknowledgments 34 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-3/content/01_03_smartphone_cameras.md: -------------------------------------------------------------------------------- 1 | # Smartphone Cameras 2 | 3 | I struggled with whether I should make smartphone cameras be their own section, or include them in the "Webcam" or "Other RGB camera" section. I think that the smartphone camera market varies so much from brand to brand that it's hard to generally cover. Additionally, each smartphone manufacturer has so much advanced image processing going on under the hood that it's almost more about the image processing than the light capture itself (one could argue that on-board image processing is also a major differentiator in the previous section as well). 4 | 5 | On top of the above, another reason I hesitated to include this section is that - for a long time I would say that smartphone cameras were not the first device you would reach for for interactive installations. The most common application of a smartphone camera prior to 2016 would have been for tablet based photobooths and similar kinds of capture "stations", but not always as a source for other more involved experiences that integrate with technologies outside of the smart device itself. 6 | 7 | One of the main reasons to include smartphone cameras as a common type now is primarily because of the massive improvements in Augmented Reality (AR) technology in the last few years. AR has a long way to go, but there are so many more AR based experiences that either loan out a device or ask a user to run an experience on their own personal device. 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/OlderCameras.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Older Camera/Video Technologies (Analog, Old RCA Cams)

    14 |

    The use cases for older camera technologies are much more rare and may only come up on certain productions that require the analog aesthetic in a way that can't be recreated with real time visual effects.

    15 |

    It would be a large research project to dive into all of the older technologies, but we'll just stick with some noteable ones.

    16 |

    Old consumer video cameras and security cameras are probably the most likely candidates for use. Their resolution is fairly low

    17 |

    The biggest advantage that analog cameras used to have over their digital counterparts is that their latency from lens to screen was much lower because there weren't added layers of digital to analog conversion.

    18 |
    19 | Previous: Other cameras and systems (robotic/Moving and other observational tracking devices, Security Cameras) 20 | 21 | Next: Experimental technologies 22 |
    23 | 24 | 25 | -------------------------------------------------------------------------------- /part-1-the-basics/smartphone-cameras.md: -------------------------------------------------------------------------------- 1 | # Smartphone Cameras 2 | 3 | ## Smartphone Cameras 4 | 5 |

    Render of an exploded view of a smartphone camera

    6 | 7 | I struggled with whether I should make smartphone cameras be their own section, or include them in the "Webcam" or "Other RGB camera" section. I think that the smartphone camera market varies so much from brand to brand that it's hard to generally cover. Additionally, each smartphone manufacturer has so much advanced image processing going on under the hood that it's almost more about the image processing than the light capture itself (one could argue that on-board image processing is also a major differentiator in the previous section as well). 8 | 9 | On top of the above, another reason I hesitated to include this section is that - for a long time I would say that smartphone cameras were not the first device you would reach for for interactive installations. The most common application of a smartphone camera prior to 2016 would have been for tablet based photobooths and similar kinds of capture "stations", but not always as a source for other more involved experiences that integrate with technologies outside of the smart device itself. 10 | 11 | One of the main reasons to include smartphone cameras as a common type now is primarily because of the massive improvements in Augmented Reality (AR) technology in the last few years. AR has a long way to go, but there are so many more AR based experiences that either loan out a device or ask a user to run an experience on their own personal device. 12 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/Camera_Interfaces.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Camera interfaces (USB 2 and 3, HDMI, NDI, IP cameras, GigE)

    14 |

    [WIP]

    15 |

    GigE Vision Wikipedia

    16 |

    Another important thing to keep in mind is that while many artistically geared software environments do work off-the-shelf with various cameras and input types (typically with UVC, more exotic cameras aren't always plug and play. Make sure you do your research before making a big purchase. If the tool doesn't exist to pull in a video feed, there are a few technologies that can route video between applications or even over the network. The most common tools are Syphon for macOS and Spout for Windows, but there are other options out there as well.

    17 |

    See also: CameraLink and CoaXPress

    18 |
    19 | Previous: Experimental technologies 20 | 21 | Next: Outdoor considerations 22 |
    23 | 24 | 25 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-8/content/02_02_machinevisioncams.md: -------------------------------------------------------------------------------- 1 | # High End Machine Vision Cameras 2 | 3 | [NEED IMAGE] 4 | 5 | These cameras are typically employed in industries like manufacturing that require a high degree of stability and performance for performing computer vision tasks. 6 | 7 | One example would be the use of cameras and specialized software to monitor a fast moving automated assembly line and using the visual data to ensure every product looks correct. They can also be employed for things like processing produce - sorting ripe tomatoes from green tomatoes at very high speeds. 8 | 9 | This area of cameras is incredibly complex and we won't go into all of the specifics here, but you should definitely be aware that these specialized systems exist. The most common ones you will probably come across have already been mentioned, like machine vision infrared or thermal cameras. most of them range from having standard interfaces like USB and GigE, to proprietary cables and PCI cards for maximum data speed and low latency. 10 | 11 | **Camera resources:** 12 | [Basler](https://www.baslerweb.com/en/products/cameras/area-scan-cameras/ace/) 13 | [e-Con Cameras](https://www.e-consystems.com) 14 | [Allied Vision](https://www.alliedvision.com/en/digital-industrial-camera-solutions.html) 15 | [Point Grey/FLIR Blackfly](https://www.flir.com/products/blackfly-s-usb3/) 16 | [OpenMV](https://openmv.io) 17 | [Elphel](https://www3.elphel.com/model_353_cameras) 18 | [IDS](https://en.ids-imaging.com/store/products/cameras/ids-interface/usb-2.0-usb-3.0/ids-family/le.html) 19 | [Imperx](https://www.imperx.com) 20 | [Teledyne](https://www.teledynedalsa.com/en/products/imaging/cameras/genie-nano-1gige/) -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-21/content/03_04_notes_on_latency.md: -------------------------------------------------------------------------------- 1 | # Notes on Latency 2 | 3 | [WIP] 4 | 5 | For the purposes of this writeup, we'll consider latency to be the delta or time between a person's action and the response or display from the software that captures their image. 6 | 7 | Most displays run at 60 frames per second, which means they are showing an image every (approximately) 16 milliseconds. When a camera is capturing an image, delay is introduced at several stages - the first and largest of importance is the camera's exposure time. Cameras need to leave their shutter open for a period of time to collect light on the sensor - the longer the shutter is open, the more light is collected. At 60fps, the ideal is a shutter speed of 1/60s, but shutter speeds can be longer to allow more light in for a darker environment. Additionally, latency can then be introduced by a camera's own buffering and processing, transmission to computer and subsequent writing to computer memory, and finally your own software's processing. 8 | 9 | Some cameras that advertise "low latency" are at around 35ms, which means in a best case scenario, you're seeing your reaction almost 2 frames after you've performed an action. 10 | 11 | Latency is especially noticable for audio applications and less so for visual. Musicians begin to have trouble with latency that is [larger than 8-12ms](https://ask.audio/articles/monitoring-latency-how-low-can-you-go). If you're planning on using a camera as a trigger for something like an interactive drumming station, you may find that the latency is unacceptable for certain kinds of playing. 12 | 13 | Here is a great Reddit thread on [computer vision latency](https://www.reddit.com/r/computervision/comments/4732ir/camera_for_realtime_image_processing/) -------------------------------------------------------------------------------- /part-2-the-exotic/high-end-machine-vision-cameras.md: -------------------------------------------------------------------------------- 1 | # High-End Machine Vision Cameras 2 | 3 | ## High End Machine Vision Cameras 4 | 5 | \[NEED IMAGE] 6 | 7 | These cameras are typically employed in industries like manufacturing that require a high degree of stability and performance for performing computer vision tasks. 8 | 9 | One example would be the use of cameras and specialized software to monitor a fast moving automated assembly line and using the visual data to ensure every product looks correct. They can also be employed for things like processing produce - sorting ripe tomatoes from green tomatoes at very high speeds. 10 | 11 | This area of cameras is incredibly complex and we won't go into all of the specifics here, but you should definitely be aware that these specialized systems exist. The most common ones you will probably come across have already been mentioned, like machine vision infrared or thermal cameras. most of them range from having standard interfaces like USB and GigE, to proprietary cables and PCI cards for maximum data speed and low latency. 12 | 13 | **Camera resources:** 14 | 15 | * [Basler](https://www.baslerweb.com/en/products/cameras/area-scan-cameras/ace/) 16 | * [e-Con Cameras](https://www.e-consystems.com) 17 | * [Allied Vision](https://www.alliedvision.com/en/digital-industrial-camera-solutions.html) 18 | * [Point Grey/FLIR Blackfly](https://www.flir.com/products/blackfly-s-usb3/) 19 | * [OpenMV](https://openmv.io) 20 | * [Elphel](https://www3.elphel.com/model\_353\_cameras) 21 | * [IDS](https://en.ids-imaging.com/store/products/cameras/ids-interface/usb-2.0-usb-3.0/ids-family/le.html) 22 | * [Imperx](https://www.imperx.com) 23 | * [Teledyne](https://www.teledynedalsa.com/en/products/imaging/cameras/genie-nano-1gige/) 24 | -------------------------------------------------------------------------------- /part-3-supplementary-information/notes-on-latency.md: -------------------------------------------------------------------------------- 1 | # Notes on Latency 2 | 3 | ## Notes on Latency 4 | 5 | \[WIP] 6 | 7 | For the purposes of this writeup, we'll consider latency to be the delta or time between a person's action and the response or display from the software that captures their image. 8 | 9 | Most displays run at 60 frames per second, which means they are showing an image every (approximately) 16 milliseconds. When a camera is capturing an image, delay is introduced at several stages - the first and largest of importance is the camera's exposure time. Cameras need to leave their shutter open for a period of time to collect light on the sensor - the longer the shutter is open, the more light is collected. At 60fps, the ideal is a shutter speed of 1/60s, but shutter speeds can be longer to allow more light in for a darker environment. Additionally, latency can then be introduced by a camera's own buffering and processing, transmission to computer and subsequent writing to computer memory, and finally your own software's processing. 10 | 11 | Some cameras that advertise "low latency" are at around 35ms, which means in a best case scenario, you're seeing your reaction almost 2 frames after you've performed an action. 12 | 13 | Latency is especially noticable for audio applications and less so for visual. Musicians begin to have trouble with latency that is [larger than 8-12ms](https://ask.audio/articles/monitoring-latency-how-low-can-you-go). If you're planning on using a camera as a trigger for something like an interactive drumming station, you may find that the latency is unacceptable for certain kinds of playing. 14 | 15 | Here is a great Reddit thread on [computer vision latency](https://www.reddit.com/r/computervision/comments/4732ir/camera\_for\_realtime\_image\_processing/) 16 | -------------------------------------------------------------------------------- /introduction/questions-to-consider.md: -------------------------------------------------------------------------------- 1 | # Questions to Consider 2 | 3 | Before we dive in, consider the following questions when considering which camera best suits your use case. You don't need an answer for everything, but having an idea for many of these will help determine the strengths and weaknesses of various technologies and help narrow down your list. 4 | 5 | * Do you even need a camera? Would another sensor work better or be more reliable? Sometimes cameras can introduce a lot of unnecessary complexity where a simple distance sensor or physical button would be simpler. 6 | * Where is the camera being set up? Does it need to be hidden? 7 | * Will the camera be outside and exposed to the elements, or in the presence of direct sunlight? 8 | * What is the lighting control like in the space? Does the space lighting change throughout the day or year? 9 | * How precise does the interactivity need to be? Are you tracking large motions or small ones? 10 | * Do you need more than one camera to cover the space? How will you combine or map the various camera images together? 11 | * How will you run a cable from the camera to your computer? Will cable length be an issue? 12 | * Is your software compatible with your choice of camera? 13 | * Does the camera have settings that you can manually control or will it adjust itself automatically? If you need to control the settings automatically, does the camera allow for that? 14 | * Do you need a high quality live feed image that the visitor will see, or can you get by with low resolution for tracking purposes? 15 | * Is there a lot of movement in the space or in the background? How will you control for that? 16 | * What is your subject? Are you tracking people or objects? Is there a controlled and defined space for interaction (i.e. a tabletop or a "stand here" floor sign), or is it more freeform? 17 | * How big is the space you're trying to track people in? Where is the "active" area? 18 | * Do you need to record audio as well? How do you plan on syncing a (potentially) separate microphone? 19 | * Do you need a variable field of view (FOV), or is a fixed image fine? If necessary, can the image be zoomed or cropped on site? 20 | * If necessary, how are you lighting the scene? What kinds of artificial lights will need to be tested and integrated into your setup? 21 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/magicbook.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Guide to Cameras for Interactive Installations", 3 | "destination": "build/:build", 4 | "files": [ 5 | "content/toc.html", 6 | { 7 | "label": "Part 0 - Intro", 8 | "files": [ 9 | "content/00_00_Introduction.md" 10 | ] 11 | }, 12 | { 13 | "label": "Part 1 - The Basics", 14 | "files": [ 15 | "content/01_01_Webcam.md", 16 | "content/01_02_Other_RGB_Cameras.md", 17 | "content/01_03_Smartphone_Cameras.md", 18 | "content/01_04_InfraredCameras.md", 19 | "content/01_05_DepthCameras.md", 20 | "content/01_06_LIDAR.md" 21 | ] 22 | }, 23 | { 24 | "label": "Part 2 - The Exotic", 25 | "files": [ 26 | "content/02_01_Thermal.md", 27 | "content/02_02_MachineVisionCams.md", 28 | "content/02_03_MultiCamera.md", 29 | "content/02_04_HighSpeed.md", 30 | "content/02_05_Wireless.md", 31 | "content/02_06_MoCapSystems.md", 32 | "content/02_07_VolumetricCapture.md", 33 | "content/02_08_360cameras.md", 34 | "content/02_09_Others.md", 35 | "content/02_10_OlderCameras.md", 36 | "content/02_11_Experimental.md" 37 | ] 38 | }, 39 | { 40 | "label": "Part 3 - Supplemental Information", 41 | "files": [ 42 | "content/03_01_Camera_Interfaces.md", 43 | "content/03_02_Outdoor_Considerations.md", 44 | "content/03_03_Notes_on_Lenses.md", 45 | "content/03_04_Notes_on_Latency.md", 46 | "content/03_05_Notes_on_TouchUp.md", 47 | "content/03_06_BriefSoftwareDiscussion.md", 48 | "content/03_07_ReferencesAndCredits.md" 49 | ] 50 | } 51 | ], 52 | "builds": [ 53 | { 54 | "format": "pdf", 55 | "layout": "layouts/pdf.html", 56 | "stylesheets": { 57 | "files": [ 58 | "stylesheets/pdf.scss" 59 | ] 60 | } 61 | }, 62 | { 63 | "format": "html", 64 | "layout": "layouts/html.html", 65 | "stylesheets": { 66 | "files": [ 67 | "stylesheets/html.scss" 68 | ] 69 | }, 70 | "javascripts": { 71 | "files": [ 72 | "javascripts/scripts.js" 73 | ] 74 | } 75 | } 76 | ] 77 | } -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-10/content/02_05_wireless.md: -------------------------------------------------------------------------------- 1 | # Wireless cameras 2 | 3 | Wireless is a bit of a misnomer since almost any camera can be made wireless these days, and obviously even smartphone cameras count as a wireless camera. These would most commonly be used on film shoots for drones or remote monitoring by a director, but there may be limited usage for certain kinds of interactive installations and events. This technology is more about the interface that sends the image signal more than the actual image capture, so there isn't a ton to cover here. 4 | 5 | There are several devices out there for connecting any camera to a wireless interface that can stream the signal to a nearby computer over wifi, or over the internet via an integrated 4G/5G interface. The primary issues that will get introduced with wireless systems are: reliability, increased latency, and signal degredation as a side effect of video compression. Also - battery life is another beast to manage. 6 | 7 | Professional Wireless camera interfaces to investigate include: 8 | - [Teradek](https://teradek.com) 9 | - [Paralinx](https://www.paralinx.net) - shares parent company and chipsets with Teradek 10 | - [Vaxis](https://vaxis.us) 11 | 12 | On the low end of cost for experimentation, smartphone cameras can be wirelessly streamed to desktop computers via various streaming apps. GoPro cameras are another classic consumer wireless camera that can be interfaced with. There are also a range of battery powered [security cameras](https://www.safewise.com/blog/best-wireless-security-cameras/) that may be the right choice depending on your application. 13 | For other resources, you can also look for devices marketed for [wirelessly sending HDMI](https://www.nytimes.com/wirecutter/reviews/the-best-wireless-hdmi-video-transmitter/) and RCA video signals instead of devices geared specifically towards making cameras wireless. 14 | 15 | Some wireless systems rely on existing wifi or other tradiitonal network infrastructure, and some generate and receive their own wireless signals. Many of them promise the ability to send signals over very long distances - like 750 to 1500ft (~230-460m) and up to [5000ft](https://teradek.com/collections/bolt-4k-max-series) (about 1.5km). I would take those distance estimate with a grain of salt as they often require line of sight and very little interference, and reliable Wifi is always a weakpoint on many productions. -------------------------------------------------------------------------------- /part-2-the-exotic/wireless-imaging-systems.md: -------------------------------------------------------------------------------- 1 | # Wireless Imaging Systems 2 | 3 | ## Wireless Imaging Systems 4 | 5 | Wireless is a bit of a misnomer since almost any camera can be made wireless these days, and obviously even smartphone cameras count as a wireless camera. These would most commonly be used on film shoots for drones or remote monitoring by a director, but there may be limited usage for certain kinds of interactive installations and events. This technology is more about the interface that sends the image signal more than the actual image capture, so there isn't a ton to cover here. 6 | 7 | There are several devices out there for connecting any camera to a wireless interface that can stream the signal to a nearby computer over wifi, or over the internet via an integrated 4G/5G interface. The primary issues that will get introduced with wireless systems are: reliability, increased latency, and signal degredation as a side effect of video compression. Also - battery life is another beast to manage. 8 | 9 | Professional Wireless camera interfaces to investigate include: 10 | 11 | * [Teradek](https://teradek.com) 12 | * [Paralinx](https://www.paralinx.net) - shares parent company and chipsets with Teradek 13 | * [Vaxis](https://vaxis.us) 14 | 15 | On the low end of cost for experimentation, smartphone cameras can be wirelessly streamed to desktop computers via various streaming apps. GoPro cameras are another classic consumer wireless camera that can be interfaced with. There are also a range of battery powered [security cameras](https://www.safewise.com/blog/best-wireless-security-cameras/) that may be the right choice depending on your application. For other resources, you can also look for devices marketed for [wirelessly sending HDMI](https://www.nytimes.com/wirecutter/reviews/the-best-wireless-hdmi-video-transmitter/) and RCA video signals instead of devices geared specifically towards making cameras wireless. 16 | 17 | Some wireless systems rely on existing wifi or other tradiitonal network infrastructure, and some generate and receive their own wireless signals. Many of them promise the ability to send signals over very long distances - like 750 to 1500ft (\~230-460m) and up to [5000ft](https://teradek.com/collections/bolt-4k-max-series) (about 1.5km). I would take those distance estimate with a grain of salt as they often require line of sight and very little interference, and reliable Wifi is always a weakpoint on many productions. 18 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/Notes_on_Latency.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Notes on Latency

    14 |

    [WIP]

    15 |

    For the purposes of this writeup, we'll consider latency to be the delta or time between a person's action and the response or display from the software that captures their image.

    16 |

    Most displays run at 60 frames per second, which means they are showing an image every (approximately) 16 milliseconds. When a camera is capturing an image, delay is introduced at several stages - the first and largest of importance is the camera's exposure time. Cameras need to leave their shutter open for a period of time to collect light on the sensor - the longer the shutter is open, the more light is collected. At 60fps, the ideal is a shutter speed of 1/60s, but shutter speeds can be longer to allow more light in for a darker environment. Additionally, latency can then be introduced by a camera's own buffering and processing, transmission to computer and subsequent writing to computer memory, and finally your own software's processing.

    17 |

    Some cameras that advertise "low latency" are at around 35ms, which means in a best case scenario, you're seeing your reaction almost 2 frames after you've performed an action.

    18 |

    Latency is especially noticable for audio applications and less so for visual. Musicians begin to have trouble with latency that is larger than 8-12ms. If you're planning on using a camera as a trigger for something like an interactive drumming station, you may find that the latency is unacceptable for certain kinds of playing.

    19 |

    Here is a great Reddit thread on computer vision latency

    20 |
    21 | Previous: Camera measurements 22 | 23 | Next: 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/MachineVisionCams.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    High End Machine Vision Cameras

    14 |

    [NEED IMAGE]

    15 |

    These cameras are typically employed in industries like manufacturing that require a high degree of stability and performance for performing computer vision tasks.

    16 |

    One example would be the use of cameras and specialized software to monitor a fast moving automated assembly line and using the visual data to ensure every product looks correct. They can also be employed for things like processing produce - sorting ripe tomatoes from green tomatoes at very high speeds.

    17 |

    This area of cameras is incredibly complex and we won't go into all of the specifics here, but you should definitely be aware that these specialized systems exist. The most common ones you will probably come across have already been mentioned, like machine vision infrared or thermal cameras. most of them range from having standard interfaces like USB and GigE, to proprietary cables and PCI cards for maximum data speed and low latency.

    18 |

    Camera resources: 19 | Basler 20 | e-Con Cameras 21 | Allied Vision 22 | Point Grey/FLIR Blackfly 23 | OpenMV 24 | Elphel 25 | IDS 26 | Imperx 27 | Teledyne

    28 |
    29 | Previous: Thermal Cameras 30 | 31 | Next: Multi-camera and on-board compute systems 32 |
    33 | 34 | 35 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-24/content/03_07_referencesandcredits.md: -------------------------------------------------------------------------------- 1 | # References and Acknowledgments 2 | 3 | [Advantage of monochrome cameras for accuracy over color images](https://maxmax.com/faq/camera-tech/debayer-study) 4 | [How to Measure the latency of your webcam with openCV](https://www.dlology.com/blog/how-to-measure-the-latency-of-a-webcam-with-opencv/) 5 | [DreamChip Cameras](https://www.atom-one.de/#atom-cameras) 6 | [Netv2 video capture and overlay device](https://www.adafruit.com/product/4248) 7 | [DepthKit](https://www.depthkit.tv) 8 | 9 | Huge thanks to [Elliot Woods](http://elliotwoods.info) for a ton of thoughtful suggestions on how to expand the guide from its 2013 version. [Kyle McDonald](http://kylemcdonald.net), [Theo Watson](http://theowatson.com/), Zach Lieberman and Golan Levin for some great additional tips to help round out some of the suggestions here. 10 | 11 | Rough notes for for 2020 update: 12 | [GOOGLE DOC FOR CAMERAS](https://docs.google.com/spreadsheets/d/1zM1VhLzEeqW-6vP7xw6DVx-RA1b90rNA8ZxfCAxu-qw/edit#gid=0) 13 | 14 | To-do for 2020 Update: 15 | 16 | - Clean up language and links 17 | - Publish a version to Medium/personal site? 18 | - Update references to various camera technologies in all categories 19 | - Reference different connection protocols now available or more common (HDMI Capture, NDI, IP Cameras, GigE) 20 | - Webcam update technologies (Logitech Brio) 21 | - Other RGB Cameras (PTZ, 4K, DSLR, Broadcast) 22 | - Major depth camera update (Kinect Azure, Orbbec, Realsense, include [Stimulant Depth camera shootout link](https://stimulant.com/depth-sensor-shootout-2/), [GigE Realsense](https://imaging.framos.com/cpc/en/d435e/?keyword=Realsense+GigE+Camera&gclid=EAIaIQobChMIsqmywIPU5wIViJOzCh2NZQYsEAAYASAAEgIg7fD_BwE) 23 | - Thermal camera update (portable cams, USB, cheaper) 24 | - High Speed cameras (Edgertronic, ix cameras, phantom) 25 | - Others? (Leap Motion, GoPro, motion capture systems, things like Blacktrak(https://blacktrax.cast-soft.com) ), other things to consider as cameras or "observational tracking devices" 26 | - Older camera technologies (DVCam, RCA/Analog, "Analog" capture devices, etc) 27 | - Experimental 28 | - Maybe more general tips outside of specific camera technologies? Suggestions below from Elliot 29 | - Monochrome advantages 30 | - USB3 vs GigE 31 | - Lenses 32 | - Noise and Noise reduction 33 | - Machine learning touchup (upscaling, noise reduction, low light) 34 | - Using a smartphone camera (pros, cons, intgerated sensor data and intrinsics) 35 | - High end machine vision cams -------------------------------------------------------------------------------- /part-2-the-exotic/volumetric-capture.md: -------------------------------------------------------------------------------- 1 | # Volumetric Capture 2 | 3 | ## Volumetric Capture 4 | 5 | Volumetric capture is another specialized approach that is very similar to motion capture systems, and the two are often used in tandem, particularly for modern cinematic video game animations. In its simplest form, volumetric capture is really a hybrid image capture approach that uses a regular camera matched with a depth camera, often in large 360º arrays of both, that allows the creation of 3D content. The more general term for volumetric capture is [photogrammetry](https://en.wikipedia.org/wiki/Photogrammetry). There are also systems that just use large arrays of regular cameras instead of matching them with depth cameras. "Portrait" mode on modern smartphones is also a form of volumetric capture that combines two photos from two different lenses. 6 | 7 | Most of these professional systems require dozens of precisely cameras and an array of computers to ingest the massive amounts of data coming in. This data is then processed and turned into point clouds or meshes that can then be viewed in 3D rendering software or game engines. As of this writing, there are several systems and vendors out there that can achieve volumetric capture. Building a high quality full 360º system yourself would take considerable planning and budget. 8 | 9 | [Depthkit](https://www.depthkit.tv) is probably the most well known and accessible system for doing volumetric filmmaking. Depthkit, at its most basic, involves mounting a DSLR and a depth sensing camera together and doing some pre-alignment steps with their software system. As you capture both depth and color information, software is able to combine those two feeds into 3D content. Depthkit can be used by a wider group of people due to the lower barrier of entry on equipment and setup. The main trade offs are that the most common setup usually involves a single camera which means you typically get a limited amount of 3D information from the front surface of whatever you're filming. 10 | 11 | Larger "volcap" systems involve whole studios (although there are some systems that can be moved around). [Microsoft's Mixed Reality Capture Studio](https://www.microsoft.com/en-us/mixed-reality/capture-studios) is one example of the high end of these sorts of offerings. One version of their system uses 106 cameras to capture. 12 | 13 | Mention Volucams (https://twitter.com/BenSchwartzXR/status/1311704650475884545) 14 | 15 | [Volucam](http://www.ioindustries.com/volucam.html) 16 | 17 | Re-lighting, scene size limitations, complex scene limitations, movement limitations, bandwidth of final assets (mesh+color data per frame) 18 | 19 | \[WIP] 20 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-14/content/02_07_volumetriccapture.md: -------------------------------------------------------------------------------- 1 | # Volumetric Capture 2 | 3 | Volumetric capture is another specialized approach that is very similar to motion capture systems, and the two are often used in tandem, particularly for modern cinematic video game animations. In its simplest form, volumetric capture is really a hybrid image capture approach that uses a regular camera matched with a depth camera, often in large 360º arrays of both, that allows the creation of 3D content. The more general term for volumetric capture is [photogrammetry](https://en.wikipedia.org/wiki/Photogrammetry). There are also systems that just use large arrays of regular cameras instead of matching them with depth cameras. "Portrait" mode on modern smartphones is also a form of volumetric capture that combines two photos from two different lenses. 4 | 5 | Most of these professional systems require dozens of precisely cameras and an array of computers to ingest the massive amounts of data coming in. This data is then processed and turned into point clouds or meshes that can then be viewed in 3D rendering software or game engines. As of this writing, there are several systems and vendors out there that can achieve volumetric capture. Building a high quality full 360º system yourself would take considerable planning and budget. 6 | 7 | [Depthkit](https://www.depthkit.tv) is probably the most well known and accessible system for doing volumetric filmmaking. Depthkit, at its most basic, involves mounting a DSLR and a depth sensing camera together and doing some pre-alignment steps with their software system. As you capture both depth and color information, software is able to combine those two feeds into 3D content. Depthkit can be used by a wider group of people due to the lower barrier of entry on equipment and setup. The main trade offs are that the most common setup usually involves a single camera which means you typically get a limited amount of 3D information from the front surface of whatever you're filming. 8 | 9 | Larger "volcap" systems involve whole studios (although there are some systems that can be moved around). [Microsoft's Mixed Reality Capture Studio](https://www.microsoft.com/en-us/mixed-reality/capture-studios) is one example of the high end of these sorts of offerings. One version of their system uses 106 cameras to capture. 10 | 11 | Mention Volucams (https://twitter.com/BenSchwartzXR/status/1311704650475884545) 12 | 13 | [Volucam](http://www.ioindustries.com/volucam.html) 14 | 15 | Re-lighting, scene size limitations, complex scene limitations, movement limitations, bandwidth of final assets (mesh+color data per frame) 16 | 17 | [WIP] -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/Wireless.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Wireless cameras

    14 |

    Wireless is a bit of a misnomer since almost any camera can be made wireless these days, and obviously even smartphone cameras count as a wireless camera. These would most commonly be used on film shoots for drones or remote monitoring by a director, but there may be limited usage for certain kinds of interactive installations and events. This technology is more about the interface that sends the image signal more than the actual image capture, so there isn't a ton to cover here.

    15 |

    There are several devices out there for connecting any camera to a wireless interface that can stream the signal to a nearby computer over wifi, or over the internet via an integrated 4G/5G interface. The primary issues that will get introduced with wireless systems are: reliability, increased latency, and signal degredation as a side effect of video compression. Also - battery life is another beast to manage.

    16 |

    Professional Wireless camera interfaces to investigate include:

    17 | 22 |

    On the low end of cost for experimentation, smartphone cameras can be wirelessly streamed to desktop computers via various streaming apps. GoPro cameras are another classic consumer wireless camera that can be interfaced with. There are also a range of battery powered security cameras that may be the right choice depending on your application. 23 | For other resources, you can also look for devices marketed for wirelessly sending HDMI and RCA video signals instead of devices geared specifically towards making cameras wireless.

    24 |

    Some wireless systems rely on existing wifi or other tradiitonal network infrastructure, and some generate and receive their own wireless signals. Many of them promise the ability to send signals over very long distances - like 750 to 1500ft (~230-460m) and up to 5000ft (about 1.5km). I would take those distance estimate with a grain of salt as they often require line of sight and very little interference, and reliable Wifi is always a weakpoint on many productions.

    25 |
    26 | Previous: High-speed or Slow Motion Cameras 27 | 28 | Next: Motion capture and XR systems 29 |
    30 | 31 | 32 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/VolumetricCapture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Volumetric Capture

    14 |

    Volumetric capture is another specialized approach that is very similar to motion capture systems, and the two are often used in tandem, particularly for modern cinematic video game animations. In its simplest form, volumetric capture is really a hybrid image capture approach that uses a regular camera matched with a depth camera, often in large 360º arrays of both, that allows the creation of 3D content. The more general term for volumetric capture is photogrammetry. There are also systems that just use large arrays of regular cameras instead of matching them with depth cameras. "Portrait" mode on modern smartphones is also a form of volumetric capture that combines two photos from two different lenses.

    15 |

    Most of these professional systems require dozens of precisely cameras and an array of computers to ingest the massive amounts of data coming in. This data is then processed and turned into point clouds or meshes that can then be viewed in 3D rendering software or game engines. As of this writing, there are several systems and vendors out there that can achieve volumetric capture. Building a high quality full 360º system yourself would take considerable planning and budget.

    16 |

    Depthkit is probably the most well known and accessible system for doing volumetric filmmaking. Depthkit, at its most basic, involves mounting a DSLR and a depth sensing camera together and doing some pre-alignment steps with their software system. As you capture both depth and color information, software is able to combine those two feeds into 3D content. Depthkit can be used by a wider group of people due to the lower barrier of entry on equipment and setup. The main trade offs are that the most common setup usually involves a single camera which means you typically get a limited amount of 3D information from the front surface of whatever you're filming.

    17 |

    Larger "volcap" systems involve whole studios (although there are some systems that can be moved around). Microsoft's Mixed Reality Capture Studio is one example of the high end of these sorts of offerings. One version of their system uses 106 cameras to capture.

    18 |

    Mention Volucams (https://twitter.com/BenSchwartzXR/status/1311704650475884545)

    19 |

    Volucam

    20 |

    Re-lighting, scene size limitations, complex scene limitations, movement limitations, bandwidth of final assets (mesh+color data per frame)

    21 |

    [WIP]

    22 |
    23 | Previous: Motion capture and XR systems 24 | 25 | Next: 360 Cameras and Filming 26 |
    27 | 28 | 29 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/ReferencesAndCredits.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    References and Acknowledgments

    14 |

    Advantage of monochrome cameras for accuracy over color images 15 | How to Measure the latency of your webcam with openCV 16 | DreamChip Cameras 17 | Netv2 video capture and overlay device 18 | DepthKit

    19 |

    Huge thanks to Elliot Woods for a ton of thoughtful suggestions on how to expand the guide from its 2013 version. Kyle McDonald, Theo Watson, Zach Lieberman and Golan Levin for some great additional tips to help round out some of the suggestions here.

    20 |

    Rough notes for for 2020 update: 21 | GOOGLE DOC FOR CAMERAS

    22 |

    To-do for 2020 Update:

    23 | 45 |
    46 | Previous: Brief Software Discussion 47 | 48 |
    49 | 50 | 51 | -------------------------------------------------------------------------------- /part-2-the-exotic/thermal-cameras.md: -------------------------------------------------------------------------------- 1 | # Thermal Cameras 2 | 3 | ## Thermal Cameras 4 | 5 |

    Various form factors of thermal cameras

    6 | 7 | [http://en.wikipedia.org/wiki/Thermographic\_camera](http://en.wikipedia.org/wiki/Thermographic\_camera) 8 | 9 | These cameras are comparatively rare to see in use in interactive installations because they are still prohibitively expensive compared to most other ones. They aren't totally unobtainable ( roughly 1000-20000USD) but that higher price tag makes them a little less desirable for early exploration on projects. It's a shame because these cameras offer a lot of abilities that just aren't possible with the other kinds of cameras. 10 | 11 | There are various types of cameras to look at in this class, mostly pertaining to which part of the IR spectrum you're trying to see. You have the option of Long Wave IR, Mid Wave IR, and Short Wave IR. For thermal imaging, you'll mostly want to work with Long Wave IR, in the 7000-14000nm range. 12 | 13 | I have not personally used one of these cameras yet, but they have some properties that would be really amazing in the tool belt of people making interactive installations. 14 | 15 | Check out this guy doing some random demos with a thermal camera: 16 | 17 | **Connection types:** Most are made to be integrated into existing systems and either have proprietary connections or just output composite video. [Some cameras communicate X/Y position of blobs.](http://www.thermitrack.com) 18 | 19 | **Resolution range:** Some are very low resolution (the Thermitrack is 16 x 16px) and some are close to a VGA range, but don't expect to find HD thermal for cheap. You also get a variety of frame rates and contrast ranges. 20 | 21 | **Thermal Camera Pros:** 22 | 23 | * Normal visible light doesn't have much of an effect on a thermal camera. 24 | * Good for tracking a large area like a stage. 25 | * Gives you the ability to more definitely identify people because of their heat signature...whereas other objects and materials may not show up at all if they are warmer. 26 | * Fairly robust for daytime to night time interaction because people will be the same temperature and appear in the proper dynamic range. 27 | * Give you the ability to track invisible phenomena like hot air from breath, or residual heat from something like a hand leaving a warm mark on a surface, or a cold blast of water hitting a warm surface. 28 | * Can see through certain materials and walls. 29 | * Thermal cameras can see through certain kinds of clothing. 30 | 31 | **Thermal Camera Cons:** 32 | 33 | * As these are occasionally considered military grade equipment, there may be export restrictions, so be wary when planning on traveling abroad. 34 | * Expensive 35 | * Difficult to integrate - require either custom electronics or capture hardware 36 | * Thermal cameras can see through certain kinds of clothing. 37 | * Not all lights are invisible to thermal cameras...if it's producing heat or radiating it, the camera will see it. 38 | * Thermal imaging sometimes results in ghosting of movement due to the sensor method. 39 | * They are unable to see through windows/glass because the range of radiation ends up being reflected before it transmits through the glass to the camera. [See here for a more involved explanation of why](http://answers.yahoo.com/question/index?qid=20081001100003AAH2Ouo). 40 | * Certain hot materials may result in unforeseen difficulties with using thermal imaging in certain environments. Requires a different type of thinking in order to anticipate things that will be overly hot or cold in the space of the installation. 41 | 42 | **Further reading:** 43 | 44 | [People counters (wiki)](http://en.wikipedia.org/wiki/People\_counter)" 45 | 46 | [Thermitrack](http://www.dbpharrison.com/tag/thermitrack/) 47 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-7/content/02_01_thermal.md: -------------------------------------------------------------------------------- 1 | # Thermal Cameras 2 | 3 | ![thermalimage](../../../Guide\_to\_Cameras\_magicbook/content/thermal.jpg) 4 | 5 | ([image source](http://www.humintell.com/2011/09/truthfulness-detection/thermal/)) 6 | 7 | [http://en.wikipedia.org/wiki/Thermographic\_camera](http://en.wikipedia.org/wiki/Thermographic\_camera) 8 | 9 | These cameras are comparatively rare to see in use in interactive installations because they are still prohibitively expensive compared to most other ones. They aren't totally unobtainable ( roughly 1000-20000USD) but that higher price tag makes them a little less desirable for early exploration on projects. It's a shame because these cameras offer a lot of abilities that just aren't possible with the other kinds of cameras. 10 | 11 | There are various types of cameras to look at in this class, mostly pertaining to which part of the IR spectrum you're trying to see. You have the option of Long Wave IR, Mid Wave IR, and Short Wave IR. For thermal imaging, you'll mostly want to work with Long Wave IR, in the 7000-14000nm range. 12 | 13 | I have not personally used one of these cameras yet, but they have some properties that would be really amazing in the tool belt of people making interactive installations. 14 | 15 | Check out this guy doing some random demos with a thermal camera: 16 | 17 | **Connection types:** Most are made to be integrated into existing systems and either have proprietary connections or just output composite video. [Some cameras communicate X/Y position of blobs.](http://www.thermitrack.com/) 18 | 19 | **Resolution range:** Some are very low resolution (the Thermitrack is 16 x 16px) and some are close to a VGA range, but don't expect to find HD thermal for cheap. You also get a variety of frame rates and contrast ranges. 20 | 21 | **Thermal Camera Pros:** 22 | 23 | * Normal visible light doesn't have much of an effect on a thermal camera. 24 | * Good for tracking a large area like a stage. 25 | * Gives you the ability to more definitely identify people because of their heat signature...whereas other objects and materials may not show up at all if they are warmer. 26 | * Fairly robust for daytime to night time interaction because people will be the same temperature and appear in the proper dynamic range. 27 | * Give you the ability to track invisible phenomena like hot air from breath, or residual heat from something like a hand leaving a warm mark on a surface, or a cold blast of water hitting a warm surface. 28 | * Can see through certain materials and walls. 29 | * Thermal cameras can see through certain kinds of clothing. 30 | 31 | **Thermal Camera Cons:** 32 | 33 | * As these are occasionally considered military grade equipment, there may be export restrictions, so be wary when planning on traveling abroad. 34 | * Expensive 35 | * Difficult to integrate - require either custom electronics or capture hardware 36 | * Thermal cameras can see through certain kinds of clothing. 37 | * Not all lights are invisible to thermal cameras...if it's producing heat or radiating it, the camera will see it. 38 | * Thermal imaging sometimes results in ghosting of movement due to the sensor method. 39 | * They are unable to see through windows/glass because the range of radiation ends up being reflected before it transmits through the glass to the camera. [See here for a more involved explanation of why](http://answers.yahoo.com/question/index?qid=20081001100003AAH2Ouo). 40 | * Certain hot materials may result in unforeseen difficulties with using thermal imaging in certain environments. Requires a different type of thinking in order to anticipate things that will be overly hot or cold in the space of the installation. 41 | 42 | **Further reading:** 43 | 44 | [People counters (wiki)](http://en.wikipedia.org/wiki/People\_counter)" 45 | 46 | [Thermitrack](http://www.dbpharrison.com/tag/thermitrack/) 47 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-2/content/01_02_other_rgb_cameras.md: -------------------------------------------------------------------------------- 1 | # Other RGB cameras 2 | 3 | ![otherrgb](../../../Guide\_to\_Cameras\_magicbook/content/red.jpg) 4 | 5 | [Image source](http://www.brainfarmcinema.com/red.aspx) 6 | 7 | \[EDIT IN PROGRESS] 8 | 9 | Webcams can only go so far in terms of quality and other features, so in this section we'll cover other types of RGB cameras. Choosing something in this realm usually means you need something with higher image quality, or lower latency, or higher resolution, or some other custom need. To put a finer point on it, I'm bucketing these types of cameras into this section: 10 | 11 | * DSLR Cameras 12 | * High and low end video cameras used for professional filming applications 13 | * Other basic cameras that can output over HDMI 14 | 15 | Besides the increased price, the primary barrier to entry with these cameras is that they aren't as easy to plug in via USB and start working directly with the image, as with UVC webcams. Many cameras in this space either need a special driver or SDK that must be integrated into your software project. Cameras that don't have that option will typically output over some form of standard video cable like HDMI or SDI. HDMI and SDI can then be captured by specialized capture devices that can either be a specialized PCI capture card installed in a desktop, or they can connect over USB. 16 | 17 | One of the most common ones types for interactive installations is the [DSLR](https://en.wikipedia.org/wiki/Digital\_single-lens\_reflex\_camera), usually chosen for its improved image quality over a standard webcam. DSLR's have become much easier to integrate over the last few years, but they still have some challenges depending on the particular model. 18 | 19 | Capturing with a DSLR all day would be great because you'll get the best image for the price range, but those cameras are not always designed to be left on for extended durations. DSLR's can easily suffer from heating issues or auto-shutoff if left on for too long. A more robust production camera or a solid DV Cam is more ideal for long running installations that require a really good image (and can't use a webcam for whatever reason), but make sure to do a lengthy test run before installing. Note: if tested and implemented with care, some DSLR's can perform just fine for long installation runs (one person has mentioned one running for 6 months at 7 hours a day with no issues). 20 | 21 | DSLR's may need their SDK and some software massaging to work correctly in your environment, although some offer hit or miss HDMI output that would require a capture card. Canon's EDSDK for example has been [ported](https://github.com/kylemcdonald/ofxEdsdk) to openFrameworks for easy access, and [Magic Lantern Firmware.](../../../Guide\_to\_Cameras\_magicbook/content/http:/blairneal.com/blog/canon2syphon-v1-0%3E%3C/a%3ECanon2Syphon%3C/a%3E%20will%20let%20you%20access%20the%20camera%20feed%20in%20other%20video%20apps%20via%20Syphon.%20You%20can%20also%20play%20with%20custom%20firmware%20for%20Canon%20to%20expose%20additional%20features%20with%20the%20%3Ca%20href=) 22 | 23 | Other high end cameras also enjoy the benefits of working with cables that were designed with long cable runs in mind. Webcams over really long (10m/30ft+) USB cables can cause jitter or some other funky consistency issues, so again...test before installing whenever possible. Production quality cameras can work over HD-SDI for fairly long runs (around 200-500ft depending on who you ask), but for the really far stuff, you're best either going over a network if you don't mind latency, or going over fiber with a converter box. Fiber will get you considerably further, more than 2500ft if you need it. You'll also need a capture card for some of these, occasionally requiring a tower instead of a laptop. Adding length in almost any case is going to add to the potential for problems, so if it is something going over 200 or more feet, try to check your whole chain first. 24 | 25 | You're sometimes limited by the capture device and its support on your intended system. Some capture devices need special drivers or other magical mysticism to work within your intended environment, so be warned before going down this path...save your receipts. 26 | 27 | **Further Reading:** 28 | 29 | [Frieder Weiss's writeup on using digital versus analog cameras and the latency issues involved](http://frieder-weiss.de/eyecon/equipment.html) - 2008) 30 | -------------------------------------------------------------------------------- /introduction/overview.md: -------------------------------------------------------------------------------- 1 | # Overview 2 | 3 | ### 4 | 5 | ## Guide to Cameras for Interactive Installations 6 | 7 | Original Text by [Blair Neal](http://blairneal.com/) in 2013 with major update in 2023 (update in progress) 8 | 9 | *** 10 | 11 | To-do for 2020 Update: 12 | 13 | * Clean up language and links 14 | * Publish a version to Medium/personal site? 15 | * Update references to various camera technologies in all categories 16 | * Reference different connection protocols now available or more common (HDMI Capture, NDI, IP Cameras, GigE) 17 | * Webcam update technologies (Logitech Brio) 18 | * Other RGB Cameras (PTZ, 4K, DSLR, Broadcast) 19 | * Major depth camera update (Kinect Azure, Orbbec, Realsense, include [Stimulant Depth camera shootout link](https://stimulant.com/depth-sensor-shootout-2/), [GigE Realsense](https://imaging.framos.com/cpc/en/d435e/?keyword=Realsense+GigE+Camera\&gclid=EAIaIQobChMIsqmywIPU5wIViJOzCh2NZQYsEAAYASAAEgIg7fD\_BwE) 20 | * Thermal camera update (portable cams, USB, cheaper) 21 | * High Speed cameras (Edgertronic, ix cameras, phantom) 22 | * Others? (Leap Motion, GoPro, motion capture systems, things like Blacktrak(https://blacktrax.cast-soft.com) ), other things to consider as cameras or "observational tracking devices" 23 | * Older camera technologies (DVCam, RCA/Analog, "Analog" capture devices, etc) 24 | * Experimental 25 | * Maybe more general tips outside of specific camera technologies? Suggestions below from Elliot 26 | * Monochrome advantages 27 | * USB3 vs GigE 28 | * Lenses 29 | * Noise and Noise reduction 30 | * Machine learning touchup (upscaling, noise reduction, low light) 31 | * Using a smartphone camera (pros, cons, intgerated sensor data and intrinsics) 32 | * High end machine vision cams 33 | 34 | ### **Preface:** 35 | 36 | I published this guide in 2013 on [Creative Applications](http://creativeapplications.net/) and moved it to Github in 2016. I don't think the Kinect 2 was even out at the time of the original, and many other cameras have since come and gone. Camera technologies have obviously changed a lot in the 7 years since I published, so it is certainly time for a major update. The 2013 version is being kept in the repository for historical reference. 37 | 38 | Major changes to this since 2013 are that a lot of technologies have come out, HDMI capture is a lot easier and cheaper than it was in 2013, and Machine Vision algorithms have been able to accomplish things with object and body recognition that didn't even seem casually possible 7 years ago. I'm also covering a slightly broader set of cameras than I did in 2013 for further completeness. 39 | 40 | *** 41 | 42 | ### **Introduction** 43 | 44 | Cameras are one of the most commonly used sensors for interactive installations. They are useful for a wide range of interactions - motion detection, motion visualization, image detection, video and still recording, and more advanced feature and object detection, just to name a few possible applications. Essentially every creative technology coding framework has the ability to take in a basic camera feed and many beginner examples use a laptop's build-in webcams as their input source. The camera's traits of accessibility, portability, and ubiquity make them an ideal sensor for both early prototypes and advanced applications. 45 | 46 | As of this writing, I haven't found a comprehensive guide that covers all of the different types of image and light sensors, especially from the lens of interactive installations. Choosing the right type of camera for your interactive installation is one of the most important technical choices you can make in the initial planning phases of your project. You can always correct for certain things in software, but your hardware and camera choices are the first line of defense against undesired behavior. To be clear, I'm not intending to point out the ideal make and model of a particular camera that everyone should use - as we'll explore in the following chapters, there is absolutely not a one-size-fits-all solution when it comes to cameras. The choice depends on what you want to use it for. 47 | 48 | As I've researched, I've found that drawing a line at what I'm defining as a "camera" is a bit challenging. There is a huge range of options available for observational tracking and light detection. In general for this writeup, we can think of a camera as an electronic device with a sensor that is capable of detecting different wavelengths of light that have been focused by a lens - but even that definition gets stretched in a few spots. In case you're curious for more detail - [Here](https://ciechanow.ski/cameras-and-lenses/) is a great guide by Bartosz Ciechanowski on the different physics involved in cameras and lenses. 49 | 50 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-11/content/02_04_highspeed.md: -------------------------------------------------------------------------------- 1 | # High-speed or Slow Motion Cameras 2 | 3 | [NEEDS IMAGE] 4 | 5 | [High-speed Cameras](https://en.wikipedia.org/wiki/High-speed_camera) are a special class of cameras that can capture 250 frames per second or higher, even up to 250,000fps to several million fps in some cases. If the high-end machine vision cameras above are for real-time processing, I'm thinking of high-speed cameras more for offline recording and viewing - a slightly different workflow. High-speed cameras are fairly uncommon in interactive installations because the (current) limitations of physics mean you can't watch reality in real time and slow motion reality at the same time. Years ago, getting cameras that could capture higher than 60fps were fairly specialized and uncommon, especially for the consumer market. Now almost every flagship smartphone can record 120-240fps and sometimes even higher in burst modes. Some standard webcams can also get up to 120fps. The primary market for professional high speed cameras is for industrial purposes, like the high end machine vision cameras covered above, or for the film industry. Since these applications are fairly niche and low demand, these cameras tend to be incredibly expensive - ranging from around $500USD on the low end to $30,000USD to $50k+ on the high end. 6 | 7 | High-speed cameras typically work by continuously recording a circular buffer of frames into specialized on-board memory. When the camera receives a trigger to begin recording, that circular buffer is dumped and encoded into a regular video file that can then be downloaded off the camera or played back directly on the device. Depending on the resolution, frame rate and compression type, these files can be quite large, and can take time to download off the camera to process with software. 8 | 9 | Another noteable thing to know about high-speed cameras is their light requirements. Because of the incredibly fast shutter speed, High-speed cameras require a lot more light than a traditional video camera. A traditional camera may only need to capture a frame every 1/60th of a second, while a high speed camera needs to capture a frame every 1/1000th of a second, causing a drastic reduction in the amount of photons hitting the image sensor. Filming outside in direct sunlight is usually the best option, but if you need to capture indoors you will need to use the correct type of light. Incandescent lights, flourescent lights, and other older styles of lights tend to not work for high speed because they actually flicker at a rate faster than the naked eye can see (typically at the 60hz of a standard AC power source). Using an incandescent light source with a high speed camera will often reveal the light dimming and brightening instead of staying steady. For high speed cameras, very large lights that can't cool down quickly enough to flicker or LED light sources for film production tend to be preferred. As usual, do your research on the light since not everything is created equal. [Here](https://www.lovehighspeed.com/lighting-for-high-speed/) is another source on lighting for high-speed filming. 10 | 11 | Since high-speed cameras are really just great at pushing a lot of data through very quickly, youll find your tradeoff is usually between the desired resolution and your desired framerate. You can achieve very high framerates but at very low resolutions. These low resolution + high FPS videos can be useful for scientific work (like analyzing ballistics, for example) but not so much for providing a high quality clip for a user. 12 | 13 | Noteable high speed camera manufacturers are [Phantom cameras from Vision Research](https://www.phantomhighspeed.com), [Photron cameras](https://photron.com), and [iX cameras](https://www.ix-cameras.com), but their cameras can typically cost more than most interactive installation budgets can manage. Rental is often an option as well. The main issue you may run into with these cameras is actually interfacing with them. Because of their high cost and low usage in the interactive space, there often isnt a lot of prior knowledge out there about working with them and you need to have a camera before you can get documentation about their API's and such. Around 2014, [Edgertronic](https://edgertronic.com) entered the high-speed scene with their more affordable high-speed cameras. Edgertronic cameras are basically a specialized FPGA with a Linux computer for additional processing and control. I used several of these on an installation in 2014 for capturing footage of participants at 720p and 400fps and they performed fairly well and were easy to interface with via standard http requests and a browser interface. Several models have come out since then with various improvements. Most other cameras out there also interface via a network connection to some proprietary control software. 14 | 15 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/Thermal.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Thermal Cameras

    14 |

    thermalimage

    15 |

    (image source)

    16 |

    http://en.wikipedia.org/wiki/Thermographic_camera

    17 |

    These cameras are comparatively rare to see in use in interactive installations because they are still prohibitively expensive compared to most other ones. They aren't totally unobtainable ( roughly 1000-20000USD) but that higher price tag makes them a little less desirable for early exploration on projects. It's a shame because these cameras offer a lot of abilities that just aren't possible with the other kinds of cameras.

    18 |

    There are various types of cameras to look at in this class, mostly pertaining to which part of the IR spectrum you're trying to see. You have the option of Long Wave IR, Mid Wave IR, and Short Wave IR. For thermal imaging, you'll mostly want to work with Long Wave IR, in the 7000-14000nm range.

    19 |

    I have not personally used one of these cameras yet, but they have some properties that would be really amazing in the tool belt of people making interactive installations.

    20 |

    Check out this guy doing some random demos with a thermal camera:

    21 | 22 |

    Connection types: Most are made to be integrated into existing systems and either have proprietary connections or just output composite video. Some cameras communicate X/Y position of blobs.

    23 |

    Resolution range: Some are very low resolution (the Thermitrack is 16 x 16px) and some are close to a VGA range, but don't expect to find HD thermal for cheap. You also get a variety of frame rates and contrast ranges.

    24 |

    Thermal Camera Pros:

    25 | 34 |

    Thermal Camera Cons:

    35 | 45 |

    Further reading:

    46 |

    People counters (wiki)"

    47 |

    Thermitrack

    48 |
    49 | Previous: LIDAR 50 | 51 | Next: High End Machine Vision Cameras 52 |
    53 | 54 | 55 | -------------------------------------------------------------------------------- /part-2-the-exotic/high-speed-or-slow-motion-cameras.md: -------------------------------------------------------------------------------- 1 | # High-Speed or Slow Motion Cameras 2 | 3 | ## High-speed or Slow Motion Cameras 4 | 5 |

    Example of a high speed camera from Phantom Imaging

    6 | 7 | [High-speed Cameras](https://en.wikipedia.org/wiki/High-speed\_camera) are a special class of cameras that can capture 250 frames per second or higher, even up to 250,000fps to several million fps in some cases. If the high-end machine vision cameras above are for real-time processing, I'm thinking of high-speed cameras more for offline recording and viewing - a slightly different workflow. High-speed cameras are fairly uncommon in interactive installations because the (current) limitations of physics mean you can't watch reality in real time and slow motion reality at the same time. Years ago, getting cameras that could capture higher than 60fps were fairly specialized and uncommon, especially for the consumer market. Now almost every flagship smartphone can record 120-240fps and sometimes even higher in burst modes. Some standard webcams can also get up to 120fps. The primary market for professional high speed cameras is for industrial purposes, like the high end machine vision cameras covered above, or for the film industry. Since these applications are fairly niche and low demand, these cameras tend to be incredibly expensive - ranging from around $500USD on the low end to $30,000USD to $50k+ on the high end. 8 | 9 | High-speed cameras typically work by continuously recording a circular buffer of frames into specialized on-board memory. When the camera receives a trigger to begin recording, that circular buffer is dumped and encoded into a regular video file that can then be downloaded off the camera or played back directly on the device. Depending on the resolution, frame rate and compression type, these files can be quite large, and can take time to download off the camera to process with software. 10 | 11 | Another noteable thing to know about high-speed cameras is their light requirements. Because of the incredibly fast shutter speed, High-speed cameras require a lot more light than a traditional video camera. A traditional camera may only need to capture a frame every 1/60th of a second, while a high speed camera needs to capture a frame every 1/1000th of a second, causing a drastic reduction in the amount of photons hitting the image sensor. Filming outside in direct sunlight is usually the best option, but if you need to capture indoors you will need to use the correct type of light. Incandescent lights, flourescent lights, and other older styles of lights tend to not work for high speed because they actually flicker at a rate faster than the naked eye can see (typically at the 60hz of a standard AC power source). Using an incandescent light source with a high speed camera will often reveal the light dimming and brightening instead of staying steady. For high speed cameras, very large lights that can't cool down quickly enough to flicker or LED light sources for film production tend to be preferred. As usual, do your research on the light since not everything is created equal. [Here](https://www.lovehighspeed.com/lighting-for-high-speed/) is another source on lighting for high-speed filming. 12 | 13 | Since high-speed cameras are really just great at pushing a lot of data through very quickly, youll find your tradeoff is usually between the desired resolution and your desired framerate. You can achieve very high framerates but at very low resolutions. These low resolution + high FPS videos can be useful for scientific work (like analyzing ballistics, for example) but not so much for providing a high quality clip for a user. 14 | 15 | Noteable high speed camera manufacturers are [Phantom cameras from Vision Research](https://www.phantomhighspeed.com), [Photron cameras](https://photron.com), and [iX cameras](https://www.ix-cameras.com), but their cameras can typically cost more than most interactive installation budgets can manage. Rental is often an option as well. The main issue you may run into with these cameras is actually interfacing with them. Because of their high cost and low usage in the interactive space, there often isnt a lot of prior knowledge out there about working with them and you need to have a camera before you can get documentation about their API's and such. Around 2014, [Edgertronic](https://edgertronic.com) entered the high-speed scene with their more affordable high-speed cameras. Edgertronic cameras are basically a specialized FPGA with a Linux computer for additional processing and control. I used several of these on an installation in 2014 for capturing footage of participants at 720p and 400fps and they performed fairly well and were easy to interface with via standard http requests and a browser interface. Several models have come out since then with various improvements. Most other cameras out there also interface via a network connection to some proprietary control software. 16 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/Other_RGB_Cameras.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Other RGB cameras

    14 |

    otherrgb

    15 |

    Image source

    16 |

    [EDIT IN PROGRESS]

    17 |

    Webcams can only go so far in terms of quality and other features, so in this section we'll cover other types of RGB cameras. Choosing something in this realm usually means you need something with higher image quality, or lower latency, or higher resolution, or some other custom need. To put a finer point on it, I'm bucketing these types of cameras into this section:

    18 | 23 |

    Besides the increased price, the primary barrier to entry with these cameras is that they aren't as easy to plug in via USB and start working directly with the image, as with UVC webcams. Many cameras in this space either need a special driver or SDK that must be integrated into your software project. Cameras that don't have that option will typically output over some form of standard video cable like HDMI or SDI. HDMI and SDI can then be captured by specialized capture devices that can either be a specialized PCI capture card installed in a desktop, or they can connect over USB.

    24 |

    One of the most common ones types for interactive installations is the DSLR, usually chosen for its improved image quality over a standard webcam. DSLR's have become much easier to integrate over the last few years, but they still have some challenges depending on the particular model.

    25 |

    Capturing with a DSLR all day would be great because you'll get the best image for the price range, but those cameras are not always designed to be left on for extended durations. DSLR's can easily suffer from heating issues or auto-shutoff if left on for too long. A more robust production camera or a solid DV Cam is more ideal for long running installations that require a really good image (and can't use a webcam for whatever reason), but make sure to do a lengthy test run before installing. Note: if tested and implemented with care, some DSLR's can perform just fine for long installation runs (one person has mentioned one running for 6 months at 7 hours a day with no issues).

    26 |

    DSLR's may need their SDK and some software massaging to work correctly in your environment, although some offer hit or miss HDMI output that would require a capture card. Canon's EDSDK for example has been ported to openFrameworks for easy access, and Magic Lantern Firmware.

    27 |

    Other high end cameras also enjoy the benefits of working with cables that were designed with long cable runs in mind. Webcams over really long (10m/30ft+) USB cables can cause jitter or some other funky consistency issues, so again...test before installing whenever possible. Production quality cameras can work over HD-SDI for fairly long runs (around 200-500ft depending on who you ask), but for the really far stuff, you're best either going over a network if you don't mind latency, or going over fiber with a converter box. Fiber will get you considerably further, more than 2500ft if you need it. You'll also need a capture card for some of these, occasionally requiring a tower instead of a laptop. Adding length in almost any case is going to add to the potential for problems, so if it is something going over 200 or more feet, try to check your whole chain first.

    28 |

    You're sometimes limited by the capture device and its support on your intended system. Some capture devices need special drivers or other magical mysticism to work within your intended environment, so be warned before going down this path...save your receipts.

    29 |

    Further Reading:

    30 |

    Frieder Weiss's writeup on using digital versus analog cameras and the latency issues involved - 2008)

    31 |
    32 | Previous: The Basic Webcam 33 | 34 | Next: Smartphone Cameras 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/toc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 | 121 | 122 | 123 | 124 | Next: Guide to Cameras for Interactive Installations 125 |
    126 | 127 | 128 | -------------------------------------------------------------------------------- /part-1-the-basics/other-rgb-cameras.md: -------------------------------------------------------------------------------- 1 | # Other RGB Cameras 2 | 3 | ## Other RGB cameras 4 | 5 |

    Example of a DSLR camera

    6 | 7 | \[EDIT IN PROGRESS] 8 | 9 | Webcams can only go so far in terms of quality and other features, so in this section we'll cover other types of RGB cameras. Choosing something in this realm usually means you need something with higher image quality, or lower latency, or higher resolution, or some other custom need. To put a finer point on it, I'm bucketing these types of cameras into this section: 10 | 11 | * DSLR Cameras 12 | * Mirrorless Cameras 13 | * High and low end video cameras used for professional filming applications (ie camcorders, etc) 14 | * Other basic cameras that can output over HDMI (action cameras like GoPro will be covered elsewhere) 15 | 16 | Besides the increased price, the primary barrier to entry with these cameras is that they aren't as easy to plug in via USB and start working directly with the image, as with UVC webcams. Many cameras in this space either need a special driver or SDK that must be integrated into your software project. Cameras that don't have that option will typically output over some form of standard video cable like HDMI or SDI. HDMI and SDI can then be captured by specialized capture devices that can either be a specialized PCI capture card installed in a desktop, or they can connect over USB. 17 | 18 | One of the most common ones types for interactive installations is the [DSLR](https://en.wikipedia.org/wiki/Digital\_single-lens\_reflex\_camera), usually chosen for its improved image quality over a standard webcam. DSLR's have become much easier to integrate over the last few years, but they still have some challenges depending on the particular model - those issues tend to be around connectivity and 24/7 reliability. 19 | 20 | As for connectivity and control, many DSLR's have USB connections that allow for direct control via various methods. Most cameras require interfacing via their own custom SDK. For example, Canon has its own EDSDK that has been integrated into a few creative code environments in the past. Nikon and other manufacturers also have their own SDK's, but it may take some significant research on the best ways to integrate them into your software environment of choice. On top of capturing the image, many SDK's also allow you the ability to control the DSLR's settings via software. Direct control of exposure, white balance and other elements can be super important, depending on your application. 21 | 22 | If USB isn't a suitable solution for capturing the image, or you don't need to have manual control over the camera's settings, the next option is usually to connect HDMI cables (usually micro or mini HDMI) to the cameras and then connect an HDMI capture device to your computer. Capture devices are covered in their own section later on, but I'll mention them briefly here. Typically a capture device connects to a computer over USB or some other high speed connection, or as a PCI capture card. They can range in price from [$20USD](https://www.amazon.com/Camcorder-Computer-Streaming-Broadcasting-Conference/dp/B08NYHLVX1/ref=asc\_df\_B08NYHLVX1/?tag=hyprod-20\&linkCode=df0\&hvadid=475750632217\&hvpos=\&hvnetw=g\&hvrand=12954617241411875882\&hvpone=\&hvptwo=\&hvqmt=\&hvdev=c\&hvdvcmdl=\&hvlocint=\&hvlocphy=9004351\&hvtargid=pla-1089390210901\&psc=1) to thousands of dollars depending on your need. 23 | 24 | DSLR's are great for their image quality, but they were designed to be carried around and used intermittently. As such, they can occaisonally have heat or auto-shutoff issues when left on for extended periods. There are more cameras out there that have less issues with this these days, but 24/7 reliability is not an often published specification. 25 | 26 | (Move this to the capture device section?) Other high end cameras also enjoy the benefits of working with cables that were designed with long cable runs in mind. Webcams over really long (10m/30ft+) USB cables can cause jitter or some other funky consistency issues, so again...test before installing whenever possible. Production quality cameras can work over HD-SDI for fairly long runs (around 200-500ft depending on who you ask), but for the really far stuff, you're best either going over a network if you don't mind latency, or going over fiber with a converter box. Fiber will get you considerably further, more than 2500ft if you need it. You'll also need a capture card for some of these, occasionally requiring a tower instead of a laptop. Adding length in almost any case is going to add to the potential for problems, so if it is something going over 200 or more feet, try to check your whole chain first. 27 | 28 | You're sometimes limited by the capture device and its support on your intended system. Some capture devices need special drivers or other magical mysticism to work within your intended environment, so be warned before going down this path...save your receipts. 29 | 30 | **Further Reading:** 31 | 32 | [Frieder Weiss's writeup on using digital versus analog cameras and the latency issues involved](http://frieder-weiss.de/eyecon/equipment.html) - 2008) 33 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/HighSpeed.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    High-speed or Slow Motion Cameras

    14 |

    [NEEDS IMAGE]

    15 |

    High-speed Cameras are a special class of cameras that can capture 250 frames per second or higher, even up to 250,000fps to several million fps in some cases. If the high-end machine vision cameras above are for real-time processing, I'm thinking of high-speed cameras more for offline recording and viewing - a slightly different workflow. High-speed cameras are fairly uncommon in interactive installations because the (current) limitations of physics mean you can't watch reality in real time and slow motion reality at the same time. Years ago, getting cameras that could capture higher than 60fps were fairly specialized and uncommon, especially for the consumer market. Now almost every flagship smartphone can record 120-240fps and sometimes even higher in burst modes. Some standard webcams can also get up to 120fps. The primary market for professional high speed cameras is for industrial purposes, like the high end machine vision cameras covered above, or for the film industry. Since these applications are fairly niche and low demand, these cameras tend to be incredibly expensive - ranging from around $500USD on the low end to $30,000USD to $50k+ on the high end.

    16 |

    High-speed cameras typically work by continuously recording a circular buffer of frames into specialized on-board memory. When the camera receives a trigger to begin recording, that circular buffer is dumped and encoded into a regular video file that can then be downloaded off the camera or played back directly on the device. Depending on the resolution, frame rate and compression type, these files can be quite large, and can take time to download off the camera to process with software.

    17 |

    Another noteable thing to know about high-speed cameras is their light requirements. Because of the incredibly fast shutter speed, High-speed cameras require a lot more light than a traditional video camera. A traditional camera may only need to capture a frame every 1/60th of a second, while a high speed camera needs to capture a frame every 1/1000th of a second, causing a drastic reduction in the amount of photons hitting the image sensor. Filming outside in direct sunlight is usually the best option, but if you need to capture indoors you will need to use the correct type of light. Incandescent lights, flourescent lights, and other older styles of lights tend to not work for high speed because they actually flicker at a rate faster than the naked eye can see (typically at the 60hz of a standard AC power source). Using an incandescent light source with a high speed camera will often reveal the light dimming and brightening instead of staying steady. For high speed cameras, very large lights that can't cool down quickly enough to flicker or LED light sources for film production tend to be preferred. As usual, do your research on the light since not everything is created equal. Here is another source on lighting for high-speed filming.

    18 |

    Since high-speed cameras are really just great at pushing a lot of data through very quickly, youll find your tradeoff is usually between the desired resolution and your desired framerate. You can achieve very high framerates but at very low resolutions. These low resolution + high FPS videos can be useful for scientific work (like analyzing ballistics, for example) but not so much for providing a high quality clip for a user.

    19 |

    Noteable high speed camera manufacturers are Phantom cameras from Vision Research, Photron cameras, and iX cameras, but their cameras can typically cost more than most interactive installation budgets can manage. Rental is often an option as well. The main issue you may run into with these cameras is actually interfacing with them. Because of their high cost and low usage in the interactive space, there often isnt a lot of prior knowledge out there about working with them and you need to have a camera before you can get documentation about their API's and such. Around 2014, Edgertronic entered the high-speed scene with their more affordable high-speed cameras. Edgertronic cameras are basically a specialized FPGA with a Linux computer for additional processing and control. I used several of these on an installation in 2014 for capturing footage of participants at 720p and 400fps and they performed fairly well and were easy to interface with via standard http requests and a browser interface. Several models have come out since then with various improvements. Most other cameras out there also interface via a network connection to some proprietary control software.

    20 |
    21 | Previous: Multi-camera and on-board compute systems 22 | 23 | Next: Wireless cameras 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /part-1-the-basics/infrared-cameras.md: -------------------------------------------------------------------------------- 1 | # Infrared Cameras 2 | 3 | ## Infrared Cameras 4 | 5 |

    Example of what footage looks like when captured by an infrared camera

    6 | 7 | Infrared cameras have historically been one of the most important tools for artists working with interactive installations. In earlier years, an abundance of installations were set up in dark spaces for either aesthetic reasons or due to the technological limitations of display technology - aka dim projectors. In recent years, as installations move into well lit spaces and tracking algorithms improve, infrared camera relevance has started to shift. However, they still have some unique capabilities that come in handy for certain types of installations. 8 | 9 | As a quick primer, visible light goes from 400-700nm, but certain cameras have the ability to see infrared light from 700-900nm. This allows you to capture things that are not visible to the human eye, like IR tracking lights or a dark space illuminated by infrared light. Most cameras that aren't marketed as exclusively IR capable have infrared filters that block IR light, but in some cases, that filter can be manually removed. In order to limit a camera's ability to only see in infrared light, some may need filters that block all visible light - more info on that [here](http://www.flong.com/blog/2010/a-brief-note-on-infrared-filters-87-vs-87c/) 10 | 11 | There isn't a specific go-to camera for infrared these days. You can modify certain RGB cameras by removing their infrared filter..................\[WIP] 12 | 13 | For the next level up, the other common one is the [Point Grey Firefly](http://www.ptgrey.com/products/fireflymv/fireflymv\_usb\_firewire\_cmos\_camera.asp). One tip for this one is to go ahead and buy only the monochrome version of this camera, as the color version has the additional color filter layers that can impact image quality and response. I stick with the firewire version of this camera for the bandwidth, but that can limit you on cable length (you can really only get firewire out about 10-15ft without using a repeater or amplifer, so keep that in mind when building equipment lists). The Firefly will also take a range of lenses that give you an insanely large aperture of around 1.4-1.2f and will be able to give you a much brighter image than a standard webcam. You WILL need a visible light filter for the Firefly to only get IR bands though. See Golan Levin's article on [choosing the right IR filter for your application](http://www.flong.com/blog/2010/a-brief-note-on-infrared-filters-87-vs-87c/). In addition to the Point Grey, you can check out these cameras from [Imaging Source](http://www.theimagingsource.com/en\_US/products/cameras/). 14 | 15 | **Connection Types:** USB 2 (Playstation Eye or another webcam - modified), USB 3 (Point Grey Flea 3), Kinect's IR cam, Composite/Firewire (old Sonycam's with night vision) 16 | 17 | **Resolution Range:** You can generally get the same resolutions in IR that you can in regular webcams. There are plenty of tutorials out there for modifying standard webcams to only process IR light. 18 | 19 | \*\*Range of effectiveness:\*\*Generally the same as a webcam (1ft-50ft or .3-16m). Some IR cams like the Point Grey have a wider range of security camera lenses for various zoom ranges if you need to do tracking from far away. 20 | 21 | **Infrared Pros:** 22 | 23 | * They cannot see images that are projected or on a screen (some can see content on screens...depends on screen type). IR and projection are a really nice interactive match, but you tend to need a dark space to pull these off. Are you also tired of being relegated to a dark windowless room with these tools? 24 | * Can be used in dark spaces when used with IR emitters. 25 | * Since they can see what the human eye can't, they are most useful for hiding certain elements like lights used for tracking points or illuminating a space. 26 | * Tracking a point of IR light is an incredibly effective and robust tracking method because you can have a bright point of light that is invisible to the human eye. 27 | * Good for tracking a large area like a stage flooded with IR. 28 | 29 | **Infrared Cons:** 30 | 31 | * Monochrome 32 | * They require a healthy source of infrared light. Don't assume the lights inside will provide the type of light these cameras need to see effectively. You may need IR emitters to properly illuminate the space. People wont be able to see the extra light, but the camera will. 33 | * Sensitive to sunlight and certain stage lights. Some stage lights will be bright enough to throw off tracking on an IR camera because the range of the light and camera overlap enough. There may be problems that the camera can see that you might not have seen with your eyes, so it can be useful to know the complete light profile of a room or to just go there with a camera beforehand. 34 | * Certain clothes and materials look different in IR than in visible light. Can have weird effects sometimes. 35 | 36 | **Optimal environment for round the clock reliability** 37 | 38 | Room with a steady amount of IR light, either artificial or coming from a point source. Undesired sunlight can blow out an IR cam if the aperture isn't set right or if it doesn't have an automatic adjustment. 39 | 40 | **Troublesome environments** 41 | 42 | A dark room with insufficient IR light. A lot of normal light bulbs will still show up in IR even if they don't put out enough light to illuminate the IR spectrum, so keep an eye out for those in the background as pesky tracking distractions. 43 | 44 | **Further Reading for IR cams** 45 | 46 | [Frieder Weiss's writeup on IR cameras and equipment](http://frieder-weiss.de/eyecon/infrared.html) -2008 47 | 48 | **Other IR camera suggestions:** Cheap Infrared CCTV cams work well, but you'll need a capture device Sony CCTV cam good in low light (needs light filter) The Sony M183 or M383 are classic low latency cams used for IR sensing, but are now discontinued, but check eBay. 49 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-4/content/01_04_infraredcameras.md: -------------------------------------------------------------------------------- 1 | # Infrared Cameras 2 | 3 | ![infraredimage](../../../Guide\_to\_Cameras\_magicbook/content/infrared.jpg) 4 | 5 | Infrared cameras have historically been one of the most important tools for artists working with interactive installations. In earlier years, an abundance of installations were set up in dark spaces for either aesthetic reasons or due to the technological limitations of display technology - aka dim projectors. In recent years, as installations move into well lit spaces and tracking algorithms improve, infrared camera relevance has started to shift. However, they still have some unique capabilities that come in handy for certain types of installations. 6 | 7 | As a quick primer, visible light goes from 400-700nm, but certain cameras have the ability to see infrared light from 700-900nm. This allows you to capture things that are not visible to the human eye, like IR tracking lights or a dark space illuminated by infrared light. Most cameras that aren't marketed as exclusively IR capable have infrared filters that block IR light, but in some cases, that filter can be manually removed. In order to limit a camera's ability to only see in infrared light, some may need filters that block all visible light - more info on that [here](http://www.flong.com/blog/2010/a-brief-note-on-infrared-filters-87-vs-87c/) 8 | 9 | There isn't a specific go-to camera for infrared these days. You can modify certain RGB cameras by removing their infrared filter..................\[WIP] 10 | 11 | For the next level up, the other common one is the [Point Grey Firefly](http://www.ptgrey.com/products/fireflymv/fireflymv\_usb\_firewire\_cmos\_camera.asp). One tip for this one is to go ahead and buy only the monochrome version of this camera, as the color version has the additional color filter layers that can impact image quality and response. I stick with the firewire version of this camera for the bandwidth, but that can limit you on cable length (you can really only get firewire out about 10-15ft without using a repeater or amplifer, so keep that in mind when building equipment lists). The Firefly will also take a range of lenses that give you an insanely large aperture of around 1.4-1.2f and will be able to give you a much brighter image than a standard webcam. You WILL need a visible light filter for the Firefly to only get IR bands though. See Golan Levin's article on [choosing the right IR filter for your application](http://www.flong.com/blog/2010/a-brief-note-on-infrared-filters-87-vs-87c/). In addition to the Point Grey, you can check out these cameras from [Imaging Source](http://www.theimagingsource.com/en\_US/products/cameras/). 12 | 13 | **Connection Types:** USB 2 (Playstation Eye or another webcam - modified), USB 3 (Point Grey Flea 3), Kinect's IR cam, Composite/Firewire (old Sonycam's with night vision) 14 | 15 | **Resolution Range:** You can generally get the same resolutions in IR that you can in regular webcams. There are plenty of tutorials out there for modifying standard webcams to only process IR light. 16 | 17 | \*\*Range of effectiveness:\*\*Generally the same as a webcam (1ft-50ft or .3-16m). Some IR cams like the Point Grey have a wider range of security camera lenses for various zoom ranges if you need to do tracking from far away. 18 | 19 | **Infrared Pros:** 20 | 21 | * They cannot see images that are projected or on a screen (some can see content on screens...depends on screen type). IR and projection are a really nice interactive match, but you tend to need a dark space to pull these off. Are you also tired of being relegated to a dark windowless room with these tools? 22 | * Can be used in dark spaces when used with IR emitters. 23 | * Since they can see what the human eye can't, they are most useful for hiding certain elements like lights used for tracking points or illuminating a space. 24 | * Tracking a point of IR light is an incredibly effective and robust tracking method because you can have a bright point of light that is invisible to the human eye. 25 | * Good for tracking a large area like a stage flooded with IR. 26 | 27 | **Infrared Cons:** 28 | 29 | * Monochrome 30 | * They require a healthy source of infrared light. Don't assume the lights inside will provide the type of light these cameras need to see effectively. You may need IR emitters to properly illuminate the space. People wont be able to see the extra light, but the camera will. 31 | * Sensitive to sunlight and certain stage lights. Some stage lights will be bright enough to throw off tracking on an IR camera because the range of the light and camera overlap enough. There may be problems that the camera can see that you might not have seen with your eyes, so it can be useful to know the complete light profile of a room or to just go there with a camera beforehand. 32 | * Certain clothes and materials look different in IR than in visible light. Can have weird effects sometimes. 33 | 34 | **Optimal environment for round the clock reliability** 35 | 36 | Room with a steady amount of IR light, either artificial or coming from a point source. Undesired sunlight can blow out an IR cam if the aperture isn't set right or if it doesn't have an automatic adjustment. 37 | 38 | **Troublesome environments** 39 | 40 | A dark room with insufficient IR light. A lot of normal light bulbs will still show up in IR even if they don't put out enough light to illuminate the IR spectrum, so keep an eye out for those in the background as pesky tracking distractions. 41 | 42 | **Further Reading for IR cams** 43 | 44 | [Frieder Weiss's writeup on IR cameras and equipment](http://frieder-weiss.de/eyecon/infrared.html) -2008 45 | 46 | **Other IR camera suggestions:** Cheap Infrared CCTV cams work well, but you'll need a capture device [Sony CCTV cam good in low light (needs light filter)](../../../Guide\_to\_Cameras\_magicbook/content/http:/www.supercircuits.com/security-cameras/2-megapixel-hdcctv-box-security-camera-hdmi-blk-hdc20%3EFull%20HD%20over%20HD-SDI%20or%20HDMI%20\(needs%20filter!\)%3C/a%3E%3Cbr%20/%3E%20%3Ca%20href=/) The Sony M183 or M383 are classic low latency cams used for IR sensing, but are now discontinued, but check eBay. 47 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-5/content/01_05_depthcameras.md: -------------------------------------------------------------------------------- 1 | # Depth Cameras 2 | 3 | ![depthimage](../../../Guide\_to\_Cameras\_magicbook/content/depth.jpg) 4 | 5 | ([image source](http://web.mit.edu/newsoffice/2011/lidar-3d-camera-cellphones-0105.html)) 6 | 7 | In a way, these are an offshoot of the IR camera category but they involve some form of infrared light projection that gets reassembled as a depth image using a variety of techniques like time-of-flight (TOF) or structured light. These two detection methods are pretty different and have their own pros and cons, in terms of potential speed: [read about their differences here](http://www.computervisiononline.com/books/computer-vision/time-flight-cameras). 8 | 9 | The information that comes back in a depth image is much richer than the usual "2D" image captured by the cameras above, and it gives you the ability to more easily and robustly detect things like hands and fingers. Tracking those features would be difficult and require very controlled conditions with just a monochrome 2D image. The depth information makes it easier for you to detect the difference between a person and the background, and therefore assign more meaningful information to the human trying to interact. This is why it is easier for the Kinect to give you a person's skeletal information, something that would be difficult for just a regular 2D IR image. 10 | 11 | There are also other methods of obtaining the same information with a high framerate webcam and a projector (structured light). Another method called [LIDAR](http://en.wikipedia.org/wiki/LIDAR) scanning uses lasers and a method of measuring the reflected light to construct a high resolution depth image. LIDAR is usually more effective than other methods at measuring an incredibly large area or the front of a building (for quickly getting a 3D model of the facade for a projection mapping surface). 12 | 13 | **Connection types:** Primarily USB2 ([Kinect](http://www.amazon.co.uk/dp/B0036DDW2G/?tag=creativenet-21),[ Asus Xtion](http://www.amazon.co.uk/dp/B005UHB8EK/?tag=creativenet-21), [Panasonic D-Imager](http://www2.panasonic.biz/es/densetsu/device/3DImageSensor/en/index.html), [Intel/Creative Time of Flight cams](http://click.intel.com/intelsdk/Creative\_Interactive\_Gesture\_Camera\_Developer\_Kit-P2061.aspx)), other interfaces in more research oriented/industrial cameras. 14 | 15 | **Resolution Range:** This mostly tends to top out around 320x240 @30fps for the more consumer level cameras, mostly for TOF. TOF cameras use different sensors than standard CMOS cams which impacts their speed and resolution. The Kinect is faster and higher resolution because they just use a standard IR cam. Check the individual camera for it's maximum resolution. 16 | 17 | **Range of effectiveness:** Typically less than 10-15ft (3-5m) for many popular cameras. Very close range (<1ft/30cm) often requires a device particularly suited for close range tracking. 18 | 19 | **Depth Camera Pros:** 20 | 21 | * Depth images give you the option of great background subtraction for tracking people and object because you can effectively ignore things after a certain depth range 22 | * Machine Vision algorithms for depth images can easily give you additional information like hand skeleton, body skeleton, and shape normals. Some software sllows you to build up a reusable 3D Model of a space or object by moving the camera around it. You can also do decent body and facial motion capture for use in 3D rendering programs. 23 | * Just like infrared cameras, Depth cameras aren't effected by light from projectors and screens if you're working with something where a tracking algorithm could get confused by the images that people are interacting with. This is a big reason why they are favorites for simple touch applications with screens. 24 | 25 | **Depth Camera Cons:** 26 | 27 | * Compatibility/Interoperability: There are many, many camera options out there and many have different ways of actually communicating with your software. Some of the more popular options have well maintained libraries for many creative coding frameworks, but more specialized depth cameras may have you making your own bridges to work with them. 28 | * Fixed lensing - pretty much all of these cameras, aside from the Azure Kinect, have fixed lenses which means you won't be able to change their field of view. 29 | * Resolution and framerate limitations - this is greatly improved since a few years ago, but you often still aren't getting anything like a 4K60fps depth or RGB image. 30 | * Due to the reliance on IR, these cameras will often be sensitive to changes in sunlight and only certain ones may be acceptable for 24/7 outdoor use (even behind a window). 31 | * Subject outlines can be a bit rough depending on your camera, however they have improved dramatically in recent years and there are several algorithms for keeping a cleaner edge. 32 | * Very close range applications may need additional testing, espeically if your subject is within a few inches or centimeters from the lens 33 | * Certain surfaces will interfere with the ability to produce a good depth image. For many cameras, shiny surfaces be invisible or cause strange reflection artifacts in your image. Additionally, some fabrics have unusual behaviors in their absorbtion of light 34 | * Using multiple systems together occasionally requires special consideration, particularly with structured light systems. 35 | * Many cameras have limitations for how far they can generate depth images, and many common ones really only work out to about 10-15ft/3-5m. There are certainly exceptions, but be wary of looking at a manufacturer's specification for maximum depth range as they are often a bit oversold. 36 | 37 | **Depth Cameras to consider and further reading** 38 | 39 | * [Intel Realsense](https://www.intelrealsense.com/compare-depth-cameras/) 40 | * [Microsoft Azure Kinect](https://docs.microsoft.com/en-us/azure/Kinect-dk/hardware-specification) - this is Microsoft's latest version of the Kinect from 2019. It has many improvements over the originals and is much more geared towards developers and integration instead of gaming and the Xbox. It features two different lens options for a wide field of view, and it can capture a 1024x1024 resolution depth image. 41 | * Microsoft Kinect V2. You are no longer able to purchase these new, so I don't suggest them for long term installations. However, they do have a lot of software options out there from years ago and are great for quick demos. 42 | * [2015 Academic paper comparing Depth Cameras](https://www.ocularrobotics.com/wp-content/uploads/2015/12/MMT2015\_MMT2015\_61.pdf) 43 | * [Stimulant's Depth Camera Shootout from 2016](https://stimulant.com/depth-sensor-shootout-2/) 44 | -------------------------------------------------------------------------------- /part-1-the-basics/depth-cameras.md: -------------------------------------------------------------------------------- 1 | # Depth Cameras 2 | 3 | 4 | 5 | ## Depth Cameras 6 | 7 |

    Example of depth map and infrared capture from an Azure Kinect

    8 | 9 | In a way, these are an offshoot of the IR camera category but they involve some form of infrared light projection that gets reassembled as a depth image using a variety of techniques like time-of-flight (TOF) or structured light. These two detection methods are pretty different and have their own pros and cons, in terms of potential speed: [read about their differences here](http://www.computervisiononline.com/books/computer-vision/time-flight-cameras). 10 | 11 | The information that comes back in a depth image is much richer than the usual "2D" image captured by the cameras above, and it gives you the ability to more easily and robustly detect things like hands and fingers. Tracking those features would be difficult and require very controlled conditions with just a monochrome 2D image. The depth information makes it easier for you to detect the difference between a person and the background, and therefore assign more meaningful information to the human trying to interact. This is why it is easier for the Kinect to give you a person's skeletal information, something that would be difficult for just a regular 2D IR image. 12 | 13 | There are also other methods of obtaining the same information with a high framerate webcam and a projector (structured light). Another method called [LIDAR](http://en.wikipedia.org/wiki/LIDAR) scanning uses lasers and a method of measuring the reflected light to construct a high resolution depth image. LIDAR is usually more effective than other methods at measuring an incredibly large area or the front of a building (for quickly getting a 3D model of the facade for a projection mapping surface). 14 | 15 | **Connection types:** Primarily USB2 ([Kinect](http://www.amazon.co.uk/dp/B0036DDW2G/?tag=creativenet-21),[ Asus Xtion](http://www.amazon.co.uk/dp/B005UHB8EK/?tag=creativenet-21), [Panasonic D-Imager](http://www2.panasonic.biz/es/densetsu/device/3DImageSensor/en/index.html), [Intel/Creative Time of Flight cams](http://click.intel.com/intelsdk/Creative\_Interactive\_Gesture\_Camera\_Developer\_Kit-P2061.aspx)), other interfaces in more research oriented/industrial cameras. 16 | 17 | **Resolution Range:** This mostly tends to top out around 320x240 @30fps for the more consumer level cameras, mostly for TOF. TOF cameras use different sensors than standard CMOS cams which impacts their speed and resolution. The Kinect is faster and higher resolution because they just use a standard IR cam. Check the individual camera for it's maximum resolution. 18 | 19 | **Range of effectiveness:** Typically less than 10-15ft (3-5m) for many popular cameras. Very close range (<1ft/30cm) often requires a device particularly suited for close range tracking. 20 | 21 | **Depth Camera Pros:** 22 | 23 | * Depth images give you the option of great background subtraction for tracking people and object because you can effectively ignore things after a certain depth range 24 | * Machine Vision algorithms for depth images can easily give you additional information like hand skeleton, body skeleton, and shape normals. Some software sllows you to build up a reusable 3D Model of a space or object by moving the camera around it. You can also do decent body and facial motion capture for use in 3D rendering programs. 25 | * Just like infrared cameras, Depth cameras aren't effected by light from projectors and screens if you're working with something where a tracking algorithm could get confused by the images that people are interacting with. This is a big reason why they are favorites for simple touch applications with screens. 26 | 27 | **Depth Camera Cons:** 28 | 29 | * Compatibility/Interoperability: There are many, many camera options out there and many have different ways of actually communicating with your software. Some of the more popular options have well maintained libraries for many creative coding frameworks, but more specialized depth cameras may have you making your own bridges to work with them. 30 | * Fixed lensing - pretty much all of these cameras, aside from the Azure Kinect, have fixed lenses which means you won't be able to change their field of view. 31 | * Resolution and framerate limitations - this is greatly improved since a few years ago, but you often still aren't getting anything like a 4K60fps depth or RGB image. 32 | * Due to the reliance on IR, these cameras will often be sensitive to changes in sunlight and only certain ones may be acceptable for 24/7 outdoor use (even behind a window). 33 | * Subject outlines can be a bit rough depending on your camera, however they have improved dramatically in recent years and there are several algorithms for keeping a cleaner edge. 34 | * Very close range applications may need additional testing, espeically if your subject is within a few inches or centimeters from the lens 35 | * Certain surfaces will interfere with the ability to produce a good depth image. For many cameras, shiny surfaces be invisible or cause strange reflection artifacts in your image. Additionally, some fabrics have unusual behaviors in their absorbtion of light 36 | * Using multiple systems together occasionally requires special consideration, particularly with structured light systems. 37 | * Many cameras have limitations for how far they can generate depth images, and many common ones really only work out to about 10-15ft/3-5m. There are certainly exceptions, but be wary of looking at a manufacturer's specification for maximum depth range as they are often a bit oversold. 38 | 39 | **Depth Cameras to consider and further reading** 40 | 41 | * [Intel Realsense](https://www.intelrealsense.com/compare-depth-cameras/) 42 | * [Microsoft Azure Kinect](https://docs.microsoft.com/en-us/azure/Kinect-dk/hardware-specification) - this is Microsoft's latest version of the Kinect from 2019. It has many improvements over the originals and is much more geared towards developers and integration instead of gaming and the Xbox. It features two different lens options for a wide field of view, and it can capture a 1024x1024 resolution depth image. 43 | * Microsoft Kinect V2. You are no longer able to purchase these new, so I don't suggest them for long term installations. However, they do have a lot of software options out there from years ago and are great for quick demos. 44 | * [2015 Academic paper comparing Depth Cameras](https://www.ocularrobotics.com/wp-content/uploads/2015/12/MMT2015\_MMT2015\_61.pdf) 45 | * [Stimulant's Depth Camera Shootout from 2016](https://stimulant.com/depth-sensor-shootout-2/) 46 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook/content/00_00_introduction.md: -------------------------------------------------------------------------------- 1 | # Guide to Cameras for Interactive Installations 2 | 3 | 4 | Original Text by [Blair Neal](http://blairneal.com) in 2013 with major update in 2021 (update in progress) 5 | 6 | ------------------- 7 | 8 | ## **Preface:** 9 | 10 | I published this guide in 2013 on [Creative Applications](http://creativeapplications.net) and moved it to Github in 2016. I don't think the Kinect 2 was even out at the time of the original, and many other cameras have since come and gone. Camera technologies have obviously changed a lot in the 7 years since I published, so it is certainly time for a major update. The 2013 version is being kept in the repository for historical reference. 11 | 12 | Major changes to this since 2013 are that a lot of technologies have come out, HDMI capture is a lot easier and cheaper than it was in 2013, and Machine Vision algorithms have been able to accomplish things with object and body recognition that didn't even seem casually possible 7 years ago. I'm also covering a slightly broader set of cameras than I did in 2013 for further completeness. 13 | 14 | ------------------- 15 | 16 | ## **Introduction** 17 | 18 | Cameras are one of the most commonly used sensors for interactive installations. They are useful for a wide range of interactions - motion detection, motion visualization, image detection, video and still recording, and more advanced feature and object detection, just to name a few possible applications. Essentially every creative technology coding framework has the ability to take in a basic camera feed and many beginner examples use a laptop's build-in webcams as their input source. The camera's traits of accessibility, portability, and ubiquity make them an ideal sensor for both early prototypes and advanced applications. 19 | 20 | As of this writing, I haven't found a comprehensive guide that covers all of the different types of image and light sensors, especially from the lens of interactive installations. Choosing the right type of camera for your interactive installation is one of the most important technical choices you can make in the initial planning phases of your project. You can always correct for certain things in software, but your hardware and camera choices are the first line of defense against undesired behavior. To be clear, I'm not intending to point out the ideal make and model of a particular camera that everyone should use - as we'll explore in the following chapters, there is absolutely not a one-size-fits-all solution when it comes to cameras. The choice depends on what you want to use it for. 21 | 22 | As I've researched, I've found that drawing a line at what I'm defining as a "camera" is a bit challenging. There is a huge range of options available for observational tracking and light detection. In general for this writeup, we can think of a camera as an electronic device with a sensor that is capable of detecting different wavelengths of light that have been focused by a lens - but even that definition gets stretched in a few spots. In case you're curious for more detail - [Here](https://ciechanow.ski/cameras-and-lenses/) is a great guide by Bartosz Ciechanowski on the different physics involved in cameras and lenses. 23 | 24 | 25 | In the sections below, Part 1 covers several common camera types and their strengths and weaknesses. Following that, Part 2 will cover some less common cameras and other topics like camera systems that use hybrid approaches. Part 3 will cover some supplementary information like camera measurements, latency, and other brief software topics. Here is an outline of what we'll be covering. 26 | 27 | 28 | - **Part 0 - Questions to consider when choosing a camera** 29 | - **Part 1 - The Basics** 30 | - The Basic RGB Webcam 31 | - Other RGB Cameras 32 | - Infrared Cameras 33 | - Depth Cameras 34 | - LIDAR 35 | - **Part 2 - The Exotic** 36 | - Thermal Cameras 37 | - High-end Machine Vision Cameras 38 | - Multi-camera and on-board compute systems 39 | - High-speed or Slow Motion Cameras 40 | - Wireless Cameras 41 | - Motion Capture systems 42 | - Volumetric Capture 43 | - 360 Cameras and Filming 44 | - Other Cameras and Systems (Robotic/Moving, and other "observational tracking devices") 45 | - Older Camera/Video Technologies (Analog, Old RCA Cams) 46 | - Experimental Technologies 47 | - **Part 3 - Supplemental Information** 48 | - Camera interfaces (USB 2 and 3, HDMI, NDI, IP, GigE, etc) 49 | - Outdoor considerations 50 | - Notes on Lenses 51 | - Notes on Latency 52 | - Notes on image touch-up and noise reduction 53 | - Brief software discussions 54 | - Other References and Acknowledgments 55 | 56 | ------- 57 | ## Questions to consider when choosing a camera: 58 | 59 | Before we dive in, consider the following questions when considering which camera best suits your use case. You don't need an answer for everything, but having an idea for many of these will help determine the strengths and weaknesses of various technologies and help narrow down your list. 60 | 61 | - Do you even need a camera? Would another sensor work better or be more reliable? Sometimes cameras can introduce a lot of unnecessary complexity where a simple distance sensor or physical button would be simpler. 62 | - Where is the camera being set up? Does it need to be hidden? 63 | - Will the camera be outside and exposed to the elements, or in the presence of direct sunlight? 64 | - What is the lighting control like in the space? Does the space lighting change throughout the day or year? 65 | - How precise does the interactivity need to be? Are you tracking large motions or small ones? 66 | - Do you need more than one camera to cover the space? How will you combine or map the various camera images together? 67 | - How will you run a cable from the camera to your computer? Will cable length be an issue? 68 | - Is your software compatible with your choice of camera? 69 | - Does the camera have settings that you can manually control or will it adjust itself automatically? If you need to control the settings automatically, does the camera allow for that? 70 | - Do you need a high quality live feed image that the visitor will see, or can you get by with low resolution for tracking purposes? 71 | - Is there a lot of movement in the space or in the background? How will you control for that? 72 | - What is your subject? Are you tracking people or objects? Is there a controlled and defined space for interaction (i.e. a tabletop or a "stand here" floor sign), or is it more freeform? 73 | - How big is the space you're trying to track people in? Where is the "active" area? 74 | - Do you need to record audio as well? How do you plan on syncing a (potentially) separate microphone? 75 | - Do you need a variable field of view (FOV), or is a fixed image fine? If necessary, can the image be zoomed or cropped on site? 76 | - If necessary, how are you lighting the scene? What kinds of artificial lights will need to be tested and integrated into your setup? 77 | -------------------------------------------------------------------------------- /Guide_to_Cameras_magicbook/build/build2/InfraredCameras.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Guide to Cameras for Interactive Installations 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 |

    Infrared Cameras

    14 |

    infraredimage

    15 |

    Infrared cameras have historically been one of the most important tools for artists working with interactive installations. In earlier years, an abundance of installations were set up in dark spaces for either aesthetic reasons or due to the technological limitations of display technology - aka dim projectors. In recent years, as installations move into well lit spaces and tracking algorithms improve, infrared camera relevance has started to shift. However, they still have some unique capabilities that come in handy for certain types of installations.

    16 |

    As a quick primer, visible light goes from 400-700nm, but certain cameras have the ability to see infrared light from 700-900nm. This allows you to capture things that are not visible to the human eye, like IR tracking lights or a dark space illuminated by infrared light. Most cameras that aren't marketed as exclusively IR capable have infrared filters that block IR light, but in some cases, that filter can be manually removed. In order to limit a camera's ability to only see in infrared light, some may need filters that block all visible light - more info on that here

    17 |

    There isn't a specific go-to camera for infrared these days. You can modify certain RGB cameras by removing their infrared filter..................[WIP]

    18 |

    For the next level up, the other common one is the Point Grey Firefly. One tip for this one is to go ahead and buy only the monochrome version of this camera, as the color version has the additional color filter layers that can impact image quality and response. I stick with the firewire version of this camera for the bandwidth, but that can limit you on cable length (you can really only get firewire out about 10-15ft without using a repeater or amplifer, so keep that in mind when building equipment lists). The Firefly will also take a range of lenses that give you an insanely large aperture of around 1.4-1.2f and will be able to give you a much brighter image than a standard webcam. You WILL need a visible light filter for the Firefly to only get IR bands though. See Golan Levin's article on choosing the right IR filter for your application. In addition to the Point Grey, you can check out these cameras from Imaging Source.

    19 |

    Connection Types: USB 2 (Playstation Eye or another webcam - modified), USB 3 (Point Grey Flea 3), Kinect's IR cam, Composite/Firewire (old Sonycam's with night vision)

    20 |

    Resolution Range: You can generally get the same resolutions in IR that you can in regular webcams. There are plenty of tutorials out there for modifying standard webcams to only process IR light.

    21 |

    **Range of effectiveness:**Generally the same as a webcam (1ft-50ft or .3-16m). Some IR cams like the Point Grey have a wider range of security camera lenses for various zoom ranges if you need to do tracking from far away.

    22 |

    Infrared Pros:

    23 | 30 |

    Infrared Cons:

    31 | 37 |

    Optimal environment for round the clock reliability

    38 |

    Room with a steady amount of IR light, either artificial or coming from a point source. Undesired sunlight can blow out an IR cam if the aperture isn't set right or if it doesn't have an automatic adjustment.

    39 |

    Troublesome environments

    40 |

    A dark room with insufficient IR light. A lot of normal light bulbs will still show up in IR even if they don't put out enough light to illuminate the IR spectrum, so keep an eye out for those in the background as pesky tracking distractions.

    41 |

    Further Reading for IR cams

    42 |

    Frieder Weiss's writeup on IR cameras and equipment -2008

    43 |

    Other IR camera suggestions: 44 | Cheap Infrared CCTV cams work well, but you'll need a capture device 45 | Sony CCTV cam good in low light (needs light filter) 46 | The Sony M183 or M383 are classic low latency cams used for IR sensing, but are now discontinued, but check eBay.

    47 |
    48 | Previous: Smartphone Cameras 49 | 50 | Next: Depth Cameras 51 |
    52 | 53 | 54 | -------------------------------------------------------------------------------- /part-1-the-basics/basic-rgb-webcam.md: -------------------------------------------------------------------------------- 1 | # Basic RGB Webcam 2 | 3 | ## The Basic Webcam 4 | 5 |

    Example of an RGB Webcam - the Logitech Brio

    6 | 7 | "Webcam" isn't necessarily an industry term, but if you're reading this, you generally know what we're talking about. Common webcams are those that are built into a laptop, or commercially available external devices connected via USB. Most software frameworks support these cameras through [UVC - USB video device class](https://en.wikipedia.org/wiki/USB\_video\_device\_class) - essentially a standard of communication. UVC can be thought of as being similar to how different keyboards and mice input devices are able to be universally recognized by most operating systems without needing to install specific drivers. 8 | 9 | Webcams are great for basic applications and workspace testing, but aren't the gold standard for professional installations these days. Now that high quality cameras are built into almost every laptop, smartphone, and tablet, the market for standalone webcams has largely stagnated since the mid 2010's. There are only a handful of decent options in this space and there doesn't seem to be a lot of choice or competition that will shake up the market anytime soon. 10 | 11 | A lot of the cameras out there are really made for livestreamers and boast features for things like built-in AI face detection for autofocus (something that you may or may not even be able to use in your software). At this point, the [Logitech Brio 4K](https://www.logitech.com/en-us/product/brio) is probably the best option, and even that camera came out in 2017. At a quick glance, Logitech is basically the only name brand in the game at this point, other than a random mix of lesser known manufacturers. 12 | 13 | **Connection types:** USB 3.0 and USB-C is most common connection you'll see, but there are still some USB 2.0 connections out there. 14 | 15 | **Max resolution range (typical):** 320x240px to 4K. This value ranges a lot, and it depends on your application. There are only a handful of 4K webcams out there, but there are a lot more 720p60fps cameras on the market these days due to the adoption of USB 3.0. If you're working with an older camera, USB 2.0 often does not have enough bandwidth to send 30fps worth of 1080p without some artifacts. Some web cameras are also guilty of doing some software compression of the image before sending it through the hardware connection, and this can add some image degradation. 16 | 17 | **Webcam Pros:** 18 | 19 | * Cheap! - the best widely available ones I've seen are around 80USD to 200USD, but you can get them for as low as 10USD at this point 20 | * Easy to find 21 | * Reliable - they can usually be left on for long periods of time with minimal issues with heat and other issues (not always though!) 22 | * Full color image - they can see just about everything you can. Some can see some IR wavelengths. Rarely will you actually need the color image since most commonly used CV algorithms at the moment use monochrome images. 23 | * Widely supported by just about any software environment, and well understood. 24 | * They can see projection and content on screens. Essentially they see a less dynamic/contrasty version of what you see with your own eyes. 25 | 26 | **Webcam Watchouts:** 27 | 28 | * Many brands will have poor quality imagery compared to what people may be used to with their smartphones, especially in low light. These are generally not to be used for broadcast quality imagery. 29 | * Latency can sometimes be an issue with these. Not too much, but enough to feel just a little bit behind real life. 30 | * Excessive image noise can severely impact tracking algorithms, especially in low light. 31 | * Rarely do you get the option to manually change the settings of the camera itself from within your software without a little bit of specialized code or access. 32 | * They typically have a fixed lens (no zooming or manual focus), but manual ones do exist 33 | * They can see projection and content on screens. 34 | * Sensitive to changes in daylight/natural light 35 | * Requires fairly sophisticated computer vision algorithms to extract really meaningful information from these cameras - no skeleton tracking or easy depth information 36 | * USB cable lengths can be limiting if you need to be extremely far away from your processing computer. Plan for extenders/repeaters if going much over 30ft (10m) away 37 | * Some cameras have weird methods of autofocus that can really screw up your imagery. I've used a few that were nice quality cameras, but the slow hunting autofocus made them a deal breaker. 38 | * Try leaving your camera on for an extended period of time. I've seen issues with inexplicable strange coloring, and just non-responsiveness after being left on for a long time with certain brands. 39 | 40 | **Range of effectiveness:** 41 | 42 | Varies by placement, lens and application. You could watch an entire room of people, but with very little precision. Seems to work best in a range of about 1ft-50ft (.3-16m). If you're too far back, it can be difficult to get an accurate or meaningful reading because people's bodies will be too small to the sensor in relation to other image noise, unless you're on a solid background. 43 | 44 | **Optimal environment for repeatability/reliability:** 45 | 46 | If image quality isn't too important, you need a full color image (for tracking colors, or recording people for a video clip/photo) 47 | 48 | Ideally a controlled room with good artificial lighting will ensure this camera will react the same at any hour of the day. Natural lighting can cause issues depending on the amount of windows and time of year. 49 | 50 | Most simple tracking methods with this camera will work best when the subject is on a plain solid background so it is easy for your software to pick out a person from other objects in the space. Background subtraction is suggested in a case like this. 51 | 52 | **Troublesome environments:** 53 | 54 | An environment with a lot of changing daylight or natural light can really impact this camera's ability to reliably and predictably track at all hours throughout the year. 55 | 56 | Very little to light, rapidly changing or flashing lights, or subjects coming close and far can sometimes cause issues with their automatic adjustment algorithms. 57 | 58 | **Webcam Further reading (some of these links are for older systems):** 59 | 60 | Check out the differences between a UVC cam and a non UVC cam to get an idea about if you'll be able to manually control the camera from within your software. Check out UVC camera control for macOS [here](http://phoboslab.org/log/2009/07/uvc-camera-control-for-mac-os-x) [Focal Length Calculator](http://www.videologyinc.com/lens%20focal%20length%20calculator.htm) [Spreadsheet of different webcams and their capabilities for manual control on macOS](http://mactaris.blogspot.nl/p/webcam-settings-camera-support.html) [Vidvox](https://vidvox.net/rays\_oddsnends/VVUVCKit\_doc/) has a UVCKit app/framework that may allow you to control various settings of your MacOS cam via UVC 61 | -------------------------------------------------------------------------------- /previous_versions/guide_to_cameras_magicbook-1/content/01_01_webcam.md: -------------------------------------------------------------------------------- 1 | # The Basic Webcam 2 | 3 | ![BasicWebcam](../../../Guide\_to\_Cameras\_magicbook/content/webcam.jpg) 4 | 5 | [image source](http://www.flickr.com/photos/designios/2066516480/) 6 | 7 | "Webcam" isn't necessarily an industry term, but if you're reading this, you generally know what we're talking about. Common webcams are those that are built into a laptop, or commercially available external devices connected via USB. Most software frameworks support these cameras through [UVC - USB video device class](https://en.wikipedia.org/wiki/USB\_video\_device\_class) - essentially a standard of communication. UVC can be thought of as being similar to how different keyboards and mice input devices are able to be universally recognized by most operating systems without needing to install specific drivers. 8 | 9 | Webcams are great for basic applications and workspace testing, but aren't the gold standard for professional installations these days. Now that high quality cameras are built into almost every laptop, smartphone, and tablet, the market for standalone webcams has largely stagnated since the mid 2010's. There are only a handful of decent options in this space and there doesn't seem to be a lot of choice or competition that will shake up the market anytime soon. 10 | 11 | A lot of the cameras out there are really made for livestreamers and boast features for things like built-in AI face detection for autofocus (something that you may or may not even be able to use in your software). At this point, the [Logitech Brio 4K](https://www.logitech.com/en-us/product/brio) is probably the best option, and even that camera came out in 2017. At a quick glance, Logitech is basically the only name brand in the game at this point, other than a random mix of lesser known manufacturers. 12 | 13 | **Connection types:** USB 3.0 and USB-C is most common connection you'll see, but there are still some USB 2.0 connections out there. 14 | 15 | **Max resolution range (typical):** 320x240px to 4K. This value ranges a lot, and it depends on your application. There are only a handful of 4K webcams out there, but there are a lot more 720p60fps cameras on the market these days due to the adoption of USB 3.0. If you're working with an older camera, USB 2.0 often does not have enough bandwidth to send 30fps worth of 1080p without some artifacts. Some web cameras are also guilty of doing some software compression of the image before sending it through the hardware connection, and this can add some image degradation. 16 | 17 | **Webcam Pros:** 18 | 19 | * Cheap! - the best widely available ones I've seen are around 80USD to 200USD, but you can get them for as low as 10USD at this point 20 | * Easy to find 21 | * Reliable - they can usually be left on for long periods of time with minimal issues with heat and other issues (not always though!) 22 | * Full color image - they can see just about everything you can. Some can see some IR wavelengths. Rarely will you actually need the color image since most commonly used CV algorithms at the moment use monochrome images. 23 | * Widely supported by just about any software environment, and well understood. 24 | * They can see projection and content on screens. Essentially they see a less dynamic/contrasty version of what you see with your own eyes. 25 | 26 | **Webcam Watchouts:** 27 | 28 | * Many brands will have poor quality imagery compared to what people may be used to with their smartphones, especially in low light. These are generally not to be used for broadcast quality imagery. 29 | * Latency can sometimes be an issue with these. Not too much, but enough to feel just a little bit behind real life. 30 | * Excessive image noise can severely impact tracking algorithms, especially in low light. 31 | * Rarely do you get the option to manually change the settings of the camera itself from within your software without a little bit of specialized code or access. 32 | * They typically have a fixed lens (no zooming or manual focus), but manual ones do exist 33 | * They can see projection and content on screens. 34 | * Sensitive to changes in daylight/natural light 35 | * Requires fairly sophisticated computer vision algorithms to extract really meaningful information from these cameras - no skeleton tracking or easy depth information 36 | * USB cable lengths can be limiting if you need to be extremely far away from your processing computer. Plan for extenders/repeaters if going much over 30ft (10m) away 37 | * Some cameras have weird methods of autofocus that can really screw up your imagery. I've used a few that were nice quality cameras, but the slow hunting autofocus made them a deal breaker. 38 | * Try leaving your camera on for an extended period of time. I've seen issues with inexplicable strange coloring, and just non-responsiveness after being left on for a long time with certain brands. 39 | 40 | **Range of effectiveness:** 41 | 42 | Varies by placement, lens and application. You could watch an entire room of people, but with very little precision. Seems to work best in a range of about 1ft-50ft (.3-16m). If you're too far back, it can be difficult to get an accurate or meaningful reading because people's bodies will be too small to the sensor in relation to other image noise, unless you're on a solid background. 43 | 44 | **Optimal environment for repeatability/reliability:** 45 | 46 | If image quality isn't too important, you need a full color image (for tracking colors, or recording people for a video clip/photo) 47 | 48 | Ideally a controlled room with good artificial lighting will ensure this camera will react the same at any hour of the day. Natural lighting can cause issues depending on the amount of windows and time of year. 49 | 50 | Most simple tracking methods with this camera will work best when the subject is on a plain solid background so it is easy for your software to pick out a person from other objects in the space. Background subtraction is suggested in a case like this. 51 | 52 | **Troublesome environments:** 53 | 54 | An environment with a lot of changing daylight or natural light can really impact this camera's ability to reliably and predictably track at all hours throughout the year. 55 | 56 | Very little to light, rapidly changing or flashing lights, or subjects coming close and far can sometimes cause issues with their automatic adjustment algorithms. 57 | 58 | **Webcam Further reading (some of these links are for older systems):** 59 | 60 | Check out the differences between a UVC cam and a non UVC cam to get an idea about if you'll be able to manually control the camera from within your software. Check out UVC camera control for macOS [here](http://phoboslab.org/log/2009/07/uvc-camera-control-for-mac-os-x) [Focal Length Calculator](http://www.videologyinc.com/lens%20focal%20length%20calculator.htm) [Spreadsheet of different webcams and their capabilities for manual control on macOS](http://mactaris.blogspot.nl/p/webcam-settings-camera-support.html) [Vidvox](https://vidvox.net/rays\_oddsnends/VVUVCKit\_doc/) has a UVCKit app/framework that may allow you to control various settings of your MacOS cam via UVC 61 | --------------------------------------------------------------------------------