|
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
|
|
Охарактеризовать объект по каким-либо признакам его строения14.10.2012, 23:01. Показов 14914. Ответов 222
Метки нет (Все метки)
Добрый день!
Стоит задача охарактеризовать объект по каким-либо признакам его строения. Есть графики (построенные по набору расстояний от центра объекта к каждой точке его периметра) для объектов известных нам типов, каждому типу присущи свои особенности формы (всевозможные ямки и т.д.). У некоторых типов могут присутствовать сразу несколько особенностей. Как научить программу искать эти особенности, если они могут проявляться на разных масштабах? Какие-то маски накладываются растягивающиеся или как? Примеры:
0
|
|
| 14.10.2012, 23:01 | |
|
Ответы с готовыми решениями:
222
По каким признакам мы выбираем себе пару По каким диагностическим признакам в шлифе можно отличить кварц от ортоклаза? |
|
|
|
| 15.10.2012, 00:02 | |
|
Я бы в процентах мерил либо приводил масштабы. Если в процентах, то за 100% можно взять разницу между локальными минимумом и максимумом на выбранном диапазоне и все остальные особенности измерять уже в сравнении с этим, тогда масштаб не имеет значения. Если приводить масштабы, то просто равномерно повыкидывать лишние точки из большего набора.
0
|
|
|
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
|
||
| 15.10.2012, 12:25 [ТС] | ||
|
BRcr, в идеале я бы хотел создать по bool функции для каждой особенности, которая выдавала есть ли соответствующая особенность на объекте или нет, а из полученных данных уже вывод делать.
Но надо учесть, что размер объектов разный (даже при одинаковых типах) и размер этих ямок разный (даже в % содержании от размера объекта).
0
|
||
|
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
|
|
| 15.10.2012, 12:29 [ТС] | |
|
вот например 2 объекта одного типа
0
|
|
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||
| 15.10.2012, 15:16 | ||
Думаю ваша задача тесно связана с распознаванием образов, может вам стоит посмотреть в этом направлении.
0
|
||
|
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
|
||||
| 15.10.2012, 15:24 [ТС] | ||||
|
0
|
||||
|
|
|
| 15.10.2012, 15:26 | |
|
Уже разбирали ведь тему здесь - Сравнения изображений по форме, нормировка по масштабу
Также там считалось среднее отклонение. Только тут для части объекта, вот и вся разница.
0
|
|
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|||
| 15.10.2012, 16:04 | |||
0
|
|||
|
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
|
||||
| 15.10.2012, 21:38 [ТС] | ||||
|
0
|
||||
|
|
|
| 15.10.2012, 23:12 | |
Так надоест функции клепать. Надо делать более унифицированный подход к анализу признаков.Как я это вижу в теории - наборы данных, характеризующих отдельные особенности формы, инкапсулировать в структуры с единым интерфейсом; определить там два приближения по данным - собственно, массив значений, задающий форму, и некая более грубая характеристика, независимая от масштабов, наиболее вероятно, построенная на каких-либо внутренних соотношениях характеристик формы - скажем, процентное соотношение положений локальных минимумов и максимумов и их последовательность. Таким образом анализ будет состоять из двух частей: сперва прошлись по анализируемой форме грубым анализом и откинули совсем уж неподходящие шаблоны, затем оставшиеся шаблоны сравниваем с формой по значениям, задающим форму, при этом приводя масштабы шаблона и формы к одному виду. Все, под конец получаем наиболее подходящий шаблон(или несколько), смотрим степень его совпадения с формой и принимаем решение в зависимости от заданного допуска.
1
|
|
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
| 16.10.2012, 01:26 | |
|
Тема распознавания образов очень сложная, поэтому так в лоб ее решить очень сложно. А не могли бы вы рассказать первоначальную задачу? А то вы рассказываете нам ее с середины, поэтому посоветовать вам что то толкового невозможно.
0
|
|
|
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
|
|
| 16.10.2012, 16:35 [ТС] | |
|
Задача создать или попытаться создать ПО, распознающее на изображении мазка крови клетку, принадлежащую к одному из 10 типов и правильно определяющее тип.
Но ПО должно базироваться именно на форме объекта, а не на структуре внутри него. То есть из исходных данных только последовательный набор радиусов от центра объекта до каждой точки на его границе. До данного этапа программа сравнивала неизвестную клетку по этой характеристике с базой и выдала тип предполагаемой клетки. Но это слишком долго, примерно 2.30 мин на каждую тысячу объектов в базе. Сейчас есть мысль найти "особенности" формы у каждого типа клеток и не сравнивать неизвестную клетку со всей базой, а смотреть какие "особенности" на ней есть. (Ну например: нужно отличить кота от свиньи. и там и там хвост, 4 конечности, но наличие шерсти или копыт однозначно определяет животное).
0
|
|
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
| 16.10.2012, 17:20 | |
|
Т.е. насколько я понимаю качество распознавания существующего ПО вас устраивает, вы просто хотите уменьшить время поиска так?
Если так, то я бы сделал предварительный (грубый) поиск. Т.е. выделил бы несколько крупных отличительных признаков, которые бы отличали животых. Например, если у неизвестного животного нашли хвост и рога, то нужно искать это животное не по всей базе, а только среди хвостатых и рогатых, а это сузит круг поиска и соответственно сократит время поиска. А если не найдем среди хвостатых и рогатых, тогда будем искать по всей базе. При этом основной метод сравнения животных остается старым! а наш поиск признаков лишь вспомогательный, а вовсе не решающий фактор. Но в любом случае нужно найти эти признаки (рога и хвоты). Врят ли можно что то вам посоветовать пока не увидим реальных примеров ваших графиков. Нельзя сказать какой признак отличает эти кривые пока вы их не покажите. Ведь не сложно найти на графике ямки и горбы, можно найти их относительную амплидуту и ширину, охарактеризовать форму ям и горбов, можно разложить в ряд Фурье,но откуда мы можем знать что именно вам подойдет. А вы не рассматривали возможность распараллеливания поиска? Если сейчас программа ищет в один поток, то на современном проце можно искать например в 8 потоков.
1
|
|
|
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
|
|||
| 16.10.2012, 19:06 [ТС] | |||
|
gumi250, точность на данный момент тоже не устраивает меня, но Ваша идея мне понравилась, спасибо. Думаю так скорее всего и придется сделать, из-за того, что не получится наличием хвоста, шерсти и т.д. отличить немецкую овчарку от среднеазиатской. То есть возможно наличие какого-то признака сузит сравнение с 10типов до 3х, например.
0
|
|||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
| 17.10.2012, 00:58 | |
|
Т.е. насколько я понимаю на данный момент у вас примерно такой алгоритм работы: у вас есть 10 типов графиков. Каждый тип графика задается примерно 100 кривыми. Чтобы классифицировать неизвестную кривую вам нужно ее сравнить с каждой из 1069шт., найти самую похожую и эта самая похожая будет того же типа, что и неизвестная кривая. Так?
Вопрос: Если вы возьмете неизвестную кривую, то вы сами (без помощи компьютера) сможете точно и уверенно определить ее тип? Если ответ нет, то это все усложняет. Если ответ да, то определитесь по каким признакам вы это делаете. Может пичок какой, может форма его или еще чего. 1-ый этап это понять какие это признаки, и 2-ой этап найти их на неизвестной кривой? Вы сейчас на каком этапе? Во сколько раз вы хотите ускорить работу вашего поиска?
0
|
|
|
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
|
||||
| 17.10.2012, 12:32 [ТС] | ||||
|
0
|
||||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||
| 17.10.2012, 13:30 | ||
А насколько точно вы можете найти и выделить границы клетки на изображении? Не перекрывают ли они друг друга? Не зашумлена ли граница?
0
|
||
|
Модератор
3409 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,461
|
|
| 17.10.2012, 13:34 | |
|
мысли вслух:
1 пусть есть набор образцов. каждый образец представляет собой кривую. каждый образец приведен к безразмерному виду: минимальное значение y принято за 0, максимальное значение y принято за 1, координата x начала кривой принята за 0, координата x конца кривой принята за 1. каждому образцу назначена точность соответствия. например, в виде максимального абсолютного отклонения любой точки анализируемой на соответствие кривой от кривой образца (то есть как бы задана зона вверх и вниз от кривой образца в которой должна лежать анализируемая кривая для того, что бы она была признана принадлежащей к типу характеризуемому образцом). другой способ - каждый из образцов усредняется с заданным шагом (необходимо что бы изменение кривой на каждом из шагов было не слишком велико). тогда вместо кривой получим набор столбиков площади которых будут площадью под кривой на каждом из шагов. все образцы проверены на уникальность во избежание ошибок (проверка проводится сравнением каждого образца со всеми остальными с заданной для них точностью). 2 теперь собственно поиск на произвольной кривой известных образцов. начало анализируемого участка скользит по кривой от ее начала до конца с заданным в настройках шагом (очевидно он должен быть выбран таким что бы на нем кривая не изменялась слишком сильно). размер анализируемого участка меняется в диапазоне от заданных в настройках минимума до максимума (тут, наверное, только эксперт может сказать до каких размеров может меняться образец). попадающий в окно анализируемый участок кривой приводится к безразмерному виду и сравнивается с набором образцов. как то так. правда процедура поиска при всей своей элегантной красоте является очень тяжелой.
1
|
|
|
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
|
|||
| 17.10.2012, 15:00 [ТС] | |||
|
0
|
|||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||
| 17.10.2012, 15:49 | ||
Как вы можете это подтвердить? Ведь всегда будет ошибка распознавания. Например, ваш алгоритм будет распознавать с 30% ошибкой это подтверждение или опровержение? А какой смысл всего этого? Просто исследовательский (дипломная работа) или все таки практическая ценность есть? Если клетки легко отличить по структуре (лошадь от коровы легко отличить по рогам), какой смысл искусственно усложнять себе жизнь и выкидывать наиболее яркие приметы и распознавать по вторичным признакам (а можно ли отличить корову от лошади по левой задней ноге)? Вообще то мозг и глаз человека очень здорово ищет одни общие приметы в объектах, в частности в их форме и классифицирует по ним объекты. Т.е. если на глаз вы не можете найти общие признаки в форме и классифицировать по ним неизвестную клетку по ее форме (залив клетку на изображении одним цветом), то врятли вам удастся научить этому компьютер с хорошей точностью.
0
|
||
| 17.10.2012, 15:49 | |
|
Помогаю со студенческими работами здесь
20
По каким характерным признакам можно определить респектабельность фирмы-поставщика Прошу объяснить мне почему я не могу задать размер массива с консоли, без его ограничения каким либо числом? Для чисел из файла указать его значение в обратном либо дополнительном коде, либо его инверсию по выбору
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|