Patent Publication Number: US-11393101-B2

Title: Position node tracking

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present disclosure is related to U.S. application Ser. No. 16/799,720 Automatic Beamforming and U.S. application Ser. No. 16/799,746 Automatic Calibration, all of which were filed simultaneously on Feb. 24, 2020. 
     TECHNICAL FIELD 
     The present disclosure relates to position node tracking using dynamitic vision sensors (DVS). 
     BACKGROUND 
     The sweet spot of a Hi-Fi audio system is the ideal listening position and an important factor to ensure a listener receives the best sound quality within a listening environment. In a traditional Hi-Fi audio system, a technician will determine the sweet spot and configure the audio system according to a user&#39;s request. Once this setup has been performed, the sweet spot remains fixed. 
     Beamforming loudspeakers introduced an improvement that allows users to adjust the sweet spot location according to their desired configuration. This is typically accomplished in a system with a pair of beamforming loudspeakers capable of communicating with an application software on a device such as, a mobile phone, tablet, laptop, etc. By configuring a graphical menu that maps the relative location of two speakers on the application, a user may set a preferred listening location within the listening environment. The loudspeakers will steer the sound beam and adjust a strength of the sound beam towards the desired listening location. However, the graphical menu does not include information pertaining to the real listening environment. During a first installation of the Hi-Fi audio system dimensions of the relative location of the two speakers is unknown. Typically, a technician installing the audio system will determine the sweet spot location and measure a distance between the left and right speakers. The technician enters this measured distance into the user&#39;s mobile application as a baseline parameter. Once the measurement is complete and entered, the user may adjust the sweet spot location by way of their mobile application. In theory, the user should be able to steer the sound to a location where the user prefers to listen by dragging an icon representing the sweet spot within an area that represents the listening environment on a display of the mobile device. 
     There are drawbacks associated with this method. Most users are not certain if the location where they are standing really matches the sweet spot shown on the application because the application software does not have the capacity to track the user&#39;s location. In practice, the user must use trial and error in order to match the configuration menu to the real environment. Furthermore, if a location of the speakers is changed, the baseline parameter will change, and a technician must be brought in to repeat the installation procedure. 
     SUMMARY 
     A system and method for tracking a position node for one or more moving objects, the tracking including scanning for one or more moving objects, detecting one or more moving objects, creating a temporary position node around one or more detected moving objects, searching a node pool for an existing position node nearby the temporary position node, setting a timer for the existing position node that is nearby the temporary position node, the timer has a predetermined time limit, and for a temporary position node that is not nearby an existing position node, creating a new position node that is added to the node pool and setting a timer associated with the new position node, the timer associated with the new position node has a predetermined time limit. 
     In another example, when none of the objects in an existing position node move before expiration of the timer associated with the existing position node, the existing position node is delisted from the node pool. 
     In another example, when at least one of the objects in an existing position node moves before expiration of the timer associated with the existing position node, the timer associated with the existing position node is reset and the existing position node remains in the node pool. 
     In yet another example, when at least one of the objects in an existing position node moves outside of, but remains nearby, the existing position node, a new position node is created replacing the existing position node and a timer associated with the new position node is set, the existing position node is delisted from the node pool. 
     In still another example, when at least one of the objects in an existing position node moves to a position outside of the existing position node, a new position node is created to replace the existing position node, a timer associated with the new position node is set, and the existing position node remains for the duration of the timer associated with the existing position node. 
     In a further example, when there are two or more existing position nodes in the node pool and one or more objects come close to each other, the two or more existing position nodes are combined into one position node, a timer associated with the one position node will be reset and the other existing position nodes will be delisted from the node pool. 
    
    
     
       DESCRIPTION OF DRAWINGS 
         FIG. 1 . is an example electronic device that may include one or more aspects of an Automatic Beamforming (ABF) system; 
         FIG. 2  is an example of a listening environment; 
         FIG. 3  is a block diagram of an example application of the ABF system; 
         FIG. 4  is a flow chart of a general method for automatic beamforming; 
         FIG. 5  is an example of Scan and Lock mode; 
         FIG. 6  is an example of Scan and Follow mode; 
         FIG. 7  is a flow chart of a method for position node tracking; 
         FIG. 8  shows a rule for position node tracking; 
         FIG. 9  shows a rule for position node tracking; 
         FIG. 10  shows a rule for position node tracking; 
         FIG. 11  shows a rule for position node tracking; 
         FIG. 12  is a block diagram of a speaker arrangement and a target position; 
         FIG. 13  is a perspective view of an LED ring; 
         FIG. 14A  is an example of a detected LED pattern; 
         FIG. 14B  is an example of a detected LED pattern; 
         FIG. 15A  is an example of a detected LED pattern; 
         FIG. 15B  is an example of a detected LED pattern; and 
         FIG. 16  is a flow chart of a method for autocalibration. 
     
    
    
     Elements and steps in the figures are illustrated for simplicity and clarity and have not necessarily been rendered according to any sequence. For example, steps that may be performed concurrently or in different order are illustrated in the figures to help to improve understanding of embodiments of the present disclosure. 
     DETAILED DESCRIPTION 
     While various aspects of the present disclosure are described with reference to a beamforming loudspeaker system in a listening environment, the present disclosure is not limited to such embodiments, and additional modifications, applications, and embodiments may be implemented without departing from the present disclosure. In the figures, like reference numbers will be used to illustrate the same components. Those skilled in the art will recognize that the various components set forth herein may be altered without varying from the scope of the present disclosure. 
       FIG. 1  is a block diagram of an example electronic device  100  that may include one or more aspects of an example position node tracking system. The electronic device  100  may include a set of instructions that can be executed to cause the electronic device  100  to perform one or more of the methods and computer based functions, such as detecting a user, creating one or more position nodes associated with the user, tracking one or more position nodes in a node pool, detecting a gesture, calculating an angle and distance between the loudspeakers and a user, configuring a sweet spot, steering a sound beam based on the calculated angle and adjusting a beam strength and propagation delay based on the calculated distance. The electronic device  100  may operate as a standalone device, may be included as functionality within another device, or may be connected, such as using a network, to other computer systems, devices or peripheral devices. 
     In the example of a networked deployment, the electronic device  100  may operate in the capacity of a server or as a client user computer in a server-client user network environment, as a peer computer system in a peer-to-peer (or distributed) network environment, or in various other ways. The electronic device  100  may also be implemented as, or incorporated into, various electronic devices such as desktop and laptop computers, hand-held devices such as smartphones and tablet computers, portable media devices such as recording, playing, and gaming devices, household appliances, office equipment, set-top boxes, automotive electronics such as head units and navigation systems, or any other machine capable of executing a set of instructions (sequential or otherwise) that result in actions to be taken by that machine. The electronic device  100  may be implemented using electronic devices that provide voice, audio, video and/or data communication. While a single electronic device  100  is illustrated, the term “device” may include a collection of devices or sub-devices that individually or jointly execute a set or multiple sets of instructions to perform one or more electronic functions of the ABF system, described in detail hereinafter. 
     The electronic device  100  may include a processor  102 , such as a central processing unit (CPU), a graphics processing unit (GPU) or both. The processor  102  may be a component in a variety of systems. For example, the processor  102  may be part of a beam steering loudspeaker. Also, the processor  102  may include one or more general processors, digital signal processors, application specific integrated circuits, field programmable gate arrays, servers, networks, digital circuits, analog circuits, combinations thereof, or other now known or later developed devices for analyzing and processing data. The processor  102  may implement a software program, such as code generated manually or programmed. 
     The electronic device  100  may include memory, such as a memory  104  that can communicate via a bus  106 . The memory  104  may be or include a main memory, a static memory, or a dynamic memory. The memory  104  may include a non-transitory memory device. The memory  104  may also include computer readable storage media such as various types of volatile and non-volatile storage media including random access memory, read-only memory, programmable read-only memory, electrically programmable read-only memory, electrically erasable read-only memory, flash memory, a magnetic tape or disk, optical media and the like. Also, the memory may include a non-transitory tangible medium upon which software is stored. The software may be electronically stored as an image or in another format (such as through an optical scan), then compiled, or interpreted or otherwise processed. 
     In one example, the memory  104  includes a cache or random-access memory for the processor  102 . In alternative examples, the memory  104  may be separate from the processor  102 , such as a cache memory or a processor, the system memory, or other memory. The memory  104  may be or include an external storage device or database for storing data. Examples include a hard drive, compact disc, digital video disc, universal serial bus, memory stick, floppy disc, or other device to store data. For example, the electronic device  100  may include a computer-readable medium  108  in which one or more sets of software or instructions can be embedded. The processor  102  and memory  104  may also include a non-transitory computer-readable storage medium with instructions or software. 
     The memory  104  may be operable to store instructions executable by the processor  102 . The functions, acts, or tasks illustrated in the figures or described may be performed by the programmed processor  102  executing the instructions stored in the memory  104 . The functions, acts or tasks may be independent of the type of instructions set, storage media, processor or processing strategy and may be performed by software, hardware, integrated circuits, firmware, microcode and the like, operating alone or in combination. Likewise, processing strategies may include multiprocessing, multitasking, parallel processing and the like. 
     The instructions may include one or more of the methods described herein, including aspects of the electronic device  100  and/or the ABF system  122 . The instructions  110  may reside completely, or partially, within the memory  104  or within the processor  102  during execution by the electronic device  100 . 
     The electronic device  100  may include a non-transitory computer-readable medium that includes the instructions  110  or receives and executes the instructions  110  responsive to a propagated signal so that a device connected to a network  112  can communicate voice, video, audio, images, or other data over the network  112 . The instructions  110  may be transmitted or received over the network  112  via a communication port or interface  114  or using a bus  106 . The communication port or interface  114  may be a part of the processor  102  or may be a separate component. The communication port or interface  114  may be created in software or may be a physical connection in hardware. The communication port or interface  114  may be configured to connect with the network  112 , external media, one or more speakers  116 , one or more cameras  118 , one or more sensors  120 , or other components in the electronic device  100 , or combinations thereof. The connection with the network  112  may be a physical connection, such as a wired Ethernet connection or may be established wirelessly. The additional connections with other components of the electronic device  100  may be physical connections or may be established wirelessly. The network  112  may alternatively be directly connected to the bus  106 . 
     The electronic device may include one or more speakers  116 , such as beamforming loudspeakers, installed in a vehicle, living space or venue. The speakers  116  may be part of a stereo surround sound system and ABF system  122 . 
     In order to carry out the functions of the ABF system  122 , the processor  102  or other components may manipulate, or process sound signals sent to speakers  116 . Particularly, when speakers  116  comprise beamforming loudspeakers, sound signals may be sent to each speaker in a speaker pair. The signals may be processed separately or jointly. The electronic device  100  may include instructions for adjusting a phase, amplitude, and/or delay of each sound signal delivered to speakers  116 . The phase, amplitude and/or delay may be controlled in such a manner to produce a desired coverage pattern. 
     The electronic device  100  may also include one or more sensors  120 . The one or more sensors may include one or more proximity sensors, motion sensors, cameras, and dynamitic vision sensors (DVS). 
       FIG. 2  shows an example of a listening environment  200  within which the electronic device may operate. In the example shown, a master loudspeaker  202  has a first detection set  206  including sensors  120 . A slave loudspeaker  204  has a second detection set  208  including sensors  120 . The master  202  and slave  204  loudspeakers may be left and right beamforming loudspeakers of a speaker pair controlled by the electronic device  100  to steer a sound beam to any angle of 360 degrees creating a surround sound system. The first detection set  206  and the second detection set  208  have sensors  120  capable of detecting objects and gestures in the listening environment. The sensors  120  may be any of, but not limited to, motion sensors, thermal sensors, vision sensors, and cameras. 
       FIG. 3  is a diagram showing variables and necessary parameters of the ABF system within the listening environment shown in  FIG. 2 . Rectangle  300  represents the boundaries of the listening environment. The master  202  and the slave  204  are shown opposite each other within the listening environment and spaced a fixed distance, D1, apart along a horizontal x-axis. A sweet spot location that is desired by a user  312 , is also shown and is known as a target position  310 . Distance L1 is a distance from the first detection set  206  to the user  312 , a distance L2 is a distance from the second detection set  208  to the user  312 , and a distance, d, is the distance along a vertical y-axis from the user to the horizontal x-axis between the master  202  and slave  204 . 
     Sensors  120  in the detection sets  206 ,  208  detect objects, including the user  312  and one or more gestures made by the user  312 , within the listening environment. The electronic device will detect moving objects and identify which moving objects are human. Once the detected objects are identified to be human, the electronic device will track all the human objects and wait to detect a first gesture  314  from one of the human objects. If a human object performs the first gesture  314 , the system will track the human object and wait for the tracked human object to perform a second gesture  316 . The position of the human when performing the second gesture indicates, to the electronic device, the target position for the sweet spot setting. 
     Frequent switching of the sweet spot may adversely affect the performance of the speakers, so to avoid false switching of the sweet spot and to prevent false beam steering, the user performs two gestures. The first gesture is to wake up the electronic device. The second gesture is to lock the target position of the sweet spot. 
     The first gesture  314  is associated with waking up the electronic device to alert the device that the user  312  wants to adjust the sweet spot location. The first gesture  314  may be something like a hand wave, for example. The first gesture  314  may be detected by either, or both, of the first detection set  206  of the master  202  loudspeaker and the second detection set  208  of the slave  204  loudspeakers. Upon detecting the first gesture  314 , the sensors  120  on both the master  202  and slave  204  loudspeakers will wake up and track the user  312 . 
     A second gesture  316 , that differs from the first gesture  314 , is performed when the user wants to lock the location of the sweet spot. When the user  312  performs the second gesture  316 , both the master  202  and the slave  204  loudspeakers will lock a position of the user  312 . The second detection set  208  on the slave  204  will send its locking information to the first detection set  206  on the master  202 . Upon receiving lock information from both detection sets  206 ,  208 , the electronic device calculates and configures the sweet spot. 
       FIG. 4  is a flow chart of a general method  400  for automatic beamforming. The method begins with the electronic device in a wait state  402 . The electronic device detects  404  at least one object in the listening environment. The electronic device detects  406  the first gesture and enters an active state. A timer, having a predetermined time limit is set  408 , and the active state lasts until the user performs the second gesture or the timer elapses. During the active state, the electronic device tracks the user (the object from which the first gesture was detected). 
     During the predetermined time period, the user may stay in their existing position, or alternatively, move to a position in the listening environment where the sweet spot is to be set. Because the first gesture has been detected, the electronic device is in an active state and will track  410  the user until a point in time either the timer expires  412 , or the user performs the second gesture and the second gesture is detected  414 . 
     When the timer expires and the second gesture has not been detected, the electronic device returns to the wait state  402 . When the user performs a second gesture within the predetermined time period and one or more of the detection sets detects the second gesture  414 , the user&#39;s location is locked  416  into the electronic device as a target position for the sweet spot location. 
     Upon locking  416  the target position, the electronic device has sensor information to calculate  418  the target position of the sweet spot for purposes of automatic beamforming. Referring back to  FIG. 3 , the target position  310  coincides with the position of the user  312  upon detecting the second gesture and is the desired sweet spot, or target position  310 . The distance, D1, between the loudspeakers, is known, and is the baseline parameter. Angle a1 is the angle between the first detection set  206  and the target position  310  and is derived from sensors  120  upon detecting the second gesture and locking the target position. Angle a2 is the angle between the second detection set  208  and the target position  310  and is derived from sensors  120  upon detecting the second gesture and locking the target position. 
     Using a triangle function the distances, L1 and L2, may be calculated as follows:
 
tan( a 1)= d/d 1;  (1)
 
tan( a 2)= d/d 2;  (2)
 
 d 1+ d 2= D 1;  (3)
 
 d=D 1/(1/tan( a 1))+ D 1/(1/tan( a 2))  (4)
 
     Distance d is the distance from the baseline to the target position  310 . Knowing, d, L1 and L2 may be calculated as follows:
 
 L 1= d /sin( a 1); and  (5)
 
 L 2= d /sin( a 2).  (6)
 
     Referring again to  FIG. 4 , the electronic device configures a beam angle  420  for each of the master and slave loudspeakers by steering a sound beam based on the detected object angles a1, a2. The electronic device configures a beam strength and propagation delay  422  for the master and slave loudspeakers by adjusting a sound beam strength and propagation delay based on the calculated distances, L1, L2. Beamforming is performed  424  using the configured beam angles, beam strengths and propagation delays. After beamforming, the electronic device returns to its “wait” state  402 . 
     When multiple humans are present in the listening environment the electronic device identifies the first gesture made by the user to correctly identify the user as the object to be tracked. Upon detecting the first gesture, the electronic device has been alerted that this user wants to configure the sweet spot. Once the electronic device detects the second gesture, it locks the user&#39;s current location as the sweet spot. 
     There may be multiple operating modes associated with the electronic device. For example, a Scan and Lock mode, a Scan and Follow mode and a Party mode. The operating mode is configured on the electronic device, for example using a mobile application. The user selects the mode and, once selected, the detection sets will detect objects, track movement and detect gestures associated with the mode setting. 
     The Scan and Lock mode delivers stable sound quality.  FIG. 5  shows an example  500  of Scan and Lock mode. The user  512  performs the first and second gestures to set the target position of the sweet spot  510  and configuration takes place for the audio beam steering settings to target position  510 . Once set, the beam steering settings for the sweet spot target position  510  will be maintained at the target position even when the user  512  moves about, such as to position  514 . The beamforming is directed to the target position of the sweet spot  510  and is maintained until a point in time the user performs the first and second gestures again. 
     An example  600  for the Scan and Follow mode is shown in  FIG. 6 . In the Scan and Follow mode, the target position of the sweet spot  610  follows the position of the tracked user. In this mode, the user  612  performs the first and second gestures. Once the system recognizes both gestures, the electronic device will track the user  612  constantly readjusting the beamforming configurations for the sweet spot so the sound beams  620  follow the user  612  to multiple locations  614 ,  616 ,  618 . In the Party mode there is effectively no target position for the sweet spot. The speakers will broadcast the audio to an entire 360°. 
     To carry out the method described in  FIG. 4 , the first and second loudspeakers need to be capable of detecting a human user&#39;s angle to direct the beam angle and distance to adjust the beam strength and propagation delay. First and foremost, there is a need for the sensors on the speaker to identify that the object is human and to detect the first and second gestures the user performs. Secondly, the processor  102  of the electronic device may collect the object angles, a1 and a2, detected by the sensors  120  and calculate the distance, L1, L2, to the object. In order to collect angles and calculate distances, the electronic device tracks the user. 
     As discussed above, the sensors  120  may be camera-based such as an RGB camera or a thermal camera. An RGB type of camera is very effective for identifying and tracking a human. However, there may be a privacy concern since it may expose a very clear image from a private network. A thermal camera is an alternative capable of detecting and tracking a human without revealing a clear image. However, the cost of a thermal camera is much higher than the RGB camera. 
     Position Node Tracking Using DVS 
     Yet another alternative for a sensor  120  is a dynamitic vision sensor (DVS). DVS detects object motion with enough resolution while hiding a clear image of the object and resolves privacy concerns. Further, the cost is lower than that of a thermal camera. Each of the master  202  and slave  204  loudspeakers may have four DVS to create a 360° Field of View (FOV) to detect objects and gestures. 
     Performing object and gesture detection with a DVS may be accomplished with fusion technology, which combines several event frames with different timestamps into a single frame providing a temporal image of an object. For object detection, this frame is fed to the processor of a neural network and object recognition is performed with a pre-trained model for object recognition. Gesture detection is performed with another pre-trained model for object classification. For gesture detection, the area of the gesture is smaller than the area of the object, so the image is zoomed-in to for more accurate detection. 
     However, DVS is an event-based sensor that only senses light changes on each pixel and sends out an event package with a timestamp and pixel position. The electronic device collects the event packages and recomposes them into image frames for fusion. Because DVS only detects moving objects, it may lose tracking if the object stops moving. Therefore, position node tracking is presented as an alternative to tracking algorithms applied to RGB type cameras. 
     Referring to  FIG. 7 , a method  700  for position node tracking is described for the electronic device  100  where the sensor  120  in the detecting sets for detecting objects and gestures in the listening environment is one or more DVS. For a 360° Field of View (FOV) from a speaker, the detection set will consist of four DVS. Position node tracking is applied to the object and gesture detection steps discussed earlier herein with reference to  FIG. 4 . The detecting sets scan the listening environment, and upon detecting  702  one or more moving objects, the electronic device creates  704  one or more temporary position nodes. The number of temporary position nodes created will depend on a bounding box associated with each object detected and whether any bounding boxes are overlapping. 
     Whenever a temporary position node is created  704 , the electronic device searches the existing node pool  706  for position nodes that were created in previous time stamps to determine if the temporary position node is nearby  708  any existing position nodes currently in the node pool. If any temporary node is close to a node already existing in the node pool  710 , within a predetermined range, the electronic device considers this temporary node as an existing node that has moved to a new position and a new node  712  is created, the existing node is de-listed  714  from the node pool and the new node is added to the node pool  716 . If no existing node is found nearby  718 , the temporary node is considered new. A new node is created  720  and the new node is added to the node pool  716 . 
     When a new node is added to the node pool a timer is set  722  to a predetermined time. Within this predetermined time, for example two minutes, the nodes are kept alive in the node pool. The electronic device continues to track  724  any activity happening within the nodes in the node pool using the timers. If a timer for a node in the node pool expires  726 , that means there is an absence of any movement in the position node, and it may be assumed that the position node no longer needs to be tracked. The user, for example, may have left the area or may have fallen asleep. In order to save computing resources, the position node with an expired timer will be delisted  728  from the node pool and is no longer tracked. An active person should have at least slight movement within the predetermined time, which is enough to trigger the DVS and reset the timer associated with the position node. The timer is the key to continuously track the user. 
       FIGS. 8 through 11  illustrate applications of position node tracking according to the method according to rules for position node tracking. Tracking the position node with a timer instead of the object is the first rule of position node tracking using DVS. In  FIG. 8  a position node  802  is created around two objects  804  with a timer set for a predetermined time, such as two minutes. If there is no movement  806  by either object for more than two minutes, the position node  802  will be de-listed from the node pool. If at least one of the objects moves  808  within the existing position node before the timer expires, the timer is reset for another two minutes and the position node  802  remains alive in the node pool and tracking continues. 
     Now consider the case when an object moves outside of, but remains nearby, an existing position node. Converting the object movement to node trajectory to reduce the complexity of object tracking is the second rule of position node tracking using DVS. In  FIG. 9  a position node  902  is created around a single object  904 . If the object  904  moves to a new position that is nearby the existing position node, a new position node  906  is created to replace the existing position node  902 . The new node  906  is added to the node pool and the existing position node  902  is de-listed from the node pool. 
     The third rule of position node tracking using DVS is that for objects that are detected but are not near each other, the electronic device tracks multiple nodes simultaneously.  FIG. 10  is a case in which a position node  1002  is created around two objects  1004   a  and  1004   b . When one object  1004   b  moves out of the position node  1002 , a new position node  1006  is created and the original position node  1002  remains. A position node only covers a certain range. Therefore, if two objects are out of range of each other, two nodes  1002 ,  1006  exist in the node pool simultaneously and are tracked by their respective timers. 
     The fourth rule of position node tracking using DVS is that once more than one object come close to each other, only one of the nodes needs to be tracked, thereby reducing the complexity of tracking.  FIG. 11  is a case in which a position node  1102  for an object  1104   a  is created and a position node  1106  for an object  1104   b  is created and both are alive in the node pool. The objects  1104   a  and  1104   b  may be moving and the DVS will detect when they are moving closer to each other. In this scenario, the nodes  1102  and  1106  for the two objects  1104   a  and  1104   b  will be combined into one position node,  1102  for example. A timer will be reset for node  1102  and the node will remain alive in the node pool. The remaining position node  1106 , shown in dashed lines in  FIG. 11 , is de-listed from the node pool upon expiration of its timer. 
     Using rules one through four, the electronic device can track all active nodes and zoom in on certain areas for gesture detection. This increases the accuracy of gesture detection while also resolving the issue of tracking loss for objects that are not moving. 
     Depth Detection and Automatic Calibration 
     Upon detecting the user and determining that the user wants to adjust the sweet spot, the electronic device must determine an angle of the user in order to direct the sound beam and must determine the distance to the user in order to adjust the beam strength and propagation delay factor. The relative angle may be determined when each detection set locations an x-y coordinate of a position node on the sensors  120 . However, a depth of the object cannot be determined from the values of the x-y coordinate. In most instances, binocular cameras are used to calculate depth based on a known baseline. In the present example, using first and second detection sets  206 ,  208 , the baseline may be determined without the need for binocular cameras. While the present example is directed to a pair of beamforming loudspeakers, it should be noted that it may also be applied to other systems that use depth detection for purposes of object detection. 
       FIG. 12  shows a pair of speakers, a master  202  and a slave  204 , each having a detection set  1202   a ,  1202   b  respectively. When the system has been installed, each detection set  1202   a  and  1202   b , with two to four DVSs to generate a 180°/360° FOV and may detect, or measure, its own angle value a1, a2, by locating an object in its FOV, taking a known value for D1, the measured values of a1 and a2, and feeding them into a triangle function, the electronic device can calculate the depth, L1 and L2 as described above with reference to  FIG. 3 . However, there may be a need to obtain the baseline, D1, without having to manually measure. For example, when the location of the detection sets has changed from an original installation. The system described hereinafter automatically calibrates the relative location of the detection sets and the baseline, D1 for the electronic device. 
     Referring now to  FIG. 13 , a plurality of light sources, for example LEDs configured on an LED ring  1300 , is incorporated into the slave  204 . The LEDs on the LED ring  1300  are positioned on the ring and create a known pattern of light points. During calibration, the LEDs are flashed, one by one, triggering the detection set on the master. The LEDs may be flashed one at a time using an LED chaser circuit. The detection set on the master captures the flashing light points to create an image of a detected pattern of light points. The electronic device compares the captured image with images in a database of calibration patterns and, from the comparison, determines the relative location and baseline, D1, distance between the master and slave. The LEDs may be infrared so that they are invisible to human eyes. 
       FIGS. 14A and 14B  show examples of LED patterns captured by the detection set on the master when the master and slave  204  are directly across from each other but the slave  204  is at different distances from the master. In  FIG. 14A , the master (not shown) and slave  204  are spaced a short distance from each other. The image  1400  is created at the master by capturing images at a detection set on the master when the LEDs on the LED ring  1300  are flashing. The image  1400  is compared to the known pattern and the relative distance between the master and slave is determined. 
     In  FIG. 14B , the master (not shown) and slave  204  are spaced a longer distance from each other. The image  1402  is created as discussed above. The image  1400  from  FIG. 14A  shows an LED pattern detected by the master detection set that is sparser and spread in a larger area than the denser pattern spread in a smaller area of that shown in the image  1402  in  FIG. 14B . 
       FIG. 15A  and  FIG. 15B  show examples of LED patterns captured by the master (not shown) when the slave  204  is not directly horizontally across from the master and is at different relative angles to the master. In  FIG. 15A  the slave  204  is positioned at an angle above a side of the master. The LED pattern  1500  will be detected on an upside area of the master. In  FIG. 15B  the slave is positioned at an angle below a side of the master. The LED pattern  1502  is detected on a bottom area of the master. 
     The electronic device has, stored in memory, the database of known, calibration patterns that relate to specific distances between the master and the slave. For example, a calibration pattern is stored for a master and slave pair that are spaced two feet apart, a calibration pattern is stored for a master and slave pair that are spaced five feet apart, a calibration pattern is stored for a master and slave pair that are spaced 10 feet, and so on. When comparing the detected pattern with the calibration patterns, a match will indicate the distance and relative angle between the master and the slave. When a match is not made to a calibration pattern in the database, the electronic device applies interpolation to determine the distance and relative angle. 
       FIG. 16  is a flow chart  1600  of a method for depth detection and calibration. The LED ring on the slave is activated to flash the light sources, for example LEDs, one at a time consecutively  1602 . A detection set on the master detects the light points  1604  and creates a detected pattern  1606 . The detected pattern is compared  1608  to the database of known, calibrated patterns. Based on the comparison, a match or applying interpolation, a distance and relative angle of the master and the slave is determined  1610 . The baseline parameter, D1, is calculated and set  1612  using the distance and relative angle determined in step  1610 . A triangle function may be used to calculate the baseline parameter, D1, as discussed earlier herein with reference to  FIGS. 3 and 12 . 
     In the foregoing specification, the present disclosure has been described with reference to specific exemplary embodiments. The specification and figures are illustrative, rather than restrictive, and modifications are intended to be included within the scope of the present disclosure. Accordingly, the scope of the present disclosure should be determined by the claims and their legal equivalents rather than by merely the examples described. 
     For example, the steps recited in any method or process claims may be executed in any order and are not limited to the specific order presented in the claims. Additionally, the components and/or elements recited in any apparatus claims may be assembled or otherwise operationally configured in a variety of permutations and are accordingly not limited to the specific configuration recited in the claims. 
     Benefits, other advantages and solutions to problems have been described above with regard to particular embodiments; however, any benefit, advantage, solution to problem or any element that may cause any particular benefit, advantage or solution to occur or to become more pronounced are not to be construed as critical, required or essential features or components of any or all the claims. 
     The terms “comprise”, “comprises”, “comprising”, “having”, “including”, “includes” or any variation thereof, are intended to reference a non-exclusive inclusion, such that a process, method, article, composition or apparatus that comprises a list of elements does not include only those elements recited, but may also include other elements not expressly listed or inherent to such process, method, article, composition or apparatus. Other combinations and/or modifications of the above-described structures, arrangements, applications, proportions, elements, materials or components used in the practice of the present disclosure, in addition to those not specifically recited, may be varied or otherwise particularly adapted to specific environments, manufacturing specifications, design parameters or other operating requirements without departing from the general principles of the same.