I am trying to design a deep learning based inferencing solution for security applications. My deployed program achieves an FPS of 15fps for classification. Can it be considered real-time?
There are as many ad hoc "definitions" of "real-time" are there are people or places you hear or read about what it supposedly means. Some people claim there is a "hardline" such as 10uS response time, but I believe there is no academic paper that makes that mistake.
Many people implicitly have an informal mental model that considers a system as being "real-time" • if, or to the extent that, • its actions are manifest to action observers with latencies that can be related (usually in an application-specific way) to the actions’ perceived currencies— • i.e., in a time frame that those actions’ latencies and predictability of latencies have acceptably satisfactory value to their observers (e.g., system users). Think of high frequency trading.
The magnitudes of the time frames are application- and situation-specific—e.g., microseconds to megaseconds—not related to if, or to the extent, that a system is a real-time one.
So a system "operates in real-time" if its actions have low enough latency to satisfy your needs. If 15 FPS is a satisfactory enough rate, then the system is real-time as far as your needs are concerned; otherwise it is not--that's all that matters to you.
"Real Time" is defined with respect to the problem. Typically, "Real Time" is any system that carries out any computation required to provide an output in time less than the sampling period $Ts$.
To define "Real Time" for your application, you need a quantification of "time" or "flow" or "rate" so that you can compare that to what your system achieves or should be achieving. You need to determine how many decisions per unit of time should the classifier be making to decide if it would be adequate for real time operation.
Hope this helps.