Is Hikvision just quicker to adapt to change than Axis/Avigilon or are they just more public with their announcements of products a year in advance of availability?
Hikvision Partners With Intel Movidius For Artificial intelligence Cameras
The world's largest camera manufacturer is partnering with the worlds largest semiconductor company to create a series of intelligent cameras.
Hikvision is partnering with chipmaker Movidius (soon to be acquired by Intel) to add Deep Neural Network (learning) video analytics to their cameras.
For background, see Intel Movidius IPVM overview, especially if you have not heard of Movidius before. Inside this post, we share feedback from Movidius and analyze the potential impact against incumbents including Axis and Avigilon.
Movidius is now announcing releases with Dahua and Uniview too:
What happened to Dahua?
No mention of Dahua now, no press release, google link broken...
Has anybody seen the chip working.
The adoption of the chip does sound promising and I really would like to hear first hand what it can and cannot do.
Other than the videos shown on Movidius website that is....
'Deep Learning' claims to radically increase the accuracy / performance of video analytics by adapting to individual environments instead of relying of pre-set heuristics.
Deep learning approaches use a lot of training data from somewhere to train detectors of important features in that data. Important means (for example) something that indicates presence of a person (or whatever is of interest). This process of training feature detectors replaces the previous technology in which feature detectors were hand crafted (an illustrative but not necessarily accurate example might be a detector to find beards as a possible component of faces). It turns out that for given training and test input (such as might occur in a competition such as ImageNet) the learned feature detectors are much better than hand crafted detectors are for given input. On the other hand the extent to which learned detectors generalise to input different to that typified by the training input is limited and may be inferior to that of the hand crafted detectors.
Historically most success with deep learning has involved supervised approaches (this is changing, however). In supervised approaches humans teach the DL system, for example by providing the correct (ground truth) results corresponding to the training input. This forces the DL system to learn to generate these correct results (basically it keeps trying and improving until it gets there).
To use supervised learning in the scenario described would be quite problematic as quite a lot of supervision is required. For example a human would need to provide the DL system with several hundred (at least) examples of the thing to be detected and a similar number of examples in which that thing was definitely absent. And in the scenario described this would have to be done separately for each and every camera (in its individual environment)
So, people are interested in unsupervised learning where no such input is required (at least not up front). One of the simplest unsupervised DL systems is the (variational) auto-encoder. An auto-encoder is a network that reconstructs its input (so given a 2 megapixel input image it should produce a 2 megapixel output image that is similar to the input . This sounds trivial: why not just copy the input pixels? the trick is that the network send all data through an intermediate layer (and in deep networks many intermediate layers) that have far fewer elements than the input and output layers (e.g. 50,000 instead of 2,000,000). So the auto-encoder has been "handicapped" forcing it to learn something other than a trivial copy of input to output. In particular to do well the intermediate layers need to learn a representation of the input that has far fewer dimensions (equivalent to pixels) and is thus forced to learn the important or distinctive aspects of that input. Notice that this process could run for each camera without supervision, and each camera could thus learn an internal representation specialized to the scene it observes (a so called generative model of that data). So each camera has (in a sense) an understanding of its individual environment encapsulated in this internal representation. Of course the next problem is to relate that internal representation to something the camera's owner cares about (e.g. person crossing the line) and it may be that at this point human intervention is again required (but perhaps at a lower volume than was required for the supervised approach). Think of a small child pointing to things and asking his or her parent "is that a dog?"; generative models can generate output that is characteristic of the model so a trained generative model could produce some number of (different) representative outputs and ask a human operator which of them are of interest...
Now all of this (deep learning) involves a training phase (supervised or unsupervised plus a few other options like reinforcement learning) during which the learning occurs and a later "test" phase during which input is presented and the (now trained) model generates a response (sound the alarum!). The training phase with deep learning is extremely intensive in its use of hardware, typically needing one or more powerful GPUs with multiple gigabytes of memory and quite possibly running for many days or even weeks (this is because the models are "deep" with many layers and may also be "wide"*, and are thus "big" structures). The test phase simply "evaluates" the trained model with new input and is much less intensive (still quite intensive though). I suspect that for the most part the Movideus chip is aimed at test, with learning having occurred elsewhere (e.g. in a data center with lots of GPUs) and this rather complicates the deployment model if one truly wants approaches adapted to each camera's individual environment...
* Not yet "tall", but that could come too...