ria-com/nomeroff-net

Unable to process multiline numberplates

Opened this issue · 4 comments

Пытаюсь настроить распознавание двух строчных номер, но выдает ошибку:

строка на которой ошибка
zones = convert_multiline_to_one_line(img, zones, all_mline_boxes, target_boxes, count_lines, region_names)
(имена переменных использовал как в ваших примерах)

Traceback (most recent call last):
  File "C:\work\nomeroff-net\_flask-rest-multi-line.py", line 126, in detect
    zones = convert_multiline_to_one_line(img, zones, all_mline_boxes, target_boxes, count_lines, region_names)
  File "C:\work\nomeroff-net\NomeroffNet\MultiLineNPExtractor.py", line 262, in convert_multiline_to_one_line
    zones_mline_boxes) = ccraft.multiline_to_one_line(all_mline_boxes_rect,
  File "C:\work\nomeroff-net\NomeroffNet\MultiLineNPExtractor.py", line 211, in multiline_to_one_line
    res = [self.make_one_line_from_many(mline_boxes,
  File "C:\work\nomeroff-net\NomeroffNet\MultiLineNPExtractor.py", line 211, in <listcomp>
    res = [self.make_one_line_from_many(mline_boxes,
  File "C:\work\nomeroff-net\NomeroffNet\MultiLineNPExtractor.py", line 232, in make_one_line_from_many
    one_line_img = multiline_converter.covert_to_1_line(region_name)
  File "C:\work\nomeroff-net\NomeroffNet\BBoxNpMultiline.py", line 139, in covert_to_1_line
    return self.merge_lines(cmd)
  File "C:\work\nomeroff-net\NomeroffNet\BBoxNpMultiline.py", line 168, in merge_lines
    img_zones = get_cv_zonesRGBLite(self.imagePart, self.rects)
  File "C:\work\nomeroff-net\NomeroffNet\BBoxNpMultiline.py", line 62, in get_cv_zonesRGBLite
    dst = buildPerspective(img, rect, w, h)
  File "C:\work\nomeroff-net\NomeroffNet\tools\image_processing.py", line 121, in buildPerspective
    return cv2.warpPerspective(img, moment, (w, h))
cv2.error: OpenCV(4.5.3) :-1: error: (-5:Bad argument) in function 'warpPerspective'
> Overload resolution failed:
>  - Can't parse 'dsize'. Sequence item with index 0 has a wrong type
>  - Can't parse 'dsize'. Sequence item with index 0 has a wrong type

Пытался самостоятельно отыскать проблему, приводил типы float то int в опознанных координатах знака (target_boxes и all_mline_boxes), но это не дало результата.

P.S. однострочные номерные знаки распознаёт хорошо

Прикладываю номера которые распознаются некорректно
2021-07-28__17_10_11__cam1__crop
296023036

  1. Судя по всему, у вас ошибка в коде, но поскольку вы его не прислали а показали только фрагмент то я не могу дать Вам какую-либо рекомендацию по устранению. Для того чтоб убедиться что проблема не в фото а в коде вы пробуйте распознать в онлайн-форме, там используется код из последней стабильной ветки (в данном случае это v2.3) https://nomeroff.net.ua/onlinedemo.html
    оба ваших примера распознаються нормально.
  2. Скорее всего проблема в этих переменных img, zones, all_mline_boxes, target_boxes, count_lines, region_names , предоставте максимум информации о коде и мы попробуем понять где ошибка.
  1. Проверил в онлайне (по ссылке), распознает хорошо.
  2. Даю полный код: https://pastebin.com/ZLcYwufj
    проблемное место в 126 строке

В этом коде есть много проблем, откуда вы его взяли? Вот вам пример как распознавать и обычные и квадратные номера в одном скрипте https://github.com/ria-com/nomeroff-net/blob/v2.3/banchmarks/accuracy-test-multiline.ipynb

Там еще не очень причесан код, потому что поддержка многострочности экспериментальная, но он точно рабочий для ветки v2.3

Попробовал и результат точно такой же.
Ошибка возникает при распознавании номеров в две строки
Я уже пробовал переставить OpenCV с версии 4.5.3 на 3,4,15 но это не дало результата

__________               ./images\326497737.jpeg                 __________
propably_points
[[646.5818838952207, 635.3182249411134], [635.0, 539.7676707654047], [734.4181137033568, 527.7169912519041], [746.0, 623.2675465234906]]
all_points
[[[638.4745651685662, 636.3009300519315], [643.1073187266545, 538.7849656545866], [742.5254324300113, 526.734286141086], [737.8926812733455, 624.2502516343087]]]                                                  ['su']                                                                                                                                                                                                             [2]
Traceback (most recent call last):
  File "C:\work\nomeroff-net\banchmarks\ml.py", line 202, in <module>
    nGood, nBad = test(dirName, fileName, testData[fileName], verbose=1)
  File "C:\work\nomeroff-net\banchmarks\ml.py", line 120, in test
    zones_mline_boxes) = ccraft.multiline_to_one_line(all_mline_boxes_rect,
  File "C:\work\nomeroff-net\NomeroffNet\MultiLineNPExtractor.py", line 211, in multiline_to_one_line
    res = [self.make_one_line_from_many(mline_boxes,
  File "C:\work\nomeroff-net\NomeroffNet\MultiLineNPExtractor.py", line 211, in <listcomp>
    res = [self.make_one_line_from_many(mline_boxes,
  File "C:\work\nomeroff-net\NomeroffNet\MultiLineNPExtractor.py", line 232, in make_one_line_from_many
    one_line_img = multiline_converter.covert_to_1_line(region_name)
  File "C:\work\nomeroff-net\NomeroffNet\BBoxNpMultiline.py", line 139, in covert_to_1_line
    return self.merge_lines(cmd)
  File "C:\work\nomeroff-net\NomeroffNet\BBoxNpMultiline.py", line 168, in merge_lines
    img_zones = get_cv_zonesRGBLite(self.imagePart, self.rects)
  File "C:\work\nomeroff-net\NomeroffNet\BBoxNpMultiline.py", line 62, in get_cv_zonesRGBLite
    dst = buildPerspective(img, rect, w, h)
  File "C:\work\nomeroff-net\NomeroffNet\tools\image_processing.py", line 121, in buildPerspective
    return cv2.warpPerspective(img, moment, (w, h))
cv2.error: OpenCV(3.4.15) :-1: error: (-5:Bad argument) in function 'warpPerspective'
> Overload resolution failed:
>  - Can't parse 'dsize'. Sequence item with index 0 has a wrong type
>  - Can't parse 'dsize'. Sequence item with index 0 has a wrong type

Ссылка на код: https://pastebin.com/kMqgUQ88
Изменено только async & await удалил в объявлении функции и вызове, но это не влияет на процесс.