Beywer 0 Жалоба Опубликовано October 15, 2012 Здравствуйте. Есть задача: распознавасть положение фигур в течение шахматной партии по фотографиям после каждого хода. Для распознания фигур решил использовать каскды Хаара. Почитав литературу, насколько я понял, есть возможность обучить каскад с использованием createsamples и haartrainig, только вот в C++ я полный ноль. Подскжите пожалуйста как подключить эти утилиты к C++ и поймет ли C++ такой код: createsamples –vec faces.vec –info faces.idx –w 30 –h 40; Haartraining / –data face_classifier_take_3 / –vec faces.vec –w 30 –h 40 / –bg backgrounds.idx / –nstages 20 / –nsplits 1 / [–nonsym] / –minhitrate 0.998 / –maxfalsealarm 0.5 И пользуясь случаем хотел бы спросить что приблизительно будет быстрее работать: натаскть каскад на каждую фигуру или просто на фигуру, а потом уже в зависимости от хода и начального положения считать, что за фигура? Заранее спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 15, 2012 createsamples –vec faces.vec –info faces.idx –w 30 –h 40; Это в командной строке набирается, если есть скомпилированная утилита createsamples. Аналогично haartrainig. Только думаю что плохо здесь будут каскады Хаара работать, хотя попробовать можно (посчитаете только затраты времени 1 каскад может учиться несколько суток) скорее контурный анализ подойдет. ЗЫ: Без знания C (или питона, что может Вам быстрее будет освоить) ничего не выйдет. http://www.compvision.ru/forum/index.php?showtopic=996 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Beywer 0 Жалоба Опубликовано October 15, 2012 createsamples –vec faces.vec –info faces.idx –w 30 –h 40; Это в командной строке набирается, если есть скомпилированная утилита createsamples. Аналогично haartrainig. А как тогда их компилировать ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 15, 2012 Есть уже скомпилированные дистрибутивы (где dll, exe и lib файлы уже есть). Скачайте скомпилированные отсюда: http://opencv.org/downloads.html там все должно быть. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mixa7638 5 Жалоба Опубликовано October 18, 2012 смотря как камера расположена. если сверху, то я бы бил доску на 64 клетки, каждой клетке приписыавл - 0 если пустая , число соответстующее фигуре. Так как сначала расстановка всегда одна и таже, не требуется даже различать одну от другой. потом после некоторого изменения оптического потока снова смотреть, какие клетки пустые. специфика шахмат - можно точно вычислить, какая фигура куда была передвинута. и так все обрабатывать. громоздко, зато понятно) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 18, 2012 Ну рокировка, например. Клетки не меняют при этом статус занято/свободно, тут нужно хоть какое-то распознавание. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах