A video capture device, such as a pocket video camera or cell phone video camera, can be employed to capture panoramic video. In particular, panoramic video can be captured by an operator turning the video capture device any number of degrees while capturing video. Today, a video capture device is often embodied as a digital camera incorporated, for example, directly into computer communications hardware, such as provided within, for instance, a mobile phone.
More particularly, panoramic video is obtained by an operator or user of a video capture device rotating the video capture device a certain number of degrees, for example, between zero and 360°, or more than 360°, while recording or capturing video. In one example, capturing panoramic-based video may involve recording video, while rotating the video capture device 360°. When doing so, video capture or recording issues can arise. For example, a panoramic video recording could be terminated before completing a full 360° rotation (that is, in those cases where (for instance) a 360° panoramic video is desired), tilt and/or pitch changes relative to (for example) an initial video frame of the recording may occur, such that upon reaching a full 360° rotation the frames do not overlap well, and/or rotation of video capture device may be too quick, resulting (for example) in blurrying of the captured video.
The shortcomings of the prior art are overcome and additional advantages are provided through the provision, in one embodiment, of a method which includes: receiving a panoramic video being captured; and providing at least one panoramic video acquisition guidance indicator, the at least one panoramic video acquisition guidance indicator including feedback on the panoramic video being captured and being based, at least in part, on the panoramic video being captured or movement of a video capture device capturing the panoramic video.
In a further aspect, a method is provided which includes: receiving panoramic video being captured; providing, based at least in part on the panoramic video being captured or movement of a video capture device capturing the panoramic video, at least one panoramic video acquisition guidance indicator commensurate with capturing of the panoramic video, the at least one panoramic video acquisition guidance indicator providing feedback on the panoramic video being captured; and wherein the at least one panoramic video acquisition guidance indicator includes at least one of a video rotation progress indicator, a video tilt or video pitch indicator, or a video rotation speed indicator.
In another aspect, a system is provided which includes a video capture device, and a panoramic video acquisition guidance component. The panoramic video acquisition guidance component is associated with the video capture device and provides at least one panoramic video acquisition guidance indicator based, at least in part, on a panoramic video being captured by the video capture device or movement of the video capture device during capturing of the panoramic video. The at least one panoramic video acquisition guidance indicator provides panoramic video acquisition guidance on the panoramic video being captured.
In yet another aspect, a system is provided which includes a video capture device, and a panoramic video acquisition guidance component associated with the video capture device. The panoramic video acquisition guidance component provides at least one panoramic video acquisition guidance indicator based, at least in part on, and commensurate with, capturing of a panoramic video via the video capture device. The at least one panoramic video acquisition guidance indicator includes panoramic video acquisition guidance on the panoramic video being captured, and includes at least one of a video rotation progress indicator, a video tilt or video pitch indicator, or a video rotation speed indicator.
In a further aspect, a computer program product for guiding panoramic video acquisition is provided. The computer program product includes a computer-readable storage medium readable by a processor and storing instructions for execution by the processor for performing a method which includes: receiving a panoramic video being captured; and providing at least one panoramic video acquisition guidance indicator. The at least one panoramic video acquisition guidance indicator provides acquisition feedback on the panoramic video being captured, and is based, at least in part, on the panoramic video being captured or movement of a video capture device capturing the panoramic video.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.
One or more aspects of the present invention are particularly pointed out and distinctly claimed as examples in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
Aspects of the present invention and certain features, advantages and details thereof are explained more fully below with reference to the non-limiting embodiments illustrated in the accompanying drawings. Descriptions of well-known components, equipment, processing techniques, etc., are omitted so as not to unnecessarily obscure the invention in detail. It should be understood, however, that the detailed description and the specific examples, while indicating embodiments of the invention, are given by way of illustration only, and are not by way of limitation. Various substitutions, modifications, additions and/or arrangements within the spirit and/or scope of the underlying inventive concepts will be apparent to those skilled in the art from this disclosure.
As used herein, a “video capture device” refers to a device, apparatus, system, subsystem, component, module, etc., designed for or capable of capturing a video, with a pocket video camera or cell phone video camera being two examples of a video capture device. A panoramic video refers to a video being captured wherein the video capture device is rotated during the video capture any desired number of degrees from, for example, an initial orientation. As an example, a panoramic video may comprise video that is captured during a 90° rotation, 180° rotation, 360° rotation, or (for example) any degree rotation between zero and 360°. Still further, panoramic video may comprise video captured in any arcing or curving manner outside of a perfect 360° circle, or may comprise video captured beyond 360°, such as 720°, 1080°, etc. In addition, note that as used herein, the term “video” refers to, by way example, a moving visual image irrespective of any rotation of the video capture device, and in one implementation, comprises a sequence of images or frames, such as 30 frames per second video, representing scenes in motion.
Reference is made below to the drawings (which are not drawn to scale for ease of understanding), wherein the same reference numbers used throughout different figures designate the same or similar components.
In
As another consideration, the speed with which the video capture device is rotated during panoramic video capture may be an issue. For example, rotating a video capture device too quickly during panoramic video capture can result in blurrying of the captured video.
In view of these issues, disclosed herein is the concept of panoramic video acquisition guidance that is provided in real-time during panoramic video capture to, for example, improve quality of the final video panorama. The panoramic video acquisition guidance may be provided via one or more panoramic video acquisition guidance indicators. These panoramic video acquisition guidance indicators are particularly applicable to, for example, a mobile video capture device, such as a video camera within a mobile phone.
Generally stated, a method, system and computer program product are disclosed herein for providing panoramic video acquisition guidance. The method includes obtaining or receiving a panoramic video being captured, and providing one or more panoramic video acquisition guidance indicators. The one or more panoramic video guidance acquisition indicators provide acquisition feedback or guidance on the panoramic video being captured, for example, to facilitate improving quality of the final video panorama, and are provided in real-time, that is, concurrent or commensurate with capturing of the panoramic video. As explained below, and by way of example only, the panoramic video guidance indicator(s) may comprise one or more of a video rotation progress indicator, a video tilt or video pitch indicator, or a video rotation speed indicator.
By way of example,
In one implementation, the panoramic video acquisition guidance module 240 provides one or more panoramic video acquisition guidance indicators as described herein. Depending on the indicator, the panoramic video acquisition guidance module may (for instance) reference or employ, for example, the one or more video processing related components or the video image processing, as described further below.
As noted, panoramic video acquisition guidance module 240 may conceptually comprise different acquisition modules providing different guidance indicators. These modules may include a video rotation progress module, a video tilt and/or pitch status module, and/or a video rotation speed module.
As an optional feature, panoramic video capture may be automatically stopped based on detecting completion of a desired degree of rotation. In one example, the desired panorama may be a 360° panorama, with the video rotation progress module automatically terminating capture of video upon completion of a full 360° rotation. As an extension of this facility, the video capture device could be programmable by an operator to designate any degree of capture, such as, for example, a 180° panoramic video capture, a 240° degree panoramic video capture, etc., after which panoramic video capture may automatically terminate.
In
In
In
In
Note that one or more of the above-discussed video rotation progress indicators may be employed, either alone or in combination. For example, a video-based rotation progress indicator may be provided, along with an audio-based rotation progress indicator to provide the user with additional acquisition guidance during the panoramic video capture.
Establishing the panoramic video guidance indicators described herein, such as the video rotation progress indicator, may be readily implemented by one skilled in the art, and may be embodied (for instance) in software, hardware, or a combination thereof. Providing the progress indicator may involve using, if available in hardware, a gyroscope and/or a compass, in ascertaining the degree of rotation. Alternatively, for 360° panoramic video capture, image-based processing methods, such as image feature matching, edge image alignment, and/or other image alignment processes, may be employed.
As noted with respect to the video rotation progress indicator, one skilled in the art may readily establish a video tilt and/or video pitch indicator such as disclosed herein using, for instance, hardware-based processing, software-based processing, or a combination thereof. For example, if available in hardware on the video capture device, the tilt or pitch indicator(s) may utilize gyroscope-based, and/or accelerometer-based readings. Alternatively, image-based processing may be employed to ascertain tilt and/or pitch using, for example, motion tracking, horizon detection, etc.
In
In
An alternate implementation of this indicator is depicted in
In
As a further embodiment, the video rotation progress indicator described above in connection with
In
In the example of
In
One of ordinary skill in the art may establish the rotation speed indicator, by way of example, using hardware-based processing, software-based processing, or a combination thereof. For example, if available in hardware, the rotational speed may be derived from a gyroscope reading, an accelerometer reading, a magnetometer and/or compass reading. Alternatively, image-based processing, such as motion tracking, may be employed to ascertain rotational speed. As a further embodiment, image analysis of the captured video may be employed, with detection of blurrying video being an indication that the rotational speed of the panoramic video capture is too high.
Aspects of the invention disclosed herein, or any part(s) or function(s) thereof, may be implemented using hardware, software modules, firmware, tangible computer-readable media having instructions stored thereon, or a combination thereof and may be implemented in one or more computer systems or other processing systems.
These components communicate via a communication infrastructure 606 with, for example, a display interface 602, one or more processor devices 604, a main memory 608, a secondary memory 610, and a communication interface 624.
If programmable logic is used, such logic may executed on a commercially available processing platform or a special purpose device. One of ordinary skill in the art may appreciate that embodiments of the disclosed subject matter can be practiced with various computer system configurations, including multi-core multiprocessor systems, mini-computers, mainframe computers, computers linked or clustered with distributed functions, as well as pervasive or miniature computers that may be embedded into virtually any device.
For instance, a processor device and a memory may be used to implement the above-described embodiments. The processor device may be a single processor, a plurality of processors, or combinations thereof, and a processor device may have one or more processor “cores”.
Various embodiments of the invention may be implemented in terms of the example computer system 600 of
Processor device 604 may be a special purpose or a general purpose processor device. As will be appreciated by persons skilled in the relevant art, processor device 602 may also be a single processor in a multi-core/multiprocessor system, such system operating alone, or in a cluster of computing devices operating in a cluster or server farm. Processor device 604 is connected to communication infrastructure 606, which includes, for example, a bus, message queue, network, or multi-core message-passing scheme.
Computer system 600 also includes main memory 608, for example, random access memory (RAM), and may also include secondary memory 610. Secondary memory 610 may include, for example, a hard disk drive 612 and a removable storage drive 614. Removable storage drive 614 may include a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, or the like. The removable storage drive 614 reads from and/or writes to a removable storage unit 618 in a well-known manner. Removable storage unit 618 may comprise a floppy disk, magnetic tape, optical disk, etc., which is read by and written to by removable storage drive 614. As will be appreciated by persons skilled in the relevant art, removable storage unit 618 includes a computer-usable storage medium having stored therein computer software and/or data.
In alternate implementation, secondary memory 610 may include other similar means for allowing computer programs or other similar means for allowing computer programs or other instructions to be loaded into computer system 600. Such means may include, for example, a removable storage unit 622 and an interface 620. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 622 and interfaces 620 which allow software and data to be transferred from the removable storage unit 622 to computer system 600.
Computer system 600 may also include communications interface 624. Communications interface 624 allows (for example) software and/or data to be transferred between computer system 600 and external devices. Communications interface 624 may include a modem, a network interface (such as an Ethernet card), a communications port, a peripheral card, or the like. Software and data transferred via communications interface 624 may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 624. These signals may be provided to communications interface 624 via a communications path 626. Communications path 626 carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link, or other communications channels.
In this document, the terms “computer program medium” and “computer-usable medium” are used, for example, to generally refer to media such as removable storage unit 618, removable storage unit 622, and a hard disk installed in hard disk drive 612. Computer program medium and computer-usable medium may also refer to memories, such as main memory 608 and secondary memory 610, which may be memory semiconductors (e.g., DRAMs, etc.).
Computer programs (also called computer control logic) are stored in main memory 608 and/or secondary memory 610. Computer programs may also be received via communications interface 624. Such computer programs, when executed, enable computer system 600 to implement the present invention as discussed herein. In particular, the computer programs, when executed, enable processor device 604 to implement the processes of the present invention, such as the stages in the methods discussed above. Accordingly, such computer programs represent controllers of the computer system 600. Where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system 600 using removable storage drive 614, interface 620, and hard disk drive 612, or communications interface 624.
Embodiments of the invention may also be directed to computer program products comprising software stored on any computer-usable medium. Such software, when executed in one or more data processing devices, causes a data processing device(s) to operate as described herein. Embodiments of the invention employ any computer-usable or readable medium. Examples of computer-usable mediums include, but are not limited to, primary storage devices (e.g., any type of random access memory), secondary storage devices (e.g., hard drives, floppy disks, CD ROMs, ZIP disks, tapes, magnetic storage devices, and optical storage devices, MEMs, nano-technological storage device, etc.).
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprise” (and any form of comprise, such as “comprises” and “comprising”), “have” (and any form of have, such as “has” and “having”), “include” (and any form of include, such as “includes” and “including”), and “contain” (and any form contain, such as “contains” and “containing”) are open-ended linking verbs. As a result, a method or device that “comprises”, “has”, “includes” or “contains” one or more steps or elements possesses those one or more steps or elements, but is not limited to possessing only those one or more steps or elements. Likewise, a step of a method or an element of a device that “comprises”, “has”, “includes” or “contains” one or more features possesses those one or more features, but is not limited to possessing only those one or more features. Furthermore, a device or structure that is configured in a certain way is configured in at least that way, but may also be configured in ways that are not listed.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below, if any, are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of one or more aspects of the invention and the practical application, and to enable others of ordinary skill in the art to understand one or more aspects of the invention for various embodiments with various modifications as are suited to the particular use contemplated.