Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
REAL TIME ANOMALY DETECTION SYSTEMS AND METHODS
Document Type and Number:
WIPO Patent Application WO/2019/090264
Kind Code:
A1
Abstract:
The systems and methods provide an action recognition and analytics tool for use in manufacturing, health care services, shipping, retailing and other similar contexts. Machine learning action recognition can be utilized to determine cycles, processes, actions, sequences, objects and or the like in one or more sensor streams. The sensor streams can include, but are not limited to, one or more video sensor frames, thermal sensor frames, infrared sensor frames, and or three-dimensional depth frames. The analytics tool can provide for process validation, anomaly detection and in-process quality assurance.

Inventors:
AKELLA PRASAD NARASIMHA (US)
ASHOK ANANYA HONNEDEVASTHANA (IN)
CHAUDHURY KRISHNENDU (US)
GUPTA ASHISH (US)
NARUMANCHI SUJAY VENKATA KRISHNA (IN)
PRAGER DAVID SCOTT (US)
SHANKAR DEVASHISH (IN)
UGGIRALA ANANTH (US)
CHHABRA YASH RAJ (IN)
ASSOUL ZAKARIA IBRAHIM (US)
GUPTA SAMEER (US)
Application Number:
PCT/US2018/059273
Publication Date:
May 09, 2019
Filing Date:
November 05, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
DRISHTI TECH INC (US)
International Classes:
G05B19/418; G06K17/00; G06N99/00; G06Q10/06; G06Q50/04; G06T7/00; G06V10/25
Foreign References:
US20130307693A12013-11-21
US20120225413A12012-09-06
EP2626757A12013-08-14
US20060224254A12006-10-05
US20060241792A12006-10-26
US20120197898A12012-08-02
US20140222813A12014-08-07
US20100082512A12010-04-01
US20090089227A12009-04-02
US20140172357A12014-06-19
Attorney, Agent or Firm:
MURABITO, Anthony C. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. An anomaly detection method comprising:

accessing a representative data set including one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters for a previous portion of one or more sensor streams; receiving in real time a current data set including one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters for a current portion of the one or more sensor streams;

comparing the current data set to the representative data set; and

outputting a result of the comparison of the current data set to the representative data set.

2. The method according to Claim 1 , where comparing the current data set to the representative data set includes:

generating a representation including a finite state machine and a state transition map based on the representative data set; and

inputting the current data set to the representation including the finite state machine and the state transition map.

3. The method according to Claim 1 , wherein comparing the current data set to the representative data set comprises determining in real time one or more differences based on one or more corresponding error bands.

4. The method according to Claim 3, wherein outputting the result of the comparison includes outputting in real time feedback to one or more actors associated with the determined one or more differences.

5. The method according to Claim 1 , wherein comparing the current data set to the representative data set comprises validating that the current data set conforms to the

representative data set within one or more corresponding error bands.

6. The method according to Claim 1, wherein comparing the current data set to the representative data set comprises detecting one or more types of differences from a group including object deviations, action deviations, sequence deviations, process deviations and timing deviations.

7. The method according to Claim 1, wherein the representative data set and the previous portion of one or more sensor streams are blockchained.

8. One or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform an anomaly detection method comprising:

accessing a representative data set from one or more data structures, the one or more data structures including a plurality of sensor streams, and a plurality of data sets including one or more indicators of at least one of once or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters indexed to corresponding portions of the plurality of sensor streams stored;

receiving in real time one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters associated with a current portion of the plurality of sensor streams;

comparing the one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters associated with the current portion of the plurality of sensor streams to the representative data set; and

outputting a result of the comparison.

9. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the anomaly detection method according to Claim 8, wherein comparing the one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters associated with a current portion of the plurality of sensor streams to the representative data set comprises determining in real time one or more differences based on one or more corresponding error bands.

10. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the anomaly detection method according to Claim 9, wherein outputting the result comprises outputting feedback in real time to one or more actors associated with the determined one or more differences.

11. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the anomaly detection method according to Claim 8, wherein comparing the one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters associated with a current portion of the plurality of sensor streams to the representative data set comprises validating that the one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters associated with a current portion of the plurality of sensor streams conform to the representative data set within one or more corresponding error bands.

12. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the anomaly detection method according to Claim 8, wherein comparing the one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters associated with a current portion of the plurality of sensor streams to the representative data set comprises detecting one or more types of differences selected from a group including instruction deviations, timing deviations, sequence deviations, and process deviations.

13. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the anomaly detection method according to Claim 8, further comprising:

storing the current portion of the plurality of sensor streams in the data structure; and storing the one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters associated with a current portion of the plurality of sensor streams in the data structure indexed to the corresponding portions of the plurality of sensor streams.

14. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the anomaly detection method according to Claim 8, further comprising: receiving one or more indicators from an actor in response to outputting the results of the comparison.

15. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 14, further comprising:

updating the one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters associated with a current portion of the plurality of sensor streams based on the one or more indicators received from the actor.

16. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 14, further comprising:

updating the representative data set based on the one or more indicators received from the actor.

17. A system comprising:

one or more sensors;

one or more data storage units; and

one or more engines configured to;

receive one or more sensor streams from the one or more sensors; determine one or more indicators of at least one of one or more of cycles of one or more processes including one or more actions arranged in one or more sequences and performed on one or more objects, and one or more parameters in the one or more sensor streams;

access a representative data set from the data structure;

compare the one or more indicators of at least one of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters in the one or more sensor streams to the representative data set; and

output a result of the comparison of the one or more indicators of at least one of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters in the one or more sensor streams to the representative data set.

18. The system of Claim 17, further comprising:

one or more networks configured to communicatively couple the one or more sensors, the one or more data storage units, and the one or more engines.

19. The system of Claim 18, further comprising:

one or more data compression units communicatively coupled between the one or more sensors and the one or more networks, the one or more data compression units configured to compress data of the one or more sensor streams before transmission across the network.

20. The system of Claim 17, wherein the plurality of sensors are disposed at one or more stations.

21. The system of Claim 17, wherein the one or more engines are further configured to receive one or more indicators from an actor in response to the results of the comparison of the one or more indicators of at least one of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters in the one or more sensor streams to the representative data set.

22. A method of creating work charts comprising:

receiving one or more given indicators or criteria;

accessing one or more given data sets based on the one or more given indicators or criteria, wherein the one or more given data sets include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters;

determining a representative data set from the one or more given data sets; and creating a work chart from the representative data set, wherein the work chart include a plurality of work elements and dependencies between the work elements.

23. The method according to Claim 22, wherein a subject of the work chart comprises an article of manufacture, a health care service, a shipping transaction or a retailing transaction.

24. The method according to Claim 22, wherein the work chart is organized based on a lean framework including value added and non-value added, wherein the non-value added includes idle, walking and necessary.

25. The method according to Claim 22, wherein the one or more given data sets further includes the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters indexed to corresponding portions of one or more sensor streams.

26. The method according to Claim 22, further comprising:

receiving a selection of a work element;

retrieving one or more indicators of at least one of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or

more objects, one or more parameters indexed by the selected model element; and

outputting the one or more indicators of the at least one of one or more of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, one or more parameters, or corresponding portions of the plurality of sensor streams for the selected model element.

27. The method according to Claim 22, further comprising:

retrieving corresponding portions of the one or more sensor streams indexed by the selected model element; and

outputting the corresponding portions of the one or more sensor streams indexed by the selected model element.

28. The method according to Claim 22, wherein the one or more given data sets and the corresponding portions of one or more sensor streams are blockchained.

29. One or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform an action recognition and analytics method of creating work charts comprising:

receiving one or more given indicators or criteria

accessing one or more given data sets based on the one or more given indicators or criteria, wherein the one or more given data sets include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters indexed to corresponding portions of one or more sensor streams;

statistically analyzing the one or more given data sets based on the one or more given indicators or criteria to determine a representative data set; and

creating a work chart from the representative data set., wherein the work chart includes a plurality of work element and dependencies between the work elements.

30. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method of creating work charts according to Claim 29, wherein a subject of the one or more given data sets comprises an article of manufacture, a health care service, a shipping transaction or a retailing transaction.

31. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method of creating work charts according to Claim 29, wherein the work chart is organized based on a lean framework including value added and non-value added.

32. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method of creating work charts according to Claim 29, wherein the non-value added includes idle, walking and necessary.

33. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method of creating work charts according to Claim 29, further comprising:

receiving a selection of a work element; and

outputting the one or more indicators of the at least one of one or more of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, one or more parameters, or corresponding portions of the plurality of sensor streams for the selected model element.

34. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method of creating work charts according to Claim 33, wherein the one or more indicators of corresponding ones of the one or more cycles, the one or more processes, the one or more actions, the one or more sequences, the one or more objects, and the one or more parameters are indexed to corresponding portions of the plurality of sensor streams by corresponding time stamps.

35. A system comprising:

one or more data storage unit;

one or more interfaces; one or more engines configured to;

receive one or more given indicators or criteria;

access one or more given data sets stored on the one or more data storage units based on the one or more given indicators or criteria, wherein the one or more given data sets include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters, indexed to corresponding portions of one or more sensor streams;

determine a representative data set from the one or more given data sets;

create a work chart from the representative data set, wherein the work chart include a plurality of work elements and dependencies between the work elements; and

output the work chart in a graphical user interface on the one or more interfaces.

36. The system of Claim 35, wherein the one or more given data sets and the corresponding portions of one or more sensor streams are blockchained.

37. The system of Claim 35, wherein the subject of the one or more sensor streams comprises an article of manufacture, a health care service, a shipping transaction or a retailing transaction.

38. The system of Claim, 35, wherein the identifiers of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters are indexed to corresponding portions of the one or more sensor streams by corresponding time stamps.

39. The system of Claim 35, wherein the work chart is organized based on a lean framework including value added and non-value added.

40. The system of Claim 35, wherein the non-value added includes idle, walking and necessary.

41. The system of Claim 35, wherein the one or more analytics front-end units are further configured to:

receive a selection of a work element;

retrieve one or more indicators of at least one of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or

more objects, one or more parameters and the corresponding portions of one or more sensor streams indexed by the selected model element from the one or more data structures store on the one or more data storage units; and

output the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, one or more parameters, or corresponding portions of the plurality of sensor streams for the selected model element in a graphical user interface on the one or more interfaces.

42. An action recognition and analytics method comprising:

receiving one or more sensor streams;

receiving in real time one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters for a corresponding instance of a subject associated with a current cycle in the one or more sensor streams;

accessing a unique identifier of the corresponding instance of the subject;

storing the one or more sensor streams; and

storing a data set mapped to the unique identifier of the corresponding instance of the subject, wherein the data set includes the one or more indicators of at least one of one or more cycles, one of one or more processes, one or more actions, one or more sequences, and one or more objects, and one or more parameters indexed to corresponding portions of the one or more sensor streams for the corresponding instance of the subject associated with the current cycle.

43. The method according to Claim 42, wherein the one or more sensor streams are received from one or more stations.

44. The method according to Claim 42, wherein the subject comprises an article of manufacture, a health care service, a warehouse transaction, a shipping transaction, or a retail transaction.

45. The method according to Claim 42, wherein the storing the one or more sensor streams and the data set comprises blockchaining the one or more sensor streams and the data set.

46. The method according to Claim 42, wherein the unique identifier is generated using an algorithm based on the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters for the corresponding instance of the subject.

47. The method according to Claim 42, wherein the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters can include the unique identifier of the

corresponding instance of the subject.

48. The method according to Claim 42, wherein the unique identifier comprises a serial number, a patient identifier, a tracking number, or a purchase order of the corresponding instance of the subject.

49. The method according to Claim 42, wherein the one or more indicators of at least one of one or more cycles, one of one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters are indexed to corresponding portions of the one or more sensor streams by corresponding time stamps.

50. The method according to Claim 42, further comprising:

receiving one or more given indicators;

accessing one or more given data sets corresponding to one or more instance of a subject based on the one or more given indicators, wherein the one or more given data sets include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters indexed to corresponding portions of the one or more sensor streams;

accessing the corresponding portions of the one or more sensor streams indexed by the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters of the one or more given data sets; and

outputting the corresponding portions of the one or more sensor streams and the corresponding one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters for the corresponding one or more instances of the subject.

51. One or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform an action recognition and analytics method comprising:

receiving one or more sensor streams;

receiving in real time one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters for a corresponding instance of a subject associated with a current cycle in the one or more sensor streams;

accessing a unique identifier of the corresponding instance of the subject;

storing the one or more sensor streams in one or more data structures;

storing a data set mapped to the unique identifier of the corresponding instance of the subject in the one or more data structures, wherein the data set includes the one or more indicators of at least one of one or more cycles, one of one or more processes, one or more actions, one or more sequences, and one or more objects, and one or more parameters indexed to corresponding portions of the one or more sensor streams for the corresponding instance of the subject associated with the current cycle.

52. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 51 , wherein the unique identifier of the corresponding instance of the subject is received from a Manufacturing Execution System, a warehouse management system, or a patient management system.

53. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 51 , wherein the unique identifier comprises a serial number, a patient identifier, a tracking number, or a purchase order of the corresponding instance of the subject.

54. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 51 , wherein the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters are indexed to corresponding portions of the one or more sensor streams by corresponding time stamps.

55. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 51 , further comprising:

receiving a unique identifier of a given instance of a subject; accessing the one or more data structures to retrieve one or more given data sets corresponding to one or more instance of a subject based on the one or more given indicators, wherein the one or more given data sets include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters indexed to corresponding portions of the one or more sensor streams;

accessing the one or more data structures to retrieve the corresponding portions of the one or more sensor streams indexed by the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters of the one or more given data set; and

outputting the corresponding portions of the one or more sensor streams and the corresponding one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters for the corresponding one or more instances of the subject.

56. A system comprising:

one or more sensors;

one or more data storage unit;

one or more engines configured to;

receive one or more sensor streams from the one or more sensors; receive in real time one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters for a corresponding instance of a subject associated with a current cycle in the one or more sensor streams;

access a unique identifier of the corresponding instance of the subject;

store the one or more sensor streams in one or more data structures on the one or more data storage units; and

storing a data set mapped to the unique identifier of the corresponding instance of the subject in the one or more data structures on the one or more storage units, wherein the data set includes the one or more indicators of at least one of one or more cycles, one of one or more processes, one or more actions, one or more sequences, and one or more objects, and one or more parameters indexed to corresponding portions of the one or more sensor streams for the corresponding instance of the subject associated with the current cycle.

57. The system of Claim 56, wherein the subject comprises an article of manufacture, a health care service, a warehouse transaction, a shipping transaction or a retailing transaction.

58. The system of Claim 56, wherein the unique identifier of the corresponding instance of the subject is received from a Manufacturing Execution System, a warehouse management system, or a patient management system.

59. The system of Claim 156, wherein the unique identifier of the corresponding instance of the subject is generated by the one or more engines.

60. The system of Claim 156, wherein the unique identifier comprises a serial number, a patient identifier, a tracking number or a purchase order of the corresponding instance of the subject.

61. The system of Claim 156, wherein the indicators of the plurality of cycles, the plurality of processes, the one or more actions, the one or more sequences, the one or more objects, and the one or more parameters are indexed to corresponding portions of the one or more sensor streams by corresponding time stamps.

62. The system of Claim 156, further comprising:

one or more engines further configured to;

receive one or more given indicators;

access the one or more data structures on the one or more data storage units to retrieve one or more given data sets corresponding to one or more instance of a subject based on the one or more given indicators, wherein the one or more given data sets include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters indexed to corresponding portions of the one or more sensor streams;

access the one or more data structures on the one or more data storage units to retrieve the corresponding portions of the one or more sensor streams indexed by the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters of the one or more given data set; and

output the corresponding portions of the one or more sensor streams and the corresponding one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters for the corresponding one or more instances of the subject.

63. The system of Claim 62, wherein the corresponding portions of the sensor streams and the corresponding indicators of the plurality of cycles, the plurality of processes, the one or more actions, the one or more sequences, the one or more objects and the one or more parameters for the given instance of the subject are output in a graphical user interface in response to receiving the one or more given indicators.

64. A method comprising:

receiving one or more given indicators of a subject;

accessing a work model for the subj ect, the work model including a plurality of model elements and dependencies between the model elements;

determining a given model element associated with the one or more given indicators; determining one or more related model elements associated with the given model element by one or more of the dependencies between the model elements;

accessing one or more given data sets based on the one or more given indicators, wherein the one or more given data sets include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters indexed to corresponding portions of one or more sensor streams;

accessing the corresponding portions of one or more sensor streams indexed by the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters of the one or more given data sets;

outputting the work model including an identification of the given model element associated with the one or more given indicators, identification of one or more related model elements associated with the given model element, and pointers to the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters and corresponding portions of the one or more sensor streams for the given one or more data sets.

65. The method according to Claim 64, wherein the given one or more data sets and the corresponding portions of the one or more sensor streams are blockchained.

66. The method according to Claim 64, wherein the subject comprises an article of manufacture, a health care service, a warehouse transaction, a shipping transaction, or a retail transaction.

67. The method according to Claim 64, further comprising:

accessing a plurality of data sets including one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters indexed to corresponding portions of the one or more sensor streams; and

statistically analyzing the plurality of data sets to determine the work model.

68. The method according to Claim 64, further comprising:

receiving one or more select indicators;

accessing a plurality of data sets including one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters indexed to corresponding portions of the one or more sensor streams; and

statistically analyzing the plurality of data sets based on the one or more select indicators to determine the work model.

69. The method according to Claim 64, further comprising:

receiving a selection of a model element; and

outputting one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters, or corresponding portions of the one or more sensor streams for the selected model element.

70. The method according to Claim 64, wherein the work model, including the identifier of the given model element associated with the issue, is output in a graphical user interface.

71. One or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform an action recognition and analytics method comprising:

receiving one or more given indicators of a subject;

accessing a work model for the subj ect, the work model including model elements associated with a plurality of stations;

determining a given model element associated with the one or more given indicators; determining dependencies between the given model element and one or more related model elements associated with the issue;

accessing a given one or more data sets based on the one or more given indicators of the subject stored in one or more data structures, the data structure including one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters indexed to corresponding portions of one or more sensor streams;

accessing the corresponding portions of one or more sensor streams indexed by the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters of the one or more given data sets

outputting a graphical representation of the work model including identification of the given model element associated with the one or more given indicators, identifications of the one or more related model elements associated with the issue, and pointers to the one or more indicators of the at least one or more cycles, one of one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters and the corresponding portions of one or more sensor streams.

72. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 71 , further comprising:

receiving a selection of a model element in the graphical representation; and outputting one or more indicators of the at least one of one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters, or corresponding portions of one or more sensor streams for the selected model element.

73. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 71 , further comprising:

accessing the plurality of data sets including one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters indexed to corresponding portions of the one or more sensor streams; and

statistically analyzing the plurality of data sets to determine the work model.

74. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 71 , wherein the subject comprises an article of

manufacture, a health care service, a warehouse transaction, a shipping transaction, or a retail transaction.

75. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 71 , wherein the given indicator comprises a serial number, a patient identifier, a tracking number, or a purchase order of a corresponding instance of the subject.

76. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 75, wherein the given indicator is associated with a manufacturing issue with a given instance of the entity.

77. A system comprising:

one or more displays;

one or more data storage unit;

one or more engine configured to;

receive one or more given indicators of a subject;

access a work model for the subject, the work model including a plurality of model elements and dependencies between the model elements;

determine a given model element associated with the one or more given indicators;

determine one or more related model elements associated with the given model element by one or more of the dependencies between the model elements;

access one or more data sets, in one or more data structures stored on the one or more data storage units, based on the one or more given indicators , wherein the one or more data sets include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters indexed to corresponding portions of one or more sensor streams;

accessing the corresponding portion of one or more sensor streams in the one or more data structures stored on the one or more data storage units, wherein the corresponding portions of one or more sensor streams are indexed by the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters of the one or more given data sets

output a graphical representation of the work model including an identification of the given model element associated with the one or more given indicators on the one or more displays, identification of one or more related model elements associated with the given model element, and pointers to the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters and corresponding portions of the one or more sensor streams for the given data set.

78. The system of Claim 77, wherein the subject comprises an article of manufacture, a health care service, a warehouse transaction, a shipping transaction, or a retail transaction.

79. The system of Claim 78, wherein the given indicator is associated with an issue with a given instance of the entity.

80. The system of Claim 77, wherein the one or more engines are further configured to receive one or more select indicators;

access a plurality of data sets including one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters indexed to corresponding portions of the one or more sensor streams; and

statistically analyze the plurality of data sets based on the one or more select indicators to determine the work model.

81. The system of Claim 77, wherein the analytic front-end is further configured to:

receive a selection of a model element in the graphical representation; and

output one or more portions of the plurality of sensor streams from the given data set corresponding to the selected model element.

82. The system of Claim 81, wherein the analytic front-end is further configured to:

output one or more indicators of at least one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters from the given data set corresponding to the selected model element.

83. The system of Claim 77, wherein the given one or more data sets and the corresponding portions of the one or more sensor streams are blockchained.

84. A method comprising:

receiving one or more given indicators;

accessing a given one of one or more manifest data sets based on the one or more given indicators;

receiving in real time a package data set including one or more indicators of at least one of one or more objects and one or more parameters from one or more sensor streams for a current package;

comparing the given manifest data set to the package data set of the current package; and

outputting a result of the comparison of the given manifest data set to the package data set of the current package.

85. The method according to Claim 84, wherein the result of the comparison is output in real time to an actor assembling the current package if a deviation is determined.

86. The method according to Claim 85, wherein comparing the manifest data set to the package data set comprises detecting one or more types of differences from a group including object deviations and quantity deviations.

87. The method according to Claim 85, further comprising:

storing the one or more sensor streams in one or more data structures; and

storing the package data set of the current package indexed to corresponding portions of the one or more sensor streams in the one or more data structures.

88. The method according to Claim 84, further comprising:

blockchaining the one or more sensor streams in one or more data structures; and blockchaining the package data set of the current package indexed to corresponding portions of the one or more sensor streams in the one or more data structures.

89. The method according to Claim 84, further comprising:

receiving one or more indicators in response to outputting the results of the comparison.

90. The method according to Claim 89, further comprising:

updating the package data set of the current package based on the received one or more indicators.

91. The method according to Claim 84, further comprising:

receiving one or more given indicators;

accessing one or more given data sets corresponding to one or more instance of a subject based on the one or more given indicators, wherein the one or more given data sets include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters indexed to corresponding portions of the one or more sensor streams;

accessing the corresponding portions of the one or more sensor streams indexed by the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters of the one or more given data sets; and

outputting the corresponding portions of the one or more sensor streams and the corresponding one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters as a packing or un-packing record for the corresponding one or more instances of the subject.

92. One or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform an action recognition and analytics method comprising:

receiving one or more given indicators;

accessing given one of one or more a manifest data sets based on the one or more given indicators;

receiving in real time a package data set including one or more indicators of at least one of one or more objects and one or more parameters from one or more sensor streams for a current package;

comparing the given manifest data set to the package data set of the current package; and

outputting in real time a result of the comparison of the given manifest data set to the package data set of the current package.

93. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 92, wherein the result of the comparison is output to an actor assembling the current package if a deviation is determined.

94. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 93, wherein comparing the manifest data set to the package data set comprises detecting one or more types of differences from a group including object deviations and quantity deviations.

95. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 92, further comprising:

storing the one or more sensor streams in one or more data structures; and

storing the package data set of the current package indexed to corresponding portions of the one or more sensor streams in the one or more data structures.

96. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 92, further comprising:

blockchaining the one or more sensor streams in one or more data structures; and blockchaining the package data set of the current package indexed to corresponding portions of the one or more sensor streams in the one or more data structures.

97. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 92, further comprising:

receiving one or more indicators in response to outputting the results of the comparison.

98. The one or more non-transitory computing device-readable storage mediums storing instructions executable by one or more computing devices to perform the action recognition and analytics method according to Claim 97, further comprising:

updating the package data set of the current package based on the received one or more indicators.

99. A system comprising:

one or more sensors;

one or more engines configured to;

receive one or more given indicators;

access a given one of one or more manifest data sets based on the one or more given indicators;

receive a package data set including the one or more indicators of the one or more objects and one or more parameters of the current package for one or more sensor streams from the one or more sensors;

compare the given manifest data set to the package data set of the current package; and

output a result of the comparison of the given manifest data set to the package data set of the current package

100. The system of Claim 99, wherein the result of the comparison is output in real time to an actor assembling the current package if a deviation is determined.

101. The system of Claim 100, wherein comparing the manifest data set to the package data set comprises detecting one or more types of differences from a group including object deviations and quantity deviations.

102. The system of Claim 99, further comprising:

one or more storage devices; and

wherein the one or more engines are further configured to:

store the one or more sensor streams in one or more data structures on the data storage unit; and

store the package data set of the current package indexed to corresponding portions of the one or more sensor streams in the one or more data structures.

103. The system of Claim 99, wherein the one or more engines are further configured to:

blockchain store the one or more sensor streams in one or more data structures on the data storage unit; and

blockchain store the package data set of the current package indexed to corresponding portions of the one or more sensor streams in the one or more data structures.

104. The system of Claim 99, wherein the one or more engines are further configured to: receive one or more indicators in response to outputting the results of the comparison.

105. The system of Claim 104, wherein the one or more engines are further configured to: update the package data set of the current package based on the received one or more indicators.

106. A method comprising:

receiving one or more sensor streams with an engine;

utilizing the engine to identify one or more actions within the one or more sensor streams that are performed at a first station of a plurality of stations;

utilizing the engine to identify one or more actions within the one or more sensor streams that are performed at a second station of the plurality of stations;

storing in a data structure the received one or more sensor streams, the identified one or more actions performed at the first station, and the identified one or more actions performed at the second station, the identified one or more actions performed at each of the first and second stations are mapped to the one or more sensor streams;

utilizing the engine to characterize each of the identified one or more actions performed at each of the first and second stations to produce determined characterizations thereof; and based on one or more of the determined characterizations, automatically producing a recommendation, either dynamically or post-facto, to move at least one of the identified one or more actions performed at the second station to the first station to reduce cycle time.

107. The method of Claim 106, wherein the recommendation would result in the elimination of the second station.

108. The method of Claim 106, wherein the first and second stations are non-sequential.

109. The method of Claim 106, wherein the one or more of the determined characterizations comprise at least one action of the identified one or more actions performed at the second station cannot be moved because of a station capability constraint associated with the second station.

110. The method of Claim 106, wherein the one or more of the determined characterizations comprise a sequence constraint of the identified one or more actions performed at the second station.

111. The method of Claim 106, wherein the one or more sensor streams comprise video frames.

112. The method of Claim 106, wherein the one or more sensor streams comprise thermal sensor data.

113. The method of Claim 106, wherein the one or more sensor streams comprise force sensor data.

114. The method of Claim 106, wherein the one or more sensor stream comprise audio sensor data.

115. The method of Claim 106, wherein the one or more sensor streams comprise light sensor data.

116. The method of Claim 106, wherein the one or more sensor streams comprise haptic data.

117. The method of Claim 106, wherein the one or more of the determined characterizations comprise time taken to perform each of the identified one or more actions performed at the second station.

118. The method of Claim 106, further comprising:

utilizing the engine to propose one or more optimal designs for a new product introduction on an existing line.

119. The method of Claim 106, further comprising:

utilizing the engine to propose one or more optimal designs for one or more new lines comprising substantially the same actions the engine has previously collected data.

120. A system comprising:

a sensor;

a data storage unit; and

an engine coupled to the sensor and the data storage unit, the engine configured to: receive a sensor stream from the sensor;

identify one or more actions within the sensor stream that are performed at a first station of a plurality of stations;

identify one or more actions within the sensor stream that are performed at a second station of the plurality of stations;

store the received sensor stream, the identified one or more actions performed at the first station, and the identified one or more actions performed at the second station in one or more data structures on the data storage unit, the identified one or more actions performed at each of the first and second stations are mapped to the sensor stream;

characterize each of the identified one or more actions performed at each of the first and second stations to produce determined characterizations thereof; and

based on one or more of the determined characterizations, automatically produce a recommendation, either dynamically or post-facto, to move at least one of the identified one or more actions performed at the second station to the first station to reduce cycle time.

121. The system of Claim 120 further comprising:

a network configured to communicatively couple the sensor, the engine, and the data storage unit.

122. The system of Claim 121, further comprising:

a data compression unit communicatively coupled between the sensor and the network, the data compression unit configured to compress the data of the sensor stream before transmission across the network.

123. The system of Claim 120, wherein the recommendation would eliminate the second station.

124. The system of Claim 120, wherein the one or more of the determined characterizations comprise at least one action of the identified one or more actions performed at the second station cannot be moved because of equipment or physical limitations associated with the second station.

125. The system of Claim 120, wherein producing the recommendation further the one or more of the determined characterizations comprise a sequence constraint of the identified one or more actions performed at the second station.

126. The system of Claim 120, wherein the sensor stream comprises at least one of video frames, thermal sensor data, force sensor data, audio sensor data, and light sensor data.

127. The system of Claim 120, wherein the one or more of the determined characterizations comprise time taken to perform each of the identified one or more actions performed at the second station.

128. One or more non-transitory computing device-readable storage mediums storing instructions executable by one or more engines to perform a method comprising:

receiving one or more sensor streams with the one or more engines;

utilizing the one or more engines to identify one or more actions within the one or more sensor streams that are performed at a first station of a plurality of stations of a production line; utilizing the one or more engines to identify one or more actions within the one or more sensor streams that are performed at a second station of the plurality of stations of the production line;

storing in one or more data structures the received one or more sensor streams, the identified one or more actions performed at the first station, and the identified one or more actions performed at the second station, the identified one or more actions performed at each of the first and second stations are mapped to the one or more sensor streams;

utilizing the one or more engines to characterize each of the identified one or more actions performed at each of the first and second stations to produce determined

characterizations thereof; and

based on one or more of the determined characterizations, automatically producing a recommendation, either dynamically or post-facto, with the one or more engines to move at least one of the identified one or more actions performed at the second station to the first station to reduce cycle time of the production line.

Description:
Real Time Anomaly Detection Systems and Methods

BACKGROUND OF THE INVENTION

[0001] As the world's population continues to grow, the demand for goods and services continues to increase. Industries grow in lockstep with the increased demand and often require an ever-expanding network of enterprises employing various processes to accommodate the growing demand for goods and services. For example, an increased demand in automobiles can increase the need for robust assembly lines, capable of completing a larger number of processes in each station on the assembly line while minimizing anomalies and reducing completion times associate with each process. Typically, process anomalies are the result of an operator deviating from or incorrectly performing one or more actions. In addition, variances in the completion times of a process can be attributed to inadequate designs that result in an operator being challenged to execute the required actions in the required time. Quite often, if the number of actions per station increases either due to an increase in the complexity of the actions or a decrease in the time available in each station, the cognitive load on the operator increases, resulting in higher deviation rates.

[0002] Common quality improvement and process optimization methodologies, for use by manufacturing organizations, include Toyota's Toyota Production System and Motorola's Six- Sigma. The optimization methodologies such as Lean Manufacturing and Six-Sigma rely on manual techniques to gather data on human activity. The data gathered using such manual techniques typically represent a small and incomplete data set. Worse, manual techniques can generate fundamentally biased data sets, since the persons being measured may be "performing" for the observer and not providing truly representative samples of their work, which is commonly referred to as the Hawthome and Heisenberg effect. Such manual techniques can also be subject to substantial delays between the collection and analysis of the data.

[0003] There is currently a growth in the use of Industrial Internet of Things (II oT) devices in manufacturing and other contexts. However, machines currently only perform a small portion of tasks in manufacturing. Therefore, instrumenting machines used in manufacturing with electronics, software, sensors, actuators and connectivity to collect, exchange and utilize data is centered on a small portion of manufacturing tasks, which the Boston Consulting Group estimated in 2016 to be about 10% of the task or action that manufactures use to build products. Accordingly, IIoT devices also provides an incomplete data set.

[0004] Accordingly, there is a continuing need for systems and methods for collecting information about manufacturing, health care services, shipping, retailing and other similar context and providing analytic tools for improving the performance in such contexts. Amongst other reasons, the information could for example be utilized to improve the quality of products or services being delivered, for training employees, for communicating with customers and handling warranty claims and recalls.

SUMMARY OF THE INVENTION

[0001] The present technology may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the present technology directed toward anomaly detection.

[0002] In aspects, an action recognition and analytics system can be utilized to determine cycles, processes, actions, sequences, objects and or the like in one or more sensor streams. The sensor streams can include, but are not limited to, one or more frames of video sensor data, thermal sensor data, infrared sensor data, and or three-dimensional depth sensor data. The action recognition and analytics system can be applied to any number of contexts, including but not limited to manufacturing, health care services, shipping and retailing. The sensor streams, and the determined cycles, processes, actions, sequences, objects, parameters and or the like can be stored in a data structure. The determined cycles, processes, actions, sequences objects and or the like can be indexed to corresponding portions of the sensor streams. The action recognition and analytics system can provide for process validation, anomaly detection and in-process quality assurance in real time.

[0003] In one embodiment, an anomaly detection method can include accessing a representative data set including one or more identifiers of at least one of one or more processes, one or more actions, one or more sequences, and one or more objects. A current data set including one or more deep learning determined identifiers of at least one of one or more processes, one or more actions, one or more sequences, and one or more objects for a current portion of the one or more sensor streams can also be received. The current data set can be compared to the representative data set and the result of the comparison can be output for the control and or optimization of a corresponding manufacturing, health care services, shipping, retailing or other similar contexts. [0004] In another embodiment, an action recognition and analytics system can include one or more sensors disposed at one or more stations, one or more data storage units and one or more engines. The one or more engines can be configured to receive one or more sensor streams from one or more sensors and determine one or more indicators of at least one of one or more cycles of one or more processes including one or more actions arranged in one or more sequences and performed on one or more objects, and one or more parameters thereof in the one or more sensor streams. The one or more engines can also be configured to generate indicators of the one or more of the plurality of sensors, the plurality of sensor streams, the plurality of processes, the one or more actions, the one or more sequences, the one or more objects, the one or more cycles and the like. The one or more engines can also be configured to access a representative data set from the one or more data structures. Th one or more engines can also be configured compare the one or more indicators of at least one of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters in the one or more sensor streams to the representative data set and to output the results.

[0005] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006] Embodiments of the present technology are illustrated by way of example and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:

FIG. 1 shows an action recognition and analytics system, in accordance with aspect of the present technology.

FIG. 2 shows an exemplary deep learning type machine learning back-end unit, in accordance with aspects of the present technology.

FIG. 3 shows an exemplary Convolution Neural Network (CNN) and Long Short Term Memory (LSTM) Recurrent Neural Network (RNN), in accordance with aspects of the present technology.

FIG. 4 shows an exemplary method of detecting actions in a sensor stream, in accordance with aspects of the present technology. FIG. 5 shows an action recognition and analytics system, in accordance with aspects of the present technology.

FIG. 6 shows an exemplary method of detecting actions, in accordance with aspects of the present technology.

FIG. 7 shows an action recognition and analytics system, in accordance with aspects of the present technology.

FIG. 8 shows an exemplary station, in accordance with aspects of the present technology

FIG. 9 shows an exemplary station, in accordance with aspects of the present technology

FIG. 10 shows an exemplary station activity analysis method, in accordance with one embodiment.

FIG. 11 shows a method of process validation, anomaly detection and or quality assurance, in accordance with aspects of the present technology.

FIG. 12 shows an exemplary result of a comparison of the current data set to the

representation data set, in accordance with aspects of the present technology.

FIG. 13 shows another exemplary result of a comparison of the current data to the representative data set, in accordance with aspects of the present technology.

FIG. 14 shows yet another exemplary result of a comparison of the current data set to the representative data set, in accordance with aspects of the present technology.

FIGS. 15A and 15B show a method of creating work charts, in accordance with aspects of the present technology.

FIG. 16 shows an exemplary work chart, in accordance with aspects of the present technology.

FIG. 17 shows another an exemplary work chart, in accordance with aspects of the present technology.

FIG. 18 shows a method of birth certificate creation, in accordance with aspects of the present technology.

FIG. 19 shows a method for retrieving a birth certificate, in accordance with aspects of the present technology. FIG. 20 shows an exemplary birth certificate with corresponding portions of sensor data streams, in accordance with aspects of the present technology.

FIGS. 21 A and 21B show a method of establishing traceability, in accordance with aspects of the present technology.

FIG. 22 shows an exemplary work model, in accordance with aspects of the present technology.

FIG. 23 shows a method of generating a work model, in accordance with aspects of the present technology.

FIG. 24 shows a method of kitting products, in accordance with aspects of the present technology.

FIG. 25 shows an exemplary action recognition view, in accordance with aspects of the present technology.

FIG. 26 shows an exemplary packing or un-packing record with corresponding portions of sensor data streams, in accordance with aspects of the present technology.

FIG. 27 illustrates a dashboard interface in accordance with various embodiments of the present disclosure.

FIG. 28 illustrates the dashboard interface in accordance with various embodiments of the present disclosure.

FIG. 29 illustrates the dashboard interface in accordance with various embodiments of the present disclosure.

FIG. 30 is a flow chart of an exemplary method in accordance with various embodiments of the present disclosure.

FIG. 31 is a flow chart of an exemplary method in accordance with various embodiments of the present disclosure.

FIG. 32 is a flow chart of an exemplary method in accordance with various embodiments of the present disclosure.

FIG. 33 is a flow chart of an exemplary method in accordance with various embodiments of the present disclosure.

FIG. 34 shows an exemplary computing device, in accordance with aspects of the present technology. DETAILED DESCRIPTION OF THE INVENTION

[0007] Reference will now be made in detail to the embodiments of the present technology, examples of which are illustrated in the accompanying drawings. While the present technology will be described in conjunction with these embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present technology, numerous specific details are set forth in order to provide a thorough understanding of the present technology. However, it is understood that the present technology may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present technology.

[0008] Some embodiments of the present technology which follow are presented in terms of routines, modules, logic blocks, and other symbolic representations of operations on data within one or more electronic devices. The descriptions and representations are the means used by those skilled in the art to most effectively convey the substance of their work to others skilled in the art. A routine, module, logic block and/or the like, is herein, and generally, conceived to be a self-consistent sequence of processes or instructions leading to a desired result. The processes are those including physical manipulations of physical quantities. Usually, though not necessarily, these physical manipulations take the form of electric or magnetic signals capable of being stored, transferred, compared and otherwise manipulated in an electronic device. For reasons of convenience, and with reference to common usage, these signals are referred to as data, bits, values, elements, symbols, characters, terms, numbers, strings, and/or the like with reference to embodiments of the present technology.

[0009] It should be borne in mind, however, that all of these terms are to be interpreted as referencing physical manipulations and quantities and are merely convenient labels and are to be interpreted further in view of terms commonly used in the art. Unless specifically stated otherwise as apparent from the following discussion, it is understood that through discussions of the present technology, discussions utilizing the terms such as "receiving," and/or the like, refer to the actions and processes of an electronic device such as an electronic computing device that manipulates and transforms data. The data is represented as physical (e.g., electronic) quantities within the electronic device's logic circuits, registers, memories and/or the like, and is transformed into other data similarly represented as physical quantities within the electronic device.

[0010] As used herein, the use of the disjunctive is intended to include the conjunctive. The use of definite or indefinite articles is not intended to indicate cardinality. In particular, a reference to "the" object or "a" object is intended to denote also one of a possible plurality of such objects. It is also to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting.

[0011] As used herein the term process can include processes, procedures, transactions, routines, practices, and the like. As used herein the term sequence can include sequences, orders, arrangements, and the like. As used herein the term action can include actions, steps, tasks, activity, motion, movement, and the like. As used herein the term object can include objects, parts, components, items, elements, pieces, assemblies, sub-assemblies, and the like. As used herein a process can include a set of actions or one or more subsets of actions, arranged in one or more sequences, and performed on one or more objects by one or more actors. As used herein a cycle can include a set of processes or one or more subsets of processes performed in one or more sequences. As used herein a sensor stream can include a video sensor stream, thermal sensor stream, infrared sensor stream, hyperspectral sensor stream, audio sensor stream, depth data stream, and the like. As used herein frame based sensor stream can include any sensor stream that can be represented by a two or more dimensional array of data values. As used herein the term parameter can include parameters, attributes, or the like. As used herein the term indicator can include indicators, identifiers, labels, tags, states, attributes, values or the like. As used herein the term feedback can include feedback, commands, directions, alerts, alarms, instructions, orders, and the like. As used herein the term actor can include actors, workers, employees, operators, assemblers, contractors, associates, managers, users, entities, humans, cobots, robots, and the like as well as combinations of them. As used herein the term robot can include a machine, device, apparatus or the like, especially one programmable by a computer, capable of carrying out a series of actions automatically. The actions can be autonomous, semi- autonomous, assisted, or the like. As used herein the term cobot can include a robot intended to interact with humans in a shared workspace. As used herein the term package can include packages, packets, bundles, boxes, containers, cases, cartons, kits, and the like. As used herein, real time can include responses within a given latency, which can vary from sub-second to seconds. [0012] Referring to FIG. 1 an action recognition and analytics system, in accordance with aspect of the present technology, is shown. The action recognition and analytics system 100 can be deployed in a manufacturing, health care, warehousing, shipping, retail, restaurant or similar context. A manufacturing context, for example, can include one or more stations 105-115 and one or more actors 120-130 disposed at the one or more stations. The actors can include humans, machine or any combination therefore. For example, individual or multiple workers can be deployed at one or more stations along a manufacturing assembly line. One or more robots can be deployed at other stations. A combination of one or more workers and/or one or more robots can be deployed additional stations It is to be noted that the one or more stations 105-115 and the one or more actors are not generally considered to be included in the system 100.

[0013] In a health care implementation, an operating room can comprise a single station implementation. A plurality of sensors, such as video cameras, thermal imaging sensors, depth sensors, or the like, can be disposed non-intrusively at various positions around the operating room. One or more additional sensors, such as audio, temperature, acceleration, torque, compression, tension, or the like sensors, can also be disposed non-intrusively at various positions around the operating room.

[0014] In a shipping implementation, the plurality of stations may represent different loading docks, conveyor belts, forklifts, sorting stations, holding areas, and the like. A plurality of sensors, such as video cameras, thermal imaging sensors, depth sensors, or the like, can be disposed non-intrusively at various positions around the loading docks, conveyor belts, forklifts, sorting stations, holding areas, and the like. One or more additional sensors, such as audio, temperature, acceleration, torque, compression, tension, or the like sensors, can also be disposed non-intrusively at various positions.

[0015] In a retailing implementation, the plurality of stations may represent one or more loading docks, one or more stock rooms, the store shelves, the point of sale (e.g. cashier stands, self-checkout stands and auto-payment geofence), and the like. A plurality of sensors such as video cameras, thermal imaging sensors, depth sensors, or the like, can be disposed non- intrusively at various positions around the loading docks, stock rooms, store shelves, point of sale stands and the like. One or more additional sensors, such as audio, acceleration, torque, compression, tension, or the like sensors, can also be disposed non-intrusively at various positions around the loading docks, stock rooms, store shelves, point of sale stands and the like.

[0016] In a warehousing or online retailing implementation, the plurality of stations may represent receiving areas, inventory storage, picking totes, conveyors, packing areas, shipping areas, and the like. A plurality of sensors, such as video cameras, thermal imaging sensors, depth sensors, or the like, can be disposed non-intrusively at various positions around the receiving areas, inventory storage, picking totes, conveyors, packing areas, and shipping areas. One or more additional sensors, such as audio, temperature, acceleration, torque, compression, tension, or the like sensors, can also be disposed non-intrusively at various positions.

[0017] Aspect of the present technology will be herein further described with reference to a manufacturing context so as to best explain the principles of the present technology without obscuring aspects of the present technology. However, the present technology as further described below can also be readily applied in health care, warehousing, shipping, retail, restaurants, and numerous other similar contexts.

[0018] The action recognition and analytics system 100 can include one or more interfaces 135-165. The one or more interface 135-145 can include one or more sensors 135-145 disposed at the one or more stations 105-115 and configured to capture streams of data concerning cycles, processes, actions, sequences, object, parameters and or the like by the one or more actors 120- 130 and or at the station 105-1 15. The one or more sensors 135-145 can be disposed non- intrusively, so that minimal to changes to the layout of the assembly line or the plant are required, at various positions around one or more of the stations 105-115. The same set of one or more sensors 135-145 can be disposed at each station 105-1 15, or different sets of one or more sensors 135-145 can be disposed at different stations 105-1 15. The sensors 135-145 can include one or more sensors such as video cameras, thermal imaging sensors, depth sensors, or the like. The one or more sensors 135-145 can also include one or more other sensors, such as audio, temperature, acceleration, torque, compression, tension, or the like sensors.

[0019] The one or more interfaces 135-165 can also include but not limited to one or more displays, touch screens, touch pads, keyboards, pointing devices, button, switches, control panels, actuators, indicator lights, speakers, Augmented Reality (AR) interfaces, Virtual Reality (VR) interfaces, desktop Personal Computers (PCs), laptop PCs, tablet PCs, smart phones, robot interfaces, cobot interfaces. The one or more interfaces 135-165 can be configured to receive inputs from one or more actors 120-130, one or more engines 170 or other entities. Similarly, the one or more interfaces 135-165 can be configured to output to one or more actors 120-130, one or more engine 170 or other entities. For example, the one or more front-end units 190 can output one or more graphical user interfaces to present training content, work charts, real time alerts, feedback and or the like on one or more interfaces 165, such displays at one or more stations 120-130, at management portals on tablet PCs, administrator portals as desktop PCs or the like. In another example, the one or more front-end units 190 can control an actuator to push a defective unit of the assembly line when a defect is detected. The one or more front-end units can also receive responses on a touch screen display device, keyboard, one or more buttons, microphone or the like from one or more actors. Accordingly, the interfaces 135-165 can implement an analysis interface, mentoring interface and or the like of the one or more front-end units 190.

[0020] The action recognition and analytics system 100 can also include one or more engines 170 and one or more data storage units 175. The one or more interfaces 135-165, the one or more data storage units 175, the one or more machine learning back-end units 180, the one or more analytics units 185, and the one or more front-end units 190 can be coupled together by one or more networks 192. It is also to be noted that although the above described elements are described as separate elements, one or more elements of the action recognition and analytics system 100 can be combined together or further broken into different elements.

[0021] The one or more engines 170 can include one or more machine learning back-end units 180, one or more analytics units 185, and one or more front-end units 190. The one or more data storage units 175, the one or more machine learning back-end units 180, the one or more analytics units 185, and the one or more analytics front-end units 190 can be implemented on a single computing device, a common set of computing devices, separate computing device, or different sets of computing devices that can be distributed across the globe inside and outside an enterprise. Aspects of the one or more machine learning back-end units 180, the one or more analytics units 185 and the one or more front-end units 190, and or other computing units of the action recognition and analytics system 100 can be implemented by one or more central processing units (CPU), one or more graphics processing units (GPU), one or more tensor processing units (TPU), one or more digital signal processors (DSP), one or more

microcontrollers, one or more field programmable gate arrays and or the like, and any combination thereof. In addition, the one or more data storage units 175, the one or more machine learning back-end units 180, the one or more analytics units 185, and the one or more front-end units 190 can be implemented locally to the one or more stations 105-115, remotely from the one or more stations 105-115, or any combination of locally and remotely. In one example, the one or more data storage units 175, the one or more machine learning back-end units 180, the one or more analytics units 185, and the one or more front-end units 190 can be implemented on a server local (e.g., on site at the manufacturer) to the one or more stations 105- 1 15. In another example, the one or more machine learning back-end units 135, the one or more storage units 140 and analytics front-end units 145 can be implemented on a cloud computing service remote from the one or more stations 105-115. In yet another example, the one or more data storage units 175 and the one or more machine learning back-end units 180can be implemented remotely on a server of a vendor, and one or more data storage units 175 and the one or more front-end units 190 are implemented locally on a server or computer of the manufacturer. In other examples, the one or more sensors 135-145, the one or more machine leaming back-end units 180, the one or more front-end unit 190, and other computing units of the action recognition and analytics system 100 can perform processing at the edge of the network 192 in an edge computing implementation. The above example of the deployment of one or more computing devices to implement the one or more interfaces 135-165, the one or more engines 170, the one or more data storage units 140 and one or more analytics front-end units 145, are just some of the many different configuration for implementing the one or more machine learning back-end units 135, one or more data storage units 140. Any number of computing devices, deployed locally, remotely, at the edge or the like can be utilized for implementing the one or more machine learning back-end units 135, the one or more data storage units 140, the one or more analytics front-end units 145 or other computing units.

[0022] The action recognition and analytics system 100 can also optionally include one or more data compression units associated with one or more of the interfaces 135-165. The data compression units can be configured to compress or decompress data transmitted between the one or more interface 135-165, and the one or more engines 170. Data compression, for example, can advantageously allow the sensor data from the one or more interface 135-165 to be transmitted across one or more existing networks 192 of a manufacturer. The data compression units can also be integral to one or more interfaces 135-165 or implemented separately. For example, video capture sensors may include an integral Motion Picture Expert Group (MPEG) compression unit (e.g., H-264 encoder/decoder). In an exemplary implementation, the one or more data compression units can use differential coding and arithmetic encoding to obtain a 20X reduction in the size of depth data from depth sensors. The data from a video capture sensor can comprise roughly 30 GB of H.264 compressed data per camera, per day for a factory operation with three eight-hour shifts. The depth data can comprise roughly another 400 GB of uncompressed data per sensor, per day. The depth data can be compressed by an algorithm to approximately 20 GB per sensor, per day. Together, a set of a video sensor and a depth sensor can generate approximately 50 GB of compressed data per day. The compression can allow the action recognition and analytics system 100 to use a factory's network 192 to move and store data locally or remotely (e.g., cloud storage).

[0023] The action recognition and analytics system 100 can also be communicatively coupled to additional data sources 194, such as but not limited to a Manufacturing Execution Systems (MES), warehouse management system, or patient management system. The action recognition and analytics system 100 can receive additional data, including one or more additional sensor streams, from the additional data sources 194. The action recognition and analytics system 100 can also output data, sensor streams, analytics result and or the like to the additional data sources 194. For example, the action recognition can identify a barcode on an object and provide the barcode input to a MES for tracking.

[0024] The action recognition and analytics system 100 can continually measure aspects of the real-world, making it possible to describe a context utilizing vastly more detailed data sets, and to solve important business problems like line balancing, ergonomics, and or the like. The data can also reflect variations over time. The one or more machine leaming back-end units 170 can be configured to recognize, in real time, one or more cycles, processes, actions, sequences, objects, parameters and the like in the sensor streams received from the plurality of sensors 135- 145. The one or more machine learning back-end units 180 can recognize cycles, processes, actions, sequences, objects, parameters and the like in sensor streams utilizing deep leaming, decision tree learning, inductive logic programming, clustering, reinforcement leaming, Bayesian networks, and or the like.

[0025] Referring now to FIG. 2, an exemplary deep learning type machine leaming back- end unit, in accordance with aspects of the present technology, is shown. The deep leaming unit 200 can be configured to recognize, in real time, one or more cycles, processes, actions, sequences, objects, parameters and the like in the sensor streams received from the plurality of sensors 120-130. The deep learning unit 200 can include a dense optical flow computation unit 210, a Convolution Neural Networks (CNNs) 220, a Long Short Term Memory (LSTM) Recurrent Neural Network (RNN) 230, and a Finite State Automata (FSA) 240. The CNNs 220 can be based on two-dimensional (2D) or three-dimensional (3D) convolutions. The dense optical flow computation unit 210 can be configured to receive a stream of frame-based sensor data 250 from sensors 120-130. The dense optical flow computation unit 210 can be configured to estimate an optical flow, which is a two-dimension (2D) vector field where each vector is a displacement vector showing the movement of points from a first frame to a second frame. The CNNs 220 can receive the stream of frame-based sensor data 250 and the optical flow estimated by the dense optical flow computation unit 210. The CNNs 220 can be applied to video frames to create a digest of the frames. The digest of the frames can also be referred to as the embedding vector. The digest retains those aspects of the frame that help in identifying actions, such as the core visual clues that are common to instances of the action in question.

[0026] In a three-dimensional Convolution Neural Network (3D CNN) based approach, spatio-temporal convolutions can be performed to digest multiple video frames together to recognize actions. For 3D CNN, the first two dimension can be along space, and in particular the width and height of each video frame. The third dimension can be along time. The neural network can learn to recognize actions not just from the spatial partem in individual frame, but also jointly in space and time. The neural network is not just using color pattems in one frame to recognize actions. Instead, the neural network is using how the partem shifts with time (i.e., motion cues) to come up with its classification. According the 3D CNN is attention driven, in that it proceeds by identifying 3D spatio-temporal bounding boxes as Regions of Interest (Rol) and focusses on them to classify actions.

[0027] In one implementation, the input to the deep learning unit 200 can include multiple data streams. In one instance, a video sensor signal, which includes red, green and blue data streams, can comprise three channels. Depth image data can comprise another channel.

Additional channels can accrue from temperature, sound, vibration, data from sensors (e.g., torque from a screwdriver) and the like. From the RGB and depth streams, dense optical flow fields can be computed by the dense optical flow computation unit 210 and fed to the

Convolution Neural Networks (CNNs) 220. The RGB and depth streams can also be fed to the CNNs 220 as additional streams of derived data.

[0028] The Long Short Term Memory (LSTM) Recurrent Neural Network (RNN) 230 can be fed the digests from the output of the Convolution Neural Networks (CNNs) 220. The LSTM can essentially be a sequence identifier that is trained to recognize temporal sequences of sub- events that constitute an action. The combination of the CNNs and LSTM can be jointly trained, with full back-propagation, to recognize low-level actions. The low-level actions can be referred to as atomic actions, like picking a screw, picking a screwdriver, attaching screw to screwdriver and the like. The Finite State Automata (FSA) 240 can be mathematical models of computations that include a set of state and a set of rules that govern the transition between the states based on the provided input. The FSA 240 can be configured to recognize higher-level actions 260 from the atomic actions. The high-level actions 260 can be referred to as molecular actions, for example turning a screw to affix a hard drive to a computer chassis. The CNNs and LSTM can be configured to perform supervised training on the data from the multiple sensor streams. In one implementation, approximately 12 hours of data, collected over the course of several days, can be utilized to train the CN s and LSTM combination.

[0029] Referring now to FIG. 3, an exemplary Convolution Neural Networks (CNNs) and Long Short Term Memory (LSTM) Recurrent Neural Network (RNN), in accordance with aspects of the present technology, is shown. The CNNs can include a frame feature extractor 310, a first Fully Connected (FC) layer 320, a Region of Interest (Rol) detector unit 330, a Rol pooling unit 340, and a second Fully Connected (FC) layer 350. The operation of the CNNs and LSTM will be further explained with reference to FIG. 4, which shows an exemplary method of detecting actions in a sensor stream.

[0030] The frame feature extractor 310 of the Convolution Neural Networks (CNNs) 220 can receive a stream of frame-based sensor data, at 410. At 420, the frame feature extractor 310 can perform a two-dimensional convolution operation on the received video frame and generate a two-dimensional array of feature vectors. The frame feature extractor 310 can work on the full resolution image, wherein a deep network is effectively sliding across the image generating a feature vector at each stride position. Thus, each element of the 2D feature vector array is a descriptor for the corresponding receptive field (e.g., fixed portion of the underlying image). The first Fully Connected (FC) layer can flatten the high-level features extracted by the frame feature extractor 310, and provide additional non-linearity and expressive power, enabling the machine to learn complex non-linear combinations of these features.

[0031] At 430, the Rol detector unit 330 can combine neighboring feature vectors to make a decision on whether the underlying receptive field belongs to a Region of Interest (Rol) or not. If the underlying receptive field belongs to a Rol, a Rol rectangle can be predicted from the same set of neighboring feature vectors, at 440. At, 450, a Rol rectangle with a highest score can be chosen by the Rol detector unit 330. For the chosen Rol rectangle, the feature vectors lying within it can be aggregated by the Rol pooling unit 340, at 460. The aggregated feature vector is a digest/descriptor for the foreground for that video frame.

[0032] In one implementation, the Rol detector unit 330 can determine a static Rol. The static Rol identifies a Region of Interest (Rol) within an aggregate set of feature vectors describing a video frame, and generates a Rol area for the identified Rol. A Rol area within a video frame can be indicated with a Rol rectangle that encompasses an area of the video frame designated for action recognition, such as an area in which actions are performed in a process. Alternatively, the Rol area can be designated with a box, circle, highlighted screen, or any other geometric shape or indicator having various scales and aspect ratios used to encompass a Rol. The area within the Rol rectangle is the area within the video frame to be processed by the Long Short Term Memory (LSTM) for action recognition.

[0033] The Long Short Term Memory (LSTM) can be trained using a Rol rectangle that provides, both, adequate spatial context within the video frame to recognize actions and independence from irrelevant portions of the video frame in the background. The trade-off between spatial context and background independence ensures that the static Rol detector can provide clues for the action recognition while avoiding spurious unreliable signals within a given video frame.

[0034] In another implementation, the Rol detector unit 330 can determine a dynamic Rol. A Rol rectangle can encompass areas within a video frame in which an action is occurring. By focusing on areas in which action occurs, the dynamic Rol detector enables recognition of actions outside of a static Rol rectangle while relying on a smaller spatial context, or local context, than that used to recognize actions in a static Rol rectangle.

[0035] In one implementation, the Rol pooling unit 340 extracts a fixed-sized feature vector from the area within an identified Rol rectangle, and discards the remaining feature vectors of the input video frame. The fixed-sized feature vector, or foreground feature, includes the feature vectors generated by the video frame feature extractor that are located within the coordinates indicating a Rol rectangle as determined by the Rol detector unit 330. Because the Rol pooling unit 340 discards feature vectors not included within the Rol rectangle, the

Convolution Neural Networks (CNNs) 220 analyzes actions within the Rol only, thus ensuring that unexpected changes in the background of a video frame are not erroneously analyzed for action recognition.

[0036] In one implementation, the Convolution Neural Networks (CNNs) 220 can be an Inception ResNet. The Inception ResNet can utilize a sliding window style operation.

Successive convolution layers output a feature vector at each point of a two-dimensional grid. The feature vector at location (x,y) at level / can be derived by weighted averaging features from a small local neighborhood (aka receptive field) N around the (x,y) at level l-l followed by a pointwise non-linear operator. The non-linear operator can be the RELU (max(0,x)) operator.

[0037] In the sliding window, there can be many more than 7x7 points at the output of the last convolution layer. A Fully Connected (FC) convolution can be taken over the feature vectors from the 7x7 neighborhoods, which is nothing but applying one more convolution. The corresponding output represents the Convolution Neural Networks (CNNs) output at the matching 224x224 receptive field on the input image. This is fundamentally equivalent to applying the CNNs to each sliding window stop. However, no computation is repeated, thus keeping the inferencing computation cost real time on Graphics Processing Unit (GPU) based machines.

[0038] The convolution layers can be shared between Rol detector 330 and the video frame feature extractor 310. The Rol detector unit 330 can identify the class independent rectangular region of interest from the video frame. The video frame feature extractor can digest the video frame into feature vectors. The sharing of the convolution layers improves efficiency, wherein these expensive layers can be run once per frame and the results saved and reused.

[0039] One of the outputs of the Convolution Neural Networks (CNNs) is the static rectangular Region of Interest (Rol). The term "static" as used herein denotes that the Rol does not vary greatly from frame to frame, except when a scene change occurs, and it is also independent of the output class.

[0040] A set of concentric anchor boxes can be employed at each sliding window stop. In one implementation, there can be nine anchor boxes per sliding window stop for combinations of 3 scales and 3 aspect ratios. Therefore, at each sliding window stop there are two set of outputs. The first set of outputs can be a Region of Interest (Rol) present/absent that includes 18 outputs of the form 0 or 1. An output of 0 indicates the absence of a Rol within the anchor box, and an output of 1 indicates the presence of a Rol within the anchor box. The second set of outputs can include Bounding Box (BBox) coordinates including 36 floating point outputs indicating the actual BBox for each of the 9 anchor boxes. The BBox coordinates are to be ignored if the Rol present/absent output indicates the absence of a Rol.

[0041] For training, sets of video frames with a per-frame Region of Interest (Rol) rectangle are presented to the network. In frames without a Rol rectangle, a dummy 0x0 rectangle can be presented. The Ground Truth for individual anchor boxes can be created via the

Intersection over Union (IoU) of rectangles. For the i th anchor box b l = {x,, y,, w,, h,} the derived Ground Truth for the Rol presence probability can be determined by Equation 1 :

ox unuse or training where g = {x g , y g , w g , h g } is the Ground Truth Rol box for the entire frame. [0042] The loss function can be determined by Equation 2:

L(Pi, Pi , bi, g) = Pi log pi (S(. â–  9 ) + S(y t - y g ) + S(wi - Wg) + S(h t - h g )) where p, is the predicted probability for presence of Region of Interest (Rol) in the i t h anchor box and the smooth loss function can be defined by Equation 3 :

The left term in the loss function is the error in predicting the probability of the presence of a Rol, while the second term is the mismatch in the predicted Bounding Box (BBox). It should be noted that the second term vanishes when the ground truth indicates that there is no Rol in the anchor box.

[0043] The static Region of Interest (Rol) is independent of the action class. In another implementation, a dynamic Region of Interest (Rol), that is class dependent, is proposed by the CN s. This takes the form of a rectangle enclosing the part of the image where the specific action is occurring. This increases the focus of the network and takes it a step closer to a local context-based action recognition.

[0044] Once a Region of Interest (Rol) has been identified, the frame feature can be extracted from within the Rol. These will yield a background independent frame digest. But this feature vector also needs to be a fixed size so that it can be fed into the Long Short Term

Memory (LSTM). The fixed size can be achieved via Rol pooling. For Rol pooling, the Rol can be tiled up into 7x7 boxes. The mean of all feature vectors within a tile can then be determined. Thus, 49 feature vectors that are concatenated from the frame digest can be produced. The second Fully Connected (FC) layer 350 can provide additional non-linearity and expressive power to the machine, creating a fixed size frame digest that can be consumed by the LSTM 230.

[0045] At 470, successive foreground features can be fed into the Long Short Term Memory (LSTM) 230 to learn the temporal pattern. The LSTM 230 can be configured to recognize patterns in an input sequence. In video action recognition, there could be patterns within sequences of frames belonging to a single action, referred to as intra action patterns. There could also be patterns within sequences of actions, referred to as inter action patterns. The LSTM can be configured to learn both of these patterns, jointly referred to as temporal patterns. The Long Short Term Memory (LSTM) analyzes a series of foreground features to recognize actions belonging to an overall sequence. In one implementation, the LSTM outputs an action class describing a recognized action associated with an overall process for each input it receives. In another implementation, each class action is comprised of sets of actions describing actions associated with completing an overall process. Each action within the set of actions can be assigned a score indicating a likelihood that the action matches the action captured in the input video frame. Each action may be assigned a score such that the action with the highest score is designated the recognized action class.

[0046] Foreground features from successive frames can be feed into the Long Short Term Memory (LSTM). The foreground feature refers to the aggregated feature vectors from within the Region of Interest (Rol) rectangles. The output of the LSTM at each time step is the recognized action class. The loss for each individual frame is the cross entropy softmax loss over the set of possible action classes. A batch is defined as a set of three randomly selected set of twelve frame sequences in the video stream. The loss for a batch is defined as the frame loss averaged over the frame in the batch. The numbers twelve and three are chose empirically. The overall LSTM loss function is given by Equation 4:

where B denotes a batch of \\B\\ frame sequences {Si, S 2 , ... , Sp | }. S comprises a sequence of ||<¾|| frames, wherein in the present implementation \\B\\ = 3 and ||<¾|| = 12k. A denotes the set of all action classes, a tl denotes the i th action class score for the t th frame from LSTM and a t * i denotes the corresponding Ground Truth.

[0047] Referring again to FIG. 1, the machine learning back-end unit 135 can utilize custom labelling tools with interfaces optimized for labeling Rol, cycles and action. The labelling tools can include both standalone application built on top of Open source Computer Vision (OpenCV) and web browser application that allow for the labeling of video segment.

[0048] Referring now to FIG. 5, an action recognition and analytics system, in accordance with aspect of the present technology, is shown. Again, the action recognition and analytics system 500 can be deployed in a manufacturing, health care, warehousing, shipping, retail, restaurant, or similar context. The system 500 similarly includes one or more sensors 505-515 disposed at one or more stations, one or more machine learning back-end units 520, one or more analytics units 525, and one or more front-end units 530. The one or more sensors 505-515 can be coupled to one or more local computing devices 535 configured to aggregate the sensor data streams from the one or more sensors 505-515 for transmission across one or more communication links to a streaming media server 540. The streaming media server 540 can be configured to received one or more streams of sensor data from the one or more sensors 505-515. A format converter 545 can be coupled to the streaming media server 540 to receive the one or more sensor data streams and convert the sensor data from one format to another. For example, the one or more sensors may generate Motion Picture Expert Group (MPEG) formatted (e.g., H.264) video sensor data, and the format converter 545 can be configured to extract frames of JPEG sensor data. An initial stream processor 550 can be coupled to the format convert 555. The initial stream processor 550 can be configured to segment the sensor data into predetermined chucks, subdivide the chunks into key frame aligned segment, and create per segment sensor data in one or more formats. For example, the initial stream processor 550 can divide the sensor data into five minute chunks, subdivide the chunks into key frame aligned segment, and convert the key frame aligned segments into MPEG, MPEG Dynamic Adaptive Streaming over Hypertext Transfer Protocol (DASH) format, and or the like. The initial stream processor 550 can be configured to store the sensor stream segments in one or more data structures for storing sensor streams 555. In one implementation, as sensor stream segments are received, each new segment can be appended to the previous sensor stream segments stored in the one or more data structures for storing sensor streams 555.

[0049] A stream queue 560 can also be coupled to the format converter 545. The stream queue 560 can be configured to buffer the sensor data from the format converter 545 for processing by the one or more machine learning back-end units 520. The one or more machine leaming back-end units 520 can be configured to recognize, in real time, one or more cycles, processes, actions, sequences, objects, parameters and the like in the sensor streams received from the plurality of sensors 505-515. Referring now to FIG. 6, an exemplary method of detecting actions, in accordance with aspects of the present technology, is shown. The action recognition method can include receiving one or more sensor streams from one or more sensors, at 610. In one implementation, one or more machine learning back-end units 520 can be configured to receive sensor streams from sensors 505-515 disposed at one or more stations.

[0050] At 620, a plurality of processes including one or more actions arranged in one or more sequences and performed on one or more objects, and one or more parameters can be detected, in the one or more sensor streams. At 630, one or more cycles of the plurality of processes in the sensor stream can also be determined. In one implementation, the one or more machine leaming back-end units 520 can recognize cycles, processes, actions, sequences, objects, parameters and the like in sensor streams utilizing deep learning, decision tree leaming, inductive logic programming, clustering, reinforcement learning, Bayesian networks, and or the like.

[0051] At 640, indicators of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters can be generated. In one implementation, the one or more machine learning back-end units 520 can be configured to generate indicators of the one or more cycles, processes, actions, sequences, objects, parameters and or the like. The indicators can include descriptions, identifiers, values and or the like associated with the cycles, processes, actions, sequences, objects, and or parameters. The parameters can include, but is not limited to, time, duration, location (e.g., x, y, z, t), reach point, motion path, grid point, quantity, sensor identifier, station identifier, and bar codes.

[0052] At 650, the indicators of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters indexed to corresponding portions of the sensor streams can be stored in one or more data structures for storing data sets 565. In one implementation, the one or more machine learning back-end units 520 can be configured to store a data set including the indicators of the one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters for each cycle. The data sets can be stored in one or more data structures for storing the data sets 565. The indicators of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters in the data sets can be indexed to corresponding portion of the sensor streams in one or more data structures for storing sensor streams 555.

[0053] In one implementation, the one or more streams of sensor data and the indicators of the one or more of the plurality of cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters indexed to corresponding portion of the one or more streams of sensor data can be encrypted when stored to protect the integrity of the streams of sensor data and or the data sets. In one implementation, the one or more streams of sensor data and the indicators of the one or more of the plurality of cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters indexed to corresponding portion of the one or more streams of sensor data can be stored utilizing block chaining. The blockchaining can be applied across the cycles, sensor streams, stations, supply chain and or the like. The blockchaining can include calculating a cryptographic hash based on blocks of the data sets and or blocks of the streams of sensor data. The data sets, streams of sensor data and the cryptographic hash can be stored in one or more data structures in a distributed network.

[0054] Referring again to FIG. 5, the one or more analytics units 525 can be coupled to the one or more data structures for storing the sensor streams 555, one or more data structures for storing the data set 565, one or more additional sources of data 570, one or more data structures for storing analytics 575. The one or more analytics units 525 can be configured to perform statistical analysis on the cycle, process, action, sequence, object and parameter data in one or more data sets. The one or more analytics units 525 can also utilize additional data received from one or more additional data sources 570. The additional data sources 570 can include, but are not limited to, Manufacturing Execution Systems (MES), warehouse management system, or patient management system, accounting systems, robot datasheets, human resource records, bill of materials, and sales systems. Some examples of data that can be received from the additional data sources 570 can include, but is not limited to, time, date, shift, day of week, plant, factory, assembly line, sub-assembly line, building, room, supplier, work space, action capability, and energy consumption, ownership cost. The one or more analytics units 525 can be configured to utilize the additional data from one or more additional source of data 570 to update, correct, extend, augment or the like, the data about the cycles, processes, action, sequences, objects and parameters in the data sets. Similarly, the additional data can also be utilized to update, correct, extend, augment or the like, the analytics generate by the one or more analytics front-end units 525. The one or more analytics units 525 can also store trends and other comparative analytics utilizing the data sets and or the additional data, can use sensor fusion to merge data from multiple sensors, and other similar processing and store the results in the one or more data structures for storing analytics 575. In one implementation, one or more engines 170, such as the one or more machine learning back-end units 520 and or the one or more analytics units 525, can create a data structure including a plurality of data sets, the data sets including one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more object and one or more parameters. The one or more engine 170 can build the data structure based on the one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more object and one or more parameters detected in the one or more sensor streams. The data structure definition, configuration and population can be performed in real time based upon the content of the one or more sensor streams. For example, Table 1 shows a table defined, configured and populated as the sensor streams are processed by the one or more machine learning back-end unit 520. ENTITY ID DATA STUCTURE (TABLE 1)

Table 1

The data structure creation process can continue to expand upon the initial structure and or create additional data structures base upon additional processing of the one or more sensor streams.

[0055] In one embodiment, the status associated with entities is added to a data structure configuration (e.g., engaged in an action, subject to a force, etc.) based upon processing of the access information. In one embodiment, activity associated with the entities is added to a data structure configuration (e.g., engaged in an action, subject to a force, etc.) based upon processing of the access information. One example of entity status data set created from processing of above entity ID data set (e.g., motion vector analysis of image object, etc.) is illustrated in Table 2.

ENTITY STATUS DATA STRUCTURE (TABLE 2)

Table 2

In one embodiment, a third-party data structure as illustrated in Table 3 can be accessed.

OSHA DATA STRUCTURE (TABLE 3)

Table 3

In one embodiment, activity associated with entities is added to a data structure configuration (e.g., engaged in an action, subject to a force, etc.) based upon processing of the access information as illustrated in Table 4.

ACTIVITY DATA STRUCTURE (TABLE 4)

Table 4

Table 4 is created by one or more engines 170 based on further analytics/processing of info in Table 1 , Table 2 and Table 3. In one example, Table 4 is automatically configured to have a column for screwing to motherboard. In frames 1 and 3 since hand is moving (see Table 2) and screw present (see Table 1), then screwing to motherboard (see Table 3). In frame 2, since hand is not moving (see Table 2) and screw not present (see Table 1), then no screwing to

motherboard (see Table 3).

[0056] Table 4 is also automatically configured to have a column for human action safe. In frame 1 since leg not moving in frame (see Table 2) the worker is safely (see Table 3) standing at workstation while engage in activity of screwing to motherboard. In frame 3 since leg moving (see Table 2) the worker is not safely (see Table 3) standing at workstation while engage in activity of screwing to motherboard.

[0057] The one or more analytics units 525 can also be coupled to one or more front-end units 580. The one or more front-end units 575 can include a mentor portal 580, a management portal 585, and other similar portals. The mentor portal 550 can be configured for presenting feedback generated by the one or more analytics units 525 and or the one or more front-end units 575 to one or more actors. For example, the mentor portal 580 can include a touch screen display for indicating discrepancies in the processes, actions, sequences, objects and parameters at a corresponding station. The mentor portal 580 could also present training content generated by the one or more analytics units 525 and or the one or more front-end units 575 to an actor at a corresponding station. The management port 585 can be configured to enable searching of the one or more data structures storing analytics, data sets and sensor streams. The management port 585 can also be utilized to control operation of the one or more analytics units 525 for such functions as generating training content, creating work charts, performing line balancing analysis, assessing ergonomics, creating job assignments, performing causal analysis, automation analysis, presenting aggregated statistics, and the like.

[0058] The action recognition and analytics system 500 can non-intrusively digitize processes, actions, sequences, objects, parameters and the like performed by numerous entities, including both humans and machines, using machine learning. The action recognition and analytics system 500 enables human activity to be measured automatically, continuously and at scale. By digitizing the performed processes, actions, sequences, objects, parameters, and the like, the action recognition and analytics system 500 can optimize manual and/or automatic processes. In one instance, the action recognition and analytics system 500 enables the creation of a fundamentally new data set of human activity. In another instance, the action recognition and analytics system 500 enables the creation of a second fundamentally new data set of man and machine collaborating in activities. The data set from the action recognition and analytics system 500 includes quantitative data, such as which actions were performed by which person, at which station, on which specific part, at what time. The data set can also include judgements based on performance data, such as does a given person perform better or worse that average. The data set can also include inferences based on an understanding of the process, such as did a given product exited the assembly line with one or more incomplete tasks.

[0059] Referring now to FIG. 7, an action recognition and analytics system, in accordance with aspects of the present technology, is shown. The action recognition and analytics system can include a plurality of sensor layers 702, a first Application Programming Interface (API) 704, a physics layer 706, a second API 708, a plurality of data 710, a third API 712, a plurality of insights 714, a fourth API 716 and a plurality of engine layers 718. The sensor layer 702 can include, for example, cameras at one or more stations 720, MES stations 722, sensors 724, IIoT integrations 726, process ingestion 728, labeling 730, neural network training 732 and or the like. The physics layer 706 captures data from the sensor layer 702 to passes it to the data layer 710. The data layer 710, can include but not limited to, video and other streams 734, +N annotations 736, +MES 738, +OSHA database 740, and third-party data 742. The insights layer 714 can provide for video search 744, time series data 746, standardized work 748, and spatio- temporal 842. The engine layer 718 can be utilized for inspection 752, lean/line balancing 754, training 756, job assignment 758, other applications 760, quality 763, traceability 764, ergonomics 766, and third party applications 768.

[0060] Referring now to FIG. 8, an exemplary station, in accordance with aspects of the present technology, is shown. The station 800 is an areas associated with one or more cycles, processes, actions, sequences, objects, parameters and or the like, herein also referred to as activity. Information regarding a station can be gathered and analyzed automatically. The information can also be gathered and analyzed in real time. In one exemplary implementation, an engine participates in the information gathering and analysis. The engine can use Artificial Intelligence to facilitate the information gathering and analysis. It is appreciated there can be many different types of stations with various associated entities and activities. Additional descriptions of stations, entities, activities, information gathering, and analytics are discussed in other sections of this detailed description.

[0061] A station or area associated with an activity can include various entities, some of which participate in the activity within the area. An entity can be considered an actor, an object, and so on. An actor can perform various actions on an object associated with an activity in the station. It is appreciated a station can be compatible with various types of actors (e.g., human, robot, machine, etc.). An object can be a target object that is the target of the action (e.g., thing being acted on, a product, a tool, etc.). It is appreciated that an object can be a target object that is the target of the action and there can be various types of target objects (e.g., component of a product or article of manufacture, an agricultural item, part of a thing or person being operated on, etc.). An object can be a supporting object that supports (e.g., assists, facilitates, aids, etc.) the activity. There can be various types of supporting objects, including load bearing components (e.g., a work bench, conveyor belt, assembly line, table top etc.), a tool (e.g., drill, screwdriver, lathe, press, etc.), a device that regulates environmental conditions (e.g., heating ventilating and air conditioning component, lighting component, fire control system, etc.), and so on. It is appreciated there can be many different types of stations with a various entities involved with a variety of activities. Additional descriptions of the station, entities, and activities are discussed in other sections of this detailed description.

[0062] The station 800 can include a human actor 810, supporting object 820, and target objects 830 and 840. In one embodiment, the human actor 810 is assembling a product that includes target objects 830, 840 while supporting object 820 is facilitating the activity. In one embodiment, target objects 830, 840 are portions of a manufactured product (e.g., a motherboard and a housing of an electronic component, a frame and a motor of a device, a first and a second structural member of an apparatus, legs and seat portion of a chair, etc.). In one embodiment, target objects 830, 840 are items being loaded in a transportation vehicle. In one embodiment, target objects 830, 840 are products being stocked in a retail establishment. Supporting object 820 is a load bearing component (e.g., a work bench, a table, etc.) that holds target object 840 (e.g., during the activity, after the activity, etc.). Sensor 850 senses information about the station (e.g., actors, objects, activities, actions, etc.) and forwards the information to one or more engines 860. Sensor 850 can be similar to sensor 135. Engine 860 can include a machine learning back end component, analytics, and front end similar to machine learning back end unit 180, analytics unit 190, and front end 190. Engine 860 performs analytics on the information and can forward feedback to feedback component 870 (e.g., a display, speaker, etc.) that conveys the feedback to human actor 810.

[0063] Referring now to FIG. 9, an exemplary station, in accordance with aspects of the present technology, is shown. The station 900 includes a robot actor 910, target objects 920, 930, and supporting objects 940, 950. In one embodiment, the robot actor 910 is assembling target objects 920, 930 and supporting objects 940, 950 are facilitating the activity. In one embodiment, target objects 920, 930 are portions of a manufactured product. Supporting object 940 (e.g., an assembly line, a conveyor belt, etc.) holds target objects 920, 930 during the activity and moves the combined target obj ect 920, 930 to a subsequent station (not shown) after the activity. Supporting object 940 provides area support (e.g., lighting, fan temperature control, etc.). Sensor 960 senses information about the station (e.g., actors, objects, activities, actions, etc.) and forwards the information to engine 970. Engine 970 performs analytics on the information and forwards feedback to a controller 980 that controls robot 910. Engine 970 can be similar to engine 170 and sensor 960 can be similar to sensor 135.

[0064] A station can be associated with various environments. The station can be related to an economic sector. A first economic sector can include the retrieval and production of raw materials (e.g., raw food, fuel, minerals, etc.). A second economic sector can include the transformation of raw or intermediate materials into goods (e.g., manufacturing products, manufacturing steel into cars, manufacturing textiles into clothing, etc.). A third sector can include the supply and delivery of services and products (e.g., an intangible aspect in its own right, intangible aspect as a significant element of a tangible product, etc.) to various parties (e.g., consumers, businesses, governments, etc.). In one embodiment, the third sector can include sub sectors. One sub sector can include information and knowledge-based services. Another sub sector can include hospitality and human services. A station can be associated with a segment of an economy (e.g., manufacturing, retail, warehousing, agriculture, industrial, transportation, utility, financial, energy, healthcare, technology, etc,). It is appreciated there can be many different types of stations and corresponding entities and activities. Additional descriptions of the station, entities, and activities are discussed in other sections of this detailed description.

[0065] In one embodiment, station information is gathered and analyzed. In one exemplary implementation, an engine (e.g., an information processing engine, a system control engine, an Artificial Intelligence engine, etc.) can access information regarding the station (e.g., information on the entities, the activity, the action, etc.) and utilizes the information to perform various analytics associated with the station. In one embodiment, engine can include a machine learning back end unit, analytics unit, front end unit, and data storage unit similar to machine learning back end 180, analytics 185, front end 190 and data storage 175. In one embodiment, a station activity analysis process is performed. Referring now to FIG. 10, an exemplary station activity analysis method, in accordance with one embodiment, is shown.

[0066] At 1010, information regarding the station is accessed. In one embodiment, the information is accessed by an engine. The information can be accessed in real time. The information can be accessed from monitors/sensors associated with a station. The information can be accessed from an information storage repository. The information can include various types of information (e.g., video, thermal, optical, etc.). Additional descriptions of the accessing information are discussed in other sections of this detailed description

[0067] At 1020, information is correlated with entities in the station and optionally with additional data sources. In one embodiment, the information the correlation is established at least in part by an engine. The engine can associate the accessed information with an entity in a station. An entity can include an actor, an object, and so on. Additional descriptions of the correlating information with entities are discussed in other sections of this detailed description.

[0068] At 1030, various analytics are performed utilizing the accessed information at 1010, and correlations at 1020. In one embodiment, an engine utilizes the information to perform various analytics associated with station. The analytics can be directed at various aspects of an activity (e.g., validation of actions, abnormality detection, training, assignment of actor to an action, tracking activity on an object, determining replacement actor, examining actions of actors with respect to an integrated activity, automatic creation of work charts, creating ergonomic data, identify product knitting components, etc.) Additional descriptions of the analytics are discussed in other sections of this detailed description.

[0069] At 1040, optionally, results of the analysis can be forwarded as feedback. The feedback can include directions to entities in the station. In one embodiment, the information accessing, analysis, and feedback are performed in real time. Additional descriptions of the station, engine, entities, activities, analytics and feedback are discussed in other sections of this detailed description,

[0070] It is also appreciated that accessed information can include general information regarding the station (e.g., environmental information, generic identification of the station, activities expected in station, a golden rule for the station, etc.). Environmental information can include ambient aspects and characteristics of the station (e.g., temperature, lighting conditions, visibility, moisture, humidity, ambient aroma, wind, etc.).

[0071] It also appreciated that some of types of characteristics or features can apply to a particular portion of a station and also the general environment of a station. In one exemplary implementation, a portion of a station (e.g., work bench, floor area, etc.) can have a first particular visibility level and the ambient environment of the station can have a second particular visibility level. It is appreciated that some of types of characteristics or features can apply to a particular entity in a station and also the station environment. In one embodiment, an entity (e.g., a human, robot, target object, etc.) can have a first particular temperature range and the station environment can have a second particular temperature range.

[0072] The action recognition and analytics system 100, 500 can be utilized for process validation, anomaly detection and/or process quality assurance in real time. The action recognition and analytics system 100, 500 can also be utilized for real time contextual training. The action recognition and analytics system 100, 500 can be configured for assembling training libraries from video clips of processes to speed new product introductions or onboard new employees. The action recognition and analytics system 100, 500 can also be utilized for line balancing by identifying processes, sequences and/or actions to move among stations and implementing lean processes automatically. The action recognition and analytics system 100, 500 can also automatically create standardized work charts by statistical analysis of processes, sequences and actions. The action recognition and analytics system 100, 500 can also automatically create birth certificate videos for a specific unit. The action recognition and analytics system 100, 500 can also be utilized for automatically creating statistically accurate ergonomics data. The action recognition and analytics system 100, 500 can also be utilized to create programmatic job assignments based on skills, tasks, ergonomics and time. The action recognition and analytics system 100, 500 can also be utilized for automatically establishing traceability including for causal analysis. The action recognition and analytics system 100, 500 can also be utilized for kitting products, including real time verification of packing or unpacking by action and image recognition. The action recognition and analytics system 100, 500 can also be utilized to determine the best robot to replace a worker when ergonomic problems are identified. The action recognition and analytics system 100, 500 can also be utilized to design an integrated line of humans and cobot and/or robots. The action recognition and analytics system 100, 500 can also be utilized for automatically programming robots based on observing non- modeled objects in the work space.

[0073] Referring now to Fig. 11, a method of process validation, anomaly detection and or quality assurance, in accordance with aspects of the present technology, is shown. The method can include accessing a representative data set including one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters, at 1110. The indicators of the processes, actions, sequences, objects and parameters can be of a previous portion of one or more sensor streams. The previous portion can be associated with a previous cycle of one or more sensor streams. In one implementation, one or more engines 170 can be configured to access the representative data set stored in one or more data structures on one or more data storage units 140. In another implementation, the representative data set and the previous portion of one or more sensor streams can be blockchained. The blockchaining can be applied across the cycles, sensor streams, stations, supply chain and or the like. The representative data set can include indicators of one or more cycles, processes, actions, sequences, objects and or parameters for a previous cycle of one or more sensor streams. The representative data set may be a golden or benchmark data set against which all other data sets are compared. In one implementation, the

representative data set can be automatically generated, by the one or more engines 170, based upon a statistical analysis of one or more previous cycles. In a manufacturing implementation, the parameters can include product type, make, model, serial number, station, assembly line, plant, factory, operator, date, time, shift, quantity, part number, supplier, and or the like.

[0074] At 1120, a current data set including one or more identifiers of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters for a current portion of one or more sensor streams can be received. The current portion can be associated with a current cycle of the one or more sensor streams. In one implementation, the one or more engines 170 can be configured to determine, in real time, the current data set from the current cycle of the one or more sensor streams. The current data set can include indicators of at least one of one or more processes, one or more actions, one or more sequences, one or more objects and/or one or more parameter values for a current cycle of one or more sensor streams.

[0075] At 1130, the current data set can be compared to the representative data set. In one implementation, comparing the current data set to the representative data can include generating a representation including a finite state machine and a state transition map based on the representative data set. Comparing the current data set to the representative data can further include inputting the current data set to the representation including the finite state machine and the state transition map. The state transition map at each station can include a sequence of steps some of which are dependent on others. Due to this partial dependence, the process can be represented as a partially-ordered set (poset) or a directed acyclic graph (DAG) wherein the numbers of the set (node of the graph) can be used to store the representative data set values corresponding to those steps. The finite state machine can render the current state of the station into the map. In one implementation, the comparison can determine if actions in the representative data set are present in the current data set. In another implementation, the comparison can determine in one or more differences between the current data set and the representative data set. In another implementation, the presence of additional action in the current data set, which are not present in the representative data set, can be detected in using the statistical and other properties of the representative data set. The differences can include, for example, a variance such as time of completion of a process, action or sequence. In another example, the difference can include an omission of a process, action, sequence or object. The determination of a difference may be based on a corresponding error band. For example, if a parameter value in the current data set is outside a predetermined statistical bound of the corresponding parameter value in the representative data set than the current parameter value may be considered to be a deviation from the representative parameter value. In another implementation, the comparison can validate that the current data set conforms to the representative data set, optionally within one or more corresponding error bands. The comparison of the current data set to the representative data set can be determined in real time, post facto, on demand, or the like.

[0076] In one implementation, the comparison between the current data set and the representative data set can determine one or more differences between one or more indicators of at least one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters associated with a human actor. In another implementation, the comparison between the current data set and the representative data set can determine one or more differences between one or more indicators of at least one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters associated with a machine actor such as a robot. For example, a bottling machine may fail to properly seal bottles when a part on the bottling machine works loose.

Accordingly, the current data set may include one or more indicators, one or more parameters and or the like associated with screws in the bottling machine that start vibrating indicating that the part of the bottling machine is working loose before resulting failures begin to occur. In such case the result of the comparison can be an alarm to perform maintenance on the bottling machine.

[0077] At 1140, a result of the comparison of the current data set to the representative data set can be output. In one implementation, the one or more engines 170 can output a result of the comparison to an actor, such as a worker. The results of the comparison can include deviations such as instruction deviations including steps that have been skipped or added, timing deviations including steps that took too long or not long enough, sequence deviations including steps being executed in the incorrect order, process deviations wherein steps that need to be performed are missed, and/or the like. Accordingly, the one or more engines 170 can automatically compare cycles, processes, actions, sequences, objects, parameters and or the like captured in one or more sensor data streams, and send non-intrusively and contextually alerts in real time to an actor. The results can be communicated to actors using various modes including but not limited to audio, visual, haptic or the like. For example, the results can be presented on a display, a haptic display, an Augment Reality (AR) interface, Virtual Reality (VR), or the like. The results of the comparison can be output in real time, post facto, one demand, or the like.

[0078] Referring now to FIG.12, an exemplary result of a comparison of the current data set to the representation data set, in accordance with aspects of the present technology, is shown. As illustrated, a graphical user interface 1200 can be produced by a front-end unit 190 of the one or more engines 170 on an interface 155, such as a monitor, at a given station 110. The graphical user interface 1200 can include a device view representation 1210 and or a list view

representation 1220 of the representative data set. As elements in the current data set are matched to the elements in the representative data set, a visual attribute such as coloring, shading, lighting, or the like can change to show adherence and/or deviations in one or more cycles, processes, actions, sequences, objects, parameters and/or the like between the current data set and the representative data set. For example, when a hard drive is determined to be in the correct position, the color of the hard drive in a device view can change from a first shading 1230 to a second shading 1240. In another example, one or more processes, actions, sequences, objects and or parameters can be displayed in a first color 1250 in a list view. The current pending cycle, process, action, sequence, object and/or parameter can be displayed in a second color 1260. The processes, actions, sequences, obj ects and/or parameter in the current data set that have been successfully performed and matched to the representative data set can be displayed in a third color 1270.

[0079] Referring now to FIG. 13, another exemplary result of a comparison of the current data to the representative data set, in accordance with aspects of the present technology, is shown. As illustrated, a graphic user interface 1300 can include a log of alarms 1310 output to corresponding actors 1320, the time of the alarm 1330, and a link to the corresponding portion of one or more sensor data streams, among other data.

[0080] Referring again to FIG. 11 , one or more indicators can optionally be received from an actor in response to the result of the comparison, at 1 150. In one implementation, a front-end unit 190 of the one or more engines 170 can receive an input from an actor via a touch screen display in response to the result of the comparison. For example, a worker can indicate that a determined difference is erroneous or has been corrected by selecting a corresponding button in a graphical user interface.

[0081] Referring now to FIG. 14, yet another exemplary result of a comparison of the current data set to the representative data set, in accordance with aspects of the present technology, is shown. As illustrated, the graphic user interface 1400 generated by the one or more front-end units 190 can include an output field for displaying the discrepancy 1410, a first input button for selecting that the discrepancy has been corrected 1420, a second input button for indicating that the determined discrepancy is in error 1430, and/or the.

[0082] At 1160, the one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters associated with a current portion of the plurality of sensor streams can also be updated based on the received one or more indicators. At 1170, the one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters of the representative data set can also or alternatively be updated based on the received one or more indicators. In one implementation, the one or more engines 170 can update the current data set and or

representative data set.

[0083] Referring now to FIGS. 15A and 15B, a method of creating work charts, in accordance with aspects of the present technology, is shown. The method can include receiving one or more given indicators or criteria, at 1510. In one implementation, the one or more engines 170 can receive one or more indicators or criteria, such as a given time period, an average duration, a fasters duration for the cycles or for a given task, a slowest duration for the cycles or a given task, a distribution, a line identifier, a worker identifier, a distribution of a sequence and or the like.

[0084] At 1520, one or more given data sets can be accessed based on the one or more given indicators or criteria. The data sets can include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters in one or more sensor streams for a subj ect. The subject can include an article of manufacture, a health care service, warehousing transaction, a shipping transaction, a retail transaction, or the like. In one implementation, the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters of the data sets can be indexed to corresponding portions of one or more sensor streams. In one implementation, one or more engines 170 can be configured to access one or more given data sets stored in one or more data structures on one or more data storage units 175. In one implementation, the data sets and the corresponding portions of one or more sensor streams can be blockchained to protect the integrity of the data. The blockchaining can be applied across the cycles, sensor streams, stations, supply chain and or the like.

[0085] At 1530, a representative data set for the subject can be determined from the one or more given data sets based on the one or more given indicators or criteria. The representative data set can include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters of the subj ect satisfying one or more of the given parameters or criteria. In one implementation, the one or more engines 170 can be configured to statistically analyze the one or more given data sets to determine the representative data set for the subject.

[0086] At 1540, a work chart for the subj ect can be created from the representative data set. The work chart can include a plurality of work elements and dependencies between the work elements. In one implementation, the one or more engines 170 can be configured to create the work chart from the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters of the representative data set. In one implementation, the plurality of work elements and dependencies between the work elements can be indexed to the corresponding indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters of the representative data set.

[0087] At 1550, the work chart can be output. In one implementation, the one or more engines 170 can be configured to out the work chart in a graphics user interface for display to a user. In one implementation, the work chart can be created for any, every or a selection of cycles. For example, a work chart can be created for a selection of cycles in a given time period specified by the received one or more given indicators or criteria. In another example, a work chart can be created for every sequence detected in the one or more sensor streams. In another example, a chart can be created based on an average duration of cycles, processes, sequences and or actions. In yet another example, a chart can be created for a fastest or slowest possible duration for a cycle or each task. In addition, a work chart can be created to show a distribution of different sequences of tasks in a plot. For example, a long-tail of a distribution can show that given sequences are followed, whereas equal distribution shows no one sequence is followed by a majority of workers. A most or least efficient sequence performed can be identified from the distribution. Similarly, a sequence with the most deviation can be identified.

[0088] Referring now to FIG. 16, an exemplary work chart, in accordance with aspects of the present technology, is shown. As illustrate, the work chart can include a plurality of work element 1610-1630 and dependencies 1640, 1650 between the work elements 1610-1630. In one implementation, the work chart can be organized based on a lean framework. The lean work chart can include work that can be characterized as value added work and nonvalue added work. The non-value-added work can include necessary, walking and idle. Value added work can be work which adds value to the subject. Non-value added, but necessary work, can be work that does not add value to the end subject but is necessary. A non-value-added walking work can be the work of moving between machines or between areas of a station. Non-value-added idle work can be work that neither adds value to the end subject, nor is necessary to be able to provide the end subject. Various types of delays, such as late shipments, are example of non-value-added idle work. Non-value-added idle work should be eliminated or reduced whenever possible. In accordance with aspects of the present technology, the work charts can be based on statistical data derived from one or more sensor streams over many cycles that capture data tens of time a second. The resolution, accuracy and breadth of the data from the one or more sensor streams allow the processes to be constantly adjusted to gain efficiencies in fields where even a small decimal percentage increase can be a big win.

[0089] Referring now to FIG. 17, an exemplary work chart, in accordance with aspects of the present technology is shown. The work chart can be a standardized work chart, which illustrates the progress through a cycle of one or more processes, one or more actions, one or more sequences, one or more objects and or one or more parameters including the associated time. The horizontal direction can represent the time required for tasks and the vertical direction can represent the time between tasks. Statistical values, such as mean and standard deviation, can be calculated for each step. These times can then be compared to the time available to complete a task to meet production requirements (takt). The standardized work chart provides a way to visualize a process to determine where and how much improvement can be made.

[0090] Referring again to FIGS. 15A and 15B, the work charting method can further include receiving a selection of a work element, at 1560. In one implementation, the one or more engines 170 can be configured to receive a selection of a given work element of the work chart. For example, a user can click on a given work element in a graphical user interface.

[0091] At 1570, one or more indicators of at least one of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, one or more parameters, and or corresponding portions of the plurality of sensor streams indexed by the selected model element can be retrieved. In one implementation, the engine 170 can be configured to access one or more data structures in one or more data storage units 175 to retrieve one or more cycles, processes, actions, sequences, objects and or parameters of the representative data set indexed by the selected model element. The one or more engines 170 can also be configured to access one or more data structures in the one or more data storage units 175 to retrieve corresponding portions of one or more sensor streams indexed by the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters of the representative data set.

[0092] At 1580, the one or more indicators of at least one of the one or more of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, one or more parameters, and or corresponding portions of the plurality of sensor streams can be output for the selected model element. In one implementation, the one or more engines 170 can be configured to output the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, one or more parameters, or corresponding portions of the plurality of sensor streams in the graphics user interface for display to the user.

[0093] In aspect, the action recognition and analytics method can create a work chart of an entire assembly process, step by step at each station for every instance of a subj ect produced. Work charts can also be created based on one or more specified indicators and or criteria. The work chart can also be linked to corresponding indicators of cycles, processes, actions, sequences, objects, parameters and or corresponding portions of sensor streams of a

representative instance of a subject.

[0094] Referring now to FIG. 18, an action recognition and analytics method of birth certificate creation, in accordance with aspects of the present technology, is shown. The method can include receiving one or more sensor streams, at 1810. In one implementation, one or more engines 170 can be configured to receive a plurality of sensor streams from one or more sensors disposed at one or more stations.

[0095] At 1820, one or more indicators of at least one of one or more cycles, one or more processes, one or more action, one or more sequences, one or more objects, and one or more parameters can be received. The one or more indicators can be received in real time, post factor, one demand or the like. The indicators of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and or one or more parameters can be received for a corresponding instance of a subject associated with a current cycle in the one or more sensor streams disposed at one or more stations. The subject can include an article of manufacture, a health care service, warehousing transaction, a shipping transaction, a retail transaction, or the like.

[0096] In one implementation, the one or more engines 170 can be configured to detect a plurality of processes including one or more actions arranged in one or more sequences and performed on one or more obj ects, and one or more parameters. The one or more engines 170 can also be configured to detect a plurality of cycles of the processes, actions, sequences, objects and or parameters in the sensor streams. The one or more engines 170 can be configured to generate time stamps for the determined cycles, processes, actions, sequences, objects, and or parameters based upon the time stamps in corresponding portions of the one or more sensor streams. The one or more engines 170 can also be configured to determine indicators of the one or more sensors, the one or more sensor streams, the one or more cycles, the one or more processes, the one or more actions, the one or more sequences, the one or more objects, and or the one or more parameters. In a manufacturing implementation, the parameters can include product type, make, model, serial number, station, assembly line, plant, factory, operator, date, time, shift, quantity, part number, supplier, and the like.

[0097] At 1830, a unique identifier of the corresponding instance of the subject can be accessed. The unique identifier can be a serial number of an article of manufacture, a patient identifier in a health care service, a tracking number in a shipping transaction, a purchase order in a retailing transaction, or the like. In one implementation, the one or more engines 170 can be configured to receive a unique identifier of the corresponding instance of the subject. For example, a serial number of an article of manufacture can be received by the one or more machine learning back-end units 135 from a Manufacturing Execution System (MES). In another example, a patient identifier can be received from a patient management system. In another implementation, the one or more engines 170 can be configured to generate the unique identifier. The one or more engines 170 can generated the unique identifier using an algorithm based on the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters for the corresponding instance of the subject. For example, the start of a new cycle can be determined from the indicators of the cycles, processes, actions, sequences, object and or parameter, and a new unique identifier can be assigned to each product associated with each new cycle. The one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters can alternatively include the unique identifier of the corresponding instance of the subject. For example, a bar code label on an object can be detected by the one or more engines 170 and used as or generated from the unique identifier of the corresponding instance of the subject.

[0098] At 1840, the one or more sensor streams can be stored in one or more data structures. In one implementation, the one or more engines 170 can be configured to store the one or more sensor streams in one or more data structures on the one or more data storage units 175.

[0099] At 1850, a data set mapped to the unique identifier of the corresponding instance of the subject can be stored in the one or more data structures. The data set can include the one or more indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more obj ects and one or more parameter indexed to corresponding portions of the one or more sensor streams for the corresponding instance of the subject associated with the current cycle. In one implementation, the one or more engines can be configured to store the data set mapped to the unique identifiers of the corresponding instance of the subject in the one or more data structures on the one or more data storage units 175. The one or more cycles, processes, actions, sequences, objects and or parameters can be indexed to corresponding portions of the one or more sensor streams by respective time stamps. The data set and the corresponding portions of one or more sensor streams can be blockchained to protect the integrity of the data. The blockchaining can be applied across the cycles, sensor streams, stations, supply chain and or the like.

[00100] In aspect, the action recognition and analytics method can create a data stream birth certificate record of an entire assembly process, step by step at each station for every instance of a subject produced. The birth certificate, can for example, string together snippets of videos of the actions performed at each of the one or more stations into a single video, with the serial number of the unit as the unique identifier. The birth certificate can therefore include a record of the entire manufacturing process across the whole assembly line for each individual product.

[00101] The action recognition and analytics system can also be utilized for retrieving a birth certificate for a given instance of a subject. Referring now to FIG. 19, an action recognition and analytics method of retrieving a birth certificate, in accordance with aspects of the present technology, is shown. The method can include receiving one or more given indicators, at 1910. In one implementation, the one or more engines 170 can be configured to receive one or more given indicators, such as a serial number or a range of serial numbers, a date range, an identifier of a parts supplier or the like. For example, a manager, quality assurance agent or the like can enter a serial number of an article of manufacture, a patient identifier in a health care service, a tracking number in a shipping transaction, a purchase order in a retailing transaction, or the like. In another example, a manager, quality assurance agent or the like can enter an identifier of a supplier of a battery used in the product.

[00102] At 1920, one or more given data sets corresponding to one or more instance of a subject can be accessed based on the one or more given indicators. The one or more data sets can include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters indexed to corresponding portions of the one or more sensor streams. In one implementation, the one or more engines 170 can be configured to retrieve the one or more given data sets for one or more instances of a subject from one or more data structures stored on the data storage unit 175 based on the one or more given indicators. The retrieved one or more given data sets can include the indicators of the cycles, processes, actions, sequences, objects and or parameters indexed to corresponding portions of the sensor streams for the given instance of the subject. [00103] At 1930, corresponding portions of the one or more sensor streams indexed by the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters of the one or more given data set can be accessed. In one implementation, the one or more engines 170 can be configured to retrieve corresponding portions of the sensor streams indexed by the indicators of the cycles, processes, actions, sequences, objects and or parameters for the given one or more data sets from the one or more data structures on the data storage unit 175.

[00104] At 1940, the corresponding portions of the one or more sensor streams and the corresponding indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters can be output for the corresponding one or more instances of the subject. In one implementation, the one or more engines 170 can be configured to output the corresponding portions of the sensor streams and the corresponding indicators of the cycles, processes, actions, sequences, objects and or parameters for the one or more given instance of the subject. For example, the one or more engines 170 can generate a graphics user interface including the corresponding portions of the sensor streams and the cycles, processes, actions, sequences, objects and or parameters for presentation on a monitor to one or more actors. If the received one or more given indicators was a single serial number, a birth certificate including the portions of the one or more sensor streams for the corresponding cycle can be output. In addition, birth certificate can also include the corresponding indicators for the processes, actions, sequences, object and or parameters for the given serial number can also be output. If a range of serial numbers were entered, birth certificates including the corresponding sensor streams and data sets for each serial number can be output. If an identifier of a given part supplier is entered, birth certificates for each item made with parts from the given part supplier can be output.

[00105] Referring now to FIG. 20, an exemplary birth certificate with corresponding portions of sensor data streams, in accordance with aspects of the present technology, is shown. As illustrated, a graphical user interface 2000 can be produced by the analytics front-end unit 145 on a monitor. The graphical user interface 2000 can include a search field 2010 for entry of a unique identifier, such as a serial number, of a given instance of a subject. The graphical user interface 2000 can also include a preview list 2020 and or a device view representation 2030 of the data set corresponding to a given instance of the subject. The preview list 2020 can provide thumbnail previews of sensor data streams from one or more sensors at one or more stations, and indicators of the processes, actions, sequences, objects and or parameters for a given unique identifier. The device view representation 2030 can display the corresponding portions of the sensor data streams from the one or more sensors at the one or more stations. In addition, an actor can select a given one of the thumbnail previews to cause the device view representation 2030 to jump to displaying a given corresponding portion of the sensor data stream.

[00106] The birth certificate can, for example, string together snippets of videos of the cycle, processes, actions, sequences, objects and or parameters performed at each station into a single video, with the serial number of the unit as the unique identifier. An actor can then observe a unit's assembly from start to finish, across multiple stations, across time, and even across different facilities simply by typing in a serial number. Access to these videos make it possible to resolve product issues identified in Quality Assurance (QA), in warranty or recall, in the field service call, or the like. The birth certificate can be used to trace the source of materials, sub-assemblies, and or the like, used to manufacture goods for root cause analysis, warranty claims, regulator audits, and or the like up and down the supply chain.

[00107] Referring now to FIGS. 21A and 21B, a method of establishing traceability, in accordance with aspects of the present technology, is shown. The method can include receiving one or more given indicators of a subject, at 2110. The subject can include an article of manufacture, a health care service, warehousing transaction, a shipping transaction, a retail transaction, or the like. In one example, the one or more given indicators can be a serial number or a range of serial numbers. In another example, the one or more given indicators can be a part number. In yet another example, the one or more given indicators can be a date range. In yet another example, the one or more given indicators can be an identifier of a particular worker, an assembly line, a parts manufacture or the like. In one implementation, the one or more given indicators can be associated with an issue, such as a manufacturing defect. In one

implementation, the one or more engines 170 can be configured to receive one or more indicators associated with an issue with the subject.

[00108] At 2120, a work model for the subject can be accessed. The work model can include a plurality of model elements and dependencies between the model elements. In one implementation, the one or more engines 170 can be configured to access a work model for the given entity stored in one or more data structures in one or more data storage units 175.

[00109] At 2130, a given model element associated with the issue can be determined. At 2140, one or more related model elements associated with the given mode element by one or more dependencies between the model elements can be determined. In one implementation, the one or more engine 170 can configured to determine a given model element and the one or more related elements associated with the given model element.

[00110] At 2150, one or more data sets can be accessed based on the one or more given indicators. The given one or more data sets can include one or more indicators of at least one of one or more cycles, one of one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters indexed to corresponding portions of a plurality of sensor streams. In a manufacturing implementation, the parameters can include product type, make, model, serial number, station, assembly line, plant, factory, operator, date, time, shift, quantity, part number, supplier, and the like. The one or more data set and the corresponding portions of one or more sensor streams can be blockchained to protect the integrity of the representative data set and the corresponding portion of the one or more sensor streams. The blockchaining can be applied across the cycles, sensor streams, stations, supply chain and or the like. In one implementation, the one or more engines 170 can be configured to access one or more given data sets based on the one or more given indicators. The one or more given data sets can be store in one or more data structures on one or more data storage units 140. If the one or more given indicators included a date range, for example, the data sets for a product manufacture within that date range could be accessed. If the one or more given indicators included a serial number of a specific unit, a data set for the specific unit could be accessed, in another example.

[00111] At 2160, the work model can be output. The work model can include identifiers of one or more dependencies between model elements. The work model can also include an identifier of the given element associated with the one or more given indicators. The work model can also include identifiers of one or more related model elements associated with the given model element. The work model can also include pointers to the one or more indicators of at least one of one or more cycles, one of one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters for the given data set. The work model can also include pointers to corresponding portions of the plurality of sensor streams for the given data set. In one implementation, the one or more engines 170 can be configured to output the work model on a display. For example, the work model can be displayed in a graphical user interface to an actor, such as a manager, quality assurance agent or the like.

[00112] Referring now to FIG.22, an exemplary work model, in accordance with aspects of the present technology, is shown. As illustrated, a graphical user interface 2200 can be produced by the one or more engines 170. The graphical user interface 2200 can include a search field 2210 for entry of one or more indicators associated with an issue with a given subject, such as a part number of a faulty part. A work model 2220 for the given entity can be displayed in the graphical interface. The work model 2220 can include a plurality of model elements arranged in one or more groups. For example, the model elements may be arranged based on a work flow on one or more assembly lines, one or more sub-assembly lines, and or the like. The work model 2220 can also include identifiers 2230 of dependencies between the model elements. For example, dependencies between model elements can be represented by visual attributes such as arrows between dependent model elements. The work model 2220 can also include an identifier of the given model element 2240 associated with an issue. For example, a visual attribute such as a colored dotted box and a numerical value can identify the given model element 2240 associated with the issue. The work model can also include identifiers of one or more related model elements 2250, 2260 associated with the given model element. For example, model elements related to the given model element can also include visual attributes such as colored dotted boxes and corresponding numerical values. Accordingly, searching for a specific part number and or serial number of the unit can result in an understanding of where, when and how a specific unit was assembled. The manufacturer can therefore readily understand the part's relation to other components. For example, when an issue is identified in step 4, the system can automatically identify dependencies in steps 1 through 3, and steps 5 through 6.

[00113] Referring again to FIGS. 21 A and 21B, a selection of a model element in the outputted work model can be received, at 2170. In one implementation, the one or more engines 170 can be configured to receive a selection of a model element in the work model output in the graphical user interface. At 2180, the one or more indicators of at least one of one or more cycles, one of one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters, and or corresponding portions of the plurality of sensor streams for the selected model element can be output. In one implementation, the one or more engines 170 can be configured to output one or more processes, actions, sequences, objects, parameters, and or corresponding portions of the plurality of sensor streams for the selected model element in the graphical user interface. For example, a user can click on a related model element 1250 and the graphical user interface can play one or more video sensor streams from a corresponding station in the sub-assembly line represented by the selected model element. One or more processes, actions, sequences, objects and or parameters corresponding to the selected model element can also be displayed along with the video sensor streams.

[00114] The above described work model can establish traceability within a manufacturing, health care, warehousing, shipping, retailing or other similar context. The work model can be utilized in root cause analysis to identify a source of a core issue. A user can quickly traverse the assembly process to determine key assembly points. For example, there is no point to trying to debug a fuel system if a car is having an issue with its air bags. Conversely, knowing the four steps involved in assembling, transporting and installing the airbag can be far more relevant to the problem at hand. The graph of the work model enables interrelationships between components, subassemblies and the like to be rapidly and accurately explored, post facto. Once a particular model element, representing an assembly sequence, has been identified, a corresponding composite video can be displayed that shows what exactly happened to the faulty component through its assembly and integration into the article of manufacture.

[00115] Referring now to FIG. 23, a method of generating a work model, in accordance with aspects of the present technology, is shown. The method of generating a work model can include accessing a plurality of data sets including one or more indicators of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters indexed to corresponding portions of one or more sensor streams, at 2310. The one or more data set and the corresponding portions of one or more sensor streams can be blockchained to protect the integrity of the representative data set and the corresponding portion of the one or more sensor streams. In one implementation, one or more engines 170 can be configured to access the plurality of data sets stored in one or more data structures on one or more data storage units 175.

[00116] At 2320, the plurality of data sets can be statistically analyzed to determine a work model. In one implementation, the one or more engines 170 can be configured to statistically analyze the one or more indicators of the one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters in the plurality of data sets to determine the work model. The work model can include a plurality of model elements and dependencies between the model elements.

[00117] Referring now to FIG. 24, a method of kitting products, in accordance with aspects of the present technology, is shown. The method can include receiving one or more given indicators, at 2410. In one implementation, one or more engines 170 can receive one or more given indicators, such as an indicator of a particular market, an indicator of a particular product color, or the like. A given one of one or more manifest data sets can be accessed based on the one or more given indicators, at 2420. In one implementation, the one or more engines 170 can be configured to access the given one of one or more manifest data sets stored in one or more data structures on one or more data storage devices 175 based on the given one or more received given indicators. The manifest data set can include one or more identifiers of at least one of one or more objects, one or more sequences and one or more parameters for a package kit. The manifest data set can also include one or more identifiers of one or more cycles, one or more processes, one or more actions and or one or more sequences. For example, a manifest data set for packaging a subject for a European market can be accessed based on a received given indicator of a European market. The given manifest data set for European market may include an object indicator specifying a European compliant power charger (e.g., 220V charger). If the given indicator was for a North American market, the given manifest data set accessed may include an object indicator specifying a North American compliant power charger (e.g., 110V charger). The manifest data set can optionally be blockchained in the one or more data structures on the one or more data storage devices 140 to protect the integrity of the manifest data set.

[00118] At 2430, a package data set including one or more indicators, determined in real time, from one or more sensor streams for an assembly of a current package can be received. The one or more indicators can include of at least one of one or more objects, one or more sequences, and one or more parameter values. In one implementation, the one or more engines 170 can be configured to receive one or more objects, one or more sequences, and one or more parameters detected in one or more sensor streams. In one implementation, the one or more objects, one or more sequences, and one or more parameters detected in one or more sensor streams can correspond to a process of packaging a product. In another implementation, the one or more objects, one or more sequences, and one or more parameters detected in one or more sensor streams can correspond to a process of unpackaging a product.

[00119] Referring now to FIG. 25, an exemplary action recognition view, in accordance with aspects of the present technology, is shown. The one or more engines 170 can detect a box 2510, a pair of ear buds 2520, a power supply 2530, a smart phone 2540, a product pamphlet 2550, and a box cover 2560. The one or more engines 170 can also detect one or more sequences, including placing the pair of ear buds 2520 on a left side of a lower level in the box 2510, and placing the power supply 2530 on a right side of the lower level in the box 2510. The detection of the sequence may be important because the objects may need to be packed in a specific order in order to fit in a smallest possible form factor box 2510 with box cover 2560.

[00120] Referring again to FIG. 241, the given manifest data set can be compared to the package data set for the current package, at 24140. In one implementation, comparing the manifest data set to the package data set can include generating a representation including a finite state machine and a state transition map based on the manifest data set. Comparing the package data set to the manifest data can further include inputting the package data set to the representation including the finite state machine and the state transition map. The state transition map at each station can include a sequence of steps some of which are dependent on others. Due to this partial dependence, the process can be represented as a partially-ordered set (poset) or a directed acyclic graph (DAG) wherein the numbers of the set (node of the graph) can be used to store the representative data set values corresponding to those steps. The finite state machine can render the current state of the station into the map. In one implementation, the comparison can determine, in real time, one or more differences between the package data set and the manifest data set. In another implementation, the comparison can validate that the package data set conforms to the manifest data set.

[00121] At 2450, a result of the comparison of the given manifest data set to the package data set can be output. In one implementation, the one or more engines 170 can be configured to output a result of the comparison to an actor, such as a worker. Accordingly, the action recognition and analytics system 100 can automatically compare objects, parameters and or the like captured in one or more sensor data streams to non-intrusively and contextually send alerts in real time to workers if the packaged data set does not match the manifest data set. The results can be communicated to workers using modes including but not limited to audio, visual, haptic or the like.

[00122] At 2460, the one or more sensor streams can optionally be stored in one or more data structures. In one implementation, the one or more engines 170 can be configured to store the sensor streams in one or more data structures on one or more data storage units 175. At 2470, the package data set, of the current package, indexed to corresponding portions of the one or more sensor streams can be stored in the one or more data structures. In one implementation, the one or more engine 170 can be configured to store the packaged data set indexed to corresponding portions of the sensor streams in one or more data structures on one or more data storage units 175. In another implementation, the representative data set and the previous portion of one or more sensor streams can be blockchained. The representative data set and the previous portion of one or more sensor streams can be blockchained to protect the integrity of the representative data set and the corresponding portion of the one or more sensor streams

[00123] At 2480, one or more indicators can optionally be received in response to outputting the results of the comparison of the given manifest data set to the package data. In one implementation, the one or more engines 170 can be configured to receive a selection of one or more indicators of the package data set by a user. [00124] At 2490, the package data set of the current packaged can be updated based on the received one or more indicators. In one implementation, the one or more engines 170 can be configured to update one or more indicators received from an actor in response to outputting the results of the comparison of the manifest data set to the package data. For example, the comparison may indicate that an item of a package is missing. However, the worker may have inadvertently blocked the view of one or more video sensors when placing the given item in the package. The one or more engines 170 can output a message to the worker that the item is missing from the package. The worker, in response, can correct the false negative by signaling that the given part has been put into the package.

[00125] The action recognition and analytics system can also be utilized for retrieving a packing or un-packing record for a given instance of a subject. Referring now to FIG. 26, an action recognition and analytics method of retrieving a packing on un-packing record, in accordance with aspects of the present technology, is shown. The method can include receiving one or more given indicators, at 2610. In one implementation, the one or more engines 170 can be configured to receive one or more given indicators, such as an invoice, tracking number, purchase order, or the like.

[00126] At 2620, one or more given data sets corresponding to one or more instance of a subject can be accessed based on the one or more given indicators. The one or more data sets can include one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters indexed to corresponding portions of the one or more sensor streams. In one implementation, the one or more engines 170 can be configured to retrieve the one or more given data sets for one or more instances of a subj ect from one or more data structures stored on the data storage unit 175 based on the one or more given indicators. The retrieved one or more given data sets can include the indicators of the cycles, processes, actions, sequences, objects and or parameters indexed to corresponding portions of the sensor streams for the given instance of the subject.

[00127] At 2630, corresponding portions of the one or more sensor streams indexed by the one or more indicators of at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects, and one or more parameters of the one or more given data set can be accessed. In one implementation, the one or more engines 170 can be configured to retrieve corresponding portions of the sensor streams indexed by the indicators of the cycles, processes, actions, sequences, objects and or parameters for the given one or more data sets from the one or more data structures on the data storage unit 175. [00128] At 2640, the corresponding portions of the one or more sensor streams and the corresponding indicators of the at least one of one or more cycles, one or more processes, one or more actions, one or more sequences, one or more objects and one or more parameters can be output for the corresponding one or more instances of the subject. In one implementation, the one or more engines 170 can be configured to output the corresponding portions of the sensor streams and the corresponding indicators of the cycles, processes, actions, sequences, objects and or parameters for the one or more given instance of the subject. For example, the one or more engines 170 can generate a graphics user interface including the corresponding portions of the sensor streams and the cycles, processes, actions, sequences, objects and or parameters for presentation on a monitor to one or more actors. In another example, a digital file of the corresponding portions of the sensor streams and the corresponding indicators of the cycles, processes, actions, sequences, objects and or parameters as a packing or un-packing record the one or more given instance of the subject. The packing record can be used to show what was shipped. Similarly, the un-packing record can be used to show what was received or not received.

[00129] In various embodiments, one or more engines (e.g., described herein) can also be utilized for line balancing by identifying processes, sequences and/or actions to move among stations and implementing a lean process automatically.

[00130] A line balancing system in accordance with various embodiments of the present disclosure is able to continuously gather data (e.g., one or more streams of data) at all times that the line is running, including sampling one or more video streams at tens of frames per second, but is not limited to such. Further, a line balancing system in accordance with various embodiments is able to automatically break this data down into the underlying tasks. Therefore, a line balancing system in accordance with various embodiments is able to deliver time and motion data at a level of granularity never before possible. It is noted that a line balancing system in accordance with various embodiments can be implemented with one or more engines as described herein, but is not limited to such. Further, in various embodiments, the rebalancing can be done dynamically or over longer periods of time.

[00131] A line balancing system in accordance with various embodiments of the present disclosure directly benefits from one or more engines (e.g., described herein), which extracts action information and one or more finite state machine systems. The action information, depending on the sampling rate of the vision system (or one or more sensor systems), is accurate to sub-second. For example, accurate and detailed data points for thousands of repetitions of each action (or operation of a production process) are now available. The line balancing system can create statistical measures, from this large data set, for each action in the process.

[00132] Simultaneously (or at substantially the same time) in various embodiments, the finite state machine knows of process dependencies (e.g., within the production line). For example, consider the installation of a hard drive in a server. The mounts need to be in place and attached to the chassis before a hard drive can be fastened to the mounts (and, therefore, the chassis) using four screws. In this case, there are five actions: secure the mounts to the chassis; pick up the four screws; pick up the hard drive; pick up the electric screwdriver; and, using the screwdriver, secure the hard drive using the four screws. The process is dependent on the mount being in place and is agnostic to the order in which the hard drive, screws, and screwdriver are picked up.

[00133] With the time and motion metrics and a knowledge of the process dependencies in hand, the line balancing system in accordance with various embodiments is able to propose one or more optimal reallocation of actions (or tasks or steps or operations) so the cycle time at every station is probabilistically (e.g., to some pre-determined confidence level) at or below the takt time for each action or task. It is noted that the line balancing system in accordance with various embodiments can optimize across all the stations on a line, globally or locally, sequentially or non-sequentially, off-line or in real-time, moving one or more actions (or tasks) to a different station of a production line than initially assigned, but is not limited to such. And, when done, each station is balanced and there is the distinct possibility, depending on how much waste there was in the original production line, of eliminating one or more stations of the production line.

[00134] Simultaneously (or at substantially the same time) in various embodiments, the one or more finite state machines of the line balancing system knows of process dependencies (e.g., within the production line). With the time and motion metrics and a knowledge of the process dependencies in hand, the line balancing system in accordance with various embodiments is able to propose one or more optimal designs for a new product introduction on an existing line. Additionally, the line balancing system can propose optimal designs for new lines which involve substantially the same sets of actions for which the line balancing system has collected data in the past. In these embodiments, the line balancing system can substantially improve upon the efficiency of the traditional iterative process of assembly line design.

[00135] In addition, in various embodiments, the line balancing system incorporates various constraints inherent to any sequential process or assembly line - certain tasks can only be performed in a certain order (for example hard drive mounts must be secured into the chassis before a hard drive can be affixed to them with screws), certain tasks can only be performed at certain stations because the equipment required for said tasks is fixed to certain stations, cost constraints having to do with labor, machine operation or materials costs as well as time and space constraints having to do with materials storage and delivery. In various embodiments, the line balancing system can incorporate some or all of these constraints into the solution process. In addition, in various embodiments, the optimization algorithm used by the tine balancing system can rebalance the line at different time frames. It is often possible, but not necessary, that re-balancing time constraints can lead to tradeoffs in the quality of the solution being generated. Therefore, rapid, real time optimization can be done to tide through the current needs while a more accurate process can be run and deployed at a later time (e.g., in time for the next shift). More generally, different constraints can be incorporated into the optimization performed by the line balancing system depending upon the timescale being considered.

[00136] In addition, in various embodiments, a constrained optimization tool (e.g., linear programming, genetic algorithms, dynamic programming, branch and bound methods, etc.), heuristic approaches or simulation based approaches (e.g., Monte Carlo methods) can be used by a line balancing system to mathematically or programmatically determine a more optimal reallocation of actions (or operations or tasks) to stations on the production line. Given that the data that the line balancing system is gathering reflects the variability in the process, the line balancing algorithm incorporates information about the statistical nature of the data in the solution process.

[00137] In various embodiments, the statistical characteristics of the task data, especially the nature of the variability of the task performance times can involve a novel constrained optimization algorithm which utilizes a new framework to reflect these statistical characteristics. New mathematical techniques are combined with certain existing techniques listed above (in current or modified forms) to implement this framework to solve the line balancing problem. In various embodiments, a line balancing system can implement the following: Given a directed acyclic graph G = (A,P) where the nodes A, represent the actions, and the arrows P represent the precedence relations between the actions, the line balancing system tries to divide the tasks A, into K groups (stations) such that the precedence relations P, are respected. Given statistical distributions of task times d,(t) with means t, corresponding to the actions A,, the time to perform all the tasks to be performed at station j is The cycle time C is the amount of time available to complete the task at each station. In one embodiment, the optimization problem can be defined as the task of minimizing the idle time (C - S j ) for each station subject to the precedence relations P. In other embodiments, a line balancing system may choose to minimize either the idle time or other similar expressions to a given confidence level determined by the distributions d,(t) and adding additional heuristics about line functionality

[00138] Figure 27 illustrates a dashboard interface 2700 in accordance with various embodiments of the present disclosure that shows time taken for each action (or task) at each station of a production line, manufacturing, health care, warehousing, shipping, retail, or similar context. In various embodiments, the dashboard interface 2700 can be implemented as a Graphical User Interface (GUI) that is produced by one or more computing devices (e.g., one or more engines). Specifically, the dashboard interface 2700 can include a graph 2702 wherein the Y-axis represents time in seconds (sec) while the X-axis identifies each station of a production line, manufacturing, health care, warehousing, shipping, retail, or similar context, but is not limited to such. In addition, it is noted that each action (or task) block of the graph 2702 represents an action (or task) performed at each station. Furthermore, the height of each action block represents the time taken to complete that corresponding action of the production line, manufacturing, health care, warehousing, shipping, retail, or similar context. In various embodiments, each station of the plurality of stations of dashboard interface 2700 can be understood as a specific location where one or more actions occur.

[00139] Within the graph 2702 of the dashboard interface 2700, it appears the cycle time taken to complete Actions Al, A2, and A3 at Station A is approximately 690 seconds while the cycle time taken to complete Actions Bl, B2, and B3 at Station B is approximately 600 seconds. In addition, it appears the cycle time taken to complete Actions CI, C2, C3, and C4 at Station C is 950 seconds while the cycle time taken to complete Actions Dl and D2 at Station D is approximately 425 seconds. Furthermore, it appears the cycle time taken to complete Actions El, E2, and E3 at Station E is less than 600 seconds. In various embodiments, the dashboard 2700 can include a "Bottleneck Cycle Time" 2704 of the production line, manufacturing, health care, warehousing, shipping, retail, or similar context, which is currently equal to 950 second and corresponds to the cycle time of completing Actions CI, C2, C3, and C4 at Station C.

Additionally, note that it is undesirable that the Bottleneck Cycle Time 2704 is equal to 950 seconds since it is greater than a predetermined takt time of 900 seconds.

[00140] With reference to Figure 27, within various embodiments, the dashboard interface 2700 can also include additional information such as, but not limited to, "Line Balance Ratio" 2706, "Cycle Time Ratio" 2708, "Units produced" 2710, "Cycles observed" 2712, "Process Errors" 2720. Furthermore, the dashboard interface 2700 can also include sub-category information for the "Cycles observed" 2712 such as, but not limited to, "In-control" 2714, "In- control, with system assistance" 2716, and "Out of control" 2718.

[00141] Within the present embodiment of the dashboard interface 2700, the Line Balance Ratio 2706 is currently equal to 75% and can be defined as a net time of a production line versus a gross time of the production line, but is not limited to such. Additionally, the Cycle Time Ratio 2708 is currently equal to 120% and can be defined as a bottleneck time of the production line versus a takt time of the production line, but is not limited to such.

[00142] It is noted that the description of the dashboard interface 2700 herein includes some references to a production line. However, the dashboard interface 2700 is not in any way limited to implementation with a production line. As mentioned herein, in various embodiments the dashboard interface 2700 can also be implemented for manufacturing, health care, warehousing, shipping, retail, or similar context.

[00143] Figure 28 illustrates the dashboard interface 2700 in accordance with various embodiments of the present disclosure can recommend moving one or more actions (or operations or tasks) of the production line to optimally reduce cycle time for the given line configuration. Note that the dashboard interface 2700 is a part of a line balancing system in accordance with various embodiments of the present disclosure. As described herein, with the time and motion metrics and a knowledge of the process dependencies of the production line, the line balancing system in various embodiments can propose a more optimal reallocation of actions within the graph 2702 so the cycle time at every station is probabilistically (e.g., to some pre-determined confidence level) at or below the takt time for each action or task. In various embodiments, the proposal of a more optimal reallocation of actions can take the form of a recommendation by the dashboard interface 2700 with the graph 2702. Moreover, the line balancing system in various embodiments can move from optimizing the first station to the last station, moving one or more actions (or tasks or operations) to a different station of a production line than initially assigned, but is not limited to such. And, when done, each station is balanced.

[00144] For example, note that the dashboard interface 2700 of Figure 28 has produced (or proposed) a visual recommendation via the graph 2702 to more optimally re-allocate the Action C4 that was performed at Station C to be performed at Station D. Specifically, the dashboard interface 2700 of Figure 28 via the graph 2702 recommends moving the Action C4 to be performed at Station D before Action Dl and Action D2. Therefore, as shown in Figure 28, it appears the cycle time taken to complete Actions C4, Dl, and D2 at Station D is less than 690 seconds, which is advantageously less than the predetermined takt time of 900 seconds. Note that in various embodiments, the dashboard interface 2700 (e.g., under the direction of one or more engines described herein) can recommend moving one or more actions from a station to any other stations (e.g., upstream stations, downstream stations, or any combination thereof).

[00145] Within Figure 28, it is noted that the dashboard interface 2700 indicates as part of the recommendation that the Bottleneck Cycle Time 2704 of the production line would currently be equal to 690 seconds. In addition, the dashboard interface 2700 also indicates as part of the recommendation that the Line Balance Ratio 2706 would currently be equal to 90% and the Cycle Time Ratio 2708 would currently be equal to 76%.

[00146] Figure 29 illustrates the dashboard interface 2700 in accordance with various embodiments of the present disclosure can also recommend moving one or more actions (or operations or tasks) from one or more stations to one or more stations to eliminate one or more stations (e.g., the stations at the end of the line). It is noted that the dashboard interface 2700 is a part of the line balancing system in accordance with various embodiments of the present disclosure.

[00147] For example, the dashboard interface 2700 of Figure 29 via graph 2702 can recommend (or propose) moving Action Bl from Station B to instead be performed at Station A. Specifically, at Station A, Action Bl would be performed after Actions Al, A2, and A3 are performed at Station A. Furthermore, the dashboard interface 2700 of Figure 29 via graph 2702 can recommend (or propose) moving Actions CI and C2 from Station C to instead be performed at Station B. Specifically, at Station B, Actions CI and C2 would be performed after Actions B2, and B3 are performed at Station B. Moreover, the dashboard interface 2700 of Figure 29 via graph 2702 can recommend (or propose) moving Action Dl from Station D to instead be performed at Station C. Specifically, at Station C, Actions Dl would be performed after Actions C3 and C4 are performed at Station C. In addition, the dashboard interface 2700 of Figure 29 via graph 2702 can recommend (or propose) moving Actions El, E2, and E3 from Station E to instead be performed at Station D. Specifically, at Station D, Actions El, E2, and E3 would be performed after Action D2 is performed at Station D. Based on these recommendations of the dashboard interface 2700 of Figure 29 via graph 2702, note that Station E has advantageously been eliminated from the production line. However, it is noted that the dashboard interface 2700 via graph 2702 can recommend moving one or more actions among stations resulting in the elimination of any one or more stations of a production line, manufacturing, health care, warehousing, shipping, retail, or similar context. [00148] Within Figure 29, it is noted that the dashboard interface 2700 also indicates as part of the recommendation that the Bottleneck Cycle Time 2704 of the production line would currently be equal to 900 seconds, which is advantageously equal to the predetermined takt time of 900 seconds. Moreover, the dashboard interface 2700 also advantageously indicates as part of the recommendations that the Line Balance Ratio 2706 would currently be equal to 94% and the Cycle Time Ratio 2708 would currently be equal to 99%.

[00149] It is noted that the dashboard interface 2700 may not include all of the elements illustrated by Figures 27, 28, and 29. In addition, the dashboard interface 2700 can be implemented to include one or more elements not illustrated by Figures 27, 28, and 29. It is pointed out that the dashboard interface 2700 can be utilized or implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00150] Figure 30 is a flow diagram of a method 3000 for line balancing by identifying processes, sequences and/or actions to move among stations and implementing a lean process automatically in accordance with various embodiments of the present disclosure. Although specific operations are disclosed in Figure 30, such operations are examples. The method 3000 may not include all of the operations illustrated by Figure 30. Also, method 3000 may include various other operations and/or variations of the operations shown. Likewise, the sequence of the operations of flow diagram 3000 can be modified. It is appreciated that not all of the operations in flow diagram 3000 may be performed. In various embodiments, one or more of the operations of method 3000 can be controlled or managed by one or more engines (as described herein), by software, by firmware, by hardware or by any combination thereof, but is not limited to such. Method 3000 can include processes of various embodiments of the present disclosure which can be controlled or managed by a processor(s) and electrical components under the control of computer or computing device readable and executable instructions or code. The computer or computing device readable and executable instructions (or code) may reside, for example, in data storage features such as computer or computing device usable volatile memory, computer or computing device usable non-volatile memory, and/or computer or computing device usable mass data storage. However, the computer or computing device readable and executable instructions (or code) may reside in any type of computer or computing device readable medium or memory.

[00151] At operation 3002, one or more sensor streams can be received by one or more engines as described herein. Note that operation 3002 can be implemented in a wide variety of ways. For example, the one or more sensor streams at operation 3002 can include one or more of: video frames, thermal sensor data, force sensor data, audio sensor data, haptic data, and light sensor data, but is not limited to such. Furthermore, the one or more sensor streams at operation 3002 can be associated with a plurality of stations where one or more actions occur at each station, but are not limited to such. It is noted that operation 3002 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00152] At operation 3004 of Figure 30, the one or more engines are utilized to identify one or more actions that are performed at a first station of a plurality of stations within the one or more sensor streams. It is noted that operation 3004 can be implemented in a wide variety of ways. For example, in various embodiments, the plurality of stations of method 3000 can be implemented as part of a production line, manufacturing, health care, warehousing, shipping, retail, or similar context, but is not limited to such. In addition, in various embodiments, each station of the plurality of stations of method 3000 can be understood as a location where one or more actions (e.g., sequential and/or non-sequential) occur. Moreover, in various embodiments, the plurality of stations of method 3000 can include two or more stations. Note that operation 3004 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00153] At operation 3006, the one or more engines are utilized to identify one or more actions that are performed at a second station of the plurality of stations within the one or more sensor streams. Note that operation 3006 can be implemented in a wide variety of ways. For example, in various embodiments, the second station of operation 3006 can be sequentially after or before the first station of the plurality of stations. Moreover, in various embodiments, the plurality of stations of method 3000 can include just the first and second stations. Furthermore, in various embodiments, the plurality of stations of method 3000 can include the first and second stations along with one or more additional stations. In addition, in various embodiments of method 3000, the first station can be sequentially after or before the second station of the plurality of stations. Furthermore, in various embodiments of method 3000, the first station and the second station of the plurality of stations are not sequential. Note that operation 3006 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00154] At operation 3008 of Figure 30, the received one or more sensor streams, the identified one or more actions performed at the first station, and the identified one or more actions performed at the second station are stored in one or more data structures by the one or more engines. In addition, at operation 3008, it is noted that the identified one or more actions performed at each of the first and second stations are mapped or indexed to the one or more sensor streams by the one or more engines. Note that operation 3008 can be implemented in a wide variety of ways. For example, operation 3008 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00155] At operation 3010, the one or more engines are utilized to characterize each of the identified one or more actions performed at each of the first and second stations to produce determined characterizations thereof. Note that operation 3010 can be implemented in a wide variety of ways. For example, the determined characterizations at operation 3010 can include time taken to perform each of the identified one or more actions performed at each of the first and second stations. Additionally, in various embodiments, the determined characterizations at operation 3010 can include at least one action of the identified one or more actions performed at the first station or second station cannot be moved because of one or more station capability constraints (e.g., equipment and/or physical limitations associated with one or more stations). Furthermore, in various embodiments, the determined characterizations at operation 3010 can include at least one action of the identified one or more actions performed at the first station or second station cannot be moved because of one or more sequence constraints associated with one or more stations. Note that operation 3010 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00156] At operation 3012 of Figure 30, based on one or more of the determined characterizations, a recommendation is produced automatically by the one or more engines to move at least one of the identified one or more actions performed at one of the stations to another station to reduce cycle time. It is noted that operation 3012 can be implemented in a wide variety of ways. For example, in various embodiments at operation 3012, based on one or more of the determined characterizations, a recommendation is produced automatically by the one or more engines to move at least one of the identified one or more actions performed at the first station to the second station to reduce cycle time. Furthermore, in various embodiments at operation 3012, based on one or more of the determined characterizations, a recommendation is produced automatically by the one or more engines to move at least one of the identified one or more actions performed at the second station to the first station to reduce cycle time. In various embodiments, the recommendation at operation 3012 can be produced in real-time while a line is running or offline (or post-facto or on-demand) for later implementation. In various

embodiments, the recommendation at operation 3012 can be produced either dynamically or post-facto, but is not limited to such. In various embodiments, the recommendation

automatically produced at operation 3012 by the one or more engines can be implemented as a visual recommendation (e.g., via one or more displays, via the dashboard interface 1100 being displayed, and the like), as an audible recommendation (e.g., via one or more speakers), as a tactile recommendation, and the like, or any combination thereof, but is not limited to such. Furthermore, the one or more of the determined characterizations at operation 3012 can include the one or more of the determined characterizations described above with reference to operation 3010, but is not limited to such. Note that the operation 3012 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00157] Figure 31 is a flow diagram of a method 3100 for dynamically rebalancing a line when one or more stations go down in accordance with various embodiments of the present disclosure. Although specific operations are disclosed in Figure 31, such operations are examples. The method 3100 may not include all of the operations illustrated by Figure 31. Also, method 3100 may include various other operations and/or variations of the operations shown. Likewise, the sequence of the operations of flow diagram 3100 can be modified. It is appreciated that not all of the operations in flow diagram 3100 may be performed. In various embodiments, one or more of the operations of method 3100 can be controlled or managed by one or more engines (as described herein), by software, by firmware, by hardware or by any combination thereof, but is not limited to such. Method 3100 can include processes of various embodiments of the present disclosure which can be controlled or managed by a processor(s) and electrical components under the control of computer or computing device readable and executable instructions or code. The computer or computing device readable and executable instructions (or code) may reside, for example, in data storage features such as computer or computing device usable volatile memory, computer or computing device usable non-volatile memory, and/or computer or computing device usable mass data storage. However, the computer or computing device readable and executable instructions (or code) may reside in any type of computer or computing device readable medium or memory.

[00158] At operation 3102, one or more sensor streams can be received by one or more engines as described herein. Note that operation 3102 can be implemented in a wide variety of ways. For example, the one or more sensor streams at operation 3102 can include one or more of: video frames, thermal sensor data, force sensor data, audio sensor data, haptic data, and light sensor data, but is not limited to such. In addition, the one or more sensor streams at operation 3102 can be associated with a plurality of stations where one or more actions occur at each station, but are not limited to such. It is noted that operation 3102 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such. [00159] At operation 3104 of Figure 31, the one or more engines are utilized to identify one or more actions that are performed at each of first, second, and third stations of a plurality of stations within the one or more sensor streams. It is noted that operation 3104 can be implemented in a wide variety of ways. For example, in various embodiments, the plurality of stations of method 3100 can be implemented as part of a production line, manufacturing, health care, warehousing, shipping, retail, or similar context, but is not limited to such. In various embodiments, the first, second, and third stations of method 3100 can be arranged in any order (e.g., the first station may be sequentially after the second and third stations, the second station may be sequentially after the first and third stations, the third station may be sequentially before the first and second stations, or the like). In addition, in various embodiments of method 3100, the first, second, and third stations of the plurality of stations are not sequential. Furthermore, in various embodiments, each station of the plurality of stations of method 3100 can be understood as a location where one or more actions (e.g., sequential and/or non-sequential) occur.

Additionally, in various embodiments, the plurality of stations of method 3100 can include three or more stations. Note that operation 3104 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00160] At operation 3106, the received one or more sensor streams and the identified one or more actions performed at each of the first, second, and third stations are stored in one or more data structures by the one or more engines. Furthermore, at operation 3106, it is noted that the identified one or more actions performed at each of the first, second, and third stations are mapped or indexed to the one or more sensor streams by the one or more engines. Note that operation 3106 can be implemented in a wide variety of ways. For example, operation 3106 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00161] At operation 3108 of Figure 31, the one or more engines are utilized to characterize each of the identified one or more actions performed at each of the first, second, and third stations to produce determined characterizations thereof. Note that operation 3108 can be implemented in a wide variety of ways. For example, the determined characterizations at operation 3108 can include time taken to perform each of the identified one or more actions performed at each of the first, second, and third stations. Additionally, in various embodiments, the determined characterizations at operation 3108 can include at least one action of the identified one or more actions performed at the first station, second station, or third station cannot be moved because of one or more station capability constraints (e.g., equipment and/or physical limitations associated with one or more stations). Furthermore, in various embodiments, the determined characterizations at operation 3108 can include at least one action of the identified one or more actions performed at the first station, second station, or third station cannot be moved because of one or more sequence constraints associated with one or more stations. Note that operation 3108 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00162] At operation 3110, a determination is made as to whether one or more stations of the first, second, and third stations has gone down or become inoperable or unusable or inactive. If not, the method 3100 proceeds to the beginning of operation 3110 to repeat it. However, if it is determined at operation 3110 that one or more stations of the first, second, and third stations have gone down or become inoperable or unusable or inactive, the method 3100 proceeds to operation 3112. Note that operation 3110 can be implemented in a wide variety of ways. For example, the determination at operation 3110 can be performed by one or more engines, but is not limited to such. Note that the operation 3110 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00163] At operation 3112 of Figure 31, based on one or more of the determined characterizations, a recommendation is produced automatically by the one or more engines to move the identified one or more actions performed at the one or more downed stations to one or more of the remaining stations. It is noted that operation 3112 can be implemented in a wide variety of ways. For example, in various embodiments at operation 3112, based on one or more of the determined characterizations, a recommendation is produced automatically by the one or more engines to move the identified one or more actions performed at the one or more downed stations (e.g., the third station) to the one or more remaining stations (e.g., the first station and/or the second station). In various embodiments, the recommendation at operation 3112 can be produced in real-time while a line is running or offline (or post-facto or on-demand) for later implementation. In various embodiments, the recommendation at operation 3112 can be produced either dynamically or post-facto, but is not limited to such. In various embodiments, the recommendation automatically produced at operation 3112 by the one or more engines can be implemented as a visual recommendation (e.g., via one or more displays, via the dashboard interface 1100 being displayed, and the like), as an audible recommendation (e.g., via one or more speakers), as a tactile recommendation, and the like, or any combination thereof, but is not limited to such. Furthermore, the one or more of the determined characterizations at operation 3112 can include the one or more of the determined characterizations described above with reference to operation 3110, but is not limited to such. Note that the operation 3112 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00164] Figure 32 is a flow diagram of a method 3200 for dynamically rebalancing a line when one or more stations are added to the line in accordance with various embodiments of the present disclosure. Although specific operations are disclosed in Figure 32, such operations are examples. The method 3200 may not include all of the operations illustrated by Figure 32. Also, method 3200 may include various other operations and/or variations of the operations shown. Likewise, the sequence of the operations of flow diagram 3200 can be modified. It is appreciated that not all of the operations in flow diagram 3200 may be performed. In various embodiments, one or more of the operations of method 3200 can be controlled or managed by one or more engines (as described herein), by software, by firmware, by hardware or by any combination thereof, but is not limited to such. Method 3200 can include processes of various embodiments of the present disclosure which can be controlled or managed by a processor(s) and electrical components under the control of computer or computing device readable and executable instructions or code. The computer or computing device readable and executable instructions (or code) may reside, for example, in data storage features such as computer or computing device usable volatile memory, computer or computing device usable non-volatile memory, and/or computer or computing device usable mass data storage. However, the computer or computing device readable and executable instructions (or code) may reside in any type of computer or computing device readable medium or memory.

[00165] At operation 3202, one or more sensor streams can be received by one or more engines as described herein. It is noted that operation 3202 can be implemented in a wide variety of ways. For example, the one or more sensor streams at operation 3202 can include one or more of: video frames, thermal sensor data, force sensor data, audio sensor data, haptic data, and light sensor data, but is not limited to such. Furthermore, the one or more sensor streams at operation 3202 can be associated with a plurality of stations where one or more actions occur at each station, but are not limited to such. It is noted that operation 3202 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00166] At operation 3204 of Figure 32, the one or more engines are utilized to identify one or more actions that are performed at each of first and second stations of a plurality of stations within the one or more sensor streams. It is noted that operation 3204 can be implemented in a wide variety of ways. For example, in various embodiments, the plurality of stations of method 3200 can be implemented as part of a production line, manufacturing, health care, warehousing, shipping, retail, or similar context, but is not limited to such. In addition, in various

embodiments of method 3200, the first station can be sequentially after or before the second station of the plurality of stations. Furthermore, in various embodiments of method 3200, the first station and the second station of the plurality of stations are not sequential. Moreover, in various embodiments, each station of the plurality of stations of method 3200 can be understood as a location where one or more actions (e.g., sequential and/or non-sequential) occur.

Furthermore, in various embodiments, the plurality of stations of method 3200 can include two or more stations. Note that operation 3204 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00167] At operation 3206, the received one or more sensor streams and the identified one or more actions performed at each of the first and second stations are stored in one or more data structures by the one or more engines. In addition, at operation 3206, it is noted that the identified one or more actions performed at each of the first and second stations are mapped or indexed to the one or more sensor streams by the one or more engines. Note that operation 3206 can be implemented in a wide variety of ways. For example, operation 3206 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00168] At operation 3208 of Figure 32, the one or more engines are utilized to characterize each of the identified one or more actions performed at each of the first and second stations to produce determined characterizations thereof. Note that operation 3208 can be implemented in a wide variety of ways. For example, the determined characterizations at operation 3208 can include time taken to perform each of the identified one or more actions performed at each of the first and second stations. In addition, in various embodiments, the determined characterizations at operation 3208 can include at least one action of the identified one or more actions performed at the first station or second station cannot be moved because of one or more station capability constraints (e.g., equipment and/or physical limitations associated with one or more stations). Moreover, in various embodiments, the determined characterizations at operation 3208 can include at least one action of the identified one or more actions performed at the first station or second station cannot be moved because of one or more sequence constraints associated with one or more stations. Note that operation 3208 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00169] At operation 3210, a determination is made as to whether one or more stations have been added to the first and second stations of the line. If not, the method 3200 proceeds to the beginning of operation 3210 to repeat it. However, if it is determined at operation 3210 that one or more stations have been added to the first and second stations of the line, the method 3200 proceeds to operation 3212. Note that operation 3210 can be implemented in a wide variety of ways. For example, the determination at operation 3210 can be performed by one or more engines, but is not limited to such. It is noted that the operation 3210 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00170] At operation 3212 of Figure 32, based on one or more of the determined characterizations, a recommendation is produced automatically by the one or more engines to move at least one of the identified one or more actions performed at the first and/or second stations to each newly added station. Note that operation 3212 can be implemented in a wide variety of ways. For example, in various embodiments at operation 3212, based on one or more of the determined characterizations, a recommendation is produced automatically by the one or more engines to move at least one of the identified one or more actions performed at the first station to each newly added station. Furthermore, in various embodiments at operation 3212, based on one or more of the determined characterizations, a recommendation is produced automatically by the one or more engines to move at least one of the identified one or more actions performed at the second station to each newly added station. In various embodiments, the recommendation at operation 3212 can be produced in real-time while a line is running or offline (or post-facto or on-demand) for later implementation. In various embodiments, the recommendation at operation 3212 can be produced either dynamically or post-facto, but is not limited to such. In various embodiments, the recommendation automatically produced at operation 3212 by the one or more engines can be implemented as a visual recommendation (e.g., via one or more displays, via the dashboard interface 1 100 being displayed, and the like), as an audible recommendation (e.g., via one or more speakers), as a tactile recommendation, and the like, or any combination thereof, but is not limited to such. In addition, the one or more of the determined characterizations at operation 3212 can include the one or more of the determined characterizations described above with reference to operation 3210, but is not limited to such. It is noted that the operation 3212 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00171] Figure 33 is a flow diagram of a method 3300 for line balancing and proposing more optimal designs for a new product introduction and/or for more optimal designs for new lines automatically in accordance with various embodiments of the present disclosure. Although specific operations are disclosed in Figure 33, such operations are examples. The method 3300 may not include all of the operations illustrated by Figure 33. Also, method 3300 may include various other operations and/or variations of the operations shown. Likewise, the sequence of the operations of flow diagram 3300 can be modified. It is appreciated that not all of the operations in flow diagram 3300 may be performed. In various embodiments, one or more of the operations of method 3300 can be controlled or managed by one or more engines (as described herein), by software, by firmware, by hardware or by any combination thereof, but is not limited to such. Method 3300 can include processes of various embodiments of the present disclosure which can be controlled or managed by a processor(s) and electrical components under the control of computer or computing device readable and executable instructions or code. The computer or computing device readable and executable instructions (or code) may reside, for example, in data storage features such as computer or computing device usable volatile memory, computer or computing device usable non-volatile memory, and/or computer or computing device usable mass data storage. However, the computer or computing device readable and executable instructions (or code) may reside in any type of computer or computing device readable medium or memory.

[00172] Note that operations 3002, 3004, 3006, 3008, and 3010 of Figure 33 can be implemented in any manner similar to that described and/or shown by the operations 3002, 3004, 3006, 3008, and 3010 of method 3000 of Figure 30.

[00173] After operation 3010 of Figure 33, it is noted that method 3300 can perform operation 3302 and/or operation 3304.

[00174] At operation 3302, based on the data and information gathered during method 3300, one or more engines (as described herein) can propose one or more optimal designs for one or more new product introductions on one or more existing lines. Note that operation 3302 can be implemented in a wide variety of ways. For example, in various embodiments, operation 3302 can be implemented for an existing production line, manufacturing, health care, warehousing, shipping, retail, or similar context, but is not limited to such. Note that operation 3302 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00175] At operation 3304 of Figure 33, based on the data and information gathered during method 3300, the one or more engines can propose optimal designs for one or more new lines which involve substantially the same sets of actions for which the line balancing system has collected data in the past. Note that operation 3304 can be implemented in a wide variety of ways. For example, in various embodiments, operation 3304 can be implemented for one or more new production lines, manufacturing, health care, warehousing, shipping, retail, or similar context, but is not limited to such. Note that operation 3304 can be implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00176] Referring now to FIG. 34, a block diagram of an exemplary computing device upon which various aspects of the present technology can be implemented. In various embodiments, the computer system 3400 may include a cloud-based computer system, a local computer system, or a hybrid computer system that includes both local and remote devices. In a basic

configuration, the system 3400 includes at least one processing unit 3402 and memory 3404. This basic configuration is illustrated in Figure 34 by dashed line 3406. The system 3400 may also have additional features and/or functionality. For example, the system 3400 may include one or more Graphics Processing Units (GPUs) 3410. Additionally, the system 3400 may also include additional storage (e.g., removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in Figure 34 by removable storage 3408 and non-removable storage 3420.

[00177] The system 3400 may also contain communications connection(s) 3422 that allow the device to communicate with other devices, e.g., in a networked environment using logical connections to one or more remote computers. Furthermore, the system 3400 may also include input device(s) 3424 such as, but not limited to, a voice input device, touch input device, keyboard, mouse, pen, touch input display device, etc. In addition, the system 3400 may also include output device(s) 3426 such as, but not limited to, a display device, speakers, printer, etc.

[00178] In the example of Figure 34, the memory 3404 includes computer-readable instructions, data structures, program modules, and the like associated with one or more various embodiments 3450 in accordance with the present disclosure. However, the embodiment(s) 3450 may instead reside in any one of the computer storage media used by the system 3400, or may be distributed over some combination of the computer storage media, or may be distributed over some combination of networked computers, but is not limited to such.

[00179] It is noted that the computing system 3400 may not include all of the elements illustrated by Figure 34. Moreover, the computing system 3400 can be implemented to include one or more elements not illustrated by Figure 34. It is pointed out that the computing system 3400 can be utilized or implemented in any manner similar to that described and/or shown by the present disclosure, but is not limited to such.

[00180] The foregoing descriptions of specific embodiments of the present technology have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the present technology and its practical application, to thereby enable others skilled in the art to best utilize the present technology and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.