Как стать автором
Обновить

Комментарии 70

Мне кажется что вполне можно по полученой после deblur-а фотографии восстановить большую часть лога. Особенно с помощью хабра, люди тут глазастые, раньше уже восстанавливали текст с таких фотографий если ничего не путаю. Тем не менее удачи всем, кто будет пытаться получить более-менее качественное изображение. Я в свое время так и не смог найти нормальную программу для этого дела.
Так не факт, что у меня получилось прогнать SmartDeblur с оптимальными настройками. Я же в графике — ноль без палочки. Я почти уверен, что есть настройки лучше тех, которые нашёл я.
Вот это детектив!
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Это бесполезно: сообщения ведь генерируются исходя из реального железа — там в коде переменные, а не константы. Нам нужны значения переменных, которые плохо видны в логе на фото и не существуют в коде.
НЛО прилетело и опубликовало эту надпись здесь
А как они (создатели утилит) хотели? Чтобы все фотографии были смазаны идеальным образом, чтобы им было легко их восстановить? Фигушки! Пусть доказывают на реальных изображениях, кто из них круче, и восстановит лучше.
Ну, хайвмайнд, не подкачай!
Setting OS disk
Initialize IRQ
Initialize PIC
Initialize system X86 machine
Initialize system timer (IRQ08) ???
Try to initialize APIC
Enable interrupts 2, 13
Disable interrupts in IDE controller
Search floppy drives
Search hard drive and ATAPI drives
Get memory for cache
Search partitions on disk devices
Initilize system directory /sys
APIC not found
Determining amount of memory 0511 (???)
Setting window defaults
Calculating background
Reserving IRQs & ports
CPU frequency is 2392 MHz
Setting mouse
Set handler of interrupts for IDE
Enable interrupts in IDE controller

Attach interrupt & Handler ???
Set IDE IRQ6 return code ???
Channel 1 Disk 0
Disk ???
Channel 1 Disk 1
Channel 2 Disk 0
??? ??? CD-RW/DVD-ROM SN-3248
Channel 2 Disk 1
UMCI controller at 00:E3 with 2 ports initialized
Attach interrupt 11 (handler ???)
Attach interrupt 1 handler 000326C4
IRQI error code 80059068
Attach interrupt 12 handler 008962E4
kernel SVN r3870
1 CPU detected
CPU0
CPU1
CPU2
CPU3
CPU4
IDEContrProgrammingInterface 013A
IDE_Interrupt ???
Primary Bus Master IDE Status Register ???
Secondary Bus Master IDE Status Register ???
Attach Interrupt 10 Handler ???
Set IDE IRQ14 return code ???
Attach interrupt 15 Handler ???
Set IDE IRQ15 return code ???
IDE DMA mode
НЛО прилетело и опубликовало эту надпись здесь
Ну это, наверное, распознавание текста, или что за программа Хайвмайнд такая?
На фото, после «1 CPU detected», написано:
BAR0 ????
BAR1 ????
BAR2 ????
BAR3 ????
BAR4 ????
То, что там BAR0-BAR4, мы и так знаем (это как раз константы). Нам бы значения переменных рядом с ними.
НЛО прилетело и опубликовало эту надпись здесь
K:

Сообщение ядра.
НЛО прилетело и опубликовало эту надпись здесь
Это был лишь пример, чего там быть не может, и что может. Для участия в конкурсе нужен весь второй столбик — не только эти 5 строчек.
Я не хочу денег. :) Просто было пара минут свободного времени. Удачи вам.
Не думал об этом так. Тогда спасибо Вам большое! Действительно, идея с ручной расшифровкой кажется более стоящей, и можеть дать лучшие результаты. Но тогда конкурс придётся аннулировать, ведь невозможно будет подсчитать, кто дал лучший ответ.
Нет, это просто у кого-то слишком много свободного времени. :)
А хайвмайнд — призыв к другим участникам помогать и общими силами решить проблему.

Предлагаю:
BAR0 01F0
BAR1 03F4
BAR2 0F70
BAR3 0374
BAR4 0F90
Это был лишь пример, чего там быть не может, и что может. Для участия в конкурсе нужен весь второй столбик — не только эти 5 строчек.
Я не в конкурсе хотел участвовать, а просто помочь. Мне показалось, что ручная расшифровка имеющихся изображений — более перспективный подход, чем попытки исправить исходное изображение. Поэтому я и заложил начало — выложил, что удалось распознать мне, в надежде, что остальные подхватят порыв и будут исправлять и добавлять. Что, собственно, и начало происходить.
Не думал об этом так. Тогда спасибо Вам большое! Действительно, идея с ручной расшифровкой кажется более стоящей, и можеть дать лучшие результаты. Но тогда конкурс придётся аннулировать, ведь невозможно будет подсчитать, кто дал лучший ответ.
А можете, если это не сложно, выложить скриншот экрана, содержащий константную часть данных?
Это немного проблематично, так как лог выводится сразу как текст (константы) + числа (переменные), и для каждого компьютера он будет разный. У некоторых компьютеров будут определённые строчки, у других — другие. Вот пример чёткой фотографии лога с другого компьютера: board.kolibrios.org/download/file.php?id=4978
Самого главного не видно. В этом и проблема.
Так вы скажите, где именно там главное — так легче будет.
Второй столбец — наименее читаемый — как раз и важен. Особенно то, что после «1 CPU detected»
То, что в левом столбике, у всех компьютеров будет одинаковым (или почти одинаковым), кроме частоты процессора и размера оперативной памяти (а их я уже разглядел — 511MB RAM | 2392 MHz CPU). Из правого столбика нужны все числа (как десятичные, так и шестнадцатиричные) — это и есть переменные. Слова между числами — константы, их мы можем вытащить из кода.

Плюс нужно знать, каких чисел не может быть. Например, «IDEContrProgrammingInterface 013A» не может быть 013A, там либо 018A, либо 0180, либо 0185. Соответственно, в этом случае к фото подходит только 018A.
Еще мой вариант:

Attach interrupt & Handler 80030263
Set IDE IRQ6 return code 80069040



UMCI controller at 00:E3 with 2 ports initialized
Attach interrupt 11 Handler 0020180
Attach interrupt 1 Handler 000326C4
IRQI error code 80059063
Attach interrupt 12 handler 008962E4
kernel SVN r3870



IDE_Interrupt 0180
Primary Bus Master IDE Status Register 000000084
Secondary Bus Master IDE Status Register 000000024
Attach Interrupt 10 Handler 000315E3
Set IDE IRQ14 return code 00069090
Attach interrupt 15 Handler 0009168E
Set IDE IRQ15 return code 00069084
IDE DMA mode
UMCI — не может быть, это скорее всего, UHCI.
IRQI — тоже не может быть, это IRQ1
SmartDeblur 1.27 / out of focus blur / radius 7 / Smooth 81

Что увидел
IDEContrProgrammingInterface 018A
IDE_Interrupt 0100
Primary Bus Master IDE Status Register 00000024 (000000E4 ?)
Secondary Bus Master IDE Status Register 00000024 (000000E4 ?)
Attach Interrupt 10 Handler 800315E8 (800315E3 ?)
Set IDE IRQ14 return code 80059090
Attach interrupt 15 Handler 8003160C (8003168C ?)
Set IDE IRQ15 return code 80059084
узнайте какой шрифт используется и каждую букву шрифта прогоните скользящим окном по фотке, вычисляя корреляционную функцию — распознаете текст. Нераспознанные буквы — при помощи серого вещества в черепной коробке — из контекста. Делов на час в матлабе
Шрифт известно какой — один из 2 шрифтов KolibriOS, там большого выбора нет :-) Только он не TTF и не векторный, а особым образом сделанный — он, по-моему, только в KolibriOS и работает.
и вы бы хоть не jpeg выложили, а в bmp
Я так понимаю, это оригинал изображения. И да, фотоаппараты, как правило, сохраняют в jpeg.
Если посмотреть Properties оригинальной фотографии, то видно, что она сделана на смартфон:
Это не смартфон, а обычный java телефон. У меня такой же :)
Фотки на нем, кстати, можно сделать и получше.
Мне почему-то казалось, что все Samsung GT-xxxx — смартфоны :-)
У меня самого Samsung Galaxy S1: GT-i9000 — вот и напутал.
GT-Sxxxx — все обычные телефоны.
неверное утверждение: Samsung Galaxy ACE GT-S5830 на андроиде например
Я просто про «Samsung GT-Sxxxx». Всякие вариации с «galaxy» и т.п. не рассматривал.

P.S. Да и не об этом речь в посте)
Так рассказ настоящий, а не выдуманный. Пользователь на самом деле выложил JPEG — вот он: board.kolibrios.org/download/file.php?id=5109
Если бы я делал квест, тогда может быть, а так — работаем с тем, что есть на самом деле :-)
Могу ответить на вопрос, почему все программы дают плохое качество восстановления (как автор программы SmartDeblur)
Причин несколько:
1. Низкий динамический диапазон фотографии, полутона в светлой части практически потеряны — а именно из них собирается исходное изображение при деконволюции.
2. Неравномерное искажение — вверху справа смаз, плюс расфокус по всему полю
3. Большой уровень шума.

Доминирующая причина — 1.
Поэтому ничего существенно лучшего получить не удалось:
image
Предварительно сделана гамма коррекция 0.3
Параметры: 8.2 px, Smooth: 90%, Reducing of ringing: 50%
Заявка на победу
Не знаю, не знаю… Часть текста видна лучше, чем на моём фото, но часть — хуже. В любом случае, работа хорошая, но это и понятно — кому, как не автору, уметь пользоваться своей программой :-)

За объяснение причин плохого качества восстановления — большое спасибо!
Мои варианты:

Раз
image

Два
image

Три
image


Потом может еще поиграюсь. Пользовался фотошопом.
Четыре
image

GIMP игрался с Sharpen, Hue-Saturation и, конечно, Invert
А теперь нужно подключить плагин Enchance Image.
Возможно стоит сконцентрироваться только на важном фрагменте:

3 итерации SmartDeblur
image
image
image
Еще меньший фрагмент
image
Как по мне так первый вариант самый читаемый.
Вообще стоит отметить, что при всей увлекательности процесса, разбирать пиксели на смазанных фотках — не лучшее, что можно придумать. Вон в Haiku в прошлом году добавили клевую фичу, теперь можно кернел паники/экраны смерти/вывод ядерного отладчика фотографировать на телефон и отсылать чувакам уже обычный plain text.

Уместить в QR-код можно достаточно информации, если постараться:
The default configuration produces a version 19 QR code with low recovery level and can store 792 bytes of data for example. Given more screen space, larger QR codes can be configured, up to a theoretical maximum size of 177x177 blocks which would be able to store 2953 bytes of data.
А почему бы экран смерти сразу в файл не выводить?
В общем случае, например, потому, что на момент крэша никакая файловая система может не быть доступна: необходимые структуры ядра и физические носители еще не проинициализированы. Видео-вывод же, как правило, инициализируется одним из первых в системе, и можно считать, что он есть всегда (как и vga bios на x86 для псевдографики).
Если бы система дошла до запуска LAUNCHER (то есть все основные подсистемы были проинициализированы), то логи сохранялись бы в файл. В данном случае крэш в момент инициализации дисковой подсистемы — сохранять файл некуда.
Экран смерти в QR — зачётно!
Вообще да, очень интересная идея. Но мои знания ассемблера (стремящиеся к 0 со стороны "-1") не позволят мне это реализовать, а другие разработчики KolibriOS вряд ли возьмутся — хватает дел поважнее.
Пользуйтесь:
Всё равно во втором столбце цифры не читаются, а они как раз самые важные…
Увы. Это все, чего я смог добиться.
НЛО прилетело и опубликовало эту надпись здесь
За абсолютную достоверность не ручаюсь, но это результат анализа других логов:
image
PS: расшифровка ручками, потому, ессно, вне конкурса.
лучший
Зарегистрируйтесь на Хабре, чтобы оставить комментарий