Sunday, 12 June 2016

FACEBOOK360

On June 9, 2016, Facebook announced support for 360 photos and panoramas. When you upload a 360 photo or panorama, Facebook automatically processes the photo and presents it in an interactive viewer. To recognize such photos upon upload, Facebook looks for camera-specific metadata found in photos taken using 360-ready cameras. This information is embedded in photo's Exif (Exchangeable image file format) tags, and if you're sharing 360 photos or panos straight from cameras or smartphones, Facebook automatically does the right thing—you don’t need to do anything extra: just pull the image files from the camera (either on your smartphone or computer), and share them to Facebook.
Panoramas taken with smartphones that have native panorama-capture support will also be presented in an interactive viewer (although you obviously won’t be able to look around in full 360).

Editing 360 Photos

You may decide that you'd like to edit a 360 photo using your favorite image-editing program like Adobe Photoshop or iPhoto, or any number of photo editors on iOS / Android. When you open a 360 photo in an image editor, you'll notice that the photo is likely in equirectangular projection at a 2:1 landscape aspect ratio.
Viewed as a normal picture, 360 photos are typically in equirectangular projection.
You can edit these photos for color and content as you would any other photo and save them back out as jpgs (although things get tricky if you are editing in areas close to the top, bottom, or sides, and other artifacts can creep in if you are doing things like sharpening). However, when you share edited photos, Facebook might not recognize them as being 360 photos. The reason for this is that many image editors strip out camera metadata, and the identifiers that Facebook uses to trigger 360 processing are no longer there. To solve this problem, you need to inject the metadata back into the edited file.
Pro tip: Adobe Photoshop's “Save As” feature preserves camera metadata, where as its “Save for Web” does not. A way to bypass all of this metadata discussion is to simply use “Save As” in Photoshop!

What Exif tags are we interested in?

There isn't yet a standard for tagging a photo as containing 360 content. Instead, the required metadata to trigger Facebook’s 360 processing is the Make and Model of your camera. As an example, let's look at Exif information from 360 photos taken with two popular 360-ready cameras, the Ricoh Theta S and the LG 360 CAM.
Using eXif.er (http://thexifer.net), a free, web-based tool for viewing and editing image metadata, to look at photos taken by 360-ready cameras.
When you edit and save a 360 photo using standard image-editing tools, the “Make” and “Model” fields (among others) could now be empty. To re-tag your images for 360 treatment in Facebook, just put the original values for “Make” and “Model” back into those fields. These are two of the fields Facebook uses to recognize 360 photos. To find the original values, you can view the Exif data from an original, unedited photo taken using your 360-ready camera.

What if I stitched the 360 photo myself, or don't know what kind of camera was used?

If you created your own 360 photo or don't happen to know the Make and Model of the camera used to capture your photo, you can use an known 360 camera's values as a trigger. For example, setting Make to “RICOH” and Model to “RICOH THETA S” will work to get 360 treatment in Facebook (as long as the image's aspect ratio is 2:1).

What about non-360 panoramas?

Metadata tags are also used to identify panoramas shot by pano-ready cameras, including smartphones with panorama shooting built in. The Exif techniques on this page will also (mostly) work when applied to edited, non-360 panoramas that you want to be processed as panos by Facebook. For example, if you took a panorama with an iPhone 6s and then edited the panorama in a tool that stripped metadata, you'd want to add “Apple” as the Make and “iPhone 6s” as the model for the panorama to work again.
Working with non-360 panoramas is more complicated because metadata for panoramas must also specify things like coverage, so the metadata injection methods outlined here may not always work perfectly. The best way to do this is to copy all of the metadata from your original panorama into your edited panorama using exiftool (see below).

What's the largest 360 photo I can upload?

The largest 360 photo you should upload is 6000 x 3000 pixels (18 megapixels). You can upload larger photos, but there are diminishing returns past that size, and you will probably not see an appreciable difference in output.

I made my own 360 photo and followed your instructions. Why does my 360 photo look so strange?

Facebook honors some metadata tags that do things like specify field of view. 360 photos should have all of this extra metadata removed before upload unless you really know what you are doing. The easiest way to remove all metadata from an image is to use exiftool (see below), but you can also use web- or app-based Exif editors to find and remove extra metadata.

Editing Exif Tags

Using a Web-based Exif Editor

An excellent and free web-based tool for viewing and editing Exif is the eXif.er, which is used in the examples above. The eXif.er allows you to upload; view, edit, and save metadata; and download your modified image.

Using a Standalone Exif Editor

There are many standalone Exif editors for Windows and OS X. Windows users can use ExifToolGUI, which is free and fully-featured. Mac users can search for “exif editor” in the Mac App Store, where there are a few options for purchase.

Using exiftool (Technical)

The most powerful and flexible Exif editor, especially for batch processing of images, is the command-line tool, exiftool.
If you are interested in using exiftool to manually tag 360 photos, install it on your machine. There’s a standalone version of exiftool for Windows, but it’s more complicated for Mac users. Then, simply use the following terminal command to insert the appropriate metadata:
exiftool -Make="camera_make" -Model="camera_model" photo.jpg
# replace 'camera_make' and 'camera_model' with the appropriate values # 'photo.jpg' is the photo you want to tag
For example, if you're on a Mac and you want to inject metadata for a Ricoh Theta S into a file called “bestphoto.jpg” on your Desktop, you would use the following command:
exiftool -Make="RICOH" -Model="RICOH THETA S" ~/Desktop/bestphoto.jpg
To remove all Exif from a given file called “photo.jpg” (remember to re-inject camera Make and Model before you upload):
exiftool -all= photo.jpg
To copy all Exif from one file (“source.jpg”) to another (“dest.jpg”):
exiftool -TagsFromFile source.jpg "-all:all>all:all" dest.jpg

Advanced Topics

Editing Equirectangular Projections

Using a standard image editor to edit equirectangular projections can be extremely challenging. You're editing pixels in a non-linear space that contains a lot of distortion. Here are a couple hints for successful editing.

Useful software and plugins

Two extremely useful Adobe Photoshop additions for editing 360 photos are Flexify 2 for Panoramas (Photoshop plugin) and Domemaster Photoshop Actions Pack.

Editing the top, bottom, or sides of an equirectangular projection (like removing a tripod)

Editing equirectangular projections near any image border is difficult. The top and bottom of an equirectangular image is very distorted, and the image actually wraps across the right and left border.
Let's use one of the most common editing desires as an example: tripod removal. At the very bottom of this 360 photo taken at Facebook's Hacker Square is a tripod:
If this were a normal image, it would be easy to remove the tripod. But here's what the picture looks like when opened using a traditional image editor. The tripod is now warped across the entire bottom of the image, and is nearly impossible to edit.
The tripod is warped across the entire bottom of the image!
To edit, you’ll want to get the subject(s) you want to change away from areas of the image that are excessively warped. One solution is to rotate the 360 photo so that the tripod is no longer at the bottom. Using a tool like Flexify 2 makes this easy. Rotating latitudinally by -90 degrees puts the tripod in the vertical middle of the image. In the middle of the image, it's easy to remove the tripod using traditional tools like the Healing Brush.
Once you're happy with your edits, load Flexify 2 again and do a +90 latitudinal rotation to get the image back to normal orientation. Export as a jpg, inject the appropriate metadata, and you're ready to share to Facebook.
If you want to edit across the right / left seam, you can rotate your image longitudinally to get access to that seam, again, in the middle of your newly-transformed image. Here's a 180-degree longitudinal rotation of the same image:
You'll notice that the picture's orientation has been rotated exactly half way; the building with the Facebook display is now “behind” us. This, incidentally, is also a way to force the initial viewing orientation. By default, Facebook sets the default view to be the middle of the equirectangular projection. If you want the first view of a 360 photo to be something specific, transform your picture until your desired view is right in the middle.
In general, you can use tools designed for panorama manipulation to transform equirectangular projections into other projections that might be more edit-friendly. When you do this, be aware that such transformation have the potential to be destructive to data, and you could be degrading the final quality of your 360 photo. Use care when doing such transforms!