{
	"executor": {
		"executorType": "sequentialExecutor",
		"sequence": [ "start", "inputToCVMat", "resize", "padding", "cvtColor", "convertTo", "CVMatToTensor", "infer", "TensorToCVMat", "cvArithmetic", "convertTo8UC1", "threshold", "dilate", "BoxesFromBitmap", "GetAnglesFromRects", "FindMostRepresentativeAngle", "Rotation", "CVMatToInputData", "final" ],
		"dataStream": {
			"inputToCVMat": {
				"input": [ "srcImage" ],
				"output": [ "CVMatOutput" ]
			},
			"resize": {
				"input": [ "CVMatOutput" ],
				"output": [ "resizeOutput" ]
			},
			"padding": {
				"input": [ "resizeOutput" ],
				"output": [ "paddingOutput" ]
			},
			"cvtColor": {
				"input": [ "paddingOutput" ],
				"output": [ "cvtColorOutput" ]
			},
			"convertTo": {
				"input": [ "cvtColorOutput" ],
				"output": [ "convertToOutput" ]
			},
			"CVMatToTensor": {
				"input": [ "convertToOutput" ],
				"output": [ "CVMatToTensorOutput" ]
			},
			"infer": {
				"input": [ "CVMatToTensorOutput" ],
				"output": [ "inferOutput" ]
			},
			"TensorToCVMat": {
				"input": [ "inferOutput" ],
				"output": [ "TTCMToCVArithmetic", "TTCMToBoxesFromBitmap" ]
			},
			"cvArithmetic": {
				"input": [ "TTCMToCVArithmetic" ],
				"output": [ "cvArithmeticOutput" ]
			},
			"convertTo8UC1": {
				"input": [ "cvArithmeticOutput" ],
				"output": [ "ConvertTo8UC1Output" ]
			},
			"threshold": {
				"input": [ "ConvertTo8UC1Output" ],
				"output": [ "ThresholdOutput" ]
			},
			"dilate": {
				"input": [ "ThresholdOutput" ],
				"output": [ "DilateOutput" ]
			},
			"BoxesFromBitmap": {
				"input": [ "TTCMToBoxesFromBitmap", "DilateOutput", "srcImage" ],
				"output": [ "BoxesFromBitmapOutput" ]
			},
			"GetAnglesFromRects": {
				"input": [ "BoxesFromBitmapOutput" ],
				"output": [ "GetAnglesFromRectsOutput" ]
			},
			"FindMostRepresentativeAngle": {
				"input": [ "GetAnglesFromRectsOutput" ],
				"output": [ "FindMostRepresentativeAngleOutput" ]
			},
			"Rotation": {
				"input": [ "FindMostRepresentativeAngleOutput", "srcImage" ],
				"output": [ "RotationOutput" ]
			},
			"CVMatToInputData": {
				"input": [ "RotationOutput" ],
				"output": [ "output" ]
			}
		}
	},
	"node": {
		"start": {
			"nodeType": "StartNode"
		},
		"inputToCVMat": {
			"nodeType": "InputToCVMatNode"
		},
		"resize": {
			"nodeType": "ResizeNode",
			"width": 800,
			"height": 800,
			"equalProportion": true,
			"isIgnoreSmallImg": true
		},
		"padding": {
			"nodeType": "PaddingNode",
			"width": 800,
			"height": 800,
			"borderType": 0,
			"makeBorderType": 1,
			"scalarArray": [ 255, 255, 255, 0 ]
		},
		"cvtColor": {
			"nodeType": "CvtColorNode",
			"code": "RGB"
		},
		"convertTo": {
			"nodeType": "ConvertToNode",
			"rtype": 21,
			"alpha": 1,
			"beta": 0.0
		},
		"CVMatToTensor": {
			"nodeType": "CVMatToTensorNode",
			"elemsize": 4,
			"name": "",
			"layout": [ "n", "h", "w", "c" ]
		},
		"infer": {
			"nodeType": "InferenceNode",
			"backendType": 0,
			"precision": 0,
			"modelFileNames": [ "textbox_detect_v3.tflite" ]
		},
		"TensorToCVMat": {
			"nodeType": "TensorToCVMatNode",
			"tensorIndex": 0,
			"widthIndex": 1,
			"heightIndex": 2,
			"channelIndex": 3
		},
		"cvArithmetic": {
			"nodeType": "CvArithmeticNode",
			"mathArithmetic": 2,
			"scalarArray": [ 255.0, 255.0, 255.0, 0.0 ]
		},
		"convertTo8UC1": {
			"nodeType": "ConvertToNode",
			"rtype": 0,
			"alpha": 1,
			"beta": 0.0
		},
		"threshold": {
			"nodeType": "ThresholdNode",
			"thresh": 51.0,
			"maxValue": 255.0
		},
		"dilate": {
			"nodeType": "DilateNode",
			"shapeType": 0,
			"kWidth": 3,
			"kHeight": 3
		},
		"BoxesFromBitmap": {
			"nodeType": "BoxesFromBitmapNode",
			"boxThresh": 0.4,
			"unclipRatio": 1.4
		},
		"GetAnglesFromRects": {
			"nodeType": "GetAnglesFromRectsNode"
		},
		"FindMostRepresentativeAngle": {
			"nodeType": "FindMostRepresentativeAngleNode"
		},
		"Rotation": {
			"nodeType": "RotationNode"
		},
		"CVMatToInputData": {
			"nodeType": "CVMatToInputDataNode"
		},
		"final": {
			"nodeType": "FinalNode",
			"release": [ "srcImage" ]
		}
	}
}