DEVICE, SYSTEM AND METHOD FOR ELECTRONICALLY IMPLEMENTING CORRECTIVE ACTIONS BASED ON KEEP-SEPARATE ATTRIBUTES

A device, system and method for electronically implementing corrective actions based on keep-separate attributes is provided. A keep-separate attribute associated with respective inmate profiles is generated using electronic data indicative of monitoring inmates. Schedule data, associated with the inmate profiles, which violates the keep-separate attribute within a given time period, is modified using the keep-separate attribute, to indicate a physical separation between the inmates. The keep-separate attribute and/or modification of the schedule data occurs via one or more machine-learning algorithms. The modified schedule data is store and/or a notification of the modified schedule data is transmitted, to one or more communication devices, to instruct one or more correctional officers to physically separate the inmates within the given time period. A machine-learning feedback loop is implemented to process feedback indicative of an evaluation of one or more of the keep-separate attribute and the schedule data as modified.

BACKGROUND OF THE INVENTION

In jails, a safety and security challenge is to electronically ensure that inmates who should not come into contact with one another are kept separate.

DETAILED DESCRIPTION OF THE INVENTION

In jails, a safety and security challenge is to electronically ensure that inmates who should not come into contact with one another are kept separate. Inmates may, for example, be in rival gangs and/or be family members and could become violent if physically able to see each other, or inmates may have been involved in the same crime in the past and may collude (e.g., in a court case) and/or be accused of potential collusion if allowed to communicate.

A classification process, during which a correctional officer captures information that assists the prison staff in managing an inmate's schedule, pod (e.g., collection of cells) assignment, activities and associated movements in the jail, may provide information that can assist in identifying inmates that should be kept separate from each other. It is, however, difficult to comprehensively manage schedules, activities and movements that take into account all keep-separate-related inmate data while dynamically adjusting to new, spontaneous keep-separate situations. Furthermore, in some situations, inmates may be moved to separate jails to keep them separate, which is a waste of processing and transportation resources.

An aspect of the present specification provides a method comprising: identifying, at a computing device, a keep-separate attribute, associated with a first inmate profile and a second inmate profile, the keep-separate attribute violated by schedule data associated with the first inmate profile and the second inmate profile, the computing device having access to one or more memories storing the first inmate profile, the second inmate profile, the keep-separate attribute and the schedule data; and implementing, at the computing device, a corrective action in accordance with the keep-separate attribute, the corrective action comprising one or more of: modifying, at the one or more memories, the schedule data in accordance with the keep-separate attribute; and transmitting, using a communication unit, a notification of the keep-separate attribute to one or more communication devices associated with implementing the schedule data.

An aspect of the present specification provides a device comprising: a controller in communication with a communication unit and having access to one or more memories storing a first inmate profile, a second inmate profile, keep-separate attributes and schedule data, the controller configured to: identify a keep-separate attribute associated with the first inmate profile and the second inmate profile, the keep-separate attribute violated by the schedule data associated with the first inmate profile and the second inmate profile; and implement a corrective action in accordance with the keep-separate attribute, the corrective action comprising one or more of: modifying, at the one or more memories, the schedule data in accordance with the keep-separate attribute; and transmitting, using the communication unit, a notification of the keep-separate attribute to one or more communication devices associated with implementing the schedule data.

Another aspect of the present specification provides a method comprising: receiving, at a device, electronic data indicative of monitoring inmates associated with respective inmate profiles; generating, at the device, using the electronic data, a keep-separate attribute associated with the respective inmate profiles; determining, at the device, that schedule data associated with the respective inmate profiles violates the keep-separate attribute within a given time period; modifying, at the device, using the keep-separate attribute, the schedule data to indicate a physical separation between the inmates within the given time period, wherein one or more of the keep-separate attribute and modification of the schedule data are implemented via one or more machine-learning algorithms; one or more of: storing, at a memory, the schedule data as modified; and transmitting, using a communication unit, a notification of the schedule data as modified, to one or more communication devices to instruct one or more correctional officers to physically separate the inmates within the given time period; and implementing, at the device, a machine-learning feedback loop for training the one or more machine-learning algorithms, the machine-learning feedback loop comprising processing feedback indicative of an evaluation of one or more of the keep-separate attribute and the schedule data as modified.

Yet a further aspect of the present specification provides a device comprising: a communication unit; and a controller configured to: receive, using the communication unit, electronic data indicative of monitoring inmates associated with respective inmate profiles; generate, using the electronic data, a keep-separate attribute associated with the respective inmate profiles; determine that schedule data associated with the respective inmate profiles violates the keep-separate attribute within a given time period; modify, using the keep-separate attribute, the schedule data to indicate a physical separation between the inmates within the given time period, wherein one or more of the keep-separate attribute and modification of the schedule data are implemented via one or more machine-learning algorithms; one or more of: storing, at a memory, the schedule data as modified; and transmitting, using the communication unit, a notification of the schedule data as modified, to one or more communication devices to instruct one or more correctional officers to physically separate the inmates within the given time period; and implement a machine-learning feedback loop for training the one or more machine-learning algorithms, the machine-learning feedback loop comprising processing feedback indicative of an evaluation of one or more of the keep-separate attribute and the schedule data as modified.

Attention is directed toFIG. 1, which depicts an example system100for electronically implementing corrective actions based on keep-separate attributes. Communication links between components of the system100are depicted inFIG. 1, and throughout the present specification, as double-ended arrows between respective components; the communication links may include any suitable combination of wireless and/or wired links and/or wireless and/or wired communication networks. The system100comprises a computing device101(interchangeably referred to hereafter as the device101) that has access to inmate data, for example as stored in a database103. As depicted, the inmate data comprises a first inmate profile111and a second inmate profile112. For example, the computing device101and the database103may be operated by a prison and/or a jail (the terms prison and jail will be used interchangeably hereafter), and each of the inmate profiles111,112are associated with a respective inmate at the prison.

While a particular database structure is depicted inFIG. 1, the components of the database103may be stored according to any suitable structure and/or in any suitable manner including, but not limited to, storing the information in one or more databases and/or one or more memories (e.g., that may or may not include databases and/or a database structure). Hence, for example, the database103is understood to be stored at one or more memories and/or the database103may be replaced by one or more memories.

Furthermore, while components of the database103are described herein as being “profiles” etc., the term “profiles” (and/or other terms used to described components of the database103), is not intended to identify a particular type of storage format and such information may include any suitable format for storing information in a database and/or a memory, and the like.

While only two inmate profiles111,112are depicted, the database103may store hundreds, thousands and/or more inmate profiles, corresponding to an inmate at the prison, and the number of inmate profiles stored in the database103may correspond to a number of inmates at the prison, though the database103may also store historical inmate profiles (e.g., for inmates no longer at the prison). Hence, while present examples are described with respect to two inmate profiles111,112, methods and systems described herein may be applied to more than two inmate profiles.

The inmate profiles111,112may be initially generated as part of a classification process, for example implemented when the associated inmates are initially incarcerated. In particular, the inmate profiles111,112may be generated as part of an objective jail classification (OJC) process to assess the associated inmate's custody and program needs. The inmate profiles111,112may, for example, include identification of one or more of crimes committed by the associated inmates, family members, gang affiliations, court dates, and the like.

However, the inmate profiles111,112may be updated during the incarceration of the associated inmates, for example via monitoring and/or ongoing monitoring and/or electronic monitoring and/or ongoing electronic monitoring of the associated inmates and/or behavior of the associated inmates (e.g., as monitored via video cameras and/or microphones and/or based on electronic reports indicating inmate behavior, for example as electronically submitted to the device101by one or more correctional officers, and the like, at the prison). In some examples, machine learning-based algorithms (e.g., as implemented by the computing device101, described below), and the like, may be used to update the inmate profiles111,112. Such updating of the inmate profiles111,112may occur when the associated inmates exhibit given behaviors including, but not limited to, one or more of fighting, breaking prison rules, transactions (e.g., buying or selling contraband within the prison), smuggling (e.g., contraband drugs, weapons, phones, and the like), forming and/or participating in a criminal enterprise within the prison, and the like. While such behaviors are associated with escalating risk between the associated inmates, updating of the inmate profiles111,112may occur when the associated inmates exhibit given behaviors that are associated with de-escalating risk between the associated inmates, for example the associated inmates becoming friends, joining a support group, negotiating a truce, and the like.

From the inmate profiles111,112, one or more keep-separate attributes113may be identified and associated with the inmate profiles111,112. Associations between components stored at the database103are depicted inFIG. 1, and throughout the present specification, as double-ended dashed arrows therebetween.

While a number “n” of keep-separate attributes113-1,113-2...113-nare depicted (e.g., n=3), the number of keep-separate attributes113may be as few as one keep-separate attribute, and “n” may be any suitable number for the keep-separate attributes113, which may depend, for example, on a number of identified relationships, and the like, between the inmate profiles111,112.

For example, a separate keep-separate attribute113may be generated for different relationships between associated inmates as defined by, and/or determined from, the inmate profiles111,112. Such relationships defined by, and/or determined from, the inmate profiles111,112may include, but are not limited to: the associated inmates being in a same gang; the associated inmates being in rival gangs; the associated inmates being family members; the associated inmates participating in a same court case; the associated inmates participating in related court cases; the associated inmates having a same court date (e.g., to testify); the associated inmates were dealing in drugs, and/or contraband, in the prison; the associated inmates were in a fight; and the like.

For example, as depicted, each of the keep-separate attributes113is of a different type (e.g., the keep-separate attribute113-1is a “Type1” keep-separate attribute, the keep-separate attribute113-2is a “Type2” keep-separate attribute, the keep-separate attribute113-nis a “Type n” keep-separate attribute), and each of the different types of keep-separate attribute113may define different relationships between the inmates associated with the inmate profiles111,112. For example, “Type1” may be family relationship, “Type2” may be a gang relationship, etc.

As depicted, each of the keep-separate attributes113may be associated with a respective keep-separate rule; for example, as depicted, each of the keep-separate attributes113-1,113-2. . .113-nare associated, at the database with respective keep-separate rules115-1,115-2. . .115-n.The keep-separate rules115-1,115-2. . .115-nare interchangeably referred to hereafter, collectively, as the rules115and, generically, as a rule115.

While the keep-separate attributes113and rules115are depicted in a one-to-one relationship with each other, each keep-separate attribute113may be associated with more than one rule115. For example, as depicted, each of the rules115is of a different type (e.g., the rule115-1is a “Type1” keep-separate rule, the rule115-2is a “Type2” keep-separate rule, the rule115-nis a “Type n” keep-separate rule), however each keep-separate attribute113may be associated with more than one rule115and/or keep-separate rule type. For example, a “Type1” rule may be a spatial rule, a “Type2” rule may be a temporal rule, etc.

A rule115may include a rule that is to be implemented to keep the inmates associated with the inmate profiles111,112separated from each other. For example, the rules115may include, but are not limited to, rules for keeping the inmates associated with the inmate profiles111,112spatially separated such that the associated inmates are not in a same location at any given time. Similarly, the rules115may include, but are not limited to, rules for keeping the inmates associated with the inmate profiles111,112temporally separated such that the associated inmates are not to in a same location at any given time and/or within given time periods of each other. Similarly, the rules115may include, but are not limited to, rules for keeping the inmates associated with the inmate profiles111,112from being able to see each other, for example through windows and/the like, for example by keeping the inmates spatially and/or temporally separated. Other keep separate rules115may include, but are not limited to, allowing the associated inmates to see each other but unable to have a conversation and/or talk (e.g., as defined by a given distance), allowing the associated inmates to talk but physically separated. Indeed, any suitable keep-separate rule115is within the scope of the present specification, including, but not limited to, given distances to be kept between inmates are to be kept apart and/or given time periods that inmates are not to be in a same location (e.g., a rule115may include specifying that a first inmate is never to be within 10 minutes transport time of second inmate). Furthermore, different rule types may specify different given distances and/or different given time periods by which inmates are to be kept separate. Other keep-separate rule115may be related to inmates hearing each other, communicating via tapping (e.g., via Morse code and the like), and/or any other suitable type of communication.

Furthermore, while not depicted, the rules115may be ranked according to “stringency”; for example, the rules115may be assigned a respective stringency score (e.g., using any suitable scale, such as 1 to 10, and the like, with 1 being most stringent and 10 being least stringent). The rules115may be ranked for stringency manually and/or automatically. For example, a first rule115may be more stringent than a second rule115when the first rule115indicates that inmates are to be kept a further distance apart than the second rule115.

While the rules115are depicted inFIG. 1as being associated with, but separate from, the keep-separate attributes113, in other examples, one or more of the rules115may be incorporated into a respective keep-separate attribute113. As such, while as described herein the rules115may be ranked according to stringency, in other examples, the keep-separate attributes113may be ranked according to stringency

As depicted, the database103further stores schedule data117and a map119of the prison. The schedule data117may be associated with the inmate profiles111,112. While one set of schedule data117is depicted, in other examples, the schedule data117may include a separate set of schedule data117for each of the inmate profiles111,112.

Furthermore, the schedule data117may be updated periodically, for example as schedules of the inmates associated with the inmate profiles111,112change and/or are updated and/or are generated.

The schedule data117may indicate schedules of the inmates associated with the inmate profiles111,112, for example given locations, and the like (e.g., such as cells, classrooms, cafeterias, gyms, recreation rooms, etc.), given activities (e.g., classes, eating meals, gym time, recreational time), to which the inmates are to be escorted to and/or located at given times and/or for given time periods, as well as routes and/or movements for transporting the inmates between locations, and/or start locations and/or end locations of routes and/or movements. Indeed, hereafter the term movement will be used, and it is understood that a movement may include, but is not limited to, a route.

Such given locations and/or given times and/or given movements may violate a keep-separate attribute113and/or an associated rule115. Violating a keep-separate attribute113as described herein may include, but is not limited to, violating a rule115associated with a keep-separate attribute113and/or violating a rule115incorporated into a keep-separate attribute113.

The map119of the prison is understood to comprise an electronic map of the prison where the inmates associated with the inmate profiles111,112are located and may include identifiers of the various locations of the schedule data117. While as depicted the map119is separate from the schedule data117, in other examples, the map119may be incorporated into the schedule data117. Regardless, the movements for transporting the inmates between locations may be determined via the map119

In general, the inmates associated with the inmate profiles111,112may be escorted around the prison according to the schedule data117by one or more correctional officers121,122enforcing the schedule data117. For example, the officer121may be tasked with transporting and/or escorting the inmate associated with the inmate profile111(e.g., according to the schedule data117), and the officer122may be tasked with transporting and/or escorting the inmate associated with the inmate profile112(e.g., according to the schedule data117). As depicted, each of the officers121,121is associated with a respective communication device131,132.

As depicted, the device101is in communication with communication device131,132via respective communication links. While the communication devices communication device131,132are depicted as, for example, mobile communication devices (e.g., such as a mobile radio and/or a cellphone and the like), one or more of the communication devices131,132may comprise a vehicle communication device (e.g., of a vehicle used to transport and/or escort inmates around the prison, the vehicle operated by an officer121,122), and/or), one or more of the communication devices131,132may comprise a fixed position communication device, such as personal computer at an officer's station, and the like.

While only two correctional officers121,122and two communication devices131,132are depicted, the system100may comprise any suitable number of correctional officers operating respective communicating devices.

Furthermore, the device101may generally communicate with the communication devices131,132to cause the officers121,122to implement the schedule data117; hence the communication devices131,132may be referred to as being associated with implementing the schedule data117.

Attention is next directed toFIG. 2, which depicts a schematic block diagram of an example of the device101. In general, the device101may comprise one or more servers and/or one or more cloud computing devices, and the like, configured to communicate the communication devices131,132. However, the device101may comprise a computing device such as a personal computer and/or a laptop computer, and the like. In some examples, the device101may be combined with one or more of the communication devices131,132. The device101may be located at the prison and/or located remotely from the prison.

As depicted, the device101comprises: a communication unit202, a processing unit203, a Random-Access Memory (RAM)204, one or more wireless transceivers208, one or more wired and/or wireless input/output (I/O) interfaces209, a combined modulator/demodulator210, a code Read Only Memory (ROM)212, a common data and address bus217, a controller220, and a static memory222storing at least one application223. Hereafter, the at least one application223will be interchangeably referred to as the application223.

While not depicted, the device101may include one or more of an input device and a display screen and the like, a microphone (e.g., to receive voice commands) such that a user may interact with the device101.

As shown inFIG. 2, the device101includes the communication unit202communicatively coupled to the common data and address bus217of the processing unit203.

The processing unit203may include the code Read Only Memory (ROM)212coupled to the common data and address bus217for storing data for initializing system components. The processing unit203may further include the controller220coupled, by the common data and address bus217, to the Random-Access Memory204and the static memory222.

The communication unit202may include one or more wired and/or wireless input/output (I/O) interfaces209that are configurable to communicate with the communication devices131,132. For example, the communication unit202may include one or more transceivers208and/or wireless transceivers for communicating with the communication devices131,132. Hence, the one or more transceivers208may be adapted for communication with one or more communication networks used to communicate with the communication devices131,132. For example, the one or more transceivers208may be adapted for communication with one or more of the Internet, a digital mobile radio (DMR) network, a Project 25 (P25) network, a terrestrial trunked radio (TETRA) network, a Bluetooth network, a Wi-Fi network, for example operating in accordance with an IEEE 802.11 standard (e.g., 802.11a, 802.11b, 802.11g), an LTE (Long-Term Evolution) network and/or other types of GSM (Global System for Mobile communications) networks, a Worldwide Interoperability for Microwave Access (WiMAX) network, for example operating in accordance with an IEEE 802.16 standard, and/or another similar type of wireless network. Hence, the one or more transceivers208may include, but are not limited to, a cell phone transceiver, a DMR transceiver, P25 transceiver, a TETRA transceiver, a Bluetooth transceiver, a Wi-Fi transceiver, a WiMAX transceiver, and/or another similar type of wireless transceiver configurable to communicate via a wireless radio network.

The communication unit202may optionally include one or more wireline transceivers208, such as an Ethernet transceiver, a USB (Universal Serial Bus) transceiver, or similar transceiver configurable to communicate via a twisted pair wire, a coaxial cable, a fiber-optic link, or a similar physical connection to a wireline network. The transceiver208is also coupled to a combined modulator/demodulator210.

The controller220may include ports (e.g., hardware ports) for coupling to other hardware components.

The controller220includes one or more logic circuits, one or more processors, one or more microprocessors, one or more ASIC (application-specific integrated circuits) and one or more FPGA (field-programmable gate arrays), and/or another electronic device. In some examples, the controller220and/or the device101is not a generic controller and/or a generic device, but a device specifically configured to implement functionality for electronically implementing corrective actions based on keep-separate attributes. For example, in some examples, the device101and/or the controller220specifically comprises a computer executable engine configured to implement functionality for electronically implementing corrective actions based on keep-separate attributes.

The static memory222is a non-transitory machine readable medium that stores machine readable instructions to implement one or more programs or applications. Example machine readable media include a non-volatile storage unit (e.g., Erasable Electronic Programmable Read Only Memory (“EEPROM”), Flash Memory) and/or a volatile storage unit (e.g., random-access memory (“RAM”)). In the example ofFIG. 2, programming instructions (e.g., machine readable instructions) that implement the functional teachings of the device101as described herein are maintained, persistently, at the memory222and used by the controller220, which makes appropriate utilization of volatile storage during the execution of such programming instructions.

In particular, the memory222stores instructions corresponding to the at least one application223that, when executed by the controller220, enables the controller220to implement functionality for electronically implementing corrective actions based on keep-separate attributes including, but not limited to, the blocks of the method set forth inFIG. 3. In illustrated examples, when the controller220executes the one or more applications223, the controller220is enabled to: identify a keep-separate attribute113, associated with a first inmate profile111and a second inmate profile112, the keep-separate attribute113violated by schedule data117associated with the first inmate profile111and the second inmate profile112, the controller220(and/or the device101) having access to one or more memories (e.g., the database103) storing the first inmate profile111, the second inmate profile112, the keep-separate attribute113and the schedule data117; and implement a corrective action in accordance with the keep-separate attribute113, the corrective action comprising one or more of: modifying, at the one or more memories, the schedule data117in accordance with the keep-separate attribute113; and transmitting, using the communication unit202, a notification of the keep-separate attribute113to one or more communication devices131,132associated with implementing the schedule data117.

The application223may include numerical algorithms to compare the inmate profiles111,112to identify and/or generate the keep-separate attributes113and/or to update the inmate profiles111,112to according to monitored behavior of the inmates associated with the inmate profiles111,112(e.g., as monitored via video cameras and/or microphones and/or based on electronic reports indicating inmate behavior, for example as electronically submitted to the device101by one or more of the officers121,122, and/or another correctional officer, and the like, at the prison).

Alternatively, the application223may include machine learning and/or deep-learning based algorithms and/or neural networks, and the like, which have been trained to determine keep-separate attributes by comparing inmate profiles, and/or which have been trained to update inmate profiles based on monitored behavior. Furthermore, in these examples, the application223may initially be operated by the controller220in a training mode to train the machine learning and/or deep-learning based algorithms and/or neural networks of the application223to determine keep-separate attributes by comparing inmate profiles, and/or which have been trained to update inmate profiles based on monitored behavior.

The one or more machine-learning algorithms and/or deep learning algorithms and/or neural networks of the application223may include, but are not limited to: a generalized linear regression algorithm; a random forest algorithm; a support vector machine algorithm; a gradient boosting regression algorithm; a decision tree algorithm; a generalized additive model; neural network algorithms; deep learning algorithms; evolutionary programming algorithms; Bayesian inference algorithms, reinforcement learning algorithms, and the like. However, generalized linear regression algorithms, random forest algorithms, support vector machine algorithms, gradient boosting regression algorithms, decision tree algorithms, generalized additive models, and the like may be preferred over neural network algorithms, deep learning algorithms, evolutionary programming algorithms, and the like, in some public-safety environments, such as a prison. Any suitable machine-learning algorithm and/or deep learning algorithm and/or neural network is within the scope of present examples.

While details of the communication devices131,132are not depicted, the communication devices131,132may have components similar to the device101adapted, however, for the functionality of the communication devices131,132. For example, the communication devices131,132may include respective display screens, speakers, microphones, location determining devices (e.g., Global Positioning System (GPS) devices), and the like.

Attention is now directed toFIG. 3, which depicts a flowchart representative of a method300for electronically implementing corrective actions based on keep-separate attributes. The operations of the method300ofFIG. 3correspond to machine readable instructions that are executed by the device101, and specifically the controller220of the device101. In the illustrated example, the instructions represented by the blocks ofFIG. 3are stored at the memory222for example, as the application223. The method300ofFIG. 3is one way in which the controller220and/or the device101and/or the system100may be configured. Furthermore, the following discussion of the method300ofFIG. 3will lead to a further understanding of the system100, and its various components.

The method300ofFIG. 3need not be performed in the exact sequence as shown and likewise various blocks may be performed in parallel rather than in sequence. Accordingly, the elements of method300are referred to herein as “blocks” rather than “steps.” The method300ofFIG. 3may be implemented on variations of the system100ofFIG. 1, as well.

At a block302, the controller220and/or the device101identifies a keep-separate attribute113, associated with the first inmate profile111and the second inmate profile112. The keep-separate attribute113may be determined dynamically; for example, the controller220and/or device101may compare the first inmate profile111and the second inmate profile112to one or more of: generate a keep-separate attribute113; and identify a keep-separate attribute113.

For example, in some examples, a set of preconfigured keep-separate attributes113(e.g., associated with pre-configured rules115) may be stored at the database103. The controller220and/or the device101may compare the inmate profiles111,112to determine a type of relationship therebetween. The set of preconfigured keep-separate attributes113may include a preconfigured keep-separate attribute113associated with the type of relationship identified between the inmate profiles111,112and the controller220and/or the device101may then associate the preconfigured keep-separate attribute113with the inmate profiles111,112.

In some of these examples, a machine-learning algorithm, and the like, may be used by the controller220and/or the device101to compare the inmate profiles111,112and generate a keep-separate attribute113based on the comparing, which is associated with the inmate profiles111,112. Alternatively, a keep-separate attribute113may already be associated with the inmate profiles111,112(for example as depicted inFIG. 1) and, at the block302, the controller220and/or the device101may identify the pre-existing keep-separate attribute113, associated with the first inmate profile111and the second inmate profile112.

In some examples, the block302may include the controller220and/or the device101identifying one or more keep-separate rules115associated with the keep-separate attribute113identified at the block302, for example, by looking up one or more keep-separate rules115associated with the keep-separate attribute113as stored at the database103and/or one or more memories. However, in other examples where rules115are incorporated into keep-separate attributes113, identifying a keep-separate attribute113may include identifying an associated rule115.

At a block304, the controller220and/or the device101determines whether the keep-separate attribute113identified at the block302is violated by the schedule data117associated with the first inmate profile111and the second inmate profile112.

For example, as described above, the controller220and/or the device101has access to one or more memories (e.g., the database103) storing the first inmate profile111, the second inmate profile112, the keep-separate attribute113and the schedule data117. As such, the controller220and/or the device101may retrieve the keep-separate attribute113(e.g., and an associated rule115) and the schedule data117and compare them to determine whether the inmates associated with the inmate profiles111,112are to be located in a same location at a same time according to the schedule data117. When the inmates associated with the inmate profiles111,112are to be located in a same location at a same time according to the schedule data117, and the keep-separate attribute113(e.g., and/or the associated rule115) indicate that the inmates associated with the inmate profiles111,112are not to be located in a same location at a same time, the controller220and/or the device101may determine that the keep-separate attribute113(e.g., and/or an associated rule115) is violated, and a “YES” decision occurs at the block304.

However, the controller220and/or the device101may determine that the keep-separate attribute113(e.g., and/or an associated rule115) is not violated (e.g., a “NO” decision occurs at the block304), and the controller220and/or the device101may optionally electronically monitor the inmates to optionally generate one or more additional keep-separate attributes, as described below, and/or continue to identify, at the block302, a keep-separate attribute113, which may occur as the schedule data117is updated, as described above.

When the controller220and/or the device101determines that the keep-separate attribute113(e.g., and/or an associated rule115) is violated (e.g., a “YES” decision occurs at the block304), at a block306, the controller220and/or the device101implements a corrective action in accordance with the keep-separate attribute113.

For example, the corrective action may comprise one or more of: modifying, at a block308, at the one or more memories (e.g., at the database103), the schedule data117in accordance with the keep-separate attribute113; and transmitting, at a block310, using the communication unit202, a notification of the keep-separate attribute113to one or more communication devices131,132associated with implementing the schedule data117.

The block308is first described hereafter.

As described above, in some examples, the method300may include the controller220and/or the device101identifying (e.g., at the block302and/or another block) one or more keep-separate rules115associated with the keep-separate attribute113. In these examples, modifying the schedule data117at the block308may include updating the schedule data117, at the one or more memories (e.g., the database103), according to the one or more keep-separate rules115. For example, an associated rule115may indicate that inmates are to be kept a given distance apart, and/or that the inmates are not to be in a same location within a given time period of each other. Hence, when the schedule data117indicates that the inmates associated with the inmate profiles111,112are to be in a same location and/or in a same location within a given time period, the schedule data117may be modified, at the block308, such that the inmates associated with the inmate profiles111,112are not in a same location and/or not in a same location within a given time period.

Hence, for example, modifying the schedule data117in accordance with the keep-separate attribute113identified at the block302may comprise: modifying, at the one or more memories (e.g., the database103), one or more respective movements of the schedule data117, the one or more respective movements associated with the first inmate profile111and the second inmate profile112. Hence, for example, when movements by which the inmates are to be transported overlap (e.g., within a given time period), one or more of the movements may be changed such that the movements do not overlap. Such movement modification may include, but is not limited to, changing and/or setting a start time for a movement and/or changing the movement. In some examples, modifying respective movements of the schedule data117may include, but is not limited to, modifying one or more of a start location and an end location of a movement (e.g., to move an activity location, and the like).

In other examples, modifying the schedule data117in accordance with the keep-separate attribute113identified at the block302may comprise: modifying, at the one or more memories (e.g., the database103), one or more respective activity times of the schedule data117, the one or more respective activity times associated with the first inmate profile111and the second inmate profile112. Hence, for example, when activities of the inmates are in overlapping time periods and/or within a given time period of each other (e.g., the inmates are to be at a cafeteria within a given time period of each other), the activity times may be changed such that the activities of the inmates are not in overlapping time periods and/or the activities are separated by a given time period. Alternatively, one or more activities of the schedule data117, associated with the first inmate profile111and the second inmate profile112, may be changed and/or rescheduled and/or cancelled.

Hence, in general, modifying the schedule data117in accordance with the keep-separate attribute113identified at the block302may comprise: modifying, at the one or more memories (e.g., the database103), the schedule data117according to one or more spatio-temporal constraints including, but not limited to, the aforementioned changing movements, changing activity times, moving activities, changing activities, rescheduling activities, cancelling activities, and the like, though any suitable spatio-temporal constraints are within the scope of the present specification.

In some of these examples, the one or more spatio-temporal constraints may include one or more spatio-temporal buffers. For example, when a rule115specifies that a given distance is to be used to keep inmates separate, a buffer may be added to the given distance such as 10% (and/or any other suitable percentage) of the given distance and/or a given buffer distance. Similarly, when a rule115specifies that a given time period is to be used to keep inmates separate, a buffer may be added to the given time period such as 10% (and/or any other suitable percentage)of the given distance and/or a given buffer time. Such spatio-temporal buffers may be used as a safety precaution. Furthermore, more than one type of buffer (e.g., distance and time) may be applied. In addition, the given time period and/or a given buffer time may be based on monitoring of the inmates to determine, for example, historical tardiness of an inmate; for example, when a given inmate is historically 3 minutes late for an activity, a given time period of a rule115for keeping inmates separate may be modified accordingly and/or a given buffer time may be modified accordingly.

The block310is next described hereafter.

In some examples, the block310may include transmitting the schedule data117, as modified at the block310, to the communication devices131,132. Hence, the officers121,122may read and/or be informed of the schedule data117, as modified, and escort the inmates associated with the inmate profiles111,112according to the schedule data117, as modified. Hence, in these examples, both the blocks308,310may be implemented and/or the block308may include transmitting the schedule data117to the communication devices131,132.

However, in other example, the officers121,122may have been provided with paper versions of the schedule data117, which may not be modified electronically. In these examples, the controller220and/or the device101, at the block310may transmit a notification of the keep-separate attribute113(and/or an associated rule115) to the one or more communication devices131,132associated with implementing the schedule data117. For example, the controller220and/or the device101, at the block310may generate a notification to indicate applying one or more spatio-temporal constraints (e.g., as described above) to the schedule data117; and transmit, using the communication unit202, the notification to the one or more communication devices131,132, the one or more communication devices131,132associated with one or more correctional officers121,122enforcing the schedule data117. In these examples, the officers121,122may receive the notification via a respective communication device131,132and implement the schedule data117indicated on paper, and the like, but according to the notification. The notification may be rendered at a display screen of a communication device131,132and/or provided aurally via a speaker of a communication device131,132and/or provided using any suitable notification device at a communication device131,132.

Alternatively, the schedule data117may have been transmitted to the communication devices131,132prior to modification, and the notification may cause the schedule data117, as stored at the communication devices131,132, to be modified and/or be provided with the schedule data117.

Alternatively, the notification may be transmitted regardless of whether the schedule data117is modified (e.g., at either the database103and/or as stored at a communication device131,132) to proactively inform the officers121,122of the modification, for example within the schedule data117already stored at the communication devices131,132and/or as an alert provided by a notification device at the communication devices131,132(e.g., a display screen, a speaker and the like).

In these examples, the block308may not be implemented as the schedule data117may not be modified; rather, a notification of the keep-separate attribute113(and/or an associated rule115) may be transmitted to the one or more communication devices131,132and provided to one or more of the officers121,122by a notification device at the communication devices131,132

While the examples described with respect to the blocks302,304,306,308, and310are to one keep-separate attribute113, in other examples the method300may include: identifying, at the controller220and/or the device101, a plurality of keep-separate attributes113(e.g., as depicted inFIG. 1) associated with the first inmate profile111and the second inmate profile112as being violated by the schedule data117, (e.g., the plurality of keep-separate attributes113including the keep-separate attribute113described with respect to the block302), each of the plurality of keep-separate attributes associated with respective keep-separate rules115(e.g., as depicted inFIG. 1); and identifying one or more most-stringent keep-separate rules115of the respective keep-separate rules115. In these examples, at the block310, the controller220and/or the device101modifying the schedule data117may comprise the controller220and/or the device101updating the schedule data117, at the one or more memories (e.g., the database103), according to the one or more most-stringent keep-separate rules115. Hence, for example, when the inmate profiles111,112are associated with two rules115, a first rule115that is more stringent than a second rule115(e.g., the first rule115specifying a larger given distance that inmates are to be kept apart than a given distance specified by the second rule115), then the schedule data117is updated according to the first, more stringent, rule115. Furthermore, more than one most-stringent keep-separate rules115may be selected, for example a most stringent spatial keep-separate rule115and a most stringent temporal keep-separate rule115.

In some examples, as depicted, the method300may optionally include a block312, at which the controller220and/or the device101may electronically monitor one or more of: a first inmate associated with the first inmate profile111; and a second inmate associated with the second inmate profile112. Such electronic monitoring may occur after the blocks308,310and/or in response to a “NO” decision at the block304, and/or such electronic monitoring may be implemented on an on-going basis in conjunction with the blocks302,304,306,308, and310of the method300. Such electronic monitoring may include monitoring the inmates at the prison via video cameras and/or microphones, and/or such electronic monitoring may be based on electronic reports indicating inmate behavior, for example as electronically submitted to the device101by one or more correctional officers, and the like, at the prison. Such monitoring may also be used to determine, for example, a given time period of a rule115for keeping inmates separate and/or a given buffer time and/or a given distance of a rule115for keeping inmates separate; indeed, the monitoring may be used to update the rules115.

At an optional block314, which may be implemented when the electronic monitoring at the block312occurs, the controller220and/or the device101may generate one or more additional keep-separate attributes113based on the electronic monitoring at the block312. For example, the electronic monitoring may indicate that the inmates associated with the inmate profiles111,112got into a fight, and their relationships may be updated at the inmate profiles111,112, which may cause an additional keep-separate attribute113to be generated and/or stored in association with the inmate profiles111,112.

Regardless, the method300generally repeats to continuously and/or periodically monitor the schedule data117(e.g., which may be dynamically updated when a schedule of an inmate changes and/or is added to, etc.), and modify the schedule data117when a keep-separate attribute113is violated.

Attention is next directed toFIG. 4andFIG. 5, which depicts a specific example of the device101implementing the method300to temporally modify respective schedule data117-1,117-2(interchangeably referred to as the schedule data117), for example according to a temporal keep-separate attribute113and/or an associated temporal keep-separate rule115defining that inmates are to temporally separated by10minutes. While specific components of the device101are not depicted inFIG. 4andFIG. 5, such components, such as the controller220, are understood to be present. For example, it is understood that the schedule data117is being modified by the device101. Furthermore, while the schedule data117depicted inFIG. 4andFIG. 5is in a calendar format, the schedule data117may be in any suitable format. Furthermore, the schedule data117depicted inFIG. 4andFIG. 5may have been provided to, respectively, the communication devices131,132for rendering at a display screen thereof.

With reference toFIG. 4, it is understood that the schedule data117-1is associated with an inmate421“Bob Smith”, who may be associated with the inmate profile111, and includes a list425of times and locations of activities of the inmate421. In particular, the inmate421is to receive medication at a “Location A” between 8:00 am and 8:30 am, and is to attend a GED (Graduate Equivalency Degree) class at a “Class C” between 8:30 am and 9:00 am. Presuming that the inmate421is currently in Location A (e.g., the current time is between 8:00 am and 8:30 am), the inmate421is to be transported to Class C (e.g., by the officer121that received the schedule data117-1) to attend the GED class at 8:30 am. Details435of the GED class are depicted in a corner of the schedule data117-1; the details435are also depicted in a larger format (e.g., blow-up portion)on an opposite side of the schedule data117-1to show details thereof, but such blow-up portions may not be included in the schedule data117-1. It is understood inFIG. 4that the method300has been implemented and that the schedule data117(e.g., the schedule data117-1) has been modified (e.g., at the block308) in accordance with the temporal keep-separate attribute113and/or the associated temporal keep-separate rule115identified as being associated with the inmate profiles111,112, as indicated by the notification440.

For example, attention is next directed toFIG. 5, which depicts the schedule data117-2of an inmate522“Ray Mertz”, who may be associated with the inmate profile112. The schedule data117-2further includes a list525of times and locations of activities of the inmate522. In particular, the inmate522is to receive medication at a “Location B” between 8:00 am and 8:30 am, and is to have recreational (“Rec”) time at a “Rec C” gym between 8:30 am and 10:00 am. Presuming that the inmate522is currently in Location B (e.g., the current time is between 8:00 am and 8:30 am), the inmate522is to be transported to Rec D (e.g., (e.g., by the officer122that received the schedule data117-2) to have the recreational time at 8:30 am. Details535of the Rec time are depicted in a corner of the schedule data117-2; the details535are also depicted in a larger format (e.g., a blow-up portion) on an opposite side of the schedule data117-2to show details thereof, but such blow-up portions may not be included in the schedule data117-1. As inFIG. 4, it is understood inFIG. 5that the method300has been implemented and that the schedule data117(e.g., the schedule data117-2) has been modified (e.g., at the block308) in accordance with the temporal keep-separate attribute113and/or the associated temporal keep-separate rule115identified as being associated with the inmate profiles111,112, as indicated by the notification540.

In particular, the controller220and/or the device101has identified (e.g., at the block302) that the keep-separate attribute113associated with the inmate profiles111,112generally indicates that the inmates421,522are to be kept temporally separate. Furthermore, the controller220and/or the device101has determined that if the inmates421,522were moved from their respective locations (e.g., the Location A and the Location B) to attend their various activities at 8:30 am, their movements would overlap and/or the inmates would be in same location at a same time, and hence the controller220and/or the device101has determined that the keep-separate attribute113is violated (e.g., a “YES” decision at the block304).

As such, the controller220and/or the device101has implemented a corrective action (e.g., at the block306) by modifying (e.g., at the block308) the schedule data117, and/or by transmitting the notifications440,540to the communication devices131,132for rendering at respective display screens thereof

Hence, for example, the notification440indicates that a movement time of the inmate421has changed from a previous time (not depicted) and/or a time to be determined by the officer121, to “8:25 am” to keep the inmate421separate from the inmate522. Similarly, the notification540indicates that a movement time of the inmate522has changed from a previous time (not depicted) and/or a time to be determined by the officer122, to “8:35 am” to keep the inmate522separate from the inmate421. Hence, movement of the inmates will be temporally separated by 10 minutes, as defined by the keep-separate attribute113and/or the associated temporal keep-separate rule115. In some examples a buffer may be added to the time. Furthermore, which inmate is to be moved first, and/or at which times, may be determined programmatically and/or using a machine-learning algorithm, and the like.

Attention is next directed toFIG. 6andFIG. 7, which depicts another specific example of the device101implementing the method300to spatially modify respective schedule data117-1,117-2(interchangeably referred to as the schedule data117), for example according to a spatial keep-separate attribute113and/or an associated keep-separate rule115defining a given distance by which inmates are to be kept separated. While specific components of the device101are not depicted inFIG. 6andFIG. 7, such components, such as the controller220, are understood to be present. For example, it is understood that the schedule data117is being modified by the device101. Furthermore, while the schedule data117is depicted inFIG. 6andFIG. 7in a map format, for example on the map119, the schedule data117may be in any suitable format. Furthermore, the schedule data117depicted inFIG. 6andFIG. 7may have been provided to, respectively, the communication devices131,132for rendering at a display screen thereof. Furthermore, the schedule data117-1,117-2may be provided together to the communication device131, for example, to modify a time and movement for transporting the inmate421, and the schedule data117-1,117-2may be provided together to the communication devices132, for example, to modify a time and movement for transporting the inmate522, for example to keep the inmates421,522temporally and spatially separate.

In particular, each of the schedule data117-1,117-2includes the map119, and a former and/or previous movement (labelled “Former Movement” in each ofFIG. 6andFIG. 7) by which each of the inmates421,522was to have been transported to their respective locations “Class C” and “Rec D”, from their respective starting locations “Location A” and “Location B” as defined, for example, by the schedule data117prior to implementation of the method300. As clearly understood by comparingFIG. 6andFIG. 7, the former movements overlapped in several areas of the prison and hence the controller220and/or the device101determines (e.g., at the block306)) that the spatial keep-separate attribute113, and/or the associated spatial keep-separate rule115, is violated. As such, at the block308, the controller220and/or the device101modifies the schedule data117to change the former movements to the respective required movements depicted inFIG. 6andFIG. 7(labelled “Required Movement” in each ofFIG. 6andFIG. 7). In particular, the required movements do not overlap and/or are separated by the given distance defined by the spatial keep-separate attribute113and/or the associated keep-separate rule115. For example, all points of both required movements may be separated by the given distance defined by the spatial keep-separate attribute113and/or the associated keep-separate rule115.

While the information inFIG. 6andFIG. 7is particular to respective inmates, in other examples, the information inFIG. 6andFIG. 7may be provided in any other suitable manner. For example, the information inFIG. 6andFIG. 7may be provided according to movement changes, such that the map119is provided with a former movements for both of the associated inmates and the map119may again be provided with changed movements for both of the associated inmates.

Furthermore, non-overlapping required movements may be determined programmatically and/or using a machine-learning algorithm, and the like. For example, the former movements may be changed and updated movements may be tested as to whether they overlap or not and/or as to whether the inmates will be separated by the given distance (e.g., optionally with a buffer distance added thereto). Once the updated movements meet the criteria defined by the associated keep-separate rule115, the updated movements are designated as the required movements.

The schedule data117-1,117-2as depicted inFIG. 6andFIG. 7, once updated and/or generated, may respectively be transmitted to the communication devices131,132such that the officers121,122respective escort transport the inmates421,522along the required movements, for example starting at the times indicated by the notifications440,540. As the inmates421,522are both temporally and spatially separated, the risk to the inmates421,522meeting each other and/or seeing and/or hearing and/or physically interacting with each other is reduced.

While the examples inFIG. 4,FIG. 5,FIG. 6andFIG. 7are described with respect to the officers121,122transporting one inmate each, in general the officers121,122escort groups of inmates around the prison, and the groups may be automatically selected according to activities of the inmates, as well associated keep-separate attributes113(and/or keep-separate rules115) such that pairs of inmates having inmate profiles with associated keep-separate attributes113(and/or keep-separate rules115) are not placed in a same group to be escorted by an officer121,122. Similarly, keep-separate attributes113(and/or keep-separate rules115) may be used to assign inmates to pods and/or cells and/or to change inmate assignments to pods and/or cells.

Attention is next directed toFIG. 8, which depicts the system100, but showing further components thereof, including one or more machine-learning algorithms802being implemented by the computing device101, and one or more cameras804in communication with the computing device101, and one or more access points806; as depicted, the one or more access points806may be controlled by respective access control mechanisms808in communication with the computing device101.FIG. 8further depicts an optional feedback computing device809in communication with the computing device101. While for simplicity not all components of the system100are depicted (e.g., components of the database103), such components are nonetheless understood to be present where suitable.

The one or more machine-learning algorithms802may be components of the application223as described above. As has been previously mentioned, the application223may be operated by the controller220in a training mode to train the one or more machine-learning algorithms802(e.g., which may comprise deep learning and/or neural networks of the application223as described above), to determine keep-separate attributes113by comparing inmate profiles111, and/or which have been trained to update inmate profiles111based on monitored behavior.

However, the one or more machine-learning algorithms802may be additionally and/or alternatively be generally trained (e.g., in a training mode) to generate one or more keep-separate attribute113and/or modify the schedule data117, as described above. As depicted, inFIG. 8, the one or more machine-learning algorithms802may modify the schedule data117to generate modified schedule data810(e.g., which may comprise the schedule data117as modified, as described herein).

However, as depicted, it is understood that the one or more machine-learning algorithms802may be further operated in a machine-learning feedback loop812for further training the one or more machine-learning algorithms802. The machine-learning feedback loop812generally comprises processing feedback814indicative of an evaluation of one or more of keep-separate attribute113and modified schedule data810.

For example, as depicted, one or more keep-separate attributes113and/or one or more sets of modified schedule data810may be provided to the one or more machine-learning algorithms802in a machine-learning feedback loop812as training data and/or labelled training data. In particular, as depicted, the one or more keep-separate attributes113may be provided, in combination with inmate profiles815(e.g., the inmate profiles111,112and/or any other suitable inmate profiles) used to generate the one or more keep-separate attributes113as a training set of the feedback814for training the one or more machine-learning algorithms802to better generate keep-separate attributes113. Similarly, as depicted, the one or more sets of modified schedule data810may be provided, in combination with respective schedule data117prior to modification, as a training set of the feedback814for training the one or more machine-learning algorithms802to better generate modified schedule data810.

In particular, the one or more keep-separate attributes113and/or the one or more sets of modified schedule data810may be labelled (e.g., with respective labels817) to indicate whether the one or more keep-separate attributes113and/or one or more sets of modified schedule data810, as generated by the one or more machine-learning algorithms802, represent positive (e.g., effective) examples or negative (e.g., ineffective) examples.

For example, the one or more machine-learning algorithms802may, when generating a keep-separate attribute113and/or modified schedule data810, also generate an associated respective probability score, for example on a scale of0to100, with higher scores indicating a higher level of respective confidence in predicting and/or generating a keep-separate attribute113and/or modified schedule data810; hence, the one or more keep-separate attributes113and/or one or more sets of modified schedule data810may be labelled with the scores in the feedback814. Put another way, the labels817may comprise respective scores of a keep-separate attribute113and a set of modified schedule data810. In one example, however, such scores may be binary with, for example, a score of “0” indicating a negative example and a score of “1” indicating a positive example. In yet further examples, only positive examples of keep-separate attributes113and/or sets of modified schedule data810may be provided to the one or machine-learning algorithms802in the machine-learning feedback loop812(e.g., which may or may not be labeled as a binary score of “1” may be understood to be inherent in such examples). However, any suitable scoring scheme is within the scope of the present specification

Regardless, when a keep-separate attribute113and/or modified schedule data810of the feedback814(e.g., along with respective labels817) are provided to the one or more machine-learning algorithms802in the machine-learning feedback loop812, the one or more machine-learning algorithms802may be better trained to generate keep-separate attributes113and/or modified schedule data810on the basis of the labels and/or the scores.

However, as depicted, at least a portion of the feedback814may be generated at the one or more communication devices131,132. For example, one or more of the correctional officers121,122may review a keep-separate attribute113and/or modified schedule data810at a respective communication devices131,132, and manually enter an associated score of a keep-separate attribute113and/or modified schedule data810at a respective communication devices131,132, for example to label a keep-separate attribute113and/or modified schedule data810with the score. Such feedback814may be provided to the computing device101by a communication device131,132for use by the machine-learning feedback loop812. However, such scoring using manual input may be implemented at any suitable computing device of the system100, for example via a computer terminal and/or laptop operated by one or more of the correctional officers121,122, a supervisor of the one or more of the correctional officers121,122, an administrator of the prison, and the like.

In some of these examples, one or more of the correctional officers121,122, and the like, may be tasked with verifying labels and/or scores of a keep-separate attribute113and/or modified schedule data810via a respective communication device131,132, and the like, when scores are below a threshold score such, as50%,60% and/or any other suitable threshold score.

In other examples, the keep-separate attributes113and the modified schedule data810generated by the one or more machine-learning algorithms802may be provided to the feedback computing device809, which may be a component of the system100and/or external to the system100that has been specifically trained to generate labels and/or scores for keep-separate attributes113and modified schedule data810, and/or verify labels and/or scores of the keep-separate attributes113and the modified schedule data810. The feedback computing device809may generate and/or verify labels and/or scores and provide the generated and/or verified labels and/or scores as feedback814(and/or at least a portion of the feedback814, such as the labels817) back to the computing device101for storage (e.g., at the database103) until the machine-learning feedback loop812is implemented.

Put another way, labels and/or scores of the feedback814may be generated and/or provided in any suitable manner and/or by any suitable computing device and/or communication device.

Furthermore, the feedback814is generally indicative of an evaluation of one or more of a keep-separate attribute113and schedule data117as modified (e.g., the modified schedule data810). For example, the depicted labels817may represent such an evaluation via respective scores.

Furthermore, while not depicted, the one or more machine-learning algorithms802may be further configured to update inmate profiles815(e.g., the inmate profiles111,112) and the feedback814may be adapted accordingly.

Regardless, by implementing the machine-learning feedback loop812, more efficient operation of the computing device101may be achieved as the one or more machine-learning algorithms802are trained to better and/or more efficiently generate keep-separate attributes113and/or modified schedule data810.

Put another way, a first training set may be generated from initial keep-separate attributes and/or initial modified schedule data collected and/or generated, in any suitable manner, for example via the feedback computing device809, and/or that has been generated in any suitable manner; such initial keep-separate attributes and/or initial modified schedule data may be indicative of positive examples of keep-separate attributes and/or modified schedule data. The first training set may be used to train the one or more machine-learning algorithms802, in a first stage of the machine-learning feedback loop812, to generate keep-separate attributes and/or modified schedule data. Similarly, a second training set may be generated from initial keep-separate attributes and/or initial modified schedule data collected and/or generated, in any suitable manner that are indicative of negative examples of keep-separate attributes and/or modified schedule data. The second training set may be used to further train the one or more machine-learning algorithms802, in a second stage of machine-learning feedback loop812. Similarly, after the one or more machine-learning algorithms802are trained using the first training set of positive examples and the second training set of negative examples, in a second stage of the machine-learning feedback loop812, the one or more machine-learning algorithms802may be further trained using a fourth training set of positive examples of keep-separate attributes113and/or modified schedule data810and/or a fifth training set of negative examples of keep-separate attributes113and/or modified schedule data810; the machine-learning feedback loop812as depicted inFIG. 8may hence show the second stage thereof, and the feedback914may comprise such a fourth training set and fifth training set of the second stage. Furthermore, the first training set and the second training set may be used in any suitable order to train the one or more machine-learning algorithms802in the first stage, and similarly the third training set and the fourth training set may be used in any suitable order to train the one or more machine-learning algorithms802in the second stage. Indeed, components of the first training set and the second training set, and/or components of the third training set and the fourth training set, may be used to train the one or more machine-learning algorithms802in any suitable order.

As depicted inFIG. 8, the system100further comprises the one or more cameras804. The one or more cameras804may be located at respective locations throughout the prison, for example as represented by the map119. The one or more cameras804may include respective microphones, and the like and, in general, the one or more cameras804may generate video data and/or audio data that monitor inmates associated with respective inmate profiles815. However, microphones independent of cameras may also be present in the system100.

For example, as has been previously described, electronic monitoring of inmates and/or behavior of inmates may be monitored via video cameras and/or microphones, which may be represented by the one or more cameras804. Alternatively, and/or in addition, electronic monitoring of inmates and/or behavior of inmates may be monitored based on electronic reports indicating inmate behavior, for example as electronically submitted to the computing device101by one or more correctional officers, and the like, at the prison (including, but not limited to, the correctional officers121,122operating the communication devices131,132). Hence, video data and/or audio data generated by the one or more cameras804may be components of electronic data816used to electronically monitoring of inmates and/or behavior of inmates; such electronic data816may include electronic reports submitted to the computing device101by one or more correctional officers.

However, the one or more cameras804may alternatively be used to monitor locations of the correctional officers121,122, for example as the correctional officers121,122are escorting inmates. For example, video data from the one or more cameras804may be analyzed (e.g., by one or more video analysis engines at the computing device101and/or at the one or more cameras804) to identify one or more of the correctional officers121,122in video data, as well as a respective location.

Alternatively, and/or in addition, the communication devices131,132carried by the correctional officers121,122, may determine, and report to the computing device101, respective locations of the correctional officers121,122using respective, location determining devices (e.g., GPS devices).

Regardless, the computing device101may be generally configured to determine respective locations of the correctional officers121,122.

The computing device101, generally having access to required movements (e.g., routes) of the correctional officers121,122as indicated by the schedule data117as modified (e.g., the modified schedule data810) may hence monitor respective locations of the correctional officers121,122and control the one or more access points806to one or more of unlock and open according to the one or more respective locations and the schedule data117as modified (e.g., the modified schedule data810). For example, the computing device101may unlock and/or open an access point806when a correctional officer121,122, escorting a respective inmate, approaches the access point806, the controlling of the access point806occurring via a respective access control mechanism808.

As depicted, an access point806may include a door, and the like, of the prison, and the like, which may be locked or unlocked via an access control mechanism808, which may include an electronically controlled lock, and the like. Alternatively, an access control mechanism808may comprise an electronically controlled door opening and closing mechanism. Regardless, the computing device101may lock, unlock, open and close the access points806(e.g., via respective commands807). An access point806may hence generally include any suitable type of access point, which may be locked and unlocked, and/or opened and closed. Indeed, examples of access points806of the prison are shown on the map119inFIG. 6andFIG. 7.

As depicted, the computing device101may control an access point806to unlock and/or open when a correctional officer121,122, escorting a respective inmate, approaches the access point806, by the computing device101providing and/or transmitting a command807to a respective access control mechanism808, the command807to control the access control mechanism808to unlock and/or open the access point806. In some examples, an access control mechanism808may control a respective access point806to lock and/or close after a given time period, and/or when a correctional officer121,122, escorting a respective inmate, passes through the access point806(e.g., as detected via sensors (not depicted), and the like, of an access control mechanism808). In other examples, the computing device101may control a respective access point806to lock and/or close after a given time period via another command807provided and/or transmitted to a respective access control mechanism808(e.g., which controls the respective access control mechanism808to lock and/or close the respective access point806). Similarly, in yet further examples, the computing device101may control a respective access point806to lock and/or close via a command807provided and/or transmitted to a respective access control mechanism808(e.g., which controls the respective access control mechanism808to lock and/or close the respective access point806), when a correctional officer121,122, escorting a respective inmate, passes through the access point806; in particular, locations of correctional officers121,122may be detected via sensors of the system100including, but not limited to, the cameras804, as described herein. Hence, while determining locations of correctional officers121,122and/or inmates is described herein with respect to the computing device101receiving video data from the cameras804, determining locations of correctional officers121,122and/or inmates may occur in any suitable manner. For example, motion and/or position sensors at the access control mechanisms808may detect a location of a correctional officers121,122, and/or a correctional officer121,122may use a key card at an access point806; in particular, a key card may electronically provide credentials of a correctional officer121,122when presented to a key card reader at an access point806(e.g., which may be incorporated into an access control mechanism808), and the key card reader may provide the credentials to the computing device101such that the computing device101may determine that a correctional officer121,122is located at the access point806.

Attention is now directed toFIG. 9, which depicts a flowchart representative of a method900for electronically implementing corrective actions based on keep-separate attributes. The operations of the method900ofFIG. 9correspond to machine readable instructions that are executed by the device101, and specifically the controller220of the device101. In the illustrated example, the instructions represented by the blocks ofFIG. 9are stored at the memory222for example, as the application223. The method900ofFIG. 9is one way in which the controller220and/or the device101and/or the system100may be configured. Furthermore, the following discussion of the method900ofFIG. 9will lead to a further understanding of the system100, and its various components.

The method900ofFIG. 9need not be performed in the exact sequence as shown and likewise various blocks may be performed in parallel rather than in sequence. Accordingly, the elements of method900are referred to herein as “blocks” rather than “steps.” The method900ofFIG. 9may be implemented on variations of the system100ofFIG. 1, as well.

At a block902, the controller220and/or the device101receives (e.g., via and/or using the communication unit202) the electronic data816indicative of monitoring inmates associated with respective inmate profiles815. As previously described, the electronic data816may comprise one or more of video data, audio data, and an electronic report. Also as previously described, the electronic data816may be received from one or more of one or more of a video camera, a microphone and a communication device (e.g., as represented by the one or more of the cameras804and/or the one or more communication devices131,132).

At a block904, the controller220and/or the device101generates, using the electronic data816, a keep-separate attribute113associated with the respective inmate profiles815. Such generation of a keep-separate attribute113has been described elsewhere in the present application, for example with respect to the method300.

At a block906, the controller220and/or the device101determines that schedule data117associated with the respective inmate profiles815violates the keep-separate attribute113within a given time period. Examples of such violations are described elsewhere in the present specification, for example with respect to the method300.

At a block908, the controller220and/or the device101modifies, using the keep-separate attribute113, the schedule data117(e.g., and/or generates modified schedule data810) to indicate a physical separation between the inmates within the given time period. As has been previously described, one or more of the keep-separate attribute113and modification of the schedule data117may implemented via the one or more machine-learning algorithms802. Otherwise modification of the schedule data117are described elsewhere in the present specification, for example with respect to the method300.

As described herein, the method900may further comprise the controller220and/or the device101identifying one or more keep-separate rules115associated with the keep-separate attribute113, and modifying the schedule data117in accordance with the keep-separate attribute113may comprise the controller220and/or the device101modifying the schedule data117according to the one or more keep-separate rules115.

Furthermore, as described herein, the method900may further comprise the controller220and/or the device101: identifying a plurality of keep-separate attributes113associated with the respective inmate profiles815as being violated by the schedule data117, the plurality of keep-separate attributes113including the keep-separate attribute113(e.g., of the block904), each of the plurality of keep-separate attributes113associated with respective keep-separate rules115; and identifying one or more most-stringent keep-separate rules115of the respective keep-separate rules115, and modifying the schedule data117in accordance with the keep-separate attribute113may comprise the controller220and/or the device101modifying the schedule data117according to the one or more most-stringent keep-separate rules115. Such modifying the schedule data117according to the one or more most-stringent keep-separate rules115is described elsewhere in the present specification, for example with respect to the method300.

Furthermore, in some examples, the controller220and/or the device101modifying the schedule data117in accordance with the keep-separate attribute113(e.g., of the block904) may comprise one or more of modifying: one or more respective movements (e.g., routes) of the schedule data117; one or more respective activity times of the schedule data117; one or more routes of the schedule data117; applying one or more spatio-temporal constraints to the schedule data117; applying one or more spatio-temporal buffers to the schedule data117. Examples of such modifying are provided throughout the present specification, for example with respect to the method300. In a particular, an initial movement and/or an initial route may be modified to a required movement and/or a required route as described with respect toFIG. 6andFIG. 7.

Hence, the schedule data117, as modified may include one or more of spatio-temporal constraints, respective routes respective times (e.g., the required movements ofFIG. 6andFIG. 7) for the one or more correctional officers121,122to escort the inmates during the given time period to physically separate the inmates during the given time period.

At a block910, the controller220and/or the device101one or more of: stores, at a memory (e.g., the database103), the schedule data117as modified; and transmits, using the communication unit202, a notification of the schedule data117as modified, to one or more communication devices131,132to instruct the one or more correctional officers121,122to physically separate the inmates within the given time period. Such storing and/or transmitting of a notification are described elsewhere in the present specification, for example with respect to the method300. However, it is understood that, in some examples, the notification may include times and movements (e.g., required movements) that a correctional officer121,122is to escort a respective inmate (e.g., inmates421,522) along a respective route. In some examples, the times and movements may include respective given times that a correctional officer121,122is to escort a respective inmate through a given access point806to ensure physical separation between the respective inmates along the respective routes.

At a block912, the controller220and/or the device101implements the machine-learning feedback loop812, as described herein, for training the one or more machine-learning algorithms802, the machine-learning feedback loop812comprising processing feedback814indicative of an evaluation of one or more of the keep-separate attribute113and the schedule data117as modified.

As previously described, the method300may further comprise the controller220and/or the device101receiving at least a portion of the feedback814(e.g., the labels817) from one or more of the communication devices131,132and/or the feedback computing device809.

As previously described, the method300may further comprise the controller220and/or the device101controlling one or more access points806to one or more of unlock and open according to the schedule data117as modified. For example, such control may occur via providing respective commands807to one or more access control mechanism808, as described herein. In some of these examples, the method300may further comprise the controller220and/or the device101electronically monitoring one or more respective locations of the one or more correctional officers121,122tasked with escorting the inmates according to the schedule data117as modified; and controlling the one or more access points806to one or more of unlock and open according to the one or more respective locations and the schedule data117as modified.

In yet further examples, the method300may further comprise the controller220and/or the device101controlling a given access point806to one or more of unlock and open (e.g., via a command807) when a correctional officer121,122approaches the given access point806at a given time indicated by the schedule data117as modified; otherwise the given access point806may remain locked and/or closed until the given time indicated by the schedule data117. Put another way, the schedule data117as modified may indicate that a correctional officer121,122escorting an inmate is to pass through a given access point806at a given time, and the controller220and/or the device101may unlock and/or open the given access point when the correctional officer121,122approaches the given access point806at the given time; otherwise the given access point806may remain locked and/or closed until the given time indicated by the schedule data117. Alternatively, and/or in addition, the correctional officer121,122may unlock and/or open the given access point806using a key card, and the like.

As also described herein, the method300may further comprise the controller220and/or the device101controlling a given access point806to one or more of lock and close (e.g., via a command807) after a given time period and/or after a correctional officer121,122, escorting an inmate, passes through the given access point806, for example as detected via sensors, such as the cameras804.

In some examples, the method300may further comprise the controller220and/or the device101: determining the respective locations of the correctional officers121,122as they escort respective inmates; and transmitting alerts (e.g., periodically) to respective communication devices131,132of the correctional officers121,122that include the respective locations. The respective locations may be provided, “live”, using geographic information (GIS)system overlays, and the like, on respective maps119of the prison provided at display screens of the communication devices131,132. Hence, in these examples, a correctional officer121,122may be alerted as to a location of another correctional officer121,122to provide a further safeguard in physically separating the inmates being escorted. For example, a correctional officer121,122escorting an inmate associated with a keep-separate attribute113, now aware of a live location of the other correctional officer121,122escorting another inmate associated with the keep-separate attribute113, may determine whether the inmates are sufficiently physically separated. Such examples may assist the correctional officers121,122in labelling or scoring a keep-separate attribute113and/or the modified schedule data810in the feedback814.

Similarly, the respective locations of the correctional officers121,122may be provided to the feedback computing device809trained to generate labels (e.g., the labels817) and/or scores for keep-separate attributes113and modified schedule data810, and/or verify labels and/or scores of the keep-separate attributes113and the modified schedule data810. Such respective locations may be used by the feedback computing device809to generate and/or verify the labels817and/or scores for the feedback814. For example, the respective locations of the correctional officers121,122may be compared by the feedback computing device809to determine whether inmates being escorted were sufficiently physically separated, for example using threshold distances and/or threshold separation conditions, such as at least one wall physically separating the inmates being escorted at all times and/or at least locked two access points physically separating the inmates being escorted at all times, and the like. On this basis, the feedback computing device809may generate and provide the labels817in the feedback814to the computing device101for the machine-learning feedback loop812.

Hence, provided herein is a device, system and method for electronically implementing corrective actions based on keep-separate attributes. The corrective actions may include modifying schedule data to temporally separate inmates at a prison and/or modifying schedule data to spatially separate inmates at a prison. The corrective actions may alternatively include transmitting notifications to communication devices associated with correctional officers tasked with escorting inmates, to cause the correctional officers to temporally and/or spatially separate inmates at a prison. The keep-separate attributes may be dynamically updated based on electronic monitoring of the inmates.

As should be apparent from this detailed description above, the operations and functions of electronic computing devices described herein are sufficiently complex as to require their implementation on a computer system, and cannot be performed, as a practical matter, in the human mind. Electronic computing devices such as set forth herein are understood as requiring and providing speed and accuracy and complexity management that are not obtainable by human mental steps, in addition to the inherently digital nature of such operations (e.g., a human mind cannot interface directly with RAM or other digital storage, cannot implement a machine-learning feedback loop, and the like).