Я делаю распознавание объектов в Python. Вот мой код:
from imageai.Detection import ObjectDetection
detector = ObjectDetection()
model_path = “./models/yolo-tiny.h5”
input_path = “./input/test45.jpg”
output_path = “./output/newimage.jpg”
detector.setModelTypeAsTinyYOLOv3()
detector.setModelPath(model_path)
detector.loadModel()
detection = detector.detectObjectsFromImage(input_image=input_path, output_image_path=output_path)
for eachItem in detection:
print(eachItem , “ : ”, eachItem)
Этот код выдает ошибку:
Traceback (most recent call last):
File “C:\Users\Даниил\PycharmProjects\object_detection\main.py”, line 1, in
from imageai.Detection import ObjectDetection
File “C:\Users\Даниил\PycharmProjects\object_detection\venv\lib\site-packages\imageai\Detection\__init__.py”, line 17, in
from imageai.Detection.YOLOv3.models import yolo_main, tiny_yolo_main
File “C:\Users\Даниил\PycharmProjects\object_detection\venv\lib\site-packages\imageai\Detection\YOLOv3\models.py”, line 8, in
from keras.layers.normalization import BatchNormalization
ImportError: cannot import name ‘BatchNormalization’ from ‘keras.layers.normalization’ (C:\Users\Даниил\PycharmProjects\object_detection\venv\lib\site-packages\keras\layers\normalization\__init__.py)
Ответы на вопрос
Ошибка связана с несовместимостью версий: установленная версия ImageAI пытается импортировать \(\mathrm{BatchNormalization}\) из старого пути Keras, а в новой версии Keras этого пути уже нет.
Проще всего создать новое виртуальное окружение и установить совместимые версии библиотек:
\(\mathrm{pip\ uninstall\ keras\ tensorflow\ imageai}\)
\(\mathrm{pip\ install\ imageai==2.1.6\ tensorflow==2.9.1\ keras==2.9.0}\)
Также в коде нужны обычные кавычки, а при выводе следует обращаться к полям словаря:
\(\mathrm{model\_path = "./models/yolo\text{-}tiny.h5"}\)
\(\mathrm{for\ item\ in\ detection:}\)
\(\mathrm{\quad print(item["name"], ":", item["percentage\_probability"])}\)
Файл модели должен действительно находиться в папке models, а папка output должна быть создана заранее.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

