Вопрос задан 25.10.2026 в 11:53. Предмет Информатика. Спрашивает Муромцева Анастасия.

Я делаю распознавание объектов в 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 должна быть создана заранее.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос