[tool] [tutorial] Free AI Person Detection for Blue Iris

Hello Everyone,
Using Aitool, upload to Telegram works fine. If I close out and use the Vorlon fork with the same Telegram token etc. in the Vorlon fork I get the following:

DType Time Idx Detail MemberName
Error 10/18/2020 9:55:30 AM 3 ERROR: Could not upload image C:\BlueIris\aiinput\AIGarageCam1.20201018_090120905.jpg to Telegram: chat not found [ChatNotFoundException] Mod: <TelegramUpload>d__32 Line:1460:33 TelegramUpload>

Any thoughts? I have copied and pasted to rule out typo's, and manually entered it. Always fails under Vorlon but works under original ai tool.

Thanks in advance.
 
6 cameras total, I think over time I have seen this particular issue on most of them at one time or another. I will need to scrub the logs and really pin down if all or just some are showing this and try your suggestion, possibly just overloading the system with too many things at once? It does appear to keep trying and finally upload it to DeepQuest...
Why not set the read ahead on all cameras to 0 (switch it off) except the most active. If it works reliably, add say two more cameras and so on until it breaks or perhaps works just fine! I'm wondering if BI is having difficulty due perhaps the cpu running out of steam?
 
Why not set the read ahead on all cameras to 0 (switch it off) except the most active. If it works reliably, add say two more cameras and so on until it breaks or perhaps works just fine! I'm wondering if BI is having difficulty due perhaps the cpu running out of steam?
I may try that, thanks. I'm running a i7 with 32mb of ram and the only thing on that computer is BI/AI/DS you would think that would be enough juice, perhaps not.
 
I may try that, thanks. I'm running a i7 with 32mb of ram and the only thing on that computer is BI/AI/DS you would think that would be enough juice, perhaps not.
I agree it should be more than enough. Just two last thoughts, are you running the latest BI Version and does the file size change. When I had issues earlier on it turned out to be a BI problem. When I looked at the files captured for deepstack and it clearly showed up the issue as occasionally a camera file would be much smaller than expected.
How else could you have so much fun:)
 
I agree it should be more than enough. Just two last thoughts, are you running the latest BI Version and does the file size change. When I had issues earlier on it turned out to be a BI problem. When I looked at the files captured for deepstack and it clearly showed up the issue as occasionally a camera file would be much smaller than expected.
How else could you have so much fun:)
I was talking about 2 different things (Problems) shouldn't have done that since I am replying to both and if anyone else is trying to follow, it will confuse them! Sorry everybody. :) On the mask vs. the AI image problem- - Running the newest version of BI, have not checked the file size, the image size is smaller however (maybe that is what you mean?) and yes that is the "cause" of the error, BI is dropping the sub stream pic in the AI folder, AI looks at the image and says HEY! this pic and your mask size don't match!!! (Danger Danger Will Robinson - Hope your old enough to get that ref. LOL )- This should not happen as far a I understand it should only be putting the HD pics in there!?. I really think the root cause of this is coming from BI and not the other things (AI/DQ) I sent a Help/Bug request to BI... I decided to just remove the sub stream from the 2 cameras giving me fits, so yeah I gave up, but that "fixed" it. On the System.IO.IOException....because it is being used by another process. (code: -2147024864 ) error Again not really sure what is going on, wish I was smart enough to figure out what the "other process" was, the image is eventually getting processed so not so much a error as annoying, to me anyway. I'm putting both of these to rest for now. I just switched back (this morning) to the VolronCD version of AI, lets see what issues we run into now :eek:. Unfortunately I fall deeply into the operator category on all this stuff, no clue how all the code operates, REALLY appreciate the patience and help on all of it though!!!
 
Deepstack's development has seemed stalled since earlier this year and it was starting to look abandoned, but I tagged the two developers over on Github and one of them (John) replied with this comment:
Hello @AndrewHoover @aesterling @VorlonCD

Thanks for bringing this up and it is exciting to see how DeepStack is being used.
We truly haven't done much development as we would have wanted to in recent times. It took a bit of settling down for us into our new job. Apologies for the pause in recent times.

We are planning on stabilizing the development and would have new releases in coming weeks with significant improvements. The project is not abandoned and a lot is coming on it soon.

Please bear with us.
Thanks

Obviously, there are other engines available and more to come, but many of us are actively using Deepstack so it's good to hear they'll continue working on it.
 
Last edited:
tried building in visual studio the current release plus all commits but failed miserably :(

Please could someone spare the time to knock up an idiots guide to building this from git hub with the latest's commits, I and I know a few others will be very gratefull :)

edit or the real easy way :) :)
 
Last edited:
  • Like
Reactions: RHead and Nierka
So I've been messing with other options that could utilize my GPU on a Windows Server that doesn't have AVX... Sadly this mix doesn't work at all with DeepStack currently and considering where the software is at this point I've been looking at TensorFlow.

How much of an issue would it be to add an option for a TensorFlow server, as it seems it works very similar to DeepStack where you can feed in an image and it'll spit out what it found. I think giving people a second option, as long as it isn't too hard to implement, on what server they use would be very helpful. TensorFlow could be better for some people too as you can build your own models.

Edit: One reason I bring this up is over the last week I have been playing with using TensorFlow and Blue Iris. In every case the examples I already found online are over a year old and A LOT has changed between TensorFlow and Python, in every case something is broken and I can not fix it. In many cases I manage to get the TensorFlow parts working but something else crashes. Getting a TensorFlow server up and running seems like the easy part compared to feeding it images, getting results and integrating it into Blue Iris.
 
Last edited:
This is intentional. When I asked Ken to implement the timeline clearing I actually requested he leave the alert list images because otherwise you now have no way to know about false negatives occurring. Leaving them allows one to see that an alert was canceled that maybe shouldn't have been and thus you can take action. This I felt was a good compromise because the timeline is now cleaner and you can jump clicking on that. If he removed the images on cancel you'd never know if it was canceling alerts it shouldn't have potentially. Keep min mind AI Tools isn't the only applicable use here so you have to think of it as a best compatibility overall vs. design thing because another use case may not use AI Tools and thus you don't have that to ref back for those said false negatives.

If you don't want to see them you can still use the flag=1 to flag and just filter that image list to use flags only and you won't see them.

I see what you mean, but the webUI no longer lets you see just the flags. Its alerts or clips, so all the false triggers are there. Same goes for the BI app (android version anyway). So i see a whole lot of alerts, and not one of them is actually a positive.
 

edit or the real easy way :) :)
Just installed this version. Launch AI Tools and it's stuck "Initilalizing Database" in the History tab.
 
Can we talk about what right looks like- I am getting alert images sent to Telegram and as far as I can tell they are indeed relevant and I don't have issues with that. I am (now) using the VolronCD version. On the Stats page you have the circle chart and on the bottom it shows # of errors, Alerts, Irrelevant, false, skipped img queued and Action Queued.
Here are my questions-
1. I am getting a ton of errors all showing the trigger URl's, I know the data is correct, I am using both of the URL's from the original set up from pg 1 of this thread, with this version should I only be using 1 of them or should they be different than they are on the original instructions? Should I be putting something in the Cancel URL block (on the Actions Screen)
2. I get thousands of irrelevant and false alerts- they don't end up being sent to me as a alert but the high number! Is this normal, Obviously I don't want to get alerts on them but the #'s seem so high I wonder if I am doing something wrong.
3. What are the skipped files about? Why are they skipped-Should be concerned?
4. IMG Queued/Action Queued? What is their purpose?

As always TIA!!
 
Sorry if this post is long. I wanted to include as much detail as possible with the issue I'm having.

I can't imagine that I'm the only person having this issue, but I can't seem to find any mentions about it in this thread.

For some reason, I can't get the docker image or the Windows install of Deepstack to work. Both have different issues.
On docker, when I run it, it creates the container as you'd expect, but then stops here:

Code:
docker run --restart=always -e VISION-DETECTION=True -v localstorage:/datastore -p 83:5000 --name deepstack deepquestai/deepstack
/v1/vision/detection
---------------------------------------
v1/vision/addmodel
---------------------------------------
v1/vision/listmodels
---------------------------------------
v1/vision/deletemodel
---------------------------------------
---------------------------------------
v1/backup
---------------------------------------
v1/restore

If I cancel it, the container remains and partially works. The web server works for deepstack however the actually AI server itself doesn't function. The AI tool cannot communicate with it. I've turned off firewalls, tried running docker on the same machine and a remote machine, and everything else I can think of.

On the Windows side, when I use the deepstack Windows server, it runs as you'd expect but I get this error in the AI tool log:
Code:
Error: Deepstack partially running.  You many (typo in the program :) ) need to manually kill server.exe, python.exe, redis-server.exe

I've tried running the server both manually or having the AI tool start the server. When the AI server starts the server, I get this in the log:
Code:
[19.10.2020, 22:07:29.072]:                 DeepStack> Redis-server.exe> [14868] 19 Oct 22:07:29 # Warning: no config file specified, using the default config. In order to specify a config file use 'redis-server /path/to/redis.conf'
[19.10.2020, 22:07:31.577]:                 DeepStack> Python.exe> ERROR: Traceback (most recent call last):
[19.10.2020, 22:07:31.582]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\interpreter\packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
[19.10.2020, 22:07:31.586]:                 DeepStack> Python.exe> ERROR:     from tensorflow.python.pywrap_tensorflow_internal import *
[19.10.2020, 22:07:31.590]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\interpreter\packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
[19.10.2020, 22:07:31.593]:                 DeepStack> Python.exe> ERROR:     _pywrap_tensorflow_internal = swig_import_helper()
[19.10.2020, 22:07:31.597]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\interpreter\packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
[19.10.2020, 22:07:31.601]:                 DeepStack> Python.exe> ERROR:     _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
[19.10.2020, 22:07:31.604]:                 DeepStack> Python.exe> ERROR:   File "imp.py", line 242, in load_module
[19.10.2020, 22:07:31.608]:                 DeepStack> Python.exe> ERROR:   File "imp.py", line 342, in load_dynamic
[19.10.2020, 22:07:31.612]:                 DeepStack> Python.exe> ERROR: ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.
[19.10.2020, 22:07:31.615]:                 DeepStack> Python.exe> ERROR: During handling of the above exception, another exception occurred:
[19.10.2020, 22:07:31.620]:                 DeepStack> Python.exe> ERROR: Traceback (most recent call last):
[19.10.2020, 22:07:31.623]:                 DeepStack> Python.exe> ERROR:   File "../intelligence.py", line 13, in <module>
[19.10.2020, 22:07:31.626]:                 DeepStack> Python.exe> ERROR:     from sharedintelligence.commons import preprocess
[19.10.2020, 22:07:31.630]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\sharedintelligence\__init__.py", line 5, in <module>
[19.10.2020, 22:07:31.634]:                 DeepStack> Python.exe> ERROR:     from .detection3 import DetectModel3
[19.10.2020, 22:07:31.637]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\sharedintelligence\detection3\__init__.py", line 1, in <module>
[19.10.2020, 22:07:31.640]:                 DeepStack> Python.exe> ERROR:     from .process import DetectModel3
[19.10.2020, 22:07:31.643]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\sharedintelligence\detection3\process.py", line 1, in <module>
[19.10.2020, 22:07:31.646]:                 DeepStack> Python.exe> ERROR:     from .utils import read_pb_return_tensors,cpu_nms
[19.10.2020, 22:07:31.651]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\sharedintelligence\detection3\utils.py", line 1, in <module>
[19.10.2020, 22:07:31.654]:                 DeepStack> Python.exe> ERROR:     import tensorflow as tf
[19.10.2020, 22:07:31.659]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\interpreter\packages\tensorflow\__init__.py", line 24, in <module>
[19.10.2020, 22:07:31.662]:                 DeepStack> Python.exe> ERROR:     from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
[19.10.2020, 22:07:31.666]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\interpreter\packages\tensorflow\python\__init__.py", line 49, in <module>
[19.10.2020, 22:07:31.670]:                 DeepStack> Python.exe> ERROR:     from tensorflow.python import pywrap_tensorflow
[19.10.2020, 22:07:31.674]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\interpreter\packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
[19.10.2020, 22:07:31.678]:                 DeepStack> Python.exe> ERROR:     raise ImportError(msg)
[19.10.2020, 22:07:31.682]:                 DeepStack> Python.exe> ERROR: ImportError: Traceback (most recent call last):
[19.10.2020, 22:07:31.685]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\interpreter\packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
[19.10.2020, 22:07:31.689]:                 DeepStack> Python.exe> ERROR:     from tensorflow.python.pywrap_tensorflow_internal import *
[19.10.2020, 22:07:31.692]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\interpreter\packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
[19.10.2020, 22:07:31.696]:                 DeepStack> Python.exe> ERROR:     _pywrap_tensorflow_internal = swig_import_helper()
[19.10.2020, 22:07:31.699]:                 DeepStack> Python.exe> ERROR:   File "C:\DeepStack\interpreter\packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
[19.10.2020, 22:07:31.706]:                 DeepStack> Python.exe> ERROR:     _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
[19.10.2020, 22:07:31.710]:                 DeepStack> Python.exe> ERROR:   File "imp.py", line 242, in load_module
[19.10.2020, 22:07:31.714]:                 DeepStack> Python.exe> ERROR:   File "imp.py", line 342, in load_dynamic
[19.10.2020, 22:07:31.717]:                 DeepStack> Python.exe> ERROR: ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.
[19.10.2020, 22:07:31.721]:                 DeepStack> Python.exe> ERROR: Failed to load the native TensorFlow runtime.
[19.10.2020, 22:07:31.724]:                 DeepStack> Python.exe> ERROR: See https://www.tensorflow.org/install/errors
[19.10.2020, 22:07:31.727]:                 DeepStack> Python.exe> ERROR: for some common reasons and solutions.  Include the entire stack trace
[19.10.2020, 22:07:31.731]:                 DeepStack> Python.exe> ERROR: above this error message when asking for help.
[19.10.2020, 22:07:31.734]:                 DeepStack> Process exited:  Name='Main:Python.exe', ExitCode='1 (Process killed or exited with error)', Runtime='2669'ms

I have no idea what that means, but I suspect the Python.exe is the "part" of the partial server AI tool says isn't running. I don't see it in task manager while I see the other two EXEs.

I've tried several versions of the AI tool and I'm currently on version 1.67.8.33855. Any help would be appreciated; I'm about to pull my hair out trying to make this silly thing work!
 
On docker, when I run it, it creates the container as you'd expect, but then stops here:

Code:
docker run --restart=always -e VISION-DETECTION=True -v localstorage:/datastore -p 83:5000 --name deepstack deepquestai/deepstack
/v1/vision/detection
---------------------------------------
v1/vision/addmodel
---------------------------------------
v1/vision/listmodels
---------------------------------------
v1/vision/deletemodel
---------------------------------------
---------------------------------------
v1/backup
---------------------------------------
v1/restore

Since you seem to be running in Windows, which version of Docker are you using? I had the best luck just running an Ubuntu VM then running docker in there instead of the bastardized version of Docker for Windows.

But I also wanted to point out, this actually is what you should see. It "stops here" is exactly where it stops as it'll wait for input. If you go to your IP and port 83 on a browser it should load the DeepStack page and you'll see the GET requests populate that same log window. At that point you should also be able to link Ai-Tools to it and it'll accept requests and start processing images.
 
  • Like
Reactions: photomatix
Since you seem to be running in Windows, which version of Docker are you using? I had the best luck just running an Ubuntu VM then running docker in there instead of the bastardized version of Docker for Windows.

But I also wanted to point out, this actually is what you should see. It "stops here" is exactly where it stops as it'll wait for input. If you go to your IP and port 83 on a browser it should load the DeepStack page and you'll see the GET requests populate that same log window. At that point you should also be able to link Ai-Tools to it and it'll accept requests and start processing images.
So I guess I just had to "type" it out loud. I just figured it out. On both of the systems I was testing it on, neither have the AVX instruction set (it's what I get for having old hardware). I ran the "noavx" version of the docker image and it's working perfectly now. :facepalm:
 
Can we talk about what right looks like- I am getting alert images sent to Telegram and as far as I can tell they are indeed relevant and I don't have issues with that. I am (now) using the VolronCD version. On the Stats page you have the circle chart and on the bottom it shows # of errors, Alerts, Irrelevant, false, skipped img queued and Action Queued.
Here are my questions-
1. I am getting a ton of errors all showing the trigger URl's, I know the data is correct, I am using both of the URL's from the original set up from pg 1 of this thread, with this version should I only be using 1 of them or should they be different than they are on the original instructions? Should I be putting something in the Cancel URL block (on the Actions Screen)
2. I get thousands of irrelevant and false alerts- they don't end up being sent to me as a alert but the high number! Is this normal, Obviously I don't want to get alerts on them but the #'s seem so high I wonder if I am doing something wrong.
3. What are the skipped files about? Why are they skipped-Should be concerned?
4. IMG Queued/Action Queued? What is their purpose?

As always TIA!!


1 Post an example
2 That is OK and means AITool is doing its job but check your settings in BI see 3. They are too sensitive.
3 Probably due to 2- too many images to process- I don't get any.
4 Once AITool has done its processing of the image it puts any actions it has to take in a separate queue to be done e.g. send telegram message.
 
1 Post an example
2 That is OK and means AITool is doing its job but check your settings in BI see 3. They are too sensitive.
3 Probably due to 2- too many images to process- I don't get any.
4 Once AITool has done its processing of the image it puts any actions it has to take in a separate queue to be done e.g. send telegram message.
@Tinbum Cool Beans! Thanks. Here is an example of the error. sorry do not know a beeter way to C/P it in here-

DTypeTimeIdxDetailMemberName
Detail10/20/2020 8:35:15 AM164127.0.0.1:80 - -> trigger URL called: {admin}&pw={pwJ}, response: '<!DOCTYPE html> <html lang="en"> <head> <script> function renew(){ key_mode = false var admin_key = "" if (key_mode == true){ admin_key = prompt("Enter your admin key","") } document.getElementById("loader").style.display = "" var req = new XMLHttpRequest() req.onreadystatechange = function(){ if(this.readyState == 4 && this.status == 200){ response = JSON.parse(this.responseText) if(response.success == false){ document.getElementById("error_message_renew").innerText = response.error } else { document.getElementById("renew_success").style.display = "" document.getElementById("renew_button").style.display = "none" document.getElementById("expiringdate").innerText = response.expiringdate document.getElementById("daysleft").innerText = response.daysleft document.getElementById("error_message_renew").innerText = "" var plan = response.plan if (plan == 0){ document.getElementById("subscriptiontype").innerHTML = "Free" } else if (plan == 1){ document.getElementById("subscriptiontype").innerHTML = "Business" } else if(plan == 2){ document.getElementById("subscriptiontype").innerHTML = "Standard" } } document.getElementById("loader").style.display = "none" } } req.open("POST","/v1/admin/activate",true) req.setRequestHeader("Content-Type","application/x-www-form-urlencoded") req.send("admin_key="+admin_key) } function activate(re_activation){ key_mode = false var admin_key = "" if (key_mode == true){ admin_key = prompt("Enter your admin key","") } if (re_activation == false){ document.getElementById("loader1").style.display = "" } else{ document.getElementById("loader").style.display = "" } if(re_activation == true){ document.getElementById("error_message_new").innerText = "" } else { document.getElementById("error_message").innerText = "" } var req = new XMLHttpRequest() req.onreadystatechange = function(){ if(this.readyState == 4 && this.status == 200){ response = JSON.parse(this.responseText) if(response.success == false){ document.getElementById("error_message_new").innerText = response.error if(re_activation == true){ document.getElementById("error_message_new").innerText = response.error } else { document.getElementById("error_message").innerText = response.error } } else { if(re_activation == true){ document.getElementById("form-renew-key").style.display = "none" document.getElementById("renew_button").style.display = "none" document.getElementById("re_activate_success").style.display = "" document.getElementById("error_message_new").innerText = "" } document.getElementById("form-renew").style.display = "" document.getElementById("form").style.display = "none" document.getElementById("expiringdate").innerText = response.expiringdate document.getElementById("daysleft").innerText = response.daysleft document.getElementById("error_message").innerText = "" var plan = response.plan if (plan == 0){ document.getElementById("subscriptiontype").innerHTML = "Free" } else if (plan == 1){ document.getElementById("subscriptiontype").innerHTML = "Business" } else if(plan == 2){ document.getElementById("subscriptiontype").innerHTML = "Standard" } } if (re_activation == false){ document.getElementById("loader1").style.display = "none" } else{ document.getElementById("loader").style.display = "none" } } } if (re_activation == false){ key = document.getElementById("activation_key").value } else{ key = document.getElementById("activation_key_new").value } req.open("POST","/v1/admin/activate",true) req.setRequestHeader("Content-Type","application/x-www-form-urlencoded") req.send("key="+key+"&admin_key="+admin_key) } function onload(){ activation = true key_mode = false plan = 0 if(activation == true || plan != null ){ document.getElementById("form-renew").style.display = "" if (plan == 0){ document.getElementById("subscriptiontype").innerHTML = "Free" } else if (plan == 1){ document.getElementById("subscriptiontype").innerHTML = "Business" } else if(plan == 2){ document.getElementById("subscriptiontype").innerHTML = "Standard" } } else { document.getElementById("form").style.display = "" } } </script> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="description" content=""> <meta name="author" content="s"> <title>DeepStack</title> <link rel="icon" href="assets/img/deepstack.png" > <link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="assets/vendor/fontawesome-free/css/all.min.css" rel="stylesheet"> <link rel="stylesheet" href="assets/vendor/simple-line-icons/css/simple-line-icons.css"> <link rel="stylesheet" href="assets/device-mockups/device-mockups.min.css"> <link href="assets/css/new-age.min.css" rel="stylesheet"> </head> <body id="page-top" onload="onload()"> <nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav"> <div class="container"> <a class="navbar-brand js-scroll-trigger" href=""><img src="assets/img/deepstack.png" width="30" height="30" class="d-inline-block align-top" alt=""> <b style="color: white;" >DeepStack</b> </a> <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"> Menu <i class="fas fa-bars"></i> </button> </div> </nav> <header class="masthead"> <div class="container h-100" > <div class="row h-100" id="form" style="display: none;"> <div class="col-lg-7 my-auto"> <div class="header-content mx-auto"> <h1 class="mb-5" style="font-size: 70px;"><b>DeepStack 3.4</b></h1> <p class="mb-5">Congratulations! You have successfully installed DeepStack AI Server on your machine. To activate all the Recognition and Detection APIs, get an <b>Activation Key</b> and Enter the Key on the right.</p> <div class="row" > <div class="col-sm-12" > <a href="Sign Up" target="_blank" class="btn btn-outline btn-xl js-scroll-trigger btn-primary" style="margin: 10px;">Get Activation Key!</a> </div> </div> <div class="row" > <div class="col-sm-8" > <a href="Dev Center - DeepStack" target="_blank" class="btn btn-outline btn-xl js-scroll-trigger" style="margin: 10px;">DeepStack Dev Center </a> </div> </div> <div class="row" > <div class="col-sm-8" > <a href="DeepStack Forum" target="_blank" class="btn btn-outline btn-xl js-scroll-trigger" style="margin: 10px;">DeepStack Forum </a> </div> </div> </div> </div> <div class="col-lg-5 my-auto" style="background-image: url('assets/img/dark-background.png')"> <br> <br> <div class="form-group"> <label for="activation_key">Enter Activation Key </label> <input type="text" class="form-control" id="activation_key" aria-describedby="emailHelp" placeholder=""> <span id="error_message" style="color: orangered;"></span> <span class="form-text" style="color: white;font-size: 14px;">Get a Key from <b><a href="Sign Up" target="_blank" style="color: green;">DeepStack AI Server</a></b></span> </div> <button type="submit" onclick="activate(false)" class="btn btn-primary btn-block">Activate Now!</button> <br> <br> <center><img src="assets/img/loader.gif" id="loader1" style="width: 60px; height: 60px; display: none;"/></center> </div> </div> <div class="row h-100" id="form-renew" style="display: none;"> <div class="col-lg-7 my-auto"> <div class="header-content mx-auto"> <h1 class="mb-12" style="font-size: 70px;"><b>DeepStack Activated</b></h1> <p class="mb-5">Your DeepStack Installation is Activated. </p> <p class="mb-5">Visit the Developer Center for Tutorials and Documentations </p> <div class="row" > <div class="col-sm-8" > <a href="Dev Center - DeepStack" target="_blank" class="btn btn-outline btn-xl js-scroll-trigger" style="margin: 10px;">DeepStack Dev Center</a> </div> </div> <div class="row" > <div class="col-sm-8" > <a href="DeepStack Forum" target="_blank" class="btn btn-outline btn-xl js-scroll-trigger" style="margin: 10px;">DeepStack Forum </a> </div> </div> </div> </div> <div class="col-lg-5 my-auto" style="background-image: url('assets/img/dark-background.png')"> <br> <br> <div class="form-group" > <p><b>Days left on Subscription:</b> <span id="daysleft"> 685<span></p> <p><b>Subscription Expiration:</b> <span id="expiringdate"> 2022-09-06 </span> </p> <p><b>Subscription Type:</b> <span id="subscriptiontype"> </span> </p> <button onclick="renew()" id="renew_button" class="btn btn-primary btn-block">Renew Current Subscription</button> <span id="error_message_renew" style="color: orangered;"></span> <h2 id="renew_success" style="color: green; display: none;"> Renewal Successful </h2> <br> <br> </div> <div class="form-group" id="form-renew-key" > <h1> New Key Activation </h1> <label for="activation_key">Enter New Activation Key </label> <input type="text" class="form-control" id="activation_key_new" aria-describedby="emailHelp" placeholder=""> <span id="error_message_new" style="color: orangered;"></span> <span class="form-text" style="color: white;font-size: 14px;">Get a Key from <b><a href="Sign Up" target="_blank" style="color: green;">DeepStack AI Server</a></b></span> <button type="submit" onclick="activate(true)" class="btn btn-primary btn-block"> Activate New Key </button> </div> <h2 id="re_activate_success" style="color: green; display: none;"> Reactivation Successful </h2> <br> <br> <center><img src="assets/img/loader.gif" id="loader" style="width: 60px; height: 60px;display: none;"/></center> </div> </div> <div class="row h-100" id="response" style="display: none;"> <div class="col-lg-7 my-auto"> <div class="header-content mx-auto"> <h1 class="mb-12" style="font-size: 70px;"><b>DeepStack Activated</b></h1> <p class="mb-5">Your DeepStack Installation is Activated. </p> <p class="mb-5">Visit the Developer Center for Tutorials and Documentations </p> <div class="row" > <div class="col-sm-8" > <a href="DeepStack AI Server" target="_blank" class="btn btn-outline btn-xl js-scroll-trigger" style="margin: 10px;">DeepStack Dev Center</a> </div> </div> <div class="row" > <div class="col-sm-8" > <a href="DeepStack Forum" target="_blank" class="btn btn-outline btn-xl js-scroll-trigger" style="margin: 10px;">DeepStack Forum</a> </div> </div> </div> </div> </div> </div> </header> </body> </html> ' CallTriggerURLs>