pushing docker images to a docker repository.
The complete Sudoku examplehttps://tinyurl.com/26wvv4j4
can be deployed using the “Deploy to Local” functionality
and executing kubernetes-client-script.py -n NAMESPACE in a kubernetes environment where
NAMESPACE is an empty namespace for deployment.
This script waits for all containers to run in the kubernetes namespace
and then starts the orchestration and displays orchestration events.
For more details see the detailed walk-through Sudoku tutorial on YouTube.https://youtu.be/gM-HRMNOi4w
Planning framework and control circuit
The maze-planner exampleAvailable open source under https://github.com/uwe-koeckemann/ai4eu-maze-planner/ illustrates how planning, execution, simulation, and a user
interface can be connected and orchestrated in AI4EU Experiments Platform. It contains several
loops for task request and achievement, action execution and, state updates.
The topology is illustrated in Figure REF .
The Graphical User Interface (GUI) is used to assemble planning problems,
interact with a simulator and request tasks from an executor. The
Simulator simulates action execution and provides state updates to the
GUI and the executor. A Planner receives planning problems and returns
solution plans or failure. The Executor connects these three components
and has several internal loops. If it receives a goal, it will take the last
state provided by the simulator and its operator model to assemble a planning
problem. It then requests a plan from the planner. If no plan is found, failure
is reported to the GUI. Otherwise, the actions in the plan are placed in a
queue to be sent to the simulator. If the action queue is not empty and
currently no action is running, the executor will send the next action. If an
action is successfully executed (by the simulator) the next action will be
started. If an action fails (e.g., the simulator cannot apply it or it does not
have a model), the rest of the queue is discarded and failure is reported to the
user. If all actions in a queue are successfully executed, success is reported
to the user (via the GUI).
<FIGURE>Realizing this solution through AI4EU Experiments Platform decouples all components and allows to
replace them by compatible alternatives. In the solution, for instance, the
simulator and executor use the same action model, but can easily be replaced by
more realistic versions. Simulation, e.g., could use a more precise model or
simulate random action failures or external events.
A ROS integration for AI4EU Experiments Platform is planned, which enables to exchange the simulator for a real ROS-based robotics environment.
A more sophisticated executor could maintain a time-line representation
to decide when to start actions, how long to wait for them to finish, and to
allow parallel execution via scheduling (see, e.g., [1]}).
In this case, a scheduler could be placed between planning and execution in Figure REF .
Execution could start with an empty action set and learn preconditions and effects from
trial and error. To realize this, we just need to replace/extend the executor with one
that collects data and can use a learner to extract operators from data.

Real time object detection in networked cameras
Developing a system for Urban Analytics in 10 minutes using the AI4EU Experiments Platform.
This example describes a computer vision application that uses algorithms for object detection in images to develop and deploy a system capable of providing "urban data analytics" in a complex scenario.
We show how to use the popular CNN-based [2]} algorithm to survey and monitor a street intersection in a typical urban setting. The enormous potential of AI4EU Experiments Platform will be further exploited, extending the pipeline with one simple component that transforms the scope and aim of the original task, showing that its flexibility and modular design can increase, dramatically, software productivity.
<FIGURE>As Figure REF  illustrates, the goal is to acquire images from an IP camera, process it and display the image together with the information of the identified objects. The recognition task is accomplished by the CNN-based detector YOLOv5http://ultralytics.com that labels each detected object and regresses a bounding box for object location. The annotated image should be accessed through the internet with a browser.
The AI4EU Experiments Platform solution
Such a system can be easily assembled using the tools available in the AI4EU Experiments Platform, in this case the DesignStudio. Figure REF  shows the image processing solution where the main components deliver the following tasks:
<FIGURE>yolo-camera
Acquires images from an internet camera. The IP and security data (user, pass) are passed as environment variables during deployment and upon request it returns an Image retrieved from the IP camera.
yolo-yolo
https://www.ai4europe.eu/research/ai-catalog/yolo-v5-object-detection The CNN-based object detector accepts one image as input and outputs a message with the list of detected objects, its location and label confidence score.
yolo-visualizer
Source for all components: https://github.com/DuarteMRAlves/yolov5-grpc/ The visualization component deploys a Flask-based web server, and serves a web page that displays the annotated image. The input of this service has two messages: one image and a list of objects.

Besides the processing components, this pipeline requires a special node, the “custom collator", tasked to merging messages coming from different nodes. As described in the table of Figure REF , the input to the yolo-visualizer service is a message composed of one image and a list of detected objects (ImageWithObjects), that are originated in different nodes. Thus, the “custom collator" collects the image from the camera (message Image), the output from Yolo (message DetectedObjects) and composes a message of type ImageWithObjects which will be sent to the Visualizer.
This application is available in http://aiexp.ai4europe.eu.

Geo Location and Scaling Up to a Network 
The data collected from street cameras can easily be geo-referenced, anchoring the extracted "analytics" to global coordinates. Also, by anchoring the detections to global references, we can escalate/fuse this data to a network of similar devices with non overlapping viewpoints. The above system could be deployed seamlessly to any available camera and the the network's output data works as one single "data source".
<FIGURE>Assuming the ground is well approximated locally by a plane, there is a projective transformation that maps corresponding points in two images - an homography- which can be estimated from a minimum of 4 pairs of non colinear points.
Leveraging services like Google Maps or OpenStreetMaps, we can map the camera image to geo-referenced satellite images of the same area. To estimate the homography. In the case illustrated in Figure REF , the selected pairs of calibration points are identified by the green dots. Of course, the “flat world" assumption does not hold for vehicles (or pedestrians), particularly if they are close to the camera. However, as we show in the figure (red dots), the midpoint of the bottom line segment of the bounding box is often close to the ground and its mapping is precise enough for the task at hand.
In an extension of the above pipeline, we would have a second branch that handles the geo-referenced information.
A fully flexible and general structure is easily setup if we introduce a special “camera" node that simply crawls a website for the adequate satellite image and feeds the “custom collator" with the corresponding image. Most of the methodologies in computer vision are intuitive to a non-specialist, particularly those involving 3D space, however the maths is often inaccessible to “lay users/programmers". With this example we show the transformational role that platforms like AI4EU Experiments Platform can play, empowering unskilled users with AI technologies that play a key role in their specific domain.

Conclusion and Outlook
We described how we create the AI4EU Experiments Platform which enables the composition of a broad range of AI applications
based on several extensions of the Acumos framework.
This is the beginning of a long-term effort to create an ecosystem
where modular AI components and visually composed solutions are used
for experimentation, prototyping, and educational purposes
by researchers, industry stakeholders, students, and further interested groups.
In particular the visual composition and a mechanism for finding
matching components for some output port of a component
is intended to lower the barriers for using the system.
Over time, more and more components and useful generic interfaces will be onboarded in the platform
and we foresee that with each addition the system will become more useful for a broader audience.
This work started as a part of the AI4EU H2020 project and will be continued
under the governance of the Eclipse foundation as “Eclipse Graphene”.https://projects.eclipse.org/projects/technology.graphene
A range of video tutorials is available on YouTube.https://www.youtube.com/playlist?list=PLL80pOdPsmF6s6P6i2vZNoJ2G0cccwTPa

Acknowledgements
This work has been supported by the
European Union's Horizon 2020 research and innovation programme under
grant agreement No. 825619 (AI4EU).
