FAQ

Short answers to common questions about LumiScan Area Detector. Each entry links to the page with the details.

Each entry has a fixed anchor (for example #faq-pixel-formats). Problems, error messages and status codes are described step by step in Troubleshooting.

Requirements and setup

Which image source does the Area Detector need?

Answer

The application does not talk to a camera itself. It reads the image node of another application that runs on the same device - the same ctrlX CORE or ctrlX IPC, or the same PC (remote Data Layer access is not supported), normally LumiScan Cam Driver, for example hdvisionsystems/lumiscan-cam-driver/camera1/output/image. Any application works if its image node provides data (raw, uncompressed uint8 pixel data), width, height and pixel-type (GenICam pixel format name). No reference picture is needed.

More

Requirements, Description

Which pixel formats are supported?

Answer

Mono8, Mono12, RGB8, RGB12, BGR8, BGR12, BayerGR8, BayerGR12, BayerRG8 and BayerRG12. Bayer images are converted to colour and 12-bit images are scaled down to 8 bit before detection, so a threshold tuned on one format still applies to another. Any other pixel format is rejected with status code -3.

More

Requirements

Detecting and measuring

How do I run a detection and read the result?

Answer

Set <module>/detect-area/input/input-image-address, write to <module>/detect-area/execute (a blocking call) and check that output/status-code is 1. Then read output/result: blobs is sorted by area, so blobs[0] is the largest; each blob has its centre x, y, its area in pixels (counted, never derived from a fitted shape), its label and a bounding box. blob_count gives the number of regions and total_area the sum, which is usually the number to act on for coverage, contamination and fill checks.

More

Detecting Areas, How To: Measure Part Area from a Camera Image

How do I find the right threshold level?

Answer

Measure the picture instead of guessing. FIXED is the only input/method in this version; anything else is refused.

  • Set system/analyse-scene/input/input-image-address and write to system/analyse-scene/execute.

  • Read output/recommended-settings: node=value lines relative to a module’s detect-area/input/, holding the level, which end is the part and whether to fill holes. Nothing is written for you.

  • Check the advice with output/histogram: the level should sit in the valley between the part’s hump and the background’s. One hump means no level will work and the lighting needs fixing.

  • Set <module>/detect-area/input/method-specific/fixed/level (0-255, default 128).

More

Analysing a Scene, Tuning the Detection

Which preprocessing filters are there, and what do they need?

Answer

input/preprocess/method applies one filter before detection: NONE (default), LOG (Laplacian of Gaussian), DOG (Difference of Gaussians; sigma-first must differ from sigma-second) or DOH (Determinant of Hessian; kernel-size must be 1, 3, 5 or 7). Only the chosen method’s parameters are read and validated. All three normalise their output, so the threshold level may need revisiting after enabling one.

More

Detecting Areas, Tuning the Detection

How do I find the pixels belonging to a reported region?

Answer

Every run publishes output/blob-labels, an ordinary image node (data, width, height, pixel-type) in Mono16, with one region number per pixel and 0 for background. The numbers are the blobs[].label values in output/result, so all pixels holding a blob’s label are that region; a binary mask is labels > 0. The image is whole frame, at the size of the input image, and labels are not renumbered. It is emptied when the next run starts.

More

The Label Image

How do I restrict the search or make it faster?

Answer

Set input/crop/ (startX, startY, width, height); a zero width or height reaches the right or bottom edge, so all zero searches the whole image. A region reaching past an edge is refused rather than trimmed, naming the input and the limit it broke. For speed, restrict the area first, then raise the level so noise and dust stop crossing the threshold.

More

Detecting Areas, Tuning the Detection

How do I detect areas on every frame of a camera stream?

Answer

Subscribe a module to the Cam Driver’s stream (experimental): write the camera’s stream folder, for example hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream, to <module>/control/subscribe/input/address, set control/subscribe/input/enable to true and write to control/subscribe/execute. Each frame is searched with the inputs of detect-area, and one result per frame is published on control/subscribe/output/stream/result. The label image is not streamed. To read the latest result as a plain detect-area/output/result, set control/subscribe/input/keep-latest-output to true.

More

Detecting Areas on an Image Stream, Streams

Status codes and errors

How do I know whether a detection worked, and where is the reason for a failure?

Answer

Check the sign of output/status-code: greater than 0 is success, 0 means the operation has not run since the application started, less than 0 means it failed and produced nothing; do not use the result then. The reason is on output/status-text. A failed write to execute answers only with a status code (over REST, a bare 400), so read output/status-text afterwards; the text is also in the application log: on ctrlX OS in the ctrlX Logbook or journalctl, on a PC in the application’s console output.

More

Execute a Method, Execution Status

Modules, licensing and support

Where are the settings files?

Answer

In the application’s configuration directory, lumiscan-area-detector/: the application settings file lumiscan-area-detector.json and one <module-id>.json per saved module.

  • On ctrlX OS: in the active solution, /var/snap/rexroth-solutions/common/solutions/activeConfiguration/lumiscan-area-detector.

  • On a PC (Windows): %APP_RESOURCE_DIR%\etc\lumiscan-area-detector; without APP_RESOURCE_DIR, C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-areadetect\etc\lumiscan-area-detector.

  • On a PC, lumiscan-areadetect --generate-settings <folder> writes an example of both files, with their JSON schemas, into a folder of your choice.

More

Data Layer Reference, Where the files are

Which licence do I need, and how many modules does it cover?

Answer

One licence covers ten modules; the eleventh module acquires a second licence of the same key, and a module is refused with status -11 when no licence on the device covers it. Purchase routes:

  • Bought from HD Vision Systems: the licence is on a LumiScan Key (Windows 11 or Ubuntu 24.04). One LumiScan Key is needed per device running the software at the same time; keys can be exchanged between devices.

  • Bought in the ctrlX Store for Windows 11: ctrlX WORKS plus a LumiScan Key.

  • Bought in the ctrlX Store for ctrlX OS (ctrlX CORE or IPC): a ctrlX licence, no key.

More

Requirements, Module Management, Licensing FAQ

Where can I find more answers or get support?

Answer

See the site-wide LumiScan FAQ. Contact HD Vision Systems customer success at customer.success@hdvisionsystems.com or +49 6221 6721905; for licences, licenses@hdvisionsystems.com.

More

Licensing FAQ