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

This is a new feature in Joget DX


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
  • Values to Labels - see Add Post Processing - 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 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
  • 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

If its not defined, set to 1
Scale

Scale in Integer

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 (Hz) in
Max Frequency (Hz)Maximum Frequency (Hz) in
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 dictionary)
Delete Input


Add Output

Text

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


Values to Labels

Sub-elementDescription
Post Processing NameUser-defined variable. Can be used as a Variable in the Rules
Get Unique OnlyCheck to get only unique value only
Labels (CSV)Dictionary file in .csv format
Temporary Variable NameList of Temporary Variables from Output
Number of ValuesList of Temporary Variables from Output
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 (CSV)Dictionary file in .csv 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 Temporary Variable or Post Processing Name

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

User to 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

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

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 Temporary Variable or Post Processing Name

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