Face Search HW requirements
The Face Matcher service keeps all available face templates in the memory for the best search performance. If you have a long history of detected faces in the database from many high-traffic cameras, you need to consider allocating special HW resources just to run this service.
It is important to allocate enough resources to Face Matcher, otherwise it can have a major impact on the core functionality of the SmartFace system. In case you do not use Feace Search feature, it is recommended to remove Face Matcher form your system design.
All measurements were done on x86 PC with following configuration: i7-7700 CPU, 3.60GHz, MS SQL server 2016. All times may vary depending on your system HW and SW configuration.
Memory footprint of Face Matcher
Reference measurements:
Faces in DB |
Memory usage |
2,403,044 |
3.5 GB |
1,151,554 |
1.9 GB |
Example:
If your face database contains e.g. 10,000,000 faces, you have to count with 15 GB of memory for loaded templates and +20% increase in memory during search requests.
Initial loading time
It will take approximately 3.5 minutes to initially load 1 million face templates from the database into Face Matcher if the database is on the same server as the service itself. Increase of the loading time is linear with increasing number of faces.
Example:
If your face database contains e.g. 10,000,000 faces, initial load time will be 35 minutes.
Search time
Final duration of the face search consist from two times:
matching time - in memory match of all loaded templates with uploaded face
results insert time - time of inserting SearchSessionObjects into the database
Matching time on 1 million face templates in memory is approximately 500 ms.
Results insert time depend on number of results what need to be inserted, database access speed and available HW.
Reference measurements:
Number of results |
Insert time |
1,017,358 |
40s |
100,000 |
2s |
Example:
If your face database contains e.g. 10,000,000 faces, and you will have 1% matches (~ 100,000) you can calculate the search time:
Search Time = Matching time + Result Insert Time = 0.5s * 10 + 2s = approx. 7 seconds
Cleanup process time
Reference measurements:
Session object count |
Approx. cleanup time |
100 |
Instant |
1 000 |
Instant |
10 000 |
Instant |
100 000 |
2s |
1 000 000 |
20s |