Боты и читы. Программируемый автокликер.


Визуальное создание ботов в Кибор

 Чат      Помощь      Поиск      Пользователи

 Страниц (5): [1] 2 3 4 5 »   

> Описание: Обучаемая функция распознавания текста. Инструмент обучения распознавания.
Kibor
Отправлено: 19 Октября, 2017 - 14:22:31
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 3890
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 137
Карма 24




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

Скачать базу обучения. Обучалась в блокноте на стандартных шрифтах. Около 10.
Видео работы функции и процесс обучения.


На этом видео показано использование оптического распознавания текста при создание бота для игры в визуальном редакторе.


Бот для серфинга. Разгадывает простую капчу, работает в фоновом режиме
Создание бота для Music Wars в реальном времени. Сканирование и распознавание данных с экрана

readtext - сканирует указанную область экрана, окна или двухмерного массива int куда загружено изображение, чистит изображение от шума, распознает текст и записывает его в string или char
loadsymbolbase - загружает обученную базу. Можно загружать несколько баз.
symbolxpos - возвращает позицию символа по X от начала зоны поиска. Левый угол
symbolypos - возвращает позицию символа по Y от начала зоны поиска. Нижний угол
symbolwidth - возвращает ширину символа
symbolheight - возвращает высоту символа
symbolcorrect - возвращает оценку корректности распознания символа. максимальная 1
symboltype - возвращает тип. 0 цифра, 1 русс, 2 англ, 3 знак препинания и т.д.

Парамтры:
readtext (RU, #ch[0][0], 4, 1, -1, 35, 35, -1, -1, 0, 50, 11, 150, 641, 483, -1);
1 - какие типы символов будем искать
NUM цифры
RU русские
EN английские
MARK знаки
Можно комбинировать
NUM | RU | EN | MARK
 Цитата:
readtext (NUM | RU | EN | MARK, #ch[0][0], 4, 1, -1, 35, 35, -1, -1, 0, 50, 11, 150, 641, 483, -1);


2 - куда будем сохранять текст

Можно в string
 Цитата:
string text;
readtext (RU, #text, 4, 1, -1, 35, 35, -1, -1, 0, 50, 11, 150, 641, 483, -1);


В этом случае многострочный текст будет разделен переводом строки.
 Цитата:
string text[5];
readtext (RU, #text[0], 4, 1, -1, 35, 35, -1, -1, 0, 50, 11, 150, 641, 483, -1);

В этом случае в text[0] будет первая строка, в text[1] вторая и т.д.

Можно в char
 Цитата:
char c;
readtext (RU, #c, 4, 1, -1, 35, 35, -1, -1, 0, 50, 11, 150, 641, 483, -1);

В этом случае в c будет один первый символ.

 Цитата:
char c[200];
readtext (RU, #c[0], 4, 1, -1, 35, 35, -1, -1, 0, 50, 11, 150, 641, 483, -1);

В этом случае в c будет весь текст. Строки будут разделены 0

 Цитата:
char c[5][200];
readtext (RU, #c[0][0], 4, 1, -1, 35, 35, -1, -1, 0, 50, 11, 150, 641, 483, -1);

В этом случае текст
кибор
бот

будет расположен так:
 Цитата:
c[0][0]='к', c[0][1]='и', c[0][2]='б', c[0][3]='о', c[0][4]='р', c[0][5]=0;
c[1][0]='б', c[1][1]='о', c[1][2]='т', c[1][3]=0;

Конец строки заполнится 0, поэтому надо выделять память больше чем текст.


3 - параметр фильтра текст / фон. узнать его можно в инструменте настройки и обучения.
4 - параметр сглаживания
5 - контрасность
6 - длина удаляемых горизонтальных линий
7 - длина удаляемых вертикальных линий
8 - указатель (если надо) на одномерный массив int в котором находятся цвета текста
9 - указатель (если надо) на одномерный массив int в котором находятся цвета фона
10 - допустимая разбежность этих цветов
 Цитата:
int col_text[2];
col_text[0]=236455;
col_text[1]=23445;
int col_fon[1];
col_fon[0]=654767567;
readtext (RU | MARK, #ch[0][0], 4, 1, -1, 35, 35, #col_text[0], #col_fon[0], 25, 50, 11, 150, 641, 483, -1);

Если не надо ставим -1

11 - величина обученности. Этот параметр указывает насколько мы доверяем программе делать решения по разделению символо, слиянию и

т.д. Указывать не более чем показывают оценки в инструменте настроек и обучения.

12 13 14 15 - зона сканирования. Функция требовательная. Не надо указывать большую зону с большим количеством символов. Только то чтонеобходимо распознать.

16 - указатель на окно, экран либо двухмерный массив int в котором находится изображение.

 Цитата:
readtext (RU | MARK, #ch[0][0], 4, 1, -1, 35, 35, #col_text[0], #col_fon[0], 25, 50, 11, 150, 641, 483, -1);//весь экран

 Цитата:
win w=window ("рф онлайн.jpg - Paint", "MSPaintApp", -1);
readtext (RU | MARK, #ch[0][0], 4, 1, -1, 35, 35, #col_text[0], #col_fon[0], 25, 50, 11, 150, 641, 483, w);//окно


 Цитата:
int Image_0[351][82];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
readtext (RU | MARK, #ch[0][0], 4, 1, -1, 35, 35, #col_text[0], #col_fon[0], 25, 50, 11, 150, 641, 483, #Image_0[0][0]);//изображение



Функция возвращает количество символов включая установленные пробелы и переносы строк.
-1 если зона сканирования вылазит за пределы изображения
-2 если символов больше чем предоставленно выделенной памяти для приема.
==============================


loadsymbolbase
Параметр
 Цитата:
loadsymbolbase ("C:\simvol\База.sib");


symbolxpos
Параметы:
 Цитата:
symbolxpos(5);

Вернет позицию по X 5 распознанного символа. Распознается построчно с левого верхнего угла.

 Цитата:
symbolxpos(2, 7);

Вернет позицию по X 8 символа в 3 строке.


 Цитата:
symbolcorrect(0);

Вернет оценку корректности распознания первого символа от 1 и ниже.
Чем выше значение тем мы можем более доверять что символ распознан точно.

С остальными функциями аналогично

Пример сканирования экрана и вывода текстовой информации в виде строки


CODE:
string text;
loadsymbolbase ("C:\simvol\TEST\База.sib");//Загружаем базу данных

loop()
{
readtext(RU | NUM | MARK, #text, 2, 1, -1, -1, -1, -1, -1, 0, -1, 77, 162, 248, 192, -1);
textout(0, 50, 50, text+" ", 0);
sleep(20);
}




Пример сканирования части экрана и поиска на нем нужных слов с указанием их позиций.
CODE:
char ch[20][100];
string t;
int n, u, u1, k, n1, x, y;

loadsymbolbase ("C:\simvol\TEST\База.sib");//Загружаем базу данных

sleep(500);
for (n=0; n<20; n++)ch[n][0]=0;
//Сканируем и распознаем текст. Записываем его в двухмерный массив char посточно
readtext(RU, #ch[0][0], 4, 1, -1, 35, 35, -1, -1, 0, 50, 11, 150, 641, 483, -1);
n1=0;


//Ищем в этом массиве слова КИБОР
for (n=0; n<20; n++)
{
t="";
k=size(#ch[n][0]);
for (u=0; u<k; u++)
{
if (ch[n][u]=='к')
{
x=symbolxpos(n, u)+11;
y=symbolypos(n, u)+153;
for (u1=u; u1<k; u1++)
{
if (ch[n][u1]!=' ')
{
t=t+ch[n][u1];
if (t=="кибор")
{
textout(n1, x, y, t, 0);
// mousemove(symbolxpos(n, u1)+11-10, symbolypos(n, u1)+150-2);
n1++;
//pause(1000);
t="";
u=u1;
goto d;
}
}
}
}
d:;
}
}

loop()sleep(100);;


Работу этих скриптов можно увидеть на видео.




Для получения кода настроенной функции readtext можно нажать на кнопку
ПОЛУЧИТЬ КОД READTEXT

Генерируется полный код настроенной функции readtext, loadsymbolbase, переменных и т.д.
Координаты зоны сканирования вставляются экранные и совпадают с реальными только при получение снимка в режиме ЭКРАН. Поэтому при работе в оконном режиме их надо указать самому, так же как и указатель на окно.

-----
Визуальный редактор кода Кибор. Создание ботов без знания программирования.

Обучаемая функция распознавания текста.
-----
 
 Top
pashahous
Отправлено: 19 Октября, 2017 - 15:44:51
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 21
Дата рег-ции: Февр. 2016  
Репутация: 0
Карма 1




Супер, спасибо вам за старания.
 
 Top
007wan
Отправлено: 21 Октября, 2017 - 15:56:50
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 391
Дата рег-ции: Март 2017  
Репутация: -1
Карма -7




Kibor , Ошибка в видео: время записи: 12:49, там буква "Ё", он не видит две точки сверху, а значит посчитает букву, как букву "Е" .
(Добавление)
А не всё) просто дальше не смотрел)
(Добавление)
А почему вы не можете прикрепить уже полностью обученную БД со всеми буквами, символами, а так же их видами итд.?
 
 Top
Kibor
Отправлено: 21 Октября, 2017 - 16:20:07
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 3890
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 137
Карма 24




В начале темы есть ссылка на базу которую я демонстрировал.
Это инструмент, каждый сам себе может обучить по потребностям.

-----
Визуальный редактор кода Кибор. Создание ботов без знания программирования.

Обучаемая функция распознавания текста.
-----
 
 Top
007wan
Отправлено: 21 Октября, 2017 - 16:22:48
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 391
Дата рег-ции: Март 2017  
Репутация: -1
Карма -7




Kibor , Ой) не заметил)
(Добавление)
007wan , А он может интерпретировать найденные буквы так, как они нарисованы, т.е если большая буква, то выведет большую, а то всегда с маленькой и все буквы. было бы прекрасно добавить функцию, которая считает букву прописной или строчной и будет выводить так, как они нарисованы. Конечно и за это вам большая благодарность.
 
 Top
Kibor
Отправлено: 21 Октября, 2017 - 16:44:13
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 3890
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 137
Карма 24




вы сначала попробуйте обучить.
Тогда увидите что от программы это не зависит. Если обучите на большую что это большая - будет большая. если обучите маленькую - маленькая. Если поставите знак вопроса на Ж , будет не ж а знак вопроса.

Но зачем делить на заглавные и строчные? Что бы потом программа путала "П" с "п"? и усложнять себе жизнь при анализе текста?
Это не FineReader что б красиво писать. Это для того что бы можно было понять что написано и делать выводы..

-----
Визуальный редактор кода Кибор. Создание ботов без знания программирования.

Обучаемая функция распознавания текста.
-----
 
 Top
007wan
Отправлено: 21 Октября, 2017 - 16:57:28
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 391
Дата рег-ции: Март 2017  
Репутация: -1
Карма -7




 Kibor пишет:
вы сначала попробуйте обучить.
Тогда увидите что от программы это не зависит. Если обучите на большую что это большая - будет большая. если обучите маленькую - маленькая. Если поставите знак вопроса на Ж , будет не ж а знак вопроса.

Но зачем делить на заглавные и строчные? Что бы потом программа путала "П" с "п"? и усложнять себе жизнь при анализе текста?
Это не FineReader что б красиво писать. Это для того что бы можно было понять что написано и делать выводы..

А ну понятно) ну попробую)
 
 Top
anton2017
Отправлено: 21 Октября, 2017 - 20:43:08
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 39
Дата рег-ции: Май 2017  
Репутация: 0
Карма 0




Владимир, дайте обнову со снифером)(оч облегчит ботоводство) уж очень жду)! Закатив глазки
 
 Top
007wan
Отправлено: 22 Октября, 2017 - 16:55:38
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 391
Дата рег-ции: Март 2017  
Репутация: -1
Карма -7




 anton2017 пишет:
Владимир, дайте обнову со снифером)(оч облегчит ботоводство) уж очень жду)! ::rolleyes24.gif::

что такое снифер?
 
 Top
konctantin777
Отправлено: 22 Октября, 2017 - 17:24:15
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 72
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 0
Карма 0




 anton2017 пишет:
Владимир, дайте обнову со снифером)(оч облегчит ботоводство) уж очень жду)! Закатив глазки

Для этой программы бывает ???
 
 Top
Страниц (5): [1] 2 3 4 5 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by ExBB FM 1.0 Final