SuperTracker – это Супер – Sample Robot от CrazyBassonist.
В его основе – робот Tracker от Mathew Nelson’а, доработанный Flemming N. Larsen.
Захватывает цель, приближается к ней, и стреляет.
(далее…)
SuperTracker – это Супер – Sample Robot от CrazyBassonist.
В его основе – робот Tracker от Mathew Nelson’а, доработанный Flemming N. Larsen.
Захватывает цель, приближается к ней, и стреляет.
(далее…)
.Net - версия нанобота DustBunny 3.0, который использует антигравитационный механизм движения.
// DustBunny 3.0
// Автор - Mike (--Miked0801)
// Это нанобот, использующий антигравитационное движение.
// Стреляет по ближайшей цели прямо по направлению обнаруженной цели.
using System;
using Robocode;
using Robocode.Util;
namespace RobocodeBotsDotNet
{
public class DustBunny : AdvancedRobot
{
const double GunFactor = 50;
static double _xForce;
static double _yForce;
static String _lastTarget;
static double _lastDistance;
public override void Run()
{
// это нужно, чтобы было удобнее стрелять по неподвижным целям
IsAdjustGunForRobotTurn = true;
// Сброс показаний дальномера
_lastDistance = Double.PositiveInfinity;
// Запустить бесконечную команду для радара.
// Такой код позволяет сохранить много места (спасибо Dr. Loco!)
TurnRadarRightRadians(Double.PositiveInfinity);
}
public override void OnScannedRobot(ScannedRobotEvent e)
{
// Вычисление абсолютного местоположения для процедур
// прицеливания и антигравитационного движения,
// и определение расстояний
double absoluteBearing = e.BearingRadians + HeadingRadians;
double distance = e.Distance;
// Используем очень простую систему для имитации антигравитационных сил
_xForce = _xForce * 0.9 - Math.Sin(absoluteBearing) / distance;
_yForce = _yForce * 0.9 - Math.Cos(absoluteBearing) / distance;
// Вычисление угла поворота
// по приближении к стенам робота сильнее притягивает к центру
SetTurnRightRadians(Utils.NormalRelativeAngle(
Math.Atan2(_xForce + 1 / X - 1 / (BattleFieldWidth - X),
_yForce + 1 / Y - 1 / (BattleFieldHeight - Y))
- HeadingRadians));
// Едем вперед
SetAhead(Double.PositiveInfinity);
// Перед резким поворотом сбрасываем скорость
MaxVelocity = 420 / TurnRemaining;
// Если пушка не нагрета и правильно нацелена,
// то производим выстрел
if (GunHeat == 0)
{
// Вычислить мощность выстрела в зависимости от текущего
// количества энергии и расстояния до цели
// после чего сбросить значение дистанции
SetFireBullet(Energy * GunFactor / distance);
_lastDistance = Double.PositiveInfinity;
}
// Захватить радаром ближайшие боты
if (_lastDistance > distance)
{
_lastDistance = distance;
_lastTarget = e.Name;
}
// а стрелять по самому близкому боту
if (_lastTarget == e.Name)
{
// Сопровождать радаром цель
if (GunHeat < 1)
{
// Повернуть радар угол, доступный в пределах хода
SetTurnRadarLeft(RadarTurnRemaining);
}
// Прицелиться по текущему местоположению цели
SetTurnGunRightRadians(
Utils.NormalRelativeAngle(absoluteBearing - GunHeadingRadians));
}
}
}
}
Замечательная статья 1996 года о фрактальном сжатии изображений. Приводятся сравнения с алгоритмами JPEG. Ссылка на статью здесь.
Мучает вопрос.
Когда же наконец появятся полезные автономные роботы?
Дистанционно управляемые роботы уже проникли во многие виды человеческой деятельности. Но остается открытым вопрос, когда же наконец появятся действительно полезные автономные роботы, и чего им для этого не хватает?
При переводе технической документации на русский язык часто возникает потребность переключаться с русского на английский, и наоборот. Причем специальные термины должны быть выделены, например, жирным шрифтом. Для этого нужно нажимать Ctrl+Shift, потом Ctrl+B. А потом еще раз эту же комбинацию, чтобы вернуться на русский язык.
Постоянно щелкать эти комбинации не очень удобно, и начинает раздражать, если сбиться с ритма. Помочь в решении этой проблемы могут утилитки, позволяющие перехватывать ввод и вводить другие ранее запомненные команды. Однако из всего многообразия, с которым я поработал, только одна программа решила мою проблему. Она называется Clavier+, и ее можно скачать по этой ссылке: http://utilfr42.free.fr/util/Clavier.php.
В Clavier+ я создал комбинацию клавиш Ctrl+ALt+B, которая вызывает нужную мне последовательность Ctrl+Shift, Ctrl+B.
У Clavier+ есть еще одно замечательное свойство: можно указать, для каких приложений будет работать запомненая кобинация клавиш.
Распознавание визуальных объектов – сложная задача. Текущая технология компьютерного зрения хорошо справляется с распознаванием небольшого количества объектов, но перестает справляться в случае большого числа объектов, особенно если они принадлежат различным классам. Много работы сфокусировано на решение этих проблем, чтобы увеличить эффективность систем распознавания объектов. Недавняя работа из INRIA посвящена изучению семантических иерархий, закодированных в WordNet, чтобы улучшить существующие алгоритмы распознавания образов.
WordNet это большая семантическая сеть моделирования знаний психолингвистики человека на основе английского языка (English language modeling human psycholinguistic knowledge), группирующая синонимы в синсеты (synset – множество, состоящее из синонимов) и записывающая различия между ними. Проще говоря, WordNet кодирует большое число отношений между объектами, как, например факт, что автомобиль и мотоцикл – средство передвижения с колесами, поэтому их присутствие на изображении подразумевает наличие колес. Такой подход используют Marcin Marszalek и Cordelia Schmid в их работе 2007 года CVPR (CVPR – Computer Vision and Pattern Recognition – Компьютерное зрение и распознавание паттернов) «Семантические иерархии для распознавания визуальных объектов».
Два исследователя показывают, как априорное знание о классах объектов и их отношениях, закодированное в WordNet, можно использовать для улучшения распознавания визуальных объектов, используя вспомогательные векторные машины (Support Vector Machines, SVM). Идея состоит в том, что у системы распознавания спрашивают: «На изображении есть машина?». Система делает запрос в WordNet об априорных знаниях, относящихся к понятию «машина». Семантическая сеть, полученная в результате, может содержать дополнительные знания о машинах, как, например, о том, что на изображении следует одно или несколько колес. Алгоритм распознавания объектов может точнее ответить на поставленный выше вопрос, если будет использовать специальный детектор машин и колес. Эксперименты показали небольшое улучшение существующих алгоритмов зрения. Тем не менее, предстоит еще много работы, чтобы достичь уровня распознавания, как у человека.
Подробнее – на постере CVPR здесь (pdf), или в тексте статьи здесь (pdf).
Адрес новости здесь.

Так выглядит устройство VisGuide изнутри. Видеосигнал передается по кабелям в легкий переносной микрокомпьютер. (Разработчик: Decisions in Motion Project (www.decisionsinmotion.org)).
Роботизированная система зрения, повторяющая ключевые функции человеческого мозга, обещает позволить роботам маневрировать быстро и безопасно в произвольном окружении, а также окажется полезной для людей с нарушениями зрения.
В современные видеокамеры встраивают DSP-процессоры, которые позволяют в режиме реального времени производить обработку изображения. Такой скорости невозможно достичь при подключении камеры к компьютеру и выполнении алгоритмов обработки изображения в нем.
Примерами видеокамер-систем машинного зрения, которые представляют собой цельное устройство, являются камеры фирм Lumenera, Matrox, Blackfin и другие.
Про DSP-процессоры подробнее написано здесь.
На сайте хабрахабр нашел неплохую статью про зрение. Основная цель статьи – помочь вебдизайнерам понять, на что смотрит человек, когда попадает на сайт, и использовать это в своих корыстных целях. Получился неплохой обзор системы зрения. Статья состоит из 6 частей.
Computer Vision is Digg proof thanks to caching by WP Super Cache