Нейросеть, расширяющая фото. Продолжение

Всем привет. @xtr7 сделал недавно пост (о нейросети, которая улучшала качество картинки), но то ли никто не поделился, то ли не смогли следовать инструкции. Короче, меньше воды - больше дела.

Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост

Последние две чет так себе :)

Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Нейросеть, расширяющая фото. Продолжение Нейронные сети, Искусственный интеллект, Длиннопост
Ну вот как-то так. Если лень разбираться, куда тыкать, присылайте фото/картинки в комменты, по возможности отвечу.


Спасибо за прочтение, присоединяйтесь к нам!

Искусственный интеллект

2.4K постов9.8K подписчика

Добавить пост

Правила сообщества

Здесь вы можете свободно создавать посты по теме Искусственного интеллекта. Добро пожаловать :)


Разрешено:


- Делиться вопросами, мыслями, гипотезами, юмором на эту тему.

- Делиться статьями, понятными большинству аудитории Пикабу.

- Делиться опытом создания моделей машинного обучения.

- Рассказывать, как работает та или иная фиговина в анализе данных.

- Век жить, век учиться.


Запрещено:


I) Невостребованный контент

  I.1) Создавать контент, сложный для понимания. Такие посты уйдут в минуса лишь потому, что большинству неинтересно пробрасывать градиенты в каждом тензоре реккурентной сетки с AdaGrad оптимизатором.

  I.2) Создавать контент на "олбанском языке" / нарочно игнорируя правила РЯ даже в шутку. Это ведет к нечитаемости контента.


II) Нетематический контент

  II.1) Создавать контент, несвязанный с Data Science, математикой, программированием.

  II.2) Создавать контент, входящий в противоречие существующей базе теорем математики. Например, "Земля плоская" или "Любое действительное число представимо в виде дроби двух целых".

  II.3) Создавать контент, входящий в противоречие с правилами Пикабу.


III) Непотребный контент

  III.1) Эротика, порнография (даже с NSFW).

  III.2) Жесть.


За нарушение I - предупреждение

За нарушение II - предупреждение и перемещение поста в общую ленту

За нарушение III - бан

17
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (1)
28
DELETED
Автор поста оценил этот комментарий
Иллюстрация к комментарию
показать ответы
1
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (1)
5
DELETED
Автор поста оценил этот комментарий
Иллюстрация к комментарию
5
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
3
DELETED
Автор поста оценил этот комментарий
Вы, наверное, имели ввиду даунскейленную? Короче не суть, оригинальных нету :).
показать ответы
Автор поста оценил этот комментарий

День добрый, снова я. Только добрался до реализации и вышла досадная ошибка о устаревании моей видеокарты (кто бы сомневался). Есть предложения как решить её, помимо переключения на CPU? Может есть старые версии, которые поддерживают карту?

Иллюстрация к комментарию
раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий
1) Возможно, проц справится с задачей быстрее вашей карты :). Ну если проц норм.
2) Обновите карту (ААА ЧЕ РЯЛЬНО подумали вы)
3) Поставьте более старую версию pytorch

Но все-таки повторюсь, gt740M это не сильная видеокарта, не думаю, что будет серьезная разница между cpu и gpu
показать ответы
Автор поста оценил этот комментарий

День добрый, @WhiteBlackGoose, Подскажите пожалуйста, у меня при запуске  test.py появляется данная ошибка. Делал, вроде бы, всё, как по инструкции у kingdomakrillic, дошёл до 4 шага инструкции (на Гитхабе) и вот так. По идее, мне же ничего менять не надо в фале test.py?

Иллюстрация к комментарию
раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Хер знает, сделайте по моей инструкции (курите ветку). За чужие ошибки не отвечаю)).

показать ответы
Автор поста оценил этот комментарий

Спасибо. Буду ждать

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Надеюсь сможешь в открыть инструкцию)
https://yadi.sk/d/cduvJt3AjWOiNg

показать ответы
Автор поста оценил этот комментарий

Если есть время - потрать на тюториал... А Гучи здесь не при чем ))

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий
Ну, как знаешь. Приеду домой - может быть выложу
показать ответы
Автор поста оценил этот комментарий

Это "исключительно" для программистов или сгодится и для тех, кто лаптем щи хлебает? Я работаю с фото и видео. И мне надо "потрогать", что это такое. Жаль, что нет цивильной оболочки (типа, оформления программного). Попробовать бы рискнул.

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий
Лапти придется заменить на сапоги гучи, но если оч надо... Но замучаешься
показать ответы
Автор поста оценил этот комментарий

Дружище, я не смог понять, что точно надо делать! Можешь пошагово объяснить?

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий
Могу конечно, но ты уверен, что хочешь это делать? Там кучу всего ставить, разбираться придется
показать ответы
Автор поста оценил этот комментарий

С Гуглом я пока не разобралась, это надолго.

На ваш взгляд, какие минимальные требования по железу необходимы для работы обсуждаемой программы?

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Да никакие, обычно ждать надо. Ну оперативка-то 2-4 Гб у вас думаю есть. Я хз, че у вас виснет. Уверены, что оно так и не сделало картинки?
показать ответы
Автор поста оценил этот комментарий

в общем с маленькой тоже виснет, без синего экрана, но все равно. неужели этих мощностей не хватит для обработки 56кб изображения?


пользуясь моментом вот еще вопрос: мне тут сказали что если комп очень слабый можно как-то арендовать сервер на несколько часов или суток на амазоне. Известно ли вам что-нибудь про это? и если да, то как вычислить необходимое время работы и мощность сервера исходя из размеров изображения?

Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Е мое, если вам надо одну картинку, киньте сюда. Но если что, то есть google colab - там бесплатно дают 1080 ti.

показать ответы
Автор поста оценил этот комментарий

Он не смог, я перезагрузила комп, открыла все сначала и загрузила крошечное изображение. Пока работает. Даже с мышкой

Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Оу май). Ну хз, че-то железо у вас не ахти).

показать ответы
Автор поста оценил этот комментарий

Вы можете найти меня ВК, например, ник такой же.


Никак, экран погас, не включается исходя из этого делаю вывод что оно работает)

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Не знаю. Ладно уж, ветку создали, давайте здесь. Так вы не ответили: у вас остались изображения в LR, или удалили?

показать ответы
Автор поста оценил этот комментарий

@whiteblackgoose я согласна на новую ветку, но мне очень интересно, что такое ЛС чуть-чуть))

пинать точно не стоит, это малоэффективно

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

лс - это личные сообщения, на пикабе их нет. То есть их надо будет делать через что-то другое. Как там прогресс с сеткой, кстати?

показать ответы
DELETED
Автор поста оценил этот комментарий

Хехехе, ну мб

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

@AryaCyan, у нас с вами ветка кончилась. а) Го создадим новую ветку б) лс, но чуть-чуть с) пнуть админа увеличить лимит (но админ плохо пинается, проверено)

Автор поста оценил этот комментарий

Я завишу от мышки, конечно же, намного больше вас, управлением с клавиатуры пользуюсь редко. Но здесь конкретно дело не в зависимости, а в том, что если виснет даже мышка, то остальное трогать не стоит и пытаться

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Хехехе, ну мб

показать ответы
Автор поста оценил этот комментарий

Все стёрла, положила только одну картинку)


Я при всем желании не смогу сейчас ничего изменить - мышка не двигается)))

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Вы так сильно от мышки зависите? 0_о. Я вообще ей почти не пользуюсь.

показать ответы
Автор поста оценил этот комментарий

В папке 1 картинка. Какое железо смогу сказать только как оно сработает, сейчас ничего не открыть.  В целом, на фоне современных компьютеров он наверное уныл, но года 4 назад, когда его собирали он вполне справлялся с возложенными на него обязанностями (хотя и тогда не был передовым). В любом случае из всех доступных мне компов этот наиболее современный

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Вы постирали файлы из LR? Ибо иначе он все будет обрабатывать -_-.

Если нет, то щас не стирайте, ждите, когда завершится.

показать ответы
Автор поста оценил этот комментарий

Докладываю. Ошибку не выдавал, сменил значок на такой, написано running.


Мышка снова зависла. Подожду подольше.


Спасибо вам большое, я очень ценю вашу помощь в решении этой задачи

Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Тхе-хе, может оно просто работает? Похоже на то). В папке LR много картинок? Если да и если у вас слабый комп - будет не очень быстро. Какое у вас железо, кстати? Если не знаете как выяснить, то вот так:

Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
показать ответы
Автор поста оценил этот комментарий

К моему сожалению комп пришлось перезагрузить. Начинать сначала или просто открыть юпитер?

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Просто открыть юпитер...

показать ответы
DELETED
Автор поста оценил этот комментарий

Нет! Не надо!

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Там чуть осталось.

Автор поста оценил этот комментарий

Сейчас ещё раз с самого начала весь список выполню. Прорвёмся

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Нет! Не надо!

показать ответы
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Точно по двум стрелочкам? Попробуйте сделать re-run.

Автор поста оценил этот комментарий

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

Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Не верю, покажите весь код

показать ответы
Автор поста оценил этот комментарий

да, на эту.

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Ну маленькими же буквами, я же ни разу не написал большими, ну зачем. Маленькими буквами. Он же русским языком написал, что ожидал cpu, а получил CPU

показать ответы
Автор поста оценил этот комментарий

Нет, там cpu написано

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

А вы весь код запустили, нажав на эту кнопку? Если да, то киньте скриншот всего кода

Иллюстрация к комментарию
показать ответы
Автор поста оценил этот комментарий

так, я вроде реанимировала все как раньше. теперь вот такая ошибка

Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Так у вас вверху слово 'cuda' есть? Где-нибудь здесь. Если да, то замените его на cpu

Иллюстрация к комментарию
показать ответы
Автор поста оценил этот комментарий

conda install не прокатило, выше из поста набрала pip install opencv-python (вроде это к этой же ошибке)


после обновила то, что в браузере, однако там без изменений

Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Как вы обновили? Нажмите re-run,

Иллюстрация к комментарию
показать ответы
Автор поста оценил этот комментарий

там где код нашла вот такой кусок со словом error

в папке результаты только картинки из поста, они и раньше были

Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Тааак, это таки ошибка. Где-то в этом посте меня кто-то уже об этом спрашивал, посмотрите комменты. Ну либо попробуйте открыть cmd и написать conda install cv2
показать ответы
Автор поста оценил этот комментарий

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

Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Тааак, и что там, в поле ввода? Если нигде нету слова Runtime error идите в папку result
показать ответы
Автор поста оценил этот комментарий

Доброе утро! Это я все сделала еще ночью. Заменила, загрузила нужное изображение в папку, процесс пошел (из главного меню видно надпись "runing". ночью 9 часов процесс шел, сейчас по вашим инструкциям вроде его запустила по-новой. Вопрос: сколько обычно длится процесс обработки фото?

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
У меня две секунды. Я говорю же, чтобы запустить, надо зайти в файл и тыкнуть в кнопку сверху. То, что там написано running, не значит, что он что-то ввполняет.
показать ответы
Автор поста оценил этот комментарий

так, вроде запустила процесс, выглядит вот так. Оно? и еще вопрос, сколько по времени идет обычно процесс обработки?

Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Если nvidia, то cuda есть с вероятностью дофига. Впрочем, уже не важно. Теперь вам открыт проводник в браузере. Зайдите в файл executor. Там две ячейки. Так вот в верхней там где есть 'cuda' замените на 'cpu'. И сверху где-то нажмите кнопку run all (в виде двойной стрелочки).
показать ответы
Автор поста оценил этот комментарий

К сожалению. Я сейчас пытаюсь установить анаконду (не факт что это будет успешно), однако п. 2 уже вызывает множество вопросов. Господи, я даже не знаю как посмотреть С ядрами у меня карта или нет(

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Какая у вас карта? Впрочем знаете, можете считать, что у вас нет ядер, тогда асе упрощается во множество раз. Проходите следующую настройку так, будто у вас нет CUDA.
показать ответы
Автор поста оценил этот комментарий

Спасите пожалуйста. Мне тоже страстно нужно все то, что выше и я даже готова в личке аргументировать зачем и почему, но есть одна большая проблема - я вообще не шарю ни в питоне, ни в программировании в целом( Не поможете ли вы мне с этой задачей разобраться?

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Я оставлял ссылку выше по ветке. Там все еще непонятно?

показать ответы
Автор поста оценил этот комментарий

Спасибо! - установился теперь ошибка возникает после прогона test и выдаёт:


https://yadi.sk/i/_x7X27PqC8aaKg

https://yadi.sk/i/My8lOyzRSpMAOQ

- не пойму что хочет.


/Users/dizmolodec/anaconda3/lib/python3.7/site-packages/torch/nn/modules/upsampling.py:129: UserWarning: nn.Upsample is deprecated. Use nn.functional.interpolate instead.


warnings.warn("nn.{} is deprecated. Use nn.functional.interpolate instead.".format(self.name))


OFF Кстати CUDA на старом mac не завёлся оказывается apple на OS mojave его пока не поддерживает.

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Это Warning, забейте. Тыкайте в папку "results" и наслаждайтесь :)

показать ответы
Автор поста оценил этот комментарий

Установил как ночную сборку - прошло

Далее с glob получилось только как

sudo pip install glob2

sudo pip install glob3

установить.


Затем запустил jupyter notebook, результат:

https://yadi.sk/i/FHBmfA9kYHe4Ew

https://yadi.sk/i/vf4grIcKBBu5bw

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Уж не помню, как я ставил cv. Зачекайте команду

pip install opencv-python

Ну либо погуглите по установке cv2 в python

показать ответы
Автор поста оценил этот комментарий

Есть известная задача когда нужно спрятать данные внутри картинки или даже видео - что называется стеганография.

Я же поставил себе задачу использовать видео (например под кодеком H264) целиком под хранение данных даже не пытаясь скрыть этот факт. При этом я оглядывался на Youtube в качестве "файлохранилища", поэтому было внесено дополнительное требование на возможность восстановления данных даже если видео перекодирывали.

К слову, была похожая идея - для хранения данных на VHS кассетах, АрВид (Архиватор на Видео) называлась.

Минимальной операцией алгоритма является преобразование N бит исходных данных в ч/б картинку размера 8х8.

Для нейросети я хочу поставить такую задачу - "преврати мне эти N бит исходных данных в 64 байт таким образом, чтобы после прохождения через видео-конвертер они изменились минимальным образом, плюс условие что для любых двух наборов исходных данных "расстояние" между их результатами будет максимально.

Таким образом нейросеть создаст "словарь" для конвертации данных.

Но тут еще есть сложность в том что для того чтобы пропустить данные через видео кодировщик требуется собрать столько выходных данных от нейросети чтобы можно было сформировать видео длительностью хотя бы 50 кадров и желательно не на самом минимальном размере картинки видео.


Вот к примеру кусок кадра который вполне удачно декодируется после ютуба


P.S. Только не спрашивай зачем это нужно, первоначально я вообще просто искал идею на чем бы C# выучить, а то просто по урокам учить - я бы быстро на это забил.

Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Не вижу применения сетки по двум причинам:
1) сетка умеет не так уж и много, как кажется на первый взгляд, аппроксимировать какие-то хитрые махинации кодеков ей не под силу
2) представленная задача скорее всего имеет алгоритмическое решение, хотя бы перебором. Но едва ли сеткой

На самом деле, это уж тем более задача не для шарпа.

Это все Имхо, но помочь тут не смогу
показать ответы
Автор поста оценил этот комментарий

Ну значит будет по два раза прогонять.

как это лучше сделать не подскажешь? через какие команды?

Я тут только уточню что "идеальные ответы" нельзя брать только единожды - для каждого уникального ответа сетки будет также создан уникальный идеал (с точностью до перевода в байт-числа).

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Я не очень понимаю тебя. Что у тебя есть сейчас? Обозначь полностью задачу. Как я понял, у тебя есть входные, но нет выходных. Это правда? Далее, какая задача? Я не понял про видеопоток. И не очень понимаю твой уровень. Нейросеть это почти всегда когда ты ей даешь матрицу данных, она тебе возвращает другую матрицу данных. Структура сетки зависит от задачи. Не всегда для обучения требуются и входные и выходные данные. Если хочешь совета - опиши четки все и ясно. Фразы вида N байт бла бла бла мне совершенно не ясны.
показать ответы
Автор поста оценил этот комментарий

Уже курил, мне ее как советовали, так и сказали что это не то.

Вот я и спрашиваю - какие можно использовать готовые инструменты для моего случая.

С высоты моего нубского опыта я могу предположить только ручное редактирование весов сетки в самодельном генетическом алгоритме, но это будет сильно дольше чем методы разработанные под нейросети.


Что, неужели нет возможности при обучении сети сначала собрать ее результаты в ответ на различные входные данные, потом в "сторонке" на основе результатов создать "идеальные" ответы, а потом последние передать для обучения обычном ходом или хотя бы для расчета оценки ошибки.

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Можно конечно, но придется еще раз прогонять
показать ответы
Автор поста оценил этот комментарий

Если я скажу что хочу использовать видеопоток как хранилище данных и что у меня есть рабочий прототип который это делает но без нейросети - это сильно поможет ? :)


Вот думаю как переложить задачу на нейросеть, но не вижу как в Keras обучать сеть если я не могу ему дать тренировочный набор в том виде как это делается в обучалках.

Вижу решение только спуститься на "уровень пониже" и почитать обучалки по TensorFlow или Torch, может там что-то нужное попадется

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
А как, как вы планируете ее обучать? Ну курните autoencoders, может поможет...
показать ответы
Автор поста оценил этот комментарий

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

Для нейросетки у меня задача такая

- попроще - на вход подается N единиц или нулей, на выходе 64 байта

- усложнение - нужно из последовательности N*K единиц или нулей сделать K блоков по 64 байт, при этом следующий блок должен зависеть от предыдущего, но известно что входные чанки являются полностью независимыми друг от друга.

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

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Я не до конца понял, что вы имеете ввиду, ибо чтобы строить сетку, необходима задача. Для одних и тех же входных и выходных данных существует бесконечное число конфигураций сетки.

А пример построения сетки - чекните простые модели на keras, самый простой путь.
показать ответы
1
Автор поста оценил этот комментарий

Путин и Гитлер в одной подборке. Однако ж, лед тонок у @whiteblackgoose. Хотя может это его юмор столь тонок.


Ведь посмотрите, какая аллюзия картинок - сначала был Пу, потом была женщина (все войны из-за баб), потом были различные конфликты, а затем трансформация в Ги. Феноменально разыграно.   

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Ага, а еще там игра с пистолетом была. А первая картинка вообще намекает на Индию - мечту Гитлера
Автор поста оценил этот комментарий

Это ж вебморду писать. Лично я не люблю дизайнить UI вообще.

Ты случайно нейросетками сам незанимаешься ?

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

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Занииаюсь;
под винду делать не буду, ибо мне лень объяснять почему ;
показать ответы
Автор поста оценил этот комментарий

А можешь под винду портабельную версию запилить?

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Хех, забавная идея. А лучше онлайн сразу. Я подумаю...) но ничего конечно обещать не буду
показать ответы
2
Автор поста оценил этот комментарий

А теперь эту картинку ещё раз прогони. А потом ещё и ещё, и ещё!

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Больше не буду, сам делай)

Иллюстрация к комментарию