In this chapter I will discuss two video systems that could easily be carried aloft by an Elev-8 or other quadcopter outfitted with a similar lifting capacity. The first system can record video and stream it back to the operator. It is often referred to as a first-person video (FPV) because the operator can use it to view where the quadcopter is going in real time. The FPV used in this chapter is mounted on the tiltable platform described in Chapter 7. By tilting the camera downward, toward the ground, it is possible to observe the ground while hovering. This capability is highly useful for security purposes as well as for activities, such as search and rescue, damage assessment, or wildlife monitoring.
The second video system is a much less expensive one that also transmits real-time video, although the quality of the video is much lower than that of the first system. It also does not have any video-recording capability. However, it is well suited to providing a video source to a post-processing software suite that will be demonstrated later in the chapter. I will refer to this second system as the economy system when I discuss it later.
I selected the GoPro Hero 3 Silver edition as the video camera to use in the first system. The Hero 3 line of video cameras is highly popular for use in this type of application as well as in many others, as the large number of YouTube videos produced by this camera system will attest to. I selected the Silver edition as a compromise between cost and features. Table 9.1 is a comparison of the features present in the three currently available versions of the Hero 3 camera.
The Black version is the most feature-packed, and judging from my review of Web blogs, seems to be the most popular. However, the Silver edition was more than adequate for this airborne video application, and the extra money I saved was put to use in other project areas.
The camera is shown outside of its protective case in Figure 9.1. It is a remarkably simple camera with just a few controls. The designers realized that most users would not adjust the camera while they were using it, unlike the users of a digital single-lens reflex (DSLR) who constantly adjust or fiddle with the camera. Figure 9.2 is a diagram of the camera front that contains most of the controls.
Several controls are multipurpose, which minimizes the total number of separate camera controls. The Power/Mode button performs both activities that the name suggests: it powers the camera on or off and selects a mode menu. The Shutter/Select button either starts or stops a video; takes individual photos or photo bursts; and starts or stops time-lapse photos. It also serves as a menu item selector in conjunction with the Power/Mode button, which selects the overall menu to be used.
Figure 9.3 is a diagram of the back of the Hero 3 camera that shows several features, including the important WiFi button, which only turns the WiFi on or off. All configuration of the wireless channel is done through the menu system. There is also a blue LED on the front of the camera that will flash if the WiFi link is on.
A Hero port that is available for plugging in certain accessories is also shown in Figure 9.3. A popular accessory is the LCD backpack, which is shown in Figure 9.4. The backpack makes it possible for users to view their photos and videos quickly without using a computer.
The Hero 3 has a simple optical system that is made up of a lens with a very small focal length, as shown in the Figure 9.5 diagram. This very small focal-length lens results in a very wide field of view (FOV), which is specified in the Hero 3 documentation as 170°. A lens with such an ultra-wide FOV is sometimes referred to as a fisheye lens, although the Hero 3 lens does not have the same extreme distortion as a true fisheye lens. Figure 9.6 shows several photos taken with a Hero 3 Black Edition in which this distortion is quite evident by the curved horizon. Technically, the fisheye distortion is known as barrel distortion.
The two original sample photos have also been post processed by imaging software that eliminates the inherent distortion. These photos are marked as “Corrected” in the figure. Some people enjoy the mild fisheye distortion, since it adds a unique character to the Hero 3 photos. It should also be noted that it is probably impractical to correct any video distortion because of the enormous post-processing requirements that this would entail. Processing each video frame that is output at a 30 frames per second (FPS) rate would quickly result in a huge task.
There is also the issue of choosing FOV versus close-up details, often referred to as telephoto. In Figures 9.7 to 9.11, you will see the series of photos I made in my back meadow. It illustrates the tradeoff between using FOV or telephoto with a Canon DSLR camera fitted with an 18- to 270-mm telephoto lens. The focal length is the only variable that was changed in each of the photos to illustrate how the FOV rapidly reduces as the focal length increases.
You can clearly see from this series of photos that the detail rapidly diminishes as the FOV expands. Figure 9.12 is another interesting example of this effect. It is an evening cityscape of Vancouver, BC, courtesy of Snapshot.com and photographer Darren Stone.
FIGURE 9.12 Vancouver cityscape with various FOVs. (Photo by Darren Stone, courtesy of Snapshot.com)
The Hero 3 optical system does not have any physical means to alter or change the focal length; hence, the optical FOV is fixed. It can, however, alter the FOV electronically by selecting different areas of the imaging sensor and expanding the selected pixels to fill the total image. This feature is shown in Figure 9.13, which shows the same scene taken on a Greek island in wide, medium, and narrow FOVs.
FIGURE 9.13 Greek island photos with different FOVs. (Adapted from www.youtube.com/watch?v=RUJ54EXjNCM)
I next decided to test the Hero 3 camera to see how it handles very close-up photography. I used the classic Indian-Head test pattern that was widely used in the early days of monochrome, or black and white, television of the 1950s. This pattern is shown in Figure 9.14.
I took the photo shown in Figure 9.15 with the front of the Hero 3 lens only 4 cm (1.6 in) from the test pattern. You can clearly see the severe barrel distortion that happens when a Hero image capture is taken very close to the camera. The distortion lessens considerably as you separate the camera from the object being photographed. I also used the Adobe Photoshop lens-correction tool to see if the photo distortion could be somewhat mitigated. It was, to a small extent, as you can see in Figure 9.16.
My only conclusion from the test result is that the Hero 3 is best used with a fair amount of distance between the lens and any object to be videoed or photographed. Fortunately, this will be the standard situation when the Hero 3 is mounted on the Elev-8.
I considered it to be very important to determine the maximum range from which the Hero 3 could be remotely operated with an Android tablet that is using the WiFi channel. WiFi range is dependent primarily on these three factors:
1. Environment
2. Protocol
3. Transmitter power
The environment is either indoors or outdoors. I selected the outdoor environment, since that is the area where I will usually operate the Elev-8. In addition, I will try to always have the quadcopter in my line of sight, since that also maximizes the range.
The second factor is related to the specific WiFi protocol that is to be used. The common protocols are IEEE 802.11a/b/g/n. The Hero 3 WiFi uses the Artheros AR6233 chip that supports all the common a/b/g/n protocols. The Android tablet I chose for the test has a “b” WiFi, which means that the maximum range is no more than 140 m (153.11 yd).
The last factor deals with the effective power radiated from the GoPro WiFi transmitter. This is impossible to know unless you dissect a GoPro, which is exactly what somebody did. Go to the website http://www.ifixit.com/Teardown/GoPro+Hero3+Teardown/12457/1 and see how the folks at iFixIt tore apart a Hero 3 Black Edition.
The actual test was very simple. I set the GoPro on a tripod in my back meadow and established a WiFi connection with an Android tablet that was running the free GoPro app. I clicked on real-time preview and saw myself on the tablet screen. I then moved away from the camera until I lost contact. This happened at about 100 m (109.36 yd) from the camera and tripod setup. This test was direct line of sight. I next walked back toward the setup to reestablish the communications link, which occurred at 100 m (109.36 yd). I took a picture at this point, which is shown in Figure 9.17.
I circled myself in the photo because it is very difficult to discern any details at that distance. I then walked 50 m (54.68 yd) toward the setup and took another picture, which is shown in Figure 9.18. This figure confirms both reliable communications at the maximum distance that I will be flying the Elev-8 and the maximum detail I could expect to see on the ground. Notice that I had to circle myself in the figure again, since it is still difficult to pick out distinct objects.
Ground station and ground control station (GCS) are general terms used to describe the means by which a quadcopter is controlled by a user. Normally, the GCS is just the R/C transmitter that an operator with visual contact uses to control the quadcopter. This approach becomes a bit more complicated when FPV capability is added. Now, the operator needs to have a video monitor available as an option rather than always maintaining a direct line of sight with the aircraft. Add in some telemetry, and the GCS can rapidly expand to become quite complex. My first attempt at creating a GCS will be to add a WiFi-enabled Android tablet to the Spektrum DX-8 transmitter and house both of them in an aluminum case. This setup allows the operator to use the DX-8 and simultaneously view the tablet screen while walking around. This simple GCS is shown in Figure 9.19 with a lanyard attached. This allows it to be easily managed in a hands-free manner.
The Spektrum telemetry is also displayed in the DX-8 LCD screen, which helps minimize the number of displays needed for this GCS. Using the DX-8 and Android tablet should suffice for most quadcopter operations that are held in a relatively restricted area. Operations in a wider area may become more problematic because it is very easy to lose situational awareness if you are out of line of sight with the quadcopter.
Incorporating the remote GPS data system described in Chapter 8 would help improve the operator’s situation awareness. That system continuously transmits latitude, longitude, speed, and altitude back to a ground receiver. The received data is than displayed on an LCD screen. The receiver, LCD display, BOE controller, and battery easily fit into the aluminum case shown in Figure 9.19.
A moving-map display from a laptop running Google Earth can show the quadcopter’s position in real time. Relying on this display would be the ultimate way to improve operational awareness. However, this mode of operation would likely involve another operator who is available to continually input the latitude and longitude data that was being sent from the quadcopter. It would be too much of a workload for a single operator to both control the quadcopter and enter data, analogous to texting while driving.
The FPV system creates excellent, high-definition video, but it is quite expensive. This section looks at a much less costly alternative that can provide adequate real-time video but does not have video-recording capability; however, I will discuss how such a capability can be provided for at the receiving end. This economy system is typically one-fifth to one-sixth of the cost of the GoPro system. Figure 9.20 shows the camera-transmitter module used in a system named the RC310. It is an inexpensive wireless 2.4-GHz camera system that is currently available from a number of online suppliers.
It is powered by a regular 9-V battery, as shown in the figure. It has an adjustable lens with a medium focal length, which is very different from the short focal length of the GoPro camera. Figure 9.21 is a close-up of the camera’s front in which you can see the very small 2-mm diameter lens. The GoPro lens by comparison is 14 mm in diameter.
The small diameter of the RC310 camera lens means that the RC310 has a limited light-gathering capability. It will not perform well in poor lighting conditions; but this should not matter since the camera will normally be used in daylight conditions.
I took the photo shown in Figure 9.22 with the front of the RC310 camera lens 44.2 cm (17.4 in) from the Indian-Head test pattern. There is very little barrel distortion evident in the figure; however, the detail is quite fuzzy, which is due to the limited amount of pixels present in the camera sensor. Table 9.2 details the camera specifications.
The overall quality is essentially sub-VGA at 480 × 240 pixels, which means that this camera will not provide a detailed image when video is taken at a reasonable distance. But that is fine because this system was never designed for use with this type of application. I will show you later how to get some unusual and useful results from the video by using some clever post processing. Before getting to that, I want to discuss the receiver portion of the economy video system.
Figure 9.23 shows the receiver along with the video-capture module that is needed to capture the video frames for post processing.
Table 9.3 details the features and specifications for the RC310 receiver. The receiver was set to channel 1, which seemed to function well with little interference from other 2.4-GHz devices in the area. In addition, no configuration is required between the camera and the receiver, which is a very nice feature. A slide switch on the side of the receiver selects the operating frequency. The camera must also be set to the same frequency selected on the receiver. This is accomplished by setting two very small slide switches located on the back of the camera. These switches are shown in Figure 9.24.
The EzCap video-capture module, shown in Figure 9.23, is required for the interface between the RC310 receiver analog outputs and the laptop’s digital USB input. Installing the USB driver is all that is required to use this video-capture device. It is totally transparent in its operation and shows up on the Windows Device Manager as a USB 2861 device in the sound, video, and game controllers category. This designation will be needed when you configure the post-processing software. Figure 9.25 shows how this versatile device can be used in a variety of different applications if you desire to do so.
The term post processing refers to subjecting a video or photograph that is already stored in a compatible file format to some type of image processing to enhance or extract desired features. This definition is best explained through an example, but first I will discuss the software used in post processing.
A post-processing application that can be used in image analysis, computer vision, and robotic vision systems is named RoboRealm. Its startup screen is shown in Figure 9.26.
Three main sections of this application deal with different aspects of image processing. The center section is where the processed image appears. The image shown in Figure 9.26 has not been processed, so it appears in its original, or raw, state. The section to the left is where you can select one or more processing options to apply to the image displayed in the center section. The bottom, center section shows, in sequence, all the processing effects that have been applied to the image. If it is applicable, parameter data will also appear in this section.
The RoboRealm application must be configured for the appropriate video source before any image processing takes place. Ensure that the EzCap device is plugged into a USB port before you start RoboRealm. Next, start the application, and click on the Camera button that is in the menu bar at the bottom of the center section. Then click on the Options button on the menu bar at the top of the center section, and select the Video tab when the Dialog box appears. A Camera Source selection textbox should appear as shown in Figure 9.27.
In my case, there were three selections shown. I chose the WDM 2861 Capture, which is the logical name for the EzCap device. That should do it, and you should see live video in the center section. At this point, you can actually process the live video stream if you desire. To demonstrate this, I chose a filter in the Canny edge detection operation from the left hand column and simply double clicked it. The results are shown in Figure 9.28.
Fourteen different edge filter selections appear when the + symbol is clicked on the Edges content selection. Other content selections will have multiple selections associated with them. At first glance, this would appear to be a bit overwhelming with so many different selections; however, you will likely use only a few to achieve what you want. The RoboRealm designers created a highly capable image-processing system that meets many different user needs. Incidentally, the Canny Edge Detector will be explained in greater detail later in this section.
An inherent problem with processing live video is that the original image is constantly changing, which makes it difficult to assess what the effect of multiple filter operations on an image will be. That is why I strongly recommend that you take a snapshot of the video and apply the processing to that image. In that way, you not only retain the original image, but you can also save separate images of all the processed images. To take a snapshot, simply click on the Snap button located on the bottom menu bar, and enter a name for the snapshot when prompted.
Figure 9.29 is a snapshot of my Elev-8 that I captured from a video taken with the RC310 camera. I will use this snapshot as the raw image to demonstrate a few of the image-processing algorithms.
The first processing effect I will show is the histogram, which is probably the algorithm that will be familiar to most readers. Many DSLRs have histogram displays to help photographers determine if their photos are properly exposed. The display is a small graph of vertical lines that show the distribution of all the red, green, and blue (RGB) pixel intensities contained within the image. What you normally should look for is a distribution that is reasonably centered on the horizontal intensity scale, which in this case goes from 0 to 255. This range reflects the range values for eight-bit pixel intensity. Figure 9.30 shows the RGB histogram for the Elev-8 snapshot.
The next effect is a little more complicated. I want to extract the Elev-8 outline from the raw image. This processing algorithm examines all the pixel values on a specific line in the image in a window and tests them to determine if the average intensity differs from a preset value or not. A radical change in value usually indicates that an edge is present at the center point where the windowed pixels are located. This algorithm is applied over all the lines that make up the image being processed. Figure 9.31 shows the Elev-8 snapshot processed to extract an outline.
You can also see in the figure that I selected a window size of 4 pixels, which is a good value. Any larger values will tend to make the edges less distinct, and smaller values will make the edges too intermittent and choppy. Selecting the correct parameters is almost always a process of trial and error, but that is in part why this field is so interesting.
Another interesting effect is the negative algorithm, an example of which is the negative snapshot of the Elev-8 shown in Figure 9.32. This effect is found in the Adjust Content category. The selections in the Adjust Content category are as follows:
• Camera_Properties
• Contrast
• Gamma
• Intensity
• Negative
Clicking on each one opens an additional variety of adjustments and settings that can be made to optimize a specific video-capture device. I was very impressed with RoboRealm’s functionality with regard to camera setting. While I am not suggesting that RoboRealm could replace Adobe Photoshop, I will say that RoboRealm seems to contain many of the same camera adjustments that are found in the more expensive Photoshop application as well as a few that are missing in the much more expensive program.
Edge detection is important because it facilitates shape detection and object separation. I selected the Canny edge detector as a representative image-processing algorithm that RoboRealm efficiently executes. This algorithm is named after John Canny who first published it in 1986. He wanted to create what he termed an optimal edge detector, one that would perform better than the many in existence at that time. His algorithm is a multistep one that I summarize below:
1. Noise reduction—This first step deliberately introduces a slight amount of blurring in the raw image through a Gaussian distribution that is convolved with the original image. The purpose is to eliminate or drastically reduce the effects of single noisy pixels.
2. Determination of intensity gradients—This next step determines the direction through which the edge or intensity gradient travels.
3. Non-maximum suppression—This step is essentially an edge-thinning technique. It uses an iterative approach that applies a 3 × 3 pixel filter to the edge that was determined in the previous step, which further refines that edge.
4. Edge tracing and hysteresis thresholding—This final step follows the intensity gradient, or edge, by ensuring that it is continuous or really the end of the edge. Once finished, every image pixel is marked as being either an edge or a non-edge.
The next two figures are from Wikipedia showing how the Canny edge detection works. Figure 9.33 is the original, unprocessed image of valves that are part of a steam engine. This figure contains many distinct edges and is a real test of the Canny algorithm.
Figure 9.34 shows the post-processed image for the steam-engine valves. I did notice that edge detection was not particularly successful in the portions of the image that had poor contrast. For instance, look at Figure 9.35 where I circled the vertical pipe coming out of the engine.
If you look at the same area in Figure 9.34, you can easily see the edges where the pipe exits the engine cover and turns downward. The curved edges are readily detected by the Canny edge detector. However, as the pipe descends, the contrast in the original image becomes much poorer, and the edges disappear, as is evident in Figure 9.34. It is just something to be aware of when post processing images. It is important to get as much light on the subject as possible and to maximize all edge contrasts for best results.
I also processed the original unprocessed image in Figure 9.33 through the RoboRealm Canny edge detector just to compare the results to the Wikipedia image in Figure 9.34. Figure 9.36 shows the result, which is very similar to Figure 9.34.
I will now show you the Elev-8 Canny-edge-detector image now that you know a little bit about this technique. Figure 9.37 is the processed Elev-8 image.
When I compared Figure 9.31, which is the outline technique, to Figure 9.37, it was apparent that the Canny approach produced more distinct edges than the outline approach did. The outline image seems to contain a substantial number of non-edge pixels, which I presume is a result of the simplistic, edge-detection algorithm that I discussed previously.
To conduct a field test, I placed a bicycle near some vegetation and took some video to be post processed. Figure 9.38 shows the bicycle resting in some vegetation about 30 m (32.8 yd) away from the camera. The bicycle is identifiable in the image more by the blue color of the frame than by its shape. It still takes a bit of concentrated viewing to distinguish the bicycle from the background. Now, look at Figure 9.39, which is the same image but after it has been post processed by applying the outline-edge-detection algorithm.
Now you should be able to see the fence in the foreground, the trees in the background, and the bicycle frame. I was fairly sure that the bicycle wheels would not be detectable because of the poor contrast and limited pixel resolution. It is important to recognize that the frame shape is out of context with its surroundings, thus making it easier to detect. By out of context, I am referring to the vertical trees and fence sticks as well as the horizontal fence parts. The frame is conspicuous because it has edges that are neither vertical nor horizontal and are contiguous, or close together. This edge characteristic makes the object identification a bit easier and is one of the cornerstones that experts in airborne video surveillance constantly use.
I also decided to apply the Canny edge detection to the test image of the bicycle. Figure 9.40 is the result. Believe it or not, although the bicycle frame is in the image, it is just about invisible because of the default Canny parameters that were initially used. After some parameter adjustments, I was able to obtain the results shown in Figure 9.41.
Yes, the only edges showing in the figure belong to the bicycle frame! It really is quite amazing what can be accomplished when you use clever image-processing techniques. Admittedly, I had to play around with the parameters until I achieved this remarkable result. The Gaussian Theta setting had to be changed from 1.0 to 1.5. This setting occurs in step 1 in the Canny algorithm that deals with pre-blurring. The other change I made was to raise the High Threshold from 30 to 83. The threshold settings occur in step 3 in the algorithm.
I decided to repeat the test-image experiment with a DSLR image instead of one from the economy camera. My goal was to determine what effects image quality would have on edge recognition. Unsurprisingly, it turned out that image quality has a significant effect on edge detection. Figure 9.42 is another picture of the bike, this time taken with a Canon 40D equipped with a 70- to 200-mm telephoto lens.
This image has been significantly resized to match the economy image. I applied the outline edge detector first, as I had done in the first test. Figure 9.43 is the result of this outline-edge-detector post processing. This time you can easily see the tire outlines and even the outlines of the handlebar and seat—a definite improvement over the previous outline edge test.
The Canny edge detection was next. I had to experiment with the parameters to extract the best edges. The result may be seen in Figure 9.44. This time you can observe the two tires, the handlebar, and if you squint a bit, the seat. There are more non-target object edges in this image, which I believe is due to a greater number of pixels that the algorithm attributed to pseudo-edges.
Based upon the results of the above tests, I believe that the ideal camera for use in surveillance and targeted-object detection would be a GoPro format type of camera with a longer optical focal length. I am not aware of the availability of any such camera to consumers, but it would be a good choice for this type of surveillance. I am sure that the tradeoff between lens size and camera-body size is a big consideration for designers and marketing people for this video camera type.
Geotagging refers to inserting GPS coordinates into a photograph’s metadata. Metadata in turn refers to the hidden data included in a digital image file that provides a great deal of supplemental information concerning the photographic image. Exchangeable image file format (Exif) is the name for this image metadata and is a photographic industry standard that has been in existence since the mid 1990s. Most modern digital cameras automatically generate Exif data, which is appended to the actual image data. Exif data is usually viewed through applications designed to reveal the data, although it is easily viewable in the Windows operating system by following these three simple steps:
1. Right click on the image name in the directory where it is stored.
2. Click on Properties, which is normally the bottom selection in the Dialog box.
3. Click on the Details tab.
You should be able to scroll through the Dialog box and view all the metadata that has been stored with regard to the selected image. You may even have geotagged photos on your computer if they were taken with a smartphone with location service enabled.
CAUTION: Photos that were taken with a smartphone and posted on the Web can inadvertently provide GPS coordinates to anyone with an interest. You should probably avoid this if you and your family are leaving on a road trip or vacation and take a parting photo at your home.
Geotagging is appropriate only for photographs, not video, since it is impossible to tag every frame when they are being created 30 times per second. The Hero 3 camera has a useful feature that takes a still photograph image every 5, 10, 30, or 60 seconds, while also creating a video. These intermittent photos will be the ones geotagged to record your location on the photo. Notice, that I chose the word “your” to describe the location because the GPS coordinates will be generated by the Android tablet that is part of the ground control station (GCS) and not by anything onboard the quadcopter. In most cases, this should not be a problem, since you will be within 100 m (109.36 yd) of the flying quadcopter. The GCS GPS coordinates should be sufficiently accurate for most location and identification purposes.
Geotagging photos require that a record of GPS coordinates be saved during the same time interval that the photographs are taken. This saved record is known as a GPS track, which is just a collection of GPS coordinates along with the time that the coordinates were taken. It then becomes a simple task of matching the time the photograph was taken to the matching time from the GPS track. Most digital photos have the time they were taken recorded and stored in the Exif data. I used a program named OpenGPS Tracker to create the GPS track that runs on a Motorola Android Zoom tablet. This tablet is part of the GCS shown in Figure 9.19 on page 244.
I decided to run a simple experiment in which I made a three-mile trip near my home with the Hero 3 camera mounted in my car. Figure 9.45 shows the Hero 3 mounted on the front windshield with a suction-cup mounting adapter.
If you examine the figure closely, you will see that the camera is mounted in an inverted position. A camera setting in the Setup menu will invert the image to compensate for this common mounting configuration. Note that the Hero 3 is also mounted in an inverted position on the tiltable platform.
At the start of the trip, I clicked on the Start tracking button in the Android tablet’s OpenGPS Tracker application. Then I periodically took pictures throughout the trip and finally clicked on Stop Tracking at the trip’s end. The tracker application created a track log, a file named Track201310231000.gpx, that will be one of the inputs to the geotagging program. Figure 9.46 shows the track as it appeared on the tablet’s screen.
The gpx extension appended to the track file is short for GPS Exchange Format. This format is in the extensible meta language (XML), which allows for standardized data interchange between applications and Web services. The gpx file can hold coordinates, also known as waypoints, along with routes and tracks. The following is a snippet of the track log:
XML employs user-generated tags to delimit the data. An example from the above data snippet is:
<time>2013-10-26T14:00:26Z</time>
where <time> is the beginning tag and </time> is the ending tag. Everything between the tags is data that can be extracted by an XML parser application. XML is a versatile data interchange format that is rapidly becoming the mainstream way to tranfer data in most software applications and Web services.
The second input file needed for geotagging is the one containing all the images. I created this second file by removing the microSD card from the Hero 3 camera and mounting it on my Windows laptop. You will probably need an adapter to hold the microSD card so that it can be inserted into a standard laptop SD card port. Figure 9.47 shows a typical adapter that is often provided when you purchase a microSD card.
I then copied all the images created during the trip from the card into a directory that I named GoPro test. One of the images in this directory is shown in Figure 9.48. The figure shows some of the Exif data for this image. I retrieved the data by using the three steps described above. I am showing you this data so that you can see what it contains before it is geotagged.
The free Windows program I used to geotag the photos is named GPicSync. It can be downloaded from https://code.google.com/p/gpicsync/. Figure 9.50 shows the application’s main screen.
You have to enter the following information before geotagging. Your specific directory, file, and time zone information will differ from mine.
• Pictures folder— C:\Users\Don\Pictures\GoPro Test\GoPro Test
• GPS file— C:\Users\Don\Downloads\Track201310261000.gpx
• Google Earth—>Icons—picture thumb Elevation—Clamp to ground
• Check—Create a log file in pictures directory
• Check—Add geonames and geotagged—Geonames in IPTC + HTML Summary in IPTC caption
• Select time zone—US/Eastern
• Geocode picture only if time difference to nearest track point is below (seconds)—300
Click on the Synchronize! button to start the geotagging process. It might take a while to complete the process, especially if there are a lot of photos to be tagged.
In Figure 9.51, you can see the Exif data for the earlier sample photo now showing that GPS data has been added to the metadata.
Duplicate photos will be added to the photo directory. The first one will be the non-geotagged photo, and the one following it will have the geotag data added. You will now have two versions of each photo, just in case you still want to use an untagged photo.
There should also be another file created in the picture directory named doc.kml. This file is in the XML format, which is a recognizable data source for the Google Earth application. Double click on this file and choose Google Earth as the default application to open this file with the .kml extension. Figure 9.52 shows the result that will occur when Google Earth opens with this file.
As you can see, the track is shown along with thumbnails of the photos that were taken when I was driving the track. I clicked on the sample picture to show where it was taken in the track. I zoomed in on the Google Earth display so that the photo could be more easily seen; however, the zoom limited the track view a bit.
A snippet of the doc.kml file that deals with the sample photo is shown on the opposite page. It is easy to see how the sample photo is identified. In this case, it is GOPRO100.JPG, which is between the XML name tags. The GPS coordinates are also included in the snippet and are shown between the XML coordinates tags.
An easier way to view the track and photos than the above procedure is to simply click on the View button in Google Earth, which is located on the GPicSync screen. I initially discussed the doc.kml file because I wanted to show you what was really happening when you clicked this button.
This section concludes my discussion on the video systems that I have found effective for quadcopter operations. The next chapter focuses on performance checks, along with some important training topics.
The chapter began with an introduction to the GoPro Hero 3 camera system. This was one of two video systems discussed in the chapter. The Hero 3 is a very wide angle, high-definition video system that is well suited for implementing a first-person viewer (FPV) system that helps the operator to control the quadcopter.
I discussed the Hero 3’s basic functions along with its limitations so that you have a clear understanding of its capabilities. A WiFi range check was also conducted to confirm that the Hero 3 should operate quite well with the quadcopter.
I next discussed a simple ground control station (GCS), which allows the operator to have all the communication devices readily available for flying the aircraft in a safe and effective manner.
Next, we looked at an economy video system that provides a reasonable surveillance capability when used in conjunction with post-processing software. I demonstrated the RoboRealm software application, which processed video captures from the economy video system. I showed you how to perform histogram, negative, and edge-detection algorithms with the economy video system. I also provided a detailed explanation of Canny edge detection and its algorithm to illustrate how you could go into great depth with one of the many RoboRealm algorithms.
I showed you the results of two field tests, one using the economy video system and the other conducted with a DSLR.
The chapter concluded with a discussion of how to geotag a series of Hero 3 photographs. I also showed you how to create the GPS track file that is required before you can geotag the photos.