CA3153390C - Multi-camera synchronization method and distributed system - Google Patents

Multi-camera synchronization method and distributed system Download PDF

Info

Publication number
CA3153390C
CA3153390C CA3153390A CA3153390A CA3153390C CA 3153390 C CA3153390 C CA 3153390C CA 3153390 A CA3153390 A CA 3153390A CA 3153390 A CA3153390 A CA 3153390A CA 3153390 C CA3153390 C CA 3153390C
Authority
CA
Canada
Prior art keywords
cameras
camera
thread
completed
worker
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CA3153390A
Other languages
French (fr)
Other versions
CA3153390A1 (en
Inventor
Bangfa DONG
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
10353744 Canada Ltd
Original Assignee
10353744 Canada Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 10353744 Canada Ltd filed Critical 10353744 Canada Ltd
Publication of CA3153390A1 publication Critical patent/CA3153390A1/en
Application granted granted Critical
Publication of CA3153390C publication Critical patent/CA3153390C/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising
    • H04N5/06Generation of synchronising signals
    • H04N5/067Arrangements or circuits at the transmitter end
    • H04N5/073Arrangements or circuits at the transmitter end for mutually locking plural sources of synchronising signals, e.g. studios or relay stations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Studio Devices (AREA)

Abstract

The present invention belongs to the field of computer applications. Disclosed are a multi-camera synchronization method and distributed system, the method being applied to the distributed system. The system comprises a master node and at least one work node, several cameras being connected to each work node. The method comprises: any work node performing the following operations for all connected cameras: when any camera enters a preparation-complete state, starting pre-acquisition synchronization of the camera, each camera being pre-assigned an independent thread by the work node; as the pre-acquisition synchronization of each camera is completed, blocking the thread of the camera until the pre-acquisition synchronization of all of the cameras is completed, and send a remote synchronization request to the master node; and when remote synchronization completion information broadcast by the master node is received, while waking up the blocked thread of each camera, respectively calling an SDK of each camera so as to obtain a picture frame. The present invention may ensure that picture frames obtained by all of the cameras are from the same moment.

Description

MULTI-CAMERA SYNCHRONIZATION METHOD AND DISTRIBUTED SYSTEM
BACKGROUND OF THE INVENTION
Technical Field [0001] The present invention relates to the field of computer applications, and more particularly to a method of and a distributed system for synchronizing multiple cameras.
Description of Related Art
[0002] With the rapid development of deep learning, computer vision has become one of the most important techniques in the field of artificial intelligence, and has been widely applied in many fields of specialty, such as in unattended stores in the field of smart retail.
The computer vision technique is mainly directed to processing images and videos, and exerts an irreplaceable function in detecting and tracking personnel. In the case of an unattended store so large in area that the picture captured by a single camera cannot cover the entire store, multiple cameras are required for the coverage, and data processing of these cameras is also distributed on different PC equipment. When it is required to detect or track persons in the store, pictures captured by all the cameras should be of the same timing, to thusly guarantee that no repeated detections of persons should occur.
[0003] In the state of the art, synchronization of cameras mostly employs the scheme of hardware synchronization. Such scheme requires a separate hardware synchronizing equipment to send a collection synchronizing signal to each camera at fixed timing, and all the cameras should be customized with modules capable of receiving synchronizing signals and synchronously collecting pictures, but such scheme needs an additional hardware equipment, and this necessarily increases the cost of the system as a whole.
Besides, there is another scheme whereby the camera equipment imprints a time stamp on each image frame of the camera to enable the user to match according to the time stamps, but since the shooting time of each camera is different from those of others, the timings for the cameras to obtain frames also cannot be unified, so a time point must be artificially set, Date Recue/Date Received 2022-03-03 and the cameras are thereafter matched in accordance with this time point, but in so doing there might be the circumstance in which no picture frame is matched out for a certain camera at one timing, while two picture frames are matched out at another timing.
[0004] In short, it has become a technical problem to be urgently dealt with as how to synchronize multiple cameras without the addition of extra hardware synchronizing equipment, so as to ensure that picture frames obtained by all the cameras are of the same timing.
SUMMARY OF THE INVENTION
[0005] In order to overcome the technical problem mentioned in the above Description of Related Art, the present invention provides a method of and a distributed system for synchronizing multiple cameras to synchronize the multiple cameras without the addition of extra hardware synchronizing equipment, to ensure that picture frames obtained by all the cameras are of the same timing.
[0006] Specific technical solutions provided by the embodiments of the present invention are as follows.
[0007] According to the first aspect, there is provided a method of synchronizing multiple cameras, the method is applied in a distributed system that comprises a master node and at least one worker node each being connected with a plurality of cameras, and the method comprises:
[0008] performing the following operations on all of the connected cameras by anyone of the worker nodes:
[0009] starting to perform pre-collection synchronization on the cameras when anyone of the camera enters a preparation completed status, wherein each of the cameras is assigned in advance with an independent thread by the worker node;

Date Recue/Date Received 2022-03-03
[0010] obstructing the thread of the camera whenever the pre-collection synchronization of one of the cameras is completed, until pre-collection synchronizations of all of the cameras have been completed, and initiating a remote synchronization request to the master node;
and
[0011] waking up the obstructed thread of each of the cameras while invoking an SDK of each of the cameras to obtain picture frames, when remote synchronization completion information broadcast by the master node is received.
[0012] Further, the step of obstructing the thread of the camera whenever the pre-collection synchronization of one of the cameras is completed, until pre-collection synchronizations of all of the cameras have been completed includes:
[0013] adding 1 to a first global counter whenever the worker node receives a preparation completion signal sent by one of the cameras whose initialization has been completed, and obstructing the thread of the camera; and
[0014] comparing the counting of the first global counter with the number of all of the cameras, if the two being equal, determining that pre-collection synchronizations of all of the cameras have been completed.
[0015] Moreover, the method further comprises, after the step of initiating a remote synchronization request to the master node:
[0016] the master node judging whether a remote synchronization condition is reached on receiving the remote synchronization request, if the remote synchronization condition is reached, generating the remote synchronization completion information, and broadcasting the same to all the worker nodes.
[0017] Further, the step of the master node judging whether a remote synchronization condition is reached on receiving the remote synchronization request includes:
[0018] the master node adding 1 to a second global counter whenever it receives a remote synchronization request initiated by one of the worker nodes; and Date Recue/Date Received 2022-03-03
[0019] comparing counting of the second global counter with the number of all of the worker nodes, if the two being equal, generating the remote synchronization completion information.
[0020] Moreover, the method further comprises:
[0021] starting to perform post-collection synchronization when the thread of anyone of the cameras obtains a picture frame, and determining that the post-collection synchronization is completed when the threads of all of the cameras have obtained picture frames.
[0022] Moreover, the method further comprises:
[0023] when it is determined that the post-collection synchronization is completed, anyone of the worker nodes storing the picture frames obtained by the threads of all of the connected cameras entirely in a memory of a data processing module.
[0024] According to the second aspect, there is provided a distributed system for synchronizing multiple cameras, the system comprises a master node and at least one worker node each being connected with a plurality of cameras;
[0025] anyone of the worker nodes includes:
[0026] a pre-collection synchronizing unit, for starting to perform pre-collection synchronization on the cameras when anyone of the camera enters a preparation completed status, wherein each of the cameras is assigned in advance with an independent thread by the worker node;
[0027] a thread obstructing unit, for obstructing the thread of the camera whenever the pre-collection synchronization of one of the cameras is completed;
[0028] a remote synchronization requesting unit, for initiating a remote synchronization request to the master node after pre-collection synchronizations of all of the cameras have been completed, and receiving remote synchronization completion information broadcast by the master node; and
[0029] a thread waking-up unit, for waking up the obstructed thread of each of the cameras while Date Recue/Date Received 2022-03-03 invoking an SDK of each of the cameras to obtain picture frames, when the remote synchronization completion information broadcast by the master node is received;
[0030] the master node is employed for receiving a remote synchronization request initiated by anyone of the worker nodes, and broadcasting the remote synchronization completion information to all of the worker nodes.
[0031] Further, the pre-collection synchronizing unit is specifically employed for:
[0032] adding 1 to a first global counter whenever the worker node receives a preparation completion signal sent by one of the cameras whose initialization has been completed, and obstructing the thread of the camera; and
[0033] comparing the counting of the first global counter with the number of all of the cameras, if the two being equal, determining that the pre-collection synchronization has been completed.
[0034] Further, the master node is specifically employed for:
[0035] judging whether a remote synchronization condition is reached on receiving the remote synchronization request, if the remote synchronization condition is reached, generating the remote synchronization completion information, and broadcasting the same to all the worker nodes.
[0036] Further, the master node is specifically employed for:
[0037] adding 1 to a second global counter whenever it receives a remote synchronization request initiated by one of the worker nodes; and
[0038] comparing counting of the second global counter with the number of all of the worker nodes, if the two being equal, generating the remote synchronization completion information.
[0039] Further, anyone of the worker nodes further includes:
[0040] a post-collection synchronizing unit, for starting to perform post-collection Date Recue/Date Received 2022-03-03 synchronization when the thread of anyone of the cameras obtains a picture frame, and determining that the post-collection synchronization is completed when the threads of all of the cameras have obtained picture frames.
[0041] Further, anyone of the worker nodes further includes:
[0042] a picture frame storing module, for storing the picture frames obtained by the threads of all of the cameras connected with the worker node entirely in a memory of a data processing module, when it is determined that the post-collection synchronization is completed.
[0043] Further, the master node and the at least one worker node reside in the same and single local area network.
[0044] The technical solutions provided by the embodiments of the present invention bring about the following advantageous effects.
[0045] The present invention dispenses with any extra hardware synchronizing equipment, discards hardware synchronization, and is adaptable to most cameras currently available on the market, insofar as the cameras supply SDKs that obtain video information, so the present invention achieves stronger applicability.
[0046] The present invention makes no use of the time stamp, and employs instead a distributed scheme and a synchronous lock mechanism whereby is made possible to more precisely and synchronously invoke video SDKs to obtain picture frames, so as to ensure that picture frames read by the threads of various cameras are of the same timing.
BRIEF DESCRIPTION OF THE DRAWINGS
[0047] To more clearly describe the technical solutions in the embodiments of the present Date Recue/Date Received 2022-03-03 invention, drawings required to illustrate the embodiments are briefly introduced below.
Apparently, the drawings introduced below are merely directed to some embodiments of the present invention, while persons ordinarily skilled in the art may further acquire other drawings on the basis of these drawings without spending creative effort in the process.
[0048] Fig. 1 is a view schematically illustrating the application environment for a method of synchronizing multiple cameras provided by an embodiment of the present invention;
[0049] Fig. 2 is a flowchart illustrating a method of synchronizing multiple cameras provided by an embodiment of the present invention; and
[0050] Fig. 3 is a block diagram illustrating a distributed system for synchronizing multiple cameras provided by an embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0051] To make more lucid and clear the objectives, technical solutions and advantages of the present invention, the technical solutions in the embodiments of the present invention will be clearly and comprehensively described below with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the embodiments as described are merely partial, rather than the entire, embodiments of the present invention.
Any other embodiments makeable by persons ordinarily skilled in the art on the basis of the embodiments in the present invention without creative effort shall all fall within the protection scope of the present invention.
[0052] As should be understood, in the description to the present invention, unless explicitly required otherwise in the context, the wordings of "comprising", "including", "containing"
and similar expressions should be explained to denote the meaning of inclusion, rather than the meaning of exclusion or exhaustion throughout the Description and the Claims;

Date Recue/Date Received 2022-03-03 in other words, they denote the meaning of "including, but not being limited to".
[0053] As should be further understood, the wordings "first", "second" and "third" are merely used for descriptive purposes, and should not be misunderstood to indicate or imply relative importance. In addition, in the description to the present invention, unless noted otherwise, the wordings of "a plurality of/plural" and "multiple" denote the meaning of two or more.
[0054] The method of synchronizing multiple cameras provided by an embodiment of the present invention is applicable to the application environment as shown in Fig. 1, in which the application environment is a distributed system that comprises master node 101 and plural worker nodes 102 respectively connected with different cluster cameras 103, each cluster camera 103 includes one or more camera(s), and different cluster cameras are arranged in different local regions within a single monitor region; as can be understood, there are only two worker nodes 102 in Fig. 1, while in actual application, the number of worker nodes 102 may as well be one or two or more. Master node 101 communicates with worker nodes 102 via network, worker nodes 102 communicate with cluster cameras 103 via network, and the network can be either in the wired mode or in the wireless mode.
Master node 101 and worker nodes 102 can both be configured as electronic equipment each having a processor and a memory, the electronic equipment can be such various equipment as personal computers (such as PC machines) and servers, etc.; the number of cameras in each cluster camera 103 can be dynamically increased or decreased;
the various cameras in cluster camera 103 are all preconfigured with camera SDKs (Software Development Kit) for collecting video image data, and the cameras may be of the same model or of different models.
[0055] The method of synchronizing multiple cameras provided by the embodiment of the present invention is employed to synchronize the multiple cameras in the monitor region of various cameras without the addition of extra hardware synchronizing equipment, to Date Recue/Date Received 2022-03-03 ensure that picture frames obtained by all the cameras are of the same timing, so as to precisely detect or track moveable objects (such as persons) within the camera monitor region. The camera monitor region includes, but is not limited to, large shopping malls, smart retail unattended supermarkets, and stations, etc.
[0056] In one embodiment, there is provided a method of synchronizing multiple cameras, the method is explained by an example of its being applied to the distributed system in Fig.
1, and the distributed system comprises a master node and at least one worker node each being connected with a plurality of cameras; as shown in Fig. 2, the method comprises the following steps.
[0057] Step S 11 ¨ any worker node starting to perform pre-collection synchronization on the camera when any connected camera enters a preparation completed status, wherein each camera is assigned in advance with an independent thread by the worker node.
[0058] That the camera enters a preparation completed status indicates that the camera has completed preparation work.
[0059] The thread of the camera is employed to invoke the camera SDK to obtain picture frames, the thread of the camera can be obstructed to enter an obstructed status (alternatively referred to as a waiting status), the obstructed thread can be woken up to enter an executable status, after which, the thread can be executed to invoke the camera SDK to obtain picture frames.
[0060] In this embodiment, when any camera connected with any worker node enters the preparation completed status, pre-collection synchronization is started to be performed on the camera, and the pre-collection synchronization means to synchronize the camera before frame pictures of the camera are read.

Date Recue/Date Received 2022-03-03
[0061] Step S12 - obstructing the thread of a camera whenever the pre-collection synchronization of the camera is completed, until pre-collection synchronizations of all cameras have been completed, and initiating a remote synchronization request to the master node.
[0062] Specifically, the worker node can employ the mode of a global counter, whenever a camera enters the preparation completed status, 1 is added to the global counter and the thread of the camera that enters the preparation completed status is obstructed, when the counting of the global counter is equal to the number of cameras connected with the worker node, it is determined that pre-collection synchronizations of all cameras are completed.
[0063] In this embodiment, since the thread of each camera will be obstructed when the pre-collection synchronization of the camera is completed, so when the pre-collection synchronizations of all cameras are completed, the respective threads of all cameras are entirely obstructed. The worker node can initiate a remote synchronization request to the master node through network after the threads of all cameras connected with the worker node have entered the obstructed status.
[0064] Step S13 - waking up the obstructed thread of each camera while invoking an SDK of each camera to obtain picture frames, when remote synchronization completion information broadcast by the master node is received.
[0065] Specifically, when the worker node receives the remote synchronization completion information broadcast by the master node, the worker node employs a notifyAll 0 method to perform a waking-up process on the thread of each camera obstructed by the worker node, so that the thread of each camera enters an executable status after having been woken up, and the thread of the camera can invoke the SDK to obtain picture frames after it enters the executable status.
Date Recue/Date Received 2022-03-03
[0066] In this embodiment, by waking up the obstructed thread of each camera while invoking the SDK of each camera to obtain picture frames, since the threads of all cameras synchronously invoke corresponding camera SDKs to obtain picture frames, the SDKs supplied by the various cameras can be used at the same timing to obtain picture frames of the various cameras, whereby is ensured that picture frames read by the threads of the various cameras are of the same timing.
[0067] The method of synchronizing multiple cameras provided by the embodiment of the present invention employs a distributed scheme and a synchronous lock mechanism, whereby when any worker node completes pre-collection synchronization of all cameras connected therewith, the threads of the various cameras connected with the worker node are also entirely obstructed, the worker node then initiates a remote synchronization request to the master node, and wakes up the obstructed thread of each camera while invokes the SDK of each camera to obtain picture frames after receiving remote synchronization completion information broadcast by the master node;
consequently, it is made possible to use the SDKs supplied by the various cameras at the same timing to obtain picture frames of the various cameras, so as to ensure that the picture frames read by the threads of the various cameras are of the same timing.
[0068] In one embodiment, prior to step S I I of any worker node starting to perform pre-collection synchronization on the camera when any connected camera enters a preparation completed status, the method can further comprise:
[0069] the various worker nodes initializing all cameras respectively connected therewith, and assigning an independent thread to each of the cameras respectively connected therewith.
[0070] Specifically, after having been started, the various worker nodes can obtain from the master node configuration files stored in advance on the master node, load the configuration files, initialize the various cameras through configuration parameters in the configuration files, set resolutions of the cameras, and assign an independent thread to Date Recue/Date Received 2022-03-03 each camera.
[0071] In one embodiment, step S12 of obstructing the thread of the camera whenever the pre-collection synchronization of one of the cameras is completed, until pre-collection synchronizations of all of the cameras have been completed can specifically include:
[0072] adding 1 to a first global counter whenever the worker node receives a preparation completion signal sent by one of the cameras whose initialization has been completed, and obstructing the thread of the camera; and comparing the counting of the first global counter with the number of all of the cameras, if the two being equal, determining that pre-collection synchronizations of all of the cameras have been completed.
[0073] The worker node presets a first global counter, and the first global counter is initialized as 0 before pre-collection synchronization. The first global counter can be employed to count the total number of cameras that have completed preparation work in all the cameras connected with the worker node.
[0074] In this embodiment, when the worker node obstructs a camera that sends a preparation completion signal, a wait 0 method can be employed to obstruct the thread of the camera, so that the thread of the camera enters an obstructed status, and the execution to invoke the SDK to obtain picture frames will be temporarily stopped after the thread of the camera has entered the obstructed status.
[0075] In one embodiment, the method further comprises, after step S12 of initiating a remote synchronization request to the master node:
[0076] the master node judging whether a remote synchronization condition is reached on receiving the remote synchronization request, if the remote synchronization condition is reached, generating the remote synchronization completion information, and broadcasting the same to all the worker nodes.

Date Recue/Date Received 2022-03-03
[0077] Specifically, the step of the master node judging whether a remote synchronization condition is reached on receiving the remote synchronization request can include the following steps:
[0078] the master node adding 1 to a second global counter whenever it receives a remote synchronization request initiated by a worker node, and comparing counting of the second global counter with the number of all of the worker nodes, if the two being equal, generating the remote synchronization completion information.
[0079] The master node presets a second global counter, and the second global counter is initialized as zero before remote synchronization and cleared to zero after remote synchronization has been completed.
[0080] In this embodiment, after having received remote synchronization requests respectively initiated by all the worker nodes, the master node generates the remote synchronization completion information, and broadcasts the information to all the worker nodes. It is thusly possible for the master node to remotely synchronize all the worker nodes, so as to enable the various worker nodes to subsequently locally synchronize cluster cameras respectively connected therewith, whereby it is made possible to synchronize all cameras within the entire monitor region, and to detect or track moveable objects within the camera monitor region more comprehensively and precisely.
[0081] As should be noted, after the master node has broadcast the remote synchronization completion information to all the worker nodes, the second global counter is cleared to zero.
[0082] In this embodiment, the master node can employ the counter mode to remotely synchronize all the worker nodes, that is to say, after having received a remote synchronization request initiated by a single worker node, the master node adds 1 to the global counter, when the counting of the global counter is equal to the number of all the Date Recue/Date Received 2022-03-03 worker nodes, this indicates that remote synchronization is completed, then the master node generates the remote synchronization completion information, and broadcasts the remote synchronization completion information to all the worker nodes.
[0083] In one embodiment, the master node and the at least one worker node reside in the same and single local area network.
[0084] In this embodiment, by disposing the master node and the at least one worker node in the same and single local area network, stability of the remote synchronizing process can be guaranteed, and remote synchronization failure due to network problems can be avoided.
[0085] In one embodiment, the method further comprises, after step S13:
[0086] starting to perform post-collection synchronization when the thread of anyone camera obtains a picture frame, and determining that the post-collection synchronization is completed when the threads of all of the cameras have obtained picture frames.
[0087] Specifically, when the thread of any camera of a worker node obtains a picture frame, post-collection synchronization is started to be performed, whenever the thread of a camera has obtained a picture frame, 1 is added to a third global counter, the counting of the third global counter is compared with the number of all the cameras, if the two are equal, it is determined that the threads of all cameras have obtained picture frames, i.e., it is indicated that post-collection synchronization is completed.
[0088] The worker node presets a third global counter, and the third global counter is initialized as zero before post-collection synchronization and cleared to zero after post-collection synchronizations of all cameras have been completed.
[0089] As should be noted, after post-collection synchronization has been completed, the process returns to step Sll to execute the next process of synchronizing multiple cameras.

Date Recue/Date Received 2022-03-03
[0090] In this embodiment, it is guaranteed through pre-collection synchronization, namely one round of synchronization before reading the cameras, that camera data as read are of the same timing, and it is guaranteed through post-collection synchronization, namely one round of synchronization after reading the cameras, that the set of picture frames read by the SDKs of all the cameras is complete, so that this facilitates subsequent splicing and combining of the entire set of picture frames, and facilitates precise detecting and tracking of moveable objects (such as persons) within the camera monitor region.
[0091] In one embodiment, the method further comprises:
[0092] when it is determined that the post-collection synchronization is completed, anyone worker node storing the picture frames obtained by the threads of all the connected cameras entirely in a memory of a data processing module.
[0093] The data processing module is employed to splice and combine the entire set of picture frames, and the data processing module can be disposed either in the worker node or on a preset server, to which no restriction is made in the embodiments of the present invention.
[0094] In one embodiment, there is provided a distributed system for synchronizing multiple cameras, as shown in Fig. 3, the system comprises a master node 31 and at least one worker node 32 each being connected with a plurality of cameras; to facilitate comprehension, only one worker node 32 is shown in Fig. 3.
[0095] The any worker node 32 includes:
[0096] a pre-collection synchronizing unit 321, for starting to perform pre-collection synchronization on the cameras when anyone of the camera enters a preparation completed status, wherein each of the cameras is assigned in advance with an independent thread by the worker node;
Date Recue/Date Received 2022-03-03
[0097] a thread obstructing unit 322, for obstructing the thread of the camera whenever the pre-collection synchronization of one of the cameras is completed;
[0098] a remote synchronization requesting unit 323, for initiating a remote synchronization request to the master node after pre-collection synchronizations of all of the cameras have been completed, and receiving remote synchronization completion information broadcast by the master node; and
[0099] a thread waking-up unit 324, for waking up the obstructed thread of each of the cameras while invoking an SDK of each of the cameras to obtain picture frames, when the remote synchronization completion information broadcast by the master node is received;
[0100] the master node 31 is employed for receiving a remote synchronization request initiated by anyone of the worker nodes, and broadcasting the remote synchronization completion information to all of the worker nodes 32.
[0101] In one embodiment, the pre-collection synchronizing unit 321 is specifically employed for:
[0102] adding 1 to a first global counter whenever the worker node receives a preparation completion signal sent by one of the cameras whose initialization has been completed, and obstructing the thread of the camera; and
[0103] comparing the counting of the first global counter with the number of all of the cameras, if the two being equal, determining that the pre-collection synchronization has been completed.
[0104] In one embodiment, the master node 31 is specifically employed for:
[0105] judging whether a remote synchronization condition is reached on receiving the remote synchronization request, if the remote synchronization condition is reached, generating the remote synchronization completion information, and broadcasting the same to all the worker nodes.
[0106] In one embodiment, the master node 31 is specifically employed for:

Date Recue/Date Received 2022-03-03
[0107] adding 1 to a second global counter whenever it receives a remote synchronization request initiated by one of the worker nodes; and
[0108] comparing counting of the second global counter with the number of all of the worker nodes, if the two being equal, generating the remote synchronization completion information.
[0109] In one embodiment, the any worker node 32 further includes:
[0110] a post-collection synchronizing unit 325, for starting to perform post-collection synchronization when the thread of anyone of the cameras obtains a picture frame, and determining that the post-collection synchronization is completed when the threads of all of the cameras have obtained picture frames.
[0111] In one embodiment, the any worker node 32 further includes:
[0112] a picture frame storing module 326, for storing the picture frames obtained by the threads of all of the cameras connected with the worker node entirely in a memory of a data processing module, when it is determined that the post-collection synchronization is completed.
[0113] In one embodiment, the master node 31 and the at least one worker node 32 reside in the same and single local area network.
[0114] The distributed system for synchronizing multiple cameras provided by the embodiment of the present invention pertains to the same inventive conception as the method of synchronizing multiple cameras provided by an embodiment of the present invention, can execute the method of synchronizing multiple cameras provided by an embodiment of the present invention, possesses corresponding functional modules to execute the method of synchronizing multiple cameras, and achieves advantageous effects.
Technical details not comprehensively described in this embodiment can be inferred from the method of synchronizing multiple cameras provided by an embodiment of the present invention, and Date Recue/Date Received 2022-03-03 are not redundantly described in this context.
[0115] As should be clear to persons skilled in the art, the embodiment of the present invention can be embodied as a method, a system or a computer program product.
Accordingly, in the embodiments of the present invention can be employed the form of complete hardware embodiment, complete software embodiment, or embodiment combining software with hardware. Moreover, in the embodiments of the present invention can be employed the form of one or more computer program product(s) implemented on a computer available storage medium (including, but not limited to, a magnetic disk memory, a CD-ROM, an optical memory, etc.) containing computer available program codes.
[0116] The embodiments of the present invention are described with reference to flowcharts and/or block diagrams of the embodied method, device (system), and computer program product in the embodiments of the present invention. As should be understood, it is possible for computer program instructions to realize each flow and/or block in the flowcharts and/or block diagrams, and the combination of flows and/or blocks in the flowcharts and/or block diagrams. These computer program instructions can be supplied to a general computer, a dedicated computer, an embedded processor or the processor of any other programmable data processing device to generate a machine enabling the instructions executed by the computer or the processor of any other programmable data processing device to generate a device for realizing the functions specified in one or more flow(s) of the flowcharts and/or one or more block(s) of the block diagrams.
[0117] These computer program instructions can also be stored in a computer-readable memory capable of guiding a computer or any other programmable data processing device to operate in specific modes enabling the instructions stored in the computer-readable memory to generate a product containing instructing means that realizes the functions specified in one or more flow(s) of the flowcharts and/or one or more block(s) of the Date Recue/Date Received 2022-03-03 block diagrams.
[0118] These computer program instructions can also be loaded to a computer or any other programmable data processing device, enabling to execute a series of operational steps on the computer or the any other programmable device to generate computer-realized processing, so that the instructions executed on the computer or the any other programmable device supply steps for realizing the functions specified in one or more flow(s) of the flowcharts and/or one or more block(s) of the block diagrams.
[0119] Although preferred embodiments in the embodiments of the present invention have been described, it is still possible for persons skilled in the art to make additional modifications and amendments to these embodiments upon learning the basic inventive concept.

Accordingly, the attached Claims are meant to subsume the preferred embodiments and all modifications and amendments that fall within the scope of the embodiments of the present invention.
[0120] Apparently, it is possible for persons skilled in the art to make various modifications and variations to the present invention without departing from the spirit and scope of the present invention. Thusly, should such modifications and variations to the present invention fall within the range of the Claims and equivalent technology of the present invention, the present invention is also meant to cover such modifications and variations.

Date Recue/Date Received 2022-03-03

Claims (130)

Claims:
1. A system comprising:
a pre-collection synchronizing unit, for starting to perform pre-collection synchronization on cameras when any one of the cameras enters a preparation completed status, wherein each of the cameras is assigned in advance with an independent thread by a worker node;
a thread obstructing unit, for obstructing the thread of the camera when the pre-collection synchronization of one of the cameras is completed;
a remote synchronization requesting unit, configured to:
initiate a remote synchronization request to a master node after pre-collection synchronizations of all the cameras have been completed;
receive remote synchronization completion information broadcast by the master node;
a thread waking-up unit, for waking up the obstructed thread of each of the cameras while invoking a software development kit (SDK) of each of the cameras to obtain picture frames, when the remote synchronization completion information broadcast by the master node is received, wherein the master node is for receiving a remote synchronization request initiated by any one of the worker nodes, and broadcasting the remote synchronization completion information to all of the worker nodes.
2. The system of claim 1, wherein the pre-collection synchronizing unit further comprises:
adding 1 to a first global counter when the worker node receives a preparation completion signal sent by one of the cameras whose initialization has been completed;
obstructing the thread of the camera;
comparing the counting of the first global counter with the number of all the cameras;
and Date recue/Date received 2023-04-21 if the two being equal, determining that the pre-collection synchronization has been completed.
3. The system of claim 1, wherein the master node further comprises:
judging whether a remote synchronization condition is reached on receiving the remote synchronization request;
if the remote synchronization condition is reached, generating the remote synchronization completion information; and broadcasting the same to all the worker nodes.
4. The system of claim 3, wherein the master node further comprises:
adding 1 to a second global counter when it receives a remote synchronization request initiated by one of the worker nodes;
comparing the counting of the second global counter with the number of all the worker nodes; and if the two being equal, generating the remote synchronization completion information.
5. The system of any one of claims 1 to 4, further comprises:
a post-collection synchronizing unit, configured to:
start to perform post-collection synchronization when the thread of any one of the cameras obtains a picture frame, and determine that the post-collection synchronization is completed when the threads of all the cameras have obtained picture frames.

Date recue/Date received 2023-04-21
6. The system of any one of claims 1 to 5, further comprises a picture frame storing module, for storing the picture frames obtained by the threads of all of the cameras connected with the worker node entirely in a memory of a data processing module, when it is determined that the post-collection synchronization is completed.
7. The system of any one of claims 1 to 6, is a distributed system comprising the master node and at least one worker node each being connected with a plurality of cameras.
8. The system of any one of claims 1 to 7, wherein the master node and plurality of worker nodes connected with different cluster cameras, wherein each cluster camera includes one or more cameras, wherein different cluster cameras are arranged in different local regions within a single monitor region.
9. The system of any one of claims 1 to 8, wherein the master node communicates with the worker nodes via network, wherein worker nodes communicate with cluster cameras via network, wherein the network is in a wired mode or in a wireless mode.
10. The system of any one of claims 1 to 9, wherein the master node and the worker nodes are configured as electronic equipment each having a processor and a memory, wherein the electronic equipment are personal computers and servers.
11. The system of any one of claims 1 to 10, wherein the number of cameras in each cluster camera is dynamically increased or decreased, wherein all the cameras in the cluster camera are all preconfigured with camera SDK for collecting video image data, and wherein the cameras are of same model or of different models.
12. The system of any one of claims 1 to 11, wherein the camera enters the preparation completed status indicates that the camera has completed preparation work.
13. The system of any one of claims 1 to 12, wherein the thread of the camera is to invoke the camera SDK to obtain picture frames, the thread of the camera is obstructed to enter an obstructed status wherein the obstructed thread is woken up to enter an executable status, wherein the thread is executed to invoke the camera SDK to obtain picture frames.

Date recue/Date received 2023-04-21
14. The system of any one of claims 1 to 13, wherein any camera connected with any worker node enters the preparation completed status, the pre-collection synchronization is started to be performed on the camera, wherein the pre-collection synchronization means to synchronize the camera before the frame pictures of the camera are read.
15. The system of any one of claims 1 to 14, wherein the worker node receives the remote synchronization completion information broadcast by the master node, the worker node employs a notifyAll method to perform a waking-up process on the thread of each camera obstructed by the worker node, wherein the thread of each camera enters an executable status after having been woken up, and wherein the thread of the camera invokes the SDK to obtain picture frames after it enters the executable status.
16. The system of any one of claims 1 to 15, further comprises:
the worker nodes initializing all cameras respectively connected; and assigning the independent thread to each of the cameras respectively connected.
17. The system of any one of claims 1 to 16, wherein the worker nodes obtains from master node configuration files stored in advance on the master node, load the configuration files, initialize the cameras through configuration parameters in the configuration files, set resolutions of the cameras, and assign the independent thread to each camera.
18. The system of claim 2, wherein the worker node presets the first global counter, wherein the first global counter is initialized as zero before the pre-collection synchronization, wherein the first global counter counts a total number of cameras that have completed preparation work in all the cameras connected with the worker node.
19. The system of any one of claims 1 to 18, wherein the worker node obstnicts a camera that sends a preparation completion signal, a wait method obstructs the thread of the camera, wherein the thread of the camera enters the obstructed status, wherein the execution to invoke the SDK to obtain picture frames is temporarily stopped after the thread of the camera has entered the obstructed status.

Date recue/Date received 2023-04-21
20. The system of claim 4, wherein the master node presets the second global counter, wherein the second global counter is initialized as zero before the remote synchronization and cleared to zero after the remote synchronization has been completed.
21. The system of any one of claims 1 to 20, wherein the master node to remotely synchronize all the worker nodes, to enable the worker nodes to subsequently locally synchronize cluster cameras respectively connected.
22. The system of claim 4, wherein after the master node has broadcast the remote synchronization completion information to all the worker nodes, the second global counter is cleared to zero.
23. The system of any one of claims 1 to 22, wherein the master node and the at least one worker node reside in the same and single local area network.
24. The system of any one of claims 1 to 23, wherein the thread of the camera has obtained the picture frame, 1 is added to a third global counter, wherein the counting of the third global counter is compared with the number of all the cameras, indicates that the post-collection synchronization is completed.
25. The system of any one of claims 1 to 24, wherein the worker node presets a third global counter, and the third global counter is initialized as zero before post-collection synchronization and cleared to zero after post-collection synchronizations of all cameras have been completed.
26. The system of claim 6, wherein the data processing module is configured to splice and combine entire set of picture frames, wherein the data processing module is disposed in the worker node or on a preset server.
27. A device comprising:

Date recue/Date received 2023-04-21 a pre-collection synchronizing unit, for starting to perform pre-collection synchronization on cameras when any one of the cameras enters a preparation completed status, wherein each of the cameras is assigned in advance with an independent thread by a worker node;
a thread obstructing unit, for obstructing the thread of the camera when the pre-collection synchronization of one of the cameras is completed;
a remote synchronization requesting unit, configured to:
initiate a remote synchronization request to a master node after pre-collection synchronizations of all the cameras have been completed;
receive remote synchronization completion information broadcast by the master node;
a thread waking-up unit, for waking up the obstructed thread of each of the cameras while invoking a software development kit (SDK) of each of the cameras to obtain picture frames, when the remote synchronization completion information broadcast by the master node is received, wherein the master node is for receiving a remote synchronization request initiated by any one of the worker nodes, and broadcasting the remote synchronization completion information to all of the worker nodes.
28. The device of claim 27, wherein the pre-collection synchronizing unit further comprises:
adding 1 to a first global counter when the worker node receives a preparation completion signal sent by one of the cameras whose initialization has been completed;
obstructing the thread of the camera;
comparing the counting of the first global counter with the number of all the cameras;
and if the two being equal, determining that the pre-collection synchronization has been completed.
Date recue/Date received 2023-04-21
29. The device of claim 27, wherein the master node further comprises:
judging whether a remote synchronization condition is reached on receiving the remote synchronization request;
if the remote synchronization condition is reached, generating the remote synchronization completion information; and broadcasting the same to all the worker nodes.
30. The device of claim 29, wherein the master node further comprises:
adding 1 to a second global counter when it receives a remote synchronization request initiated by one of the worker nodes;
comparing the counting of the second global counter with the number of all the worker nodes; and if the two being equal, generating the remote synchronization completion information.
31. The device of any one of claims 27 to 30, further comprises:
a post-collection synchronizing unit, configured to:
start to perform post-collection synchronization when the thread of any one of the cameras obtains a picture frame, and determine that the post-collection synchronization is completed when the threads of all the cameras have obtained picture frames.
32. The device of any one of claims 27 to 31, further comprises a picture frame storing module, for storing the picture frames obtained by the threads of all of the cameras connected with the worker node entirely in a memory of a data processing module, when it is determined that the post-collection synchronization is completed.

Date recue/Date received 2023-04-21
33. The device of any one of claims 27 to 32, is a distributed system comprising the master node and at least one worker node each being connected with a plurality of cameras.
34. The device of any one of claims 27 to 33, wherein the master node and plurality of worker nodes connected with different cluster cameras, wherein each cluster camera includes one or more cameras, wherein different cluster cameras are arranged in different local regions within a single monitor region.
35. The device of any one of claims 27 to 34, wherein the master node communicates with the worker nodes via network, wherein worker nodes communicate with cluster cameras via network, wherein the network is in a wired mode or in a wireless mode.
36. The device of any one of claims 27 to 35, wherein the master node and the worker nodes are configured as electronic equipment each having a processor and a memory, wherein the electronic equipment are personal computers and servers.
37. The device of any one of claims 27 to 36, wherein the number of cameras in each cluster camera is dynamically increased or decreased, wherein all the cameras in the cluster camera are all preconfigured with camera SDK for collecting video image data, and wherein the cameras are of same model or of different models.
38. The device of any one of claims 27 to 37, wherein the camera enters the preparation completed status indicates that the camera has completed preparation work.
39. The device of any one of claims 27 to 38, wherein the thread of the camera is to invoke the camera SDK to obtain picture frames, the thread of the camera is obstructed to enter an obstructed status wherein the obstructed thread is woken up to enter an executable status, wherein the thread is executed to invoke the camera SDK to obtain picture frames.
40. The device of any one of claims 27 to 39, wherein any camera connected with any worker node enters the preparation completed status, the pre-collection synchronization is started to be performed on the camera, wherein the pre-collection synchronization means to synchronize the camera before the frame pictures of the camera are read.

Date recue/Date received 2023-04-21
41. The device of any one of claims 27 to 40, wherein the worker node receives the remote synchronization completion information broadcast by the master node, the worker node employs a notifyAll method to perform a waking-up process on the thread of each camera obstructed by the worker node, wherein the thread of each camera enters an executable status after having been woken up, and wherein the thread of the camera invokes the SDK to obtain picture frames after it enters the executable status.
42. The device of any one of claims 27 to 41, further comprises:
the worker nodes initializing all cameras respectively connected; and assigning the independent thread to each of the cameras respectively connected.
43. The device of any one of claims 27 to 42, wherein the worker nodes obtains from master node configuration files stored in advance on the master node, load the configuration files, initialize the cameras through configuration parameters in the configuration files, set resolutions of the cameras, and assign the independent thread to each camera.
44. The device of claim 28, wherein the worker node presets the first global counter, wherein the first global counter is initialized as zero before the pre-collection synchronization, wherein the first global counter counts a total number of cameras that have completed preparation work in all the cameras connected with the worker node.
45. The device of any one of claims 27 to 44, wherein the worker node obstructs a camera that sends a preparation completion signal, a wait method obstructs the thread of the camera, wherein the thread of the camera enters the obstructed status, wherein the execution to invoke the SDK to obtain picture frames is temporarily stopped after the thread of the camera has entered the obstructed status.
46. The device of claim 30, wherein the master node presets the second global counter, wherein the second global counter is initialized as zero before the remote synchronization and cleared to zero after the remote synchronization has been completed.

Date recue/Date received 2023-04-21
47. The device of any one of claims 27 to 46, wherein the master node to remotely synchronize all the worker nodes, to enable the worker nodes to subsequently locally synchronize cluster cameras respectively connected.
48. The device of claim 30, wherein after the master node has broadcast the remote synchronization completion information to all the worker nodes, the second global counter is cleared to zero.
49. The device of any one of claims 27 to 48, wherein the master node and the at least one worker node reside in the same and single local area network.
50. The device of any one of claims 27 to 49, wherein the thread of the camera has obtained the picture frame, 1 is added to a third global counter, wherein the counting of the third global counter is compared with the number of all the cameras, indicates that the post-collection synchronization is completed.
51. The device of any one of claims 27 to 50, wherein the worker node presets a third global counter, and the third global counter is initialized as zero before post-collection synchronization and cleared to zero after post-collection synchronizations of all cameras have been completed.
52. The device of claim 32, wherein the data processing module is configured to splice and combine entire set of picture frames, wherein the data processing module is disposed in the worker node or on a preset server.
53. A method comprising:
starting to perform pre-collection synchronization on all cameras when any one of the cameras enters a preparation completed status, wherein each of the cameras is assigned in advance with an independent thread by a worker node;

Date recue/Date received 2023-04-21 obstructing the thread of the camera when the pre-collection synchronization of one of the cameras is completed, until the pre-collection synchronizations of all the cameras have been completed;
initiating a remote synchronization request to a master node; and waking up an obstructed thread of each of the cameras while invoking a software development kit (SDK) of each of the cameras to obtain picture frames when remote synchronization completion information broadcast by the master node is received.
54. The method of claim 53, wherein obstructing the thread of the camera when the pre-collection synchronization of one of the cameras is completed, until the pre-collection synchronizations of all the cameras have been completed comprises:
adding 1 to a first global counter when the worker node receives a preparation completion signal sent by one of the cameras whose initialization has been completed;
obstructing the thread of the camera;
comparing the counting of the first global counter with a number of all the cameras; and wherein if two being equal, determining that the pre-collection synchronizations of all the cameras have been completed.
55. The method of claim 53, further comprising:
the master node judging whether a remote synchronization condition is reached on receiving the remote synchronization request;
wherein if the remote synchronization condition is reached, generating the remote synchronization completion information; and broadcasting the same to all the worker nodes.
Date recue/Date received 2023-04-21
56. The method of claim 55, wherein the master node judging whether the remote synchronization condition is reached on receiving the remote synchronization request comprises:
adding 1 to a second global counter when the master node receives a remote synchronization request initiated by one of the worker nodes;
comparing the counting of the second global counter with the number of all the worker nodes; and if the two being equal, generating the remote synchronization completion information.
57. The method of any one of claims 53 to 56, further comprising:
starting to perform post-collection synchronization when the thread of any one of the cameras obtains a picture frame; and determining that the post-collection synchronization is completed when the threads of all the cameras have obtained picture frames.
58. The method of any one of claims 53 to 57, wherein the post-collection synchronization is completed, any one of the worker nodes storing the picture frames obtained by the threads of all the connected cameras entirely in a memory of a data processing module.
59. The method of any one of claims 53 to 58, is a distributed system comprising the master node and at least one worker node each being connected with a plurality of cameras.
60. The method of any one of claims 53 to 59, wherein the master node and plurality of worker nodes connected with different cluster cameras, wherein each cluster camera includes one or more cameras, wherein different cluster cameras are arranged in different local regions within a single monitor region.
61. The method of any one of claims 53 to 60, wherein the master node communicates with the worker nodes via network, wherein worker nodes communicate with cluster cameras via network, wherein the network is in a wired mode or in a wireless mode.

Date recue/Date received 2023-04-21
62. The method of any one of claims 53 to 61, wherein the master node and the worker nodes are configured as electronic equipment each having a processor and a memory, wherein the electronic equipment are personal computers and servers.
63. The method of any one of claims 53 to 62, wherein the number of cameras in each cluster camera is dynamically increased or decreased, wherein all the cameras in the cluster camera are all preconfigured with camera SDK for collecting video image data, and wherein the cameras are of same model or of different models.
64. The method of any one of claims 53 to 63, wherein the camera enters the preparation completed status indicates that the camera has completed preparation work.
65. The method of any one of claims 53 to 64, wherein the thread of the camera is to invoke the camera SDK to obtain picture frames, the thread of the camera is obstructed to enter an obstructed status wherein the obstructed thread is woken up to enter an executable status, wherein the thread is executed to invoke the camera SDK to obtain picture frames.
66. The method of any one of claims 53 to 65, wherein any camera connected with any worker node enters the preparation completed status, the pre-collection synchronization is started to be performed on the camera, wherein the pre-collection synchronization means to synchronize the camera before the frame pictures of the camera are read.
67. The method of any one of claims 53 to 66, wherein the worker node receives the remote synchronization completion information broadcast by the master node, the worker node employs a notifyAll method to perform a waking-up process on the thread of each camera obstructed by the worker node, wherein the thread of each camera enters an executable status after having been woken up, and wherein the thread of the camera invokes the SDK to obtain picture frames after it enters the executable status.
68. The method of any one of claims 53 to 67, further comprises:
the worker nodes initializing all cameras respectively connected; and assigning the independent thread to each of the cameras respectively connected.

Date recue/Date received 2023-04-21
69. The method of any one of claims 53 to 68, wherein the worker nodes obtains from master node configuration files stored in advance on the master node, load the configuration files, initialize the cameras through configuration parameters in the configuration files, set resolutions of the cameras, and assign the independent thread to each camera.
70. The method of any one of claims 53 to 69, wherein the worker node presets the first global counter, wherein the first global counter is initialized as zero before the pre-collection synchronization, wherein the first global counter counts the total number of cameras that have completed preparation work in all the cameras connected with the worker node.
71. The method of any one of claims 53 to 70, wherein the worker node obstructs a camera that sends a preparation completion signal, a wait method obstructs the thread of the camera, wherein the thread of the camera enters the obstructed status, wherein the execution to invoke the SDK to obtain picture frames is temporarily stopped after the thread of the camera has entered the obstructed status.
72. The method of any one of claims 53 to 71, wherein the master node presets the second global counter, wherein the second global counter is initialized as zero before the remote synchronization and cleared to zero after the remote synchronization has been completed.
73. The method of any one of claims 53 to 72, wherein the master node to remotely synchronize all the worker nodes, to enable the worker nodes to subsequently locally synchronize cluster cameras respectively connected.
74. The method of any one of claims 53 to 73, wherein after the master node has broadcast the remote synchronization completion information to all the worker nodes, the second global counter is cleared to zero.
75. The method of any one of claims 53 to 74, wherein the master node and the at least one worker node reside in the same and single local area network.

Date recue/Date received 2023-04-21
76. The method of any one of claims 53 to 75, wherein the thread of the camera has obtained the picture frame, 1 is added to a third global counter, wherein the counting of the third global counter is compared with the number of all the cameras, indicates that the post-collection synchronization is completed.
77. The method of any one of claims 53 to 76, wherein the worker node presets a third global counter, and the third global counter is initialized as zero before post-collection synchronization and cleared to zero after post-collection synchronizations of all cameras have been completed.
78. The method of claim 58, wherein the data processing module is configured to splice and combine entire set of picture frames, wherein the data processing module is disposed in the worker node or on a preset server.
79. A computer equipment comprising:
a storage medium;
a processor;
a computer program stored on the storage medium and executed on the processor, configured to:
starting to perform pre-collection synchronization on all cameras when any one of the cameras enters a preparation completed status, wherein each of the cameras is assigned in advance with an independent thread by a worker node;
obstructing the thread of the camera when the pre-collection synchronization of one of the cameras is completed, until the pre-collection synchronizations of all the cameras have been completed;
initiating a remote synchronization request to a master node; and Date recue/Date received 2023-04-21 waking up an obstructed thread of each of the cameras while invoking a software development kit (SDK) of each of the cameras to obtain picture frames when remote synchronization completion infoimation broadcast by the master node is received.
80. The computer equipment of claim 79, wherein obstructing the thread of the camera when the pre-collection synchronization of one of the cameras is completed, until the pre-collection synchronizations of all the cameras have been completed comprises:
adding 1 to a first global counter when the worker node receives a preparation completion signal sent by one of the cameras whose initialization has been completed;
obstructing the thread of the camera;
comparing the counting of the first global counter with a number of all the cameras; and wherein if two being equal, determining that the pre-collection synchronizations of all the cameras have been completed.
81. The computer equipment of claim 79, further comprising:
the master node judging whether a remote synchronization condition is reached on receiving the remote synchronization request;
wherein if the remote synchronization condition is reached, generating the remote synchronization completion information; and broadcasting the same to all the worker nodes.
82. The computer equipment of claim 81, wherein the master node judging whether the remote synchronization condition is reached on receiving the remote synchronization request comprises:
adding 1 to a second global counter when the master node receives a remote synchronization request initiated by one of the worker nodes;
Date recue/Date received 2023-04-21 comparing the counting of the second global counter with the number of all the worker nodes; and if the two being equal, generating the remote synchronization completion information.
83. The computer equipment of any one of claims 79 to 82, further comprising:
starting to perform post-collection synchronization when the thread of any one of the cameras obtains a picture frame; and determining that the post-collection synchronization is completed when the threads of all the cameras have obtained picture frames.
84. The computer equipment of any one of claims 79 to 83, wherein the post-collection synchronization is completed, any one of the worker nodes storing the picture frames obtained by the threads of all the connected cameras entirely in a memory of a data processing module.
85. The computer equipment of any one of claims 79 to 84, is a distributed system comprising the master node and at least one worker node each being connected with a plurality of cameras.
86. The computer equipment of any one of claims 79 to 85, wherein the master node and plurality of worker nodes connected with different cluster cameras, wherein each cluster camera includes one or more cameras, wherein different cluster cameras are arranged in different local regions within a single monitor region.
87. The computer equipment of any one of claims 79 to 86, wherein the master node communicates with the worker nodes via network, wherein worker nodes communicate with cluster cameras via network, wherein the network is in a wired mode or in a wireless mode.
88. The computer equipment of any one of claims 79 to 87, wherein the master node and the worker nodes are configured as electronic equipment each having a processor and a memory, wherein the electronic equipment are personal computers and servers.

Date recue/Date received 2023-04-21
89. The computer equipment of any one of claims 79 to 88, wherein the number of cameras in each cluster camera is dynamically increased or decreased, wherein all the cameras in the cluster camera are all preconfigured with camera SDK for collecting video image data, and wherein the cameras are of same model or of different models.
90. The computer equipment of any one of claims 79 to 89, wherein the camera enters the preparation completed status indicates that the camera has completed preparation work.
91. The computer equipment of any one of claims 79 to 90, wherein the thread of the camera is to invoke the camera SDK to obtain picture frames, the thread of the camera is obstructed to enter an obstructed status wherein the obstructed thread is woken up to enter an executable status, wherein the thread is executed to invoke the camera SDK to obtain picture frames.
92. The computer equipment of any one of claims 79 to 91, wherein any camera connected with any worker node enters the preparation completed status, the pre-collection synchronization is started to be performed on the camera, wherein the pre-collection synchronization means to synchronize the camera before the frame pictures of the camera are read.
93. The computer equipment of any one of claims 79 to 92, wherein the worker node receives the remote synchronization completion information broadcast by the master node, the worker node employs a notifyAll method to perform a waking-up process on the thread of each camera obstructed by the worker node, wherein the thread of each camera enters an executable status after having been woken up, and wherein the thread of the camera invokes the SDK to obtain picture frames after it enters the executable status.
94. The computer equipment of any one of claims 79 to 93, further comprises:
the worker nodes initializing all cameras respectively connected; and assigning the independent thread to each of the cameras respectively connected.

Date recue/Date received 2023-04-21
95. The computer equipment of any one of claims 79 to 94, wherein the worker nodes obtains from master node configuration files stored in advance on the master node, load the configuration files, initialize the cameras through configuration parameters in the configuration files, set resolutions of the cameras, and assign the independent thread to each camera.
96. The computer equipment of any one of claims 79 to 95, wherein the worker node presets the first global counter, wherein the first global counter is initialized as zero before the pre-collection synchronization, wherein the first global counter counts the total number of cameras that have completed preparation work in all the cameras connected with the worker node.
97. The computer equipment of any one of claims 79 to 96, wherein the worker node obstructs a camera that sends a preparation completion signal, a wait method obstructs the thread of the camera, wherein the thread of the camera enters the obstructed status, wherein the execution to invoke the SDK to obtain picture frames is temporarily stopped after the thread of the camera has entered the obstructed status.
98. The computer equipment of any one of claims 79 to 97, wherein the master node presets the second global counter, wherein the second global counter is initialized as zero before the remote synchronization and cleared to zero after the remote synchronization has been completed.
99. The computer equipment of any one of claims 79 to 98, wherein the master node to remotely synchronize all the worker nodes, to enable the worker nodes to subsequently locally synchronize cluster cameras respectively connected.
100. The computer equipment of any one of claims 79 to 99, wherein after the master node has broadcast the remote synchronization completion information to all the worker nodes, the second global counter is cleared to zero.
101. The computer equipment of any one of claims 79 to 100, wherein the master node and the at least one worker node reside in the same and single local area network.

Date recue/Date received 2023-04-21
102. The computer equipment of any one of claims 79 to 101, wherein the thread of the camera has obtained the picture frame, 1 is added to a third global counter, wherein the counting of the third global counter is compared with the number of all the cameras, indicates that the post-collection synchronization is completed.
103. The computer equipment of any one of claims 79 to 102, wherein the worker node presets a third global counter, and the third global counter is initialized as zero before post-collection synchronization and cleared to zero after post-collection synchronizations of all cameras have been completed.
104. The computer equipment of claim 84, wherein the data processing module is configured to splice and combine entire set of picture frames, wherein the data processing module is disposed in the worker node or on a preset server.
105. A computer readable physical memory having stored thereon a computer program executed by a computer configured to:
starting to perform pre-collection synchronization on all cameras when any one of the cameras enters a preparation completed status, wherein each of the cameras is assigned in advance with an independent thread by a worker node;
obstructing the thread of the camera when the pre-collection synchronization of one of the cameras is completed, until the pre-collection synchronizations of all the cameras have been completed;
initiating a remote synchronization request to a master node; and waking up an obstructed thread of each of the cameras while invoking a software development kit (SDK) of each of the cameras to obtain picture frames when remote synchronization completion information broadcast by the master node is received.

Date recue/Date received 2023-04-21
106. The memory of claim 105, wherein obstructing the thread of the camera when the pre-collection synchronization of one of the cameras is completed, until the pre-collection synchronizations of all the cameras have been completed comprises:
adding 1 to a first global counter when the worker node receives a preparation completion signal sent by one of the cameras whose initialization has been completed;
obstructing the thread of the camera;
comparing the counting of the first global counter with a number of all the cameras; and wherein if two being equal, determining that the pre-collection synchronizations of all the cameras have been completed.
107. The memory of claim 105, further comprising:
the master node judging whether a remote synchronization condition is reached on receiving the remote synchronization request;
wherein if the remote synchronization condition is reached, generating the remote synchronization completion information; and broadcasting the same to all the worker nodes.
108. The memory of claim 107, wherein the master node judging whether the remote synchronization condition is reached on receiving the remote synchronization request comprises:
adding 1 to a second global counter when the master node receives a remote synchronization request initiated by one of the worker nodes;
comparing the counting of the second global counter with the number of all the worker nodes; and if the two being equal, generating the remote synchronization completion information.
Date recue/Date received 2023-04-21
109. The memory of any one of claims 105 to 108, further comprising:
starting to perfomi post-collection synchronization when the thread of any one of the cameras obtains a picture frame; and determining that the post-collection synchronization is completed when the threads of all the cameras have obtained picture frames.
110. The memory of any one of claims 105 to 109, wherein the post-collection synchronization is completed, any one of the worker nodes storing the picture frames obtained by the threads of all the connected cameras entirely in a memory of a data processing module.
111. The memory of any one of claims 105 to 110, is a distributed system comprising the master node and at least one worker node each being connected with a plurality of cameras.
112. The memory of any one of claims 105 to 111, wherein the master node and plurality of worker nodes connected with different cluster cameras, wherein each cluster camera includes one or more cameras, wherein different cluster cameras are arranged in different local regions within a single monitor region.
113. The memory of any one of claims 105 to 112, wherein the master node communicates with the worker nodes via network, wherein worker nodes communicate with cluster cameras via network, wherein the network is in a wired mode or in a wireless mode.
114. The memory of any one of claims 105 to 113, wherein the master node and the worker nodes are configured as electronic equipment each having a processor and a memory, wherein the electronic equipment are personal computers and servers.
115. The memory of any one of claims 105 to 114, wherein the number of cameras in each cluster camera is dynamically increased or decreased, wherein all the cameras in the cluster camera are all preconfigured with camera SDK for collecting video image data, and wherein the cameras are of same model or of different models.

Date recue/Date received 2023-04-21
116. The memory of any one of claims 105 to 115, wherein the camera enters the preparation completed status indicates that the camera has completed preparation work.
117. The memory of any one of claims 105 to 116, wherein the thread of the camera is to invoke the camera SDK to obtain picture frames, the thread of the camera is obstructed to enter an obstructed status wherein the obstructed thread is woken up to enter an executable status, wherein the thread is executed to invoke the camera SDK to obtain picture frames.
118. The memory of any one of claims 105 to 117, wherein any camera connected with any worker node enters the preparation completed status, the pre-collection synchronization is started to be performed on the camera, wherein the pre-collection synchronization means to synchronize the camera before the frame pictures of the camera are read.
119. The memory of any one of claims 105 to 118, wherein the worker node receives the remote synchronization completion information broadcast by the master node, the worker node employs a notifyAll method to perform a waking-up process on the thread of each camera obstructed by the worker node, wherein the thread of each camera enters an executable status after having been woken up, and wherein the thread of the camera invokes the SDK to obtain picture frames after it enters the executable status.
120. The memory of any one of claims 105 to 119, further comprises:
the worker nodes initializing all cameras respectively connected; and assigning the independent thread to each of the cameras respectively connected.
121. The memory of any one of claims 105 to 120, wherein the worker nodes obtains from master node configuration files stored in advance on the master node, load the configuration files, initialize the cameras through configuration parameters in the configuration files, set resolutions of the cameras, and assign the independent thread to each camera.

Date recue/Date received 2023-04-21
122. The memory of any one of claims 105 to 121, wherein the worker node presets the first global counter, wherein the first global counter is initialized as zero before the pre-collection synchronization, wherein the first global counter counts the total number of cameras that have completed preparation work in all the cameras connected with the worker node.
123. The memory of any one of claims 105 to 122, wherein the worker node obstructs a camera that sends a preparation completion signal, a wait method obstructs the thread of the camera, wherein the thread of the camera enters the obstructed status, wherein the execution to invoke the SDK to obtain picture frames is temporarily stopped after the thread of the camera has entered the obstructed status.
124. The memory of any one of claims 105 to 123, wherein the master node presets the second global counter, wherein the second global counter is initialized as zero before the remote synchronization and cleared to zero after the remote synchronization has been completed.
125. The memory of any one of claims 105 to 124, wherein the master node to remotely synchronize all the worker nodes, to enable the worker nodes to subsequently locally synchronize cluster cameras respectively connected.
126. The memory of any one of claims 105 to 125, wherein after the master node has broadcast the remote synchronization completion information to all the worker nodes, the second global counter is cleared to zero.
127. The memory of any one of claims 105 to 126, wherein the master node and the at least one worker node reside in the same and single local area network.
128. The memory of any one of claims 105 to 127, wherein the thread of the camera has obtained the picture frame, 1 is added to a third global counter, wherein the counting of the third global counter is compared with the number of all the cameras, indicates that the post-collection synchronization is completed.

Date recue/Date received 2023-04-21
129. The memory of any one of claims 105 to 128, wherein the worker node presets a third global counter, and the third global counter is initialized as zero before post-collection synchronization and cleared to zero after post-collection synchronizations of all cameras have been completed.
130. The memory of claim 110, wherein the data processing module is configured to splice and combine entire set of picture frames, wherein the data processing module is disposed in the worker node or on a preset server.

Date recue/Date received 2023-04-21
CA3153390A 2019-09-03 2020-06-24 Multi-camera synchronization method and distributed system Active CA3153390C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910827268.5A CN110611746B (en) 2019-09-03 2019-09-03 Multi-camera synchronization method and distributed system
CN201910827268.5 2019-09-03
PCT/CN2020/097860 WO2021042825A1 (en) 2019-09-03 2020-06-24 Multi-camera synchronization method and distributed system

Publications (2)

Publication Number Publication Date
CA3153390A1 CA3153390A1 (en) 2021-03-11
CA3153390C true CA3153390C (en) 2023-09-12

Family

ID=68891096

Family Applications (1)

Application Number Title Priority Date Filing Date
CA3153390A Active CA3153390C (en) 2019-09-03 2020-06-24 Multi-camera synchronization method and distributed system

Country Status (3)

Country Link
CN (1) CN110611746B (en)
CA (1) CA3153390C (en)
WO (1) WO2021042825A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110611746B (en) * 2019-09-03 2021-06-29 深圳市云网万店电子商务有限公司 Multi-camera synchronization method and distributed system
CN111787286B (en) * 2020-07-22 2022-04-15 杭州当虹科技股份有限公司 Method for realizing multichannel synchronous recording system
CN112839205A (en) * 2021-01-11 2021-05-25 四川泓宝润业工程技术有限公司 Multi-channel video transmission processing scheme
CN113034677A (en) * 2021-03-31 2021-06-25 深圳鱼亮科技有限公司 Three-dimensional imaging method based on multi-camera array
CN113109339B (en) * 2021-04-08 2022-05-27 仲恺农业工程学院 Control method of defect visual inspection equipment
CN113873200B (en) * 2021-09-26 2024-02-02 珠海研果科技有限公司 Image identification method and system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012048173A2 (en) * 2010-10-07 2012-04-12 Siemens Corporation Multi-sensor system for high performance and reconfigurable outdoor surveillance
US20140205259A1 (en) * 2013-01-24 2014-07-24 Kiran Kamity Screen recording for creating contents in mobile devices
US9524426B2 (en) * 2014-03-19 2016-12-20 GM Global Technology Operations LLC Multi-view human detection using semi-exhaustive search
CN105893120B (en) * 2016-04-21 2019-07-30 北京京东尚科信息技术有限公司 A kind of acquisition methods and device of thread synchronization resource
CN105700939B (en) * 2016-04-21 2019-07-02 北京京东尚科信息技术有限公司 The method and system of Multi-thread synchronization in a kind of distributed system
CN108073414B (en) * 2016-11-15 2020-07-28 北京亿阳信通科技有限公司 Implementation method for merging multithreading concurrent requests and submitting and distributing results in batches based on Jedis
CN106776018B (en) * 2016-12-01 2020-09-01 三星(中国)半导体有限公司 Parallel processing method and equipment for master node and slave node of distributed system
CN107133092A (en) * 2017-05-24 2017-09-05 努比亚技术有限公司 Multi-thread synchronization processing method, terminal and computer-readable recording medium
CN107391106A (en) * 2017-06-09 2017-11-24 深圳市金立通信设备有限公司 The initial method and terminal of camera parameter
CN107241553A (en) * 2017-08-04 2017-10-10 追光人动画设计(北京)有限公司 Multichannel camera synchronous and method
CN109471872A (en) * 2017-08-30 2019-03-15 北京国双科技有限公司 Handle the method and device of high concurrent inquiry request
CN108881667A (en) * 2018-08-01 2018-11-23 广州南方卫星导航仪器有限公司 A kind of multi-angle of view image acquisition device
CN109640056B (en) * 2018-12-27 2021-05-18 深圳市有方科技股份有限公司 USB camera monitoring system and method based on Android platform
CN110611746B (en) * 2019-09-03 2021-06-29 深圳市云网万店电子商务有限公司 Multi-camera synchronization method and distributed system

Also Published As

Publication number Publication date
WO2021042825A1 (en) 2021-03-11
CN110611746A (en) 2019-12-24
CA3153390A1 (en) 2021-03-11
CN110611746B (en) 2021-06-29

Similar Documents

Publication Publication Date Title
CA3153390C (en) Multi-camera synchronization method and distributed system
US8872799B2 (en) Scalable distributed/cooperative/collaborative paradigm for multi-user interaction with projection-based display walls
US10958820B2 (en) Intelligent interface for interchangeable sensors
US10043079B2 (en) Method and apparatus for providing multi-video summary
US9277165B2 (en) Video surveillance system and method using IP-based networks
US10284732B2 (en) Masking latency in USB photo capture
US20170289646A1 (en) Multi-camera dataset assembly and management with high precision timestamp requirements
US10944809B2 (en) Reading multiplexed device streams
WO2020093164A1 (en) Methods and systems for detection of anomalous motion in a video stream and for creating a video summary
Gudis et al. An embedded vision services framework for heterogeneous accelerators
CN111343401B (en) Frame synchronization method and device
CN111698555A (en) Video frame extraction processing method and device
US10198842B2 (en) Method of generating a synthetic image
Latimer et al. Socialsync: Sub-frame synchronization in a smartphone camera network
US20150120726A1 (en) Using Audio Cues to Improve Object Retrieval in Video
CN112309311B (en) Display control method, device, display control card and computer readable medium
US10355798B2 (en) Temporally correlating multiple device streams
CN115529481B (en) Video synchronous display system and method based on fusion signal source and input equipment
CN104038668A (en) Method and system for displaying panoramic video
KR101826463B1 (en) Method and apparatus for synchronizing time line of videos
US20180152495A1 (en) Multiplexing multiple device streams
US20180359405A1 (en) Frame synchronization of multiple image capture devices
US11509821B2 (en) Temporal information synchronization of imaging devices
CN112070113B (en) Imaging scene change judging method and device, electronic equipment and readable storage medium
US20180097865A1 (en) Video processing apparatus and method

Legal Events

Date Code Title Description
EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428