С# ZennoPoster + Tesseract.Net SDK

  • Автор темы Автор темы swiniks
  • Дата начала Дата начала

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


  • Всего проголосовало
    130
А он разве обучается? Он только распознает. Это ж не нейросеть
элементарно, но стоит спросить вики посмотреть в каком году был релиз, а потом спросить снова у себя что из себя может представлять библиотека в таком "возврасте", в опуенсорсе, с приличным по кол-ву участников комьюнити..

Блин, по прежнему не понятно, как обучать тессеракт(( Может кто-то продвинулся уже в этом вопросе? Обучить циферкам нужно, то есть вроде как не сложное должно быть обучение, но не понятно, чего делать...
бога ради, у вас что там цифры римского рукописца? с арабскими проблемы вообще какие могут впрцинипе? стоит пересмотреть подготовку изображения для рекогнишена... если сомнения, кидайте циферки заветные, с таймером засеку сколько займет процесс от и до с результатом приближенным к 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..
 
Тема актуальна? пробую код из первого поста - пишет
Компиляция кода Ошибка в действии "CS1061" ""Patagames.Ocr.OcrApi" не содержит определение для "setVarirable". Не удалось найти метод расширения "setVarirable", принимающий первый аргумент типа "Patagames.Ocr.OcrApi" (пропущена директива using или ссылка на сборку?)". [Строка: 3; Cтолбец: 5]

не могу понять что сделал не так...подскажите пожалуйста...
 
setVarirable тут ошибка
setVariable вот корректно
Спасибо, заработало, изучаю, как правильно работать с данным инструментом.
П.С Хочу разгадывать НЕ капчи, а просто тексты с картинок.
 
Спасибо, заработало, изучаю, как правильно работать с данным инструментом.
П.С Хочу разгадывать НЕ капчи, а просто тексты с картинок.
Результатом потом поделитесь. Интересно.
 
Вот код распознования
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
string plainText = api.GetTextFromImage(@"T:\2.jpg");
MessageBox.Show(plainText, "Результат распознавания");
return plainText;
}
return "bad";
А как вырезать по координатам изображение перед распознаванием?
 
/
 
Последнее редактирование:
 
Последнее редактирование:
Windows 10 все работает, подскажите пожалуйста манул как добавить свои слова? Нашел манулы только под linux в них фигурирует combine_tessdata в виндовой версии такого файла не нашел
 
В чем может быть проблема, все сделал по инструкции, но получаю такую ошибку

75342

запускаю на 7 зенке.винда 10ка 64
 
У меня при старте тестового проекта, зависает, можно долго ждать и нет ответа от шаблона.
 
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
Спасибо
 
для оброботки каптчи использую ImageMagick, но оно сильно грузи ЦП, как то можно использовать простые фильтры resize, threshold и blur в самом тессеракте, без ImageMagick ?
 
у тебя работает?
Разобрался? тоже не понимаю с новой версией

Тип Время Сообщение
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");
}
}
 
Разобрался? тоже не понимаю с новой версией

Тип Время Сообщение
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
Подскажите, что он от меня хочет? Где взять это "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");
    
}
 
Последнее редактирование:
Заработало на net40. Ура!
 
Компиляция кода Ошибка в действии "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]
 
Компиляция кода Ошибка в действии "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.
 
всем привет, вопрос такой, а жуёт эта библиотека картинки в строку base64??
 
del
 
Последнее редактирование:
Подскажите, в чем может быть проблема, что распознает совсем не то, что на картинке. Зеннопостер последней версии, win11. Установил по видео инструкции версию net472. Пробовал и net400.

Картинка эта:
0xe14fd-A14842-B7150bb5e492-E2a3-D1692709-ECB23.png


Выдает:
PP PR )
PRRT R SIS e ]

Код такой:
C#:
Развернуть Свернуть Копировать
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
string plainText = api.GetTextFromImage(@"D:\0.png");
return plainText;
}
return "bad";
 

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