This page is stale and needs to be reviewed. It may be deleted or radically changed in the near future.
Due to the difficulty in setting up, testing, and tweaking computer vision algorithmic pipelines using OpenCV alone, the RoboVision GUI was made to make this process extremely fast and easy. Before moving on, you should read the vision system wiki to get a better understanding of the underlying data structures and use cases of this tool.
The RoboVision GUI is a custom C++ Qt application that utilizes the vision system's FilterTree and Filter objects as it's underlying base. It's main use case is to be able to load an arbitrary video and filtering tree, see the entire pipeline at once, tweak values as required, and save to be able to run in the vision system with it's new parameters. In addition to these, it also provides useful functions such as Add, Edit, and Delete nodes, and useful displays such as a video scrubber, and runtime and tree information.
An automated build script is present in the scripts folder which builds all repo GUI tools.
For a custom build you need a Qt5 install as well as QtCreator on a Linux machine. To load the project, open the
robovision.pro file in
gui/build/robovision. Once that is loaded you will need to set the build and run paths. For build path, it should be
bin/robovision/release for debug and release respectfully. For the run path it should be the top level robosub install directory as all programs should run at the top level to be able to gather resources properly. Once those are configured run QMake from the build menu then
Build and Run. The application should startup after a few seconds of building.
Using RoboVision should be somewhat intuitive as it's a very simple tool that mirrors the vision system. To load a video click
Load at the top right corner next to the video scrubber. It should only list compatible video codecs in the file explorer. (NOTE: Due to the nature of OpenCV's VideoCapture object, some codecs will not run or may even crash the tool. This is due to lack of support for some codecs in OpenCV's source code and can't be fixed unless we change libraries for video objects.) Once loaded you should see the first frame of the video in the center of your screen.
To Load a filtering tree you can select
Open in the file menu or
Ctrl-O. It should only list .xml files in the file explorer. Some sample trees should be in
settings/vision/trees/. If it properly loads you should see windows appear for each filter and the filters in the tree-view panel on the right side.
The application provides useful video scrubbing options in the top right. (NOTE: Once again, due to the lack of some video codec support, some video encodings may not work correctly. If a codec is not working, try to convert to an official format using VLC.) To start or stop a video, press play or stop in the center of the video player. The default framerate should be 20 fps. To step forward or back one frame you can use the greater than / less than sign buttons. The shift left / shift right do the same thing but for 10 frames. You can also drag the video scrubber to get to a part of the video that you want to see. Once a video finishes, it should resume from the beginning.
To edit tree values all you have to do is select the filter you want to edit and it's parameters will show up on the bottom panel. The frame that represents that filter's output should also be highlighted in red in the pipeline viewer. You can add, edit, and delete filters that you have selected as well using the appropriate buttons. When changing or adding filters you have the option of making it a child or sibling just like you would in the vision system. You also have the option of giving it a unique name.
To save your tree all you have to do is click
Save As in the file menu or
Ctrl-S. Your tree should be updated from the load or last saved location.