Sentinel Facial Recognition: Black Edition - Free for 3 cams

fenderman

Staff member
Mar 9, 2014
36,892
21,407
Sentinel Black Edition — Sentinel
Specifications
  • FREE

  • 100% Private. No Cloud

  • Up to 3 cameras

  • UNLIMITED faces

  • UNLIMITED users

  • Single Server Installation

  • Compatible with any IP camera

  • Includes 30 min free support session (USD$50)

  • 100px min face size

  • 99.2% accurate

  • In the Wild (Non collaborative) detection

  • Generate and export reports

  • Forensic tools

  • Runs on secure linux infrastructure.
Requirements
  • Nvidia GPU. Starting from GTX 1060 6GB and up.

  • At least 16 GB RAM

  • At least Intel i5 6th gen or equivalent

  • 10 GB of disk for installation. Recommended SSD

  • Recommended 1TB disk for storage

  • Ubuntu 16.04 LTS
 
I really do not want to learn another operating system. Ubuntu.
Can this be configured to get the camera data from Blue Iris, or does it need direct access to the cameras ?
I am thinking about it.
 
You dont really need to deal with ubuntu. You interact with the system through a web site (locally serverd by your server).

And yes. the engine just asks for an url port and credentials to connect to the video stream. that can be the camera, the vms or an nvr.
 
Neat. Pretty hardware intensive though based on the requirements.

I'd recommend letting it stream directly from cameras. Video coming out of BI's web server has been re-encoded by Blue Iris (which uses quite a bit of CPU and reduces the quality).
 
  • Like
Reactions: fenderman and Mike
Based on the prompt from fenderman I packed up a version for CPU and tried it. It runs. it is s little slow and I would not recommend it for enterprise customers, but ti might be enough for home users. try it and let me know!

For CPU installations use this installer instead of the one downloaded from the page. LINK

if you are new to linux run the installer like this:

Code:
$ chmod u+x installer_lite.run
$ ./installer_lite.run


After installation you need to login, go to settings > organization: grab your org id and send me a PM so I can generate your non demo license. Otherwise you will only get one camera for 30 days.
 
Last edited:
  • Like
Reactions: fenderman
Would Black Edition run on an older GPU such as GTX 680 or 980? Or is a 10xx series GPU required for some aspect of it? Or maybe the older cards would not have enough video memory? Those are 2GB / 4GB cards.
 
It is a function of CUDA cores and memory.

The 980 is 4gb right?

The models we run for facial (deep learning models) are quite heavy that is why I recommend at least 6GB of video memory. That being said. I just run the whole thing on my videocard-less laptop and it run somewhat decently for a single camera. If you want to try it on a card with less than 6gb of memory send me a PM as we would have to tweak a couple of things to make sure we don't overload the machine.
 
  • Like
Reactions: fenderman
Well, I've got three old gaming cards not doing anything.

GTX 680 (2 GB)
GTX 980 (4 GB)
GTX 1080ti (11 GB) - been planning to sell this one on ebay

Plus an old third-gen i7 running ESXi with quite a bit of free memory.

Bm81T6b.png
 
the 1080 would be more than enough. the i7 should be enough too, specially if we are using the video card. can you pass on the video card to the virtual machine with vmware?
 
Do let me know when you try. Your setup sounds like an excellent candidate for this.
 
As noted I'm going to sell the 1080ti. So if I try this software I'd like to try with the GTX 980 (4 GB). What kind of compromises must be made to run this on less than 6 GB of video memory?
 
im not sure 4gb is enough to load both models, we could try on CPU first see how it performs and then try to put some load on the card.
 
Just to update this thread. We installed it on a virtual machine on CPU only. it will work fine for one (maybe 2?) cameras. but i would not throw a lot more at it without GPU.

The takeaway is that virtualized on CPU it definitely runs for a single camera.
 
Yes, it is very resource-intensive, but in my admittedly limited testing thus far it has performed well. There were a few snags in getting it all running but @nats was awesome and got everything straightened out quickly.

Here are more details for those interested.

I installed it in a virtual machine (4 vCPUs/cores, 16 GB RAM, 150 GB SSD) running in ESXi 6.7 on an i7-3770k CPU. The required OS is Ubuntu 16.04 desktop (as opposed to the Ubuntu server release, which can't run the installer). Notably, I haven't noticed its memory usage exceed 8 GB yet, so you don't necessarily need 16 GB.

There was a bit of a learning curve, as this software uses some concepts and terminology that may not be familiar. For example, what Blue Iris would call a "Camera", Sentinel calls an "Access Point". I didn't need to configure anything more than the bare minimum required to load the stream. Camera type, IP, port, user name, password. Dahua was a pre-defined choice so I didn't even need to look up the video stream path. Once I added the camera ("access point") there was a toggle switch to, well, turn it on. I flipped that on, and just like that, Sentinel was analyzing the video stream for faces.

Now the camera I added was an 8 MP Dahua sending 15 FPS. This puts quite a load on the CPU even when there is nothing moving and no faces to analyze. Looked like about 25-33%. I had my brother walk outside to test it and the added load of recognizing the detected face raised CPU usage to 100% on all 4 cores. Fortunately the camera configuration lets you reduce the frame rate. Obviously this won't be as efficient as reducing the frame rate in the camera's web interface so that it encodes less video in the first place, but it works well enough for this purpose since the main CPU user here is the facial recognition, not the video decoding. I reduced it to the minimum allowed value of 4 FPS and we tried the experiment again. All cores usage got high, but not quite to 100%. Good enough. I don't know how well the system would cope with being maxed out for an extended period of time. Like if you had a camera pointed at a whole party of people for an hour. I'm guessing it would drop frames as necessary to not fall too far behind in image processing, but again, I did not test such a situation.

The interface as a whole could use a lot of polish. There are numerous minor style issues such as the rightmost button in the top bar missing its margin, or buttons overlapping each other when the browser window is narrow.

One stumbling point was at the event viewer page. It didn't show any events. As it turns out, this is because the default date filter has the start and end dates set to the same time, so you must first choose a start date before any events will actually show up. And you must do this every time you load that page.

Another issue, the interface tries to use a web socket to listen for new events, but the JavaScript by default attempts to connect to "localhost". This is fine if you view the interface from the same machine you installed it on, but if viewing remotely you need to edit a configuration file and change localhost to an IP address or other hostname. I strongly recommend that this be resolved in an update. I can't think of any reason why the script opening the web socket can't just look at the current address to determine the hostname to use for the web socket connection.

Teaching the software who each face belongs to is fairly straightforward if you click on unrecognized faces in the event viewer. But before I tried that, I floundered around for a while in a different interface page which claimed to be for teaching identities based on past events, but apparently lacked the ability to actually look up past events.

Much of the learning curve could be alleviated by good documentation, which I didn't find any of.

Another fun quirk is that if you live-view a camera through Sentinel's web interface, the video is mirrored. Evidently, this is on purpose because someone thought it was more intuitive that way. I'm having flashbacks of when Skype started doing this and took away the option to switch it back to normal.

Anyway, that is all for now. This is certainly some very interesting software and I encourage anyone with the inclination and spare hardware to try it out.
 
@bp2008 If you've trained it to recognize your brother during the day, will it still recognize him at night when camera is B&W?

2nd question, how did it do with multiple people in the picture?
3rd, what if your brother was wearing a hat that obscured part of his face, and/or wearing sunglasses?

Yes, it is very resource-intensive, but in my admittedly limited testing thus far it has performed well. There were a few snags in getting it all running but @nats was awesome and got everything straightened out quickly.

Teaching the software who each face belongs to is fairly straightforward if you click on unrecognized faces in the event viewer. But before I tried that, I floundered around for a while in a different interface page which claimed to be for teaching identities based on past events, but apparently lacked the ability to actually look up past events.
 
Last edited:
Nice. If it works on 16.04, it "should" work on 18.04 as well I would think.

I have several Ubuntu machines so I might try this.

I just wish it could run against pre-recorded video instead of only against a live stream. I can think of some really cool uses for this if that was the case.
Kinda wondering why you couldn't?
Does the software really care if the stream is coming from a live camera or a pre-recorded video?
 
You can upload photos and videos I believe, but it isn't an automatic process.

As for identifying at night those who it has seen in the day, I have no idea. Should test that.

My brother did go out with a stocking cap on and it knew it was seeing a face but couldn't identify him specifically from those. I also hadn't given it very many examples to work with yet. I just don't have a busy enough home to be a great test case :)
 
If you've trained it to recognize your brother during the day, will it still recognize him at night when camera is B&W?

2nd question, how did it do with multiple people in the picture?
3rd, what if your brother was wearing a hat that obscured part of his face, and/or wearing sunglasses?

Okay, so we both walked outside and looked straight at the camera for several seconds. It captured one image of my brother and three of myself (I went out first and for a slightly longer period of time). It did not identify us at all. This doesn't really surprise me. People can look pretty different under IR and this camera is not perfectly positioned or tuned for great facial recognition (particularly at night). That would take more zoom and a quicker shutter speed. The photos that I had added under our two profiles did not include any night images, and many of the day images were side profile or had lots of falling snow in the frame.

During this experiment, which recorded 4 events, I received only one email notification of the first event. I'm guessing outgoing emails are throttled and since it had marked all events as unidentified persons, that may not have warranted an additional email when a different face entered the frame.

This is what CPU usage looked like at the time. The elevated portion is us going outside and being detected.

HxDA8JZ.jpg


Given this, I would expect that the software could handle a second camera at a low frame rate pretty well, and I suspect that three would work too, but maybe it would be best to assign more cores or not have one of the cameras be 4K resolution.
 
Last edited:
  • Like
Reactions: actran
Nice. If it works on 16.04, it "should" work on 18.04 as well I would think.
It does run, there are only a few quirks but all very manageable. 16.04 is just the most straight forward install

I have several Ubuntu machines so I might try this.

You should, I'm happy to help.

I just wish it could run against pre-recorded video instead of only against a live stream. I can think of some really cool uses for this if that was the case.
Kinda wondering why you couldn't?
Does the software really care if the stream is coming from a live camera or a pre-recorded video?

It does care simple becasue it is the way it consumes the feed. Depending on what you are trying to do I'd be happy to see how we can help.