Даешь распознавание картинок на ИИ!

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Все больше применений находит глубокое обучение в разных отраслях жизни. Вот скажем распознавание картинок поставлено очень круто. А для химии? Вот в химии есть, например, задача анализа старых текстов и патентов, когда надо распознавать картинки химических структур - т.н. optical structure recognition. Надо как-то понять, что на картинке и превращать их в какой-то химических формат файлов, скажем, SMILES.

Проблема старая, давненько пытались это делать - чай проще, чем распознавание лиц. Самый известный инструмент для этого - OSRA. Через старое-доброе программирование решали эту проблему еще в доИИшное время.

Вот статья:

https://pubs.acs.org/doi/10.1021/ci800067r

А вот, кто хочет сам попробовать, есть веб-морда:

https://cactus.nci.nih.gov/cgi-bin/osra/index.cgi

Это ссылочка тем, кому нужно иметь инструмент у себя:

https://sourceforge.net/projects/osra/

Так вот, в последнее время, понятное дело, много кому пришла в голову мысль "Хей, ребята, есть нейронки, которые картинкам дают описание. А почему бы не превращать картинки структурных формул в SMILES?" И действительно, чего заморачиваться? Статьи появились по этому поводу - даже несколько групп работают в этом направлении.

Ну вот скажем несколько примеров (их гораздо больше, просто не смогу все описать):

- группа Кристофа Штайнбека взяли за основу с небольшими изменениями архитектуру Show, attend and tell ЛеКуна-Салахутдинова аж еще 2015 года [https://arxiv.org/abs/1502.03044]. Их инструмент называется DECIMER. Эта архитектура использует на входе конволюционную сеть на основе InceptionV3 архитектуры, на выходе - рекуррентная сеть, которая генерирует SMILES. Учится все это на больших выборках картинок, которые сгенерированы для большой выборки SMILES. У них уже несколько статей по разному поводу, но архитектуру описывают тут (есть и ссылка на GitHub репозиторий, кому интересно):

https://jcheminf.biomedcentral.com/articles/10.1186/s13321-020-00469-w

- ребята из Университета Левена сделали что-то типа графового декодировщика, то есть картинки не в SMILES переводятся, а пытаются прямо из картинки через механизм внимания восстанавливать граф. Красивый подход, ребята реально заморочились (они спецы по глубокому обучению), хотя, судя по всему, все там не так уж хорошо:

https://arxiv.org/abs/2002.09914

- в прошлом году еще вышла статья от ребят из Bayer, в которой они предложили свой подход. Идея в том, что не надо сразу заставлять нейроку учитывать преобразовывать картинку в SMILES. Семантика у SMILES тяжелая, учиться нужно много данных, а из картинок так совсем сложно натренироваться... В общем они сначала научили обычный SMILES-to-SMILES автоэнкодер, получили латентные вектора для каждой молекулы. Дальше все просто - тренируют конволюционную нейронную сеть предсказывать эти латентные вектора. Просто и при этом, как говорят, очень прилично распознает.

Вот статейка:

https://pubs.rsc.org/en/content/articlelanding/2021/SC/D1SC01839F

А недавно Дэвид Уайт выложил архитектуру на Google Colab. Теперь и вы можете попробовать как работает:

https://colab.research.google.com/gist/whitead/389460be77560ba37402bea2f958b788/img2mol.ipynb

Сам Дэвид и авторы даже попробовали туда рукописные картинки давать и говорят, что у них получилось неплохо (см. картинку 1 и в статье есть картинка). Я удивился и тоже попробовал - у меня уже нормально не вышло. Хотя возможно надо удалить фон и сделать в нормальном черно-белом режиме (картинка 2).

Но вообще направление весьма занятное, я думаю, тут работы еще будут выходить.


Источник: pubs.acs.org

Комментарии: