BitRefine Heads is a platform for automated objects recognition and extraction of structured data from video streams. The platform can be used a wide range of applications, like business insights or statistics collection, automated defects detection, improving level of security or video content analysis. Here are the main concepts of the BitRefine Heads platform architecture.
There’re two main parts of the platform: video processing units "Heads", which do all the recognition job, and the "Manager", which controls the processing units.
A user accesses the manager via browser. Through the manager a user gets all systems’ status, does all configurations, accesses reports.
One system may have multiple video processing units, distributed over different locations, but only one manager.
The Heads are video processing units – separate compute units that receive video streams, process them and return extracted structured data. The heads can also be called "workers". They don’t hold any pre-loaded configurations or processing modules. Everything is received from the manager in the moment of their start.
Main neural model
The head has a "brain" in its core: a neural network that does recognition job. The neural model for the "brain" is also loaded by the manager. And depending on the loaded neural model the head will be recognizing people, or vehicles, or surface defects or other visual patterns.
Each Head can serve multiple streams, inputs. Although the streams can have their own configurations, all of them share the same neural recognition model.
BitRefine Heads allows you to work with different sources of visual information: video streams, video files, and images. A source stands in very beginning of a processing pipeline. It acquires frames, decodes them and passes to the processors.
Processors are software modules that work inside a pipeline and do various transformations of the frame or its meta-data. The processors that go before the main neural model are called "pre-processors", as they do all kind of preparations before neural model will be applied. The processors that go after the main recognition are called "post-processors". They play important role of generalization, sorting, filtering, and improving results before sending them to a DB.
The final step in the pipeline is the output – the point, where results go to a storage or a user. BitRefine Heads platform offers a number of options: to save data in the internal DB, to send results as notifications, to send data to 3rd party DB, to send HTTP request or to trigger dry contacts. There’re can be a number of outputs in the end of each processing pipeline.
Sources, processors, neural model and output together create the graph. This graph is called the processing pipeline. Each head can have multiple pipelines with unique configuration.
Event is an important concept of BitRefine Heads object recognition platform, because we save not the detected objects, but register and save the Events that are associated with the objects. For example, when the object is detected in a frame for the first time, we register a
newly_detected event. The last frame that has an object before it disappears is saved as a
last_shot event. The most common case is saving only the
best_shot event - the event when an object is detected with the highest confidence. Another example of an event is the
line_cross event, when an object crosses a virtual line.