Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Общие вопросы по программированию, компьютерным наукам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 09.08.2019, 12:06   #11
Вадим Мошев

Заслуженный модератор
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Адрес: programmersforum
Сообщений: 8,301
Репутация: 4038
По умолчанию

Не читал всю тему. Предложил бы такой вариант. Искомое значение это такое, которое сильнее всего отличается от среднего арифметического всех элементов, быть может, за исключением текущего значения.

То есть, для i = 1..n сравнить i-й элемент со средним арифметическим всех элементов, за исключением i-го. Элемент с максимальным отличием и будет искомым.
Вадим Мошев вне форума   Ответить с цитированием
Старый 09.08.2019, 14:27   #12
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,210
Репутация: 617

icq: 359393755
По умолчанию

Эх ... с чего бы начать чтобы лишнего не болтнуть ))).
В общем это визуальное распознавание образов.
Объекты достаточно однородного цвета с частичными рисунками и надписями.
Объектов в поле может быть один или несколько.
Объекты в поле могут перемещаться с достаточно быстрой скоростью. И вот на большой скорости проявляется смазывание. При этом цвет объекта плывет.
Использую метрику сравнения гистограмм

храню предыдущий фрагмент объекта. На каждой итерации получаю список возможных объектов и сравниваю гистограмму с предыдущим. На основании самого наименьшего делаю вывод что объект предыдущий похож на текущий и дальше метка переходит на новый кадр. и так далее.


Цитата:
Сообщение от ViktorR Посмотреть сообщение
Но это общие фразы ...
Ну а как .. как человек я понимаю что в данном случае минимальный объект это похожий объект. Но когда объект новый и в базе его нету то минимальный объект не будет правильным потому что он не достаточно минимальный.
Но хочется какой то оценки не пороговой а адаптивной чтоли.
__________________
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster на форуме   Ответить с цитированием
Старый 09.08.2019, 19:23   #13
Pavia
Лис
Профессионал
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 1,846
Репутация: 1998
По умолчанию

Я бы сделал так. Рассчитал среднюю яркость кадра вычел бы её. Затем рассчитал бы локальную ярость по квадрату 100х100 и вычел бы её. Затем по базе подобрал бы максимальное совпадение с задним изображением по квадрату 14х14 затем вычитаем задний фон. После размываем картинку 3-5 раз. Затем ищем локальный максимум. Далее сортируете их по уровню и оставляете не более 100-500 таких максимов.
Потом используешь следующую метрику это произведение СКО(уровень)*СКО(дистанция) по этой метрике находишь геометрическую кляксу которую оставил объект (одна из модификаций алгоритма фагоцита).
Затем фильтруешь свои объекты по площади.

Но вообще обычно используют НС. Она распознаёт объект и даёт оценку. Делается это скользящим окном и потом для пикселей подсчитывается сколько окон дало положительное совпадение (IoU). И по порогу отсекаются лишние. Этот порог тренируешь на датасете.

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Ну а как .. как человек я понимаю что в данном случае минимальный объект это похожий объект. Но когда объект новый и в базе его нету то минимальный объект не будет правильным потому что он не достаточно минимальный.
Строят прямоугольник предсказания. И если в приделах 100 следующих кадров объект был распознан, то в базу заносится вся его траектория. Для этого у точек локального максимума которые мы нашли записывается их координата и время появления в кадре.

Примерно вот так это должно работать.
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума   Ответить с цитированием
Старый 13.08.2019, 21:12   #14
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,210
Репутация: 617

icq: 359393755
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Я бы сделал так. Рассчитал среднюю яркость кадра вычел бы её. Затем рассчитал бы локальную ярость по квадрату 100х100 и вычел бы её. Затем по базе подобрал бы максимальное совпадение с задним изображением по квадрату 14х14 затем вычитаем задний фон. После размываем картинку 3-5 раз. Затем ищем локальный максимум. Далее сортируете их по уровню и оставляете не более 100-500 таких максимов.
Потом используешь следующую метрику это произведение СКО(уровень)*СКО(дистанция) по этой метрике находишь геометрическую кляксу которую оставил объект (одна из модификаций алгоритма фагоцита).
Затем фильтруешь свои объекты по площади.
Строят прямоугольник предсказания. И если в приделах 100 следующих кадров объект был распознан, то в базу заносится вся его траектория. Для этого у точек локального максимума которые мы нашли записывается их координата и время появления в кадре.
При всем уважении, но мне кажется вы прям черезчур усложняете ... НС я мягко говоря разочарован. Да и все это должно работать в реалтайме ... И с тренировкой не особо понятно. Объекты то в целом однотонные а при движении там смазывание такое что практически контуры отсутствуют всякие.

В общем сделал вот так:

По всем объектам формирую расчетную выборку с результатами сравнений гистограмм:
Код:
double base_KLDiv = Cv2.CompareHist(hist_base, hist_test1, HistCompMethods.KLDiv);
CheckResult.Add(new KeyValuePair<double, Fragment>(base_KLDiv, bl));
Код:
double xa = CheckResult.Average(p => p.Key); // вычисляем среднее по характеристике

// и для каждого элемента считаем квадрат отклонения
// добавил дополнительно фильтр по значениям меньшим чем среднее
// равно нужно для случаев когда в наборе оказывается всего один элемент
var info = CheckResult.Where(d => d.Key <= xa).Select(p => new { Spr = Math.Pow(p.Key - xa, 2) / xa, Item = p }).ToList();

xa = info.Average(p => p.Spr); // повторно считаем среднее квадратов
// равно нужно для случаев когда в наборе оказывается всего один элемент
var filterfrags= info.Where(p => p.Spr >= xa).ToList(); // и считаю его базовым порогом для кандидатов
filterfrags.Sort((a, b) => b.Spr.CompareTo(a.Spr));
var maxfrag = filterfrags.FirstOrDefault(); // дальше достаю максимальный элемент
if (maxfrag!= null)
{
	max = maxfrag.Item.Value;
	Cv2.ImShow("finded", max.sample);
	Cv2.WaitKey(2);
}
Боюсь сглазить но вроде на сложном видео с большими скоростями ни одного сбоя это не дало. Будем надеятся что в реальном времени все также стабильно будет.
__________________
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы

Последний раз редактировалось WorldMaster; 13.08.2019 в 21:29.
WorldMaster на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти значение на другом листе и подставить значение следующей ячейки ElenaNTro Microsoft Office Excel 12 11.02.2019 13:44
Найти значение выражения Lolopop12 Общие вопросы C/C++ 3 08.02.2016 20:58
Найти наименьшее значение Dima-War Общие вопросы C/C++ 3 24.03.2012 10:26
найти наибольшее значение laychan Помощь студентам 1 23.03.2012 12:48
Найти значение функции Y ahtung Microsoft Office Excel 6 24.12.2008 16:59


23:32.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru