video analytics for everyone

cam235

Pulling my weight
Joined
Oct 5, 2016
Messages
323
Reaction score
164
I guess the higher-end cameras have this built-in already, but it's kind of cool you can do it yourself on a Linux box using any image (but slowly, unless you have a serious Nvidia GPU).

It's a convolutional neural network (CNN) trained to detect many different kinds of things in images.
I'm just trying out the "Tiny YOLO" version of the program, which took 3 seconds (CPU only) to process and label the image below. Check out the performance on the demo video on their page though: YOLO: Real-Time Object Detection

darknet-image.jpg
 

hmjgriffon

Known around here
Joined
Mar 30, 2014
Messages
3,386
Reaction score
979
Location
North Florida
I guess the higher-end cameras have this built-in already, but it's kind of cool you can do it yourself on a Linux box using any image (but slowly, unless you have a serious Nvidia GPU).

It's a convolutional neural network (CNN) trained to detect many different kinds of things in images.
I'm just trying out the "Tiny YOLO" version of the program, which took 3 seconds (CPU only) to process and label the image below. Check out the performance on the demo video on their page though: YOLO: Real-Time Object Detection

View attachment 14173
Now, can you connect to a database of faces for facial recognition?
 

Kawboy12R

Known around here
Joined
Nov 18, 2014
Messages
1,771
Reaction score
609
1/3 of a FPS isn't much use, but it says >200FPS using a GPU which is quite useful. 20 cameras at 10FPS if it can handle multiple cameras. They neglect to mention which GPU, or at least it wasn't boldy mentioned in with the FPS reference.
 

nayr

IPCT Contributor
Joined
Jul 16, 2014
Messages
9,329
Reaction score
5,325
Location
Denver, CO
I'll have to check this out, I already have a Nvidia gfx card in my OpenALPR server churning away on video and it has plenty of power sitting unused.. thanks!
 

cam235

Pulling my weight
Joined
Oct 5, 2016
Messages
323
Reaction score
164
The project page is more about research than actual production use, the code I think just for demo. But it seems to be open-sourced so if you wanted, you could probably modify it to work with multiple input streams.

GitHub - pjreddie/darknet: Convolutional Neural Networks
"Darknet is an open source neural network framework written in C and CUDA. It is fast, easy to install, and supports CPU and GPU computation."

In one spot, they mention a Nvidia Titan X GPU which is not such a consumer-friendly item, it costs >$1k and wants a 600W power supply.
 
Last edited:

nayr

IPCT Contributor
Joined
Jul 16, 2014
Messages
9,329
Reaction score
5,325
Location
Denver, CO
for OpenALPRD im getting about 60ms processing time on my GTX 950, which is good enough for realtime @ 20fps
Code:
+------------------------------------------------------+                       
| NVIDIA-SMI 352.39     Driver Version: 352.39         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 950     Off  | 0000:01:00.0     Off |                  N/A |
| 38%   42C    P0    29W / 141W |     57MiB /  2047MiB |     25%      Default |
+-------------------------------+----------------------+----------------------+
                                                                              
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0     27587    C   /usr/local/bin/alprd                            46MiB |
+-----------------------------------------------------------------------------+
looks like a fun project..
 

hmjgriffon

Known around here
Joined
Mar 30, 2014
Messages
3,386
Reaction score
979
Location
North Florida
The project page is more about research than actual production use, the code is just for demo. In one spot, they mention a Nvidia Titan X GPU which is not such a consumer-friendly item, it costs >$1k and wants a 600W power supply.
Pretty much any discrete Nvidia card should have cuda tech, it's just using the GPU to do tons of math really fast, the more frames you want to process, the more powerful card you can use, and you can Daisy chain multiple video cards so you can do even more processing, could be pretty awesome if you could have it tag all the frames it sees faces or license plates in so you should jump right to those.
 

cam235

Pulling my weight
Joined
Oct 5, 2016
Messages
323
Reaction score
164
...you could have it tag all the frames it sees faces or license plates in...
You're thinking like I'm thinking :). I'd like to get a "current status" page of thumbnails which show just those things, where the thumbnail is selected for the clearest view. Much better than simple motion detection. I think these new CNN programs watching a video stream could make a pretty good selection of the best frames, and the most interesting parts of those frames.

From the academic paper describing YOLOv2 at [1612.08242] YOLO9000: Better, Faster, Stronger
"At low resolutions YOLOv2 operates as a cheap, fairly accurate detector. At 288 × 288 it runs at more than 90 FPS. 40 FPS at 544 x 544 [...] this makes it ideal for smaller GPUs, high framerate video, or multiple video streams. ...All timing information is on a Geforce GTX Titan X (original, not Pascal model)."
 
Last edited:
Top