A seed camera disposed a first location is manually calibrated. A second camera, disposed at a second location, detects a physical marker based on predefined characteristics of the physical marker. The physical marker is located within an overlapping field of view between the seed camera and the second camera. The second camera is calibrated based on a combination of the physical location of the physical marker, the first location of the seed camera, the second location of the second camera, a first image of the physical marker generated with the seed camera, and a second image of the physical marker generated with the second camera.
|
1. A computer-implemented method comprising:
calibrating a seed camera disposed at a first location;
detecting, with a second camera disposed at a second location, a physical marker based on predefined characteristics of the physical marker, the physical marker being located within an overlapping field of view between the seed camera and the second camera;
computing a physical location of the physical marker with the seed camera; and
calibrating the second camera based on a combination of the physical location of the physical marker, the first location of the seed camera, the second location of the second camera, a first image of the physical marker generated with the seed camera, and a second image of the physical marker generated with the second camera.
20. A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:
calibrate a seed camera disposed at a first location;
detect, with a second camera disposed at a second location, a physical marker based on predefined characteristics of the physical marker, the physical marker being located within an overlapping field of view between the seed camera and the second camera;
compute a physical location of the physical marker with the seed camera; and
calibrate the second camera based on a combination of the physical location of the physical marker, the first location of the seed camera, the second location of the second camera, a first image of the physical marker generated with the seed camera, and a second image of the physical marker generated with the second camera.
11. A computing apparatus, the computing apparatus comprising:
a processor; and
a memory storing instructions that, when executed by the processor, configure the apparatus to:
calibrate a seed camera disposed at a first location;
detect, with a second camera disposed at a second location, a physical marker based on predefined characteristics of the physical marker, the physical marker being located within an overlapping field of view between the seed camera and the second camera;
compute a physical location of the physical marker with the seed camera; and
calibrate the second camera based on a combination of the physical location of the physical marker, the first location of the seed camera, the second location of the second camera, a first image of the physical marker generated with the seed camera, and a second image of the physical marker generated with the second camera.
2. The computer-implemented method of
moving the physical marker to a fourth location, the fourth location being located within an overlapping field of view between the second camera and a third camera;
detecting, with the third camera disposed at a third location, the physical marker based on a predefined visual pattern of the physical marker;
computing an updated physical location of the physical marker with the second camera; and
calibrating the third camera based on a combination of the updated physical location of the physical marker, the third location of the third camera, a third image of the physical marker generated by the second camera, and a fourth image of the physical marker generated by the third camera.
3. The computer-implemented method of
receiving parameters related to the seed camera based on a combination of lens characteristics of the seed camera, three-dimensional coordinates corresponding to the first location of the seed camera, and an orientation of the seed camera.
4. The computer-implemented method of
5. The computer-implemented method of
detecting the lamp based on the predefined toggle switch state pattern of the lamp.
6. The computer-implemented method of
computing real-world coordinates of the lamp based on an image of the lamp obtained with the seed camera and the first location of the seed camera.
7. The computer-implemented method of
detecting foreground pixels in an image generated with the seed camera;
detecting an object based on the foreground pixels;
validating the object based on at least one of a predefined static height, a shape of the lamp, and a size of the lamp; and
tracking the object within images from the seed camera and images from the second camera.
8. The computer-implemented method of
9. The computer-implemented method of
moving the physical marker along a path throughout the facility, the path covering different overlapping fields of view between calibrated cameras and uncalibrated cameras from the network of cameras.
10. The computer-implemented method of
12. The computing apparatus of
move the physical marker to a fourth location, the fourth location being located within an overlapping field of view between the second camera and a third camera;
detect, with the third camera disposed at a third location, the physical marker based on a predefined visual pattern of the physical marker;
compute an updated physical location of the physical marker with the second camera; and
calibrate the third camera based on a combination of the updated physical location of the physical marker, the third location of the third camera, a third image of the physical marker generated by the second camera, and a fourth image of the physical marker generated by the third camera.
13. The computing apparatus of
receive parameters related to the seed camera based on a combination of lens characteristics of the seed camera, three-dimensional coordinates corresponding to the first location of the seed camera, and an orientation of the seed camera.
14. The computing apparatus of
15. The computing apparatus of
detect the lamp based on the predefined toggle switch state pattern of the lamp.
16. The computing apparatus of
compute real-world coordinates of the lamp based on an image of the lamp obtained with the seed camera and the first location of the seed camera.
17. The computing apparatus of
detect foreground pixels in an image generated with the seed camera;
detect an object based on the foreground pixels;
validate the object based on at least one of a predefined static height, a shape of the lamp, and a size of the lamp; and
track the object within images from the seed camera and images from the second camera.
18. The computing apparatus of
19. The computing apparatus of
move the physical marker along a path throughout the facility, the path covering different overlapping fields of view between calibrated cameras and uncalibrated cameras from the network of cameras.
|
The present application generally relates to the field of camera, and in particular, relates to methods and systems for multiple camera calibration in a distributed camera system.
A camera model is a function that maps pixels with known Z-coordinate to the real-world coordinates. For example, the function takes (Xpx, Ypx) with given Zft and maps it to (Xft, Yft). The camera model can be further described with other parameters such as lens characteristics, camera height and horizon, camera location and orientation. The parameters are used to calibrate a camera. Typically, a user provides a correspondence between pixels and real-world points. A calibration algorithm determines the model parameters based on the correspondence. However, large facilities can include many cameras (e.g., over 100 cameras). Manual calibration for each camera can be labor intensive especially for many cameras.
To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced.
Example methods and systems are directed to multiple camera calibration in a distributed camera system. Examples merely typify possible variations. Unless explicitly stated otherwise, components and functions are optional and may be combined or subdivided, and operations may vary in sequence or be combined or subdivided. In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of example embodiments. It will be evident to one skilled in the art, however, that the present subject matter may be practiced without these specific details.
Cameras that are disposed throughout a facility have overlapping views. If one camera is calibrated already (seed-camera), calibration information for the neighboring cameras can be computed. The number of cameras that need to be calibrated manually can be drastically reduced. The calibration points from matched points with known z-coordinate can be computed. In one example embodiment, computer vision algorithms can be used to automatically match points using recognizable markers or patterns (e.g., yellow bow, a flashing lamp). A user can move the pre-defined pattern/marker around in the facility to cover all areas of the facility where the cameras are installed. The computer vision algorithm detects the known pattern in each camera that needs to be calibrated, and one or more neighboring camera which are already calibrated.
In one example embodiment, the present application describes calibrating a seed camera disposed a first location. A second camera, disposed at a second location, detects a physical marker based on predefined characteristics of the physical marker. The physical marker is located within an overlapping field of view between the seed camera and the second camera. The second camera is calibrated based on a combination of the physical location of the physical marker, the first location of the seed camera, the second location of the second camera, a first image of the physical marker generated with the seed camera, and a second image of the physical marker generated with the second camera.
The calibrated camera 130 is manually calibrated and is also be referred to as a seed camera. The uncalibrated camera 132 comprises an auto-calibration module 136. The calibrated camera 130 generate image/video data and provides the image/video data to the auto-calibration module 136. The auto-calibration module 136 is configured to communicate the image/video data and other data (e.g., location data of the calibrated camera 130, location of an identified object detected in an image generated by the calibrated camera 130) to the application servers 104. In another example embodiment, the calibrated camera 130 can also provide the data to the uncalibrated camera 132 and the client device 106.
An Application Program Interface (API) server 118 and a web server 120 provide respective programmatic and web interfaces to application servers 104. A specific application server 116 hosts a camera network calibration system 122 that operates with the application server 116.
In one example embodiment, the camera network calibration system 122 receives video/image and location data from the calibrated camera 130. The camera network calibration system 122 detects a marker in the images or video frames from the calibrated camera 130. The camera network calibration system 122 then computes the physical location (also referred to as real-world location/coordinate) of the marker based on the location of the calibrated camera 130 and predefined physical characteristics of the marker. The camera network calibration system 122 receives video/image data from the uncalibrated camera 132. The camera network calibration system 122 detects the marker in the video/image data from the uncalibrated camera 132. The camera network calibration system 122 computes orientation, location, and position of the uncalibrated camera 132 based on the physical location of the marker, predefined physical characteristics of the marker, and the video/image data of the marker from the uncalibrated camera 132. The camera network calibration system 122 calibrates the uncalibrated camera 132 based on the computed orientation, location, and position of the uncalibrated camera 132.
In another example embodiment, the auto-calibration module 136 receives video/image and location data from the calibrated camera 130. The auto-calibration module 136 detects a marker in the images or video frames from the calibrated camera 130. The auto-calibration module 136 then computes the physical location (also referred to as real-world location/coordinate) of the marker based on the location of the calibrated camera 130 and predefined physical characteristics of the marker. The auto-calibration module 134 receives video/image data from the uncalibrated camera 132. The auto-calibration module 134 detects the marker in the video/image data from the uncalibrated camera 132. The auto-calibration module 134 computes orientation, location, and position of the uncalibrated camera 132 based on the physical location of the marker, predefined physical characteristics of the marker, and the video/image data of the marker from the uncalibrated camera 132. The auto-calibration module 134 calibrates the uncalibrated camera 132 based on the computed orientation, location, and position of the uncalibrated camera 132.
The operations performed by the camera network calibration system 122 may be also performed or distributed to another server such as a third-party server 112. For example, the calibration of the uncalibrated camera 132 may be performed at the third-party server 112.
The web client 110 communicates with the camera network calibration system 122 via the web interface supported by the web server 120. Similarly, the programmatic client 108 communicates with the camera network calibration system 122 via the programmatic interface provided by the Application Program Interface (API) server 118. The third-party application 114 may, for example, be another application to support the camera network calibration system 122 or mine the data from the camera network calibration system 122. For example, the third-party application 114 may access location information, image/video data from the calibrated camera 130 and uncalibrated camera 132. The application server 116 is shown to be communicatively coupled to database servers 124 that facilitates access to an information storage repository or databases 126. In an example embodiment, the databases 126 includes storage devices that store information to be published and/or processed by the camera network calibration system 122.
The facility 202 may be, for example, a building, a retail space, or an office space. A network of cameras (e.g., seed camera 208, uncalibrated camera 214, uncalibrated camera 204, uncalibrated camera 206) are placed throughout the facility 202 at different locations and different orientations. For example, some cameras may point to different angles throughout the facility 202 to maximize coverage of the facility 202. In one example embodiment, the cameras communicate with camera network calibration system 122. In another example embodiment, the cameras can communicate with each other (e.g., peer-to-peer network) without communicating via the camera network calibration system 122. For example, seed camera 208 can communicate with camera 206 without having to rely on the camera network calibration system 122 as an intermediary node.
The seed camera 208 refers to a camera that is been manually calibrated by a user of the camera network calibration system 122. For example, the orientation, location, and position of the seed camera 208 is known, preset, or predetermined. The seed camera 208 captures an image/video of the marker 210.
The marker 210 refers to a predefined physical object that is recognizable. The predefined physical object has predefined characteristics. For example, the marker 210 includes a lamp with a preset height, a preset size and shape (e.g., a spherical light bulb on top of a post), and a preset visual pattern (e.g., toggled off and on with a preset frequency). In another example embodiment, the marker 210 includes a physical object that appears mostly the same from different viewpoint angles (e.g., for example, a sphere or a cylindrical object). The marker 210 travels along a travel path 212 within the facility 202. In one example, a person may move the marker 210 around the facility 202 to reach different parts of the facility 202.
At travel position 216, the marker 210 is located within an overlapping field of view 222 of the seed camera 208 and the uncalibrated camera 214. In one example embodiment, the camera network calibration system 122 determines the physical location of the marker 210 at travel position 216 based on the image produced by the calibrated seed camera 208. The camera network calibration system 122 computes the location, orientation, and position of the camera 214 based on the image of the marker 210 (produced by the camera 214) at travel position 216 and the known physical location of the marker 210 (determined by the seed camera 208). The camera network calibration system 122 calibrates the camera 214 based on the computed location, orientation, and position of the camera 214.
At travel position 220, the marker 210 is located within an overlapping field of view 224 of now calibrated camera 214 and uncalibrated camera 204. In one example embodiment, the camera network calibration system 122 determines the physical location of the marker 210 at overlapping field of view 224 based on the image produced by calibrated camera 214. The camera network calibration system 122 computes the location, orientation, and position of the camera 204 based on the image of the marker 210 (produced by the camera 204) at travel position 220 and the known physical location of the marker 210 (determined by camera 214). The camera network calibration system 122 calibrates the camera 204 based on the computed location, orientation, and position of the camera 204.
At travel position 218, the marker 210 is located within an overlapping field of view 226 from now calibrated camera 204 (and seed camera 208) and uncalibrated camera 206. In one example embodiment, the camera network calibration system 122 determines the physical location of the marker 210 at travel position 218 based on the image produced by calibrated camera 204. The camera network calibration system 122 computes the location, orientation, and position of the camera 206 based on the image of the marker 210 (produced by the camera 206) at travel position 218 and the known physical location of the marker 210 (determined by camera 204). The camera network calibration system 122 calibrates the camera 206 based on the computed location, orientation, and position of the camera 206.
In another example embodiment, the seed camera 208 determines the physical location of the marker 210 at travel position 216 based on the image produced by the calibrated seed camera 208. The seed camera 208 communicates the physical location of the marker 210 at travel position 216 to the camera 214. The camera 214 computes the location, orientation, and position of the camera 214 based on the image of the marker 210 (produced by the camera 214) at travel position 216 and the known physical location of the marker 210 (provided by the seed camera 208). The camera 214 calibrates itself based on the computed location, orientation, and position of the camera 214.
In another example embodiment, the now calibrated camera 214 determines the physical location of the marker 210 at overlapping field of view 224 based on the image produced by now calibrated camera 214. The camera 214 communicates the physical location of the marker 210 at travel position 220 to the uncalibrated camera 204. The uncalibrated camera 204 computes the location, orientation, and position of the camera 204 based on the image of the marker 210 (produced by the camera 204) at travel position 220 and the known physical location of the marker 210 (provided by calibrated camera 214). The camera 204 calibrates itself based on the computed location, orientation, and position of the camera 204.
In another example embodiment, the now calibrated camera 204 determines the physical location of the marker 210 at travel position 218 based on the image produced by calibrated camera 204, The calibrated camera 204 communicates the physical location of the marker 210 at travel position 218 to the uncalibrated camera 206. The camera 206 computes the location, orientation, and position of the camera 206 based on the image of the marker 210 (produced by the camera 206) at travel position 218 and the known physical location of the marker 210 (provided by calibrated camera 204). The camera 206 calibrates itself based on the computed location, orientation, and position of the camera 206.
The marker detector 304 is configured to identify and detect the marker 210 based on predefined characteristics of the marker 210, in one example embodiment, the marker detector 304 includes a foreground extractor 310, an object detector 312, an object validator 314, and an object tracker 316.
The foreground extractor 310 stores the history of pixel intensities for last ‘N’ frames. For each pixel, if the count of intensity switches (from dark to bright and vice versa) is more than a preset threshold, the pixel is marked as foreground pixel.
The object detector 312 detects objects by computing connected components over the foreground pixels. Connected components below a preset size threshold are discarded. Neighboring components (such as when the object is split up due to noise) can be merged if they are close enough.
The object validator 314 eliminates false objects. There could be other distracting/false objects in the field of view, such as flickering TV screens, sunlight from windows. The object validator 314 helps eliminate such false objects by validating the detected objects based on their shape and size. Since the true shape and size of the marker is already known, that information is used to filter out any false detections. For example, the object validator 314 checks if the shape of the detected object is similar to circular shape. For size-based validation, the object validator 314 uses the calibration information of the calibrated camera orientation, position, location), the known lamp height and lamp size. If a detected object does not meet the expected size condition at a given location, that object can be rejected as a false object
The object tracker 316 tracks a detected object using path continuity and neighborhood search criteria. Given a previous tracked position, a spatial neighborhood is defined in which the new detected object can appear. Alf validated current objects detected within that neighborhood are candidates for the true object. The best object is selected as the one which has the maximum size. A combination of other conditions could also be used.
The calibrated camera communication module 306 communicates with other cameras that are calibrated. For example, the calibrated camera communication module 306 receives calibration information from corresponding calibrated camera (e.g., orientation, position, location), the known lamp height, and lamp size, the position of the lamp. In one example embodiment, the calibrated camera communication module 306 communicates with other cameras via a peer-to-peer network. In another example embodiment, the calibrated camera communication module 306 communicates with the camera network calibration system 122 to obtain the calibration information, preset characteristics of the marker 210, and location of the marker 210.
The camera calibration module 308 uses the marker information from the marker detector 304, the calibration information from the calibrated camera communication module 306, the preset characteristics of the marker 210, the location of the marker 210 to calibrate the camera.
pc=(xc, yc)—[in pixels, camera xy-coordinates] point of camera projection to floor, mapped to FishEye coordinates (camera can be mounted not strictly horizontal)
hcam—[in feets] distance from fisheye camera 402 to floor 406;
d 602—[in pixels] diameter of scene view circle in FishEye coordinates;
Shift and Rotation:
θ—rotation of camera in xy-plane;
mint—[feets, camera xy-coordinates] center (mean_x, mean_y) of dewarping markers;
mext—[in feets, global xy-coordinates] center of markers.
The following illustrates an example operation of a pixels to feets conversion for the fisheye camera 402:
Nonlinear Transform (Dewarping):
r=hcam·tan(∥p−pc∥·π/d)
v=(p−pc)·r/∥p−pc∥
p—[in pixels, camera xy-coordinates] any point on warped image.
v—[in feets, camera xy-coordinates] mapping of p
Shift and Rotation:
q=R(θ)(·v−m int)+mext
R(θ)—rotation matrix
q—[in feets, global xy-coordinates] mapping of p
In one example embodiment, at block 702, the camera calibration module 308 calibrates using markers (in feet) and fisheye coordinates (in pixel). At block 704, the camera calibration module 308 estimates the nonlinear (warping) parameters. At block 706, the camera calibration module 308 estimates the linear (shift and rotate) parameters.
L2=Σ(li−l′i)2
li—[in feets, global xy-coordinates] distance between two markers
l′i—[in feets, camera xy-coordinates] distance between two dewarped markers
The following illustrates an example of optimization algorithm (brute force with reduced grid and constraints)”
1. Set window size
2. Find min inside window by grid
3. Set center of new window to argmin
4. Reduce window size
5. Go to 2, repeat N times.
In another example embodiment, the camera calibration module 308 estimates rotation relative to a center of markers in camera and global coordinates. The camera calibration module 308 also estimates camera shift as shift between markers centers in camera and global coordinates.
The uncalibrated camera communication module 904 communicates with uncalibrated cameras. For example, the uncalibrated camera communication module 904 provides calibration information of the cameras and the location of the marker 210 as determined by the calibrated cameras to the uncalibrated cameras. In another example embodiment, the uncalibrated camera communication module 904 access image/video data from the uncalibrated cameras.
The server calibration module 906 communicates with the calibrated camera communication module 902 and the uncalibrated camera communication module 904. The server calibration module 906 computes a location, position, orientation of an uncalibrated camera based on the information received at calibrated camera communication module 902 and uncalibrated camera communication module 904. The server calibration module 906 provides the calibration information (e.g., location, position, orientation of the uncalibrated camera) to the uncalibrated camera via uncalibrated camera communication module 904.
At block 1006, the calibrated camera 130 and other calibrated cameras compute corresponding locations of the marker 210 (e.g., x, y, z coordinates). The calibrated camera has an overlapping view of the marker 210.
At block 1008, the uncalibrated camera 132 is calibrated based on the computed location of the marker 210 (e.g., x, y, z coordinates) provided by the calibrated camera 130. The process is repeated at 1010 to calibrate other non-calibrated cameras (by moving the marker 210 to be within the overlapping field of view of calibrated cameras and uncalibrated cameras).
The machine 1200 may include processors 1202, memory 1204, and I/O components 1242, which may be configured to communicate with each other via a bus 1244. In an example embodiment, the processors 1202. (e.g., a Central Processing Unit (CPU), a Reduced Instruction Set Computing (RISC) processor, a Complex Instruction Set Computing (CISC) processor, a Graphics Processing Unit (GPU), a Digital Signal Processor (DSP), an ASIC, a Radio-Frequency Integrated Circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 1206 and a processor 1210 that execute the instructions 1208. The term “processor” is intended to include multi-core processors that may comprise two or more independent processors (sometimes referred to as “cores”) that may execute instructions contemporaneously. Although
The memory 1204 includes a main memory 1212, a static memory 1214, and a storage unit 1216, both accessible to the processors 1202 via the bus 1244. The main memory 1204, the static memory 1214, and storage unit 1216 store the instructions 1208 embodying any one or more of the methodologies or functions described herein. The instructions 1208 may also reside, completely or partially, within the main memory 1212, within the static memory 1214, within machine-readable medium 1218 within the storage unit 1216, within at least one of the processors 1202 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by the machine 1200.
The I/O components 1242 may include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. The specific I/O components 1242 that are included in a particular machine will depend on the type of machine, example, portable machines such as mobile phones may include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I/O components 1242 may include many other components that are not shown in
In further example embodiments, the I/O components 1242 may include biometric components 1232, motion components 1234, environmental components 1236, or position components 1238, among a wide array of other components. For example, the biometric components 1232 include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram-based identification), and the like. The motion components 1234 include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth. The environmental components 1236 include, for example, illumination sensor components (e.g., photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors to detection concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to a surrounding physical environment. The position components 1238 include location sensor components (e.g., a GPS receiver component), altitude sensor components (e.g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensor components (e.g., magnetometers), and the like.
Communication may be implemented using a wide variety of technologies. The I/O components 1242 further include communication components 1240 operable to couple the machine 1200 to a network 1220 or devices 1222 via a coupling 1224 and a coupling 1226, respectively. For example, the communication components 1240 may include a network interface component or another suitable device to interface with the network 1220. In further examples, the communication components 1240 may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities. The devices 1222 may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a USB).
Moreover, the communication components 1240 may detect identifiers or include components operable to detect identifiers. For example, the communication components 1240 may include Radio Frequency identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), or acoustic detection components (e.g., microphones to identify tagged audio signals). In addition, a variety of information may be derived via the communication components 1240, such as location via Internet Protocol (IP) geolocation, location via Wi-Fi® signal triangulation, location via detecting an NFC beacon signal that may indicate a particular location, and so forth.
The various memories (e.g., memory 1204, main memory 1212, static memory 1214, and/or memory of the processors 1202) and/or storage unit 1216 may store one or more sets of instructions and data structures (e.g., software) embodying or used by any one or more of the methodologies or functions described herein. These instructions (e.g., the instructions 1208), when executed by processors 1202, cause various operations to implement the disclosed embodiments.
The instructions 1208 may be transmitted or received over the network 1220, using a transmission medium, via a network interface device (e.g., a network interface component included in the communication components 1240) and using any one of a number of well-known transfer protocols (e.g., hypertext transfer protocol (HTTP)), Similarly, the instructions 1208 may be transmitted or received using a transmission medium via the coupling 1226 (e.g., a peer-to-peer coupling) to the devices 1222.
Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader scope of the present disclosure. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.
The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.
Patent | Priority | Assignee | Title |
11694361, | Jun 21 2019 | NICE NORTH AMERICA LLC | Camera auto-calibration system |
Patent | Priority | Assignee | Title |
6115052, | Feb 12 1998 | Mitsubishi Electric Research Laboratories, Inc | System for reconstructing the 3-dimensional motions of a human figure from a monocularly-viewed image sequence |
7149325, | Apr 19 2001 | Honeywell International Inc. | Cooperative camera network |
7450735, | Oct 16 2003 | University of Central Florida Research Foundation, Inc. | Tracking across multiple cameras with disjoint views |
7483049, | Nov 20 1998 | MAXX HOLDINGS, INC | Optimizations for live event, real-time, 3D object tracking |
7512261, | Jul 27 2004 | Microsoft Technology Licensing, LLC | System and method for calibrating multiple cameras without employing a pattern by inter-image homography |
7619647, | Apr 20 2005 | Mitsubishi Electric Research Laboratories, Inc | Context aware surveillance system using a hybrid sensor network |
7697839, | Jun 30 2006 | Microsoft Technology Licensing, LLC | Parametric calibration for panoramic camera systems |
7775439, | Jan 04 2007 | Fuji Xerox Co., Ltd. | Featured wands for camera calibration and as a gesture based 3D interface device |
8477241, | May 29 2009 | Hewlett-Packard Development Company, L.P. | Multi-projector system and method |
9633434, | Jul 18 2012 | AGT INTERNATIONAL GMBH | Calibration of camera-based surveillance systems |
20150196839, | |||
20190364206, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 21 2019 | Nortek Security & Control LLC | (assignment on the face of the patent) | / | |||
Jun 21 2019 | GOPE, CHANDAN | Nortek Security & Control LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 049556 | /0383 | |
Aug 30 2022 | Nortek Security & Control LLC | NICE NORTH AMERICA LLC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 066242 | /0513 |
Date | Maintenance Fee Events |
Jun 21 2019 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Aug 05 2024 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 30 2024 | 4 years fee payment window open |
Sep 30 2024 | 6 months grace period start (w surcharge) |
Mar 30 2025 | patent expiry (for year 4) |
Mar 30 2027 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 30 2028 | 8 years fee payment window open |
Sep 30 2028 | 6 months grace period start (w surcharge) |
Mar 30 2029 | patent expiry (for year 8) |
Mar 30 2031 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 30 2032 | 12 years fee payment window open |
Sep 30 2032 | 6 months grace period start (w surcharge) |
Mar 30 2033 | patent expiry (for year 12) |
Mar 30 2035 | 2 years to revive unintentionally abandoned end. (for year 12) |