Программист Сталина
Шрифт:
Внутри каждого знакоместа - снова аккуратная, совсем бледная сетка другим, остроотточенным карандашом. Вариант внутри 8*8. Больше - значит сложнее будет народу запомнить правила отрисовки символов и мне сложнее запрограммировать их уверенное распознавание.
Слабо улыбаюсь, оценивая себя - «программистская сущность так и прёт», ничего не поделаешь.
Прикидывая запасы места на отступы по краям на листе, сделал разметку 8*8 на символ, оставил расстояние между знакоместами в их половину, т.е. 12*12 на условный квадрат вокруг центра знакоместа.
Под символы больше, чем 8*8 отводить
В итоге счёл пригодными два варианта:
32 * 48 (это если отмечать привычной тонкой линией, хотя и в соответствии с правилами создания символов) и 16*24 знакомест на «рабочем поле» листа в случае, если линии потолще. Соответственно, один лист данных, подаваемых на «куснуть» числодробилкам - 1536 и 384 символов. Совсем не густо для передачи данных по сравнению со скоростью гигабитных сетевух, и не то чтобы терпимо, но пока… сойдёт.
Разработать стандарт символов. И всё. «Простейший» анализатор в проге будет не то, чтобы плёвым делом, но около того. Там главное - опытным путём подобрать, какой процент темных пикселов с реального снимка в том условном «пространстве» (1*1,2*2,3*3), которые отводится на «пикселы знакоместа», достаточен, чтобы анализатор счёл его закрашенным. Делаю логичный вывод - после загрузки реального снимка в обычный графический объект, надо копировать его содержимое с промежуточным преобразованием в отдельный двухмерный массив 480*640 типа byte со значениями пикселов снимка в диапазоне от 0 до 255.
Какое-то значение будет границей, по которой отделяются закрашено/не закрашено. Всё. Дальше будет работать функция анализатора содержимого знакомест. На выходе - распознанный (или нет:-)) по результатам сравнения с шаблонами символ. Пока будут заполнять от руки, но позже возможен вариант…
Закрашиваю множество символов на листах. Примерно также, как выглядели символы на экране «спекки». 0…9, А…Я, A…Z, пока хватит. Главное потестировать принцип. Трачу почти два часа на подготовку шаблонов для сравнения в программе. Каждому символу соответствует уникальное, неповторимое написание, но анализатор должен верно понимать и точно идентифицировать определённый процент «корявостей».
Что-то сие поминает мне почтовые индексы. Отдалённо. Тут дело настоящим распознаванием текста попахивает.
Снова делаю снимки веб-камерой, кое-как примотанной на краю стола с помощью принесённой Поташником чёрной тканевой изоленты. Лист - примерно в 25 сантиметрах ниже, на плоском сиденье стула.
Изучаю самый достойный экземпляр из получившихся. Выношу резюме - получше, чем в первый раз, но всё равно - не ахти, перекашивает. Нужен нормально фиксирующий веб-камеру штатив. Меня «толкает под руку» догадка - фотоувеличитель!
Сержант, тот, что Михаил, вникший в идею, несёт. Ага, одноимённый с их фотоаппаратом, как узнаю - ФЭД также какой-то там. Разбираю, снимаю объектив с фотоувеличителя, ставлю веб-камеру. Фиксирую её тем же широкоизвестным в СССР/пост-СССР вышеупомянутым способом.
Результат лучше. Значительно лучше. Примерно такое же устройство мне предки, уверен, обеспечат. С жестким по размеру лотком под A4, плавным ходом настройки (если собьётся) и возможностью
Выдаю вслух:
– Сейчас буду писать программу, которая будет переводить все эти кадры на компьютере. Смысл основной - вводить стандартизировано данные в компьютер. Намного медленнее, пожалуй, в миллион раз, чем в будущем, но должно быть на пару порядков быстрее, чем сделает здесь даже обученная машинистка или я сам, долбя по «клаве».
Добавляю специально для кэпа:
– И для секретности подобные листы, вдруг попавшие в руки… «кому не надо», ничего не объяснят. Так сказать, для «механизированной обработки», а как именно… подобная терминология, верная по сути, но не разъясняющая секретов из будущего как некоему условному злоумышленнику, так и заполняющим их, ничего не скажет.
Первый прототип программы-распознавалки к вечеру был готов. Просто читал графический файл, содержащий снимок, по пути снижал ему цветность, и дальше жевал его по принципу «сунуть в двухмерный массив для анализа и сравнения с шаблонами». Всё, как заранее продумал. Добавил ползунок -регулятор границы «чист/закрашен» для тестовых проверок.
В соответствии с визуально видимой на экране помещённой на изображение сеткой по «знакоместам», а фактически - работая по массиву с сконвертированными данными, поэкспериментировал с алгоритмом главной функции проги, начиная добиваться точной работы механизма распознавания и сравнения со стандартным «образцами»…
Первый маленький текст считался с картинки и прилично распознан «анализатором», проходит сохранение в текстовой файл с распознанным содержимым листа.
Подвожу итог - «быдлокодер»:-) оглядел попавшее с ним железо, поставил сам себе задачу, почесал репу и настругал «быдлокод». Который, тем не менее вскоре заработал, и даже, после неких шаманских танцев, почти правильно.
В голове появились мысли о дальнейшей доработке - символы знаков препинаний, скобочек, продумать насчет математических символов и т.д. Откладываю их на завтра и далее. Всё остальное - гонять, улучшать и тестировать. Приближение к идеалу, главное - идея работает. До блеска, удобства и отлаженности за несколько дней доведу. Чтобы в дальнейшем добавлять что-то по мере возникающих потребностей. Подозреваю - после консультаций с профильными специалистами. Если Сталин обеспечит обещанное общение с теми, кто больше всего заинтересован в вершинах недостижимой ещё лет 40-50(?) вычислительной мощи.
«Быдлокодер», он же постановщик, тестировщик и прочая, решил начерно свою первую, не считая выхода на вождя и доказательств про себя любимого, задачу в 1940. Высокомудрые сказали бы - «фе», написали 5 диссертаций о невозможности что-то делать с тем, что попало со мной в 1940… а «быдлокодер» взял и сделал. Шучу.
Комментирую, показывая текстовой файл для вкуривания окружающим служивым:
– Теперь для компьютера это не просто картинка, про которую наш глаза и мозг понимает, что на ней - текст, а комп - нет. Сейчас это именно та форма, с которой сможет работать компьютер…