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