Systems and methods for computerized task generation
A computerized system that uses facial expression analysis and trained models to dynamically assign tasks based on worker sentiment and resource availability addresses the inefficiencies of traditional systems, enhancing worker performance and resource utilization.
Patent Information
- Application Number
- PCT/US2024/047165
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-19
- Filing Date
- 2024-09-18
- Publication Date
- 2025-03-27
AI Technical Summary
Traditional systems for assigning tasks to workers do not consider worker sentiment, leading to inefficiencies and reduced job satisfaction, and they struggle with dynamic resource management in real-time.
A computerized system that uses trained models to analyze facial expressions from digital images of workers to determine sentiment and assign tasks dynamically based on real-time resource availability and worker metrics.
Improves task assignment by considering worker sentiment, leading to enhanced worker performance and job satisfaction, and optimizes resource utilization through dynamic task reassignment in response to resource unavailability.
Smart Images

Figure US2024047165_27032025_PF_FP_ABST
Abstract
Description
SYSTEMS AND METHODS FOR COMPUTERIZED TASK GENERATIONCROSS-REFERENCE
[0001] This application claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Application No. 63 / 539,161, filed September 19, 2023, the contents of which are incorporated by reference in their entirety.BACKGROUND
[0002] A modem workplace, including in construction sites or excavation or mining projects, can include a number of employees doing very different tasks at different times. In some cases, different groups of workers may perform different tasks, and in other cases a worker may perform different tasks over time. Completing the project may include coordinating the completion of tasks.SUMMARY
[0003] In some aspects, techniques described herein relate to a computer-implemented method including (1) receiving a digital image of a worker face, (2) selecting a task, using at least one trained model and from among a plurality of tasks to be assigned at a time, to assign to the worker based on a facial expression extracted from the digital image, and (3) outputting the task assigned to the worker. Additionally or alternatively, techniques described herein relate to a computer-implemented method including, in response to detecting that a resource, associated with a task scheduled to be performed by a w orker at a particular time, will be unavailable at the particular time, (1) identifying, for the particular time, a set of one or more tasks associated with one or more resources predicted to be available at the particular time and (2) assigning the w orker to perform a task from the set of one or more tasks at the particular time instead of the task scheduled to be performed by the w orker at the particular time. Methods and systems of the presently disclosed embodiments w ere isolated orotherwise manufactured in connection with the examples provided below. Other features and advantages will be apparent from the detailed description, and from the claims.BRIEF DESCRIPTION OF THE DRAWINGS
[0004] FIG. 1 is a block diagram of a task generation system by which some embodiments may operate.
[0005] FIG. 2 and FIG. 3 are flow charts of processes 200 and 300, respectively, that may be implemented in some embodiments to generate tasks in a workplace environment.
[0006] FIG. 4 is an exemplary' implementation of a computing device that may be used in a system implementing techniques described herein.
[0007] While the above-identified drawings set forth presently disclosed embodiments, other embodiments are also contemplated, as noted in the discussion. This disclosure presents illustrative embodiments by way of representation and not limitation. Numerous other modifications and embodiments can be devised by those skilled in the art which fall within the scope and spirit of the principles of the presently disclosed embodiments.DETAILED DESCRIPTION
[0008] Traditional systems for assigning tasks to workers do not take worker sentiment (e.g., general worker sentiment and / or sentiment toward a particular task) into account when assigning tasks. While a good manager may attempt to identify worker sentiment, such a manager may be limited in doing so (e.g., as a worker’s sentiment may be difficult to determine by observation and / or a worker asked about his sentiment may not be fully honest). The instant application identifies worker sentiment as a useful factor for task assignment (e.g.. a factor that, when used for selecting worker tasks, results in improved worker performance and job satisfaction). In light of the barriers to organically determining worker sentiment just described, the present application discloses a computerized system for determining worker sentiment from an image of a worker’s face (e.g., using a trained modelto extract an expression from the image and to identify a sentiment from the expression) and using the worker sentiment as a factor (e.g., an input for a trained model) for selecting a task for the worker. In some examples (in addition or as an alternative to determining worker sentiment), the computerized system may identify one or more other worker metrics (e.g., employee skills and / or performance metrics) as factors for selecting a worker task.
[0009] The instant application also identifies a need for improved systems and methods for computerized (e.g., trigger-based) workflow management (e.g., worker task assignment and / or resource allocation within a workplace environment). Conventional approaches to workflow management may include maintaining a static schedule of tasks put in place for a workplace for a particular period (e.g., a day) prior to the period. Such approaches fail to optimize the utilization of resources, as the time required for a worker to complete a task or the time at a which a resource for a task will become available may be impossible to perfectly predict. Furthermore, in workplace environments in which tasks are interconnected and / or rely on shared resources, one unanticipated event (e.g., an equipment failure or a delay) occurring during a period may affect many tasks scheduled for the period. This may result in lost time, as workers wait for a manager to manually put together an updated schedule for the period, and an inefficient use of equipment or materials.
[0010] Responding to these inefficiencies, the present application discloses a computerized task assignment system that assigns tasks dynamically (e.g., in real-time throughout a period). The challenges to dynamic task assignment are many. This application identifies, as one challenge, the collection of the data required to assign a task (e.g., data delineating the availability of shared resources, tasks needing to be performed, a relationship and / or hierarchy between tasks, tasks affected by a delayed task or unavailable resource, etc.) and, as another challenge, the complexity of analyzing such data to assign tasks in a way that optimizes the use of resources. Dynamic task assignment requires dynamic data collectionand dynamic data analysis. Thus, in a workplace environment that involves many resources and / or tasks, manually collecting and analyzing such data on an ongoing basis (e.g., continually) may be difficult or impossible.
[0011] The disclosed task assignment system solves for these challenges in a variety of ways. In some examples, the task assignment system may include a computerized (e.g., autonomous) tracking framework in which equipment and / or material resources are tracked and / or measured via sensors. Each sensor may automatically collect data for its corresponding resource, which may be used to identify an availability or a need (e.g., problem) of a resource. Additionally or alternatively, the tracking framework may receive worker data (e.g., indicating the completion of a task, a delay, an issue with equipment and / or a material, etc.) submitted by a worker via user input to a worker device. In some examples, the data received via the sensors and / or worker devices may be used as inputs to a trained model, which may output task assignments dynamically based at least in part on these inputs.
[0012] Described below are examples of ways in which techniques described herein may be implemented. It should be appreciated that these examples are merely illustrative, that embodiments are not limited to operating in accordance with the specific examples shown in the figures and discussed below, and that other embodiments are possible. The following examples are put forth so as to provide those of ordinary skill in the art with a complete disclosure and description of how to make and use the prescription management system and some aspects and embodiments herein and are not intended to limit the scope of the vanous aspects and embodiments herein.
[0013] FIG. 1 illustrates a block diagram of a system 100 with which some embodiments may operate for managing task assignments in a workplace (e.g., involved in carrying out the methods of the disclosure that will be described in connection with FIGS. 2-3). In some examples, as will be described in greater detail below, system 100 may include or representan Artificial Intelligence Manager that manages task assignments within a workplace using one or more trained models. System 100 may be used in connection with any type or form of workplace including, without limitation, a mining workplace and / or a construction workplace.
[0014] As depicted in FIG. 1, system 100 can include a server computing device 102. Server computing device 102 may be any type or form of device (e.g., a backend computing device) that may perform functions directed at workplace management (e.g., workplace task assignment). In some examples, server computer device 102 may represent a service point which provides processing, database, and / or communication facilities. In some examples, server computing device 102 may represent a single physical processor (e.g., with associated communications and data storage and / or data base facilities). In other examples, server computing device 102 may represent a group of multiple servers (e.g., cloud servers) that operate in conjunction with one another.
[0015] In some examples, server computing device 102 may include (e.g., host and / or access) a repository of workplace information 104. This repository may include any type or form of data relating to a workplace and / or the management of a workplace. In some examples, the repository may represent or include one or more organized data structures (e.g., data stores) that receive storge instructions / requests (e.g., from the facilities described in FIG. 1). The one or more data structures may represent any ty pe or form of data structure that stores digital data including, without limitation, a memory or memory stack of a device, a distributed ledger of a distributed network (e.g.. blockchain), a spreadsheet, and / or a look-up table.
[0016] In some examples, the repository may include a data store of tasks (e.g., datastore 106). The tasks within the data store of tasks may represent any type of task (e.g., operation) associated with a workplace (e.g., tasks performed by workers and / or machinery within the workplace). Specific examples of tasks include, without limitation, loading a truck (e.g., witha particular material), drilling in a particular location (e.g., using a drilling rig), installing a generator, repairing a machine, inspecting a project, delivering a material, etc.
[0017] The data store of tasks may designate tasks with a variety of categorizations such as a status (e.g., to be completed, in progress, completed), a priority (e.g., low priority, high priority ), and / or a timing condition (e.g., a designed deadline by which a task is to be completed). In some examples, the data store of tasks may store information describing relationships between tasks. For example, the data store may indicate a hierarchy between tasks (e.g., assigning a relative priority' to each task within the data store). As another example, the data store may indicate a dependency between tasks. For example, the data store may indicate that an output (e.g., a mineral excavated from a mining site) from a first task (e.g., excavating the mineral from the mining site) is be used for a second task (e.g., transporting the mineral from the mining site to an additional site).
[0018] In some examples, the data store of tasks may indicate the resources required for a task (e.g., equipment, a material, and / or a worker). The data store may indicate a particular resource (e g., a particular piece of equipment) required for a task, a type of resource (e.g., a worker with a particular skill and / or certification) required for a task, and / or any other information relevant to a task (e.g., a location at which the task is to be performed, an estimated time required to complete a task, etc.).
[0019] In certain embodiments, server computing device 102 may include a data store of resources (e.g., data store 108). This data store may include a list of resources (e.g., all resources) associated with a workplace (e.g., located within the workplace, being used at the workplace, etc.). The data store may be dedicated to resources of a particular type (e.g., a data store of workers, a data store of equipment, a data store of materials, etc.) or may list resources of multiple types (e.g.. organized by type).
[0020] The data store of resources may maintain a variety of information for each resource detailed in the data store including, without limitation, an identifier, a status (e.g., available, unavailable, scheduled for use, etc.), a schedule (e.g., one or more times at which and / or tasks for which the resource is scheduled), a location (e g., a current location and / or a storage location of a resource), etc. In some examples (e.g., in which a resource represents a piece of equipment), the data store of resources may include maintenance information for a resource, such as a maintenance schedule and / or a maintenance need. In some examples (e.g., in which a resource represents a material), the data store of resources may include supply information for a resource (e.g., indicating an amount of the material available at the workplace). In some examples, the data store of resources may include ahistory (e.g., a log) of use for a resource. In examples in which a resource represents a worker, the data store may include a variety of worker information (e.g., a list of skills and / or certifications of the worker, performance metrics for the worker, etc.).
[0021] In certain examples (e g., which will be explored in greater detail in connection with FIG. 2), system 100 may receive digital images of worker faces (e g., digital image 110). In these examples, repository of workplace information 104 may maintain such images and / or facial expressions (e.g., facial expression 112) extracted from such images.
[0022] As depicted in FIG. 1, system 100 can include a task management facility 114 (e.g., configured to perform one or more of the steps described later in connection with FIGS. 2-3). Task management facility 114 may perform any type of function directed to the management and / or optimization of a workplace environment. In some examples, task management facility 114 may be configured to generate task assignments, maintain and / or update a task schedule (e.g., a static schedule and / or a dynamic schedule), manage resources (e.g., by logging resource use, allocating resources to tasks, etc.), and / or mitigate damage fromproblematic events. In certain examples, task management facility' 114 may receive determine worker mood (e.g., based on expressions extracted from images of worker faces).
[0023] In certain embodiments, task management facility 114 may include and / or operate in conjunction with a trained model 116. In some examples, task management facility 114 mayinput data to trained model 116 and / or receive an output from trained model 116 (e.g., as will be described in greater detail in connection with FIGS. 2 and 3).
[0024] Trained model 116 may represent any type of trained artificial intelligence / machine learning model (AI / ML), machine learning model architecture, machine learning model type (e.g., convolutional neural network (CNN) with deep learning image recognition, recurrent neural network (RNN), autoencoder, and / or support vector machine (SVM)), or any other trained model or combination thereof. Examples of AI / ML techniques with which trained model 116 may be configured include, without limitation, computer vision, feature vector analysis, decision trees, boosting, support-vector machines, neural networks (e.g., a feedforward neural network, a radial basis function network, a recurrent neural network, and / or a convolutional network), nearest neighbor algorithms. Naive Bayes, bagging, random forests, and / or logistic regression. In some examples, trained model 1 16 may represent a single model. In other examples, trained model 116 may represent multiple interconnected models (e.g., a first model that provides an output used as input for a second model).
[0025] Trained model 116 may be trained in a variety of ways. As one specific example, an implementation of trained model 116 may be executed by (1) defining the architecture of trained model 116. (2) transferring input data to trained model 116. (3) training trained model 116 incrementally. (4) determining the accuracy for a specific number of timesteps, (5) applying trained model 116 to process the newly-received input data, and (6) (optionally and in parallel) continuing to train trained model 116 with a predetermined periodicity. In certainexamples, the methods described in FIGS. 2 and 3 may include training trained model 116 to perform one or more of the steps described in FIGS. 2 and 3.
[0026] In some examples, as will be discussed in connection with FIGS. 2 and 3, trained model 116 may be used to generate task assignments for workers in a workplace. In these examples, trained model 116 may output a task assignment for a w orker based on a variety' of inputs (e.g., a default schedule of tasks, a current time and / or weather condition, one or more weighted tasks marked as needing to be completed and / or an interconnection of such tasks, a length of time required to complete a task, a skill of the worker, a performance metric of the w orker, a current mood of the w orker, a mood of the worker associated with a type of task and / or a time of day, an availability or unavailability of a resource, an unplanned event, etc.).
[0027] As depicted in FIG. 1, the system 100 can include a worker device 118 (i.e., a user computing device), which may be a desktop or laptop personal computer, smart mobile phone, server, wearable device, or other suitable device used by a worker 120. Worker device 118 may include w orker interface facility 122 (e g., configured to perform one or more of the steps described in connection with FIGS. 2-3). In some examples, worker interface facility 122 may generate, maintain, and / or present a user interface by which worker 120 may interact with worker device 118. The user interface may accept input in a variety of different formats, such as through speech recognition, text input, or other means, as embodiments are not limited in this respect. In some examples, the user interface may prompt worker 120 to capture an image of worker 120’s face and / or may enable w orker 120 to capture an image (e.g.. of worker 120’s face). In one example, the user interface may provide a selectable capture element that, when selected via user input, triggers a camera of worker device 118 to capture an image (e.g.. an image displayed within a capture display area presented within the user interface). In some examples, the user interface may enable a worker to submitinformation relating to a resource, as will be described in greater detail shortly in connection with resource 124.
[0028] In some examples, system 100 can include one or more resources of a workplace (e.g., equipment, material, workers, etc.), such as resource 124. Information relating to each resource (e.g., a status of the resource, a performance of the resource, a maintenance required for the resource, an availability of a resource, etc.) may be stored in repository of workplace information 104 (e.g., in data store of resources 108) and / or used by task management facility 114 (e.g., for task generation).
[0029] Information relating to a resource (e.g., a status of a resource, a performance of a resource, etc.) may be collected in a variety of ways. In one example (for equipment and / or material resources), a resource may be associated with a sensor (e.g., sensor 126) that collects data relating to the resource. The sensor may represent any type of device or component associated with a resource (e.g., that captures data and / or metadata relating to the resource). Specific examples of sensors include, without limitation, a motion detector, a heat detector, a smoke detector, a GPS sensor, an air quality sensor, a water monitoring sensor, a weight sensor, an accelerometer, a passive infrared (PIR) sensor, and / or a time-of-flight (ToF sensor).
[0030] A resource may be associated with a sensor in a variety of ways. For example, a sensor may be embedded in a resource, communicatively coupled to a resource, and / or in a position where it can remotely detect information (e.g., movement information and / or weight information) relating to a resource. Upon collecting data relating to a resource, a sensor may transmit the data to server computing device 102 (e.g., to be stored at repository of workplace information 104 and / or to be analyzed and / or used by task management facility 114).
[0031] In addition (or as an alternative) to receiving resource information collected via sensors, system 100 may receive resource information submitted by workers (e.g., via workerdevices). In some such examples, worker interface facility 122 may provide an interface for submitting information relevant to a resource. In one specific embodiment, a worker may report that a task is finished using a task completion interface provided by worker interface facility 122. In some such embodiments, the task completion interface may enable and / or require a worker to submit a photo of a finished task (e.g., rocks that have been piled) as part of a reporting process. In these examples, resource information may be determined from the task completion reporting (e.g., a resource used for a task may be determined to be available in response to receiving a report that the task is completed).
[0032] In another specific embodiment, a barcode may be affixed to a resource and worker interface facility 122 may surface a problem-report interface (e.g., in response to receiving user input requesting the interface). The problem-report interface may include a barcode scanning functionality and photo-capturing and / or text-submission functionality. In this embodiment, a worker experiencing a problem with a resource may (1) scan the barcode on a resource (e.g., a tractor with a flat tire) using the barcode scanning functionality and (2) capture an image of the resource (e g., showing the problem with the resource) and / or submit text (e g., indicating the problem with the resource) using the photo-capturing and / or textsubmission functionality of the problem-report interface.
[0033] As depicted in FIG. 1, system 100 can include a network 128 to facilitate communications among the various devices within the system 100. Network 128 can be or include any one or more wired and / or wireless, local- and / or wide-area network, including one or more enterprise networks and / or the Internet.
[0034] While the illustration of FIG. 1 includes task management facility 1 14 on server computing device 102. embodiments are not so limited. In other embodiments, task management facility 114 can be implemented on worker device 118, a device associated with resource 124, a sensor, and / or a combination of multiple of devices. In some embodiments,the various user interfaces described herein may not be separate from task management facility 114, but instead may be implemented as a single program or software application.
[0035] FIG. 2 and FIG. 3 provide flow charts of processes 200 and 300, respectively, that may be implemented in some embodiments (e.g., by a system such as system 100 in FIG. 1) for computerized workplace management. Processes 200 and 300 can be implemented in some embodiments by task management facility7114 and / or trained model 116, described in connection with FIG. 1, on a computer-readable storage media. Each of these processes will now be described, in turn.WORKER SENTIMENT TASK ASSIGNMENT
[0036] Process 200 in FIG. 2 begins with step 201, where the system receives a digital image of a worker face (e.g., digital image 110 of worker 120 in FIG. 1). The system may receive the digital image in a variety of ways. In some examples, the system may receive the digital image via a mobile device of the worker (e.g., worker device 118). In some such examples, the mobile device may present an interface that prompts the worker to capture the digital image (e.g., using a camera of the mobile device). In one embodiment, the prompt may include a capture initiation element configured to trigger the camera of the mobile device to capture the digital image when selected via user input. In another embodiment, the image may be captured automatically (e.g., in response to detecting that the worker’s face is within a field of view of the camera while the interface is displayed). In some examples, the mobile device may have installed a mobile application managed by the system (e.g., a task assignment application associated with worker interface facility 122 in FIG. 1) configured to present the interface and / or to transmit the captured image to server computing device 102.
[0037] The worker’s mobile device may present the interface (e.g.. with the prompt to capture the digital image) in a variety of contexts (e.g., in response to a variety of contextual triggers). In some examples, the mobile device may present the interface in response todetermining that the worker has completed an assignment (e.g., as part of an effort to ascertain how the worker’s emotional state is affected by the assignment). Additionally or alternatively, the mobile device may present the interface at a time at which a new task is to be assigned to the worker (e.g., as part of an effort to take the current emotional state of workers into account when making new assignments). In one such example, the mobile device may present the interface upon completion of a task by the worker (e.g., in response to receiving user input indicating that the task is completed) in order for the worker to receive an assignment for a new task and / or in response to receiving user input requesting a new task assignment (e.g., requiring the worker to capture the image of the worker’s face before providing the worker with the new task assignment). In certain embodiments, the interface may present a first prompt to capture a digital image of the worker’s face prior to completing a particular task assigned to the worker and a second prompt to capture an additional digital image of the worker’s face after completing the particular task. In some examples, the system may receive multiple digital images captured during different time periods (e.g., before and after a task as just described, at different times in a day, on different days, at designated intervals, etc ). In such examples, the digital images captured over time may be analyzed for a variety of information, as will be discussed later in step 202.
[0038] At step 202 of process 200, the system selects a task, using a trained model (e.g., trained model 116 in FIG. 1), to assign to the worker based on a variety of factors that may include a facial expression extracted from the digital image. For example, the system may select a task based on factors such as employee skills, past performance, availability, experience, role within the organization, and other factors, and may additionally consider facial expression. The task may be selected for the worker (at a particular time) from among a set of multiple tasks to be assigned at the particular time.
[0039] The system may use the trained model for expression-based task selection in a variety of ways. In some examples, the system may use the trained model to extract the facial expression from the digital image. Then, the system may determine (e.g., from the facial expression extracted from the digital image) a mood (e.g., a sentiment) of the worker at the time the digital image was taken. In some examples in which the digital image is taken at a current time to select a task at the current time, the system may use the mood determined from the facial expression as an indication of the worker’s current mood. In some examples in which the digital image is taken after the completion of a task, the system may use the mood as an indication of how the worker feels after completing the task (e.g., to learn what tasks the worker enjoys doing or feels competent doing). Additionally or alternatively, in examples in which multiple digital images are captured, the system may use the trained model to determine a mood-change (e.g., an emotional downgrade and / or an emotional upgrade) between the mood determined from the facial expression extracted from the digital image and a previous mood determined from a facial expression extracted from a previously captured digital image. In some such examples, the digital image may represent an image taken after a previous task is completed and the previous digital image may represent an image taken prior to the previous task being performed (e.g., to determine a change in mood correlating w ith the previous task).
[0040] In certain examples in which the system receives digital images at multiple different time periods, the system may use the trained model to (1) extract an expression of the worker face from each of the digital images and (2) identify, from the extracted expressions, a mood of the worker during each of the different time periods. Additionally, the system may identify (e.g.. using the trained model) a performance metric for the worker for each of the different time periods. Then, the system may generate (e.g., using the trained model) correlations between the identified moods and the identified performance metrics, which may be used toselect future task assignments for the worker and / or to generate an employee performance report for the worker.
[0041] Upon (or as part of) determining the mood of the worker from the extracted facial expression, the system may select the task for the worker based on the determined mood. In some examples, the system may use a trained model to select the task (e.g., providing the determined mood, determined mood-change, and / or generated correlations just described as input to the trained model and receiving the task as an output from the trained model). In some examples, the same trained model may be used to determine the mood and to select the task. In other examples, these may represent separately trained models.
[0042] In some examples, the trained model may select the task for the worker based solely on the determined mood. In other examples, the trained model may select the task based on multiple inputs (e.g., including the identified mood). In some examples, the trained model may select the task for the worker based on and / or in response to a triggering event (e.g., in addition or as an alternative to selecting the task based on the determined mood). The triggering event may represent any type or form of event. Examples of a triggering event may include, without limitation, a completion of a previous task, a status of a resource (e.g., a determination that a resource needed to complete the task is available or a resource needed to complete another task is unavailable), or an event designated as a problematic event.
[0043] In some examples in which the triggering event represents a problematic event, the system may (e.g., using a trained model) (1) identify one or more ramifications of the triggering event and / or (2) identify’ a set of tasks predicted to mitigate the ramifications. In these examples, the set of tasks may include the task assigned to the worker and the system may select the task for the worker as part of a mitigation process triggered by a detection of the problematic event. In one specific example, the system may identify, as a ramification of a problematic event, that a resource needed to complete a particular task will be unavailable.In response, the system may (1) identify one or more other resources that are available following the triggering event (e.g., notwithstanding the triggering event) and (2) select, for the worker, a task associated with one or more of the resources identified as available following the triggering event. In one such example, the particular task may represent a task that w as scheduled to be assigned to the worker prior to a detection of the problematic event and selecting the task for the w orker may represent a deviation from what w as previously scheduled. (Implementations involving triggering events and unavailable resources will also be discussed later in connection with FIG. 3).
[0044] In addition (or as an alternative) to selecting the task for the worker based on the facial expression and / or a triggering event, in some examples, the system may select the task for the w orker based on an efficiency metric generated for the worker. The efficiency metric may represent any indication of w orker efficiency (e.g., time taken to complete a previous task, an average time taken to complete a set of previous tasks, an output of the worker while performing a previous task, etc ). In examples in which the task requires use of a resource, the trained model may select the task based on a resource utilization metric. The resource utilization metric may represent any indication of the use of a resource (e.g., an indication of equipment availability, a history of equipment usage, etc.).
[0045] After selecting the task for the worker, the system may, at step 203, output the task assigned to the w orker. The system may output the task in a variety of ways. In some examples, the mobile device of the user may present the task via an interface displayed via a display element of the worker’s mobile device (e.g.. an interface of a task management mobile application installed on the worker’s mobile device).EVENT-BASED TASK ASSIGNMENT
[0046] In some examples, the disclosed system may generate trigger-based task assignments. In these examples, a task may be triggered by a variety of triggering events. For example, amaintenance task may be triggered by information (e.g., collected by a sensor and / or from a worker via input to an interface) indicative of a maintenance need of a resource. As a specific example, data collected by a sensor indicating that the tire pressure of a tire of a truck is low may trigger the generation of a task to fill the tire with air. As another specific example, data submitted by a worker indicating that a tire of a truck is flat may trigger the generation of a task to change the tire.
[0047] In some examples, an emergency task may be triggered by information (e.g., collected by a sensor and / or from a worker via input to an interface) indicative of a problematic (e.g., time sensitive) event. As a specific example, a weight sensor may indicate a decrease in a weight of a truck at a location, detected via a GPS sensor, other than a designated delivery location. In this specific example, the decrease in weight may trigger the generation of a theft-remediation task (e.g., warning a manager of a potential problem and / or triggering a camera of a device to capture a video and / or an image). The disclosed system may be configured to detect problematic events in a variety of ways. In some examples, the system may identify patterns (e.g., employee action patterns, task completion patterns, etc.) based on historical data (e g., inputs received by the system over time). Then, the system may detect anomalies (i.e., deviations from the determined patterns) and designate any anomaly as a potentially problematic event. Additionally or alternatively, the system may be programmed to determine that specific (e.g., manually designated) events are problematic. In some examples, the detection of any event designated as potentially problematic may trigger a same generic response (e.g.. transmitting a digital warning to a manager). Additionally or alternatively, an event may trigger a specific response (e.g.. one of multiple different potential responses). In some such examples, a specific response may be manually assigned and / or determined via a machine learning model.
[0048] In some examples, the system may assign tasks dynamically (e.g.. in real-time). In one such example, each task assigned by the system may be assigned in response to a triggering event (e.g., a worker requesting and / or completing a new task, the detecting of a workplace need, the detecting of a problematic event, etc.).
[0049] In many instances (as mentioned previously), a triggering event may trigger a multitask and / or multi-resource response. Relatedly, in examples in which the system maintains a default schedule of tasks, one (unplanned) triggering event may affect many scheduled tasks. As a specific example, a triggering event (e.g., detecting a truck’s flat tire) may cause a resource (e.g., the truck) to be unavailable for a subsequent scheduled task (e.g., delivering a material). This may affect an additional subsequent scheduled that relies on a result of the subsequent scheduled task (e.g., a task that uses the material). In such instances, detecting the availability (or unavailability) of a resource may trigger a task assignment or a change in task assignment.
[0050] Process 300 in FIG. 3 describes a method for dynamically generating tasks based on resource availability. Process 300 begins with step 301, where the system detects that a resource, associated with a task scheduled to be performed by a worker at a particular time, will be unavailable at the particular time. The resource may represent any type or form of resource used in a workplace including, without limitation, equipment (e.g., machinery7, a vehicle, etc.), a material (e.g., a building material, gasoline, etc.), and / or one or more additional workers.
[0051] In some examples, the system may identify the scheduled task from a data store of tasks maintained for a period (e.g., a day, a week, or a month), such as data store 106 in FIG. 1. This data store may include a variety of information relevant to scheduled tasks including, without limitation, a list of tasks (e.g.. entered by an organizer) to be performed within a period (e.g., organized into a default schedule), an indication of relationships between tasks(e.g., that a specified task can only be completed after a specified additional task has been completed), a list of resources required to perform each task, a list of currently available resources, a status of previously assigned tasks (e.g., completed, in progress, delayed), etc.
[0052] The unavailable resource may be unavailable for any reason. Exemplary' reasons include, without limitation, a prior task, which uses the resource, taking longer to complete than previously predicted, a delay in the delivery of a material, weather conditions, damage to a resource, etc. The system may detect the unavailability7of the resource in a variety of ways. For example, as previously discussed, a yvorker may submit information indicating that the resource is unavailable (e.g., via a mobile application installed on a device of the yvorker) and / or the resource may be associated with a sensor that collects data indicating that the resource is unavailable. As a specific example, the resource may represent a truck and information collected from a GPS sensor may indicate that the truck is not located in a position from yvhich the truck can be used for the scheduled task.
[0053] In response to detecting that the resource will be unavailable at the particular time, the system may (at step 302) identify, for the particular time, a set of one or more tasks associated with one or more resources predicted to be available at the particular time and (at step 303) assign the worker to perform a task from the set of one or more tasks at the particular time (instead of the task scheduled to be performed by the worker at the particular time). The newly assigned task may be selected from the set of one or more tasks in a variety of yvays (e.g., using one or more of the inputs and / or trained models discussed previously).
[0054] In some examples, the scheduled task may be associated with both the unavailable resource and an additional resource that remains available (e.g.. notwithstanding the triggering event). In these examples, the system may, in response to detecting that the additional resource is available and assigning the worker to perform another task in place of the scheduled task, release the additional resource to be assigned for use in another task.
[0055] In some examples, the disclosed system may dynamically (e.g., continually) collect data relating to the resources in a workplace, enabling the system to (1) detect any deviation from a default task schedule (e.g., triggered by a triggering event as described above) and (2) determine an optimal way to adjust tasks in the default task schedule (e.g., changing an order in which tasks are to be completed, which equipment and / or worker to assign to a particular task, etc.) in response to a detected deviation. Given the interconnected nature of many workplace tasks, one deviation may have a rippling effect, implicating many tasks. For example, an unavailable resource may cause a first worker, scheduled to perform a task that requires the unavailable resource, to need to be reassigned to another task. This reassignment may affect a second worker (e.g., who was previously assigned to perform the other task) such that the second worker must also be reassigned to a new task. As another example, a task that requires an unavailable resource may need to be pushed back to a future time (e.g., a time at which the unavailable resource becomes available). In this example, other tasks may have been scheduled for the future time and those other tasks will need to be rearranged to accommodate the completion of the task at the future time.
[0056] In some examples, the disclosed system may analyze a set of the tasks within a workplace to identify one or more features of each task. Then, the system may cluster tasks by feature. This clustering may enable the system to (1) identify issues (e.g., by detecting anomalies for a task when compared against other tasks within a particular cluster) and (2) formulate effective solutions (e.g., when a series of scheduled tasks needs to be dynamically adjusted).ILLUSTRATIVE COMPUTER SYSTEMS
[0057] Techniques operating according to the principles described herein may be implemented in any suitable manner. Included in the discussion above are a series of flow charts showing the steps and acts of various processes for workplace management. Theprocessing and decision blocks of the flow charts above represent steps and acts that may be included in algorithms that carry out these various processes. Algorithms derived from these processes may be implemented as software integrated with and directing the operation of one or more single- or multi-purpose processors, may be implemented as functionally-equivalent circuits such as a Digital Signal Processing (DSP) circuit or an Application-Specific Integrated Circuit (ASIC), or may be implemented in any other suitable manner. It should be appreciated that the flow charts included herein do not depict the syntax or operation of any particular circuit or of any particular programming language or type of programming language. Rather, the flow charts illustrate the functional information one skilled in the art may use to fabricate circuits or to implement computer software algorithms to perform the processing of a particular apparatus carrying out the types of techniques described herein. It should also be appreciated that, unless otherwise indicated herein, the particular sequence of steps and / or acts described in each flow chart is merely illustrative of the algorithms that may be implemented and can be varied in implementations and embodiments of the principles described herein.
[0058] Accordingly, in some embodiments, the techniques described herein may be embodied in computer-executable instructions implemented as software, including as application software, system software, firmware, middleware, embedded code, or any other suitable type of computer code. Such computer-executable instructions may be written using any of a number of suitable programming languages and / or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
[0059] When techniques described herein are embodied as computer-executable instructions, these computer-executable instructions may be implemented in any suitable manner, including as a number of functional facilities, each providing one or more operations tocomplete execution of algorithms operating according to these techniques. A “functional facility,” however instantiated, is a structural component of a computer system that, when integrated with and executed by one or more computers, causes the one or more computers to perform a specific operational role. A functional facility may be a portion of or an entire software element. For example, a functional facility' may be implemented as a function of a process, or as a discrete process, or as any other suitable unit of processing. If techniques described herein are implemented as multiple functional facilities, each functional facility7may be implemented in its own way; all need not be implemented the same way. Additionally, these functional facilities may be executed in parallel and / or serially, as appropriate, and may pass information between one another using a shared memory on the computer(s) on which they are executing, using a message passing protocol, or in any other suitable way.
[0060] Generally, functional facilities include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically, the functionality of the functional facilities may be combined or distributed as desired in the systems in which they operate. In some implementations, one or more functional facilities carrying out techniques herein may together form a complete software package. These functional facilities may, in alternative embodiments, be adapted to interact with other, unrelated functional facilities and / or processes, to implement a software program application.
[0061] Some exemplary functional facilities have been described herein for carrying out one or more tasks. It should be appreciated, though, that the functional facilities and division of tasks described is merely illustrative of the type of functional facilities that may implement the exemplary techniques described herein, and that embodiments are not limited to being implemented in any specific number, division, or type of functional facilities. In someimplementations, all functionalities may be implemented in a single functional facility. It should also be appreciated that, in some implementations, some of the functional facilities described herein may be implemented together with or separately from others (i. e. , as a single unit or separate units), or some of these functional facilities may not be implemented.
[0062] Computer-executable instructions implementing the techniques described herein (when implemented as one or more functional facilities or in any other manner) may, in some embodiments, be encoded on one or more computer-readable media to provide functionality to the media. Computer-readable media include magnetic media such as a hard disk drive, optical media such as a Compact Disk (CD) or a Digital Versatile Disk (DVD), a persistent or non-persistent solid-state memory (e.g., Flash memory, Magnetic RAM, etc.), or any other suitable storage media. Such a computer-readable medium may be implemented in any suitable manner, including as computer-readable storage media 406 of FIG. 4 described below (i.e., as a portion of a computing device 400) or as a stand-alone, separate storage medium. As used herein, “computer-readable media” (also called “computer-readable storage media”) refers to tangible storage media. Tangible storage media are non-transitory and have at least one physical, structural component. In a “computer-readable medium,” as used herein, at least one physical, structural component has at least one physical property that may be altered in some way during a process of creating the medium with embedded information, a process of recording information thereon, or any other process of encoding the medium with information. For example, a magnetization state of a portion of a physical structure of a computer-readable medium may be altered during a recording process.
[0063] In some, but not all, implementations in which the techniques may be embodied as computer-executable instructions, these instructions may be executed on one or more suitable computing device(s) operating in any suitable computer system, including the exemplary computer system of FIG. 1, or one or more computing devices (or one or more processors ofone or more computing devices) may be programmed to execute the computer-executable instructions. A computing device or processor may be programmed to execute instructions when the instructions are stored in a manner accessible to the computing device or processor, such as in a data store (e g., an on-chip cache or instruction register, a computer-readable storage medium accessible via a bus, a computer-readable storage medium accessible via one or more networks and accessible by the device / processor, etc.). Functional facilities comprising these computer-executable instructions may be integrated with and direct the operation of a single multi-purpose programmable digital computing device, a coordinated system of two or more multi-purpose computing device sharing processing power and jointly carrying out the techniques described herein, a single computing device or coordinated system of computing devices (co-located or geographically distributed) dedicated to executing the techniques described herein, one or more Field-Programmable Gate Arrays (FPGAs) for carrying out the techniques described herein, or any other suitable system.
[0064] FIG. 4 illustrates one exemplary implementation of a computing device in the form of a computing device 400 that may be used in a system implementing techniques described herein, although others are possible. It should be appreciated that FIG. 4 is intended neither to be a depiction of necessary components for a computing device to execute one or more of the facilities described in connection with FIG. 1 in accordance with the principles described herein, nor a comprehensive depiction.
[0065] Computing device 400 may comprise at least one processor 402, a network adapter 404, and a computer-readable storage medium 406. Computing device 400 may be, for example, a desktop or laptop personal computer, a personal digital assistant (PDA), a smart mobile phone, a server, a wireless access point or other networking element, or any other suitable computing device. Network adapter 404 may be any suitable hardware and / or software to enable the computing device 400 to communicate wired and / or wirelessly withany other suitable computing device over any suitable computing network. The computing network may include wireless access points, switches, routers, gateways, and / or other networking equipment as well as any suitable wired and / or wireless communication medium or media for exchanging data between two or more computers, including the Internet.Computer-readable media 406 may be adapted to store data to be processed and / or instructions to be executed by processor 402. Processor 402 enables processing of data and execution of instructions. The data and instructions may be stored on the computer-readable storage medium 406.
[0066] The data and instructions stored on the computer-readable storage media 406 may comprise computer-executable instructions implementing techniques which operate according to the principles described herein. In the example of FIG. 4, the computer-readable storage medium 406 stores computer-executable instructions implementing various facilities and storing various information as described above. The computer-readable storage medium 406 may store one or more of the facilities depicted in FIG. 1, which may implement one or more of the techniques described herein.
[0067] While not illustrated in FIG. 4, a computing device may additionally have one or more components and peripherals, including input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output. Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computing device may receive input information through speech recognition or in other audible format.OTHER EMBODIMENTS
[0068] From the foregoing description, it will be apparent that variations and modifications may be made to the embodiments described herein to adapt it to various usages and conditions. Such embodiments are also within the scope of the following claims.
[0069] It will be understood by one skilled in the art that this disclosure is not limited in its application to the details of construction and the arrangement of components set forth in the above description or illustrated in the drawings. The embodiments herein are capable of other embodiments, and capable of being practiced or carried out in various ways. Also, it will be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Unless limited otherw ise, the terms “connected,” “coupled,” and “mounted,” and variations thereof herein are used broadly and encompass direct and indirect connections, couplings, and mountings. In addition, the terms “connected” and “coupled” and variations thereof are not restricted to physical or mechanical connections or couplings. Further, terms such as up, down, bottom, and top are relative, and are employed to aid illustration, but are not limiting. Use of ordinal terms such as “first,” “second,” “third,” etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements. The word "exemplary ’ is used herein to mean serving as an example, instance, or illustration. Any embodiment, implementation, process, feature, etc. described herein as exemplary should therefore be understood to be anillustrative example and should not be understood to be a preferred or advantageous example unless otherwise indicated.
[0070] The above-presented description and figures are intended by way of example only and are not intended to limit the illustrative embodiments in any way except as set forth in the following claims. It is particularly noted that persons skilled in the art can readily combine the various technical aspects of the various elements of the various illustrative embodiments that have been described above in numerous other ways, all of which are considered to be within the scope of the claims.
[0071] The recitation of a listing of elements in any definition of a variable herein includes definitions of that variable as any single element or combination (or subcombination) of listed elements. The recitation of an embodiment herein includes that embodiment as any single embodiment or in combination with any other embodiments or portions thereof.
[0072] While some embodiments of the present disclosure have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the present disclosure. It should be understood that various alternatives to the embodiments described herein, or combinations of one or more of these embodiments or aspects described therein may be employed in practicing the present disclosure. It is intended that the following claims define the scope of the present disclosure and that methods and structures within the scope of these claims and their equivalents be covered thereby.
Claims
CLAIMSWhat is claimed is:
1. A computer-implemented method comprising: receiving a digital image of a worker face; selecting a task, using at least one trained model and from among a plurality of tasks to be assigned at a time, to assign to the worker based on a facial expression extracted from the digital image; and outputting the task assigned to the worker.
2. The computer-implemented method of claim 1 , wherein using the at least one trained model to select the task comprises: extracting, using the at least one trained model, the facial expression from the digital image; determining, using the at least one trained model and from the facial expression, a mood of the worker at a time the digital image was captured; and selecting the task assignment based on the mood of the worker at the time the digital image was captured.
3. The computer-implemented method of claim 1, wherein receiving the digital image of the worker face comprises: prompting the worker to capture the digital image using a mobile device of the worker; and receiving the digital image in response the worker capturing the digital image via the mobile device.
4. The computer-implemented method of claim 3. wherein prompting the worker to capture the digital image comprises prompting the worker to capture the digital image at the time to receive a task assignment for the time.
5. The computer-implemented method of claim 4. wherein prompting the worker to capture the digital image comprises prompting the worker to capture the digital image uponcompletion of a prior task by the worker to receive assignment of a subsequent task for the worker.
6. The computer-implemented method of claim 4, wherein using the at least one trained model to select the task based on the facial expression comprises using the at least one trained model to select the task based on a current mood determined from the facial expression.
7. The computer-implemented method of claim 3, wherein: prompting the worker to capture the digital image comprises prompting the worker to capture the digital image following completion of a previous task; the method further comprises prompting the worker to capture an additional digital image of the worker face prior to performing the previous task; the method further comprises using the at least one trained model to: extract the facial expression from the digital image and an additional facial expression from the additional digital image; identify a mood from the facial expression and an additional mood from the additional facial expression; and determine a mood-change between the mood and the additional mood; and selecting the task, using the at least one trained model based on the facial expression extracted from the digital image, comprises using the at least one trained model to select the task based on the determined mood-change.
8. The computer-implemented method of claim 7, wherein the mood-change comprises at least one of: an emotional downgrade; or an emotional upgrade.
9. The computer-implemented method of claim 1, further comprising:receiving a plurality of digital images of the worker’s face, wherein each digital image within the plurality' of digital images is received during a different time period; using the at least one trained model to: extract an expression of the worker face from each digital image within the plurality' of digital images; and identify, from the extracted expressions, a mood of the worker during each of the different time periods; identify ing a performance metric for the worker for each of the different time periods; and generating correlations between identified moods of the worker from the extracted expressions and the identified performance metrics.
10. The computer-implemented method of claim 9, further comprising generating an employee performance report comprising the correlations between the identified moods and the identified performance metrics.
11. The computer-implemented method of claim 9, wherein: the plurality of digital images comprises the digital image; and selecting the task, using the at least one trained model based on the facial expression extracted from the digital image, comprises using the at least one trained model to select the task assignment based on one or more of the generated correlations.
12. The computer-implemented method of claim 1, wherein the at least one trained model selects the task assignment for the worker based additionally on a triggering event.
13. The computer-implemented method of claim 12. wherein the triggering event comprises at least one of: a completion of a previous task; a status of a resource needed to complete the task assignment; or an event designated as a problematic event.
14. The computer-implemented method of claim 13, wherein: the triggering event comprises an event designated as a problematic event; and the method further comprises generating, using the at least one trained model, a plurality of tasks predicted to mitigate one or more ramifications of the triggering event, the plurality of tasks comprising the task assigned to the worker.
15. The computer-implemented method of claim 14, wherein generating the plurality' of tasks predicted to mitigate the one or more ramifications comprises: detecting the one or more ramifications, the detecting of the one or more ramifications comprising detecting, as a ramification of the triggering event, unavailability of a resource needed to complete a particular task; in response to detecting the unavailability of the resource, identifying one or more other resources that are available following the triggering event; and selecting, as the task assigned to the worker, a task associated with one or more of the other resources identified as available following the triggering event.
16. The computer-implemented method of claim 15, wherein the particular task comprises a task that was scheduled to be assigned to the worker prior to a detection of the triggering event.
17. The computer-implemented method of claim 1, wherein the at least one trained model selects the task for the worker based additionally on an efficiency metric generated for the worker.
18. The computer-implemented method of claim 1, wherein: the task comprises use of a resource; and the at least one trained model selects the task for the worker based additionally on a resource utilization metric.
19. A computer-implemented method comprising:in response to detecting that a resource, associated with a task scheduled to be performed by a worker at a particular time, will be unavailable at the particular time: identifying, for the particular time, a set of one or more tasks associated with one or more resources predicted to be available at the particular time; and assigning the w orker to perform a task from the set of one or more tasks at the particular time instead of the task scheduled to be performed by the w orker at the particular time.
20. The computer-implemented method of claim 19, wherein at least one of the unavailable resource or the one or more available resources comprise at least one of: equipment; material; or one or more additional workers.
21. The computer-implemented method of claim 19, wherein detecting that the resource, associated with the task scheduled to be performed at the particular time, will be unavailable at the particular time comprises determining that a prior task, associated with the detected resource, will take longer to perform than previously predicted.
22. The computer-implemented method of claim 19, further comprising: detecting that an additional resource, associated with the task scheduled to be performed at the particular time, is available to be used for the scheduled task at the particular time; in response to assigning the w orker to perform the task from the set of one or more tasks, instead of the scheduled task, releasing the additional resource to be assigned for use in another task.
23. At least one computer-readable storage medium having encoded thereon executable instructions that, when executed by at least one processor, cause the at least one processor to carry out a method, the method comprising or one a combination of the methods of claims 1-22.
24. An apparatus comprising: at least one processor; and at least one computer-readable storage medium having encoded thereon executable instructions that, when executed by the at least one processor, cause the at least one processor to carry out a method, the method comprising or one a combination of the methods of claims 1-22.
Citation Information
Patent Citations
Audio and video program recording, editing and playback systems using metadata
US20080092168A1
Automated responses to projected contact center agent fatigue and burnout
US20160180277A1
Personal monitoring system
US20200281480A1
Architecture for scalable video conference management
US20210185276A1