Jump to content
Korean Random

kharlashkin

User
  • Content Count

    829
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by kharlashkin

  1. Дык квартиру требовали.
  2. Мне, например, позиция AMD в продвижении высокопроизводительных вычислений (openCL + APU + HBM) в массы больше нравиться. Все таки инженеры у них лучше, вот маркетологи с программистами по-хуже чем у Intell. В настоящем мире всем правят маркетологи и менеджеры (яблоки как эталон типо уже упоминали выше), Думаю что специальные сопроцессоры для специальных вычислений несколько нелогично, а нишу они свою уже нашли - научные вычисления и т.п. ИМХО за универсальностью будущее в сегменте рабочих станций и высокопроизводительных ПК, чтобы было примерно одинаковое железо для игрушек, научных вычислений, VR и т.п., а прогресс в производительности остановился - думаю в течении 5-10 лет мы это увидим. Как сегмент недорогой компьютерной техники (но самый массовый и денежный) стоит и уже давно стал неинтересен производителям в своей бесперспективности.
  3. Да как бы эти Ксеоны уже давно в продакшене есть для рабочих станций / серверных решений (как и Нвидиа Теслы и Грид). На хабре прошлым летом даже уже не знали чем его занять и просто тесты гоняли. У КУДА потенциал больше - потому как поиграться ещё на них можно или 4k видео отредактировать. Соответственно нуждающийся в высокопроизводительном железе человек лучше купит себе видеокарту (КУДА или ОпенСЛ), а глядя на цену может и несколько, чем сопроцессор, который большую часть времени будет простаивать.
  4. Точно! Только спать ни с кем не охота)))
  5. В этом сообщении буду делиться кодом и прогрессом, чтобы не приходилось листать всю тему. Тестовая платформа - ноут мой рабочий с установленной Ubuntu 16.04. Ставил ещё весной OpenCV на предыдущую 15.10 вроде всё, но вчера не завелось. Пришлось качать, компилировать заново - делал по оф документации, завелось все с "пол-пинка". Проверочный скрипт захвата видео с камеры завелся как нужно, но более расширенный не захотел, который использовал весной (с указанием, необходимого разрешения, fps, формата захвата видео). import cv2 cap = cv2.VideoCapture(1) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080) cap.set(cv2.CAP_PROP_FPS, 30) cap.set(cv2.CAP_PROP_FOURCC, 1196444237.0) width = cap.get(cv2.CAP_PROP_FRAME_WIDTH) heigth = cap.get(cv2.CAP_PROP_FRAME_HEIGHT) fps = cap.get(cv2.CAP_PROP_FPS) print width, heigth, fps while(True): ret, frame = cap.read() frame = cv2.flip(frame,0) cv2.imshow('frame', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
  6. Постараюсь сделать свою web-камеру для on-line трансляций со звуком и максимально-возможным качеством по умеренной цене. Связано мое желание с все большим и большим распространением VR-очков - Google Cardboard и пластиковые аналоги, Valve SteamVR, Oculus Rift, Sony PlayStation VR и многие другие. Тема интересная и "за спрос в нос не бьют", а чего бы и не попробовать. Итак, почти все на сегодня имеющиеся проекты по созданию 360 камер работает с видео. Т.е. берется видеоряд с камер (зеркальные фотоаппараты, GoPro Hero и т.п.) обычно в видео-формате h.264/h.265, закрепленных специальным образом в адаптерах и в ПО (PTGui, Kolor и др.) сшивается и перегоняется в равнопромежуточную проекцию. Все это происходит за большие деньги и на мощном железе. Как пример, вот требования для проработки видео от VideoStitch: Если посмотреть на стандарты видео, в котором снимают та же GoPro, то мы увидим некоторый интересный момент, а именно в данном стандарте нет отдельных кадров для сшивания. Т.е. каждый кадр для того чтобы сшить в панораму - нужно сначала "просчитать" через так называемые опорные кадры, затем сшить с помощью специальных алгоритмов, а потом закодировать обратно в QuadHD (2560×1440) или 4K UltraHD (3840×2160) в первоначальном или подобном первоначальному формате. А если учитывать, что каждая камера снимает 1080p 30fps или 720p 60 fps, а их 6 (или более) штук - нагрузка на процессор/видеокарту видна "невооруженным глазом". На этом этапе мои мысли повернулись в сторону "Да ну нафиг!" и подумалось - а что если видео в формате Motion JPEG? То есть тупо последовательность картинок с нужной скоростью - 30fps 1080p или 60fps 720p, да хоть 360p (720х360) 15 fps. Таким образом вроде получается убрать первый просчет. Далее нужно выполнить сшивание каждого кадра. Для этого сначала нормализуют картинки (убирают дисторсию), строят общую картину по контрольным точкам и прямым, объединяют кадры, мне почему то кажется что сначала в кубическую проекцию, и преобразуют в равнопромежуточную проекцию в хорошем разрешении. Опять возникла мысль как и в первый раз и подумалось - а что если просто пиксели из камер переносить в новую матрицу которая уже будет соответствовать нужному мне кадру? Подобным образом и потупила некая Katherine A.Scott - просто создав новую карту для пикселей. При чем, если я правильно понял, для захвата с камеры разрешением 1920х1080, переработки в нормальную картинку и записи в реальном времени видео с разрешением 800х600 хватило мощности Raspberry Pi. Для более детальной проработки мною была приобретена usb-камера - позволяющая завхватывать1080р 30fps, пр-ва поднебесной 1 шт.. Сразу не решился покупать нужное количество (хотя бы 5 шт.) - вдруг окажется что камера говно или китайцы не договаривают чего-то. Камера оказалась вроде ничего, я не фотограф и никогда не работал на свадьбах, днях рождения в качестве оператора - камера как камера, технические характеристики соответствуют заявленным - чего мне ещё нужно за 40$. Объектив вроде соответствует заявленным 170 градусам по диагонали (и наверное имеет заявленные 135 градусов по горизонтали и 90 по вертикали как и вышеупомянутая GoPro). Погонял тестовые python скрипты с камерой, пока никаких нареканий нет. Буду заказывать ещё 4 камер камеры для построения 360х135 видео из 5 шт. Буду рад любой помощи, советам да и просто доброму слову от участников форума.
  7. Я %APPDATA% не чищу после каждого обновления. XVM снимает после каждого боя оборудование "на склад", но в ангаре продолжает его показывать в слотах и специально выделено другим цветом. Я вообще имею по 2 комплекта. А вот функции устанавливать по-умолчанию в пустые слоты оборудование, да - не хватает в XVM. Пойду в профильный раздел просить ;) Блин, так получается чего... Автотелескоп теперь без защиты и при необходимости сам могу обновить если чего поломается. WG уже и так добавили звук лампочки, круги обнаружения и т.п. Что теперь получается - можно без XVM играть? (Статистика только добавляет нервозности в геймплей - ИМХО)
  8. Ну меня очень напрягала в Auto-Equip Mod необходимость с каждым обновлением лезть к автору на сайт, и перекачивать типо "защищенный клиент". При чем довольно часто клиент не был доступен сразу при выходе обновления а только через пару-тройку дней. Положительный момент от использования XVM - для каждого танка Вы индивидуально выбираете оборудование методом WYSIWYG - без настроечных конфигов и прочего, настройки для техники сохраняются в %APPDATA% и никуда не теряются при обновлении мода. А так да, для новичка - Auto-Equip Mod был открытием ;)
  9. 3 ночи тянул Portal 2 под Ubuntu, в итоге вибрация на Steam Controller так и не заработала. Полегчало на душе, значит под linux пока вибро отдача не запилена Valve,
  10. Дык это, авторога в стандартной поставке XVM есть :) // true - Enable removable equipment auto return (Camouflage net, Stereoscope, Toolbox) // true - Включить автовозврат съемного оборудования (Маскировочная сеть, Стереотруба, Ящик с инструментами) "enableEquipAutoReturn": true, файлик "C:\Games\World_of_Tanks\res_mods\configs\xvm\default\hangar.xc"
  11. О как, так Вы из Донбасса? Да ещё и работаете в WG?
  12. Ну во-первых меня там вряд ли ждут имеется ввиду WG :) Во-вторых машины нет, и не будет пока - это отдельный разговор. В третьих после недавних событий из Восточной Украины по личным делам в Беларусь или Россию "чот я очкую".
  13. Ну у Вас наверное возможностей поболее моих, я может в Минск и не попаду никогда, тем более в офис WG так точно
  14. Обычное человеческое любопытство - задроты адекватные они или нет ;)
  15. Думаю просто такой второй возможности наверное уже не предоставиться потусить мне в компании XVM. А по второму пункту - не могу понять в чем спор. У меня в детстве была "Денди", сейчас у среднего (в будущем и у младшего) есть почти Xbox и Nintendo Wii. И то что он имеет возможность поиграть во что захочет под надзором взрослых, перед теликом - по моему лучше, чем сидеть где-нибудь в углу с планшетом/телефоном.
  16. Контроллеры не продам - у меня дети есть, да и как под пиво и без боулинга на телике ;) Python как и AutoHotkey - разве кому-то помешало расширение кругозора? Дык хорошие годы были-то, знакомств столько интересных и полезных, даже местный форум очень многого стоит. Немного жалею что на WGDC не поехал со SplitSccreen, но там ситуация не от меня зависящая была. Тут скорее апатия на меня накатила по причинам временной остановки процесса творческого. Для продолжения своих проектов железа нет пока (нужно до-заказывать камеры и микрофоны), для допиливания полноценного WoT for Ubuntu информации и полной поддержки Steam Controller вибрации, сидишь у черта на куличках в пустыне, из тырнета только текст работает и грустно на душе стало...
  17. Да все мы "наркоманы", и Вы тоже. Химические реакции в мозгах у всех похожи, и никому ничто человеческое ни чуждо. Так что Велкам :)
  18. Содержательно ;) Может я Вам глаза и не открою, но когда нибудь Вам надоест корячиться за столом и захочется развалиться на диване, и сыграть неважно даже в какую игру. Вы будете удивлены количеством игровых контроллеров с поддержкой вибрации и насколько это интереснее и атмосфернее, чем за столом с клаво-мышей. Даже такая вроде мелочь как Wiimote её поддерживает.
  19. А Вы во что-нибудь играете? В том то и прикол, по моему мнению, что кроме акрадной составляющей после пары лет уже ничего в ней и не привлекает, если имеется WoT конечно ввиду.
  20. ХЗ - может быть, может быть. Периодически ловлю у себя подобное настроение, проходит вот после подобных Вашему ответу. Думаю не лишним будет сказать "Спасибо!".
  21. Подумалось, а нафига я мучаю себе мозг всей этой фигней - людей которые пользуются моими наработками на пальцах двух рук пересчитать можно (а может и одной руки хватит). Получается уже более 2,5 лет страдаю каким-то сумасшествием, денег портатил на всякие девайсы достаточно. Даже в python начал соображать. Нужно оно кому вообще?
  22. Нашел в интернетах, немного другой код, который сделан по аналогии вышеупомянутым: fcntl.ioctl(self.rumble_fd, 0x40304580, self.rumble_effect_array, True) # EVIOCSFF -> _IOC(_IOC_WRITE, 'E', 0x80, sizeof(struct ff_effect)) # NOTE: EVIOCSFF is different from original gitorous code (0x402c4580) # - (_IOC_WRITE | ((sizeof(struct ff_effect) & IOCPARM_MASK) << 16) | (('E') << 8) | (0x80)) # - _IOC_WRITE == 1U or 4U (different linux headers define this differently) # - 'E' in hex: 0x45 # - IOCPARM_MASK = 0x1FFF Вставив данное значение EVIOCSFF в свой скрипт, геймпад (Xbox 360) завибрировал без ошибок под Ubuntu 15.10 x64, при чем даже без пропуска первой вибрации :) Так, а как понять на какой /dev/input/event подключился геймпад (в моем беспроводном случае показывает аж 4, но через python-evdev), чего-то гугль пока не привел никуда. Я завел вибрацию на Ubuntu в танках через Flask, доволен как слон ;) Сейчас буду со Steam Controller проверять :) Все накрылось "медным тазом": Traceback (most recent call last): File "gpService.py", line 207, in <module> gpXInputObject.stop_vibration() File "/home/kharlashkin/Dev/tanks/haptic/wot_ubuntu_flask/gpXInput.py", line 95, in stop_vibration p = f.new_effect(0.0, 0.0, 0.0) File "/home/kharlashkin/Dev/tanks/haptic/wot_ubuntu_flask/gpXInput.py", line 19, in new_effect fcntl.ioctl(self.ff_joy, EVIOCSFF, a, True) IOError: [Errno 38] Function not implemented Самое интересное, что python-evdev распознал его как бы правильно... Python 2.7.10 (default, Oct 14 2015, 16:09:02) [GCC 5.2.1 20151010] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import evdev >>> devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()] >>> for device in devices: ... print(device.fn, device.name, device.phys) ... ('/dev/input/event11', 'Microsoft X-Box 360 pad', '') >>> Попробовал дополнительно fftest: fftest /dev/input/event11 Force feedback test program. HOLD FIRMLY YOUR WHEEL OR JOYSTICK TO PREVENT DAMAGES Device /dev/input/event11 opened Features: * Absolute axes: X, Y, Z, RX, RY, RZ, Hat 0 X, Hat 0 Y, [3F 00 03 00 00 00 00 00 ] * Relative axes: [00 00 ] * Force feedback effects types: Force feedback periodic effects: [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ] * Number of simultaneous effects: 0 Uploading effect #0 (Periodic sinusoidal) ... Error:: Function not implemented Uploading effect #1 (Constant) ... Error: Function not implemented Uploading effect #2 (Spring) ... Error: Function not implemented Uploading effect #3 (Damper) ... Error: Function not implemented Uploading effect #4 (Strong rumble, with heavy motor) ... Error: Function not implemented Uploading effect #5 (Weak rumble, with light motor) ... Error: Function not implemented Enter effect number, -1 to exit И проверил его jstest: $ jstest /dev/input/js0 Driver version is 2.1.0. Joystick (Microsoft X-Box 360 pad) has 8 axes (X, Y, Z, Rx, Ry, Rz, Hat0X, Hat0Y) and 11 buttons (BtnX, BtnY, BtnTL, BtnTR, BtnTR2, BtnSelect, BtnThumbL, BtnThumbR, ?, ?, ?). Testing ... (interrupt to exit) В общем что придется делать - ждать когда допилят до вменяемого состояния драйвера и прочее... Исходный код мода вибрации если кому нужен выложу, у меня были наработки для эмулятора Xbox для Linux, может пока эти вариантом займусь - расстроен я :( Есть проект альтернативного драйвера Steam Controller для Linux, может в ту сторону покопать - ХЗ. Буду завтра пробовать - "утро вечера медренее".
  23. Вот этим методом из Python удалось вызвать только под x86 вибрации и то с некоторыми оговорками. Я в начале статьи упоминал, что с linux дружу достаточно давно, но как то наверное не появлялось своих проектов связанных с IT, вот и использовал её только как готовую площадку для специальных решений. Для десктопа никогда не думал её использовать, такие мысли появились сравнительно недавно.
  24. Итак, со стим контроллером играется оочень даже после появления вибры. Вспомнились мои рысканья относительно прилепить виброотдачу к Ubuntu, если получиться буду уходить на домашней системе под неё :) (@Azbuka, привет тебе, провидец). Накопал код linux_ioctl.py для chromiumos, сегодня поздно а вот завтра попробую совместить с этим. P.S. Есть конечно написать свою библиотеку на C под linux, чтобы под x64 завелась вибрация из python - но без вменяемого манюала вряд ли что-то получиться. Пока хоть бы через Flask завелась...
×
×
  • Create New...