Skip to content

Releases: VorlonCD/bi-aidetection

I'm not saying I'm Batman but...

30 Oct 18:41
Compare
Choose a tag to compare
Pre-release

...No one has ever seen me in the same room with him.

Lots of changes in this release. I'm sure I wont get them all. Please log bugs here:
https://github.com/VorlonCD/bi-aidetection/issues

  • Splash screen and much faster startup. The database cleanup of missing image files happens on startup, but it generally doesn't take too long.

  • @classObject has done some great Dynamic Masking updates! A few bug fixes, and an advanced setting "Enable Object Scaling" that gives the ability to scale distant objects so they are more easily detected as the same object that may have been detected before. (Without this setting, you may have found you had to create half a dozen static dynamic masks for a distant object you wanted to ignore)
    image
    image

  • Redesigned Log Viewer. Faster, Filter on keywords or errors, sort by original log order or date, etc. Log files will be deleted when over the "MaxLogFileAgeDays" (defaults to 14) setting in the AITOOL.SETTINGS.JSON file, rotated out when the size is over "MaxLogFileSize" (bytes - defaults to 10MB), and ZIPPED up once a day.
    image

  • Redesigned History Viewer. Better icons, all settings get saved, prediction details screen, jump directly to mask settings, Follow history option works better.
    image

  • History - Right-click menu. Locate in log file, refresh, etc.
    image

  • History > Prediction Details > right-click > Create static mask. So you can create static masks after they have been cleared in the Dynamic Mask Details screen. Note this works with multiple items selected.

  • History > Settings: Adds ability to prevent false or masked history items from being stored in the database. In some cases this may make list loading and filtering faster but probably not necessary in most cases.

  • History > Settings: Enable "Show only Relevant objects" to closer mimic @gentlepumpkin's original app where it the history list, highlighted objects and variables only showed relevant objects. With it unchecked you get a lot more insight for what deepstack is outputting.

  • When more than one object is detected, the list is now prioritized so that relevant objects will be first in any list. Then other 'Important' objects like 'person', 'bear' will be prioritized. [variables] will now show relevant objects first. This can be controlled via the ObjectPriority setting in the JSON file. View the detected object list via History > Prediction Details
    image

  • Settings now stored under _SETTINGS folder and logs are under _SETTINGS\LOGS folder so everything that changes is stored under a single folder. CAMERAS folder is no longer used. I know, I said that before, but this time its true. Really. Trust me.

  • Camera > Apply To button. This lets you save selected settings from the current camera to any other camera.

  • Actions - "Queue Actions" checkbox - This will send actions that need to be done like sending Telegram, MQTT or calling a trigger URL into a background thread queue to be processed. It will release the main detection routine faster so you dont have to wait for a telegram upload to finish before processing the next image from BI. Note that this may affect Cooldown behavior.

  • Actions - New variable [ImagePathEscaped]. This allows you to tell BlueIris which image to display in its alert list using the following url parameter: &flagalert=1&memo=[summary]&jpeg=[ImagePathEscaped] (Note you must have a recent version of BI for this to work)

  • Actions - Ability to change JPEG compression level when "Merge Annotations into Images" is checked.

  • Actions - Telegram: Ability to specify which objects work work with - for example, "person, dog, bear"
    image

  • Fix: Cancel triggers now working as expected. Most likely. Probably.

  • Fix: Switching to high-dpi support caused all sorts of issues for people remoting into a machine with AITOOL so that has been disabled. Fuck me, why did I buy a 4k display? :)

  • Documentation on how to setup MQTT with BlueIris thanks to @edalquist!: https://github.com/VorlonCD/bi-aidetection/blob/master/mqtt.md

  • Many other fixes. Github issues is best way log new issues, but do log to the ipcamtalk thread also since I dont always monitor both. Jeebers, 114 pages! :) https://github.com/VorlonCD/bi-aidetection/issues

===================
To install:

Backup your current AITOOLS folder.
Download the ZIP, right-click > Properties > UNBLOCK.
Unzip to existing folder, overwriting any files.
Most if not all settings should migrate.

Dynamic masking updates, SQLite db, etc

30 Sep 20:54
Compare
Choose a tag to compare
Pre-release
  • Dynamic Mask settings now has an advanced option screen for dealing with distant objects better. You should not need as many static masks for small detected objects. Other updates and enhancements for masking. (Thanks @classObject !)
  • The database is now an SQLite database. The cameras folder is no longer used at all
  • New history list with icons, better/faster filtering, sorting columns, etc.
  • ALL failed images due to cooldown or retry failure will be logged in the history list and you can filter by them. (There should be far fewer missed now)
  • New status bar with stats and progress bar for long operation (like when you first start and it does a clean of the database)
  • New Errors dialog so you dont have to look through 1000 log longs to quickly see all the errors.
  • Fewer errors, better stability, UI more responsive
  • Better support for running as a service. If you open the GUI it will now update the history list, but still will still NOT show log entries. And you have to close the service before making settings changes.
  • Cooldown now works as expected
  • Telegram now works as expected
  • High DPI support (Requires .net framework 4.7 which most computers should have installed already)
  • MQTT retain setting - Open aitool.settings.json in notepad and search for "action_mqtt_retain_message" and set to true for each camera you need
  • No start in error when running on startup (it just changes to the right folder) (@wilddoktor )
  • Fixed 'Warning: It took a long time to add a history item' - this was due to reading and writing to the db far too often (@IPDaily )

For a full list of changes, see:
https://github.com/VorlonCD/bi-aidetection/commits/master

AITOOL-VORLONCD.zip

Can trigger or cancel MQTT/URL's, Telegram fix

19 Sep 18:01
Compare
Choose a tag to compare
  • Fixed error where telegram would give "Could not upload image" error (Due to missing aitool.exe.config file)
  • You can now define both a trigger AND cancel MQTT or URL action.
  • You can now have multiple MQTT topic and payloads. Use "topic1 | topic2" and "payload1 | payload 2" etc.
  • Image file is validated before sending to Deepstack server. If an "invalid image" error is still returned from Deepstack, you may need to look deeper into Deepstack logs to find out why.
  • Created json setting "DisplayPercentageFormat". It defaults to "({0:0.00}%)" but you can use any formatting rules you want - Google for "C# String.Format examples" to see how to change that value to what you need. The first "0:" has to stay, but you can change anything else. 0:0 would leave you just the whole percentage.
  • Force detected object names to always have "Title Case".
  • Added json setting "Camera.Action_image_merge_jpegquality" = 80 so you can control how large resulting images are when you also have the "Merge annotations into images" checkbox enabled. 100=largest, best quality, 20=small, low quality, small image.

AITOOL-VORLONCD.zip

Telegram fixes, merge annotations

17 Sep 17:33
Compare
Choose a tag to compare
Pre-release
  • Action checkbox to "Merge Annotations into images". It creates a temporary jpg image file with merged in detection's before sending to telegram, or copying to a specified folder. This does not modify the original image file BI created.
  • Prevent telegram service spamming and high cpu usage. An error while sending a message could result in logs being filled with repeated failure messages. See new telegram specific cooldown setting on Settings tab.
  • Ability to provide a custom filename for "Copy alert images to folder".
  • Fix bug where dynamic mask history was not getting deleted after the specified time.

AITOOL-VORLONCD.zip

Telegram captions

15 Sep 19:41
Compare
Choose a tag to compare
Telegram captions Pre-release
Pre-release
  • Ability to specify telegram captions when sending images [ Thank you @mayop ! ]
  • Ability to specify custom filename for image copy action [partial implementation for @aesterling 's request - No saving/merging of markup/detection rectangle yet]
  • Variables added - [Prefix], [ImageFilenameNoExt], [SummaryNonEscaped] (may not always work for filenames and urls)
  • Fix for dynamic mask history sometimes not getting purged

AITOOL-VORLONCD.zip

MQTT Support

11 Sep 19:21
Compare
Choose a tag to compare
MQTT Support Pre-release
Pre-release
  • MQTT support!
  • TEST buttons for actions dialog
  • Overhaul of Deepstack url queuing system when you have multiple url's specified in settings. Fixed issue where a bad deepstack instance can cause a hold up.
  • Lots of updates to the 'Dynamic' Masking feature and its details dialog box [ Thank you @classObject ! ]
  • The custom draw mask dialog box has a lot of nice changes. Transparent masks as you draw, the ability to specify rectangle, etc. (This replaces the complicated process for creating your own camera masks on the first page of the monster IP Cam Talk thread.)
  • Obligatory "I fixed the duplicate image processing issue". Stay tuned next time for round 10.
  • Random and mysterious bug fixes. "These aren't the bugs you're looking for."

AITOOL-VORLONCD.zip

Manual creation of masks, copy alerts to network folder

04 Sep 00:29
Compare
Choose a tag to compare
  • Ability to graphically create your own blackout mask (alpha) along with misc tweaks to Dynamic Masking thanks to @classObject

  • Reset URL list error count every 30 minutes if a URL has been disabled (URLResetAfterDisabledMinutes in settings file)

  • Actions is now in its own dialog, with a few new features:

    Ability to copy alert images to any folder. [ Thanks to @akmolina28 ! ]

    Ability to run any program/script on alert.

    Ability to play a sound file based on the objectname.

    For example:
    person,car ; C:\sounds\beep.wav
    You can define more than one sound by putting the pipe symbol between each one:
    person,car ; C:\sounds\beep.wav | cat ; C:\sounds\meow.wav
    Or a sound no matter what object:
    (asterisk character) ; c:\somesound.wav

  • Maybe better file dupe checking. Again. WTF multithreading is a pain

  • In dynamic mask details, added right click for make static, and changed color of static masks in list and visual rectangle

AITOOL-VORLONCD.zip

Minor

01 Sep 18:35
Compare
Choose a tag to compare
Minor Pre-release
Pre-release
  • Fix bug where more than one deepstack detectobjects thread would fight/fail to access the json settings file
  • Camera tab UI tweaking
    AITOOL-VORLONCD.zip

A few updates

31 Aug 21:45
2b6b8d6
Compare
Choose a tag to compare
A few updates Pre-release
Pre-release
  • New settings in AITOOL.SETTINGS.JSON (Not in UI yet): "telegram_cooldown_minutes" - Increase higher than 0 to prevent so many telegram notices sent when there is a lot of detected activity on a camera. "MaxURLRetries" - Defaults to 30. If any DeepStack URL has over this many errors it will be disabled in the current session. Changing the URL setting or closing/reopening the app will reset the counter.
  • Load/save window sizes and positions
  • Fixed a few things in the function that watches for changed jpg files
  • Better error checking updating Stats tab
  • Obligatory 'Misc bug fixes'

AITOOL-VORLONCD.zip

Support multiple DeepStack URL's

29 Aug 19:01
Compare
Choose a tag to compare
Pre-release
  • Support for multiple deepstack URLS on Settings tab. Separate each URL with a semi-colon, for example "10.0.1.2:84;127.0.0.1:84". If there are more than 1 image in the queue, they will be processed in parallel on different threads for as many URL's as you give it. This should help when you have high image queue process times or counts.
    image

  • Log/config/history file paths now follow where the EXE is run from. Previously if you move the EXE it would still access the files from the original path.

  • Minor UI and dynamic masking updates. Option for clearing dynamic mask lists.