Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 809

/ вопрос открыт /

Добрый день! Ребята, мне просто очень нужна ваша помощь, любой совет! Ситуация такая: нужно написать программу, отслеживающую координаты дротиков на мешении дартса. Идей было несколько, но все они уперлись в техническую сторону дела. Один из вариантов это исползование 2-3х вэб камер. Но мне кажется это не самый рациональный способ, да и работать с ними я не очень умею. Буду рад любому совету!

Scayn Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Scayn (статус: Посетитель)
Вопрос отправлен: 31 июля 2007, 11:56
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Scayn!
Скажу чесно, задача не тривиальна. И так просто не решается. Пока я вижу такое решение. Камера снимает и сравнивает с предыдушим кадром. Если кадры отличаются, значит появился новый дротик. (или кто то рукой снимает :)).
Дальше, камера должна быть закреплена жестко. и тогда на картинке можно будет определить области, которые будут отвечать балам.
Теперь, получив две картики и сравнив их, мы узнаём разницу. понятно, что если разница слишком большая, то это не дротик и кадр пропускаем.(это может быть рука). Для дротика можно найти необходимую разницу.
Дальше находим начало дротика. Если камеры две, то сопоставив две картинки-разницы, мы сразу получим точку попадания. В противном случае, прийдётся учитывая геометрию дротика, определить где его начало.
Теперь осталось сопоставить точку попадания с балами. Для этого учитывая, что картинка жёстко закрепленна, то можно и ручками пририсовать. Но можно подумать о алгоритме поиска самой доски для дартса на картинке.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 31 июля 2007, 14:16
Оценка за ответ: 4

Ответ #2. Отвечает эксперт: min@y™

Один из вариантов это исползование 2-3х вэб камер. Но мне кажется это не самый рациональный способ, да и работать с ними я не очень умею. Буду рад любому совету!

Использование камер - это, конечно, дёшево и сердито, однако написание программы будет подобно написанию системы по распознаванию номеров проезжающих автомобилей. Вариант №2: сконструировать сенсорную мишень, которая будет подключаться к компу через любой интерфейс (RS-232, COM, LPT, USB etc) и взаимодействовать с программой, выдавая массив координат (x, y) всех торчащих в ней дротиков. Программа, принимая координаты, вычисляет, в каких секторах и умножениях находится каждый из дротиков и вычитает из счёта игрока сумму очков.

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 1 августа 2007, 08:25
Оценка за ответ: 4


Мини-форум вопроса

Всего сообщений: 8; последнее сообщение — 2 августа 2007, 12:24; участников в обсуждении: 4.
Градов Ю.М.

Градов Ю.М. (статус: 8-ой класс), 31 июля 2007, 14:05 [#1]:

Думаю, что нужно сделать псевдосенсорное поле для дартса и подключить через геймпорт к компьютеру, но нужно будет написать и дополнительную программу по обработке данных с мишени. Такие <a href=http://sportgood.ru/index.php?cPath=13>устройства</a> уже есть, можно найти на них документацию.
Scayn

Scayn (статус: Посетитель), 1 августа 2007, 09:24 [#2]:

Уважаемый Вадим К, этот способ я рассматривал со всех сторон, но учитавя спицифику игры в дартс, выяснилось что для точной оценки необходимо 3 и более камер, что гораздо усложняет програмную часть.
Уважаемые min@y™ и Градов Ю.М. мой проект будет использоваться в профессиональном дартсе, где используются специальные мишени и напичкивать их датчиками или использовать электронные дартсы из Малайзии не допускается. И всеже спасибо за ответ.
Единственный выход это использование внешних датчиков, пытаюсь найти альтернативу вэб камерам.
min@y™

min@y™ (статус: Доктор наук), 1 августа 2007, 10:28 [#3]:

> мой проект будет использоваться в профессиональном дартсе, где используются специальные мишени и напичкивать их датчиками или использовать электронные дартсы из Малайзии не допускается

Эта программа, имхо, будет посложнее тулзы для сличения отпечатков пальцев, ибо здесь 3D. Может быть существуют профессиональные сенсорные мишени? Скорей всего так и есть, потому что они сокращают трудоёмкость написания программы на пару порядков.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 1 августа 2007, 14:56 [#4]:

to Scayn:
По моим оценкам, двух камер будет более, чем достаточно. Главное, что бы угол между камерами и полем был немаленький, где то в районе градусов 60. При извесной геометрии дротика и одной можно обойтись. Но тогда желательно цветной и с большим разрешением.

В целом, проект достаточно серёзный продукт получается. тут так просто не посоветуеш. В целом проект попахивает нехилой денежкой.

Вот если бы фотографию дротика увидеть...


Тут ещё одна идея пришла. Если камеры разметстить так, что бы они смотрели паралельно плоскости поля. Одна сверху, другая слева. Тогда упрощяется многое.

Заменить другими датчиками, если поле само модифицировать нельзя - я даже не представляю себе это. Хотя можно сделать сканирование ультразкуком, но на механику больше потратите
Галочка "подтверждения прочтения" - вселенское зло.
Scayn

Scayn (статус: Посетитель), 2 августа 2007, 07:59 [#5]:

Была идея сканирования инфрокрасным лучем, но тут необходимо чтобы дротик всегда плотно входил в мишень, иначе сильно страдает точность измерения.

Сдесь ссылка на небольшую фотографию:
http://static.kolesa.ru/uploads/2006_05/103_weekend_darts_05b.jpg

Еще проблема в том, что дротик не всегда перпендикулярен мишени. Самым лучшим решением было бы определение расстояния от двух датчиков до дротика. Но я пока не представляю как это сделать и какие датчики использовать.

По поводу мишени: мишень представляет из себя металлический каркас, набитый специальным наполнителем. Сзади деревянная фанера. Не предсталяю как туда можно набить датчиков. Но чем то задним чувствую, что должен быть простой выход!
Scayn

Scayn (статус: Посетитель), 2 августа 2007, 10:41 [#6]:

Похоже я нашел наиболее подходящее решение - три камеры расположить вдоль плоскости мишени. Такая просьба: киньте пожалусто ссылки, если есть, по работе с вэб камерой, способах получения изображения с них т.д. Буду очень-очень благодарен!
Вадим К

Вадим К (статус: Академик), 2 августа 2007, 11:22 [#7]:

Я тут поразмышлял, и пришёл к выводу, что изменять дротики и поле нельзя ни в коем случае. Даже если будет доказано, что физического влияния нет, сами играющие не поверят. Вполне, им будет "психически" мешать.

Я повторюсь, я не представляю, для чего нужна третья камера. мне бы и двух хватило.

Для работы с вебкамерой есть более-менее стандартизированные интерфейсы. Если она устанавливается в системе как устройство ввода, тогда можно использовать стандартные функции, для делфи есть в библиотеке JEDI даже готовый компонент. Называется JvAVICapture. Писать видео он точно умеет. Скрины делать вроде тоже (с этим я уже не эксперементировал)
Галочка "подтверждения прочтения" - вселенское зло.
Scayn

Scayn (статус: Посетитель), 2 августа 2007, 12:24 [#8]:

Большое спосибо!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:33
Выполнено за 0.03 сек.