與CPTN(文字識(shí)別網(wǎng)絡(luò))作斗爭(zhēng)的記錄

CTPN是什么

CTPN結(jié)合CNN與LSTM深度網(wǎng)絡(luò)勇垛,CTPN是從Faster R-CNN改進(jìn)而來(lái)味榛,能有效的檢測(cè)出復(fù)雜場(chǎng)景的橫向分布的文字,效果如圖1媚媒,是目前比較好的文字檢測(cè)算法篓像。詳細(xì)解釋?zhuān)?a target="_blank" rel="nofollow">傳送門(mén)

image.png

說(shuō)人話:文字識(shí)別的前期工作动知,需要把圖片中的文字區(qū)域定位出來(lái),然后可以做適當(dāng)?shù)牟们凶鬟M(jìn)一步的文字識(shí)別工作员辩!

本次要實(shí)現(xiàn)的項(xiàng)目

地址如下(別著急克屡钠狻):

https://github.com/eragonruan/text-detection-ctpn

image.png

項(xiàng)目要實(shí)現(xiàn)的效果

image.png

image.png

第一步--克隆項(xiàng)目

我克隆的是下面這個(gè)項(xiàng)目,他有訓(xùn)練好的權(quán)重文件:

https://github.com/GuoYi0/text_detection

第二步--開(kāi)始跑demo

結(jié)果碰到了下面這個(gè)錯(cuò)誤:

ImportError: cannot import name 'bbox'

回去找issue屈暗,果然有人跟我一樣拆讯,才看半截就開(kāi)跑
issue地址:https://github.com/eragonruan/text-detection-ctpn/issues/59
下面有人給出了答案:

image.png

照著做脂男,再跑一次,但是种呐,宰翅,,還是


image.png

another error:

Invalid argument: ValueError: Buffer dtype mismatch, expected 'int_t' but got 'long long'

再去找解決方案爽室。找到了下面這個(gè):
issue地址:https://github.com/eragonruan/text-detection-ctpn/issues/59
解決方案如下(我只是部分修改汁讼,原作者是僅使用CPU執(zhí)行)

thanks to the author and [#43](https://github.com/eragonruan/text-detection-ctpn/issues/43) zhao181

my environment is:
windows10 ,
python3.6 ,
tensorflow1.3 ,
vs2015(ps:vs2013 not support python3.6 when compile)

step 1:make some change
change "np.int_t " to "np.intp_t" in line 25 of the file lib\utils\cython_nms.pyx
otherwise appear " ValueError: Buffer dtype mismatch, expected 'int_t' but got 'long long' " in step 6.

step 2:updata c file
execute:cd your_dir\text-detection-ctpn-master\lib\utils
execute:cython bbox.pyx
execute:cython cython_nms.pyx

step 3:builf setup file as setup_new.py
import numpy as np
from distutils.core import setup
from Cython.Build import cythonize
from distutils.extension import Extension
numpy_include = np.get_include()
setup(ext_modules=cythonize("bbox.pyx"),include_dirs=[numpy_include])
setup(ext_modules=cythonize("cython_nms.pyx"),include_dirs=[numpy_include])

step 4:build .pyd file
execute:python setup_new.py install
copy bbox.cp36-win_amd64.pyd and cython_nms.cp36-win_amd64.pyd to your_dir\text-detection-ctpn-master\lib\utils

step 5:make some change
(1) Set "USE_GPU_NMS " in the file \ctpn\text.yml as "False"
(2) Set the "_*C.USE_GPU_NMS" in the file \lib\fast_rcnn\config.py as "False";
(3) Comment out the line "from lib.utils.gpu_nms import gpu_nms" in the file \lib\fast_rcnn\nms_wrapper.py;
(4) Comment out the line "from . import gpu_nms" in the file \lib\utils_*init**.py;
(5) change "base_name = image_name.split('/')[-1]" to "base_name = image_name.split('\')[-1]" in line 24 of the file ctpn\demo.py

step 6:run demo
execute:cd your_dir\text-detection-ctpn-master
execute:python ./ctpn/demo.py

關(guān)鍵改動(dòng)部分

step 1:make some change
change "np.int_t " to "np.intp_t" in line 25 of the file lib\utils\cython_nms.pyx
otherwise appear " ValueError: Buffer dtype mismatch, expected 'int_t' but got 'long long' " in step 6.

我再跑一次測(cè)試!
結(jié)果阔墩,嘿架,,


image.png

錯(cuò)誤信息如下:

Loading network VGGnet_test...  Restoring from checkpoints/VGGnet_fast_rcnn_iter_50000.ckpt... done
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for E:\business\recognition\text_detection\text-detection-ctpn\data\demo\010.png
Traceback (most recent call last):
  File "./ctpn/demo.py", line 101, in <module>
    ctpn(sess, net, im_name)
  File "./ctpn/demo.py", line 61, in ctpn
    draw_boxes(img, image_name, boxes, scale)
  File "./ctpn/demo.py", line 26, in draw_boxes
    with open('data/results/' + 'res_{}.txt'.format(base_name.split('.')[0]), 'w') as f:
OSError: [Errno 22] Invalid argument: 'data/results/res_E:\\business\\recognition\\text_detection\\text-detection-ctpn\\data\\demo\\010.txt'

定位這個(gè)問(wèn)題花了我一點(diǎn)時(shí)間啸箫,各種猜想耸彪,最后再回頭詳細(xì)讀一下這個(gè)錯(cuò)誤信息,發(fā)現(xiàn)了問(wèn)題所在忘苛,最后一句蝉娜!參數(shù)錯(cuò)誤!
回去改源碼:

 base_name = image_name.split('\\')[-1]
    with open('data\\results\\' + 'res_{}.txt'.format(base_name.split('.')[0]), 'w') as f:

只想說(shuō)一句扎唾,Windows的“\”真是召川。。胸遇。

image.png

我再跑荧呐!功夫不負(fù)有心人,輸出結(jié)果如下
image.png

查看輸出結(jié)果目錄
image.png

接下來(lái)就是去研究原理和源碼了纸镊,這個(gè)得放一段落倍阐,先把業(yè)務(wù)完成先。薄腻。。
image.png

再補(bǔ)一句届案,對(duì)這個(gè)感興趣的還可以去研究下下面這個(gè)項(xiàng)目庵楷,提供了數(shù)據(jù)集等

https://github.com/QAlexBall/Faster_RCNN_for_TextDetection

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市楣颠,隨后出現(xiàn)的幾起案子尽纽,更是在濱河造成了極大的恐慌,老刑警劉巖童漩,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弄贿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡矫膨,警方通過(guò)查閱死者的電腦和手機(jī)差凹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)期奔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人危尿,你說(shuō)我怎么就攤上這事呐萌。” “怎么了谊娇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵肺孤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我济欢,道長(zhǎng)赠堵,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任法褥,我火速辦了婚禮茫叭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挖胃。我一直安慰自己杂靶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布酱鸭。 她就那樣靜靜地躺著吗垮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凹髓。 梳的紋絲不亂的頭發(fā)上烁登,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音蔚舀,去河邊找鬼饵沧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赌躺,可吹牛的內(nèi)容都是我干的狼牺。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼礼患,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼是钥!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起缅叠,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤悄泥,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后肤粱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體弹囚,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年领曼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鸥鹉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛮穿。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖宋舷,靈堂內(nèi)的尸體忽然破棺而出绪撵,到底是詐尸還是另有隱情,我是刑警寧澤祝蝠,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布音诈,位于F島的核電站,受9級(jí)特大地震影響绎狭,放射性物質(zhì)發(fā)生泄漏细溅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一儡嘶、第九天 我趴在偏房一處隱蔽的房頂上張望喇聊。 院中可真熱鬧,春花似錦蹦狂、人聲如沸誓篱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)窜骄。三九已至,卻和暖如春摆屯,著一層夾襖步出監(jiān)牢的瞬間邻遏,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工虐骑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留准验,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓廷没,卻偏偏與公主長(zhǎng)得像糊饱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子颠黎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344