{'fraction_non_alphanumeric': 0.02497687326549491, 'fraction_numerical': 0.0, 'mean_word_length': 5.254335260115607, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Towards real-time and real-life image classification and detection using CNN: a review of practical applications requirements, algorithms, hardware and current trends

CNN are already used in production applications in some areas, whereas for many real-life applications this is not possible yet, mainly because of speed and/ or power consumption limitations. In parallel, there are sustained efforts for simplifying CNN structure and for designing new processor architectures. In this paper we analyze the requirements of inference time and power consumption for a large variety of applications, running on all type of platforms, from edge devices to servers. We also review all hardware systems which can be used for CNN implementation, GPUs, TPUs, FPGA, prototype ASICs. Finally, we correlate the performance of these devices with the real-time and power requirements and the complexity of most popular CNN architectures. Thus, we determine what types of practical applications are currently possible, quantify the gaps for the others, and discuss how these gaps can be reduced.