AICam
User Manual
v.1.0.3
Table of contents
Installation process of free version 3
The installation process of the paid version 3
MQTT Configuration for integration with external systems 11
Applications for different analytics functionalities 12
Detecting Fire Smoke in Tunnels or Car Parks 19
AICam is a web application that offers an interface for using different types of Noctuai video analytics. Currently available analytics are Fire Smoke, Fire Smoke for tunnels, Fall, Intruder Detection, and PPE Inspection. The core of the application is video preview along with settings. They allow manipulation of analytics that analyze videofeed. Feed for analysis in the preview is added via RTSP streams. The output of the analysis can be seen on the user preview. Another way to be informed about analysis output is via MQTT messaging protocol. During the installation process, users can configure the names of channels that allow integration later on.
To perform the installation, you must have the proper hardware to allow the application to run. Below, you will find the minimum recommended hardware setups. For more information or recommendations regarding a larger amount of streams, please contact us at contact@noctuai.com
no. of streams | up to 10 | up to 20 | 20 - 100 |
CPU | 8 Cores / 16Threads - i5 10 gen | 8 Cores / 16Threads - i5 10 gen | 16 Cores / 24Threads (14thGEN Intel / AMD ThreadRipper) |
RAM | 32 GB | 32 GB | 64 GB |
GPU | cards with compute capability >=6.5 https://developer.nvidia.com/cuda-gpus | ||
NVIDIA® RTX™ 4060GPU / A2000 8GB | NVIDIA® RTX™4070TI SUPER lub RTX A4000 16GB | NVIDIA® RTX 5000 ADA lub RTX 4090, 32GB VRAM | |
Disk | 1TB SSD | 1TB SSD | 1TB SSD |
Operating System | Linux Ubuntu 24.X | Linux Ubuntu 24.X | Linux Ubuntu 24.X |
The installation package (that can be downloaded via the appropriate link or received via email from our representative) contains the following:
The archive fileapp-installer.tar.gz has to be unpacked to an application destination folder (the folder name can be anything), and then the nct-installer file can be run.
After accepting our EULA available at https://noctuai.com/eula there are phases to be run during the installation process:
The first three steps are currently experimental and might not work in Your environment!
Of course, the first three phases can be skipped if the computer already has proper software installed. It is essential to run the phases in the same order as listed. The duration of the process depends on the internet connection parameters as the process assumes downloading files from the Internet repository.
After completing the phases choosing option “Start Application” will initiate the AICam. The first start after installation can take a longer time. During this period, you won't be able to connect the streams to the AICam.
To access AICam after the installation, you have to open the website (http://localhost:8081) on the machine where it is installed or reach it via the network from another computer using the IP address of the computer where it is installed (http://xxx.xxx.xx.xxx:8081/)
To enter an application, the user should visit a URL that holds a hosted application.
An account provided during the installation should be used to enter the application for the first time (administrator rights).
The administrator account has the right to create additional user accounts with different permissions if necessary.
Entering the correct credentials as administrator user opens the following screen.
Selecting Users in the left menu bar opens a page with a list of all the users created in the app.
To create a new user, click the New User button located in the top right corner of the screen. A pop-up modal window should appear with the user creation form. Note that while creating a new account,, it is best to select the the “User must change password” checkbox for basic credentials security.
After typing the necessary information, a new user account is created new user can enter the application with provided credentials.
Note: To obtain the best analytics results, use streams with 16:9 Aspect Ratio.
Accessing the newly created application allows the user to see only the page with an empty list of streams. A new stream should be added to fully use the application. Every account type can create new streams. To create a new stream, click the Add Stream button in the top right corner.
After providing the necessary information, click the Submit button to add a new stream.
Depending on your stream availability, adding might take some time. Once done, a new stream with connectivity status: Connecting should appear on the list.
Now, you can start using the analytics on a given stream. To enter the stream preview and settings, click on the stream name or URL. You will see a stream preview screen with two tabs on the top: Preview and Settings.
Note: Stream preview will differ depending on the analytics used.
Possible stream statuses:
Test events are an option standard for every analytics application. It requires a stream to be added to the list but does not require it to be connected. The stream can be in any state to send an event. After clicking the button, one event is sent to all open channels (e.g., reporting and alarming).
Our Application comes with built-in mqtt server with default mqtt topics configured.
Here are default parameters for built-in mqtt server:
It is possible to set up the application to use other MQTT servers. Please contact our representative for help.
The Fire Smoke application allows detection of fire and smoke on video streams.
Settings page offers detection thresholds for fire and smoke - values that are responsible for triggering alarms. Any value detected in the video stream that surpasses the set value will be treated as an alarm.
The settings also allow to switch on or off and adjust alarming and reporting options. In order to adjust alarming, 2 parameters need to be set. Delay and cooldown time. Both in seconds. Delay time is time of minimal event duration that triggers an alarm. When event is spotted e.g. fire, it needs to be present on frames for the delay time duration in order to generate an event. Cooldown time is time that needs to pass before sending another event. The unit of measurement in alarming is seconds.
In order to adjust reporting mode, there are three settings that can be changed:
Name of default channels for the event along with environment variables names for custom adjustment.
Events format examples:
Alarming:
fire:
{
"streamId": "UUID string",
"streamName": "string",
"settings": {
"fireThreshold": 0.1,
"smokeThreshold": 0.1
},
"event": {
"fireConfidence" : 0.1,
"fireStatus" : "DETECTED / NOT_DETECTED"
},
"timestamp": "ISO Timestamp"
}
smoke:
{
"streamId": "UUID string",
"streamName": "string",
"settings": {
"fireThreshold": 0.1,
"smokeThreshold": 0.1
},
"event": {
"smokeConfidence" : 0.1,
"smokeStatus" : "DETECTED / NOT_DETECTED"
},
"timestamp": "ISO Timestamp"
}
Reporting:
{
"streamId": "3185c18a-a55e-4a72-989c-4186faa57143",
"streamName": "FS_01",
"eventType": "FIRE",
"cumulatedTimeEventOccurredWithinFrameSeconds": 24,
"currentFireThreshold": 0.5,
"currentSmokeThreshold": 0.5,
"analysisIntervalSeconds": 60,
"id": "a09a41c8-a8d6-4cd0-a946-e53f608dad0e"
}
The PPE app expands to Personal Protective Equipment. It allows you to ensure the clothing and protective elements that people should be equipped with, e.g., at a construction site or in a factory. The application enables information and reporting in the absence of protective clothing by people in the frame. The application allows you to check whether you have a helmet a protective vest, or both items at the same time.
The application has a preview generated by VPA in JPEG form in the preview tab. The option above the preview allows the user to save the preview refresh interval. The selected interval is the time every time a new preview image is downloaded. Under the preview, there is information about the number of helmets and/or vests missing.
In the settings tab, we can find a preview of the stream whose settings we add. In the preview, it is possible to draw exclusion zones in which the analytics will operate. In exclusion zones with up to 14 vertices, the user can create, move, and delete. If no zone is drawn, the entire preview area is selected for analysis by default.
Confidence threshold levels can be set according to the needs.
Bounding boxes with helmet and vest confidence are present on the preview stream. They can be switched off by two button icons representing helmet and vest that allow for switching off the bounding box of one of the idem. At least one of the buttons has to be switched on.
Bounding boxes show person's confidence in addition to the helmet or vest presence.
The settings also allow you to switch on or off and adjust alarming and reporting options. To adjust alarming, two parameters need to be set. Delay and cooldown time. Both in seconds. Delay time is the time of minimal event duration that triggers an alarm. When an event is spotted, e.g., person without a helmet, it needs to be present on frames for the delay time duration to generate an event. Cooldown time is time that needs to pass before sending another event. The unit of measurement in alarming in seconds.
To adjust the reporting mode, three settings can be changed:
Name of default channels for the event along with environment variables names for custom adjustment.
${MQTT_ANALYTICS_REPORTING_FIRE_SMOKE_TUNNEL:reporting.ppe}
${MQTT_ANALYTICS_ALARMING_FIRE_SMOKE:alarming.ppe}
Event template for reports:
{
"streamName": "string",
"missingItemType": "VEST / HARD_HAT",
"personId": "number",
"detectionBox": {
"topLeft": { "x": 1, "y": 1},
"bottomRight": { "x": 1, "y": 1}
},
"personDetectionConfidence": 0.1,
"itemDetectionConfidence": 0.1,
"timestamp": "ISO Timestamp"
}
Event for alarming:
{
"streamName": "PPE_02",
"missingItemType": "HARD_HAT",
"personId": "48",
"detectionBox": {
"topLeft": {
"x": 0.5115,
"y": 0.175
},
"bottomRight": {
"x": 0.6083,
"y": 0.4565
}
},
"personDetectionConfidence": 0.8024,
"itemDetectionConfidence": 0.4584,
"telemetryTimestamp": "2023-07-05T16:07:15.489Z"
}
Tunnel Fire Smoke application allows detection of fire and smoke on video streams from tunnels or car parks. It has a unique AI model dedicated to that kind of environment.
Name of default channels for event along with environment variables names for custom adjustment.
${MQTT_ANALYTICS_REPORTING_FIRE_SMOKE_TUNNEL:reporting.fire-smoke-tunnel}
${MQTT_ANALYTICS_ALARMING_FIRE_SMOKE_TUNNEL:alarming.fire-smoke-tunnel}
Events format examples:
Alarming:
fire:
{
"streamId": "UUID string",
"streamName": "string",
"settings": {
"fireThreshold": 0.1,
"smokeThreshold": 0.1
},
"event": {
"fireConfidence" : 0.1,
"fireStatus" : "DETECTED / NOT_DETECTED"
},
"timestamp": "ISO Timestamp"
}
smoke:
{
"streamId": "UUID string",
"streamName": "string",
"settings": {
"fireThreshold": 0.1,
"smokeThreshold": 0.1
},
"event": {
"smokeConfidence" : 0.1,
"smokeStatus" : "DETECTED / NOT_DETECTED"
},
"timestamp": "ISO Timestamp"
}
Reporting:
{
"streamId": "cbe413b6-9537-450b-8d4e-9550da35cb97",
"streamName": "FS_01",
"eventType": "FIRE",
"cumulatedTimeEventOccurredWithinFrameSeconds": 49,
"currentFireThreshold": 0.2,
"currentSmokeThreshold": 0.2,
"analysisIntervalSeconds": 60,
"id": "d447069a-a877-4ff5-96b0-aceef09fbfd2"
}
Fall Detection is one of the analytics that can be chosen when using the application. Based on the settings thresholds, it analyzes video streams and shows previews with bounding boxes that indicate a personhas fallen.
Fall Detection preview informs the user about the following:
The settings page offers detection thresholds for person confidence and fall confidence - values responsible for triggering alarms. Any value detected in the video stream that surpasses the set value will be treated as an alarm.
The settings also allow you to switch on or off and adjust alarming and reporting options. To adjust alarming, two parameters need to be set. Delay and cooldown time. Both in seconds. Delay time is the time of minimal event duration that triggers an alarm. When an event is spotted, e.g., fall detection, it needs to be present on frames for the delay time duration to generate an event. Cooldown time is time that needs to pass before sending another event. The unit of measurement in alarming in seconds.
Name of default channels for the event along with environment variables names for custom adjustment.
${MQTT_ANALYTICS_ALARMING_FALL_DETECTION:alarming.fall-detection}
Events format examples:
Alarming:
{
"streamId": "UUID string",
"streamName": "string",
"fallThreshold": 0.4,
"isFallDetected": false,
"fallConfidence": 0.4,
"numberOfPeopleOnFrame": 1,
"timestamp": "ISO Timestamp"
}
On the settings page, there are two sliders:
The Flare Inspection application allows for monitoring the state of flares. A gas flare, alternatively known as a flare stack, flare boom, ground flare, or flare pit, is a gas combustion device used in places such as petroleum refineries, chemical plants and natural gas processing plants, oil or gas extraction sites having oil wells, gas wells, offshore oil and gas rigs, and landfills. The flares are responsible for burning off the excess of produced substances or byproducts. The combustion process should be adjusted to decrease emissions. The ideal state is when burning produces fire flare, CO2, and other gasses. Therefor,e smoke is not a desired state because it indicates that burning is incomplete.
The application can monitor up to 5 flares and their smoke and fire state. In case of smoke appearance, it draws a bounding box around the flare that causes it as it’s an indication of undesired state. It also drawsa bounding box around the fire. Depending on the threshold levels set, the bounding boxes can trigger red. The application can also trigger alarms and reports via MQTT channel, depending on the settings. Additional up to 5 inclusion zones can be drawn by the user. Those are limitation areas that make applications analyze the video and look for the fire or smoke only in the desired areas. This is especially useful in situations of other sources of smoke or fire that are present on the video or to avoid other triggers, e.g., haze or fog.
It’s possible to enablea maximum of 40 analytic zones (e.g., eight streams with five zones each)
The preview holds a view of the camera stream that shows the monitoring zones. Zones that the user sets show red. On the bottom of the preview view, three labels indicate current settings (amount of monitoring zones set) and provide feedback to the user. The boxes and preview surrounding area flare up in red when vthe ideo shows the incorrect state of flares. Flares producing smoke or not producing fire cause labels' background to be red and add a red glow to all surroundings of the preview stream.
On the top of the preview, is an interval dropdown that allows you to change the refresh rate of the stream. Stream visible on the preview is delivered in still jpg files every 0.5s by default. Changing that value can slow down or increase the refresh speed, which influences the internet usage a (faster rate uses more internet; therefore, in case of slow speed, it is recommended to usea slower refresh rate, e.g., 1s).
The settings page offers detection thresholds for fire and smoke - values responsible for triggering alarms. Any value detected in the video stream that surpasses the set value will be treated as an alarm.
Settings preview allows drawing rectangles that represent monitoring zones—the area within which sthe tate of fire and smoke is detected and verified.
The settings also allow you to switch on or off and adjust alarming and reporting options. To adjust alarming, two parameters need to be set. Delay and cooldown time. Both in seconds. Delay time is a time of minimal event duration that triggers an alarm. When an event is spotted, e.g., fire, it needs to be present on frames for the delay time duration to generate an event. Cooldown time is time that needs to pass before sending another event. The unit of measurement in alarming in seconds.
To adjust the reporting mode, three settings can be changed:
Name of default channels for event along with environment variables names for custom adjustment.
${MQTT_ANALYTICS_ALARMING_FALL_DETECTION:alarming.flare-inspection}
${MQTT_ANALYTICS_REPORTING_FALL_DETECTION:reporting.flare-inspection}
Events format examples:
Alarming:
{
"streamId": "UUID string",
"streamName": "string",
"settings": {
"fireThreshold": 0.1,
"smokeThreshold": 0.1
},
"event": {
"fireConfidence" : 0.1,
"fireStatus" : "DETECTED / NOT_DETECTED"
},
"timestamp": "ISO Timestamp"
}
{
"streamId": "UUID string",
"streamName": "string",
"settings": {
"fireThreshold": 0.1,
"smokeThreshold": 0.1
},
"event": {
"smokeConfidence" : 0.1,
"smokeStatus" : "DETECTED / NOT_DETECTED"
},
"timestamp": "ISO Timestamp"
}
On the settings page, there are two sliders located:
New values have been created - Delay Time and Cooldown Time
Intruder detection is one of the analytics that can be chosen when using the application. Based on the settings thresholds, it analyzes video streams and shows previews with bounding boxes that indicate a person.
Intruder Detection preview informs the user about the following:
The settings page offers a detection threshold for intruder detection confidence - values responsible for triggering alarms. Any value detected in the video stream that surpasses the set value will be treated as an alarm.
The settings also allow you to switch on or off and adjust alarming and reporting options. To adjust alarming, two parameters need to be set. Delay and cooldown time. Both in seconds. Delay time is the minimal event duration that triggers an alarm. When an intrusion is spotted, it needs to be present on frames for the delay time duration to generate an event. Cooldown time is time that needs to pass before sending another event. The unit of measurement in alarming in seconds.
To adjust the reporting mode, three settings can be changed:
Name of default event channels and environment variables for custom adjustment.
alarming.intruder-detection
Events format examples:
Alarming:
{
"streamId": "UUID string",
"streamName": "string",
"timestamp": "ISO Timestamp",
"detectionConfidence": 0.3,
"intruderDetectionThreshold": 0.4
}
On the settings page, there are, there is a slider located:
What is new in this file compared to previous documentation?
Features:
AICam User Manual