Skip to content

4Kp30 Multi-Sensor Camera with AI Inference Solution System Example Design for Agilex™ 5 Devices - Web Graphical User Interface Functional Description

Running the Graphical User Interface (GUI)

The application software of the design has a web-server GUI that is used to control and demonstrate various hardware and software features of the Camera Solution System Example Design. Follow the instructions to run the GUI on a web browser. The GUI is optimized for displaying the full screen on a 1920x1080 resolution screen. Press F11 in your browser to go full screen.

The Software Application is flexible in discovering available hardware components and only drawing the components present in the design on the GUI. Therefore, some parts of the GUI elements can be missing or different across different camera solution designs. Also note that there may be slight variations in the GUI compared to the example images shown in this section.

Connecting to the Demo Application Web GUI

Take note of the Modular Development Kit IP address. This will be displayed on the HPS console serial port when the demo application starts. Alternatively, use the following command to list IP addresses:

ip a

Use a web browser of your choice (such as Chrome) on any device connected to the same network as the Modular Development Kit. If connecting directly without a switch or router, the self-assigned IPv6 address can be used, or assign a static IPv4 Address.

Descriptions of the Tabs

This section summarizes the GUI tabs in the Camera Solution System Example Design.


Input Config Tab


InputConfigTab.

Input Config Tab


The Input Config Tab controls two separate parts of the application:

  • The Input Stage which corresponds to selecting which input to use and the parameters for those input sources.
  • The Control Loops, corresponding to the Auto White Balance and Auto Exposure functions.

This section summarizes the GUI controls in the Input Config Tab:


Input Select


InputSelect.

Input Select


The Input Source UI controls which input is selected:

  • Input TPG corresponds to the Test Pattern Generator (TPG). The TPG RGB output image is passed through a Remosaic IP to convert it to a Color Filter Array (CFA) format image (also known as Bayer) that is consistent with the camera input. It can be used to verify the system without a sensor module.
  • Camera N, where N corresponds to the sensor module or modules connected to the board. The number of sensor modules visible in the dropdown menu depends on the camera solution design and the number of sensor modules physically connected to the development board.


Test Pattern Generator


TestPatternGenerator.

Test Pattern Generator


The Test Pattern Generator UI allows you to control the Input Test Pattern Generator operation mode:

  • SMPTE standard color bars.
  • Solid Color. Use the Color Select dropdown box to set the color from the list (including standard SMPTE color bar colors, and a mid-level gray).
  • Rainbow. Cycles every few seconds the color selection from the Solid Color mode.


Camera Control


CameraControl.

Camera Control - FSM-IMX678 Sensor


The camera control provides manual exposure controls for the corresponding imaging sensor. The UI presents a camera control tile for each sensor module connected to the board. The model field shows the model of the optical sensor module detected.

The Analog Gain slider adjusts the light sensitivity of the sensor, allowing the image to be brightened or dimmed. However, increasing exposure via analog gain has a tradeoff of reducing signal-to-noise ratio resulting in a grainier image.

The Frame Rate slider adjusts the sensor frame rate. Reducing the frame rate gives more time to accumulate time, while increasing it reduces motion blurring artifacts. For flickering light sources, we recommend setting the frame rate to an integer multiple or reciprocal integer multiple of the electrical grid frequency. For example, for 50 Hz grid frequency you may set the frame rate to 50, 25, 12.5 or 6.25 Hz to mitigate flickering.

The Shutter Speed slider controls the light integration time of the sensor, allowing the image to be brightened or dimmed. The maximum shutter speed is inversely proportional to the frame rate, where a lower frame rate gives more time for the sensor to integrate more light.

We recommend the following flow for manually adjusting the total exposure of a scene:

  • Minimize the analog gain.
  • If the image is flickering adjust frame rate to 50 or 60 Hz depending on the power line frequency.
  • Adjust shutter speed for optimum exposure.
  • If the image is underexposed even at maximum shutter speed, do one or both of the following, depending on your motion artifact vs. noise preference, until satisfied:
    • Reduce the frame rate, halving it if flickering, and further increase the shutter speed. This will reduce the responsiveness of the video and increase motion artifacts without increasing graininess.
    • Increase the analog gain. This will increase the graininess of the video without changing responsiveness.


Sensor Profile


SensorProfile.

Sensor Profile


The Import Camera Profile button loads a sensor profile (a JSON format pre-calibrated sensor settings file) into the application. The application comes with a default calibration profile preloaded on the microSD card image for the IMX678 as featured in the Camera Solution System Example Design. Therefore, is not necessary to load a new profile in normal operation. The IMX678 profile was produced using the Calibration Tab in the UI, as well as some offline processes for best-in-class color reproduction. Note that using the calibration tab requires expert knowledge and is therefore hidden in the UI by default.


Histogram


HistogramStatistics.

Histogram Statistics


The Histogram Statistics displays the real-time output of the Histogram Statistics IP. It is intended to be used as a visual aid while adjusting exposure controls.


Auto Exposure


AutoexposureControls.

Auto Exposure Controls


The Auto Exposure function built into the camera solution demonstration, uses data from the Histogram Statistics IP to control the sensor analog gain and shutter speed. When using the ROI, the algorithm will prioritize the region specified when calculating the exposure.

AutoexposureROI.

Auto Exposure - Region of Interest Editor


The Region of Interest (ROI) editor allows you to select a region of the image to use for the Auto Exposure function. Drag the region with a mouse stretch and drag the window freely, or enter starting coordinates and the size of the region manually. Highlighting ROI makes the region visible on the ISP output as an overlay. Clicking the circular arrow on the tile resets the configuration to its default values.


Auto White Balance

The Auto White Balance UI allows control of the Automatic White Balance (AWB) function built into the camera solution demonstration. It uses the calibration settings loaded via the Sensor Profile UI.


AutoWhiteBalanceControls.

Auto White Balance Controls


The White Balance control has five modes of operation:

  • Disabled. This mode turns off the white balance function by bypassing the White Balance Correction and Black Level Correction IPs, as well as unlocking the controls of those IPs in the UI in the ISP Pipeline Tab. You may then enable those IPs and manually change their coefficients. This mode also disables the Color Correction Matrix function by programming it to unity.
  • Choose Temperature. This mode lets you enter a color temperature freely using the Temperature (K) slider. The temperature must be set correctly otherwise incorrect coefficients will be used causing the image to look incorrect. As a guide, scenes generally require a color temperature ranging from 4000 to 6500 Kelvin.
  • Choose Lighting. This mode operates similarly to the Choose Temperature mode. However, in this mode Temperature (K) slider is disabled. Instead, you can choose the lighting conditions from the Lighting dropdown menu. Note that the real temperature varies among the family of light sources.
  • Automatic. Automatic mode turns off all user input and instead uses the White Balance Statistics IP pre- and post- White Balance Correction to attempt to guess the scene's color temperature.
  • Custom Preset (Spot). This is a one-shot automatic white balance mode which runs the AWB function for 2 seconds before locking in the temperature. Clicking the Snapshot button or changing the ROI, resets the mode and triggers another 2 seconds one-shot. This mode is useful where the scene is too colorful. You can position a gray card or position the camera to focus on a gray or white object in the scene, and using the ROI to focus in on just that area, snapshot the temperature to keep it constant for the entire scene.

The Tint Adjustment slider is unlocked across all modes. This control enables you to adjust the magenta-green color balance when the light source illuminating the scene is not an ideal black light source following the black body radiation curve (Planckian locus).

The CCM strength slider controls the color vibrancy. A unity value of 1.0 gives the most accurate color reproduction following the sensor profile. If the light source is not ideal, then a value of 1.0 might over-saturate some colors, which requires you to lower it until satisfied. Conversely, you may increase the color vibrancy for artistic purposes.

Automatic and Custom Preset (Spot) modes unlock the ROI editor. The selected region defines the area over which the White Balance Statistics IP performs its calculations. Resizing or moving the active region automatically highlights the region on the ISP output as an overlay for 2 seconds. For mixed scenes with plenty of gray content, a full-screen statistics gives decent performance. For mixed scenes, it is beneficial to localize the region of interest onto gray parts of the image as described above.

Clicking the circular arrow on the tile resets the configuration to its default values.


ISP Pipeline Tab


ISPPipeline.

ISP Pipeline Tab


The ISP Pipeline tab contains the controls corresponding to the core ISP functions and are summarized as follows:


Defective Pixel Correction


DefectivePixelCorrection.

Defective Pixel Correction


The Defective Pixel Correction UI provides controls for bypassing the Defective Pixel Correction (DPC) IP functionality, and when enabled setting the DPC strength. The default strength is Very Weak which provides a good balance between mitigating defective pixels, and preserving details and specular highlights. Increasing the strength mitigates more defective pixels with a tradeoff of softening the image.


Adaptive Noise Reduction


AdaptiveNoiseReduction.

Adaptive Noise Reduction


The Adaptive Noise Reduction UI provides controls for bypassing or setting the strength of the denoising algorithm of the Adaptive Noise Reduction (ANR) IP. A higher strength provides better denoising with a tradeoff of softening the image.

Clicking the circular arrow on the tile resets the ANR configuration to its default values.


Black Level Correction


BlackLevelCorrection.

Black Level Correction


The Black Level Correction UI provides access to low level Black Level Correction (BLC) IP controls. This tile is locked, displaying live values for most of the white balance modes in the Auto White Balance Control as the settings are controlled by the Application software. Note that disabling Auto White Balance to enable manual BLC controls is not implemented by default. This is because the SW App does not configure the imaging sensor and the MIPI connectivity IPs to pass the Optical Black Region (OBR) required for processing the black level statistics in real time. Instead, it uses offline calibrated values.


Vignette Correction


VignetteCorrection.

Vignette Correction Controls


Vignette Correction (VC) is used to compensate for non-uniform intensity across the image caused by the uneven light gathering limitations of the sensor and optics. The most common non-uniformity is where the center of the lens gathers more light compared to the outer regions. The VC IP corrects uniformity using a runtime mesh of pre-calibrated coefficients and interpolating coefficients for any given pixel.

The Vignette Correction UI controls the Vignette Correction (VC) IP and provides controls for bypassing as well as radial and lens corona correction. Inverting the functionality allows adding vignetting to the image for artistic purposes or showcasing the effect. The Radial Vignette slider simulates radial vignetting as commonly seen on fisheye lenses. Likewise, the Lens Corona simulates the effects of a strong light source on an imperfect lens, showing as a bright spot in the center. The Application software translates the controls into a mesh of coefficients that the VC IP uses.

Clicking the circular arrow on the tile resets the configuration to its default values.


White Balance Correction


WhiteBalanceCorrection.

White Balance Correction Controls


The White Balance Correction UI provides access to low level White Balance Correction (WBC) IP controls. This tile is locked, displaying live values for most of the white balance modes in the Auto White Balance Control as the settings are controlled by the Application software. Disable Auto White Balance to enable manual WBC controls.

Clicking the circular arrow on the tile resets the configuration to its default values.


Demosaic


Demosaic.

Demosaic Controls


The bypass control is the only option in the Demosaic UI controls. In bypass mode the Demosaic IP generates an RGB monochrome output image by simply replicating the single color of a given input CFA pixel to all 3 color planes to generate the given output RGB pixel.


Unsharp Mask Filter


UnsharpMaskFilter.

Unsharp Mask Filter Controls


The Unsharp Mask Filter UI controls the strength of the sharpening applied to the image. Positive strengths will sharpen the image, while negative strengths will soften the image.

Clicking the circular arrow on the tile will reset the configuration of the IP to its default values.


Color Correction Matrix


ColorCorrectionMatrix.

Color Correction Matrix Control


The Color Correction Matrix (CCM) UI is an artistic control interface for tuning the CCM (which is implemented by the Color Space Converter (CSC) IP). The white balance function of the application software calculates a base CCM targeting an accurate representation of the scene. The application software calculates the final CCM based on the control settings on the Color Correction Matrix UI:

  • Hue, Saturation, and Value (Brightness) controls enable transformations in the HSV color space.
  • Enabling color temperature post-processing enables further control for the color temperature and tint on top of the values set by the white balance controls.
  • Red, Green, Blue Channel Strength sliders enable transformations in the RGB color space.
  • Contrast adjustment and raising image floor change the dynamic range of the image.

Clicking the circular arrow on the tile of the UI resets the functionality of these controls to their default values.


Output Config Tab


OutputConfigTab.

Output Config Tab


The Output Config tab contains UI controls for IP Cores typically located after the ISP core pipeline, right up to and including the output.

This section summarizes the GUI controls in the Output Config Tab:


3D LUT


3DLUT.

3D LUT Control


The 3D LUT IP can be used for color space conversion, chroma keying, dynamic range conversion (standard to high and high to standard), and artistic effects (sepia, hue rotation, color volume adjustment, etc.).

The 3D LUT IP can support dual buffer mode to allow 2 LUT tables to be loaded and switched between. However, for resource utilization reasons, the Camera Solution System Example Designs only single buffer mode is supported and so the LUT 2 section of the UI is grayed out.

Note that 3D LUT files are not supplied with the Camera Solution System Example Design.


Tone Mapping Operator

The Tone Mapping Operator (TMO) UI has controls to bypass the tone mapping and sliders to adjust the threshold and level. The threshold slider controls the strength of the tone mapping. The level slider controls the alpha blending percentage between fully processed TMO output and its original input. The tone mapping feature can use an ROI which can be adjusted from a pop-up panel.


TMOControls.

TMO Controls


TMOControls-ROI.

TMO ROI Editor



1D LUT


1DLUT.

1D LUT Control


The 1D LUT UI allows you to apply a transfer function to the output video image to match the video sink. You may bypass the functionality or use it in one of two modes:

  • Enable Gamma Layer calculates industry standard OETF, EOTF and OOTF LUTs from the options provided. The default transfer function is an OETF Gamma Curve compliant with BT.709 standard.
  • Enable Custom Curve allows you to draw a custom transfer function curve using the Custom Curve Editor popup window. The background histogram allows you to guide shaping the transfer function, and you have the option of using the full screen or ROI histograms. You adjust the ROI using the UI pane provided in the bottom left corner of the popup window. The number of segments allows you to control more points on the transfer function window. Resetting the curve changes the curve to a unity transfer function.

Clicking the circular arrow on the title of the UI resets the functionality of these controls to their default values.


CustomCurveEditor.

Custom Curve Editor




Logo.

Logo Control


The Logo UI controls the position and opacity of the Altera® logo on the screen. The UI also lets you adjust the location of the logo which can be positioned in each corner or configured to bounce across the screen. The opacity slider determines how transparent the Logo is, where 1 is fully opaque and 0 is fully transparent. The Logo also has a configurable screensaver function to protect screen burn-in where applicable. If you enable the screensaver, the screen output will drop to a black background with the logo bouncing across the screen. Interact with the GUI on your web browser to get out of the screensaver.


Frame Writer


FrameWriter.

Frame Writer Controls


The Frame Writer UI allows you to take screenshots of the raw sensor input image or the final processed output image prior to the final Gamma 1D LUT. Clicking Raw Camera Snapshot or ISP Output Snapshot, captures a single image from the input or output of the video pipeline, respectively. The Download Image button allows you to download a 48-bit MSB-aligned RGB TIFF image to the device running the Web browser. Just as in Demosaic bypass, the application software replicates CFA data to the RGB channels when you select raw capture.

Note that the output flickers while the image capture is in progress and the GUI becomes unresponsive for a moment. A popup notification indicates that the application software has finished the capture process, and that the image is ready for download.


Output Source


OutputSource.

Output Source Control


The Output Source UI controls which output is selected:

  • Select the ISP option to output the fully processed final image.
  • Select the SMPTE Bars option to output an unprocessed SMPTE color bar image. This option allows you to test the video connection to the video sink.


Pipeline Statistics Tab


PipelineStatisticsTab.

Pipeline Statistics Tab


The Pipeline Statistics Tab contains UI controls to help visualize the statistics IPs within the ISP pipeline.

This section summarizes the GUI controls in the Pipeline Statistics Tab:


Black Level Statistics


BlacklevelStatistics.

Black level Statistics


The Black Level Statistics UI visualizes the black level from the white balance algorithm. The channels are color-coded so that they match the color channels of the CFA pattern. Note that the BLS IP remains in bypass in normal operation and is only used during calibration. The application software shows these calibrated statistics used by the white balance algorithm.


White Balance Statistics


WhiteBalanceStatistics.

White Balance Statistics


The White Balance Statistics UI shows a color ratio representation of a captured scene from the camera input. The scene is split into 7x7 zones and clicking on a grid square will select and visualize the ratios below.

It is important to note that the color grid does not capture luminosity, only color ratios. Therefore, results in some zones may appear unusual. For example, dark gray and light gray sections will be indistinguishable.

The UI works on a captured scene. You can use the "Update" button to force a scene capture update.


Histogram Statistics


HistogramStatisticsFull.

Histogram Statistics


The Histogram Statistics UI shows a luminosity histogram of the current scene. The Auto Exposure algorithm uses the histogram statistics in the background as part of the brightness control function.

The histogram automatically updates at a frequency of 1Hz, which you may disable using the Auto Update checkbox. Read Stats button triggers a manual update of the histogram.

The Histogram Statistics IP calculates two histograms, one for the entire frame and the other for an ROI. The display mode dropdown box allows you to display either histogram statistics separately, or overlays them on the UI.

Finally, the "Edit ROI" button opens a popup window for adjusting the ROI.


AI Runtime Tab


AIRuntimeTab.

AI Runtime Tab


The AI Runtime Tab contains UI controls to select AI network and results processing parameters.

This section summarizes the GUI controls in the AI Runtime Tab:


AI Runtime


AIRuntime.

AI Runtime


The AI Runtime UI allows you to select the active AI network and modify its parameters.

The Network drop box allows selection between the AI networks on the microSD card:

  • YOLO 8n Detect. This network is the YOLO v8 nano detection model with an input image size of 640x384. This option performs bounding box estimation and classification from the eighty items in the COCO dataset. This model has an inference rate of 30 FPS.
  • YOLO 8n Pose. This network is the YOLO v8 nano pose estimation model with an input image size of 640x384. This option performs bounding box estimation for the ‘person’ category with seventeen skeletal key-point estimations. This model has an inference rate of 30 FPS.

The Detection Threshold slider controls the confidence threshold, where a valid detection requires the candidate’s confidence value to be greater than the threshold. The confidence level ranges from 0.0 for no confidence to 1.0 for extremely high confidence.

The Intersection Over Union (IOU) Threshold slider allows the filtering of overlapping results. The application software calculates an IOU value for each pair of overlapping result candidates. The IOU is the area of intersection of the bounding boxes divided by the area of union of the bounding boxes. An IOU value of 1.0 means the bounding boxes are identical in size and position while a value of 0.0 means the boxes do not overlap. Values between zero and one provide a measure of similarity. The application software discards the result candidate with the lowest confidence when a pair of result candidates have an IOU value exceeding the IOU threshold. This algorithm is known as non-maximal suppression and allows decluttering of the results.

The Keypoint Threshold slider is only applicable to pose networks and is disabled for detection networks. The keypoint threshold uses confidence values of each of the skeletal keypoints and the application software only draws the pose-lines (bones) between linked keypoints when both keypoint confidence values are above the keypoint threshold.

The Display Results checkbox controls whether the application software renders the results over the video output. Disabling rendering is useful for decluttering the image during scene setup and fine-tuning the ISP components.



Back


Last update: December 10, 2025
Created: October 6, 2025
Ask in the Forum