Введение
По моему опыту, поиск статей можно разделить на два этапа:
- Узнать какие статьи существуют по интересующей теме (задаче);
- Найти где скачать полный текст выбранных статей;
Первый этап - наиболее важный и сложный, особенно если начинаешь искать литературу по теме, в которой (пока еще) разбираешься слабо или не разбираешься вовсе. Второй этап обычно намного проще и, в общем-то, чисто технический, фантазию включать почти не приходится.
Этап №1
Начну со сложного - как найти какие статьи существуют по некоторой тематике (например по решению некоторой задачи)? Тут можно различить примерно три случая:
- О теме, по которой нужны статьи почти ничего не знаешь;
- С темой знаком, но не в подробностях (скажем просматривал 2-3 статьи или читал какие-то введения);
- С темой знаком хорошо, интересуют какие-то частности или самые последние достижения в этой области.
Что я обычно делаю в каждом из случаев?
Если с областью знаком плохо (1ый случай) - главное найти "за что зацепиться". Вначале часто получается так, что неизвестно как точно называется интересующая задача по-английски, какова принятая терминология в этой области (ключевые слова), неизвестно ни одно название статьи, ни один автор работавший в этой теме. То есть непонятно с каким именно запросом обратиться к поисковикам, чтобы "выловить" нужную информацию.
Найдя что-то одно из перечисленного можно довольно легко получить остальную информацию (об этом дальше). Когда пока еще не известно ничего, я обычно пробую три способа:
Ищу в каталогах материалов по машинному зрению типа
CVOnline или нашей
библиотеки. В таких каталогах есть возможность довольно быстро просмотреть весь список рубрик и найти схожие с требуемой или близкие темы.
Если удается найти - это сразу дает ключевые слова, употребительные в этой области, несколько работ (причем часто обзорных) и фамилий авторов. Все что нужно чтобы превратить
случай 1 в
случай 2.
Ищу в поисковиках по ключевым словам, которые пока придумываю сам. Постепенно варьируя их (если не доволен результатами поиска) в силу своего знания области и английского языка.
Это не очень просто, обычно приходится просмотреть много "левых" страниц, пока не наткнешься на ту, что наведет на хотя бы один материал по теме.
Ищу по сайтам конференций (вот
тут и
тут, например, есть полный список всех конференций по машинному зрению) - нет ли докладов на них, которые по названию похожи на то, что мне нужно?
Пример из жизни. Некоторое время назад мне понадобилось узнать какие существуют методы решения задачи приближения точечного контура ломаной линией. Т. е. на входе - набор 2D точек, требуется аппроксимировать контур ломаной с небольшим числом звеньев, не отклоняясь от исходного контура более чем на заданный порог. Пример исходных данных есть у нас на странице одного из проектов по 3D реконструкции.
Как я поступил. Сначала поискал в google что-нибудь по фразам типа "piecewise linear contour approximation", "contour approximation", "line fitting" - получил не совсем то, что хотел. Стало ясно, что ключевые слова не те... Тогда я залез в CVOnline и стал искать - нет ли чего похожего на мою задачу? И одновременно ковыряться в google по-разному варьируя слова в надежде найти правильные термины.
В CVOnline я нашел "подозрительный" раздел - "Boundary/Line/Curve Segmentation", а в нем две показавшихся интересными подтемы - "Breakpoint/Corner Detection" (ведь действительно я хочу найти "углы" на контуре и туда поместить узлы ломаной) и "Recursive splitting" (я ведь тоже хочу разбить контур на участки).
Материалы в этих двух разделах плюс google подсказали мне что ключевые слова должны быть другие - contour simplification, polygonal approximation, vectorization. Плюс - я получил статью образовательного характера на нужную тему. Значит - перешел в случай 2.
С темой знаком, но не в подробностях (2ой случай). В таком случае обычно требуется узнать о теме больше, получить представление об основных алгоритмах и методах и их свойствах.
Раз уже есть знание о ключевых словах и/или хотя бы одна статья, то главным инструментом становятся поисковики. По ключевым словам (понятное дело) можно найти еще статей. Лично я ищу обычно в Google или в researchindex.org. Воспользоваться уже имеющимися статьями можно так:
- Списки литературы + обзоры существующих методов (которые есть во вступлении любой нормальной статьи) помогут найти другие работы в этой области, а также узнать основные свойства, достоинства и недостатки описываемых в них методов.
- Само название статьи будет встречаться в более свежих работах, на нее ссылающихся. Так что если даже статья у вас уже есть, вбить ее название в поисковик бывает полезно. Особенно тут помогут поисковики, учитывающие цитирование статей, например researchindex.org и Google Scholar.
- Авторы, весьма вероятно, не ограничились одной статьей в этой области, так что имеет смысл поискать их личные страницы с публикациями, публикациями их организаций, учеников и т.д.
- Конференция или журнал, где статья была опубликована, скорее всего будет печатать еще статьи на смежные темы, так что поискать их сайты также имеет смысл. Узнать в какие разделы обычно помещают статьи на интересующую тему также полезно - будет ясно какие разделы искать на других конференциях.
Тут может подстеречь одна проблема, напрямую с поиском в интеренете не связанная... Легко представить ситуацию когда человек накачал себе 50 статей на близкие темы и пришел в некоторое замешательство - не читать же их все? Меня тут выручают обычно два подхода.
Первый - найти в интернете какой-нибудь масштабный обзор (survey) этой области (достигается прибавлением слова "survey" к поисковому запросу - например "contour approximation survey"), чью-нибудь диссертацию (thesis) на эту тему (в иностранных диссертациях обычно отличные обзоры литературы и подробнейшее введение в предмет) или введение в область - tutorial (ищется прибавляя слово "tutorial" к поисковому запросу). Такие материалы обычно помогают быстро "войти в тему" и получить представление об основным методах, их слабых и сильных сторонах и трудностях с которыми придется столкнуться.
Второй подход - это проглядеть все скачанные статьи, не вдаваясь глубоко в подробности (чтобы в них не утонуть), выделяя только основные черты методов. Об этом в другой раз.
В моем примере про аппроксимацию контура я нашел диссертацию г-на Колесникова, защищенную в Финляндии, где есть великолепный обзор существующих в этой области решений.
Если с темой знаком хорошо (3ий случай) и интересуют какие-то подробности или самые свежие достижения - всё уже совсем просто. Рецепт практически такой же как и в случае 2. Искать по:
Названиям имеющихся статей. Они весьма вероятно будут встречаться в более свежих работах (в списках литературы).
Чтобы увеличить эту вероятность, стоит искать ссылки на какие-нибудь основопологающие и известные работы (как статьи
Бойкова и
Колмогорова в области применения разрезов графа - graph cuts). Другой вариант - искать по какому-нибудь известному обзору в этой теме (как например
face detection survey в области обнаружения лица на изображениях), поскольку скорее всего бОльшая часть статей будет его упоминать.
Сайтам авторов их
организаций, учеников и т.д. - скорее всего работы продолжаются и получены новые продвижения, с которыми будет интересно ознакомиться.
Сайтам соответствующих конференций и журналов,
где публиковались предыдущие статьи. Вообще полезно регулярно просматривать ведущие конференции в "своей" тематике, чтобы получить представление над чем люди работают, какие задачи решены, каковы "общемировые" тенденции, да и кругозор расширить.
Добавлю ещё одну вещь. Часто по короткой статье с какой-нибудь конференции какой-то момент в реализации метода бывает не очень понятен. В таком случае, стоит поискать журнальную статью на эту же тему, диссертацию или внутренний технический отчет, там метод чаще всего описывается подробнее (еще скажу об этом ниже).
Этап №2
Если уже известно название и авторы интересующей статьи, обычно добраться до ее текста не составляет труда. Однако бывает что человек неопытный испытывает сложности с тем, что первые ссылки в поисковиках часто ведут на сайты, где доступ к тексту статей небесплатный (типа библиотек IEEE и ACM). Рецепт, которым пользуюсь я, весьма несложен (может, кстати, кто поделится чем-то более изощренным?).
Я поступаю так (фактически третий раз уже описываю один и тот же алгоритм):
Сначала просто-напросто листаю пару страниц результатов поиска, поскольку бывает что ссылка-то находится, но просто "не в первых рядах". Удивительно, но часто помогает.
Затем я ищу сайты авторов, соавторов и их исследовательских центров (частенько это разные сайты). Обычно кто-нибудь из них выкладывает тексты статьи у себя на странице публикаций.
Если это не помогает - ищу сайт конференции, где опубликована статья. Некоторые конференции (например BMVC) выкладывают свои труды в открытый доступ.
Если она опубликована в журнале - журналы обычно своими материалами "за просто так" не делятся, но почти всегда у автора есть "парная" статья описывающая тот же алгоритм (но более кратко) опубликованная на какой-нибудь конференции.
Иногда в открытом доступе лежат внутренние технические отчеты организации где велись исследования где подробнейшим образом описывается тот же самый алгоритм.
Может возникнуть вопрос - почему одно и то же может столько раз быть описано в разных источниках? На самом деле просто такова практика. Сначала выполняется работа, решается некоторая задача - по этому пишется технический отчет для самой организации. Если решают публиковать - пытаются опубликовать сначала краткую статью (6-8 стр.) на конференции (это можно сделать очень быстро - в течении нескольких месяцев). Если публикация "проходит" - пишут более развернутую с большим охватом и публикуют в журнал (в журнале до выхода в свет она может и пару лет пролежать).
Вот, пожалуй, и все что я хотел рассказать. То есть на самом деле гораздо больше, чем хотел. Сначала я планировал написать пару абзацев только про то, что назвал "вторым этапом", но вот как-то одно за другое зацепилось - получилось длинно... Посмотрим, может подсокращу потом.
Комментарии
Замечательная статья!
Сегодня весь день пользовался её рекомендациями)
От себя могу добавить ещё пару ключевых слов в ряд survey, thesis, tutorial – summary, study и overview.
Плюс, при поиске в Google нередко бывает полезен оператор intitle (например, contour approximation intitle:survey).
Неплохой ресурс со статьями
http://citeseer.ist.psu.edu/
С уважением, Yuri