From 85cab7f27638f08429ef90c5398877c123586c9d Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Thu, 19 Jan 2023 18:07:28 +0100 Subject: [PATCH 1/2] Remove unneeded type cast in LanguageModel::ExtractFeaturesFromPath Signed-off-by: Stefan Weil --- src/wordrec/language_model.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wordrec/language_model.cpp b/src/wordrec/language_model.cpp index 50747607fc..629c4b8463 100644 --- a/src/wordrec/language_model.cpp +++ b/src/wordrec/language_model.cpp @@ -1375,7 +1375,7 @@ void LanguageModel::ExtractFeaturesFromPath(const ViterbiStateEntry &vse, float // features[PTRAIN_NUM_BAD_FONT] = vse.consistency_info.inconsistent_font; // Classifier-related features. - features[PTRAIN_RATING_PER_CHAR] = vse.ratings_sum / static_cast(vse.outline_length); + features[PTRAIN_RATING_PER_CHAR] = vse.ratings_sum / vse.outline_length; } WERD_CHOICE *LanguageModel::ConstructWord(ViterbiStateEntry *vse, WERD_RES *word_res, From 3df0c7813fefb9023ae12e30b91ac26484f000f4 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Thu, 19 Jan 2023 18:15:05 +0100 Subject: [PATCH 2/2] Fix FP division by zero in LanguageModel::ExtractFeaturesFromPath (issue #3995) Signed-off-by: Stefan Weil --- src/wordrec/language_model.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/wordrec/language_model.cpp b/src/wordrec/language_model.cpp index 629c4b8463..1c96703c63 100644 --- a/src/wordrec/language_model.cpp +++ b/src/wordrec/language_model.cpp @@ -1375,7 +1375,12 @@ void LanguageModel::ExtractFeaturesFromPath(const ViterbiStateEntry &vse, float // features[PTRAIN_NUM_BAD_FONT] = vse.consistency_info.inconsistent_font; // Classifier-related features. - features[PTRAIN_RATING_PER_CHAR] = vse.ratings_sum / vse.outline_length; + if (vse.outline_length > 0.0f) { + features[PTRAIN_RATING_PER_CHAR] = vse.ratings_sum / vse.outline_length; + } else { + // Avoid FP division by 0. + features[PTRAIN_RATING_PER_CHAR] = 0.0f; + } } WERD_CHOICE *LanguageModel::ConstructWord(ViterbiStateEntry *vse, WERD_RES *word_res,