22 сообщения перенесены в тему Болталка PascalABC.NET
Ещё одна моя разработка - приложение для восстановления выцветших фотографий, ColorRestorer.
=> ColorRestorer.zip (169,0 КБ)
Код также доступен на GitHub по следующей ссылке: https://github.com/PABCSoft/ColorRestorer.
Также по теме обработки изображений: автоматическое окрашивание методом тов. Welch. Его работу можно найти по следующей ссылке: http://www.cse.iitd.ernet.in/~pkalra/col783/colorize.pdf. По сути программа перекладывает цвет с одного изображения на другое по специальному статистическому алгоритму. Также должен предупредить, что алгоритм имеет некоторые элементы случайности, поэтому результаты с одними и теми-же входными данными могут быть разными, следовательно, можно несколько раз произвести операцию окрашивания, не меняя входные данные, чтобы добиться наилучшего результата.
+ => Код доступен на странице PABCSoft в GitHub: https://github.com/PABCSoft/ColorShifter. Данная программа уже демонстрировалась на нескольких конференциях и была отмечена жюри.По обработке изображений у меня есть ещё одна Open Source программа - ImageEngraver. Эта программа использует один из фильтров первого свёрточного слоя нейросети VGG16 для наложения на изображение эффекта гравюры.
=> Разработка доступна в GitHub: https://github.com/PABCSoft/ImageEngraver.Есть ещё одно приложение: PABCPlayer. Это простой медиаплеер, написанный для демонстрационных целей.
Код доступен на GitHub: https://github.com/PABCSoft/PABCPlayer.В связи со всякими там образцами как-то вдруг образовался релиз TRAC4 4.27.1 Лежит на GitHub всё там-же. TRAC4 (он же MACAR) в основном и отличался от TRACТ T64 образцами и списками. Кстати, этот вариант был лет 30 назад написан. Новый релиз пришлось делать, так как оказалось что из-за мелкого бага в программе, PascalABC.NET версия выдавала … range check error который таки был отключён всюду кроме ABC, где его и поймали.
Там добавлено три примера: match.trac (вводится match на основе примитива te), def_pets.trac - пример определения образцов с таким match (сама идея примера из Википедии где подобное описано для OCaml). Ну и тест таких образцов в test_pets.trac. То есть, если эти три файла лежат в директории с exe, то после запуска достаточно набрать #(lf,test_pets.trac)’
Реализовал приложение для стилизации изображений под работы известных художников. Это аналог популярных приложений Artisto и Prisma, имеющий одно преимущество: он полностью автономен (работает без подключения к Сети) и работает на операционных системах семейства Windows(xp и выше) независимо от их разрядности. Все исходные коды доступны на GitHub: https://github.com/PABCSoft/ImageStyler.
Оригинал:
Стилизованное изображение:
На данный момент доступно 6 стилей.
Интересно, в среде PABC. NET пока не хватает примеров, что можно сделать, поэтому список готовых проектов был бы весьма кстати, не говоря уже о более человеческом описании хода работы - что? почему? как? и т.д.
Например, как появилась идея? Почему именно PABC ,NET? Почему без поддержки графической карты, ведь даже встроенные модели неплохо поддерживают шейдеры? Что получилось, что нет, что изменилось, а что планируется? и прочее. Хотя для этого больше подходит если не read.me, то блоги.
Удачи)
Идея появилась тогда, когда у меня на планшете закончился интернет, и я не смог воспользоваться аналогичными приложениями, перечисленными мной ранее. Ну а если серьёзно, то более-менее понятной и простой реализации подобного приложения я не нашёл. К тому же для Паскаля высоконагруженные системы - большая редкость. К сожалению.
Потому что этот язык лучше всего подходит для реализации сложных приложений простым (но полным) кодом. Кроме того, это мой любимый язык.
У меня были мысли реализовать использование видеокарты, но после более подробного изучения вопроса выяснилось, что нужна не обычная видеокарта, которая есть у любого компьютера, а специальная, очень мощная и дорогая. От NVIDIA. Помимо того, мне хотелось сделать приложение максимально простым. Ведь именно собственноручная запись всех алгоритмов приложения позволяет понять принцип его работы, и читающим его исходный код программистам тоже. По поводу встроенных моделей не понял. Можете чуть подробнее?
То, что получилось, Вы вполне можете оценить по репозиторию на GitHub. При разработке я не использовал ничего, кроме PascalABC.NET и стандартных библиотек Платформы, поэтому Вам не составит труда откомпилировать и запустить приложение. В настоящий момент я работаю над добавлением новых стилей, оптимизацией приложения и реализацией алгоритма Гатиса, который позволит стилизовать под абсолютно любое изображение. В ближайшее время я начну работать над статьёй для Хабрахабр, в которой попытаюсь максимально подробно расписать процесс разработки приложения.
Всё описание на англ. и русс. на гитхабе.
В положении которое сейчас - надо запустить и оставить на несколько дней симуляцию, чтоб боты чему то научились. Сейчас они делают рандомные ходы. Я у себя буду конечно проводить эту симуляцию, но если у кого то есть сервер - я был бы благодарен за запуск этого процесса на нём.
Сергей, довольно амбициозный, хотя и интересный проект - ещё на ZX Spectrum в Бейсике сам начинал со взвешенных ходов, используя бэктрекинг для отсеивания тупиковых вариантов и замену игрока (бота) для предсказания возможных ходов оппонента (+x для белых = -x для чёрных), пока не упёрся почти в 40КБ долгоиграющей логики, без возможности свопа на диск и не застрял на переработке агрегатора, заменяя одно GOTO/GOSUB на другое.
Хотя как-то попадался неплохой “среднячок” юношеского разряда вроде на BP7, но там была смешанная оценка рисков (расстановки), что злоупотребляла прописанными шаблонами (записи дебютов, миттель- и эндшпилей нескольких гроссмейстеров) с небольшими вариациями, а основной код был в криптованой библиотеке с враппером, а с IDA и BlackIce тогда не разобрался, увы. Особенно печально, что на самом сложном уровне компьютер зря гнался за тяжёлыми фигурами, часто пропуская пешку в ферзя или даже мат, чего не было на среднем…
Когда узнал, что есть 3d шутер “kkrieger” размером 96КБ, даже не так удивлялся как тому, что с 80-х годов есть шахматы (пусть даже с упрощёнными правилами) до килобайта, после чего немного подостыл, а вот в свете нейросетей выглядит познавательно)
Ну я б не назвал это амбициозным, будет что то не так - я быстро кину этот проект. Как и я написал на гитхабе, это чисто ради опыта.
У меня полностью противоположный подход: минимум заранее прописанных правил, чтоб у ИИ было макс гибкости. Я ещё хочу на NEAT нейросеть перейти, для этого добавил заголовок в каждый файл-сохранение нейронной сети, типо версия в 2 байта.
Если говорить про шахматы на тостерах - я слышал кто то то ли в 200, то ли в 500 байт уместил шахматы и глупенького бота к нему)))
FastNeuralColor - приложение для автоматического окрашивания изображений с помощью нейронной сети. Результат окрашивания фотографии моего города, сделанной в 1960-х годах.
Хотел бы поблагодарить Сергея(Sun_Serega) за помощь в чтении весов данной нейросети из JSON, а также Jeffery Zhao(https://github.com/zeruniverse) за, собственно, сам JSON и разработку нейросети на Torch. Код опубликован на странице PABCSoft в GitHub: https://github.com/PABCSoft/FastNeuralColorРазработал небольшое обновление к программе, которое позволило заметно повысить качество окрашивания. Теперь вместо того, что было представлено выше, получаем это:
На этом я останавливаться не собираюсь, сейчас разрабатывается новая версия программы, которая позволит окрашивать абсолютно любые фотографии(текущая версия не предназначена для окрашивания фотографий людей) с помощью лучшей на данный момент архитектуры сети от Ричарда Шенга.
PhotoShop - многофункциональный графический редактор, разработанный и распространяемый фирмой Adobe Systems.
Да-да, это не шутка! Недавно музей компьютерной истории опубликовал исходный код одной из первых версий популярной программы, 1.0.1 версию. Код можно найти тут: http://www.computerhistory.org/atchm/adobe-photoshop-source-code/. Основная его часть написана как раз на Паскале(Турбо, скорее всего), и 15% на ассемблере. Думаю, этот проект вполне можно считать историческим.
PABCNETDownloader.pas
PABCNETDownloader.exe
Это установщик для паскаля.
Основные преимущества над основным:
- У меня он делает всё за 7 сек (скачивание + установка).
- Не надо ничего тыкать. Он может только попросить закрыть IDE, если оно будет мешать подменить какие то .dll-ки, а так он работает полностью самостоятельно
Пока не до конца протестирован, но мне удалось установить с помощью него паскаль, после того как я его снёс, так что, вроде, нормально. Потом сделаю репозиторий для него…
Ну и, чтоб он работал - надо чтоб был установлен на компьютере архиватор 7Z. И если он установлен не в Program Files
- указать в исходниках другой путь.
А откуда такое ограничение?
Ну, можно, конечно, скачивать целый репозиторий паскаля и из него все файлы доставать… Но это будет на много дольше. Я скачиваю стандартный установщик паскаля. А он создан с помощью NSIS. То есть по сути, стандартный установщик - это архив к которому приделали несколько скриптов, которые указывают как куда какие файлы пихать. И вот я этот архив распаковываю (а для этого, конечно, нужен архиватор) и ручками все файлы куда надо сую.
Понятно.