Language selection

Search

Patent 3153390 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 3153390
(54) English Title: MULTI-CAMERA SYNCHRONIZATION METHOD AND DISTRIBUTED SYSTEM
(54) French Title: PROCEDE DE SYNCHRONISATION DE MULTIPLES CAMERAS ET SYSTEME DISTRIBUE
Status: Granted and Issued
Bibliographic Data
(51) International Patent Classification (IPC):
  • H04N 05/073 (2006.01)
  • H04N 07/18 (2006.01)
(72) Inventors :
  • DONG, BANGFA (China)
(73) Owners :
  • 10353744 CANADA LTD.
(71) Applicants :
  • 10353744 CANADA LTD. (Canada)
(74) Agent: JAMES W. HINTONHINTON, JAMES W.
(74) Associate agent:
(45) Issued: 2023-09-12
(86) PCT Filing Date: 2020-06-24
(87) Open to Public Inspection: 2021-03-11
Examination requested: 2022-04-28
Availability of licence: N/A
Dedicated to the Public: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/CN2020/097860
(87) International Publication Number: CN2020097860
(85) National Entry: 2022-03-03

(30) Application Priority Data:
Application No. Country/Territory Date
201910827268.5 (China) 2019-09-03

Abstracts

English 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.


French Abstract

La présente invention relève du domaine des applications informatiques. La présente invention concerne un procédé de synchronisation de multiples caméras et un système distribué, le procédé étant appliqué au système distribué. Le système comprend un nud maître et au moins un nud de travail, plusieurs caméras étant connectées à chaque nud de travail. Au cours du procédé, un nud de travail effectue pour toutes les caméras connectées les opérations suivantes consistant à : lorsqu'une caméra entre dans un état d'achèvement de préparation, commencer une synchronisation de préacquisition de la caméra, le nud de travail attribuant préalablement un fil indépendant à chaque caméra ; à la fin de la synchronisation de préacquisition de chaque caméra, bloquer le fil de la caméra jusqu'à la fin de la synchronisation de préacquisition de toutes les caméras et envoyer une demande de synchronisation à distance au nud maître ; et, lors de la réception d'informations d'achèvement de synchronisation à distance diffusées par le nud maître, tout en réveillant le fil bloqué de chaque caméra, appeler respectivement un SDK de chaque caméra de façon à obtenir une trame d'image. La présente invention peut garantir que les trames d'images obtenues par toutes les caméras proviennent du même moment.

Claims

Note: Claims are shown in the official language in which they were submitted.


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.
21
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.
22
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.
23
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:
24
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.
26
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.
27
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.
28
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;
29
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.
31
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.
32
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.
33
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
34
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.
36
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.
37
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.
38
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.
39
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.
41
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.
42
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.
43
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.
44
Date recue/Date received 2023-04-21

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 03153390 2022-03-03
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,
1
Date Recue/Date Received 2022-03-03

CA 03153390 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;
2
Date Recue/Date Received 2022-03-03

CA 03153390 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
3
Date Recue/Date Received 2022-03-03

CA 03153390 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
4
Date Recue/Date Received 2022-03-03

CA 03153390 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

CA 03153390 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
6
Date Recue/Date Received 2022-03-03

CA 03153390 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;
7
Date Recue/Date Received 2022-03-03

CA 03153390 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
8
Date Recue/Date Received 2022-03-03

CA 03153390 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.
9
Date Recue/Date Received 2022-03-03

CA 03153390 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

CA 03153390 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
11
Date Recue/Date Received 2022-03-03

CA 03153390 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.
12
Date Recue/Date Received 2022-03-03

CA 03153390 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
13
Date Recue/Date Received 2022-03-03

CA 03153390 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.
14
Date Recue/Date Received 2022-03-03

CA 03153390 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

CA 03153390 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:
16
Date Recue/Date Received 2022-03-03

CA 03153390 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
17
Date Recue/Date Received 2022-03-03

CA 03153390 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
18
Date Recue/Date Received 2022-03-03

CA 03153390 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.
19
Date Recue/Date Received 2022-03-03

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

2024-08-01:As part of the Next Generation Patents (NGP) transition, the Canadian Patents Database (CPD) now contains a more detailed Event History, which replicates the Event Log of our new back-office solution.

Please note that "Inactive:" events refers to events no longer in use in our new back-office solution.

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Event History , Maintenance Fee  and Payment History  should be consulted.

Event History

Description Date
Inactive: Grant downloaded 2023-10-20
Inactive: Grant downloaded 2023-10-20
Letter Sent 2023-09-12
Grant by Issuance 2023-09-12
Inactive: Cover page published 2023-09-11
Pre-grant 2023-07-31
Inactive: Final fee received 2023-07-31
Notice of Allowance is Issued 2023-06-19
Letter Sent 2023-06-19
Inactive: Approved for allowance (AFA) 2023-06-16
Inactive: Q2 failed 2023-06-14
Amendment Received - Response to Examiner's Requisition 2023-04-21
Amendment Received - Voluntary Amendment 2023-04-21
Examiner's Report 2023-01-03
Inactive: Q2 failed 2022-12-13
Amendment Received - Response to Examiner's Requisition 2022-10-19
Amendment Received - Voluntary Amendment 2022-10-19
Examiner's Report 2022-06-20
Inactive: Report - QC failed - Minor 2022-06-10
Letter sent 2022-06-06
Advanced Examination Determined Compliant - paragraph 84(1)(a) of the Patent Rules 2022-06-06
Letter Sent 2022-06-06
Inactive: Cover page published 2022-06-02
Inactive: Office letter 2022-05-16
Amendment Received - Voluntary Amendment 2022-04-28
Inactive: Advanced examination (SO) fee processed 2022-04-28
All Requirements for Examination Determined Compliant 2022-04-28
Maintenance Request Received 2022-04-28
Amendment Received - Voluntary Amendment 2022-04-28
Request for Examination Received 2022-04-28
Inactive: Advanced examination (SO) 2022-04-28
Request for Examination Requirements Determined Compliant 2022-04-28
Inactive: First IPC assigned 2022-04-01
Letter sent 2022-04-01
Priority Claim Requirements Determined Compliant 2022-04-01
Request for Priority Received 2022-04-01
Inactive: IPC assigned 2022-04-01
Inactive: IPC assigned 2022-04-01
Application Received - PCT 2022-04-01
National Entry Requirements Determined Compliant 2022-03-03
Application Published (Open to Public Inspection) 2021-03-11

Abandonment History

There is no abandonment history.

Maintenance Fee

The last payment was received on 2022-12-15

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Patent fees are adjusted on the 1st of January every year. The amounts above are the current amounts if received by December 31 of the current year.
Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Fee History

Fee Type Anniversary Year Due Date Paid Date
Basic national fee - standard 2022-03-03 2022-03-03
MF (application, 2nd anniv.) - standard 02 2022-06-27 2022-03-03
Advanced Examination 2022-04-28 2022-04-28
2022-04-28 2022-04-28
Request for examination - standard 2024-06-25 2022-04-28
MF (application, 3rd anniv.) - standard 03 2023-06-27 2022-12-15
Final fee - standard 2023-07-31
MF (patent, 4th anniv.) - standard 2024-06-25 2023-12-15
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
10353744 CANADA LTD.
Past Owners on Record
BANGFA DONG
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column (Temporarily unavailable). To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.

({010=All Documents, 020=As Filed, 030=As Open to Public Inspection, 040=At Issuance, 050=Examination, 060=Incoming Correspondence, 070=Miscellaneous, 080=Outgoing Correspondence, 090=Payment})


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Representative drawing 2023-08-27 1 61
Description 2022-03-02 19 835
Claims 2022-03-02 4 148
Drawings 2022-03-02 2 133
Abstract 2022-03-02 1 23
Representative drawing 2022-06-01 1 58
Claims 2022-04-27 25 1,020
Claims 2022-10-18 25 1,443
Claims 2023-04-20 25 1,426
Courtesy - Letter Acknowledging PCT National Phase Entry 2022-03-31 1 588
Courtesy - Acknowledgement of Request for Examination 2022-06-05 1 433
Commissioner's Notice - Application Found Allowable 2023-06-18 1 579
Final fee 2023-07-30 3 62
Electronic Grant Certificate 2023-09-11 1 2,527
National entry request 2022-03-02 14 1,316
Amendment - Abstract 2022-03-02 2 105
International search report 2022-03-02 3 89
Request for examination / Advanced examination (SO) / Amendment / response to report 2022-04-27 30 1,219
Maintenance fee payment 2022-04-27 4 134
Courtesy - Office Letter 2022-05-15 1 185
Courtesy - Advanced Examination Request - Compliant (SO) 2022-06-05 1 173
Examiner requisition 2022-06-19 6 291
Amendment / response to report 2022-10-18 58 2,344
Examiner requisition 2023-01-02 4 161
Amendment / response to report 2023-04-20 56 2,265