?

Log in

No account? Create an account

Previous Entry | Next Entry

Скриншот системы распознавания анкет на СС'2004Когда мы начали готовить Chaos Constructions'2004 (а это был первый CC, где объединились две команды организаторов - ENLIGHT'a и предыдущих CC), было уже ясно, что при таком количестве конкурсов и предсказуемо большом числе посетителей, надо решать проблему с быстрым подсчетом голосов.

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

Появилась высокотехнологичная идея сделать автоматическое распознавание и подсчёт. Я взял на себя аппаратную часть (вебкамера в корпусе с прозрачной стенкой и лампой), Лёник Теренин (SkyWalker) - программную (он как раз по работе занимался сходными вещами).
Естественно, распознавать произвольные рукописные цифры было нереальным, так что дизайн анкет мы адаптировали под машинную обработку - голосующие должны были ставить галочки в пустые квадратики, а каждая страничка анкеты, соответствующая конкурсу, имела специальную область с двоичным кодом конкурса и метками по краям. Чтобы повысить качество распознавания, пришлось отказаться от размножения анкет на ризографе и печатать их на офсете (это значительно дороже).
Требования к ПО также были довольно жёсткие - анкета могла быть мятой, лежать под углом, вместо галочек могли стоять любые знаки, прочерки, точки и т.д.

Alien вбивает голоса в программу Aamonster'aВсего предусмотреть не удалось. Распознавание работало, но выявились проблемы с неравномерным освещением и сырым софтом. Это всё было бы поправимо (если не в 2004, то в 2005-м), однако выявился смешной ньюанс, который мы не приняли во внимание. А именно - даже при идеальном и мгновенном распознавании обработка такого количества анкет одним устройством происходила намного медленнее, чем ручной подсчёт усилиями 5-10 человек :-)
Когда мы осознали этот факт, aamonster  срочно написал на Delphi программу, с интерфейсом, похожим на анкету, где квадратикам соответствовали чекбоксы. Был объявлен призыв всех, кто мог держать в руках клавиатуру. В результате удалось в очень сжатые сроки всё посчитать.

Решаем проблему со скриптом неправильно считающим голоса. CC'2004С тех пор, вплоть до 2008 года, менялся лишь внешний вид анкет, и программы. Принцип ручного подсчета оказался очень живучим - при отлаженной технологии хватало буквально трёх человек (считать конечно начинали не в авральном порядке после всех конкурсов, а спокойно - по мере сдачи анкет).

Движок, упомянутый в предыдущем посте, был доработан oldayn 'ом для импорта голосов и вывода результатов в соответствии с данными по конкурсным работам и их авторам. Кстати, принцип подсчёта баллов был неочевидным и пару-тройку раз менялся, пока не была выбрана подходящая для наших условий формула.

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

Tags:

Comments

( 2 comments — Leave a comment )
cooler2
Mar. 7th, 2010 09:23 pm (UTC)
Чекбоксы - это ведь, наверно, медленно? Я для ввода оценок писал программу на паскале, работающую в текстовом режиме. Каждая оценка вводилась нажатием одной клавиши (пробел - если пусто или непонятно), все сопровождалось звуковыми сигналами, позволяющими при вводе вслепую замечать ошибки (каждая оценка - свой тон, переход к новому конкурсу - специальный звук). В итоге после небольшой тренировки получалось вводить листы весьма быстро. Я даже сам был удивлен тем, как быстро проходил ввод. Скорости способствовало еще и то, что вотлист 2-го дня был разбит на 2 части, чтобы посчитать первую (более объемную) во время конкурсов второй части (где работ было немного).
cr_it
Mar. 7th, 2010 10:18 pm (UTC)
Мне лично сначала не нравилась идея, чтобы программа была визуальной копией анкеты. Но меня переубедили. Практика показала, что были правы. Удобно было то, что совершенно не надо размышлять, плюс сразу видно - с ошибками ввёл, или без. Естественно это всё не мышкой делалось, а пробелом, табом, курсорами, и т.п.
Пара человек вбивали анкеты в FAR'e (по F4), и у них это получилось точно не быстрее.
Естественно в следующие года, когда от распознавания отказались и в анкетах люди писали цифры - из программы исчезли чекбоксы, но всё равно визуально она повторяла анкету.

Edited at 2010-03-07 10:20 pm (UTC)
( 2 comments — Leave a comment )