COMPMID-1637 - Add ROIAlign operator to the graph API

Change-Id: I8a9b1e16d90b9d99a6ff2a442347748432723b14
diff --git a/arm_compute/graph/backends/ValidateHelpers.h b/arm_compute/graph/backends/ValidateHelpers.h
index 169c795..7c31a80 100644
--- a/arm_compute/graph/backends/ValidateHelpers.h
+++ b/arm_compute/graph/backends/ValidateHelpers.h
@@ -324,6 +324,31 @@
     return ReorgLayer::validate(input, output, node.stride());
 }
 
+/** Validates a ROI Align layer node
+ *
+ * @tparam ROIAlignLayer ROIAlign layer type
+ *
+ * @param[in] node Node to validate
+ *
+ * @return Status
+ */
+template <typename ROIAlignLayer>
+Status validate_roi_align_layer(ROIAlignLayerNode &node)
+{
+    ARM_COMPUTE_LOG_GRAPH_VERBOSE("Validating ROIAlignLayer node with ID : " << node.id() << " and Name: " << node.name() << std::endl);
+    ARM_COMPUTE_RETURN_ERROR_ON(node.num_inputs() != 2);
+    ARM_COMPUTE_RETURN_ERROR_ON(node.num_outputs() != 1);
+
+    // Extract input and output
+    arm_compute::ITensorInfo *input     = detail::get_backing_tensor_info(node.input(0));
+    arm_compute::ITensorInfo *rois      = detail::get_backing_tensor_info(node.input(1));
+    arm_compute::ITensorInfo *output    = detail::get_backing_tensor_info(node.output(0));
+    const ROIPoolingLayerInfo &pool_info = node.pooling_info();
+
+    // Validate function
+    return ROIAlignLayer::validate(input, rois, output, pool_info);
+}
+
 /** Validates a Slice layer node
  *
  * @tparam SliceLayer Slice layer function type