Peer to peer camera communication

A camera, method and computer program for communicating between a primary camera device and other camera devices comprising: detecting orientation and position of the primary camera device and range of a primary subject in focus on the primary camera device; locating other networkable camera devices for communication; receiving subject data for a real time image of a subject from one or more of the located networkable camera devices; and determining from subject data which networkable camera devices are shooting the primary subject whereby the primary camera can utilize the subject data and image data from both its own detectors and determined network cameras to take a picture of the subject.

BACKGROUND

The present invention generally relates to a method and apparatus for peer to peer camera communication. More particularly, a method and apparatus for a camera device to share picture and camera settings within a network of cameral devices.

The following publications describe the general prior art for networked cameras.

Patent publication U.S. 2014/0028817 A1 discloses a credential transfer management system.

Patent publication U.S. 2011/0211096 A1 discloses a video system and methods for operating a video system.

Patent publication JP 5084640 B2 discloses a data receiver, a data transmission device and a control method.

Patent publication U.S. 2014/0043495 A1 discloses a wireless video camera and connection methods including multiple video or audio streams.

Patent publication CA 2802293 A1 discloses a method and device for sharing a camera feature.

U.S. Pat. No. 8,164,617 B2 discloses combining views of a plurality of cameras for a video conferencing endpoint with a display wall.

SUMMARY

In a first aspect of the invention there is provided a primary camera device for communicating with other camera devices, said primary camera device comprising: detectors for detecting orientation and position of the primary camera device and distance from a primary subject in focus on the primary camera device; a camera network identifier for locating other networkable camera devices for communication; a camera network database for receiving subject data for a real time image of a subject from one or more of the located networkable camera devices; and a primary subject camera identifier for determining from subject data which networkable camera devices are shooting the primary subject whereby the camera can utilize the subject data and image data, from its own detectors and determined network cameras, to take a picture of the subject.

In a second aspect of the invention there is provided a method for communicating between a primary camera device and other camera devices comprising: detecting orientation and position of the primary camera device and distance from a primary subject in focus on the primary camera device; locating other networkable camera devices for communication; receiving subject data for a real time image of a subject from one or more of the located networkable camera devices; and determining from subject data which networkable camera devices are shooting the primary subject whereby the primary camera can utilize the subject data and image data, from its own detectors and the determined network cameras, to take a picture of the subject.

Preferably the method further comprising requesting one or more determined networkable camera devices to take one or more pictures of the subject.

More preferably the method further comprising receiving camera capability data from determined networkable camera devices.

Still more preferably the method further comprising determining a range of camera conditions from the determined camera devices.

Yet more preferably the method further comprising determining a range of camera settings most suitable for the range of conditions and communicating those settings to appropriate determined camera devices.

Even more preferably camera settings are optimized according to individual the camera capability.

Advantageously the network is a peer to peer network.

More advantageously the networkable cameras exchange one or more pictures.

The embodiments have an effect that operates at a machine level of a camera device and below any overlying application level. The embodiments have an effect that results in a camera device being made to operate in a new way.

In a third aspect of the invention there is provided a computer program product for communicating between a primary camera device and other camera devices, the computer program product comprising a computer-readable storage medium having computer-readable program code embodied therewith and the computer-readable program code configured to perform all the steps of the methods.

The computer program product comprises a series of computer-readable instructions either fixed on a tangible medium, such as a computer readable medium, for example, optical disk, magnetic disk, solid-state drive or transmittable to a computer system, using a modem or other interface device, over either a tangible medium, including but not limited to optical or analogue communications lines, or intangibly using wireless techniques, including but not limited to microwave, infrared or other transmission techniques. The series of computer readable instructions embodies all or part of the functionality previously described.

In a fourth aspect of the invention there is provided a computer program stored on a computer readable medium and loadable into the internal memory of a computer, comprising software code portions, when said program is run on a computer, for performing all the steps of the method claims.

In a fifth aspect of the invention there is provided a data carrier aspect of the preferred embodiment that comprises functional computer data structures to, when loaded into a computer system and operated upon thereby, enable said computer system to perform all the steps of the method claims. A suitable data-carrier could be a solid-state memory, magnetic drive or optical disk. Channels for the transmission of data may likewise comprise storage media of all descriptions as well as signal-carrying media, such as wired or wireless signal-carrying media.

DETAILED DESCRIPTION

Referring toFIG. 1, a camera10according to the preferred embodiment comprises: a camera body1; a camera lens2; a distance sensor3; camera picture button4; radio aerial5; and a camera control unit12(hidden from view inside camera body1but shown inFIG. 3) for taking a photograph of a subject6. Further features and components are necessarily part of a functioning camera unit and the above features are a simplified list of features that can explain the preferred embodiment.

Camera body1supports the camera lens2so that a picture can be taken of subject6whereby light from subject6is collected by the lens2and focused onto an electronic sensor that is part of the camera control unit12(not shown).

Camera lens2is adjustable for bringing a picture into focus. The line of focus is represented by dotted line7from the center of the lens to subject6.

Distance sensor3is for sensing the distance between the camera and subject6. Typically an infrared light from distance sensor3is bounced off subject6and received back at distance sensor3such that the distance that the light has travelled along dotted line8from distance sensor3to the subject6can be estimated.

Camera picture button4is used to control the camera to focus the camera lens on the object (typically a half depress of the button) and then take the photograph (typically a full depress of the button).

Radio aerial5is for sending and receiving wireless radio signals to other nearby cameras according to the preferred embodiment. In the preferred embodiment the radio signal is a low power personal network signal such a Bluetooth signal to enable a peer to peer network but other radio signal can be used including WiFi. Bluetooth is a low power wireless technology standard for exchanging data over short distances typically between personal devices in a room or car or small personal area. WiFi is a local area wireless technology that allows an electronic device to exchange data or connect to the internet throughout buildings. In the preferred embodiment it is envisaged that peer to peer architecture would be the most advantageous but a client server architecture would also work. For instance, a GSM (global system for mobile telecommunications) signal can be used to create a client server embodiment where many cameras communicate with a server.

Camera control unit12is internal to the camera body1and described inFIG. 3.

FIG. 2is an example deployment diagram of cameras10A,10B and10C in a network according to the preferred embodiment. More cameras can be used but the number of cameras will be limited by the processing power of the cameras and the network bandwidth amongst other things. In this example, cameras10A (for example the primary camera) and10B (a networkable camera) are pointing to the same subject6A whereas camera10C (another networkable camera) is pointing to another object6B. All the cameras are capable of communicating with each other and the preferred embodiment determines those networkable cameras that are pointing to the same subject6A.

Referring toFIG. 3, the camera control unit12of a camera10is described. Camera10is a combination of a mechanical, electronic and computer system wherein the camera control unit12may be described in the general context of computer system including computer system-executable instructions, such as program modules, being executed by a computer processor. Generally, program modules may include routines, programs, objects, components, logic, and data structures that perform particular tasks or implement particular abstract data types.

CPU22loads machine instructions from memory30and performs machine operations in response to the instructions. Such machine operations include: incrementing or decrementing a value in a register; transferring a value from memory30to a register or vice versa; branching to a different location in memory if a condition is true or false (also known as a conditional branch instruction); and adding or subtracting the values in two different registers and loading the result in another register. A typical CPU can perform many different machine operations. A set of machine instructions is called a machine code program, the machine instructions are written in a machine code language which is referred to a low level language. A computer program written in a high level language needs to be compiled to a machine code program before it can be run. Alternatively a machine code program such as a virtual machine or an interpreter can interpret a high level language in terms of machine operations.

Network adapter24is connected to bus28and network20for enabling communication between the cameras or a computer server (not shown).

Memory30includes computer system readable media in the form of volatile memory32and non-volatile or persistent memory34. Examples of volatile memory32are random access memory (RAM)36and cache memory38. Generally volatile memory is used because it is faster and generally non-volatile memory is used because it will hold the data for longer. Computer processing system10may further include other removable and/or non-removable, volatile and/or non-volatile computer system storage media. By way of example only, persistent memory34can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically a magnetic hard disk or solid-state drive). Although not shown, further storage media may be provided including: an external port for removable, non-volatile solid-state memory; and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a compact disk (CD), digital versatile disk (DVD) or Blu-ray. In such instances, each can be connected to bus28by one or more data media interfaces. As will be further depicted and described below, memory30may include at least one program product having a set (for example, at least one) of program modules that are configured to carry out the functions of embodiments of the invention.

The set of program modules configured to carry out the functions of the preferred embodiment comprises image module200and camera network module400. Further program modules that support the preferred embodiment but are not shown include firmware, boot strap program, operating system, and support applications. Each of the operating system, support applications, other program modules, and program data or some combination thereof, may include an implementation of a networking environment.

Image module200is a known camera control mechanism for taking a picture.

Camera network module400is for working with existing camera control mechanisms to take a picture according to the preferred embodiment and is described in more detail below.

Shutter and optical sensor40is for taking the picture and recording a picture image as pixels on the optical sensor.

Distance finder42is for controlling the distance sensor3and calculating the distance between the camera and a subject.

GPS (Global Positioning System) unit44is for calculating the absolute position in space of the camera.

Motion sensor46is for fine tuning the absolute position calculation as the camera is moved.

User controls48is the interface for all user controls including the camera picture button4.

Compass50is a three dimensional gyroscope compass for determining the precise orientation of the camera in order to determine where the camera is pointing so that the subject of the picture may be subsequently determined.

Referring toFIG. 4, camera network module400comprises the following components: camera network identifier402; camera network database404; primary subject camera identifier406; camera condition range identifier408; camera setting engine410; picture attribute scanner and manager412; and camera network method500.

Camera network identifier402is for identifying a network of cameras.

Camera network database404is for receiving subject data and camera capability data from networked cameras.

Primary subject camera identifier406is for identifying a primary subject from the subject data of the networked cameras.

Camera condition range identifier408is for determining a range of environmental conditions for each networked camera such as distance from camera and amount of background and foreground light on primary subject.

Camera setting engine410is for determining optimum camera and camera setting pairings from the range of environmental conditions and the camera capability data.

Picture attribute scanner and manager412is for determining and managing picture attributes.

Camera network method500is for controlling and managing components in accordance with the preferred embodiment.

Step501is the start of camera network method500. The preferred camera embodiment is always in network mode and the method is started when picture button4is half depressed for focusing on a primary subject. Other embodiments are envisaged where a user can select and deselect a network mode.

Step502is for locating other networkable cameras in network area of a primary subject being shoot by the camera. The network area can be the whole possible network area or a restricted part of the possible network area.

Step504is for setting the camera with the half depressed picture button4as master camera, that is the camera device that controls the other camera devices in a peer-to-peer network.

Step506is for receiving subject data for a picture from networkable cameras including subject position, camera position, orientation and range.

Step508is for determining from received data which cameras are shooting the primary subject.

Step510is for receiving camera capability data.

Steps502to510comprise core networking steps that the embodiments are based on. As a result of the core networking steps the master camera can utilize the subject data and image data from both its own detectors and determined network cameras to take a picture of the subject.

Step512is for determining a range of camera conditions from subject data of primary subject cameras.

Step514is for determining camera setting suitable for the range of conditions from camera capability data.

Step516is for requesting primary subject camera/s to take primary subject pictures using determined camera settings.

Step518is for exchanging pictures of the primary subject between cameras.

Step520is the end of the method.

Further embodiments of the invention are now described. It will be clear to one of ordinary skill in the art that all or part of the logical process steps of the preferred embodiment may be alternatively embodied in a logic apparatus, or a plurality of logic apparatus, comprising logic elements arranged to perform the logical process steps of the method and that such logic elements may comprise hardware components, firmware components or a combination thereof.

A further embodiment of the invention is a computer program product defined in terms of a system and method. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to carry out aspects of the present invention. Such a program can be transferred to an existing camera as an update to its operating system.

These computer-readable program instructions may be provided to a processor of a general purpose camera, special purpose camera, camera device, a device with a camera, or other programmable data processing apparatus to produce a machine with a camera, such that the instructions, which execute via the processor, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

It will be clear to one skilled in the art that many improvements and modifications can be made to the foregoing exemplary embodiment without departing from the scope of the present invention.