Introduction

The Simple Tensorflow AI Decision plugin allows one to map it on a process route, execute a pre-trained Tensorflow AI model and use the output result for decision making.

The following are the list of required items before using Simple Tensorflow AI Decision:

  • an exported frozen model of Tensorflow AI model file in .pb format
  • the list of Input Names and each of their Data Type
  • the list of Output Names and each of their Data Type
  • Dictionary file in .csv format (if any)
Please take note that the Decision Tool Plugin will take precedence over existing conventional conditional setup in the Process Builder



Simple Tensorflow AI Decision Properties

Simple Tensorflow AI Decision

NameDescription
Tensorflow Session

The Tensorflow Session properties are defined here:

Sub-elementDescription
Add SessionAdd a Session. see Add Session properties below.
Add Post Processing

When hovering the mouse over the Add Post Processing, a list of Post Processing types will be available as shown below:

  • BeanShell Script - see Add Post Processing - BeanShell Script  properties
  • Image Detection Boxes - see Add Post Processing - Image Detection Boxes properties
  • Values to Labels - see Add Post Processing - Detected Values to Labels properties
  • Euclidean Distance - see Add Post Processing - Euclidean Distance properties
  • Probabilities to Labels - see Add Post Processing - Probabilities to Labels properties
Rules

The Rules properties are defined here:

Sub-elementDescription
Add RuleAdd a Rule. see Add Rule properties below
Add ActionAdds an Action within the ELSE THEN statement. see Add Action properties below



Add Session

Sub-elementDescription
Model
  • Choose File - Select an AI model to run
  • Clear - clear selected AI model

Delete Session
Input Output

When hovering the mouse over the Add Input, a list of Pre-Processing Input types will be available as shown below:

  • BeanShell Script - see Add Input - Beanshell Script properties
  • Image - see Add Input - Image properties
  • Boolean - see Add Input - Boolean properties
  • Audio MelSpectogram - see Add Input - Audio Melspectogram properties
  • File (Bytes) - see Add File(Bytes) - File Bytes properties
  • Numbers - see Add Input - Numbers properties
  • Text - see Add Input - Text properties
Add Outputsee Add Output properties



Add Input

BeanShell Script

Sub-elementDescription
Input NameDefined Input Tensor
Script

Script in Java. Please see  Bean Shell Programming Guide for code example.

Delete Input


Image

Sub-elementDescription
Input NameDefined Input Tensor.
Type
  • Float
  • Double
  • Integer
  • UInt8
  • Long
File Source
  • Retrieve from URL
  • <list of all available Forms>
URL or Image Upload Field ID
  • URL input if Retrieve from URL was selected as the File Source
  • Image Upload Field ID if a Form was selected as the File Source
Width

Width in Integer.

Height

Height in Integer.

Mean

Mean in Integer

Note

If its not defined, set to 1
Scale

Scale in Integer

Note

If its not defined, set to 1
Delete Input


Boolean

Sub-elementDescription
Input NameDefined Input Tensor
Type
  • True
  • False

Delete Input


Audio MelSpectrogram

Sub-elementDescription
Input NameDefined Input Tensor
File Source
  • Retrieve from URL
  • <list of all available Forms>
URL or File Upload Field ID
  • URL input if Retrieve from URL was selected as the File Source
  • File Upload Field ID if a Form was selected as the File Source
WidthWidth in Integer
Height

Height in Integer

FFT SizeFFT Size in Integer
Overlap SizeOverlap Size in Integer
Min Frequency (Hz)Minimum Frequency in (Hz) 
Max Frequency (Hz)Maximum Frequency in (Hz)
Delete Input


File(Bytes)

NameDescription
Input NameDefined Input Tensor
File Source
  • Retrieve from URL
  • <list of all available Forms in this app>
URL or File Upload Field ID
  • URL input if Retrieve from URL was selected as the File Source
  • File Upload Field ID if a Form was selected as the File Source

Delete Input

Numbers

Sub-elementDescription
Input NameDefined Input Tensor
Type
  • Float
  • Double
  • Integer
  • UInt8
  • Long
Number Values (Separated by)separate number values by ;

Delete Input


Text

Sub-elementDescription
Input NameDefined Input Tensor
Type
  • Float
  • Double
  • Integer
  • UInt8
  • Long
Text ValueThe text value inputted to be inserted into the Tensor. Can use Hash Variable.
Dictionary (JSON/CSV)Dictionary in JSON or CSV format
Max LengthMaximum Length 
Leave Empty In Frontcheck to leave the front of the Value as Empty (or whatever value based on the dictionary)
Delete Input


Add Output

Sub-elementDescription
Output NameDefined Output Tensor
Temporary Variable NameThe Output Tensor Value will be inserted into this user-defined Temporary Variable to be later used during Post-Processing
Delete Output



Add Post Processing

BeanShell Script

Sub-elementDescription
Post Processing NameUser-defined variable. Can be used as a Variable in the Rules
Script

Script in Java. Please see  Bean Shell Programming Guide for code example.

Injected variables available for consumption are:-

  • String Name
  • Map tfVariables
  • Map Variables
  • Map tempDataHolder
Delete Post-Processing

Image Detection Boxes

NameDescription
Post Processing NameUser-defined variable. Can be used as a Variable in the Rules
Font Size (pixel)The font size of detected labels in pixels.
File Source
  • Retrieve from URL
  • <list of all available Forms in this app>
URL or Image Upload Field ID
  • URL input if Retrieve from URL was selected as the File Source
  • File Upload Field ID if a Form was selected as the File Source
File Output Source
  • Retrieve from URL
  • <list of all available Forms in this app>
Output Image Upload Field ID
  • URL input if Retrieve from URL was selected as the File Source
  • File Upload Field ID if a Form was selected as the File Source
Output Image File NameUser-defined variable. Name of the output image file.
Labels (TXT)In this field, upload a .txt file containing the labels of the detected classes 
Colors (TXT)In this field, upload a .txt file containing the labels of the detected classes 
Detected Classes<List of classes detected in from output>
Number of DetectedThe number of the classes detected in the input source.
Detected Scores<List of scores detected from output>
Detected Scores Thresholdset the threshold of the detected scores (e.g 0.01)
Detected Boxes<List of detected boxes from output>
Boxes Type
  • Top left Corner (x,y), width & height
  • Top left Corner (y,x), width & height
  • Top left Corner (x,y) & bottom right corner (x,y)
  • Top left Corner (y,x) & bottom right corner (y,x)

Detected Values to Labels

Sub-elementDescription
Post Processing NameUser-defined variable. Can be used as a Variable in the Rules
Get Unique OnlyCheck to get unique values only.
Labels (TXT)Dictionary file in .txt format
Detected Classes<List of classes detected from output>
Number of DetectedThe number of the classes detected in the input source.
Detected Scores<List of scores detected from output>
Detected Scores Thresholdset the threshold of the detected scores (e.g 0.01)
Delete Post-Processing


Euclidean Distance

Sub-elementDescription
Post-Processing NameUser-defined variable. Can be used as a Variable in the Rules
Temporary Variable NameList of Temporary Variables from Output
Temporary Variable NameList of Temporary Variables from Output
Delete Post-Processing


Probabilities to Labels

Sub-elementDescription
Post Processing NameUser-defined variable. Can be used as a Variable in the Rules
Thresholdset the Threshold value e.g. 0.01
Get Highest OnlyCheck to get the highest value only
Labels (TXT)Dictionary file in .txt format
Temporary Variable NameList of Temporary Variables from Output
Delete Post-Processing




Add Rule

NameDescription

Toggle between EQUAL and NOT EQUAL
Split Type
  • AND
  • OR
Add ConditionAdds a Condition within the IF statement. see Add Condition properties below
Add GroupAdds a Group within the IF statement. Properties will be similar in Add Rule properties
Delete Rule
Sort - Click and drag to reorder Rule above or below another Rule
Add ActionAdds an Action within the THEN statement.


Add Condition

NameDescription

Toggle between EQUAL and NOT EQUAL
Variable

User input the variable name. Also accepts the use of Temporary Variable or Post Processing Name

Operation
  • Equal To
  • Greater Than
  • Greater Than Or Equal To
  • Less Than
  • Less Than Or Equal To
  • Is True
  • Is False
  • Contains
  • List Contains
  • In
  • Regex Match
Value

set the input the value of the Variable

Delete Condition



Add Action

NameDescription
Type
  • Transition
  • Workflow Variable
Transition

Will display a selection of all available transitions based on the selected Route inserted as part of the process flow

Note

This field will be displayed if Transition is selected in the Type field.

Workflow Variable

Will display a selection of all available workflow variables based on the current Process

Note

This field will be displayed if Workflow Variable is selected in the Type field.

Value

User to input the value of the selected Workflow Variable. Also accepts the use of Temporary Variable or Post Processing Name

Note

This field will be displayed if Workflow Variable is selected in the Type field.

Delete Action


Download Sample App

Demo AI - Facial Recognition app:

APP_demo_ai_face_recog-demoApp_noPB.zip

Note: The pre-trained AI model below must be added to this app before ready to use.


Pre-trained AI model:

AI Model Download Link

Note: Please download the AI model here, extract the zip, and add the 20180402-114759.pb file into the app's Resource in the Properties and Export app design menu.


Credits:

Facenet Tensorflow for pre-trained AI model: https://github.com/davidsandberg/facenet

VGGFace2 for the training dataset: https://github.com/ox-vgg/vgg_face2

  • No labels