Nowadays facial recognition systems are becoming more and more widespread being deployed in many public places for safety reasons and in private properties as access control systems. Although facial recognition technology is widely used, there is still no out-of-the-box solution that will work in any case and therefore the construction of such a system should be carefully planned for each case individually. For this reason, a company considering deploying such a system is interested to know how much does a facial recognition system cost, and what are the pitfalls of building one.
This information may help you consider each stage of a plan and facial recognition system cost. In this blog post, we are going to discuss several issues that need to be solved while planning a facial recognition system based on computer vision. Careful consideration of these issues could potentially help avoid unnecessary expenses as well as reduce the amount of work that could be required.
A facial recognition system involves not only developing recognition software but also devising a hardware architecture that allows the software to work efficiently. Hence hardware and software matters should be addressed before developing a facial recognition system. In the following sections of this blog post we will discuss both of them and try to suggest how they could be approached.
During facial recognition software development, there are certain things to keep in mind. A tech solutions provider should consider hardware configuration, cameras and edge devices, datasets, and other important aspects before starting the project. To learn more about what a project of this kind includes and why facial recognition software price is high, read further.
When constructing a facial recognition security system, you should also keep in mind that there is no optimal hardware configuration suitable for every task. Suitable hardware should be thoughtfully chosen for each business task. For some tasks, if the chosen hardware is not powerful enough, then this may lead either to highly undesirable delays in processing or a drop in the quality of the solution. For other tasks that don’t require a lot of computational resources, the choice of too powerful hardware could cause a too expensive solution, which could be no longer in demand because of its price.
To make it more clear, let’s consider possible general business cases. For example, let’s assume that we have the task to identify a person in front of a camera. To solve the problem, we need to use just 2 neural networks: face detector and face recognizer. We can process several frames per second (5 – 7). Therefore, in this case, it would be enough to use a low-cost GPU (e.g. edge device) or even CPU. If we need to solve more complicated tasks such as tracking persons’ trajectories or their actions, we would need more neural networks, which require more computational capacity. So, powerful GPUs would be required.
The Сhoice of Сameras and Their Location
Without a doubt, careful planning of a facial recognition security system for a specific task and location would incorporate determining the type of cameras and their locations. The choice of this configuration vastly depends on the required image quality, angle of view, and coverage area. However, when choosing video quality and the number of cameras, network bandwidth should be taken into account, as it is commonly one of the serious bottlenecks in building high-quality facial recognition systems. High-quality devices also shape the facial recognition software cost.
A single video stream with h264 codec in Full HD (25 frames per second) requires ~6.5 Mbit / s compared to an HD stream (25 frames per second) consuming about 3 mbit/s. The numbers can vary significantly depending on the activity in the frame.
Usage of Edge Devices
A lot of facial recognition systems are based on heavy, deep neural networks. However, such networks often require GPUs for evaluation with appropriate speed. Hence, modern facial recognition systems force companies to have machines with CPU and GPU. To work properly, these servers need extra support in time and demand some location. To reduce the support for end-customers jetson devices solution can be used. It could help minimize human support as well as optimize the cost of the solution.
There are a lot of nuances about setting up optimal hardware for the system and it can be quite hard to choose it without experience. For this reason, we believe that it is experienced specialists who should create the final architecture solution for a specific facial recognition system. Such specialists would be able to determine the optimal configuration for each particular case while taking into account all existing hardware and software limitations and client’s needs.
In this section, we will describe major software issues across face recognition technology industries. A company aiming to deploy a facial recognition system should necessarily take into consideration:
To create robust facial recognition software, deep learning-based methods are commonly used. However, deep learning models are notoriously known to be very data-hungry. So, to create a robust system, you first need to understand where to get training data.
One of the most common scenarios at the first stages, when a company is lacking its own data, is to use open-source datasets. There are several publicly available datasets, however, not all of them could be used for commercial purposes. So, undoubtedly it is worth reading the dataset license before using the data to train a face recognition model.
For instance, the MS1M dataset, widely used in academic papers, could only be used for non-commercial purposes. VGGFace2 dataset, although having fewer data than MS1M, could be used in commercial projects as well. Another way of dealing with the dataset issue is obviously to collect your own private data. However, you should be aware that the cost of labeling and collecting millions of images, necessary to train a deep learning model, is prohibitive and most companies could not afford collecting their own data from scratch. For this reason, the best way to deal with this issue is to pretrain a model on publicly available datasets and then collect some amount of private training data to finetune the model for better performance on the specific task.
Personification and Possible Bias in the Pretrained Model
You should also take into consideration the demographic profile of the users of the system you want to develop. Since most open-sourced datasets comprise mainly white adults, the final model most probably will be biased and may not work properly on other races and/or ages. To circumvent this issue you collect additional private dataset consisting of a similar demographic profile to the one you expect in real life. Finetuning on the collected data may help reduce the model’s bias.
Most probably, if a company wants to deploy a face recognition system, it expects such a system to be scalable as well as be able to expand to a wider audience. This requires the software to possess high flexibility as well as the architecture of a system to be very thoughtfully devised.
To put it short, the software part should be constructed in a way to be fastly updated for a larger number of users without sufficient costs. All in all, according to our practical cases we suggest that it is much better in terms of costs and time to construct a well-designed system architecture from scratch than to extend the software that wasn’t designed to be scalable.
Speed of Image Retrieval
For many face recognition systems, image retrieval is a serious bottleneck, as it is quite common in such systems to perform searches in a database consisting of millions of data samples. For this reason, a company needs to make sure that the algorithm used to search through a database is efficient enough and could be scaled efficiently, as the database may be constantly growing.
How Much Does It Cost?
Finally, what is the cost of developing the face recognition software from scratch? And the answer is that it depends on the project requirements. As we describe it above, there are many variables that comprise the total price of the bespoke face recognition software developed.
To offer the client the best solution to meet business challenges, our company enters such projects with the Investigation Stage aimed at the following:
- Business objectives analysis
- Data analysis and identification of the scope of work
- Definition of high-level architecture and appropriate tools and technologies selection
- Risks identification
- Building proof of concept
- Definition of the expected results as well as costs and resources estimation.
The investigation stage allows validating an idea at an early stage, minimizing risks of a project failure, and saving a substantial amount of money.
The cost of the Investigation stage is usually within the range of USD 10 000 – 30 000 depending on the project size.
To Sum It Up
There are both software and hardware challenges that should be considered while planning the design of a facial recognition system. And without a doubt, it could be really beneficial to have an experienced team to help with this uneasy task. Keep in mind that the construction of a good and robust facial recognition system requires time, effort, and strong tech skills and expertise to ensure the project’s scalability and reasonable financial investments.
Develop a Robust Face Recognition System with InData Labs
Looking for a reliable computer vision solutions provider for facial recognition system development? Contact us today and we’ll consult you about the development process, facial recognition system cost and post-production support.