35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
1

Охарактеризовать объект по каким-либо признакам его строения

14.10.2012, 23:01. Показов 13282. Ответов 222
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Стоит задача охарактеризовать объект по каким-либо признакам его строения.

Есть графики (построенные по набору расстояний от центра объекта к каждой точке его периметра) для объектов известных нам типов, каждому типу присущи свои особенности формы (всевозможные ямки и т.д.). У некоторых типов могут присутствовать сразу несколько особенностей.

Как научить программу искать эти особенности, если они могут проявляться на разных масштабах?
Какие-то маски накладываются растягивающиеся или как?

Примеры:
Миниатюры
Охарактеризовать объект по каким-либо признакам его строения   Охарактеризовать объект по каким-либо признакам его строения  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2012, 23:01
Ответы с готовыми решениями:

Построить круг и закрасить его каким-либо цветом
Нужно построить круг и закрасить его каким-либо цветом. Пробовал использовать процедуры PieSlice,...

По каким признакам мы выбираем себе пару
to Елена Да может, может, я уже говорил про майора Чингачгука, вы невнимательно читали. Я не о...

По каким диагностическим признакам в шлифе можно отличить кварц от ортоклаза?
3)По каким диагностическим признакам в шлифе можно отличить кварц от ортоклаза?

По каким характерным признакам можно определить респектабельность фирмы-поставщика
По каким характерным признакам можно определить респектабельность фирмы-поставщика??? Добавлено...

222
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.10.2012, 00:02 2
Я бы в процентах мерил либо приводил масштабы. Если в процентах, то за 100% можно взять разницу между локальными минимумом и максимумом на выбранном диапазоне и все остальные особенности измерять уже в сравнении с этим, тогда масштаб не имеет значения. Если приводить масштабы, то просто равномерно повыкидывать лишние точки из большего набора.
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
15.10.2012, 12:25  [ТС] 3
BRcr, в идеале я бы хотел создать по bool функции для каждой особенности, которая выдавала есть ли соответствующая особенность на объекте или нет, а из полученных данных уже вывод делать.

Но надо учесть, что размер объектов разный (даже при одинаковых типах) и размер этих ямок разный (даже в % содержании от размера объекта).


Цитата Сообщение от BRcr Посмотреть сообщение
Если приводить масштабы, то просто равномерно повыкидывать лишние точки из большего набора.
То есть взять и загнать в программу эталон особенности, и по нему считать, например СКО и поставить допуск этого СКО, попадая в который считается, что особенность есть?
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
15.10.2012, 12:29  [ТС] 4
вот например 2 объекта одного типа
Миниатюры
Охарактеризовать объект по каким-либо признакам его строения  
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
15.10.2012, 15:16 5
Как научить программу искать эти особенности, если они могут проявляться на разных масштабах?
На мой взгляд проблема не как найти особенности. А определить какие именно особенности вы хотите искать? Что будет этими особенностями? Вы хотите искать ямки и горки? Но т.к. ямки и горки могут быть совершенно разных форм и амплитуд, то вы можете получать совершенно разные графики при одном и том же положении ямок и горок. И наоборот, вы можете иметь примерно одинаковые графики с совершенно разным положением ямок и горок (если на 1-ом графике крупный бугор и ямка, а на втором графике тоже самое, что и на первом + высокочастотный шум малой амплитуды). Положение ямок и горок не могут точно описать форму кривой! Даже если вы будете учитывать размер ямок, то окажется важным и форма ямки и горки (горка может быть очень узкой, а может быть очень широкой, заваленной вправо или заваленной влево).
Думаю ваша задача тесно связана с распознаванием образов, может вам стоит посмотреть в этом направлении.
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
15.10.2012, 15:24  [ТС] 6
Цитата Сообщение от gumi250 Посмотреть сообщение
горка может быть очень узкой, а может быть очень широкой, заваленной вправо или заваленной влево
это и есть особенности, одним объектам свойственны узкие горки, другим - широкие и т.д.

Цитата Сообщение от gumi250 Посмотреть сообщение
Думаю ваша задача тесно связана с распознаванием образов, может вам стоит посмотреть в этом направлении.
Задача с этим как раз и связана, конечной целью является различать объекты по 10 типам, с помощью поиска особенностей строения.

Цитата Сообщение от gumi250 Посмотреть сообщение
Положение ямок и горок не могут точно описать форму кривой
Важно не положение горок или ямок, а их наличие, т.к. есть такие объекты:
Миниатюры
Охарактеризовать объект по каким-либо признакам его строения  
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.10.2012, 15:26 7
Уже разбирали ведь тему здесь - Сравнения изображений по форме, нормировка по масштабу
Также там считалось среднее отклонение. Только тут для части объекта, вот и вся разница.
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
15.10.2012, 16:04 8
...это и есть особенности, одним объектам свойственны узкие горки, другим - широкие и т.д....
...Важно не положение горок или ямок, а их наличие...
Еще раз хочу повторить, определитесь, что именно вы хотите считать за особености. Если особенность это просто наличие ямки, то это не учитывает форму ямки.
Задача с этим как раз и связана, конечной целью является различать объекты по 10 типам, с помощью поиска особенностей строения.
Так может использовать отработаные методики, вроде нейронных сетей и т.д.
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
15.10.2012, 21:38  [ТС] 9
Цитата Сообщение от BRcr Посмотреть сообщение
Уже разбирали ведь тему здесь - Сравнения изображений по форме, нормировка по масштабу
Также там считалось среднее отклонение. Только тут для части объекта, вот и вся разница.
Это я помню, моя же тема) Там сравнивалось два объекта полностью, а тут надо эталонную маску ввести, как я думаю, или есть какие-то способы другие?


Цитата Сообщение от gumi250 Посмотреть сообщение
Еще раз хочу повторить, определитесь, что именно вы хотите считать за особености. Если особенность это просто наличие ямки, то это не учитывает форму ямки.
Форма ямки, конечно, должна учитываться, т.к. я думаю, что разная форма ямки может принадлежать разным типам. То есть будет сколько-то функций, которые проверяют наличие ямок (одна - узкой, другая - широкой и т.д.), вопрос в том, что нужно ввести в них какие-то допуски на наклон, ширину и т.д.При чем так, что бы в одной и той же ямке не проявлялись несколько функций сразу (как true). Как это по-человечески реализовать?


Цитата Сообщение от gumi250 Посмотреть сообщение
Так может использовать отработаные методики, вроде нейронных сетей и т.д.
Да я бы с радостью, только у меня нет такого опыта, да и база объектов неравноправная, так что неправильно обучится в итоге.
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.10.2012, 23:12 10
Так надоест функции клепать. Надо делать более унифицированный подход к анализу признаков.

Как я это вижу в теории - наборы данных, характеризующих отдельные особенности формы, инкапсулировать в структуры с единым интерфейсом; определить там два приближения по данным - собственно, массив значений, задающий форму, и некая более грубая характеристика, независимая от масштабов, наиболее вероятно, построенная на каких-либо внутренних соотношениях характеристик формы - скажем, процентное соотношение положений локальных минимумов и максимумов и их последовательность.
Таким образом анализ будет состоять из двух частей: сперва прошлись по анализируемой форме грубым анализом и откинули совсем уж неподходящие шаблоны, затем оставшиеся шаблоны сравниваем с формой по значениям, задающим форму, при этом приводя масштабы шаблона и формы к одному виду. Все, под конец получаем наиболее подходящий шаблон(или несколько), смотрим степень его совпадения с формой и принимаем решение в зависимости от заданного допуска.
1
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
16.10.2012, 01:26 11
Тема распознавания образов очень сложная, поэтому так в лоб ее решить очень сложно. А не могли бы вы рассказать первоначальную задачу? А то вы рассказываете нам ее с середины, поэтому посоветовать вам что то толкового невозможно.
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
16.10.2012, 16:35  [ТС] 12
Задача создать или попытаться создать ПО, распознающее на изображении мазка крови клетку, принадлежащую к одному из 10 типов и правильно определяющее тип.

Но ПО должно базироваться именно на форме объекта, а не на структуре внутри него. То есть из исходных данных только последовательный набор радиусов от центра объекта до каждой точки на его границе. До данного этапа программа сравнивала неизвестную клетку по этой характеристике с базой и выдала тип предполагаемой клетки. Но это слишком долго, примерно 2.30 мин на каждую тысячу объектов в базе.

Сейчас есть мысль найти "особенности" формы у каждого типа клеток и не сравнивать неизвестную клетку со всей базой, а смотреть какие "особенности" на ней есть.

(Ну например: нужно отличить кота от свиньи. и там и там хвост, 4 конечности, но наличие шерсти или копыт однозначно определяет животное).
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
16.10.2012, 17:20 13
Т.е. насколько я понимаю качество распознавания существующего ПО вас устраивает, вы просто хотите уменьшить время поиска так?
Если так, то я бы сделал предварительный (грубый) поиск. Т.е. выделил бы несколько крупных отличительных признаков, которые бы отличали животых. Например, если у неизвестного животного нашли хвост и рога, то нужно искать это животное не по всей базе, а только среди хвостатых и рогатых, а это сузит круг поиска и соответственно сократит время поиска. А если не найдем среди хвостатых и рогатых, тогда будем искать по всей базе. При этом основной метод сравнения животных остается старым! а наш поиск признаков лишь вспомогательный, а вовсе не решающий фактор.
Но в любом случае нужно найти эти признаки (рога и хвоты). Врят ли можно что то вам посоветовать пока не увидим реальных примеров ваших графиков. Нельзя сказать какой признак отличает эти кривые пока вы их не покажите. Ведь не сложно найти на графике ямки и горбы, можно найти их относительную амплидуту и ширину, охарактеризовать форму ям и горбов, можно разложить в ряд Фурье,но откуда мы можем знать что именно вам подойдет.

А вы не рассматривали возможность распараллеливания поиска? Если сейчас программа ищет в один поток, то на современном проце можно искать например в 8 потоков.
1
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
16.10.2012, 19:06  [ТС] 14
gumi250, точность на данный момент тоже не устраивает меня, но Ваша идея мне понравилась, спасибо. Думаю так скорее всего и придется сделать, из-за того, что не получится наличием хвоста, шерсти и т.д. отличить немецкую овчарку от среднеазиатской. То есть возможно наличие какого-то признака сузит сравнение с 10типов до 3х, например.

Цитата Сообщение от gumi250 Посмотреть сообщение
А вы не рассматривали возможность распараллеливания поиска? Если сейчас программа ищет в один поток, то на современном проце можно искать например в 8 потоков.
Рассматривал, но на данном этапе не стоит такая задача, сейчас нужен работающий алгоритм, а оптимизация, от резерва места под элементы в контейнерах до увеличения потоков работы это уже шлифовка.



Цитата Сообщение от gumi250 Посмотреть сообщение
Врят ли можно что то вам посоветовать пока не увидим реальных примеров ваших графиков. Нельзя сказать какой признак отличает эти кривые пока вы их не покажите. Ведь не сложно найти на графике ямки и горбы, можно найти их относительную амплидуту и ширину, охарактеризовать форму ям и горбов, можно разложить в ряд Фурье,но откуда мы можем знать что именно вам подойдет.
Все графики, которые я приводил реальные. могу приложить как данные, по которым они строятся так и сами графики, но их 1069шт, и я не очень понимаю что брать за особенность как ее охарактеризовать и как в нее добавить допуски всевозможные.
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
17.10.2012, 00:58 15
Т.е. насколько я понимаю на данный момент у вас примерно такой алгоритм работы: у вас есть 10 типов графиков. Каждый тип графика задается примерно 100 кривыми. Чтобы классифицировать неизвестную кривую вам нужно ее сравнить с каждой из 1069шт., найти самую похожую и эта самая похожая будет того же типа, что и неизвестная кривая. Так?

Вопрос: Если вы возьмете неизвестную кривую, то вы сами (без помощи компьютера) сможете точно и уверенно определить ее тип? Если ответ нет, то это все усложняет. Если ответ да, то определитесь по каким признакам вы это делаете. Может пичок какой, может форма его или еще чего. 1-ый этап это понять какие это признаки, и 2-ой этап найти их на неизвестной кривой? Вы сейчас на каком этапе?

Во сколько раз вы хотите ускорить работу вашего поиска?
0
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
17.10.2012, 12:32  [ТС] 16
Цитата Сообщение от gumi250 Посмотреть сообщение
Т.е. насколько я понимаю на данный момент у вас примерно такой алгоритм работы: у вас есть 10 типов графиков. Каждый тип графика задается примерно 100 кривыми. Чтобы классифицировать неизвестную кривую вам нужно ее сравнить с каждой из 1069шт., найти самую похожую и эта самая похожая будет того же типа, что и неизвестная кривая. Так?
Ну почти так, база неравномерная из-за области исследования, некоторых объектов 5 штук, других 300. остальное верно.


Цитата Сообщение от gumi250 Посмотреть сообщение
Вопрос: Если вы возьмете неизвестную кривую, то вы сами (без помощи компьютера) сможете точно и уверенно определить ее тип? Если ответ нет, то это все усложняет. Если ответ да, то определитесь по каким признакам вы это делаете. Может пичок какой, может форма его или еще чего. 1-ый этап это понять какие это признаки, и 2-ой этап найти их на неизвестной кривой? Вы сейчас на каком этапе?
Я не смогу. На данный момент я ищу визуально признаки, которые хоть как-то могут мне помочь. И жду консультации у врача-гистолога, думаю он по картинкам (есть картинки, по которым все эти графики строились) мне покажет особенности строения типов.

Цитата Сообщение от gumi250 Посмотреть сообщение
Во сколько раз вы хотите ускорить работу вашего поиска?
Это задача не основная, основная - точность. Но если будет время то буду максимально поднимать скорость.
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
17.10.2012, 13:30 17
Я не смогу. На данный момент я ищу визуально признаки, которые хоть как-то могут мне помочь. И жду консультации у врача-гистолога, думаю он по картинкам (есть картинки, по которым все эти графики строились) мне покажет особенности строения типов.
А почему вы решили, что на основании ваших графиков вообще можно точно классивицировать клетку? Когда врач смотрит на изображение клеток он может класифицировать их не толькопо форме но и по внутренему строению, цвету и т.д., т.е.использовать те признаки которые не входят в ваших график. Сможет ли врач классифицировать клетку только по графику? Ну или только по форме, т.е. если залить клетку монотонным цветом, так что бы не была видна ее внутреняя структура, врач сможет ее классифицировать?

А насколько точно вы можете найти и выделить границы клетки на изображении? Не перекрывают ли они друг друга? Не зашумлена ли граница?
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
17.10.2012, 13:34 18
мысли вслух:

1 пусть есть набор образцов. каждый образец представляет собой кривую. каждый образец приведен к безразмерному виду: минимальное значение y принято за 0, максимальное значение y принято за 1, координата x начала кривой принята за 0, координата x конца кривой принята за 1. каждому образцу назначена точность соответствия. например, в виде максимального абсолютного отклонения любой точки анализируемой на соответствие кривой от кривой образца (то есть как бы задана зона вверх и вниз от кривой образца в которой должна лежать анализируемая кривая для того, что бы она была признана принадлежащей к типу характеризуемому образцом). другой способ - каждый из образцов усредняется с заданным шагом (необходимо что бы изменение кривой на каждом из шагов было не слишком велико). тогда вместо кривой получим набор столбиков площади которых будут площадью под кривой на каждом из шагов. все образцы проверены на уникальность во избежание ошибок (проверка проводится сравнением каждого образца со всеми остальными с заданной для них точностью).

2 теперь собственно поиск на произвольной кривой известных образцов. начало анализируемого участка скользит по кривой от ее начала до конца с заданным в настройках шагом (очевидно он должен быть выбран таким что бы на нем кривая не изменялась слишком сильно). размер анализируемого участка меняется в диапазоне от заданных в настройках минимума до максимума (тут, наверное, только эксперт может сказать до каких размеров может меняться образец). попадающий в окно анализируемый участок кривой приводится к безразмерному виду и сравнивается с набором образцов.

как то так. правда процедура поиска при всей своей элегантной красоте является очень тяжелой.
1
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
17.10.2012, 15:00  [ТС] 19
Цитата Сообщение от gumi250 Посмотреть сообщение
А почему вы решили, что на основании ваших графиков вообще можно точно классивицировать клетку? Когда врач смотрит на изображение клеток он может класифицировать их не толькопо форме но и по внутренему строению, цвету и т.д., т.е.использовать те признаки которые не входят в ваших график. Сможет ли врач классифицировать клетку только по графику? Ну или только по форме, т.е. если залить клетку монотонным цветом, так что бы не была видна ее внутреняя структура, врач сможет ее классифицировать?
Я не решил. это предмет исследования. На основе структурных признаков такие системы уже давно работают. Задача именно в том, что бы доказать или опровергнуть возможность создания системы, классифицирующей по форме.


Цитата Сообщение от gumi250 Посмотреть сообщение
А насколько точно вы можете найти и выделить границы клетки на изображении? Не перекрывают ли они друг друга? Не зашумлена ли граница?
Считается, что изображения, которые я использую максимально правдоподобные, без шумов, наложений и идеально (если можно так сказать) сегментированны.
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
17.10.2012, 15:49 20
Я не решил. это предмет исследования. На основе структурных признаков такие системы уже давно работают. Задача именно в том, что бы доказать или опровергнуть возможность создания системы, классифицирующей по форме.
Как вы можете это опровергнуть? То что вы не сможете написать такой программы это вовсе не значит что это не возможно, это может значить, то что это просто вы не смогли. Например, ума вам не хватило.
Как вы можете это подтвердить? Ведь всегда будет ошибка распознавания. Например, ваш алгоритм будет распознавать с 30% ошибкой это подтверждение или опровержение?

А какой смысл всего этого? Просто исследовательский (дипломная работа) или все таки практическая ценность есть? Если клетки легко отличить по структуре (лошадь от коровы легко отличить по рогам), какой смысл искусственно усложнять себе жизнь и выкидывать наиболее яркие приметы и распознавать по вторичным признакам (а можно ли отличить корову от лошади по левой задней ноге)?

Вообще то мозг и глаз человека очень здорово ищет одни общие приметы в объектах, в частности в их форме и классифицирует по ним объекты. Т.е. если на глаз вы не можете найти общие признаки в форме и классифицировать по ним неизвестную клетку по ее форме (залив клетку на изображении одним цветом), то врятли вам удастся научить этому компьютер с хорошей точностью.
0
17.10.2012, 15:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2012, 15:49
Помогаю со студенческими работами здесь

Прошу объяснить мне почему я не могу задать размер массива с консоли, без его ограничения каким либо числом?
int n; int mx = 0; cin >> n; int a ; //не выходит это чертово n использовать...

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

Необходимо в зависимости от подставляемых значений либо удалять рисунок либо оставлять его
Всем привет. Просьба оказать посильную помощь. Есть Word шаблон, он заполняется из Excel при...

Составить программу, которая корректирует список и сортирует его либо по среднему баллу, либо по алфавиту
Список студенческой группы записан на диске как текстовый файл. Каждая строка списка содержит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru