Внедрение модели глубины с использованием Intel MiDaS на Google Colab
Оценка глубины с использованием одной камеры предполагает прогнозирование глубины сцены из одного изображения RGB. Это важная задача в области компьютерного зрения с широким спектром применения, включая дополненную реальность, робототехнику и понимание 3D-сцен. В данном руководстве мы реализуем модель Intel MiDaS, разработанную для высококачественного прогнозирования глубины из единственного изображения.
Установка необходимых библиотек
Сначала мы устанавливаем необходимые библиотеки Python — timm для поддержки моделей, opencv-python для обработки изображений и matplotlib для визуализации карт глубины.
!pip install -q timm opencv-python matplotlib
Клонирование репозитория
Затем мы клонируем официальный репозиторий Intel MiDaS с GitHub и переходим в его директорию для доступа к коду модели и утилитам преобразования.
!git clone %cd MiDaS
Импорт необходимых библиотек
Импортируем все необходимые библиотеки и компоненты MiDaS для загрузки модели, предварительной обработки изображений, обработки загрузок и визуализации предсказаний глубины. Устанавливаем устройство вычислений на GPU (CUDA), если доступно, иначе используем CPU.
import torch import cv2 import matplotlib.pyplot as plt import numpy as np from PIL import Image from forms import Compose from import files from _depth import DPTDepthModel from forms import Resize, NormalizeImage, PrepareForNet device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
Загрузка предобученной модели
Загружаем предобученную модель MiDaS DPT_Large от Intel и перемещаем ее на выбранное устройство (CPU или GPU) для выполнения анализа.
model_path = ("intel-isl/MiDaS", "DPT_Large", pretrained=True, force_reload=True) model = DPTDepthModel(model_path).to(device).eval()
Определение конвейера предварительной обработки изображений
Определяем конвейер предварительной обработки изображений для MiDaS, который изменяет размер входного изображения, нормализует его пиксельные значения и форматирует его для анализа моделью.
transform = Compose([ Resize(384, 384, resize_target=None, keep_aspect_ratio=True, ensure_multiple_of=32, resize_method="upper_bound"), NormalizeImage(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), PrepareForNet() ])
Загрузка пользовательского изображения
Позволяем пользователю загрузить изображение в Colab, считываем его с помощью OpenCV и преобразуем его из формата BGR в RGB для точного отображения цветов.
uploaded = files.upload() for filename in uploaded: img = Image.open(filename) img = cv2.cvtColor(np.array(img), cv2.COLOR_BGR2RGB) break
Предсказание глубины
Применяем предварительную обработку к загруженному изображению, преобразуем его в тензор и выполняем предсказание глубины с использованием модели MiDaS.
img_input = transform({"image": img})["image"] input_tensor = torch.from_numpy(img_input).unsqueeze(0).to(device) with torch.no_grad(): prediction = model(input_tensor) prediction = torch.nn.functional.interpolate(prediction.unsqueeze(1), size=[img.shape[0], img.shape[1]], mode="bicubic", align_corners=False).squeeze() depth_map = prediction.cpu().numpy()
Визуализация результатов
Создаем параллельную визуализацию оригинального изображения и его соответствующей карты глубины с помощью Matplotlib. Карта глубины отображается с использованием цветовой схемы для лучшего контраста.
plt.figure(figsize=(10, 5)) plt.subplot(1, 2, 1) plt.imshow(img) plt.title("Оригинальное изображение") plt.axis("off") plt.subplot(1, 2, 2) plt.imshow(depth_map, cmap='inferno') plt.title("Карта глубины") plt.axis("off") plt.show()
Заключение
В завершение, выполнив этот учебник, вы успешно развернули модель Intel MiDaS на Google Colab для выполнения оценки глубины с использованием всего лишь RGB изображения. Используя PyTorch для анализа модели, OpenCV для обработки изображений и Matplotlib для визуализации, мы создали надежный конвейер для генерации высококачественных карт глубины с минимальными настройками.
Практические решения для бизнеса
Рассмотрите, как технологии искусственного интеллекта могут изменить ваш подход к работе:
- Изучите процессы, которые можно автоматизировать, и моменты взаимодействия с клиентами, где ИИ может принести наибольшую ценность.
- Определите важные ключевые показатели эффективности (KPI), чтобы убедиться, что ваши инвестиции в ИИ имеют положительное влияние на бизнес.
- Выберите инструменты, соответствующие вашим потребностям, которые можно настроить под ваши цели.
- Начните с небольшого проекта, соберите данные об его эффективности, а затем постепенно расширяйте использование ИИ в вашей работе.
Если вам нужна помощь в управлении ИИ в бизнесе, свяжитесь с нами по адресу hello@itinai.ru. Чтобы быть в курсе последних новостей ИИ, подпишитесь на наш Telegram https://t.me/itinai.
Обратите внимание на практический пример решения на базе ИИ: бот для продаж от https://itinai.ru/aisales, предназначенный для автоматизации общения с клиентами круглосуточно и управления взаимодействиями на всех этапах пути клиента.