Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to process multiline numberplates #169

Open
oleg372 opened this issue Jul 29, 2021 · 4 comments
Open

Unable to process multiline numberplates #169

oleg372 opened this issue Jul 29, 2021 · 4 comments

Comments

@oleg372
Copy link

oleg372 commented Jul 29, 2021

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

строка на которой ошибка
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

@ApelSYN
Copy link
Member

ApelSYN commented Jul 29, 2021

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

@oleg372
Copy link
Author

oleg372 commented Jul 29, 2021

  1. Проверил в онлайне (по ссылке), распознает хорошо.
  2. Даю полный код: https://pastebin.com/ZLcYwufj
    проблемное место в 126 строке

@ApelSYN
Copy link
Member

ApelSYN commented Jul 29, 2021

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

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

@oleg372
Copy link
Author

oleg372 commented Jul 30, 2021

Попробовал и результат точно такой же.
Ошибка возникает при распознавании номеров в две строки
Я уже пробовал переставить 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 удалил в объявлении функции и вызове, но это не влияет на процесс.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants