LINUX.ORG.RU
ФорумTalks

[надо?]image labeler tool


0

2

Написал программку для выделения и маркировки объектов на изображениях, сейчас она мне совершенно не нужна. Как думаете, она может кому-нибудь пригодится? Выкладывать ли её на какой-нибудь гитхаб или подобный ресурс? Написал на c++ и Qt, код корявый, скорее всего, но работает.

ссылка на исходник
скриншот

документация к исходникам прилагается.

★★★

Было бы совсем здорово, если бы можно было вместо обвода цветом по контуру автоматически выноски делать в центр объекта.

Smacker ★★★★★
()

ссылка на исходник …
Размер: 6.17 МБ

А чего так много? Это же вполне примитивная операция... Бинаризуем изображение по каким-нибудь критериям (самый простой - «выдрать» фон, если тот монотонный), а затем при помощи лептоники выделяем объекты. Заодно можно «дырки» в объектах заполнить.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

в архиве помимо кода ещё документация(сгенерированный doxygen, пдф) и .git. Последний только 3.5 метра занимает. Сами исходники занимают 160 килобайт :)

gavlig ★★★
() автор топика
Ответ на: комментарий от Smacker

Не совсем понял, о каких выносках идёт речь, но в центре выделенного объекта выносится цифра - номер лейбла, который ему присвоен. Лейблы справа.

gavlig ★★★
() автор топика

Я считаю, что надо. Даже если конкретно самой программой не воспользуются, то, по-крайней мере, могут посмотреть реализацию какой-то вещи.

код корявый, скорее всего, но работает

Это, конечно, плохо, но раз тебе программа не нужна, то и причесывать код тебе нет смысла.

Chaser_Andrey ★★★★★
()

ImageHolder.cpp:929: error: ‘MiddleButton’ is not a member of ‘Qt’
ImageLabeler.cpp:4113: error: ‘MiddleButton’ is not a member of ‘Qt’

- при сборке с Qt 4.6.3-4 на 32 bit Debian.
Пичалька: в Qt 4.6 надо заменять на MidButton.

Smacker ★★★★★
()
Ответ на: комментарий от gavlig

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

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от gavlig

http://www.autocad-master.ru/-4/45-2009-01-14-17-57-00 - такие выноски имелись в виду. Впрочем, я неправильно понял суть (написал до сборки) - я думал, программа выделяет объект автоматически, и я подумал, что в таком случае странно его обводить цветом - делать стрелочки с цифрами было бы удобнее.
Но, поскольку выделять надо вручную, всё то же самое можно в том же Gimp или OO Draw.

Smacker ★★★★★
()
Ответ на: комментарий от Eddy_Em

возможно, у нас взаимное непонимание :) Я не делал возможности автоматического выделения объекта, всё необходимо делать ручками - инструментом, похожим на гимповское лассо. Цель самой программки - выделить некие объекты на изображении, сохранить о них информацию и скормить на обучение системе. всё. Потом уже для удобства прикрутил всяких мелочей, но в целом основной функционал описан выше.

gavlig ★★★
() автор топика
Ответ на: комментарий от Smacker

да, только оба они не умеют сохранять информацию о выделенных объектах, а просто сохранят изменённое изображение. Моя же тулза отдельно сохраняет координаты всего выделенного, названия лейблов и ещё кучу всякой информации. Судя по вашей и Eddy_Em реакции, я чертовски плохо описал приложение... Прошу прощения.

gavlig ★★★
() автор топика
Ответ на: комментарий от gavlig

Это всё клёво, но выражаясь языком аналогий, это эргономичный ручной рубанок вместо угловатого, а не электрорубанок. Выделение объектов - тут львиная доля работы, и это-то как раз и не автоматизируется.

Smacker ★★★★★
()
Ответ на: комментарий от Smacker

Дык, собственно, поэтому и спрашивал, нужно ли это кому-то вообще :) Писал я эту программу, пока ездил по обмену в Йенский институт информатики, кафедру computer vision, так как именно такая тулза им и нужна была. Так что именно, как вы выразились, «эргономичный ручной рубанок» для обучения системы распознавания изображений :). Им просто не нужен был функционал распознавания в конкретно этой тулзе, так как она выполняет совсем другую роль. Подразумевалось, что оператор выделяет объекты, которые он посчитал нужными, сохранил о них информацию и скормил системе. А она уже потом будет распознавать.

gavlig ★★★
() автор топика
Ответ на: комментарий от gavlig

Ещё я думаю, было бы нелишне сделать сохранение разметки в том виде, как оно видно в программе - потому что я первым делом подумал, что основное назначение программы - для оформления технических и подобных фотографий, где нужно подписать/пометить объекты. Учитывая, что экспорт сегментированного изображения есть, экспорт несегментированного изображения был бы кстати. Заодно, это сделало бы программу полезнее ещё в одной нише.

Smacker ★★★★★
()
Ответ на: комментарий от Smacker

такая возможность предусмотрена. Достаточно сделать разметку, жмакнуть save all, после чего можно загрузить этот файл(по умолчанию filename_labeled.dat) и увидеть всё в том же виде, в каком оно было до сохранения.

gavlig ★★★
() автор топика
Ответ на: комментарий от gavlig

Что разметка подгружается, я уже понял. Я имею в виду экспорт содержимого виджета с разметкой в виде самостоятельного файла с изображением (т.е. исходная картинка с наложенными на неё цветными рамками/контурами и подписями). Чтобы можно было иллюстрации готовить, например. Это, конечно, ортогонально исходному предназначению программы, но сделает её полезной более широкому кругу пользователей.
Код, кстати, вполне неплохой, по-моему. Только дизайн не отделён от кода, редактирование интерфейса будет не самым лёгким делом.

Smacker ★★★★★
()
Ответ на: комментарий от Smacker

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

Код, кстати, вполне неплохой, по-моему

спасибо.


Про неотделённый от кода дизайн можно подробнее? Как следовало сделать?

gavlig ★★★
() автор топика

Как думаете, она может кому-нибудь пригодится?

На самом деле, это вопрос не такой уж простой. Во всяком случае, ответ на него - точно. Приведу пример из собственной жизни (другой-то нету). Как-то я столкнулся с жалобами на интерфейс R (в винде для него обычно используется простая такая консолька с редактором -http://wiki.bath.ac.uk/download/attachments/52887595/R_win_gui.png), сводящиеся к тому, что в процессе поиска решения в консоли накапливается мусорный вывод от отринутых попыток, и надо потом для составления отчёта редактировать это всё где-то ещё, а в других инструментах уже не видно, что к чему относится. Я решил облагодетельствовать людей, и стал писать гуй на Qt4, именно вокруг идеи редактируемого поэлементно вывода R. Получилось у меня вот что: http://smacker.fatal.ru/qrgui01.png, тот же редактор синтаксиса, кусочки вывода можно редактировать и удалять, а что осталось - экспортировать в txt. И что же? Даже при наличии целевой аудитории, это всё никому не нужно оказалось. As in «совсем». То есть реально, предложение «посмотрите, что тут у меня для вас есть» оказалось проигнорировано. После этого на разработку я, конечно, плюнул.
Какую я хотел бы мораль тут вывести? Ценность, похоже, на основе заявлений ЦА не выводится, так что спрашивать «нужно или нет» бессмысленно. То есть между «нужностью» и «выкладыванием» есть разрыв, связь программы и ЦА формируется по каким-то хаотическим законам.

Smacker ★★★★★
()
Ответ на: комментарий от Smacker

ясно. Спасибо за развёрнутый ответ. Завтра выложу на гитхаб, а там уже как пойдёт. Хуже от этого точно никому не будет :)

gavlig ★★★
() автор топика
Ответ на: комментарий от gavlig

Понятно. А как насчет использования объектов в дальнейшем (например, автоматическое распознавание их на других рисунках)? Над этой проблемой не работали?

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.