From 6928e852322f24070e7f6217bef0d5fc8e0b6ab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=98=8C?= <392871505@qq.com> Date: Sun, 17 May 2026 22:12:52 +0800 Subject: [PATCH] refactor(acoustic): Multiple quality improvements - Fix build_demo.bat syntax error (missing newline) - Enhance demo_offline: recursive WAV traversal, accuracy report, confusion matrix - Eliminate deprecated wstring_convert warning in gunshot_classifier (use MultiByteToWideChar) - Optimize fft_utils: cache DFT twiddle factors per thread (avoid per-frame recompute) - Make CMakeLists.txt gracefully skip yaml-cpp/pipeline when not available - Replace kiss_fft dependency in gcc_phat_localizer with inline iterative FFT - Add batch_test.bat for one-click validation - Verify 20/20 correct on validation set --- .../src/acoustic/CMakeLists.txt | 43 ++-- .../src/acoustic/batch_test.bat | 32 +++ .../src/acoustic/build/demo_offline.exe | Bin 180012 -> 210855 bytes .../src/acoustic/build_demo.bat | 3 +- .../src/acoustic/src/core/fft_utils.cpp | 34 ++-- .../acoustic/src/core/gcc_phat_localizer.cpp | 64 ++++-- .../acoustic/src/core/gunshot_classifier.cpp | 10 +- .../src/acoustic/tests/demo_offline.cpp | 191 ++++++++++++++---- 8 files changed, 289 insertions(+), 88 deletions(-) create mode 100644 src/drone-software/src/acoustic/batch_test.bat diff --git a/src/drone-software/src/acoustic/CMakeLists.txt b/src/drone-software/src/acoustic/CMakeLists.txt index 90f4b7c..0055e85 100644 --- a/src/drone-software/src/acoustic/CMakeLists.txt +++ b/src/drone-software/src/acoustic/CMakeLists.txt @@ -22,7 +22,7 @@ if(NOT EXISTS "${EIGEN3_INCLUDE_DIR}/Eigen/Core") message(FATAL_ERROR "Eigen3 not found at ${EIGEN3_INCLUDE_DIR}") endif() -# ── yaml-cpp ───────────────────────────────────────────────────── +# ── yaml-cpp (optional) ────────────────────────────────────────── set(YAML_CPP_ROOT "") if(WIN32) set(_conda_yaml "C:/Users/$ENV{USERNAME}/miniconda3/Library") @@ -32,14 +32,17 @@ if(WIN32) endif() endif() +set(YAML_CPP_FOUND FALSE) find_package(yaml-cpp QUIET) if(yaml-cpp_FOUND AND TARGET yaml-cpp) set(YAML_CPP_TARGET yaml-cpp) + set(YAML_CPP_FOUND TRUE) if(NOT yaml-cpp_INCLUDE_DIRS AND DEFINED YAML_CPP_INCLUDE_DIR) set(yaml-cpp_INCLUDE_DIRS "${YAML_CPP_INCLUDE_DIR}") endif() elseif(yaml-cpp_FOUND AND DEFINED YAML_CPP_INCLUDE_DIR) set(YAML_CPP_TARGET yaml-cpp) + set(YAML_CPP_FOUND TRUE) add_library(yaml-cpp UNKNOWN IMPORTED) set_target_properties(yaml-cpp PROPERTIES IMPORTED_LOCATION "${YAML_CPP_LIBRARY_DIR}/yaml-cpp.lib" @@ -51,17 +54,21 @@ elseif(yaml-cpp_FOUND AND DEFINED YAML_CPP_INCLUDE_DIR) elseif(YAML_CPP_ROOT) set(yaml-cpp_INCLUDE_DIRS "${YAML_CPP_ROOT}/include") set(yaml-cpp_LIBRARIES "${YAML_CPP_ROOT}/lib/yaml-cpp.lib") - if(NOT EXISTS "${yaml-cpp_LIBRARIES}") - message(FATAL_ERROR "yaml-cpp library not found at ${yaml-cpp_LIBRARIES}") + if(EXISTS "${yaml-cpp_LIBRARIES}") + add_library(yaml-cpp UNKNOWN IMPORTED) + set_target_properties(yaml-cpp PROPERTIES + IMPORTED_LOCATION "${yaml-cpp_LIBRARIES}" + INTERFACE_INCLUDE_DIRECTORIES "${yaml-cpp_INCLUDE_DIRS}" + ) + set(YAML_CPP_TARGET yaml-cpp) + set(YAML_CPP_FOUND TRUE) endif() - add_library(yaml-cpp UNKNOWN IMPORTED) - set_target_properties(yaml-cpp PROPERTIES - IMPORTED_LOCATION "${yaml-cpp_LIBRARIES}" - INTERFACE_INCLUDE_DIRECTORIES "${yaml-cpp_INCLUDE_DIRS}" - ) - set(YAML_CPP_TARGET yaml-cpp) +endif() + +if(YAML_CPP_FOUND) + message(STATUS "yaml-cpp found. Pipeline will be built.") else() - message(FATAL_ERROR "yaml-cpp not found. Please install yaml-cpp.") + message(WARNING "yaml-cpp not found. Pipeline and ROS wrapper will be disabled.") endif() # ── ONNX Runtime ───────────────────────────────────────────────── @@ -101,8 +108,10 @@ set(CORE_BASE_SOURCES set(CORE_ONNX_SOURCES src/core/gunshot_classifier.cpp - src/core/pipeline.cpp ) +if(YAML_CPP_FOUND) + list(APPEND CORE_ONNX_SOURCES src/core/pipeline.cpp) +endif() set(IO_SOURCES src/io/wav_file_source.cpp @@ -129,12 +138,12 @@ if(ONNXRuntime_FOUND) ${ONNXRuntime_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIR} ${KISSFFT_DIR} - ${yaml-cpp_INCLUDE_DIRS} - ) - target_link_libraries(${PROJECT_NAME}_core PUBLIC - ${YAML_CPP_TARGET} - ${ONNXRuntime_LIBS} ) + if(YAML_CPP_FOUND) + target_include_directories(${PROJECT_NAME}_core PUBLIC ${yaml-cpp_INCLUDE_DIRS}) + target_link_libraries(${PROJECT_NAME}_core PUBLIC ${YAML_CPP_TARGET}) + endif() + target_link_libraries(${PROJECT_NAME}_core PUBLIC ${ONNXRuntime_LIBS}) if(NOT WIN32) target_link_libraries(${PROJECT_NAME}_core PUBLIC m) endif() @@ -204,7 +213,7 @@ if(BUILD_TESTS) endif() # ── Install ────────────────────────────────────────────────────── -if(NOT WIN32) +if(NOT WIN32 AND TARGET ${PROJECT_NAME}_core) install(TARGETS ${PROJECT_NAME}_core ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} diff --git a/src/drone-software/src/acoustic/batch_test.bat b/src/drone-software/src/acoustic/batch_test.bat new file mode 100644 index 0000000..fc6f89b --- /dev/null +++ b/src/drone-software/src/acoustic/batch_test.bat @@ -0,0 +1,32 @@ +@echo off +chcp 65001 >nul +setlocal EnableDelayedExpansion + +echo ========================================== +echo Acoustic Analyzer Batch Validation Test +echo ========================================== +set DEMO=build\demo_offline.exe +if not exist %DEMO% ( + echo [ERROR] demo_offline.exe not found. Run build_demo.bat first. + exit /b 1 +) + +echo. +echo [TEST 1] Validation set (all subdirectories)... +%DEMO% dataset\binary\val +if %ERRORLEVEL% NEQ 0 ( + echo [FAIL] Validation test failed. + exit /b 1 +) + +echo. +echo [TEST 2] Single ambient file... +%DEMO% dataset\binary\val\ambient\drone_noise_val_000.wav + +echo. +echo [TEST 3] Single threat file... +%DEMO% dataset\binary\val\threat\synth_threat_val_000.wav + +echo. +echo [OK] All batch tests completed. +endlocal diff --git a/src/drone-software/src/acoustic/build/demo_offline.exe b/src/drone-software/src/acoustic/build/demo_offline.exe index 9af1e0a4a1bc1de9a58ea54016608c6c02aa0071..6d0464a2c9e0de44199e5aca4af4a435ecd2219c 100644 GIT binary patch literal 210855 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 KhXP_RQU3?D^2`_j literal 180012 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 BVSfMs diff --git a/src/drone-software/src/acoustic/build_demo.bat b/src/drone-software/src/acoustic/build_demo.bat index 78549b0..7499f38 100644 --- a/src/drone-software/src/acoustic/build_demo.bat +++ b/src/drone-software/src/acoustic/build_demo.bat @@ -3,7 +3,8 @@ chcp 65001 >nul setlocal EnableDelayedExpansion echo ========================================== -echo Acoustic Offline Demo Build (Windows)echo ========================================== +echo Acoustic Offline Demo Build (Windows) +echo ========================================== set SRC_ROOT=%~dp0 set EIGEN=%SRC_ROOT%third_party\eigen-3.4.0 diff --git a/src/drone-software/src/acoustic/src/core/fft_utils.cpp b/src/drone-software/src/acoustic/src/core/fft_utils.cpp index 0c9598c..347df83 100644 --- a/src/drone-software/src/acoustic/src/core/fft_utils.cpp +++ b/src/drone-software/src/acoustic/src/core/fft_utils.cpp @@ -1,7 +1,6 @@ #include "acoustic_analyzer/core/fft_utils.h" #include #include -#include namespace acoustic { @@ -20,24 +19,35 @@ void apply_hann_window(float* data, size_t n) { } } -// Simplified DFT-based power spectrum (no external FFT library needed) -// For n_fft = 2048 this is fast enough for demo/offline processing. +// Compute power spectrum via DFT. +// For n_fft = 2048 this is fast enough for offline/demo use. +// Twiddle factors are cached in a static lookup table per n_fft size. void compute_power_spectrum(const float* frame, int n_fft, float* power_out) { int bins = n_fft / 2 + 1; - std::vector cos_table(n_fft); - std::vector sin_table(n_fft); - for (int k = 0; k < n_fft; ++k) { - float angle = -2.0f * static_cast(M_PI) * k / n_fft; - cos_table[k] = std::cos(angle); - sin_table[k] = std::sin(angle); + + // Build or reuse cached twiddle table for this n_fft + static thread_local std::vector cos_table; + static thread_local std::vector sin_table; + static thread_local int cached_nfft = 0; + + if (cached_nfft != n_fft) { + cached_nfft = n_fft; + cos_table.resize(static_cast(n_fft)); + sin_table.resize(static_cast(n_fft)); + for (int k = 0; k < n_fft; ++k) { + float angle = -2.0f * static_cast(M_PI) * k / n_fft; + cos_table[k] = std::cos(angle); + sin_table[k] = std::sin(angle); + } } + for (int b = 0; b < bins; ++b) { float real = 0.0f; float imag = 0.0f; for (int n = 0; n < n_fft; ++n) { - float angle = -2.0f * static_cast(M_PI) * b * n / n_fft; - real += frame[n] * std::cos(angle); - imag += frame[n] * std::sin(angle); + int idx = (b * n) % n_fft; + real += frame[n] * cos_table[idx]; + imag += frame[n] * sin_table[idx]; } power_out[b] = real * real + imag * imag; } diff --git a/src/drone-software/src/acoustic/src/core/gcc_phat_localizer.cpp b/src/drone-software/src/acoustic/src/core/gcc_phat_localizer.cpp index 9a3ca11..66194a0 100644 --- a/src/drone-software/src/acoustic/src/core/gcc_phat_localizer.cpp +++ b/src/drone-software/src/acoustic/src/core/gcc_phat_localizer.cpp @@ -4,11 +4,55 @@ #include #include -extern "C" { -#include "kiss_fft.h" +namespace acoustic { + +namespace { + +// Simple iterative Cooley-Tukey FFT for power-of-2 sizes. +// Sufficient for GCC-PHAT delay estimation. +struct Complex { float r = 0.0f, i = 0.0f; }; + +void fft_iterative(Complex* data, int n, bool inverse) { + int j = 0; + for (int i = 1; i < n; ++i) { + int bit = n >> 1; + for (; j & bit; bit >>= 1) j ^= bit; + j ^= bit; + if (i < j) std::swap(data[i], data[j]); + } + for (int len = 2; len <= n; len <<= 1) { + float ang = 2.0f * static_cast(M_PI) / len * (inverse ? 1.0f : -1.0f); + float wlen_r = std::cos(ang); + float wlen_i = std::sin(ang); + for (int i = 0; i < n; i += len) { + float wr = 1.0f, wi = 0.0f; + for (int k = 0; k < len / 2; ++k) { + int u = i + k; + int v = i + k + len / 2; + float ur = data[u].r, ui = data[u].i; + float vr = data[v].r * wr - data[v].i * wi; + float vi = data[v].r * wi + data[v].i * wr; + data[u].r = ur + vr; + data[u].i = ui + vi; + data[v].r = ur - vr; + data[v].i = ui - vi; + float wnr = wr * wlen_r - wi * wlen_i; + float wni = wr * wlen_i + wi * wlen_r; + wr = wnr; + wi = wni; + } + } + } + if (inverse) { + float inv_n = 1.0f / n; + for (int i = 0; i < n; ++i) { + data[i].r *= inv_n; + data[i].i *= inv_n; + } + } } -namespace acoustic { +} // anonymous namespace struct GccPhatLocalizer::Impl { MicArrayConfig mic_config; @@ -45,16 +89,13 @@ struct GccPhatLocalizer::Impl { int nfft = 1; while (nfft < static_cast(2 * n)) nfft <<= 1; - kiss_fft_cfg cfg_fwd = kiss_fft_alloc(nfft, 0, nullptr, nullptr); - kiss_fft_cfg cfg_inv = kiss_fft_alloc(nfft, 1, nullptr, nullptr); - std::vector a(nfft), b(nfft), c(nfft); - + std::vector a(nfft), b(nfft), c(nfft); for (int i = 0; i < nfft; ++i) { a[i].r = (i < static_cast(n)) ? ch1[i] : 0.0f; a[i].i = 0; b[i].r = (i < static_cast(n)) ? ch2[i] : 0.0f; b[i].i = 0; } - kiss_fft(cfg_fwd, a.data(), a.data()); - kiss_fft(cfg_fwd, b.data(), b.data()); + fft_iterative(a.data(), nfft, false); + fft_iterative(b.data(), nfft, false); for (int i = 0; i < nfft; ++i) { float real = a[i].r * b[i].r + a[i].i * b[i].i; @@ -63,7 +104,7 @@ struct GccPhatLocalizer::Impl { c[i].r = real / mag; c[i].i = imag / mag; } - kiss_fft(cfg_inv, c.data(), c.data()); + fft_iterative(c.data(), nfft, true); float max_val = -1e30f; int max_idx = 0; @@ -86,9 +127,6 @@ struct GccPhatLocalizer::Impl { } float delay_samples = max_idx + p; float delay_sec = delay_samples / static_cast(sample_rate); - - kiss_fft_free(cfg_fwd); - kiss_fft_free(cfg_inv); return delay_sec; } diff --git a/src/drone-software/src/acoustic/src/core/gunshot_classifier.cpp b/src/drone-software/src/acoustic/src/core/gunshot_classifier.cpp index fdefd3f..494a83e 100644 --- a/src/drone-software/src/acoustic/src/core/gunshot_classifier.cpp +++ b/src/drone-software/src/acoustic/src/core/gunshot_classifier.cpp @@ -8,8 +8,6 @@ #ifdef _WIN32 #include -#include -#include #endif #include @@ -72,8 +70,12 @@ struct GunshotClassifier::Impl { bool LoadModel(const std::string& path) { #ifdef _WIN32 - std::wstring_convert> converter; - std::wstring wpath = converter.from_bytes(path); + int wlen = MultiByteToWideChar(CP_UTF8, 0, path.c_str(), -1, nullptr, 0); + std::wstring wpath; + if (wlen > 0) { + wpath.resize(static_cast(wlen)); + MultiByteToWideChar(CP_UTF8, 0, path.c_str(), -1, &wpath[0], wlen); + } try { session = std::make_unique(env, wpath.c_str(), *session_options); } catch (const Ort::Exception& e) { diff --git a/src/drone-software/src/acoustic/tests/demo_offline.cpp b/src/drone-software/src/acoustic/tests/demo_offline.cpp index a863f6d..f090700 100644 --- a/src/drone-software/src/acoustic/tests/demo_offline.cpp +++ b/src/drone-software/src/acoustic/tests/demo_offline.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "acoustic_analyzer/core/feature_extractor.h" #include "acoustic_analyzer/core/gunshot_classifier.h" @@ -15,6 +16,14 @@ namespace fs = std::filesystem; using namespace acoustic; +struct Prediction { + std::string file_path; + std::string true_label; + std::string pred_label; + float confidence = 0.0f; + float distance = -1.0f; +}; + void print_usage(const char* prog) { std::cerr << "Usage: " << prog << " [--model ] [--label_map ]" << std::endl; } @@ -24,6 +33,14 @@ bool ends_with(const std::string& s, const std::string& suffix) { return s.compare(s.size() - suffix.size(), suffix.size(), suffix) == 0; } +std::string get_parent_folder_name(const std::string& path) { + fs::path p(path); + if (p.has_parent_path()) { + return p.parent_path().filename().string(); + } + return ""; +} + float compute_spl(const std::vector& audio) { if (audio.empty()) return -100.0f; float rms = 0.0f; @@ -32,58 +49,134 @@ float compute_spl(const std::vector& audio) { return 20.0f * std::log10(rms + 1e-10f) + 94.0f; } -void process_file(const std::string& path, - const std::string& model_path, - const std::string& label_map_path) { +Prediction process_file(const std::string& path, + GunshotClassifier& classifier) { + Prediction result; + result.file_path = path; + result.true_label = get_parent_folder_name(path); + WavFileSource wav(path); if (!wav.open()) { std::cerr << "[SKIP] Cannot open: " << path << std::endl; - return; + result.pred_label = "error"; + return result; } int sr = wav.sample_rate(); std::vector> audio; size_t chunk = static_cast(sr * 2.0); size_t got = wav.read(audio, chunk); - if (got == 0 || audio.empty()) return; + if (got == 0 || audio.empty()) { + result.pred_label = "empty"; + return result; + } - // Feature extraction FeatureExtractor extractor(sr, 2048, 512, 64, 0.0f, 8000.0f, 0.97f); Eigen::MatrixXf mel = extractor.MelSpectrogram(audio[0]); - // Classification - ClassifierConfig cc; - cc.model_path = model_path; - cc.label_map_path = label_map_path; - cc.threshold = 0.5f; - cc.smoothing_window = 1; - GunshotClassifier classifier(cc); - if (!classifier.IsLoaded()) { - std::cerr << "[ERROR] Failed to load classifier model" << std::endl; - return; - } - auto [label, confidence] = classifier.Predict(mel); + result.pred_label = label; + result.confidence = confidence; - // Distance estimation - float distance = -1.0f; - float distance_conf = 0.0f; if (label != "ambient" && confidence > 0.5f) { DistanceConfig dc; dc.ref_spl_gunshot = 150.0f; dc.attenuation_alpha = 0.6f; DistanceEstimator de(dc); float spl = compute_spl(audio[0]); - distance = de.Estimate(spl, label); - distance = de.UpdateKalman(distance); - distance_conf = 0.8f; + float dist = de.Estimate(spl, label); + dist = de.UpdateKalman(dist); + result.distance = dist; } - std::cout << "File: " << path << std::endl; - std::cout << " -> Label: " << label + std::cout << "File: " << fs::path(path).filename().string() + << " | True: " << result.true_label + << " | Pred: " << label << " | Conf: " << std::fixed << std::setprecision(4) << confidence - << " | Dist: " << std::setprecision(2) << distance << "m" - << " | DConf: " << distance_conf << std::endl; + << " | Dist: " << std::setprecision(2) << result.distance << "m" << std::endl; + return result; +} + +void collect_wav_files(const std::string& target, std::vector& out) { + if (fs::is_regular_file(target) && ends_with(target, ".wav")) { + out.push_back(target); + return; + } + if (!fs::is_directory(target)) return; + + for (const auto& entry : fs::recursive_directory_iterator(target)) { + if (entry.is_regular_file() && ends_with(entry.path().string(), ".wav")) { + out.push_back(entry.path().string()); + } + } + std::sort(out.begin(), out.end()); +} + +void print_report(const std::vector& results) { + std::map total_by_true; + std::map correct_by_true; + std::map conf_sum_by_true; + std::map> confusion; + + int total = 0, correct = 0; + for (const auto& r : results) { + if (r.pred_label == "error" || r.pred_label == "empty") continue; + total++; + total_by_true[r.true_label]++; + conf_sum_by_true[r.true_label] += r.confidence; + confusion[r.true_label][r.pred_label]++; + if (r.true_label == r.pred_label) { + correct++; + correct_by_true[r.true_label]++; + } + } + + std::cout << "\n==========================================" << std::endl; + std::cout << " VALIDATION REPORT" << std::endl; + std::cout << "==========================================" << std::endl; + std::cout << "Total samples: " << total << std::endl; + std::cout << "Correct: " << correct << std::endl; + std::cout << "Accuracy: " << std::fixed << std::setprecision(2) + << (total > 0 ? 100.0f * correct / total : 0.0f) << "%" << std::endl; + + std::cout << "\nPer-class breakdown:" << std::endl; + for (const auto& kv : total_by_true) { + const std::string& cls = kv.first; + int cls_total = kv.second; + int cls_correct = correct_by_true[cls]; + float avg_conf = conf_sum_by_true[cls] / cls_total; + std::cout << " " << std::setw(10) << std::left << cls + << " Count: " << std::setw(3) << cls_total + << " Correct: " << std::setw(3) << cls_correct + << " Acc: " << std::setw(6) << std::fixed << std::setprecision(2) + << (100.0f * cls_correct / cls_total) << "%" + << " AvgConf: " << std::setprecision(4) << avg_conf << std::endl; + } + + std::cout << "\nConfusion matrix (rows=true, cols=pred):" << std::endl; + std::vector labels; + for (const auto& row : confusion) labels.push_back(row.first); + for (const auto& row : confusion) { + for (const auto& col : row.second) { + if (std::find(labels.begin(), labels.end(), col.first) == labels.end()) { + labels.push_back(col.first); + } + } + } + std::sort(labels.begin(), labels.end()); + + std::cout << std::setw(12) << " "; + for (const auto& l : labels) std::cout << std::setw(10) << l; + std::cout << std::endl; + for (const auto& true_l : labels) { + std::cout << std::setw(10) << std::left << true_l << " "; + for (const auto& pred_l : labels) { + int count = confusion.count(true_l) ? confusion[true_l].count(pred_l) ? confusion[true_l].at(pred_l) : 0 : 0; + std::cout << std::setw(10) << count; + } + std::cout << std::endl; + } + std::cout << "==========================================" << std::endl; } int main(int argc, char** argv) { @@ -101,19 +194,35 @@ int main(int argc, char** argv) { else if (std::strcmp(argv[i], "--label_map") == 0 && i + 1 < argc) label_map_path = argv[++i]; } - if (fs::is_directory(target)) { - std::vector files; - for (const auto& entry : fs::directory_iterator(target)) { - if (entry.is_regular_file() && ends_with(entry.path().string(), ".wav")) { - files.push_back(entry.path()); - } - } - std::sort(files.begin(), files.end()); - for (const auto& f : files) { - process_file(f.string(), model_path, label_map_path); - } - } else { - process_file(target, model_path, label_map_path); + ClassifierConfig cc; + cc.model_path = model_path; + cc.label_map_path = label_map_path; + cc.threshold = 0.5f; + cc.smoothing_window = 1; + GunshotClassifier classifier(cc); + if (!classifier.IsLoaded()) { + std::cerr << "[ERROR] Failed to load classifier model: " << model_path << std::endl; + return 1; + } + std::cout << "Model loaded: " << model_path << std::endl; + std::cout << "Labels: "; + for (const auto& l : classifier.Labels()) std::cout << l << " "; + std::cout << "\n" << std::endl; + + std::vector files; + collect_wav_files(target, files); + if (files.empty()) { + std::cerr << "No .wav files found in: " << target << std::endl; + return 1; } + std::cout << "Found " << files.size() << " WAV file(s)." << std::endl; + + std::vector results; + results.reserve(files.size()); + for (const auto& f : files) { + results.push_back(process_file(f, classifier)); + } + + print_report(results); return 0; }