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