{"id":35473,"date":"2019-10-31T22:04:32","date_gmt":"2019-10-31T19:04:32","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novaya-statya-vychislitelnaya-fotografiya\/"},"modified":"2019-10-31T22:04:32","modified_gmt":"2019-10-31T19:04:32","slug":"novaya-statya-vychislitelnaya-fotografiya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/novaya-statya-vychislitelnaya-fotografiya","title":{"rendered":"New Article: Computational Photography","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>The original article is published on the website <noindex><a rel=\"nofollow noopener noreferrer\" href=\"https:\/\/vas3k.ru\/\" target=\"_blank\">Vastrik.ru<\/a><\/noindex>&nbsp;and published on 3DNews with the author's permission. We present the full text of the article, except for the numerous links\u2014it will be useful for those who are seriously interested in the topic and would like to explore the theoretical aspects of computational photography in more depth, but we considered this material excessive for the general audience.&nbsp;&nbsp;<\/p>\n<p>Today, no smartphone presentation avoids flaunting its camera. Every month we hear about the latest success in mobile cameras: Google teaches the Pixel to shoot in the dark, Huawei zooms like binoculars, Samsung adds LiDAR, and Apple makes the roundest corners in the world. Innovations are flowing abundantly in this area.<\/p>\n<p>DSLRs, on the other hand, seem to be stuck in place. Sony showering everyone with new sensors every year, while manufacturers lazily update only the last digit of the version and continue to relax on the sidelines. I have a $3000 DSLR on my desk, but I take my iPhone on trips. Why?<\/p>\n<p>As the classic said\u2014I went online with this question. They discuss some 'algorithms' and 'neural networks,' having no idea how they specifically affect photography. Journalists loudly announce the number of megapixels, bloggers collectively produce paid unboxings, and aesthetes indulge in 'the sensory perception of the color palette of the sensor.' Everything as usual.<\/p>\n<p>I had to sit down, spend half my life, and figure everything out myself. In this article, I will share what I learned.<\/p>\n<h2><noindex><a rel=\"nofollow\" href=\"#contents\" class=\"right paragraph tooltip\" data-tooltip=\"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044e\">\u2193<\/a><\/noindex><noindex><a rel=\"nofollow\" name=\"\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f?\" href=\"#\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f?\" class=\"right paragraph tooltip\" data-tooltip=\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0443 \u0433\u043b\u0430\u0432\u0443\">#<\/a><\/noindex>What is computational photography?<\/h2>\n<p>Everywhere, including Wikipedia, provides a definition like this: computational photography\u2014any capture and processing techniques where digital computations are used instead of optical transformations. It's fine as far as it goes, except that it explains nothing. Autofocus fits under it, but plenoptic cameras, which have already brought us a lot of useful benefits, do not. The vagueness of official definitions seems to hint that we have no idea what we are talking about.<\/p>\n<p>The pioneer of computational photography, Stanford professor Marc Levoy (who is now responsible for the camera in Google Pixel) offers another definition\u2014a set of computer vision methods that enhance or extend the capabilities of digital photography, by which a regular photograph is produced that could not technically have been taken with this camera in a traditional way. I adhere to his definition in this article.<\/p>\n<p>So, smartphones were to blame for everything.<\/p>\n<p style=\"text-align: center;\">Smartphones had no choice but to give rise to a new type of photography\u2014computational.<\/p>\n<p>Their small noisy sensors and tiny low-light lenses, by all laws of physics, should have brought nothing but pain and suffering. And they did, until their developers cleverly found ways to exploit their strengths to overcome their weaknesses\u2014fast electronic shutters, powerful processors, and software.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/9735433adae34a087804b604eff125d4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Most groundbreaking research in computational photography took place between 2005 and 2015, a mere yesterday in the world of science. Right now, before our eyes and in our pockets, a new field of knowledge and technology is developing that has never existed before.<\/p>\n<p>Computational photography is not just about selfies with neural bokeh. The recent photograph of a black hole would not have come to light without computational photography methods. To capture such a photo with a regular telescope, we would need to make it the size of the Earth. However, by combining data from eight radio telescopes around our planet and writing a few scripts in Python, we obtained the world's first image of the event horizon. It's also suitable for selfies.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/696e1ec7834e8bf47bff2aa8965b903a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2><noindex><a rel=\"nofollow\" href=\"#contents\" class=\"right paragraph tooltip\" data-tooltip=\"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044e\">\u2193<\/a><\/noindex><noindex><a rel=\"nofollow\" name=\"\u041d\u0430\u0447\u0430\u043b\u043e: \u0446\u0438\u0444\u0440\u043e\u0432\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\" href=\"#\u041d\u0430\u0447\u0430\u043b\u043e: \u0446\u0438\u0444\u0440\u043e\u0432\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\" class=\"right paragraph tooltip\" data-tooltip=\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0443 \u0433\u043b\u0430\u0432\u0443\">#<\/a><\/noindex>Beginning: Digital Processing<\/h2>\n<p>Imagine if we returned to 2007. Our mom is anarchy, and our photos are noisy 0.6-Mp JPEGs taken on a skateboard. It was around that time we felt the first irresistible urge to sprinkle presets on them to hide the ugliness of mobile sensors. Let\u2019s not deny ourselves this.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/4078f9ff31730ac7b4dec18d4408a707.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2><noindex><a rel=\"nofollow\" href=\"#contents\" class=\"right paragraph tooltip\" data-tooltip=\"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044e\">\u2193<\/a><\/noindex><noindex><a rel=\"nofollow\" name=\"\u041c\u0430\u0442\u0430\u043d \u0438 \u0438\u043d\u0441\u0442\u0430\u0433\u0440\u0430\u043c\" href=\"#\u041c\u0430\u0442\u0430\u043d \u0438 \u0438\u043d\u0441\u0442\u0430\u0433\u0440\u0430\u043c\" class=\"right paragraph tooltip\" data-tooltip=\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0443 \u0433\u043b\u0430\u0432\u0443\">#<\/a><\/noindex>Math and Instagram<\/h2>\n<p>With the advent of Instagram, everyone became obsessed with filters. As someone who once reverse-engineered X-Pro II, Lo-Fi, and Valencia for, of course, research (heh) purposes, I still remember that they consisted of three components:<\/p>\n<ul>\n<li>Color settings (Hue, Saturation, Lightness, Contrast, Levels, etc.) are simple digital coefficients, just like in any of the presets that photographers have used since ancient times.<\/li>\n<li>Tone Mapping is a vector of values, each of which told us: 'Red color with a value of 128 should be transformed to value 240.'<\/li>\n<li>Overlays are semi-transparent images with dust, grain, vignettes, and everything else that can be layered on top to create a quite non-banal effect of old film. It wasn't always present.&nbsp; &nbsp;<\/li>\n<\/ul>\n<p>Modern filters have not strayed far from this trio, though they've become a bit more complex mathematically. With the advent of hardware shaders and OpenCL on smartphones, they were quickly rewritten for GPUs, which was considered incredibly cool \u2014 for 2012, of course. Today, any school kid can create the same using CSS, and they won\u2019t even get extra credit in graduation.<\/p>\n<p>However, the progress of filters has not stopped today. The guys at Dehancer, for example, are doing great with nonlinear filters \u2014 instead of proletarian tone mapping, they use more complex nonlinear transformations, which, according to them, open up a lot more possibilities.<\/p>\n<p>Nonlinear transformations can do a lot, but they are incredibly complex, and we, humans, are incredibly limited. Once it comes to nonlinear transformations in science, we prefer to resort to numerical methods and stuff everything with neural networks to have them create masterpieces for us. The same was true here.<\/p>\n<h2><noindex><a rel=\"nofollow\" href=\"#contents\" class=\"right paragraph tooltip\" data-tooltip=\"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044e\">\u2193<\/a><\/noindex><noindex><a rel=\"nofollow\" name=\"\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u043a\u0430 \u0438 \u043c\u0435\u0447\u0442\u044b \u043e \u043a\u043d\u043e\u043f\u043a\u0435 &laquo;\u0448\u0435\u0434\u0435\u0432\u0440&raquo;\" href=\"#\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u043a\u0430 \u0438 \u043c\u0435\u0447\u0442\u044b \u043e \u043a\u043d\u043e\u043f\u043a\u0435 &laquo;\u0448\u0435\u0434\u0435\u0432\u0440&raquo;\" class=\"right paragraph tooltip\" data-tooltip=\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0443 \u0433\u043b\u0430\u0432\u0443\">#<\/a><\/noindex>Automation and dreams of a 'masterpiece' button<\/h2>\n<p>When everyone got used to filters, we began integrating them directly into cameras. History hides which manufacturer was first, but just for understanding how long ago it was \u2014 in iOS 5.0, which came out in 2011, there was already a public API for Auto Enhancing Images. Only Jobs knows how long it was used before being made public.<\/p>\n<p>The automation did what each of us does when opening a photo in an editor \u2014 it pulled up the gaps in light and shadow, added saturation, removed red-eye, and fixed skin tone. Users had no idea that the 'dramatically improved camera' in the new smartphone was merely due to a couple of new shaders. It would be another five years before the launch of Google Pixel and the hype around computational photography.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/480b0c337a37ce33a178794104c2d541.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Today, the battle for the 'masterpiece' button has moved to the field of machine learning. After experimenting with tone mapping, everyone rushed to train CNNs and GANs to adjust sliders instead of users. In other words, the software determines a set of optimal parameters based on the input image, bringing that image closer to a subjective understanding of 'good photography.' This has already been implemented in Pixelmator Pro and other editors. As you might guess, it doesn\u2019t always work very well.&nbsp;<\/p>\n<h2><noindex><a rel=\"nofollow\" href=\"#contents\" class=\"right paragraph tooltip\" data-tooltip=\"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044e\">\u2193<\/a><\/noindex><noindex><a rel=\"nofollow\" name=\"\u0421\u0442\u0435\u043a\u0438\u043d\u0433 &mdash; 90% \u0443\u0441\u043f\u0435\u0445\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u043c\u0435\u0440\" href=\"#\u0421\u0442\u0435\u043a\u0438\u043d\u0433 &mdash; 90% \u0443\u0441\u043f\u0435\u0445\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u043c\u0435\u0440\" class=\"right paragraph tooltip\" data-tooltip=\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0443 \u0433\u043b\u0430\u0432\u0443\">#<\/a><\/noindex>Stacking is 90% of mobile camera success.<\/h2>\n<p>True computational photography began with stacking \u2014 layering several photos on top of each other. For a smartphone, snapping a dozen frames in half a second is no problem. Their cameras have no slow mechanical parts: the aperture is fixed, and instead of a moving shutter, there's an electronic one. The processor simply commands the sensor how many microseconds to capture wild photons and reads the result.<\/p>\n<p>Technically, the phone can take photos at video speed and video at photo resolution, but it all comes down to the speed of the bus and the processor. That's why software limits are always set.<\/p>\n<p>Stacking has been around for a long time. Even back in the day, people used plugins on Photoshop 7.0 to gather multiple photos into a garish HDR or stitch together a panorama of 18000 \u00d7 600 pixels, and... actually, no one ever figured out what to do with them next. Those were rich times; unfortunately, wild.<\/p>\n<p>Now we\u2019re grown up and call it 'epsilon photography' \u2014 when by changing one of the camera\u2019s parameters (exposure, focus, position) and stitching the resulting frames, we get something that couldn't have been shot in a single frame. But that term is for theorists; in practice, another name has stuck \u2014 stacking. Today, in fact, 90% of all innovations in mobile cameras are based on it.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/f3a6fd9c8260116a371eeb03bbf61536.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>One thing that many don't think about, but which is important for understanding all mobile and computational photography: a camera in a modern smartphone starts taking photos as soon as you open its app. This makes sense, as it needs to display the image on the screen somehow. However, in addition to the display, it saves high-resolution frames in its own circular buffer, where it retains them for another couple of seconds.<\/p>\n<p style=\"text-align: center;\">When you press the 'take photo' button, it's actually already taken; the camera simply pulls the last photo from the buffer.<\/p>\n<p>Today, this is how any mobile camera works. At least in all the flagship models, not from the bargain bin. Buffering allows for not just zero shutter lag, which has long been a dream for photographers, but even negative shutter lag\u2014when you press the button, the smartphone looks into the past, retrieves the last 5-10 photos from the buffer, and starts madly analyzing and stitching them together. No longer do you have to wait for the phone to snap photos for HDR or night mode; simply grab them from the buffer\u2014the user won\u2019t even notice.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/df4d90e674db51c1e8b43518300270da.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>By the way, it is precisely through negative shutter lag that Live Photo is implemented on iPhones, and HTC had something similar back in 2013 under the strange name Zoe.<\/p>\n<h2><noindex><a rel=\"nofollow\" href=\"#contents\" class=\"right paragraph tooltip\" data-tooltip=\"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044e\">\u2193<\/a><\/noindex><noindex><a rel=\"nofollow\" name=\"\u0421\u0442\u0435\u043a\u0438\u043d\u0433 \u043f\u043e \u044d\u043a\u0441\u043f\u043e\u0437\u0438\u0446\u0438\u0438 &mdash; HDR \u0438 \u0431\u043e\u0440\u044c\u0431\u0430 \u0441 \u043f\u0435\u0440\u0435\u043f\u0430\u0434\u0430\u043c\u0438 \u044f\u0440\u043a\u043e\u0441\u0442\u0438\" href=\"#\u0421\u0442\u0435\u043a\u0438\u043d\u0433 \u043f\u043e \u044d\u043a\u0441\u043f\u043e\u0437\u0438\u0446\u0438\u0438 &mdash; HDR \u0438 \u0431\u043e\u0440\u044c\u0431\u0430 \u0441 \u043f\u0435\u0440\u0435\u043f\u0430\u0434\u0430\u043c\u0438 \u044f\u0440\u043a\u043e\u0441\u0442\u0438\" class=\"right paragraph tooltip\" data-tooltip=\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0443 \u0433\u043b\u0430\u0432\u0443\">#<\/a><\/noindex>Exposure stacking\u2014HDR and combating brightness fluctuations<\/h2>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/f05831e57c87ec1177cdef0dc578b46c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Can camera sensors capture the entire brightness range that our eyes can perceive? This has been a long-standing hot topic for debate. Some say no, since the eye can see up to 25 f-stops, while even the top full-frame sensors can only retrieve a maximum of 14. Others argue that this comparison is incorrect because the brain helps the eye by automatically adjusting the pupil and enhancing the image with its neural networks, and the instantaneous dynamic range of the eye is actually just 10-14 f-stops. Let's leave these debates to the best couch thinkers of the internet.<\/p>\n<p>The fact remains: when taking pictures of friends against a bright sky without HDR on any mobile camera, you either get a normal sky with black faces of friends or well-drawn friends but a completely overexposed sky.<\/p>\n<p>The solution has long been discovered\u2014expand the brightness range using HDR (High Dynamic Range). You need to take several shots with different exposures and stitch them together. One should be 'normal', the second brighter, and the third darker. We take the dark areas from the light shot, filling the highlights with the dark one\u2014profit. The only task left is to automate bracketing\u2014how much to shift each frame's exposure to avoid going overboard, but figuring out the average brightness of the image can now be easily handled by a second-year technical student.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/de7ba87bb60f8da89c650220d431248b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>On the latest iPhones, Pixels, and Galaxies, the HDR mode is even turned on automatically when a simple algorithm inside the camera detects that you are shooting something high-contrast on a sunny day. You can even notice how the phone switches the recording mode to the buffer to save the shots with shifted exposures\u2014the fps drops, and the image itself becomes more vibrant. The moment of switching is quite noticeable on my iPhone X when shooting outdoors. Take a closer look at your smartphone next time as well.<\/p>\n<p>The downside of HDR with exposure bracketing is its utter inability in low light conditions. Even under the glow of a room lamp, the images turn out so dark that the computer cannot align and stitch them. To address the lighting issue in 2013, Google introduced a different approach to HDR with the release of the Nexus smartphone. It utilized time stacking.<\/p>\n<h2><noindex><a rel=\"nofollow\" href=\"#contents\" class=\"right paragraph tooltip\" data-tooltip=\"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044e\">\u2193<\/a><\/noindex><noindex><a rel=\"nofollow\" name=\"\u0421\u0442\u0435\u043a\u0438\u043d\u0433 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 &mdash; \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0432\u044b\u0434\u0435\u0440\u0436\u043a\u0438 \u0438 \u0442\u0430\u0439\u043c\u043b\u0430\u043f\u0441\" href=\"#\u0421\u0442\u0435\u043a\u0438\u043d\u0433 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 &mdash; \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0432\u044b\u0434\u0435\u0440\u0436\u043a\u0438 \u0438 \u0442\u0430\u0439\u043c\u043b\u0430\u043f\u0441\" class=\"right paragraph tooltip\" data-tooltip=\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0443 \u0433\u043b\u0430\u0432\u0443\">#<\/a><\/noindex>Time stacking is a simulation of long exposure and timelapse.<\/h2>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/4fe1ab5f044e2097f11cf582926c2713.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Time stacking allows you to achieve a long exposure effect using a series of short exposures. The pioneers were enthusiasts who filmed star trails in the night sky, finding it inconvenient to keep the shutter open for two hours straight. It was hard to calculate all the settings in advance, and even the slightest shake would ruin the entire frame. They decided to open the shutter for just a couple of minutes but many times, and then they would go home and stitch the resulting frames together in Photoshop.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/3985acce3f0bd1e1ceab9364f4f98d91.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>So, in fact, the camera never really shot with a long exposure, but we obtained an effect of its simulation by stacking several consecutive shots. There have been numerous applications written for smartphones that employ this trick, but they became unnecessary once the feature was added to almost all standard cameras. Today, even an iPhone can easily stitch a long exposure from Live Photo.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/e6bf5859cab4f105990859735f6a48e7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Let's return to Google and its night HDR. It turned out that with time bracketing, a decent HDR effect can be achieved in the dark. The technology first appeared in the Nexus 5 and was called HDR+. Other Android phones received it as a sort of gift. The technology is still so popular that it is even highlighted in the presentations of the latest Pixels.<\/p>\n<p>HDR+ works quite simply: realizing that you are shooting in darkness, the camera unloads 8-15 of the most recent RAW photos from the buffer to layer them on top of each other. This way, the algorithm gathers more information about the dark areas of the frame to minimize noise \u2014 pixels where for some reason the camera failed to collect all the information and messed up.<\/p>\n<p>It\u2019s like if you didn\u2019t know what a capybara looks like and asked five people to describe it \u2014 their stories would be roughly the same, but each would mention some unique detail. This way, you would collect more information than just by asking one person. The same goes for pixels.<\/p>\n<p>Overlaying shots taken from the same point produces the same fake effect of long exposure as with the stars mentioned above. The exposure of dozens of frames is summed up, while errors in one are minimized in others. Just imagine how many times you would have to click the shutter of a DSLR to achieve this.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/eb7e3d8571ee4ae7eb7e62a47604ae1d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>The only problem left was solving automatic color correction \u2014 shots taken in low light usually turn out universally yellow or green, while we kind of want the richness of daylight. In earlier versions of HDR+, this was fixed by simply tweaking the settings, like in Instagram-style filters. Later, neural networks were brought in to help.<\/p>\n<p>Thus, Night Sight was born \u2014 the \"night photography\" technology in Pixel 2 and 3. It states in the description: \"Machine learning techniques built on top of HDR+ that make Night Sight work.\" Essentially, this automates the color correction stage. The machine was trained on a dataset of photos \"before\" and \"after\" to create one beautiful image from a set of dark, poorly exposed photos.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/3451cbbeaa58a77f5ce9f88b7ac0de79.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>The dataset, by the way, has been made publicly available. Maybe the folks at Apple will take it and finally teach their glass slabs to take decent shots in low light.<\/p>\n<p>Additionally, Night Sight uses motion vector computation of objects in the frame to normalize any blurring that inevitably occurs with long exposure. Thus, the smartphone can take sharp sections from other frames and stitch them together.<\/p>\n<h2><noindex><a rel=\"nofollow\" href=\"#contents\" class=\"right paragraph tooltip\" data-tooltip=\"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044e\">\u2193<\/a><\/noindex><noindex><a rel=\"nofollow\" name=\"\u0421\u0442\u0435\u043a\u0438\u043d\u0433 \u043f\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044e &mdash; \u043f\u0430\u043d\u043e\u0440\u0430\u043c\u0430, \u0441\u0443\u043f\u0435\u0440\u0437\u0443\u043c \u0438 \u0431\u043e\u0440\u044c\u0431\u0430 \u0441 \u0448\u0443\u043c\u0430\u043c\u0438\" href=\"#\u0421\u0442\u0435\u043a\u0438\u043d\u0433 \u043f\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044e &mdash; \u043f\u0430\u043d\u043e\u0440\u0430\u043c\u0430, \u0441\u0443\u043f\u0435\u0440\u0437\u0443\u043c \u0438 \u0431\u043e\u0440\u044c\u0431\u0430 \u0441 \u0448\u0443\u043c\u0430\u043c\u0438\" class=\"right paragraph tooltip\" data-tooltip=\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0443 \u0433\u043b\u0430\u0432\u0443\">#<\/a><\/noindex>Motion stacking \u2014 panorama, super zoom, and noise reduction.<\/h2>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/c03260ea8ad60358065ec81ed0539063.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Panorama \u2014 a popular pastime for rural dwellers. The history has no known cases of a sausage photo being interesting to anyone other than its author, but it cannot be overlooked \u2014 for many, this is where stacking even began.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/bf5955b2f32018ab90c12d6da41107c1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>The first useful way to apply panorama is to obtain a higher resolution photograph than what the camera's sensor allows by stitching together multiple frames. Photographers have long used various software for so-called super-resolution photographs\u2014where slightly shifted images complement each other between pixels. This way, you can obtain an image with hundreds of gigapixels, which is quite useful if you need to print it on a billboard the size of a house.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/41f0d56913cd7b4c9e407345bf7383ce.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Another, already more interesting approach is Pixel Shifting. Some mirrorless cameras like Sony and Olympus started supporting it back in 2014, but the resulting images still had to be stitched together manually. Typical innovations of large cameras.<\/p>\n<p>Smartphones have succeeded in this for a seemingly ridiculous reason\u2014when you take a photo, your hands shake. This problem served as the foundation for the implementation of native super-resolution on smartphones.<\/p>\n<p>To understand how this works, one must remember how the sensor of any camera is structured. Each pixel (photodiode) can only capture the intensity of light\u2014that is, the number of photons entering. However, a pixel cannot measure its color (wavelength). To obtain an RGB image, it was necessary to add a grid of colored filters over the entire sensor. The most popular implementation is called the Bayer filter and is used today in most sensors. It looks like the image below.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/7dc43fed6c8080917d09275c23cd614c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>It turns out that each pixel of the sensor only captures the R, G, or B component, as the other photons are mercilessly reflected by the Bayer filter. The missing components are inferred through a crude averaging of the values of neighboring pixels.<\/p>\n<p>There are more green cells in the Bayer filter\u2014this was done in analogy with the human eye. As a result, out of 50 million pixels on the sensor, 25 million will capture green, while red and blue will have 12.5 million each. The rest will be averaged\u2014this process is called debayering or demosaicing, and it's a significant workaround that holds everything together.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/aa2d9d74153b26e3f0cdb6d2ba954fc2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p style=\"text-align: center;\">In reality, each sensor has its own clever patented demosaicing algorithm, but for the purpose of this story, we will overlook that.<\/p>\n<p style=\"text-align: center;\">\n<p>Other types of sensors (like Foveon) have not really taken off yet. Although some manufacturers are trying to use sensors without a Bayer filter to improve sharpness and dynamic range.<\/p>\n<p>When there is little light or the details of the object are tiny, we lose a lot of information because the Bayer filter unapologetically cuts off photons with unwanted wavelengths. That's why Pixel Shifting was invented \u2014 to shift the matrix by 1 pixel up, down, left, or right, to capture them all. The resulting photo doesn't come out four times larger, as one might think; the processor uses this data to record the value of each pixel more accurately. It averages not by neighbors, so to speak, but by four values of itself.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/f0c5f4eca43894ef480d1573ef4fddda.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>The shaking of our hands while taking photos on a phone makes this a natural consequence. In the latest versions of the Google Pixel, this feature is implemented and is activated whenever you use the zoom on the phone \u2014 it\u2019s called Super Res Zoom (yes, I also like their ruthless naming). The Chinese also copied it into their phones, although it turned out to be a bit worse.<\/p>\n<p>Overlaying slightly shifted images allows us to collect more color information about each pixel, thus reducing noise, increasing sharpness, and elevating resolution without increasing the physical number of megapixels on the sensor. Modern Android flagships do this automatically while their users don\u2019t even think about it.<\/p>\n<h2><noindex><a rel=\"nofollow\" href=\"#contents\" class=\"right paragraph tooltip\" data-tooltip=\"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044e\">\u2193<\/a><\/noindex><noindex><a rel=\"nofollow\" name=\"\u0421\u0442\u0435\u043a\u0438\u043d\u0433 \u043f\u043e \u0444\u043e\u043a\u0443\u0441\u0443 &mdash; \u043b\u044e\u0431\u0430\u044f \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0440\u0435\u0437\u043a\u043e\u0441\u0442\u0438 \u0438 \u0440\u0435\u0444\u043e\u043a\u0443\u0441 \u0432 \u043f\u043e\u0441\u0442\u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435\" href=\"#\u0421\u0442\u0435\u043a\u0438\u043d\u0433 \u043f\u043e \u0444\u043e\u043a\u0443\u0441\u0443 &mdash; \u043b\u044e\u0431\u0430\u044f \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0440\u0435\u0437\u043a\u043e\u0441\u0442\u0438 \u0438 \u0440\u0435\u0444\u043e\u043a\u0443\u0441 \u0432 \u043f\u043e\u0441\u0442\u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435\" class=\"right paragraph tooltip\" data-tooltip=\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0443 \u0433\u043b\u0430\u0432\u0443\">#<\/a><\/noindex>Focus stacking \u2014 any depth of field and refocusing in post-production.<\/h2>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/19299836bf612a9425c5633572d7879c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>The method originated in macro photography, where a shallow depth of field has always been a challenge. To keep the entire subject in focus, photographers had to take multiple shots with focus shifted back and forth, later stitching them into one sharp image. The same technique was frequently used by landscape photographers to achieve sharpness both in the foreground and background.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/a2336f7ce07d4bbd931881b2b8a16387.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>All this has also made its way to smartphones, albeit without much hype. In 2013, the Nokia Lumia 1020 was released with the 'Refocus App,' and in 2014, the Samsung Galaxy S5 came out with the 'Selective Focus' mode. They worked on the same principle: when you press the button, they quickly took three photos \u2014 one with 'normal' focus, one with the focus shifted forward, and a third with the focus shifted backward. The software aligned the frames and allowed you to choose one of them, which was presented as 'true' control over focus in post-production.<\/p>\n<p>No further processing was needed, as this simple hack was enough to drive another nail in the coffin of Lytro and similar devices with their genuine refocusing capabilities. Speaking of which, let's discuss them (transition master level 80).<\/p>\n<h2><noindex><a rel=\"nofollow\" href=\"#contents\" class=\"right paragraph tooltip\" data-tooltip=\"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044e\">\u2193<\/a><\/noindex><noindex><a rel=\"nofollow\" name=\"\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b &mdash; \u0441\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0438 \u043f\u043b\u0435\u043d\u043e\u043f\u0442\u0438\u043a\u0430\" href=\"#\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b &mdash; \u0441\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0438 \u043f\u043b\u0435\u043d\u043e\u043f\u0442\u0438\u043a\u0430\" class=\"right paragraph tooltip\" data-tooltip=\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0443 \u0433\u043b\u0430\u0432\u0443\">#<\/a><\/noindex>Computational matrices \u2014 light fields and plenoptics.<\/h2>\n<p>As we understood above, our matrices are a nightmare on stilts. We just got used to it and are trying to live with it. In terms of their design, they haven\u2019t changed much since the beginning of time. We\u2019ve only improved the manufacturing process \u2014 reducing the distance between pixels, combating noise and interference, and adding special pixels for phase detection autofocus. But even the most expensive DSLR can't successfully capture a running cat under room lighting \u2014 the cat, to put it mildly, will win.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/dcb87026c62ed4604bc67a4455fa0997.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>We have long been trying to invent something better. Many attempts and research in this area can be found under the queries &laquo;computational sensor&raquo; or &laquo;non-bayer sensor&raquo;, and even the example with Pixel Shifting above can be considered an attempt to enhance sensors through computations.&nbsp;However, the most promising stories in the last two decades have come to us from the world of so-called plenoptic cameras.<\/p>\n<p>To keep you from dozing off at the prospect of upcoming complex terms, I'll throw in an insider tip that the latest Google Pixel camera is just &laquo;a bit&raquo; plenoptic. Only by two pixels, but even that allows it to compute a true optical depth of the frame without a second camera like others.<\/p>\n<p>Plenoptics &mdash; a powerful tool that has yet to make its mark. Let me provide a link to one of my favorite recent <noindex><a rel=\"nofollow noopener noreferrer\" href=\"https:\/\/m.habr.com\/ru\/post\/440652\/\" target=\"_blank\">articles about the potential of plenoptic cameras and our future with them<\/a><\/noindex>, from which I borrowed examples.<\/p>\n<p class=\"h3\"><noindex><a rel=\"nofollow\" href=\"#contents\" class=\"right paragraph tooltip\" data-tooltip=\"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044e\">\u2193<\/a><\/noindex><noindex><a rel=\"nofollow\" name=\"\u041f\u043b\u0435\u043d\u043e\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u0430\u043c\u0435\u0440\u0430 &mdash; \u0441\u043a\u043e\u0440\u043e \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u0436\u0434\u0430\u044f\" href=\"#\u041f\u043b\u0435\u043d\u043e\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u0430\u043c\u0435\u0440\u0430 &mdash; \u0441\u043a\u043e\u0440\u043e \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u0436\u0434\u0430\u044f\" class=\"right paragraph tooltip\" data-tooltip=\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u0443 \u0433\u043b\u0430\u0432\u0443\">#<\/a><\/noindex><\/p>\n<h2>A plenoptic camera &mdash; soon to be in every home.<\/h2>\n<p>Invented in 1994, assembled at Stanford in 2004. The first consumer camera &mdash; Lytro, released in 2012. The VR industry is now actively experimenting with similar technologies.<\/p>\n<p>The only modification that distinguishes a plenoptic camera from a regular one is that the sensor is covered with a grid of lenses, each of which covers several real pixels. Something like this:<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/209d4729485d9f36976c47d7b93ee6f7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>if the distance from the grid to the sensor and the size of the aperture are calculated correctly, the final image will consist of clear clusters of pixels &mdash; like mini versions of the original image.<\/p>\n<p>It turns out that if you take one central pixel from each cluster and stitch the image together only from them &mdash; it will be indistinguishable from one taken with a regular camera. Yes, we lose a bit of resolution, but we can just ask Sony to add more megapixels to the new sensors.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/290518da93056e53314ed8219709f9a2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>The fun is just beginning. If you take another pixel from each cluster and stitch the image again &mdash; it will still be a normal photograph, only as if taken with a shift of one pixel. Thus, having clusters of 10&nbsp;&times;&nbsp;10 pixels, we will get 100 images of the subject from &laquo;a bit&raquo; different angles.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/70bbfa990d697dfb5b2c119853a8810e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>The larger the cluster size &mdash; the more images, but the lower the resolution. In the world of smartphones with 41-megapixel sensors, we can afford to slightly overlook the resolution, but there is a limit to everything. We have to maintain balance.<\/p>\n<p>Okay, we've assembled a plenoptic camera, and what does that give us?<\/p>\n<p><strong>True refocusing<\/strong><\/p>\n<p>A feature that all journalists buzzed about in articles about Lytro is the ability to genuinely adjust focus in post-production. By genuinely, we mean that we don't use any deblurring algorithms; we exclusively utilize the available pixels, selecting or averaging them from clusters in the required order.<\/p>\n<p>A RAW photograph from a plenoptic camera looks strange. To get a familiar sharp JPEG from it, we need to assemble it first. This requires selecting each pixel of the JPEG from one of the RAW clusters. Depending on how we choose them, the result will vary.<\/p>\n<p>For instance, the further a cluster is from the original ray's point of impact, the more out of focus that ray becomes. This is due to optics. To obtain an image that is shifted in focus, we simply need to select pixels at the desired distance from the original\u2014either closer or further away.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/2c091775113b80bc0333624190529ffe.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Focusing closer was more complicated\u2014the number of such pixels in the clusters was purely physically fewer. Initially, the developers didn't want to give users the option to manually focus\u2014the camera determined it programmatically. Users didn't like this future, so the feature was added in later firmware under the name 'creative mode,' but the refocus was heavily limited for this very reason.<\/p>\n<p><strong>Depth map and 3D from a single camera&nbsp;&nbsp;&nbsp;<\/strong><\/p>\n<p>One of the simplest operations in plenoptics is obtaining a depth map. To do this, you simply need to assemble two different frames and calculate how shifted the objects are in them. More shift means further from the camera.<\/p>\n<p>Recently, Google bought and shut down Lytro, but utilized their technology for their VR and... for the camera in the Pixel. Starting with Pixel 2, the camera became 'somewhat' plenoptic for the first time, though with clusters of only two pixels. This allowed Google not to install a second camera like all the other guys but to compute the depth map solely from a single photograph.<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/11212c1d7ad0ad9bca448c01b81e49fc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/4112733d57496d546c66100c541dee22.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>The depth map is created using two frames, shifted by one subpixel. This is sufficient to compute a binary depth map, separating the foreground from the background and blurring the latter in the currently trendy bokeh effect. The result of this layering is further smoothed and \"enhanced\" by neural networks trained to improve depth maps (not to blur, as many believe).<\/p>\n<p><img decoding=\"async\" alt=\"New Article: Computational Photography\" src=\"\/wp-content\/uploads\/2019\/06\/f94ae3d368c97cf0e5c63c288dfaab23.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>The point is that light field technology in smartphones was almost free for us. We were already placing lenses on these tiny sensors to increase light flow somehow. In upcoming Pixels, Google plans to go further and cover four photodiodes with a lens.<\/p>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/3dnews.ru\/989337\">3dnews.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0412\u0430\u0441\u0442\u0440\u0438\u043a.\u0440\u0443&nbsp;\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043d\u0430 3DNews \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u0430. \u041c\u044b \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043f\u043e\u043b\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0441\u0442\u0430\u0442\u044c\u0438, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0441\u044b\u043b\u043e\u043a &mdash; \u043e\u043d\u0438 \u043f\u0440\u0438\u0433\u043e\u0434\u044f\u0442\u0441\u044f \u0442\u0435\u043c, \u043a\u0442\u043e \u0432\u0441\u0435\u0440\u044c\u0435\u0437 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0441\u044f \u0442\u0435\u043c\u043e\u0439 \u0438 \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u043e, \u043d\u043e \u0434\u043b\u044f \u0448\u0438\u0440\u043e\u043a\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0438 \u043c\u044b \u0441\u043e\u0447\u043b\u0438 \u044d\u0442\u043e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u043c.&nbsp;&nbsp; \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0438 \u043e\u0434\u043d\u0430 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430 \u043d\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26610,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35473","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0412\u0430\u0441\u0442\u0440\u0438\u043a.\u0440\u0443 \u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043d\u0430 3DNews \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/novaya-statya-vychislitelnaya-fotografiya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041d\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f: \u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0424\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0412\u0430\u0441\u0442\u0440\u0438\u043a.\u0440\u0443 \u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043d\u0430 3DNews \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/novaya-statya-vychislitelnaya-fotografiya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:04:32+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:04:32+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47New Article: Computational Photography | ProHoster","description":"The original article was published on Vastrik.ru and republished on 3DNews with the author's permission.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/novaya-statya-vychislitelnaya-fotografiya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041d\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f: \u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0424\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f | ProHoster","og:description":"\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0412\u0430\u0441\u0442\u0440\u0438\u043a.\u0440\u0443 \u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043d\u0430 3DNews \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u0430.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/novaya-statya-vychislitelnaya-fotografiya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:04:32+00:00","article:modified_time":"2019-10-31T19:04:32+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35473","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 23:25:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:01:27","updated":"2026-01-21 23:25:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/35473","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=35473"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/35473\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/26610"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=35473"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=35473"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=35473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}