предварительно подготовленная модель обнаружения объектов с большим количеством классов, чем COCO

#python #object-detection

#python #обнаружение объектов

Вопрос:

Для проекта мне нужен детектор, который может обнаруживать много разных объектов. Для этого 90 классов COCO недостаточно, потому что я хотел бы иметь возможность видеть больше.
Я видел, что, например, в imagenet гораздо больше классов, однако я не смог найти модель, обученную обнаруживать классы imagenet.
Я программирую на Python и хочу избежать переподготовки сети для самостоятельного обнаружения большего количества классов.
Я просмотрел pytorch vision и пару других репозиториев, но ничего не нашел.
Заранее спасибо.

РЕДАКТИРОВАТЬ: теперь я нашел хорошую, набор данных LVIS имеет 1200 классов для обнаружения и использует изображения из coco (они переименовали их). Для этого есть хорошая модель с detectron2 от facebookai. https://github.com/facebookresearch/detectron2/blob/master/MODEL_ZOO.md Я думаю, что это доступно только для среды cuda (у меня нет графического процессора : ( )

Ответ №1:

Проверьте https://keras.io/api/applications / для большего количества моделей / наборов данных

 from tensorflow.keras.applications.resnet50 import ResNet50
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.resnet50 import preprocess_input, decode_predictions
import numpy as np

model = ResNet50(weights='imagenet')
  

Комментарии:

1. Спасибо за ваш ответ @Alex Rancea, но если я не ошибаюсь, это модель классификации, мне нужна модель для обнаружения объектов (т. Е. Я хочу ту, которая рисует ограничивающие рамки, а не классифицирует изображения)

2. Моя ошибка. Вы можете использовать Yolov3 pjreddie.com/darknet/yolo и перейдите к предварительно подготовленным моделям (darknet53). Используйте шаги, показанные там.

3. хм, спасибо, хотя это не совсем то, что я ищу. во-первых, потому что я работаю над Windows, поэтому эта версия немного раздражает в использовании, во-вторых, потому что я хотел бы что-то, что можно было бы проще интегрировать в скрипт Python, и, наконец, потому что мне нужно что-то легальное и бесплатное для использования, желательно также для коммерческого использования, и это кажется довольно подозрительным, но я ценю вашу помощь

Ответ №2:

К сожалению, ImageNet не помечен для этой цели. В готовом виде вы можете попробовать использовать Tensorflow Object Detection API. Существуют модели, обученные на наборе данных OpenImages, который содержит 600 классов.

Вы можете сразу использовать их для вывода или, если хотите, переобучить их.

Комментарии:

1. Спасибо. Я также нашел еще одну модель из detectron2 в наборе данных LVIS. (отредактировал мой пост)