SYSTEM AND METHOD FOR DETECTION OF NEAR MOVING RADIO FREQUENCY IDENTIFICATION (RFID) TAGS

Example aspects include techniques for reducing false alarms caused by stray tags. These techniques may include determining, by a processor of an EAS system, a chatter score of a RFID identification of an RFID tag that generated a quantity of RFID readings above a predefined threshold at one or more RFID readers, and selecting, by the processor of the EAS system, the RFID identification based at least in part on the chatter score being below a chatter score threshold. In addition, the techniques may include determining, by the processor of the EAS system, that the RFID identification corresponds to a RFID tag in motion, and triggering, by the processor of the EAS system, an alarm based on a determination that the RFID tag identified by the RFID identification is not authorized to leave a controlled area associated with the one or more RFID readers.

BACKGROUND

Technical Field

The present disclosure relates generally to Electronic Article Surveillance (“EAS”), and more particularly, to examples related to mitigating stray tags in an EAS system using a Radio Frequency Identification (“RFID”) tag.

Introduction

EAS systems are used to control inventory and to prevent or deter theft or unauthorized removal of articles from a controlled area. Such systems establish an electromagnetic field or “interrogation zone” that defines a surveillance zone (for example, entrances and/or exits in retail stores) encompassing the controlled area. The articles to be protected are tagged with an EAS security tag. Tags are designed to interact with the field in the interrogation zone, e.g., established by an EAS portal. The EAS portal includes one or more EAS readers (e.g., transmitter/receiver, antennas), and an EAS detection module/controller. The presence of a tag in the interrogation zone is detected by the system and appropriate action is taken. In most cases, the appropriate action includes the activation of an alarm.

In the retail industry, it is common to “source tag” articles with RFID tags, either at the time of packaging/manufacture, or at some other point in the supply chain. At the same time, EAS technology and devices have proven critical to the reduction of theft and so called “shrinkage.” Since many articles arrive at the retailer with RFID tags, it is desirable that RFID tags be used also to provide EAS functionality in addition to their intended function of providing capabilities such as inventory control, shelf reading, non-line of sight reading, etc.

In some implementations, an RFID tag can be used to simulate EAS functionality by sending special codes when a reader interrogates the RFID tag. This arrangement advantageously eliminates the need for a separate EAS component, such as an acousto-magnetic (“AM”) component, within the tag, or a separate EAS tag. Various schemes can be used to enable the use of RFID tags to simulate EAS functionality. In some such systems, the RFID tag indicates in some way that the item to which the tag is attached has been purchased at point of sale (“POS”). If the RFID tag is a detachable tag, the RFID tag can be simply detached at the point of sale. In such a system, the RFID readers at the exit would trigger an alarm if any tags are detected. In other systems, the RFID tag may remain on the item, and an alarm is triggered if the RFID tag does not indicate that the item was purchased. For example, in such a system, data is written to the RFID chip at the POS to confirm the item was purchased. One common method is encoding a bit-flip at the POS, with the changed bit indicating that the item is authorized for removal. Other systems may read a unique ID from the tag, and store the unique ID in the enterprise system when the tagged item is purchased, so that the purchase can be verified by RFID readers as the tag exits the premises. Thus, if the purchase of the item cannot be verified based on tag data when the tag passes out of the store, an alarm can be triggered.

SUMMARY

Examples of the technology disclosed herein include methods, systems, and apparatuses of EAS. An example aspect includes a method of EAS, comprising accessing, by a processor of an EAS system from a queue, a batch of RFID readings received by a plurality of RFID readers of the EAS system. The batch of RFID readings being associated with a batch count value. Each RFID reading in the batch of RFID readings comprising a RFID identification of a corresponding RFID tag that generated that RFID reading. The method further includes updating, by the processor, a RFID reading history with the batch of RFID readings. The method further includes automatically calibrating, by the processor, a chatter score threshold. The method further includes selecting, by the processor, a first set of RFID identifications from the batch of RFID readings. Each RFID identification of the first set of RFID identifications having a corresponding chatter score below a chatter score threshold. Each corresponding chatter score being calculated according to the RFID reading history. The method further includes filtering, by the processor, the first set of RFID identifications resulting in a second set of RFID identifications. Each RFID identification in the second set of RFID identifications corresponding to a RFID tag in motion. The method further includes providing, by the processor to the EAS system, the second set of RFID identifications, causing the EAS system to alarm based on a determination that one or more RFID tags identified by the second set of RFID identifications are not authorized to leave a controlled area associated with the plurality of RFID readers.

Another example aspect includes a method of EAS, comprising accessing, by a processor of an EAS system from a queue, a batch of RFID readings received by a plurality of RFID readers of the EAS system. The batch of RFID readings may have been received during a particular time period. Each RFID reading in the batch of RFID readings may comprise a RFID identification of a corresponding RFID tag that generated that RFID reading. The batch of RFID readings may comprise a minimum quantity of RFID readings for each corresponding RFID tag. The method further includes determining a set of RFID identifications from the batch of RFID readings according to at least one machine learning algorithm. Each RFID identification in the set of RFID identifications may correspond to a RFID tag in motion. The method further includes providing, by the processor to the EAS system, the set of RFID identifications, causing the EAS system to alarm based on a determination that one or more RFID tags identified by the set of RFID identifications are not authorized to leave a controlled area associated with the plurality of RFID readers.

Another example aspect includes a method of EAS, comprising determining, by a processor of an EAS system, a chatter score of a RFID identification of an RFID tag that generated a quantity of RFID readings above a predefined threshold at one or more RFID readers; selecting, by the processor of the EAS system, the RFID identification based at least in part on the chatter score being below a chatter score threshold; determining, by the processor of the EAS system, that the RFID identification corresponds to a RFID tag in motion; and triggering, by the processor of the EAS system, an alarm based on a determination that the RFID tag identified by the RFID identification is not authorized to leave a controlled area associated with the one or more RFID readers.

DETAILED DESCRIPTION

It will be readily understood that the components of the aspects as generally described herein and illustrated in the appended figures could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of various aspects, as represented in the figures, is not intended to limit the scope of the present disclosure, but is merely representative of various aspects. While the various aspects of the aspects are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.

The present solution may be embodied in other specific forms without departing from its spirit or essential characteristics. The described aspects are to be considered in all respects only as illustrative and not restrictive. The scope of the present solution is indicated by the appended claims rather than by this detailed description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present solution should be or are in any single aspect of the present solution. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an aspect is included in at least one aspect of the present solution. Thus, discussions of the features and advantages, and similar language, throughout the specification may, but do not necessarily, refer to the same aspect.

Furthermore, the described features, advantages, and characteristics of the present solution may be combined in any suitable manner in one or more aspects. One skilled in the relevant art will recognize, in light of the description herein, that the present solution can be practiced without one or more of the specific features or advantages of a particular aspect. In other instances, additional features and advantages may be recognized in certain aspects that may not be present in all aspects of the present solution.

Reference throughout this specification to “one aspect,” “an aspect,” or similar language means that a particular feature, structure, or characteristic described in connection with the indicated aspect is included in at least one aspect of the present solution. Thus, the phrases “in one aspect”, “in an aspect,” and similar language throughout this specification may, but do not necessarily, all refer to the same aspect.

Conventional EAS systems may comprise RFID readers and RFID tags. The RFID readers may act both as transmitters and as receivers. The RFID tags may respond to RFID signals transmitted by the RFID readers and the RFID readers may receive the responses from the RFID tags. The strength of the return signal received by the RFID reader from the RFID tags may be referred to as a received signal strength indicator (“RSSI”). A power level of the RFID signals transmitted by the RFID readers may directly impact the RSSI values. A difference between an angle at which the RFID signal is transmitted and an angle at which a corresponding RFID response is received may be referred to as a phase angle. A conventional EAS system may determine whether a particular RFID tag is moving or static (e.g., stationary) based on RSSI and phase values corresponding the particular RFID tag. For example, conventional EAS systems may comprise rule-based techniques based on at least RSSI and/or phase values to determine whether the particular RFID tag is moving. Alternatively or additionally, the conventional EAS system may activate an alarm based on a determination that the particular RFID tag is exiting a premise (e.g., a retail store). However, such conventional EAS systems may have a relatively high false positive rate. A false positive may generally be addressed as an event in which the conventional EAS system activates an alarm based on an erroneous determination that a particular RFID tag is exiting the premise.

In conventional EAS systems, the use of RFID tags as an EAS exit solution may be limited by stray or reflected radio frequency (“RF”) signals that may cause false alarms. That is, stationary (e.g., non-moving) RFID tags may produce similar sets of RFID readings as a moving RFID tag due to radio interference and/or other factors such as metallic reflections and human body movements. For example, false alarms may be caused by stationary RFID tags located some distance from the EAS portal (e.g., entrance and/or exit in a retail store facility). In another example, changing RF reflections due to moving fixtures (e.g., revolving doors, escalators, mirrors) and/or human motion (e.g., customers pushing shopping carts, employees moving metallic racks) may cause stationary RFID tags to appear to be moving. These tags may generally be addressed as stray tags. As such, the number of false alarms caused by stray tags may compromise the accuracy and effectiveness of a conventional EAS system.

However, stray tag mitigation may be a challenge in a retail store scenario. A retail store facility may be a dynamic RF environment with various metallic reflections caused by moving doors, mirrors, moving metallic racks, customer foot traffic, among others. That is, a conventional EAS system may be challenged to differentiate a tag that is moving through the pedestals installed near the store exit from non-moving/stray tags.

Examples of the technology disclosed herein provide for multiple manners to mitigate false alarms caused by stray tags. In certain aspects, the EAS system may comprise a stray tag component configured to filter out RFID readings associated with stray tags. Further, aspects presented herein may increase accuracy and effectiveness over conventional EAS systems.

These and other features of the present disclosure are discussed in detail below with regard toFIGS.1-14.

Referring now toFIGS.1A-1B, there is provided a schematic illustration (plan view inFIG.1Aand top view inFIG.1B) of an illustrative EAS portal100that is useful for understanding the present solution. The present solution is described herein in relation to a retail store environment. The present solution is not limited in this regard, and can be used in other environments. For example, the present solution can be used in distribution centers, factories and other commercial environments. Notably, the present solution can be employed in any environment in which objects and/or items/articles need to be located and/or tracked.

The EAS portal100may include RFID readers106A,106B,106C (hereinafter “106”, generally) configured to read RFID tags. Each RFID reader106may be respectively attached to antennas102A,102B,102C (hereinafter “102”, generally) mounted on the sides of the EAS portal100. The RFID reader106as referenced herein may be capable of generating RFID tag exciter signals to control and elicit responses from one or more of a plurality of RFID tags (such as tags120A-120B, hereinafter “120” generally) in a EAS portal zone. The RFID exciter signals may also serve as a source of power for energizing the RFID tags120. The exciter signals generated by the RFID readers106and responses received by each RFID reader106may be in accordance with an RFID system standard that is now known or known in the future. Alternatively or additionally, the RFID readers106may detect, identify, and/or process one or more the responses from the plurality of RFID tags120in the EAS portal zone. The RFID readers106may include suitable interface circuitry to facilitate communications with a system controller108(e.g., a server) as described below. For example, the interface circuitry may facilitate communication of information regarding detected responses received from RFID tags120. Such interface circuitry can also facilitate reception of interrogation commands and/or antenna beam control commands from the system controller108.

The RFID tags120may each comprise identification information, such as a serial number, an electronic product code (“EPC”), and a stock keeping unit (“SKU”) number, that uniquely identifies each RFID tag120. As such, the RFID tags120may respond to the RFID readers106by providing the respective identification information.

In the EAS portal100shown, the antennas102may be mounted on pedestals103A,103B (hereinafter “103,” generally) and/or in the ceiling (e.g.,102C), but the technology disclosed herein is not limited in this regard. For example, antennas102may be mounted in the ground, and the method described herein would still be applicable. There is no restriction regarding the type of antennas102that are used to produce the required field patterns. For example, antennas102may be beam steerable so that multiple different antenna beam directions may be obtained from a single antenna102. Alternatively or additionally, the RFID reader106may comprise multiple antennas102. Control over the required antenna field patterns may be facilitated by the RFID readers106as noted above. In addition, three antennas,102A,102B, and102C, are shown inFIGS.1A-1B, but it should be understood that the technology disclosed herein is not limited in this regard. For example, the inventive arrangements described herein may be implemented using a single beam steerable antenna. In another example, the inventive arrangements described herein may be implemented using additional antennas.

The EAS portal100may be placed in the vicinity of an entrance and/or exit point in a premise (e.g., retail store facility) where articles must pass through in order to transition from one space inside the premise to a second space, which is outside of the premise. In the example shown inFIGS.1A-1B, the EAS portal is located in the vicinity of a doorway104, but the technology disclosed herein is not limited in this regard. The entrance/exit/choke point may also be a wide exit such as those seen in shopping malls, which is open to another interior space, which is not part of the premise.

The RFID readers106may be operated under the command of a system controller108, such as a server, for example, which may facilitate the detection of the one or more RFID tags120within a field of view of each antenna102as hereinafter described. The system controller108may be situated local to the premise, as shown inFIGS.1A-1B, or may be located in a remote location. The system controller108may be configured to write data to and/or read data from RFID readers106and/or RFID tags120.

In certain aspects, the system controller108may include a stray tag component110configured to access a batch of RFID readings from a queue, and that have been received from the RFID readers106, update a RFID reading history, select a first set of RFID identifications from the batch of RFID readings, filter the first set of RFID identifications resulting in a second set of RFID identifications, and provide the second set of RFID identifications to the EAS system. The stray tag component110may be configured to perform a two-stage cascading filtering algorithm to mitigate false alarms that may potentially be caused by stray tags. A first stage of the filtering algorithm may eliminate noise from the RFID readings in the form of chatter, thereby reducing the number of RFID identifications in the second decision process. A second stage of the filtering algorithm may analyze the RFID identifications that emerged from the first stage and may determine whether the RFID identifications indicate a stray tag or a moving tag. As such, the second stage may further mitigate false alarms potentially caused by the stray tags. Thereby, increasing accuracy and effectiveness over conventional EAS systems.

FIG.2is a schematic illustration of an example architecture200for a EAS system. Reader processes210A,210B, and210C (hereinafter “210”, generally) may extract RFID responses from RFID readers106and/or RFID tags120, for example. The reader processes210may populate a queue220with the extracted RFID responses. The reader processes210may be configured to periodically populate the queue220according to a read rate. For example, the reader processes210may be configured to populate the queue220once every 3 seconds. In some aspects, the read rate may be configured according to power settings of the RFID readers106. Alternatively or additionally, the reader processes210may be configured with a single read rate or each reader processes210may be configured with a distinct read rate.

The stray tag component110may be configured to sweep a batch of RFID readings from the queue220at a set interval. That is, a sleep time parameter may determine a time duration that the stray tag component110may wait before sweeping a next batch of RFID readings from the queue220. The sleep time parameter, or MIN-STEP-TIME, may be configurable. In some aspects, the MIN-STEP-TIME interval may be configured according to the read rate of the reader processes210. For example, the MIN-STEP-TIME interval may be adjusted to match the read rate.

In some aspects, the stray tag component110may be configured to extract all RFID readings from the queue220during each sweep. That is, after the sleep time interval has expired, the stray tag component110may sweep all data content from the queue220for further processing.

In other aspects, the stray tag component110may be configured to process a portion of the previous queue contents with the current batch RFID readings. That is, the stray tag component110may combine a portion of the RFID readings from the previous batch with the RFID readings from the current batch for processing during the current sweep cycle. Such a configuration may be advantageous if or when the read rate is split between sleep time intervals. Alternatively or additionally, the portion of the RFID readings from the previous batch may aid in the processing of the RFID readings from the current batch. A size of the portion of the RFID readings from the previous batch may be configurable. For example, the portion size may be configured to be a percentage (e.g., 20%) of the quantity of RFID readings in the previous batch.

In yet other aspects, the stray tag component110may be configured to extract and process the RFID readings from the queue220if or when a quantity of RFID readings in the queue220reaches or exceeds a threshold. For example, the stray tag component110may be configured to extract and process N or more RFID readings from the queue220, wherein N is a positive integer greater than zero.

FIG.3is a diagram illustrating an example of a batch of RFID readings. As shown inFIG.3, a batch may be assigned a value, batch_count. The batch_count value may serially increment. For example, a first batch may be assigned a batch_count value of 1 and a second (and subsequent) batch may be assigned a batch_count value of 2. In some aspects, a RFID reading in a batch may comprise a first timestamp, dt, indicating a first time instance at which the RFID reading was extracted from the queue220. In other aspects, a RFID reading may comprise identification information corresponding to the RFID tag120that generated the response. For example, a RFID reading may comprise an EPC value, epc, as shown inFIG.3, identifying the RFID tag120that generated the response. In other aspects, a RFID reading may comprise a second timestamp, reader_dt, indicating a second time instance at which the response was received by the RFID reader106. In other aspects, a RFID reading may comprise reader identification, reader, identifying the reader (e.g.,106A,106B,106C) that received the RFID reading. In other aspects, a RFID reading may comprise antenna identification, antenna, identifying the antenna (e.g.,102A,102B,102C) that received the RFID reading. In other aspects, a RFID reading may comprise signal measurements of the RFID response. For example, as shown inFIG.3, a RFID reading may comprise a received signal strength indicator (e.g., rssi), a frequency (e.g., freq), and a power level indication (e.g., power) of the RFID reading.

Referring back toFIG.2, the stray tag component110may comprise an update history component232, a Stage 1 component234, a Stage 2 component236. In some aspects, the stray tag component110may comprise an auto-calibration component240configured to automatically adjust certain parameters utilized by the stray tag component110(e.g., the Stage 1 component234, the Stage 2 component236). Alternatively or additionally, the stray tag component110may comprise a machine learning component250configured to use machine learning techniques for improving the accuracy of the stray tag component110. For example, the machine learning component250may be used as a third pass in addition to the first pass and second pass performed by the Stage 1 component234and the Stage 2 component236, respectively. In particular, the RFID tags declared as moving tags by the Stage 2 component236and the machine learning component250may be used to trigger an alarm based on unauthorized movement. Alternatively or additionally, the stray tag component110may comprise a near moving component260configured to implement additional techniques for classifying tags moving near the EAS portal to further reduce a probability of a false alarm.

The update history component232may be configured to process the RFID readings extracted by the stray tag component110by performing the following operations.

For each batch of RFID readings, if or when a quantity of RFID readings from a particular EPC is less than a EPC-COUNT-FILTER parameter, the RFID readings from the particular EPC will not be further processed. That is, EPCs passing this criteria are processed further.

At this stage a history is built for each EPC.

If or when the EPC is not in the history already, a new entry is created for this EPC.

a. Once a new entry is created, the following values are stored under it:i. first_observed_batch;ii. last_observed_batch; andiii. consequent_batches_observed.

b. The first_observed_batch indicates the batch_count at which this EPC was added to the history. That is, the first_observed_batch indicates the batch_count at which this EPC was first observed. For new entries, the first_observed_batch may be set to the current batch_count.

c. The last_observed_batch indicates the batch_count at which this EPC was last observed. The last_observed_batch is set to the current batch_count. For new entries, the last_observed_batch may match the first_observed_batch.

d. The consequent_batches_observed indicates a count of batches in which this EPC has been observed. For new entries, the consequent_batches_observed may be set to zero, indicating that the current batch_count is the first batch_count at which this EPC has been observed.

If or when the EPC is present already in the history, the history values for this EPC may be updated as follows.

a. If or when (current batch_count−last_observed_batch) is less than a CONSQ_BATCHES_THRESHOLD, the last_observed_batch is set to the current batch_count and the consequent_batches_observed is incremented by one.

b. Else, the first_observed_batch is set to zero, the last_observed_batch is set to the current batch_count, and the consequent_batches_observed is set to zero. That is, this condition may be reached when a RFID tag120has not been observed by a RFID reader106for a considerable amount of time, as determined by the CONSQ_BATCHES_THRESHOLD. As such, the history for this EPC is reset back to its initial values.

After the update history component232has processed the batch of RFID readings, the RFID readings are passed to the Stage 1 component234. The Stage 1 component234may be configured to calculate a chatter score for each EPC in the batch of RFID readings. First EPCs with respective chatter scores that exceed a chatter score threshold may be considered stray tags, and may be omitted from further processing. That is, the first EPCs may be associated with stationary RFID tags that appear to be moving due to radio interference and the like. Second EPCs with respective chatter scores that do not exceed the chatter score threshold may be processed further. That is, the second EPCs may be selected as candidates for moving (e.g., outgoing) tags.

For each EPC in the batch of RFID readings, the Stage 1 component234may calculate a time duration during which the corresponding EPC has been observed, as follows:

The Stage 1 component234may calculate a chatter score as follows:

An EPC which is repeatedly observed across subsequent batches may exhibit a behavior similar to the chatter score values shown inFIG.4. That is, the chatter_score values (e.g., y-axis) for such an EPC may monotonically increase when plotted as a function of the batch_count (e.g., x-axis). Such a chatter score behavior may generally be addressed as continuous chatter. As such, an EPC exhibiting continuous chatter may be considered to indicate a stray tag (e.g., stationary).

Referring toFIG.2, the Stage 1 component234may be configured to comprise one or more chatter score thresholds. The one or more chatter score thresholds may be determined based at least on a read rate of the reader processes210. Each chatter score threshold of the one or more chatter score thresholds may define a band of chatter score values that indicate a moving tag. The Stage 1 component234may be configured to operate in a selected band from one of the configured bands. For example, the Stage 1 component234may be configured to comprise a Band1corresponding to a chatter score threshold of 0.75, a Band2corresponding to a chatter score threshold of 1.1, and a Band3corresponding to a chatter score threshold of 1.5. That is, if or when the Stage 1 component234is configured to run in Band1, EPCs with a chatter score less than 0.75 may be evaluated as a moving tag and allowed to be processed further. Alternatively or additionally, EPCs with a chatter score that meet or exceed 0.75 may be evaluated as a stray tag and prevented from being processed further.

The EPCs which have passed the Stage 1 component234selection (e.g., moving tag candidates) may be forwarded to the Stage 2 component236. The Stage 2 component236may be configured to calculate, for each EPC, the following features that are configured to further differentiate moving tags that should be evaluated for triggering an alarm, from stray tags that can be ignored, thereby reducing false alarms.

The Stage 2 component236may calculate a read rate, read rate, corresponding to a quantity of RFID readings in the current batch that correspond to each EPC. The Stage 2 component236may calculate an antenna entropy measuring if the EPC has been read by a single antenna102or if the EPC is oscillating between multiple antennas102, as follows:

antenna_entropy=-∑i=1npi⁢log⁢piwhere n is the number of antennas having readings from the EPC and piis the probability that the EPC was read by a particular antenna. For example, if or when an EPC has 3 readings from antenna8, [8, 8, 8], then the probability p1that the EPC was read by antenna8is 1.0, and the antenna entropy is 0.0. For another example, if or when an EPC has two readings from antenna8and one reading from antenna9, then the probability that p1that the EPC was read by antenna8is 0.66, the probability that p2that the EPC was read by antenna9is 0.33, and the antenna entropy is 0.39.

The Stage 2 component236may calculate a reader entropy measuring if the EPC has been read by a single reader106or if the EPC has been read by multiple readers, as follows:

reader_entropy=-∑i=1npi⁢log⁢piwhere n is the number of readers having readings from the EPC and piis the probability that the EPC was read by a particular reader. For example, if or when an EPC has 3 readings from reader1, [1, 1, 1], then the probability p1that the EPC was read by reader1is 1.0, and the reader entropy is 0.0. For another example, if or when an EPC has two readings from reader1and one reading from reader2, then the probability that p1that the EPC was read by reader1is 0.66, the probability that p2that the EPC was read by reader2is 0.33, and the reader entropy is 0.39.

The Stage 2 component236may calculate a read burst, read burst, measuring a sum of time elapsed between the first reading and the last reading across all readings for a particular EPC in the batch.

The Stage 2 component236may determine according to at least these calculated features whether each EPC in the batch is a stray (e.g., stationary) tag or a moving (e.g., outgoing) tag. In some aspects, the determination by the Stage 2 component236may comprise a decision tree. For example,

Alternatively or additionally, the decision tree may be learned for each installation of the EAS system. In other aspects, a standard decision tree may be used across multiple installations.

The stray tag component110may provide, to the system controller108, the EPCs that have been declared as moving tags by the Stage 2 component236. In response, the system controller108may trigger an alarm based at least one a determination that one or more of the EPCs is not authorized to leave the EAS portal zone (e.g., either based on the tag being detected, or based on data on the tag not indicating that the item is purchased).

A chatter score of an EPC may exhibit a different behavior than the continuous chatter described above with reference toFIG.4. For example, an EPC may be observed for some time and then the EPC may disappear. The EPC then may reappear at a later time in a cyclic or random fashion. Such a behavior may generally be addressed as a fleeting behavior. The update history component232may treat an EPC exhibiting the fleeting behavior as a new EPC if or when the EPC reappears. That is, the consequent batches threshold check (e.g., CONSQ_BATCHES_THRESHOLD) may cause the update history component232to remove the EPC from the history and to re-add the EPC whenever the EPC reappears.

For example,FIG.5shows chatter_score values for an EPC exhibiting the fleeting behavior. In the example shown inFIG.5, the fleeting behavior EPC first appeared around the first batch and disappeared, reappeared around the 500thbatch and disappeared, reappeared around batches 1500, 1800, and 2000.

However, it would be advantageous to treat EPCs exhibiting the fleeting behavior in a manner similar to the continuously chattering EPCs, that is, to declare fleeting behavior EPCs as stray tags. Referring toFIG.2, the update history component232may comprise a reset score component238configured to track a quantity of times that a EPC history has been reset by the update history component232. That is, the reset score component238may increment by one a reset_count value if or when the update history component232resets the history for an EPC back to its initial values.

For example,FIG.6illustrates how the reset_count values may be incremented by one with every appearance of the fleeting behavior EPC as depicted inFIG.5. In the example shown inFIG.6, the fleeting behavior EPC first appears around the first batch with a reset_count of zero. The fleeting behavior EPC reappears around the 500thbatch and the reset_count is incremented to 1. The fleeting behavior EPC reappears around the 1500thbatch and the reset_count is incremented to 2. And, the fleeting behavior EPC reappears around batches 1800 and 2000 and the reset_count is incremented to 3 and 4, respectively.

Referring toFIG.2, the reset score component238may be configured to calculate a reset score as follows:

reset_score=exp⁢(log⁢(penalty_constant)5*reset_count)where the penalty_constant is a value between 0 and 1. For example, the penalty_constant may be set to 0.75.

For example,FIG.7illustrates reset score values as a function of reset_count values. In the example shown inFIG.7, the reset score value gradually decreases as the reset_count increases.

Referring toFIG.2, the Stage 1 component234may be configured to calculate a modified chatter score as follows:

chatter_score_reset=chatter_score+(1−reset_score)where the penalty_constant is a value between 0 and 1. For example, the penalty_constant may be set to 0.75.

For example,FIG.8illustrates chatter_score_reset values for the fleeting behavior EPC as depicted inFIG.5. In the example shown inFIG.8, the fleeting behavior EPC first appears around the first batch with a chatter_score_reset of 1. The fleeting behavior EPC reappears around the 500thbatch and the chatter_score_reset is recalculated around 1.06. The fleeting behavior EPC reappears around the 1500thbatch and the chatter_score_reset is recalculated around 1.12. And, the fleeting behavior EPC reappears around batches 1800 and 2000 and the chatter_score_reset is recalculated around 1.16 and 1.22, respectively.

That is, the modified chatter score increases based on a value of the penalty constant, allowing for the Stage 1 component234and the Stage 2 component236to declare a fleeting behavior EPC as a stray tag.

FIG.9is a diagram illustrating example reset score values as a function of reset_count values for multiple penalty constants. That is, the x-axis is plotted with the reset_count and the y-axis is plotted with the reset score. Each line in the diagram corresponds to a different penalty_constant value. As shown inFIG.9, varying the value of the penalty_constant changes the impact of the penalization of the modified chatter score for fleeting behavior EPCs.

Referring back toFIG.2, the stray tag component110may be automatically calibrated for a particular retail store scenario. That is, the stray tag component110may comprise an auto-calibration component240that may be configured to automatically adjust certain parameters utilized by the stray tag component110(e.g., the Stage 1 component234, the Stage 2 component236). For example, the auto-calibration component240may adjust parameters such as the read rate of reader processes210, the MIN-STEP-TIME parameter, the EPC-COUNT-FILTER parameter, the CONSQ_BATCHES_THRESHOLD parameter, band thresholds, and the like. The auto-calibration component240may adjust the parameters in a self-learning fashion.

In some aspects, the EAS portal100may be instructed to enter a setup (or learning) mode. The EAS portal100may be allowed to run in the setup mode for a predetermined minimum period of time. While the EAS portal100is running in the setup mode, a retail store employee (e.g., an associate) may perform test walks with one or more RFID tags comprising known EPC identification values. The test walks may include walking through the controlled area of the EAS portal100. Alternatively or additionally, no RFID tags, other than the test RFID tags, may be moved through the controlled area. For example, the known EPC identification values may identify actual moving (e.g., outgoing) tags, rather than stray (e.g., stationary) tags.

The known EPC identification values may be provided to the auto-calibration component240either prior to the test or during the setup run time. The auto-calibration component240may utilize these known EPC identification values to automatically adjust and/or fine tune the parameters of the stray tag component110. For example, the auto-calibration component240may decrease or increase a sensitivity of the stray tag component110to identify an EPC that appears on consecutive batches as a candidate outgoing tag. That is, the auto-calibration component240may change chatter score values according to the desired sensitivity (e.g., decrease scores, increase scores). Alternatively or additionally, multiple setup tests may be run until the parameters of the stray tag component110are adjusted to provide a desired performance of the stray tag component110for the particular retail store scenario.

The auto-calibration component240may, for each batch of RFID readings, discard the RFID readings from a particular EPC if or when a quantity of RFID readings from the particular EPC is less than a threshold (e.g., EPC-COUNT-FILTER parameter).

In some aspects, the auto-calibration component240may set the MIN-STEP-TIME parameter to a default value (e.g., 2 seconds). In other aspects, the auto-calibration component240may reduce or increase a value of the MIN-STEP-TIME parameter according to a distribution of read counts across the batches. For example, the MIN-STEP-TIME parameter may be adjusted to match the read rate of reader processes210. In another example, the MIN-STEP-TIME parameter may be increased if or when respective read counts for multiple batches do not exceed a threshold. In yet another example, the MIN-STEP-TIME parameter may be decreased if or when the respective read counts for the multiple batches exceeds the threshold.

The auto-calibration component240may adjust the chatter score calculation to prevent an EPC that exhibits behavior commensurate with continuous chatter from being considered as a candidate outgoing tag. That is, EPCs that are repeatedly observed across consecutive batches may be chattering EPCs and not indicate an outgoing tag. For example, if or when a particular EPC presents itself for the first time to the system and the particular EPC appears in two consecutive batches, the particular EPC may be considered a good candidate for an outgoing tag and the auto-calibration component240may adjust the chatter score for the particular EPC to a maximum chatter score value (e.g., 0.69). In another example, if or when a particular EPC presents itself for the first time to the system and the particular EPC appears in more than two consecutive batches, the particular EPC may be considered a potential chattering EPC and the auto-calibration component240may increase the chatter score for the particular EPC above the maximum chatter score value (e.g., 0.69) and allow the chatter score value to continue to increase.

The auto-calibration component240may adjust the chatter score calculation to prevent a fleeting EPC from being considered as a candidate outgoing tag. That is, EPCs that are appear and disappear across batches in a cyclic or random fashion may be fleeting EPCs and not indicate an outgoing tag. For example, if or when a particular EPC presents in a first batch and in a second batch, where the first batch and the second batch are sufficiently apart (e.g., exceeds CONSQ_BATCHES_THRESHOLD), the particular EPC may be considered a potential fleeting EPC and the auto-calibration component240may adjust the calculation of the chatter score of the particular EPC for the first batch to a first value (e.g., 0.69) and may adjust the calculation of the chatter score for the second batch to a second value (e.g., 0.74). The second chatter score value may be higher than the first chatter score value.

In some aspects, the auto-calibration component240may adjust a minimum threshold for indicating whether a particular chatter score value indicates a candidate outgoing tag or a stray tag. In other aspects, the auto-calibration component240may set the minimum threshold according to one or more of the chatter scores associated with chattering EPCs and/or fleeting EPCs. For example, the auto-calibration component240may set the minimum threshold according to the maximum chatter score value associated with chattering EPCs (e.g., 0.69). In another example, the auto-calibration component240may set the minimum threshold according to the first chatter score value (e.g., 0.69) or the second chatter score value (e.g., 0.74) associated with fleeting EPCs. In yet another example, the auto-calibration component240may set the minimum threshold to a maximum value of the chatter scores associated with chattering EPCs and/or fleeting EPCs (e.g., 0.74).

Alternatively or additionally, the stray tag component110may comprise a machine learning component250configured to use machine learning techniques for improving the accuracy of the stray tag component110. For example, the machine learning component250may comprise one or more machine learning algorithms (e.g., Extra Trees classifier, Gaussian Naïve Bayes classifier) configured to reduce a number of false alarms of the stray tag component110. That is, the machine learning component250may reduce a number of incorrect classifications of stray tags as moving tags and/or moving tags as stray tags.

In some aspects, the stray tag component110may obtain batches of RFID readings at a particular rate. Each reading of the RFID readings may comprise a timestamp, an identification of the RFID reader that received the reading, an identification of the RFID tag (e.g., EPC), an identification of the antenna that received the reading, and a RS SI value, phase angle, and power level of the returned signal. The respective RSSI values of the RFID readings may be normalized RSSI values. That is, the RSSI values may have been normalized by dividing each RSSI value by the transmission power level of the corresponding RFID signal. The respective phase angles of the RFID readings may be adjusted by performing a modulus operation on each phase angle. For example, the phase angles may have been adjusted by a modulus of2048.

The machine learning component250may group the RFID readings captured for each RFID tag during a particular time period (e.g., 6 seconds) into gathering sessions. For example, each session of the gathering sessions may comprise the RFID readings for a particular RFID tag (or EPC) captured within a 6 second time period. The machine learning component250may discard sessions that comprise less than a predetermined threshold of RFID readings (e.g.,4). For example, the machine learning component250may discard a session if or when the session comprises less than four readings.

The machine learning component250may calculate one or more features for each session of the gathering sessions. The features may be calculated based at least on the values comprised by each of the RFID readings in each corresponding session. In some aspects, features may be categorized into a plurality of categories. For example, features may be divided into two categories, namely, temporal features and sessional features. The temporal features may relate to time-based characteristics of the session. For example, the temporal features may keep track of the antenna, RSSI, and phase angles for the current (or last) reading and one or two previous readings in the session. The sessional features may relate to descriptive characteristics of the session. For example, the sessional features may keep track of an average RSSI and phase angles of a session. Table 1 provides a list of example features that may be calculated by the machine learning component250. Each feature has a name and a corresponding description. Features may be referenced by their name hereafter.

TABLE 1Feature NameFeature Description1antennaPortantennaPort of current read at time t2port_t1antennaPort of read at time t-13port_t2antennaPort of read at time t-24rssi_power(RSSI/transmission power) of current read at timet5rssi_power_t1(RSSI/transmission power) of read at time t-16rssi_power_t2(RSSI/transmission power) of read at time t-27rssi_stdStandard deviation of rssi_power in gatheringsession8rssi_minMinimum rssi_power in gathering session9rssi_maxMaximum rssi_power in gathering session10rssi_meanAverage rssi_power in gathering session11rssi_skewSkewness of rssi_power in gathering session12rssi_diffDifference between minimum and maximumrssi_power in gathering session13rssi_CoV(Standard deviation/Average) of rssi power ingathering session14angle_2048(Phase angle MOD 2048) of current read at time t15angle_t1(Phase angle MOD 2048) of read at time t-116angle_t2(Phase angle MOD 2048) of read at time t-217angle_stdStandard deviation of angle_2048 in gatheringsession18angle_minMinimum angle_2048 in gathering session19angle_maxMaximum angle_2048 in gathering session20angle_meanAverage angle_2048 in gathering session21angle_skewSkewness of angle_2048 in gathering session22angle_diffDifference between minimum and maximumangle_2048 in gathering session23angle_CoV(Standard deviation/Average) of angle_2048 ingathering session24current_lengthNumber of reads in the gathering session at time t25rssi_vel_mean((most recent rssi) − (oldest rssi) in the gatheringsession)/rssi_mean26angle_vel_mean((most recent angle_2048) − (oldest angle_2048)in the gathering session)/angle_mean

The machine learning component250may determine according to at least one or more machine learning algorithms whether each session in the gathering sessions corresponds to a stray (e.g., stationary) tag or a moving (e.g., outgoing) tag. That is, the machine learning component250may filter the gathering sessions using one or more machine learning algorithms to identify sessions that correspond to an RFID tag that is moving. In some aspects, the stray tag component110may provide, to the system controller108, the EPCs that have been declared as moving tags by the machine learning component250. In response, the system controller108may trigger an alarm based at least one a determination that one or more of the EPCs is not authorized to leave the EAS portal zone (e.g., either based on the tag being detected, or based on data on the tag not indicating that the item is purchased).

The machine learning component250may implement one or more machine learning algorithms with at least a portion of the aforementioned features. That is, a machine learning algorithm may determine whether a particular session corresponds to a stray tag or to a moving tag based on an analysis of a portion of the features corresponding to the particular session.

In some aspects, the machine learning component250may be configured to implement a machine learning algorithm with a particular configuration and to use the output from the machine learning algorithm to determine whether a session corresponds to a stray tag or to a moving tag. For example, the machine learning component250may implement a Gaussian Naïve Bayes classifier algorithm. The Gaussian Naïve Bayes classifier algorithm may be configured to analyze a portion of the features (e.g.,19features) to determine whether a particular session corresponds to a stray tag or to a moving tag. In another example, the machine learning component250may implement an Extra Trees classifier algorithm. The Extra Trees classifier algorithm may be configured with a certain number of estimators (e.g., 500 estimators) to analyze a portion of the features (e.g.,25features) to determine whether a particular session corresponds to a stray tag or to a moving tag.

In other aspects, the machine learning component250may be configured to implement two or more machine learning algorithms with corresponding configurations and to use the output from the two or more machine learning algorithms, independently or in combination, to determine whether a particular session corresponds to a stray tag or to a moving tag. For example, the machine learning component250may implement the Gaussian Naïve Bayes classifier algorithm and the Extra Trees classifier algorithm. In such an example, the machine learning component250may combine the results from the Gaussian Naïve Bayes classifier algorithm and the Extra Trees classifier algorithm to determine whether a particular session corresponds to a stray tag or to a moving tag. In some aspects, the machine learning component250may apply a corresponding weight to the results from each of the machine learning algorithms prior to, or as part of, combining the results from the two or more machine learning algorithms.

FIG.10is a schematic illustration of an example environment1000in which an EAS portal (such as EAS portal100ofFIGS.1A-1B) may be deployed. The environment1000may be a retail store premise, an office building, a distribution center, a factory, or a commercial environment that includes an EAS portal. Notably, the present solution may be employed in any environment in which objects and/or items/articles need to be located and/or tracked.

The environment1000may be divided into two or more zones (such as zones1005A-1005B, hereinafter “1005” generally). A first zone1005A of the environment1000may comprise the EAS portal100. That is, the EAS portal100may be located within the first zone1005A. In some aspects, the first zone1005A may be referred to as a near zone of EAS portal100. The RFID tags (such as tags120A-120B) that are located within the near zone1005A may have a high probability of being read repeatedly by the RFID readers106of EAS portal100. As such, the RFID tags located within the near zone1005(e.g.,120A-120B) may exhibit behavior commensurate with chattering EPCs. In some aspects, a size and shape of the near zone1005A may be affected by several factors including, but not limited to, a transmission power level of the RFID readers106, a reception sensitivity of the RFID readers106, and/or obstructions in the environment1000(e.g., display equipment, building columns, walls). In other optional or additional aspects, the size and shape of the near zone1005A may be defined according to a predetermined distance and/or radius from the EAS portal100(e.g., 1.5 meter radius).

Alternatively or additionally, a remaining portion (e.g., zone1005B) of the environment1000may be referred to as a far zone of EAS portal100. RFID tags (such as tag120C) that are located within the far zone1005B may have a low probability of being read repeatedly by the RFID readers106. In some aspects, the remaining portion of the environment1000may be divided into two or more zones (not shown).

The environment1000may include display equipment1010A-1010G (hereinafter “1010” generally). The display equipment may be provided for displaying objects (or items/articles) to customers of the retail store. The display equipment may include, but not be limited to, shelves, article display cabinets, promotional displays, fixtures, and/or tables. The environment1000may also include emergency equipment (not shown), checkout counters, and other equipment and fixtures typical for the facility type. In some aspects, one or more display equipment1010may be located within the near zone1005A (e.g.,1010A-1010B). In other aspects, other display equipment1010(e.g.,1010C-1010G) may be located outside of the near zone1005A, that is, within the far zone1005B. Alternatively or additionally, one or more objects may be placed on the display equipment1010. The objects may be attached and/or coupled to a RFID tag120, such as RFID tags120B and120C, as shown inFIG.10.

Referring back toFIG.2, the stray tag component110may comprise a near moving component260configured to implement additional techniques for detecting near moving tags for improving the accuracy of the stray tag component110. For example, the near moving component260may employ additional techniques for classifying chattering EPCs located within the near zone1005A of the EAS portal100. That is, the near moving component260may distinguish between moving tags (e.g., RFID tag120A) and stationary tags (e.g., RFID tag120B) in the near zone1005A. The near moving component260may provide the EPCs classified as moving tags to other components (e.g., Stage 2 component236) of the stray tag component110for further processing.

The near moving component260may be configured to classify chattering EPCs located in the near zone1005A according to their corresponding chatter scores. In some aspects, the near moving component260may decrease and/or reduce the CONSQ_BATCHES_THRESHOLD associated with one or more EPCs if or when the corresponding chatter scores for the one or more EPCs exceed the chatter score threshold configured for the stray tag component110. For example, if or when the stray tag component110is configured to run in Band1(e.g., chatter score threshold set to 0.75), EPCs with a chatter score that exceeds 0.75 may have their corresponding CONSQ_BATCHES_THRESHOLD decreased and/or reduced. The near moving component260may decrease the CONSQ_BATCHES_THRESHOLD by a predetermined amount (e.g., subtract 2 from the value) and/or reduce the CONSQ_BATCHES_THRESHOLD by a predetermined factor (e.g., divide value by 2). The near moving component260may continue to decrease and/or reduce the CONSQ_BATCHES_THRESHOLD until a minimum value is reached (e.g., zero). That is, if or when a chatter score of an EPC with a decreased and/or reduced CONSQ_BATCHES_THRESHOLD continues to exceed the chatter score threshold, the near moving component260may further decrease and/or reduce the CONSQ_BATCHES_THRESHOLD until the minimum value is reached. In some aspects, the near moving component260may classify an EPC with a corresponding chatter score that does not exceed the chatter score threshold (e.g., less than 0.75) and a minimum CONSQ_BATCHES_THRESHOLD (e.g., zero) as a potential candidate EPC (e.g., moving tag) and allow the EPC to be processed further (e.g., provided to the Stage 2 component236). In other aspects, the near moving component260may classify an EPC with a corresponding chatter score that exceeds the chatter score threshold (e.g., equal to or more than 0.75) as a stationary EPC and prevent the EPC from being processed further (e.g., not provided to the Stage 2 component236).

For example,FIG.11illustrates how the CONSQ_BATCHES_THRESHOLD may be decreased and/or reduced for a particular EPC located within the near zone1005A. In the example shown inFIG.11, the particular EPC may appear in batches 1-8 and may have monotonically increasing chatter_score_reset values ranging from approximately 0 to 2.0. In batch 8, the near moving component260may decrease and/or reduce a corresponding CONSQ_BATCHES_THRESHOLD for the particular EPC from 5 to 2. That is, the near moving component260may be configured with a chatter score threshold of 2.0 and the near moving component260may decrease and/or reduce the corresponding CONSQ_BATCHES_THRESHOLD for the particular EPC on batch 8 because the chatter_score_reset value exceeds the chatter score threshold. The particular EPC may then appear in batch 9, causing the chatter_score_reset value to further increase to approximately 2.197. In the example shown inFIG.11, the particular EPC may not appear in batches 10 and 11, and may reappear in batch 12. As such, the EPC history for the particular EPC may be reset (e.g., reset_count increased to 1) at batch 12, in response to the particular EPC not appearing in more than 2 consequent batches (e.g., exceeding the CONSQ_BATCHES_THRESHOLD), as described above in reference to the reset score component238. Consequently, the chatter_score_reset value for the particular EPC may decrease below the chatter score threshold and cause the near moving component260to classify the particular EPC as a potential candidate EPC for further processing.

Referring back toFIG.2, in other optional or additional aspects, the near moving component260may be configured to classify chattering EPCs located in the near zone1005A according to a difference (or a divergence) between probability distributions of RFID readers106and/or antennas102reading the EPCs. For example, the near moving component260may classify an EPC located in the near zone1005A as a moving EPC if or when a difference between a current set of antennas102and/or RFID readers106reading a particular EPC and a previous set of antennas102and/or RFID readers106exceeds a certain divergence threshold.

In these optional or additional aspects, each EPC entry in the EPC history may include reader_dist and antenna_dist values. The reader_dist values may indicate a probability distribution (or sequence) of RFID readers106that have received a reading from the corresponding EPC. For example, the EPC entry in the EPC history may include a reader probability distribution from the current batch (e.g., current_reader_dist) and/or a reader probability distribution from the previous batch (e.g., previous_reader_dist). The antenna_dist values may indicate a probability distribution (or sequence) of antennas102that have received a reading from the corresponding EPC. For example, the EPC entry in the EPC history may include an antenna probability distribution from the current batch (e.g., current_antenna_dist) and/or an antenna probability distribution from the previous batch (e.g., previous_antenna_dist).

The near moving component260may be configured to measure a difference of the reader probability distribution over time and/or a difference of the antenna probability distribution over time. For example, the near moving component260may measure the difference between the reader probability distribution from the current batch (e.g., current_reader_dist) and the reader probability distribution from the previous batch (e.g., previous_reader_dist). Alternatively or additionally, the near moving component260may measure the difference between the antenna probability distribution from the current batch (e.g., current_antenna_dist) and the antenna probability distribution from the previous batch (e.g., previous_antenna_dist). In some aspects, the near moving component260may measure the difference between the probability distributions by calculating a cross entropy between the probability distributions. In other optional or additional aspects, the near moving component260may calculate a Kullback—Leibler (“KL”) divergence, and/or a relative entropy, between the probability distributions.

The near moving component260may classify EPCs in the near zone1005A as moving EPCs if or when the difference (e.g., KL divergence) between the current reader probability distribution (e.g., current_reader_dist) and the previous reader probability distribution (e.g., previous_reader_dist) exceeds a reader divergence threshold (e.g., READER_KL_THRESHOLD) and the difference (e.g., KL divergence) between the current antenna probability distribution (e.g., current_antenna_dist) and the previous antenna probability distribution (e.g., previous_antenna_dist) exceeds an antenna divergence threshold (e.g., ANTENNA_KL_THRESHOLD). That is, the near moving component260may cause the EPCs classified as moving EPCs to be processed further (e.g., provided to the Stage 2 component236).

Alternatively or additionally, the near moving component260may classify EPCs in the near zone1005A as stationary EPCs if or when the difference (e.g., KL divergence) between the current reader probability distribution (e.g., current_reader_dist) and the previous reader probability distribution (e.g., previous_reader_dist) does not exceed the reader divergence threshold (e.g., READER_KL_THRESHOLD) or the difference (e.g., KL divergence) between the current antenna probability distribution (e.g., current_antenna_dist) and the previous antenna probability distribution (e.g., previous_antenna_dist) does not exceed an antenna divergence threshold (e.g., ANTENNA_KL_THRESHOLD). That is, the near moving component260may prevent the EPCs classified as stationary EPCs to be processed further.

In some aspects, the reader divergence threshold (e.g., READER_KL_THRESHOLD) and/or the antenna divergence threshold (e.g., ANTENNA_KL_THRESHOLD) may be predetermined values. In other aspects, the reader divergence threshold and/or the antenna divergence threshold may be customized for particular environments. For example, the auto-calibration component240may be configured to automatically adjust the reader divergence threshold and/or the antenna divergence threshold.

For example,FIGS.12A-12Billustrate reader entropy values and antenna entropy values for a near zone EPC that changed from a stationary state to a moving state, such as if or when a customer at a retail store facility picks up an object coupled to a RFID tag (e.g.,120B) from a display equipment (e.g.,1010B) in the near zone1005A. In the example shown inFIGS.12A-12B, the near zone EPC may be in a stationary state in batches 1-69 as indicated by the zero values for the reader entropy and for the antenna entropy. The non-zero reader entropy and antenna entropy values starting in batch 70 may indicate that the near zone EPC has changed from a stationary state to a moving state. As a result, the near moving component260may classify the near zone EPC as a moving EPC in batches 70, 74, and 75 and provide the EPC to the Stage 2 component236for further processing.

Aspects of the present disclosure may be implemented using hardware, software, or a combination thereof and may be implemented in one or more computer systems or other processing systems. In an aspect of the present disclosure, features are directed toward one or more computer systems capable of carrying out the functionality described herein. An example of such a computer system is shown inFIG.13.

FIG.13is a block diagram of an example apparatus1300. The apparatus1300may be an EAS portal100, a system controller108, or an EAS portal100may include an apparatus1300. In some aspects, the apparatus1300may comprise one or more processors, such as processor1305, configured to execute, in conjunction with memory1310, various software implementations of the functionality described herein. In other aspects, the apparatus1300may comprise a stray tag component110for declaring RFID tags as stray tags.

In some aspects, the apparatus1300may be configured to perform one or more operations described herein in connection withFIGS.1-9. Alternatively or additionally, the apparatus1300may be configured to perform one or more processes described herein, such as method1400ofFIG.14. In some aspects, the apparatus1300may include one or more components of the stray tag components described above in connection withFIGS.1-2.

The stray tag component110may comprise an accessing component1320for accessing, from a queue, a batch of RFID readings received by a plurality of RFID readers of an EAS system. The batch of RFID readings may be associated with a batch_count value. Each RFID reading in the batch of RFID readings may comprise a RFID identification of a corresponding RFID tag that generated that RFID reading.

The stray tag component110may comprise an updating component1325for updating a RFID reading history with the batch of RFID readings.

The stray tag component110may comprise a selecting component1330for selecting a first set of RFID identifications from the batch of RFID readings. Each RFID identification of the first set of RFID identifications may have a corresponding chatter score below a chatter score threshold. Each corresponding chatter score may be calculated according to the RFID reading history.

The stray tag component110may comprise a filtering component1335for filtering the first set of RFID identifications resulting in a second set of RFID identifications. Each RFID identification in the second set of RFID identifications may correspond to a RFID tag in motion.

The stray tag component110may comprise a providing component1340for providing, to the EAS system, the second set of RFID identifications, causing the EAS system to alarm based on a determination that one or more RFID tags identified by the second set of RFID identifications are not authorized to leave a controlled area associated with the plurality of RFID readers.

The stray tag component110may comprise an auto-calibration component1345for automatically determining a scatter score threshold as described above with regard toFIG.2.

The stray tag component110may comprise a machine learning component1350for determining a set of RFID identifications from a batch of RFID readings according to at least one or more machine learning algorithms, as described above with regard toFIG.2. Each RFID identification of the set of RFID identifications corresponds to a RFID tag in motion.

The stray tag component110may comprise a near moving component1355for classifying tags moving near the EAS portal100as described above with regard toFIG.2. The computing device1300may comprise a detection component1360for receiving the second set of RFID identifications from the providing component1340, and causing the alarm notification1370based on a determining that one or more RFID tags identified by the second set of RFID identifications are not authorized to leave a controlled area associated with the plurality of RFID readers. In some aspects, the alarm notification1370may be a visual notification, audible notification, or electronic communication (e.g., text message, email, etc.).

Referring toFIG.14, in operation, a processor may perform a method1400of EAS. The method1400may be performed by the EAS portal100(which may be the entire EAS portal100or a component of the EAS portal such as the system controller108, the stray tag component110, or processor1305. The method1400may be performed by the stray tag component110in communication with the queue220and the system controller108.

In block1402ofFIG.14, the method1400may include accessing, by a processor of an EAS system from a queue, a batch of RFID readings received by a plurality of RFID readers of the EAS system, the batch of RFID readings being associated with a batch_count value, and each RFID reading in the batch of RFID readings comprising a RFID identification of a corresponding RFID tag that generated that RFID reading. For example, in an aspect, the stray tag component110, the system controller108, and/or processor1305may be configured to or may comprise the means for accessing, by a processor1305of an EAS system100from a queue220, a batch of RFID readings received by a plurality of RFID readers106of the EAS system100, the batch of RFID readings being associated with a batch_count value, and each RFID reading in the batch of RFID readings comprising a RFID identification of a corresponding RFID tag that generated that RFID reading.

For example, the accessing in block1402may include sweeping a batch of RFID readings from the queue220at a set interval. In some aspects, the stray tag component110may be configured to extract all RFID readings from the queue220during each sweep. In other aspects, the stray tag component110may be configured to process a portion of the previous queue contents with the current batch RFID readings. In yet other aspects, the stray tag component110may be configured to extract and process the RFID readings from the queue220if or when a quantity of RFID readings in the queue220reaches or exceeds a threshold.

Further, for example, the accessing in block1402may be performed to facilitate processing of the RFID readings. And, as such, allowing for the mitigation of false alarms caused by stray tags.

In block1404ofFIG.14, the method1400may include updating, by the processor, a RFID reading history with the batch of RFID readings. For example, in an aspect, the stray tag component110, the update history component232, the system controller108, and/or processor1305may be configured to or may comprise the means for updating, by the processor1305, a RFID reading history with the batch of RFID readings.

For example, the updating in block1404may include creating a new entry or updating an existing entry in a EPC history for EPCs identified in the batch of RFID readings.

Further, for example, the updating in block1404may be performed to calculate and store values that may be used to identify stray tags in the batch of RFID readings.

In block1406ofFIG.14, the method may include selecting, by the processor, a first set of RFID identifications from the batch of RFID readings, each RFID identification of the first set of RFID identifications having a corresponding chatter score below a chatter score threshold, each corresponding chatter score being calculated according to the RFID reading history. For example, in an aspect, the stray tag component110, the Stage 1 component234, the system controller108, and/or processor1305may be configured to or may comprise the means for selecting, by the processor1305, a first set of RFID identifications from the batch of RFID readings, each RFID identification of the first set of RFID identifications having a corresponding chatter score below a chatter score threshold, each corresponding chatter score being calculated according to the RFID reading history.

For example, the selecting in block1406may include calculating a chatter score for EPCs identified in the batch of RFID readings. First EPCs with respective chatter scores that exceed a chatter score threshold may be considered stray tags. That is, the first EPCs may be associated with stationary RFID tags to appear to be moving due to radio interference and the like. Second EPCs with respective chatter scores that do not exceed the chatter score threshold may be processed further. That is, the second EPCs may be selected as candidates for moving (e.g., outgoing) tags.

Further, for example, the selecting in block1406may be performed to implement a first pass for filtering out RFID readings that exhibit behavior commensurate with stray tags. And, as such, mitigate false alarms potentially caused by the stray tags. Thereby, increasing accuracy and effectiveness over conventional EAS systems.

In block1408, the method1400may include filtering, by the processor, the first set of RFID identifications resulting in a second set of RFID identifications, each RFID identification in the second set of RFID identifications corresponding to a RFID tag in motion. For example, in an aspect, the stray tag component110, the Stage 2 component236, the system controller108, and/or processor1305may be configured to or may comprise the means for filtering, by the processor1305, the first set of RFID identifications resulting in a second set of RFID identifications, each RFID identification in the second set of RFID identifications corresponding to a RFID tag120in motion.

For example, the filtering at block1408may include calculating a read rate, an antenna entropy, a reader entropy, and a read burst for EPCs identified in the first set of RFID identifications. The filtering at block1408may further include determining whether or not the EPCs identified in the first set of RFID identifications are stray tags. The determination may be based on a decision tree.

Further, for example, the filtering in block1408may be performed to implement a second pass for filtering out RFID readings that exhibit behavior commensurate with stray tags. And, as such, further mitigate false alarms potentially caused by the stray tags. Thereby, increasing accuracy and effectiveness over conventional EAS systems.

In an additional or optional aspect having automatic calibration features that may be combined with any other aspect herein, the method1400may include the steps of: accessing, by a processor of an EAS system from a queue, a batch of RFID readings received by a plurality of RFID readers of the EAS system, the batch of RFID readings being associated with a batch count value, and each RFID reading in the batch of RFID readings comprising a RFID identification of a corresponding RFID tag that generated that RFID reading; updating, by the processor, a RFID reading history with the batch of RFID readings; automatically calibrating, by the processor, a chatter score threshold; selecting, by the processor, a first set of RFID identifications from the batch of RFID readings, each RFID identification of the first set of RFID identifications having a corresponding chatter score below a chatter score threshold, each corresponding chatter score being calculated according to the RFID reading history; filtering, by the processor, the first set of RFID identifications resulting in a second set of RFID identifications, each RFID identification in the second set of RFID identifications corresponding to a RFID tag in motion; and providing, by the processor to the EAS system, the second set of RFID identifications, causing the EAS system to alarm based on a determination that one or more RFID tags identified by the second set of RFID identifications are not authorized to leave a controlled area associated with the plurality of RFID readers.

In another additional or optional aspect having machine learning features that may be combined with any other aspect herein, the method1400may include the steps of: accessing, by a processor of an EAS system from a queue, a batch of RFID readings received by a plurality of RFID readers of the EAS system, the batch of RFID readings having been received during a particular time period, each RFID reading in the batch of RFID readings comprising a RFID identification of a corresponding RFID tag that generated that RFID reading, and the batch of RFID readings comprising a minimum quantity of RFID readings for each corresponding RFID tag; determining a set of RFID identifications from the batch of RFID readings according to at least one machine learning algorithm, each RFID identification in the set of RFID identifications corresponding to a RFID tag in motion; and providing, by the processor to the EAS system, the set of RFID identifications, causing the EAS system to alarm based on a determination that one or more RFID tags identified by the set of RFID identifications are not authorized to leave a controlled area associated with the plurality of RFID readers.

In another additional or optional aspect having near zone classification features that may be combined with any other aspect herein, the method1400may include the steps of reducing a consequent batch threshold corresponding to a third set of RFID identifications from the batch of RFID readings. The third set of RFID identifications having a chatter score that exceeds the chatter score threshold.

In another additional or optional aspect having near zone classification features that may be combined with any other aspect herein, the method1400may include the steps of: calculating, for each RFID identification, a first divergence between a current reader distribution and a previous reader distribution; calculating, for each RFID identification, a second divergence between a current antenna distribution and a previous antenna distribution; and selecting the first set of RFID identifications having a first divergence that exceeds a first threshold and a second divergence that exceeds a second threshold.

Referring toFIG.15, in operation, a processor may perform a method1500of EAS. The method1500may be performed by the EAS portal100(which may be the entire EAS portal100or a component of the EAS portal such as the system controller108, the stray tag component110, or processor1305. The method1500may be performed by the stray tag component110in communication with the queue220and the system controller108.

In block1502ofFIG.15, the method1500may include determining, by a processor of an EAS system, a chatter score of a RFID identification of an RFID tag that generated a quantity of RFID readings above a predefined threshold at one or more RFID readers. For example, the stray tag component may sweep a batch of RFID readings from the queue220at a set interval. Further, the Stage 1 component234may calculate a chatter score for EPCs identified in the batch of RFID readings, as described in detail herein.

Accordingly, the EAS system100, the system controller108, the computing device1300, and/or the processor1305executing the stray tag component110, and/or Stage 1 component234may provide means for determining a chatter score of a RFID identification of an RFID tag that generated one or more RFID readings at one or more RFID readers.

In block1504ofFIG.15, the method1500may include selecting, by the processor of the EAS system, the RFID identification based at least in part on the chatter score being below a chatter score threshold. For example, the selecting component1330may select first EPCs with respective chatter scores that exceed a chatter score threshold may be considered stray tags. That is, the first EPCs may be associated with stationary RFID tags to appear to be moving due to radio interference and the like. Second EPCs with respective chatter scores that do not exceed the chatter score threshold may be processed further. That is, the second EPCs may be selected as candidates for moving (e.g., outgoing) tags.

Further, for example, the selecting in block1504may be performed to implement a first pass for filtering out RFID readings that exhibit behavior commensurate with stray tags. And, as such, mitigate false alarms potentially caused by the stray tags. Thereby, increasing accuracy and effectiveness over conventional EAS systems.

Accordingly, the EAS system100, the system controller108, the computing device1300, and/or the processor1305executing the stray tag component110, Stage 1 component234, and/or the selecting component1330may provide means for selecting the RFID identification based at least in part on the chatter score being below a chatter score threshold.

In block1506ofFIG.15, the method1500may include determining, by the processor of the EAS system, that the RFID identification corresponds to a RFID tag in motion. For example, the Stage 2 component236may calculate a read rate, an antenna entropy, a reader entropy, and a read burst for EPCs identified in the first set of RFID identifications. Further, the Stage 2 component236may determine whether or not the EPCs identified in the first set of RFID identifications are stray tags. In some aspects, the determination may be based on a decision tree.

Accordingly, the EAS system100, the system controller108, the computing device1300, and/or the processor1305executing the stray tag component110, Stage 2 component236, and/or the filtering component1035may provide means for determining that the RFID identification corresponds to a RFID tag in motion.

In block1508, the method1500may include triggering, by the processor of the EAS system, an alarm based on a determination that the RFID tag identified by the RFID identification is not authorized to leave a controlled area associated with the one or more RFID readers. For example, the providing component1040may provide the RFID identification to a detection component1060that causes the alarm notification1070based on unauthorized movement out of a controlled area by the RFID tag identified by the RFID identification.

Accordingly, the EAS system100, the system controller108, the computing device1300, and/or the processor1305executing the stray tag component110may provide means for triggering an alarm based on a determination that the RFID tag identified by the RFID identification is not authorized to leave a controlled area associated with the one or more RFID readers.

Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. The words “module,” “mechanism,” “element,” “device,” and the like may not be a substitute for the word “means.” As such, no claim element is to be construed as a means plus function unless the element is expressly recited using the phrase “means for.”