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

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

Как вы получаете картинку из родной расберевской камеры и преобразуете ее в Mat из opencv?
Камера подхватывается OpenCV как обычная. Соответственно ни чего придумывать не пришлось:

VideoCapture cap(0);
if(!cap.isOpened())
{
        cout << "Camera Error" << endl;
    return;
}
Mat frame;
cap >> frame;
интересно. Полгода назад пробовал так же, ничего не получалось. Правда я использовал Java API, но разницы быть не должно.
Возможно от версии зависит? Я не стал использовать третью, взял 2.4.12
Прикрутить бы это пистолет вот к этой игре
.

MOORHUHN…

image
.
Интересно если координаты лазера передавать по интерфейсу PS2 как положение указателя мышки, возможно такое сделать?

Есть большая проблема — пятно лазера почти не видно на мониторе или телевизоре.
А если перед камерой поставить фильтр на длину волны лазера? Конечно, в результате появляются еще проблемы, но все решаемо.
Тогда уж фильтры с круговой поляризацию для камеры и лазера :)
А как же oled, плазма и пр? Там то поляризатора нет.
Проектор и экран?
Вот это наиболее реалистично. Пятно лазера будет хорошо видно.
Хотел ответить, что автор ниже уже отписался по поводу экрана, но… ))) Тогда спрошу иное: Не заметил в статье упоминания разрешения, при котором обеспечивается такая скорость захвата. Насколько в данный момент загружен процессор при обработке 80 fps? Как на Raspberry Pi2 обстоит дело с аппаратным ускорением OpenCV? Помнится, CUDA на Nexus 2012 делала своё дело, хотя это ничуть не спасало ситуацию и выше 20 fps я там ни на одном из сэмплов от NVIDIA не увидел. Сам пока жду отправки и приезда ко мне широкоугольной (G) камеры. Придётся в её случай ещё и геометрию править прежде чем отдавать картинку на дальнейший анализ.
Камера снимает 320х240, при этом на 100% загружается одно ядро. Можно распаралелить обработку на все четыре ядра, но такой необходимости не возникло. В текущем режиме тир работает не выключаясь — маленького радиатора хватает что бы держать температуру на уровне 50'C.
Этот нексус работает на Tegra?
Да, речь о планшете Nexus 7 2012. Там Tegra. Особо не экспериментировал, но для себя сделал выводы, что про OpenCV в рилтайм на андроиде можно забыть. Вот думу думаю как детектировать скважность и частоту мигания светодиода определенного цвета, беря в расчёт, что такой диод в кадре только один, но само изображение — далеко не белый лист бумаги. При этом бы ещё и обойтись без OpenCV, чтобы не тащить это наследие за собой.
Для устройств типа "мышь" передаётся не абсолютное положение указателя, а dX и dY. Но можно попробовать вариант USB-HID устройства с абсолютным позиционированием. USB не такое сложное каким может показаться.
OpenCV компилировали сами или нашли где то уже готовое?
да, я так же собирал. Какая у вас версия OpenCV?
2.4.12, не рискнул связываться с третьей.
А зачем лазер?
Не проще поставить в пистолет камеру с объективом на десятки миллиметров и в момент "выстрела" захватывать кадр и смотреть, что оказалось по центру изображения захваченного камерой? Причем камере в принципе все равно, рисованное изображение захватывать или картинку с монитора.

На мой взгляд нормальную отдачу получится реализовать только используя усилия нажатия на спусковой крючок. В процессе нажатия пружина с грузом взводится, а достигая момента стрельбы груз освобождается и ударяя в стопор инициирует выстрел. При стандартном для обычного пистолета усилии 1-2 кг. можно взводить существенный по весу груз.
Так работают профессиональные тиры. Но в моем случае это неоправданное усложнение конструкции.
Ну а отдача для "отвлечься от работы в офисе" оказалась не нужна.
А в чем усложнение? Вы же все равно используете камеру?
В вашем случае обрабатывается картинка с лазерной точкой, но думаю тот же алгоритм прекрасно обработает картинку с камеры пистолета с искусственно нарисованной где надо точкой.
Проблему вижу только в габаритах камеры. От телефона камеры маленькие, но как прикрутить к Raspberry с неродным объективом, даже не представляю.
Усложнение в том, что на пистолет нужно повесить камеру и Raspberry, плюс батарею для питания. Иначе придется пожертвовать мобильностью. К тому же с десяти метров погрешность обычной камеры будет огромна.
Это да, пистолет будет на проводе.
Никогда не использовали камеры 22мм. И больше?
С объективом 100-200 мм. можно будет и на сто метров стрелять.
И как все это будет выглядеть на пистолете? :) Да и шанс повредить или сбить центровку очень высок.
Фокусное расстояние фиксировано, соответственно будет работать под какую-то оптимальную дистанцию. То что работает на 100 метров не будет работать с 10-ти. Добавить новый ствол для стрельбы тоже проблематично. У лазера таких проблем нет.
В общем считаю, что лазер куда практичнее и удобнее.
Снайперку собирайте ;)
А можно пример такого профессионального тира?
Просто я сам 6 лет проработал в конторе делающей профессиональные тиры…
И огнестрелы делали, и пневматику и мягую и жесткую, лазер делали… Об использовании камеры в пистолете даже речи никогда не было…
Это вообще не моя область. Я программист. Поэтому интересуюсь не с точки зрения: вот мы так не делали, значит вы не правы. А именно с точки зрения: посмотреть на примеры и попробовать разобраться, а почему наши то так не делали...
Странно. Я всегда думал что у них ИК лазер.
Он у них называется "оптический сенсор". В аксессуарах для него есть диафрагма, для стрельбы в солнечную погоду. Не думаю что лазеру это может понадобится. Хотя конечно могу ошибаться.

Сразу гуглятся такие http://www.0kopeek.ru/Shpionskie-gadzhety#Mikrokamery
но наверное не подойдут. Как их прикручивать к стороннему оборудования даже не знаю.
Размер достаточно мал, но и с объективом придется колхозить.

У вас диапазон работы примерно 10 метров. Если настроить фокус на 10 метров, то приемлемо будет работать в диапазоне 8-12 метров.
Ну это уже если понадобится сделать профессиональное решение. А моего для офиса хватает с избытком и усложнять смысла пока нет.
Лазерный тир хорош именно для развлекательной стрельбы.
Может быть, у автора появится интерес сделать третью версию, и возможно,
эти несколько ссылок пригодятся впоследствии.

Проект «HomeLess bullet free shooting».
Мишени на экранах, конструктивы оружия. Исходники на гитхабе.

Проект «shootoff». Примерно то же самое. Исходники на гитхабе.

Проект «Shooting-Range».
Проект заброшен, второй версии так и не появилось. О начале проекта можно
прочитать тут (с 6-ой страницы и далее). Исходников нет.
Саму прогу брать здесь. Там же есть видео работы.
Установка, опыт использования: здесь.

Несколько попыток создать рабочий лазерный тир: здесь.
Прошу прощения. Видимо, я не могу вставлять ссылки. Т.ч. тот же текст, но со ссылками.
Проект "HomeLess bullet free shooting"
http://homeless-eng.webnode.com/
Мишени на экранах, конструктивы оружия. Исходники на гитхабе.

Проект "shootoff"
http://shootoffapp.com/
Примерно то же самое. Исходники на гитхабе.

Проект "Shooting-Range".
Проект заброшен, второй версии так и не появилось. О начале проекта можно прочитать
тут (с 6-ой страницы и далее):
http://forum.guns.ru/forummessage/16/518822-6.html
Исходников нет. Саму прогу брать здесь:
http://www.soft-collection.com/#SoftCollection%20Shooting-Range
Там же есть видео работы.
Установка, настройка:
http://lasers.org.ru/forum/threads/%D0%9B%D0%B0%D0%B7%D0%B5%D1%80%D0%BD%D1%8B%D0%B9-%D1%82%D0%B8%D1%80.712/page-4#post-112341

Несколько попыток создать рабочий лазерный тир:
http://lasers.org.ru/forum/threads/%D0%9B%D0%B0%D0%B7%D0%B5%D1%80%D0%BD%D1%8B%D0%B9-%D1%82%D0%B8%D1%80.712/
Оптимальным вариантом развития сейчас вижу замену экрана TV на проектор. Тогда действительно можно будет без проблем стрелять в экран.
Проектор работает без проблем.
Для использования ТВ, на его экран можно повесить полупрозрачную матовую пленку. Лазерную точку будет видно. Яркость и контрастность ТВ-картинки еще надо задавить.
По поводу лазерного импульса. По схеме DIMOSUS-а лазер "пыхает" от конденсатора, и сильную яркость он дает на очень маленькое время. Поэтому вам нужно поднимать частоту кадров на камере.
В "профессиональных" (коммерческих) лазерных стволах время задается микросемами жестко от 50 до 100мс. Это позволяет засекать точку камерой даже на 15кадрах/сек.
С длинным импульсом появляется проблема шлейфов в место точек, когда ствол ведет в руках.
Поэтому системы с ИК-излучателями на мишени, и камерой на оружии,
отслеживают непрерывный трек точки попадания. Выстрел — это обрыв
трека, дальнейшие перемещения игнорируются.
ИК-лазер на пистолеты не ставят, так как вес, фокусировка, питание, прочее.

Может быть, для снижения частоты кадров камеры подойдет следующая идея:
Выстрел — это пачка коротких импульсов, общей длительностью 50...100мс.
Начальные несколько импульсов "остаются" в первом кадре, остальные — в
следующих кадрах. Начальные импульсы расцениваются как выстрел.
Так как тир не для спорта, а развлекательный, то точности достаточно для
фиксации результата.
Чтобы не было паразитных (кольцевых) засветок вокруг точки, перед лазером
поставить поляризационный фильтр, вырезанный из старых очков с полароидом.
Яркость точки ощутимо уменьшится, поэтому мощность лазера придется увеличить.
Для этой идеи как раз кстати предыдущая реализация автора: пистолет с ардуиной
нано + ключевой транзистор для лазера.

Конденсаторная схема очень быстро съедает батарейку. Это не имеет значения,
если в оружии установлен аккумулятор. Но делают излучатели и на 3-х
вольтовых литиевых батареях, батарейки надо покупать.
Для батарейного питания ставят простейшую схему на 3-х вольтовом
КМОП-таймере NE555. Нет дребезга контактов, кнопку можно ставить на замыкание/размыкание, длительность импульса регулируется.
Не понимаю — зачем снижать частоту камеры, если аппаратная часть реализации без проблем обеспечивает 80 кадров в секунду? С такой частотой у меня без сбоев регистрируются импульсы порядка 5мс.
Дребезг контактов иногда случается, но совершенно не мешает — так как после детектирования выстрела идет 500мс игнорирования импульсов.
А круги засветки легко отфильтровываются программно, так как значительно тусклее основного пятна.
Вы разработчик, вы делаете так, как вам удобнее. Я ничего не советую, лишь
предполагаю, что могло бы пригодиться в далеком будущем. Вдруг у вас
появится желание снова вернуться к обычной веб-камере. Или, к примеру,
заменить малинку телефоном с камерой:)
Как бы переделать эту штуку для нескольких мишеней? Тренировка быстрого переноса сектора стрельбы и тд.
Нашёл вот такую поделку, автор не отвечает на почту, может кто видел подобные системы
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории