Перейти к содержимому
Compvision.ru
KNCH

OpenCV в медицине

Recommended Posts

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Эта либа достаточно хреново работает. Лучше посмотрите здесь. http://www2.imm.dtu.dk/~aam/

Это сложнее, зато намного более качественно сделано. Кстати, там же есть и датасеты медицинские и модельки какие-то тоже.

guillaume-us.jpg

вот оттуда кадры:

http://www2.imm.dtu.dk/~aam/tracking/guillaume-us.avi

Здесь еще лекция неплохая по AAM. Презентация по AAM.

Поделиться сообщением


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

я думаю это вообще не вариант для таких картинок.

это не то, так как мне поиск надо делать. То есть будет поиск либо по алгоритму или по шаблону для нужного органа.

ну там алгоритм сегментации, можно сегментировать, а потом уже по контуру сравнивать.

так что для начала найдите контуры и покажите что у вас получилось.

хотя active contours это по сути тоже сегментация, но только с использованием эталона, который может "гнуться".

Сегментация с помощью модели

Основное предположение этого подхода — то, что интересующие структуры или органы имеют повторяющиеся геометрические формы. Следовательно, можно найти вероятностную модель для объяснения изменений формы органа и затем, сегментируя изображение, накладывать ограничения, используя эту модель как априорную. Такое задание включает в себя (i) приведение тренировочных примеров к общей позе, (ii) вероятностное представление изменений приведённых образцов и (iii) статистический вывод для модели и изображения. Современные методы в литературе для сегментации, основанной на знании, содержат активные модели формы и внешности, активные контуры, деформируемые шаблоны и методы установления уровня.

вот еще некий материал http://www.vision.jhu.edu/heart.htm

для rigid и non-rigid контуров, которые можно представить как точки.

http://code.google.com/p/gmmreg/

еще можно почитать Contour Tracking и Contour Detection если орган изменяется во времени, что эквивалентно изменению от картинки к картинке.

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

хотя это уже наверно другая задача.

image.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня только API валяется на 16 Мб. Я так с его компиляцией и не разобрался. Там вроде зависимость от MSVisionSDK, я её не осилил. Перешел на ASM.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Там сказано:

The best way to start is to go to the /test/colour/ directory and:

1) run __demo__.cmd

2) have a look at the output files

3) have a look at __demo__.cmd and __conf__.acf in notepad

4) start the AAMLab (colour)

- open the image from the unseen directory

- load the model.amf from /test/colour/

- view the model modes

- insert the mean shape

- play around with the search function

(a shape is moved by dragging the red COG)

5) that's it

Но у меня не собралось по 2008 студией, а 2005 ставить не хотелось.

ЗЫ: За репозитарий спасибо, там есть собранная версия, можно поковырять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нормально запустилось. Кстати, файлов мегабайт на 300 с лишним накачал. В директории tests лежат примеры как создать модель. В директории data содержатся исходные данные для создания модели. asf контуры, bmp картинки. В каждом asf есть ссылка на картинку к которой он относится. __demo__.cmd строит модель model.amf. Директорию bin, чтобы все работало надо прописать в PATH.

РЕзультаты работы в test\greyscale или color\unseen\__evaluation__\.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я так понял, что при помощи матлабовского файла.

annotate.m

function annotate( imagetype )
%
% function annotate( imagetype )
%
%
% Reads and displays all images in the current dir one by one.
%
% When an image is displayed, annotation can be done by left-
% clicking the mouse. Press 'e' to end annotation and write
% a corresponding asf-file in the current dir. Use plotasf()
% to view the resulting asf-file.
%
% Example usage: annotate('bmp');[/code]

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

на matlab столько много примеров ASM и AAM и реализованы создание asf контуры. Думаю прикрутить его к Net.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нормально запустилось. Кстати, файлов мегабайт на 300 с лишним накачал. В директории tests лежат примеры как создать модель. В директории data содержатся исходные данные для создания модели. asf контуры, bmp картинки. В каждом asf есть ссылка на картинку к которой он относится. __demo__.cmd строит модель model.amf. Директорию bin, чтобы все работало надо прописать в PATH.

РЕзультаты работы в test\greyscale или color\unseen\__evaluation__\.

asf контуры как я понял - это контур объекта, который будем искать. (Как его задаю с помощью матлаба, интересно)

То есть по этим данным \test\colour\data строится модель(model.amf).

Потом как я понял по-этой модели делается поиск картинки (test\colour\unseen).

У меня два вопроса:

1 Зачем у картинки на которой будем искать тоже asf контур (\test\colour\unseen)?? Что в нем интересно??

2 Можно ли без матлаба asf контуры делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В asf в \test\colour\unseen скорее всего начальное приближение (не проверял). AAM работают тем лучше, чем точнее мы зададим начальное приближение положения и формы модели. asf - простой формат, почему бы и не делать его с помощью собственноручно написанной тулзы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В asf в \test\colour\unseen скорее всего начальное приближение (не проверял). AAM работают тем лучше, чем точнее мы зададим начальное приближение положения и формы модели. asf - простой формат, почему бы и не делать его с помощью собственноручно написанной тулзы.

Удалил сейчас все данные из asf \test\colour\unseen вроде ищет.

Что такое начальное приближение?

Как я хочу реализовать:

1 Загружаешь картинки, выделяешь объект.

2 Нажимаешь обучить

3 Все конвертируется в asf контуры и передается все в эту библиотеку.

4 Она выдает модель и ей присваивается имя.

5 Потом загружаешь картинку и жмешь ищи этот объект.

6 Он его выделяет и пишет название.

Реально такое реализовать?

И без начальное приближение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня только API валяется на 16 Мб. Я так с его компиляцией и не разобрался. Там вроде зависимость от MSVisionSDK, я её не осилил. Перешел на ASM.

А есть примеры с ASM, что бы можно было задавать шаблоны и потом искать???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вам ASM не подойдет, контуры слабые, плохо выраженные и много помех. У Вас будет лучше применить поиск по текстурам (AAM). У ASM и AAM есть свои особенности. Они как бы "прилепляют" объект к ближайшему подходящему подходящему приближению и прекращают поиск. А это чревато тем, что система может влететь в локальный минимум и там остаться. Лучше если поиск объектов будет изначально хоть как то разбит на зоны и хотя бы грубые очертания объектов.

Проблема начального приближения частично решается при помощи пирамидального поиска. Когда изображение последовательно, несколько итераций, уменьшают в два раза. Получается набор изображений, каждое вдвое больше предыдущего. Так вот сначала ишут на самом маленьком. Затем на большем, и т.д. пока не доберутся до исходного разрешения. Но тут и моделей нужно несколько иметь - по модели для каждого этажа.

Файл AAMLab.exe (AAMLabm.exe - для цветного) запускали? Там начальное приближение (Insert Mean Shape) можно найти автоматически (Initialize), а можно выставить вручную (потягать модель за красный квадратик посередине). Я смотрел на сером изображении инициализируется очень даже неплохо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а как http://www2.imm.dtu.dk/~aam/ тут с масштабируемостью бороться? Если обучал на маленьких, а потом большую проверяешь, модель не увеличивается. Как зависимость от размеров убрать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

asf формат

# format: <path#> <type> <x rel.> <y rel.> <point#> <connects from> <connects to>

#

0 4 0.32739416 0.60987622 0 0 1

0.32739416 0.60987622 как такие координаты получить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

спасибо. Если найдешь описание было бы не плохо. А как потом увеличить модель, что бы нормально выделяло? А не была маленькой

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нашел документ от этой библиотеки. Там должны быть ответы на все Ваши вопросы.

ActiveModels.pdf

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×