【调研】特殊网络图像的敏感词检测,图像文本检测提取

来源:互联网 发布:网络批发服装 编辑:程序博客网 时间:2024/05/16 15:59

一 调研·敏感图像能做点什么

1  特殊网络文本图像:

扭曲? 倾斜?验证码形式? 

躲避OCR。

related work: 验证码类型?

特殊网络文本图像是一类用来躲避OCR的图像,大多包含敏感信息。(人能够读懂,机器无法识别?)


针对这类图像的图像文本检测识别算法?现有工作。

创新点:套用现有技术,应用到这类识别中。做出来的结果会比现有工作好。或者更好解决了特殊网络文字图像识别问题。


2 关键词检测与推送:

关键词检测方法: 

词库。 相近词。 推断一段语句是否敏感。现有工作。

(可选)创新点: 



基于文本的舆情分析已经十分成熟。

但是获知重要舆情,如何实时性得知最近舆情?别人都是怎么做的?电子邮件,短信。。。。

创新点:我们提出了对舆情进行推送,圆满解决了这一问题。


二 网络图像文本提取

1 数据集

 ICDAR 2011 born-digital 

2 评测方法

0 从icdar获取gt数据(官方没有提供,我们就爬下来吧)
 for((i=1; i<103; i++)) do       wget "http://www.cvc.uab.es/icdar2011competition/?com=results&action=image_2&id_submit=1130&image_num=`echo $i`"           -O "`echo $i`.html";       done   // crawl web content for((i=1; i<103; i++)) do       s=$( cat $i.html |  grep -o "http:\/\/158.109.8.42\/gt\/datasets\/webimages\/[^\"\']*gt[^\"\']*.png" ) ;  // get image url      wget $s -O gt_$i.png;   // save gt images      done;

1 testSeg 评测文本区域提取效果:

a 对提取结果图像和gt图像进行比对 (myeval.cc) 获得单副图像的准确率、召回率
#include <opencv/cv.h>#include <opencv/highgui.h>#include <opencv2/opencv.hpp>#include <iostream>#include <fstream>#include <stdio.h>using namespace std;using namespace cv;int main(int argc, char** argv ){Mat gt, grey;gt = imread(argv[2]);grey = imread(argv[1]);cvtColor(gt, gt, CV_RGB2GRAY);threshold(gt, gt, 254, 255, CV_THRESH_BINARY); // <- for ICDAR gtcvtColor(grey, grey, CV_RGB2GRAY);threshold(grey, grey, 254, 255, CV_THRESH_BINARY); // <- for ICDAR greyMat tmp_mask = gt & (grey);int a = countNonZero(tmp_mask), b = countNonZero(gt), c = countNonZero(grey);cout << a << " " << b << " " << c << endl;// cout << "now calculate" << endl;// cout << "Pixel level recall = " << ((float) a) / b << endl;// cout << "Pixel level precission = " << (c == 0? 0.0: ((float)a) / c) << endl;return 0;}

b 把所有测试结果汇总(alleval.cc )成总的准确率召回率
#include <iostream>using namespace std;int main(){int a, b, c;int a_ = 0, b_ = 0, c_ = 0;char buf[100];while(cin >> buf){if ( !buf[0] ) break;// cout << " add " << buf << endl;cin >> a >> b >> c;a_ += a, b_ += b, c_ += c;}cout << a_ << ":"<< b_ << ":" << c_ << endl;cout << " recall: " << (float)a_ / b_ << endl;cout << " precision: " << (float)a_ / c_ << endl;return 0;}

c 编译以上文件,生成评测软件

g++ myeval.cc `pkg-config opencv --libs` -o myeval ; sudo  ln -s `pwd`/myeval /usr/bin/;

g++ alleval.cc `pkg-config opencv --libs` -o alleval ;  sudo  ln -s `pwd`/alleval /usr/bin/;

d 评测
检测文字:
 for file in `ls | grep "jpg"`; do text_extraction $file; textdetect $file; done

评测脚本:

#!/bin/shfor file in `ls | grep "png"`; do name=`echo $file|sed 's/.png//'`; echo $name.jpg; myeval $1/$name.jpg.out.png gt/gt_$name.png; done 

最新评测脚本:

for((i=1; i<142; i++)) do      textdetect img_$i.png > tmp;      echo $i.png;  myeval out1/img_$i.png.out.png gt/gt_$i.png;      done > org11


调用: sh  sc.sh  out1/out2 > result_i 对所有图像进行评测

执行     cat result_i | alleval  获得汇总后的评测结果

sh sc.sh out1 > org1; sh sc.sh out2 > org2; cat org1 | alleval; cat org2 | alleval; 

3 使用的方法

目测采用graph邻接图描述regions的相似关系  。

添加 笔划宽度另类方差统计。获得每个region的置信度。

再在regions【】上graph cut。得到结果集合(包含文本的regions)。

0 0
原创粉丝点击