Возможно вы искали: 'GTR: FIA GT Racing Game'

May 15 2025 18:51:38
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Борьба со спамом в картинках при помощи OCR (spam ocr filter image postfix freebsd samba)

Борьба со спамом в картинках при помощи OCR (spam ocr filter image postfix freebsd samba)

Ключевые слова: spam, ocr, filter, image, postfix, freebsd, samba, (найти похожие документы)

From: Enfogar <enfogar@gala.net.>
Newsgroups: email
Date: Mon, 4 May 2007 14:31:37 +0000 (UTC)
Subject: Борьба со спамом в картинках при помощи OCR

Предисловие
-----------

Рассмотрев на досуге статистику своего сервера я осознал, что основная
масса обычного спама осталась за бортом, но письма, содержащие рекламу в
картинках проходят.

Выбрав немного свободного времени, решил заняться этим вопросом плотнее.

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

Ориентировочная моя суточная нагрузка выглядит так:

940 received
1476 delivered
1398 rejected (48%) - без image spam


Источники размышлений и информации

1. Большое спасибо Oles Hnatkevych, don_oles at able.com.ua за
http://able.com.ua/~gnut/fighting-spam.html
Основная конфигурация построена именно по такой схеме за исключением TLS/SSL/SASL.

2. К этому всему подключен Spamassassin
http://spamassassin.apache.org/

3. С плагином FuzzyOCR
http://fuzzyocr.own-hero.net/

4. И поправкой к нему
http://fuzzyocr.own-hero.net/ticket/201

5. SAMBA в ActiveDirectory
http://turbogaz.kharkov-ua.com/unix/www/squid.php

6. Microsoft Office Document Imaging
http://msdn2.microsoft.com/en-us/library/aa167607(office.11).aspx


Как это работает:

Общая схема построена на FreeBSD с postfix+etc хорошо описана в
able.com.ua/~gnut/fighting-spam.html , единственно к ней
добавляется Spamassassin, задача которого - пометить письма с картинками
непотребного содержания.

Подключается spamassassin к postfix обычным smtp proxy (демон spampd)
как и clamav. Единственно у меня получилось его подключить только перед
clamav и dkfilter, а хотелось последним.

Spamassassin использует плагин FuzzyOCR (который в свою очередь
использует gocr или ocrad) в качестве распознавателя.

Т.к. FuzzyOCR (с gocr) нацелен на англоязычное население, да и качество
распознавания посредственное, пришлось думать над дальнейшей обработкой.
FuzzyOCR готовит .pnm файл и передает его в gocr, который отдает обратно текст.
Вот вместо gocr мы и будем цеплять Microsoft Office Document Imaging (MODI)
Думал, про ABBY http://www.abbyy.ru/sdk/?param=60343 , но стоимость
Developer лицензии моментально уничтожило всякое желание использовать
FineReader.

Perl Скрипт (вместо gocr) полученный .pnm файл конвертирует в tif и
кладет на Win (через самбу)

Заходит telnet'ом на Win и запускает там VisualBasic приложение,
которое через API MODI распознает tif , а результат складывает в .txt
файл.

Perl Скрипт отдает содержимое полученного .txt файла обратно в FuzzyOCR.


Раскроем ключевые моменты

SAMBA

На рабочей станции делаем ресурс (для отладки можнос правами Все:Change + на NTFS
тоже самое), дальше - для пользователя, прописанного в /etc/nsmb.conf

В файле /etc/nsmb.conf прописываем

[WKSTNAME]
addr=10.0.0.10
[WKSTNAME:USERNAME]
password=mypassword


Содаем /mnt/incoming с правами для демона spamd (у меня uid:spamd)

Подключаем

mount_smbfs // USERNAME@WKSTNAME/INCOMING /mnt/incoming/


Для автомаунта можно прописать в /etc/fstab

//USERNAME@WKSTNAME/INCOMING /mnt/incoming/ smbfs rw,auto,noexec 0 0


FuzzyOCR

1. По умолчанию не понимает цифр и большие (или маленькие) буквы в
FuzzyOCR.words и соответственно не работает нормально.
Для этого воспользуемся предложением fuzzyocr.own-hero.net/ticket/201 и закомментируем строки
в FuzzyOcr.pm под номерами 1137 и 1144.

2. В конфигурационном файле FuzzyOCR.cf меняем focr_bin_gocr на наш скрипт:

focr_bin_gocr /usr/local/scripts/modi


Проверяем

focr_scansets $gocr -i $pfile


Остальные параметры - на свое усмотрение.


Perl скрипт: /usr/local/scripts/modi


#!/usr/bin/perl
use strict;
use warnings;

use Net::Telnet ();
use Getopt::Std;
use File::Basename;
my $hostname="WKSTNAME"; # имя Win рабочей станции
my $username="domain\username"; # Имя пользователя Win
my $password="userpassword";
my $RMT_dir="/mnt/incoming/";
my $drive="Z:"; #Имя локального Win диска с tif файлами

#Имя локальной папки Win с tif файлами
my $Files="Z:\!SPAM_imaged\PRJ\console\Console OCR\Console OCR\INCOMING\";
my $OCR_cmd=""Z:\!SPAM_imaged\PRJ\console\Console OCR\Console OCR\bin\Release\Console OCR.exe""; # Путь к VB программе использующей MODI
my $pnmimage="";
my $tifimage="";
my @lines="";
my $textfile="";
my $secs=120;
my $systring="";
our($opt_i);
getopt('i:');
if ($opt_i eq "") { exit };
$pnmimage=$opt_i; # берем имя pnm файла
$tifimage=basename($pnmimage) . ".tif";
# Преобразуем pnm в tif
$systring="pnmtotiff -packbits ".$opt_i." > ".$RMT_dir.$tifimage." 2>/dev/null";
system($systring); # Для меня - загадка,
system($systring); # Необходимо выполнить pnmtotiff 2 раза для того, что бы MODI понял tiff, возможно из-за Кеша самбы или Win
my $image=$tifimage;

# Коннектимся телнетом на винду и логинимя
my $t = new Net::Telnet ();
$t ->open(Host => $hostname, Timeout => $secs);
$t->waitfor('/login:/');
$t->print($username);
$t->waitfor('/password:/');
$t->print($password);
$t->waitfor ('/system32>/');

# Переходим в папку с файлами
$t->print($drive);
$t->waitfor("/$drive/");
$t->print("cd $Files");
$t->waitfor("/>/");
my $cmdstring=$OCR_cmd." ".$image;

# Запускаем VB программу, параметр - имя tif файла
$t->print("$OCR_cmd $image");
$t->waitfor(Match => "/OCR of $tifimage COMPLETE in seconds/",Timeout => $secs);

# Дождавшись завершения - выводим содержимое txt файла в STDOUT
$textfile=$RMT_dir.$tifimage.".txt";
system("cat $textfile");

# Удаляем созданные файлы
system ("rm $textfile");
system ("rm /mnt/incoming/$tifimage");




Программа на VB (Console OCR.exe)

Воспользовался MS Visual Basic 2005 Express Edition для создания "Console application"

Необходимо добавить reference на COM библиотеку MODI
(%ProgramFiles%Common FilesMicrosoft SharedMODI11.0MDIVWCTL.DLL)

Подходит от MS Office 2003 и, возможно, дальше (В Office XP у MODI
отсутствовало API). Подробное описание в
msdn2.microsoft.com/en-us/library/aa167607(office.11).aspx.

Текст:


Module Module1
Dim MiDOC As MODI.Document = Nothing
Dim MiLayout As MODI.Layout = Nothing
Dim strLayoutInfo As String = ""
Dim Myerr As Integer = 0
Dim CMD_Args As String = ""
Dim TIFF_File As String = ""
Dim INCOMING As String = "Z:!SPAM_imagedPRJconsoleConsole OCRConsole OCRINCOMING" 'Must end with
Dim OCR_File As String = ""
'CodePage получаемого txt файл
Dim OUT_File_ENC As String = "windows-1251" ' koi8-r koi8-u windows-1251

Sub Main()

If (My.Application.CommandLineArgs.Count > 0) Then
TIFF_File = My.Application.CommandLineArgs(0)

Console.Write(My.Application.CommandLineArgs(0))
OCR_File = INCOMING + TIFF_File
Console.Write(OCR_File)
If (My.Computer.FileSystem.FileExists(OCR_File) = True) Then
MiDOC = New MODI.Document
' Load an existing TIFF file.
MiDOC.Create(OCR_File)
' Perform OCR на русском.
MiDOC.OCR(MODI.MiLANGUAGES.miLANG_RUSSIAN)
MiLayout = MiDOC.Images(0).Layout
Console.Write(MiLayout.Text) ' Можно опустить
TXT_File = OCR_File + ".txt"
My.Computer.FileSystem.WriteAllText(TXT_File, MiLayout.Text, False, System.Text.Encoding.GetEncoding(OUT_File_ENC))
' Perform OCR на английском, т.к. попадаются слова типа VIAGRA, CIALIS и т.д.
MiDOC.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, True, True)
MiLayout = MiDOC.Images(0).Layout
My.Computer.FileSystem.WriteAllText(TXT_File, MiLayout.Text, True, System.Text.Encoding.GetEncoding(OUT_File_ENC))
Console.Write(MiLayout.Text) ' Можно опустить
MiLayout = Nothing
MiDOC = Nothing
End If
End If

Dim errorWriter As IO.TextWriter = Console.Error
errorWriter.WriteLine("OCR of " + TIFF_File + " COMPLETE in seconds.")

End Sub

End Module




Заключение

Задача выполнена подручными средствами и без особого контроля над
происходящим в Perlе и VB, но даже если что-то в них не срабатывает -
почта проходит, но не помечается как спам.

В дальнейшем хочется перевести с телнета - на сокеты, вполне возможно
произвести распределение нагрузки по рабочим станциям - пусть каждый
распознает свой спам :).
769 Прочтений •  [Борьба со спамом в картинках при помощи OCR (spam ocr filter image postfix freebsd samba)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Борьба со спамом в картинках при по... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка