Zero-shot в задачах компьютерного зрения (нейронные сети без обучения)
ฝัง
- เผยแพร่เมื่อ 6 ต.ค. 2024
- 🔍 В данном туториале мы рассмотрим революционный подход в области компьютерного зрения - Zero-shot learning. Этот метод позволяет нам решать задачи классификации, детекции и сегментации без необходимости обучения на специально подобранных данных.
🤯 Удивительно, но правда! Мы покажем, как вы можете применить Zero-shot learning к своей уникальной проблеме и достичь впечатляющих результатов.
📚 В этом туториале вы узнаете:
1. Основы Zero-shot learning и его преимущества
2. Как реализовать классификацию, детекцию , семантическую сегментацию и инстанс сегментацию без обучения
🔗 Код из видео доступен по ссылке: drive.google.c...
Таймкоды из видео:
8:58 - Детекция (YOLO-world примеры)
22:45 - SAM (FastSAM примеры)
30:59 - Классификация (CLIP примеры)
39:35 - Самантическая сегментация (CLIP-Seg примеры)
44:23 - Инстанс сегментация (LangSAM примеры)
-----------------------------------------------------------------------------------------------------------------
PS: В видео для визуализации результатов использовалась моя библиоткека patched_yolo_infer. Если хотите поддержать мои старания, то поставьте звезду ⭐ в этом масштабном опенсорс проекте - github.com/Kol...
Подписывайтесь на канал, чтобы быть в курсе новых видео и узнавать больше о компьютерном зрении!
Дмитрий лучший специалист, благодарю!
Спасибо большое))
Реально полезно, спасибо!
Царский лайк!
Дима, топовый блогер:)
Спасибо ☺️
Спасибо за отличные обучающие видео. Благодаря вам заинтересовался данной тематикой. Сейчас обучаю свою нейросеть используя ваши уроки. Данное видео вышло для меня очень вовремя, потому что как раз встал вопрос в подготовке собственного датасета.
Ооо безумно приятно! Желаю удачи в DS!
Дима, добрый день! Запиши как нибудь видео об использовании и подключения ядер npu процессора при работе моделей. Сейчас много одноплатников выпускают с npu ядрами, а как их применять никто не знает.
Если как-нибудь куплю себе одноплатник то обязательно попробую 👍🏻
Респект. Спасибо. Топ!!!
Рад что вам понравилось!
@@Koldim2001 Ну я начинающий- изучающий эту тему)) и ваши ролики, как то к чему надо стремиться/ или то что делают нейронные сети и как делают)). С огромным удовольствием и интересом смотрю, хотя не особо понимаю, но думаю это вопрос времени! А так всегда лайк и коммент в поддержку!!
@@bbbbbb9193 Спасибо большое. В ближайшее время (в середине июня) выпущу видео для начинающих по PyTorch для задачи классификации думаю вам будет очень кстати 😎
а сделай прогу с помощью segment anything которая будет работать на видео потоке)
Да это вполне реально. Так что могу пример кода скинуть сюда который с вебки обработку делает и выводит результаты в отдельном окне. Сейчас напишу и пришлю следующим комментарием (если что визуализацию сможешь подстроить под себя в библиотеке patch base inference). Не забудь перед запуском pip install patched_yolo_infer
import cv2
from ultralytics import FastSAM
from patched_yolo_infer import visualize_results_usual_yolo_inference
def process_stream(model, camera_id=0):
# Open the input video file
cap = cv2.VideoCapture(camera_id)
while True:
ret, frame = cap.read()
if not ret:
break
result = visualize_results_usual_yolo_inference(
frame,
model,
imgsz=640,
conf=0.5,
iou=0.7,
segment=True,
thickness=1,
show_boxes=False,
show_class=False,
show_confidences=False,
fill_mask=True,
return_image_array=True,
random_object_colors=True
)
# Display the resulting frame
cv2.imshow('Processed Frame', result)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
# Example usage
model = FastSAM("FastSAM-x.pt") # or FastSAM-s.pt
process_stream(model)
Добрый день. Посоветуйте, пожалуйста, модель для детекции водяных знаков на изображении. У меня на работе есть конкретная задача - в интернет магазине миллионы изображений товаров и нам надо определить какие изображения содержат водяные знаки. Я использовал yolov8 (по вашему видео), результат очень хороший (обучил на одном примере), но проблема в том, что мы не знаем какие конкретно могут быть водяные знаки… По сути, надо детектить полупрозрачное наложение. Что то в поиске не смог найти подходящей модели
И если пойти дальше, то может есть решения как убрать водяной знак с изображения)) Но нам пока нужно хотя бы просто определить есть ли ватермарк или нет
@@elcolex777да тут если вы имеете слишком разнообразные водяные знаки то проблему мб yolo не решить так как вряд ли обучив на N примерах он поймет всю суть и будет находить хорошо другие водяные знаки которых на трейне не видел. Но попытаться стоит. Так что обучи детектор на 1 класс при обучению разнообразные примеры давай. Второй вариант - потестировать yolo-world вдруг получится решить с помощью зеро шотов.
По поводу того, как убирать - советую юзать готовую бесплатную нейросеть foocus. Она как раз работает как миджорней. Вы выделяете область интереса на которой водяной знак и даете текстовый промпт - убери водяной знак. Сеть в идеале перерисовывает фотку как надо
Ок. Спасибо за наводку про fooocus!
Автоматическая сегментация. А на сколько сильно процесс загружает видеокарту? То что долго выполняется обработка, это конечно неприятно, но не критично. Может видеокарта загружена на 5 процентов при обработке запроса, тогда мы могли бы в 10-15 потоков запустить процесс, может всем потокам хватило бы ресурсов.
Попробуйте на своем железе. Тут зависит от того что у вас за видеокарта. Я тестировал на гипер слабой видюхе в 4гб
@@Koldim2001 Попробовал. То что меня интересовало lang_sam. На моей RTX4090 волосы были обнаружены всего за 1 секунду - и то это время исполнения ячейки с учётом отображения. А если не отображать то за 0.6 секунд справляется.
А если ещё есть возможность батчами обрабатывать, то ещё быстрее было бы.
В любом случае 1 секунда на изображение - это вполне себе норм. Тем более что фото 1280x853.
Также заметил, что нагрузка на видеокарту взлетает до 100%, значит старается использовать все CUDA ядра. Правда за 1 секунду даже не успевают кулера разогнаться.
@@Motskin_AI супер)