С# ZennoPoster + Tesseract.Net SDK

Полезная ли для вас информация ?


  • Всего проголосовало
    125

Hartwell

Client
Регистрация
25.09.2014
Сообщения
194
Благодарностей
118
Баллы
43
А он разве обучается? Он только распознает. Это ж не нейросеть
элементарно, но стоит спросить вики посмотреть в каком году был релиз, а потом спросить снова у себя что из себя может представлять библиотека в таком "возврасте", в опуенсорсе, с приличным по кол-ву участников комьюнити..

Блин, по прежнему не понятно, как обучать тессеракт(( Может кто-то продвинулся уже в этом вопросе? Обучить циферкам нужно, то есть вроде как не сложное должно быть обучение, но не понятно, чего делать...
бога ради, у вас что там цифры римского рукописца? с арабскими проблемы вообще какие могут впрцинипе? стоит пересмотреть подготовку изображения для рекогнишена... если сомнения, кидайте циферки заветные, с таймером засеку сколько займет процесс от и до с результатом приближенным к 90% корректности, ах и откужда такие цифры понятия не имею.. обработка 1 пикчи одним потоком, с 5-6 интерациями в подготовке к рекогнишену да еще и смешнный тип буквы и латиница ну простой максимум 0.1 сек, или жуе 100мс , ну чтобы наверняка 1/10 секунды. в 1 поток...
Никто и не ждёт, милейший. Что можно, делаю сам. Где не получается - пишу. Это раз. Второе - использование даже самого быстрого решения - икс зла - мне не подходит, так как ему на разгадывание нужно секунд пять, а тесеракт в течении секунды всё делает. А у шаблона всего 15 секунд на разгадывание двух картинок и принятия решения.
15 сек, 5 скинем на всяие вызовы запуски, по 5 на пикчу, это примерно по 50 вариантов на 1 и 50 на вторую... темболее если циферки методом вариаций вообще вполне реально. ну с убогой подготовкой хотябы в 10% верных, шансы раз 5 верно попасть грубо говоря.

Но рекогнишен не для тех случаев когда нужен результат без ошибочный, при условии что у попытки есть своя "цена". Если попытки не проблема, можно не заморачиваться над максимальных % корректности, инкаче натягивать 90-99% корректность. Именно циферки без искажения в одноцветном представлении - самое простое где максимум что нужно, подрезать если они лишние, установить межбуквенный интервал, задать прмиерное соотношение высоты символов относительно масштаба всего слова. 30-60 сек, и 99% гарантирована. Ну в разговоре 100%, без ошибочное отгадывание. имхо, основываясь на реальных выполнены задач с применением тессеракт либы.

з.ы. за 10 часов вообще скармливал 21млн каптч, из которых 14млн были корректны. И то время больше уходило на http. Процессор задействовать на 100 не вышло, но на капчи имхо избыточен современный многоядерный cpu..
 

Home_KreKer

Client
Регистрация
05.12.2016
Сообщения
160
Благодарностей
37
Баллы
28
Тема актуальна? пробую код из первого поста - пишет
Компиляция кода Ошибка в действии "CS1061" ""Patagames.Ocr.OcrApi" не содержит определение для "setVarirable". Не удалось найти метод расширения "setVarirable", принимающий первый аргумент типа "Patagames.Ocr.OcrApi" (пропущена директива using или ссылка на сборку?)". [Строка: 3; Cтолбец: 5]

не могу понять что сделал не так...подскажите пожалуйста...
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
setVarirable тут ошибка
setVariable вот корректно
 
  • Спасибо
Реакции: Home_KreKer

Home_KreKer

Client
Регистрация
05.12.2016
Сообщения
160
Благодарностей
37
Баллы
28
setVarirable тут ошибка
setVariable вот корректно
Спасибо, заработало, изучаю, как правильно работать с данным инструментом.
П.С Хочу разгадывать НЕ капчи, а просто тексты с картинок.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Спасибо, заработало, изучаю, как правильно работать с данным инструментом.
П.С Хочу разгадывать НЕ капчи, а просто тексты с картинок.
Результатом потом поделитесь. Интересно.
 

Gooldbee

Client
Регистрация
16.05.2019
Сообщения
224
Благодарностей
25
Баллы
28
Вот код распознования
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
string plainText = api.GetTextFromImage(@"T:\2.jpg");
MessageBox.Show(plainText, "Результат распознавания");
return plainText;
}
return "bad";
А как вырезать по координатам изображение перед распознаванием?
 

deskuznetsov

Client
Регистрация
29.08.2019
Сообщения
531
Благодарностей
365
Баллы
63
/
 
Последнее редактирование:

swiniks

Client
Регистрация
19.02.2015
Сообщения
244
Благодарностей
172
Баллы
43
 
Последнее редактирование:

BPOH

Client
Регистрация
11.04.2019
Сообщения
129
Благодарностей
28
Баллы
28
Windows 10 все работает, подскажите пожалуйста манул как добавить свои слова? Нашел манулы только под linux в них фигурирует combine_tessdata в виндовой версии такого файла не нашел
 

PussyM

Client
Регистрация
08.04.2019
Сообщения
66
Благодарностей
21
Баллы
8
В чем может быть проблема, все сделал по инструкции, но получаю такую ошибку

75342

запускаю на 7 зенке.винда 10ка 64
 

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43

PussyM

Client
Регистрация
08.04.2019
Сообщения
66
Благодарностей
21
Баллы
8

sergboss

Client
Регистрация
19.09.2016
Сообщения
52
Благодарностей
3
Баллы
8
У меня при старте тестового проекта, зависает, можно долго ждать и нет ответа от шаблона.
 

sergboss

Client
Регистрация
19.09.2016
Сообщения
52
Благодарностей
3
Баллы
8
C#:
using (var api = OcrApi.Create())
{
api.Init(Languages.English); // язык распознавания
string plainText = api.GetTextFromImage(@"C:\quote.jpg"); // путь к картинке
return plainText; // возвращаем ответ переменой екшена
}
return "bad";
Подскажите как вставить ссылку на картинку

www.site.ru/quote.jpg
Спасибо
 

ArmMonster

Client
Регистрация
10.08.2018
Сообщения
70
Благодарностей
10
Баллы
8
для оброботки каптчи использую ImageMagick, но оно сильно грузи ЦП, как то можно использовать простые фильтры resize, threshold и blur в самом тессеракте, без ImageMagick ?
 

Gooldbee

Client
Регистрация
16.05.2019
Сообщения
224
Благодарностей
25
Баллы
28
у тебя работает?
Разобрался? тоже не понимаю с новой версией

Тип Время Сообщение
12:12:44 Компиляция кода Ошибка в действии "CS0106" "The modifier 'public' is not valid for this item". [Строка: 1; Cтолбец: 1]
Всё сделал вроде по инструкции папка tessdata в Progs . Оба Dll добавил и подключил что не так?(

public void ExtractTextFromImage()
{
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
string plainText = api.GetTextFromImage("c:\test_image.png");
}
}
 

PussyM

Client
Регистрация
08.04.2019
Сообщения
66
Благодарностей
21
Баллы
8
Разобрался? тоже не понимаю с новой версией

Тип Время Сообщение
12:12:44 Компиляция кода Ошибка в действии "CS0106" "The modifier 'public' is not valid for this item". [Строка: 1; Cтолбец: 1]
Всё сделал вроде по инструкции папка tessdata в Progs . Оба Dll добавил и подключил что не так?(

public void ExtractTextFromImage()
{
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
string plainText = api.GetTextFromImage("c:\test_image.png");
}
}
На сколько помню, я использовал для парсинга номеров avito. Задачу решил, но не помню этим методом или нет.
 
  • Спасибо
Реакции: Gooldbee

Nekro

Client
Регистрация
01.08.2020
Сообщения
232
Благодарностей
24
Баллы
18
Подскажите, что он от меня хочет? Где взять это "System.Drawing.Common"? Делал всё по инструкции. Правда не знаю какой именно
net нужен. Их там много. Поставил из 5.0

86527


Вот код распознования
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
string plainText = api.GetTextFromImage(@"T:\2.jpg");
MessageBox.Show(plainText, "Результат распознавания");
return plainText;
}
return "bad";
А как вырезать по координатам изображение перед распознаванием?
Так

C#:
int x1 = 35;
int x2 = 55;
int y1 = 70;
int y2 = 90;
int width = x2 - x1 + 1;
int height = y2 - y1 + 1;

using (var result = new Bitmap(width, height))
{
    using (var bmpTemp = new Bitmap(@"D:\1.png"))
    {
        using (var img = new Bitmap(bmpTemp))
        {
            for (int i = x1; i <= x2; i++)
                for (int j = y1; j <= y2; j++)
                result.SetPixel(i - x1, j - y1, img.GetPixel(i, j));
        }
    }
    result.Save(@"D:\1q.png");
    
}
 
Последнее редактирование:

Nekro

Client
Регистрация
01.08.2020
Сообщения
232
Благодарностей
24
Баллы
18
Заработало на net40. Ура!
 

Ikigai

Client
Регистрация
13.12.2016
Сообщения
276
Благодарностей
27
Баллы
28
Компиляция кода Ошибка в действии "CS0246" "Ошибка в директивах using. The type or namespace name 'Patagames' could not be found (are you missing a using directive or an assembly reference?)". [Строка: 1; Cтолбец: 7]
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 820
Благодарностей
2 030
Баллы
113
Компиляция кода Ошибка в действии "CS0246" "Ошибка в директивах using. The type or namespace name 'Patagames' could not be found (are you missing a using directive or an assembly reference?)". [Строка: 1; Cтолбец: 7]
Надо прописать using и добавить dll через ссылки из GAC, а так же может влияет версия dll.
 

malysh

Client
Регистрация
27.07.2017
Сообщения
420
Благодарностей
55
Баллы
28
всем привет, вопрос такой, а жуёт эта библиотека картинки в строку base64??
 

Roman*

Client
Регистрация
25.09.2013
Сообщения
1 657
Благодарностей
656
Баллы
113
del
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)