远洋捕捞渔船电子监控视频文字信息提取

2020-06-02 23:57张胜茂杨胜龙沈介然邹国华
渔业信息与战略 2020年2期
关键词:航向摄像机渔船

张胜茂,樊 伟*,张 衡,杨胜龙,沈介然,邹国华

(1.中国水产科学研究院东海水产研究所,农业农村部远洋与极地渔业创新重点实验室,上海 200090; 2.深圳市联成远洋渔业有限公司,广东深圳 518035;3.上海峻鼎渔业科技有限公司,上海 200090;)

近年来视频监控技术发展迅速,在自动化生产[1]、无人驾驶[2]、自动售货[3]等诸多领域得到应用。视频监控技术借助计算机强大的数据处理能力[4],提取视频中的语义信息服务于生产、生活,有效地促进了社会的信息化。在海洋渔业捕捞生产过程中,使用视频监控系统记录作业过程,辅助渔业安全生产与管理[5],为渔业企业带来便利,使渔船管理有序、合理、高效[6-7]。

视频影像中出现的标语、告示牌、字幕等文字信息是重要的审查内容,提取其中的文字信息进行监管可以有效避免出现违规、违法信息[8-9]。视频中出现的时间、位置、名称等信息,在视频归档管理中也发挥了重要作用[10]。远洋捕捞渔船在捕捞过程中,为了保障渔船安全生产、记录渔船作业、监控渔船状态,在渔船前后甲板和左右舷安装有视频监控。监控系统与GPS(Global Positioning System)终端连接,在视频影像中嵌入了时间、位置、航向、航速等信息。本文通过jTessBoxEditor软件制作视频图片素材样本,用tesseract软件训练视频中嵌入的字符,生成traineddata字库,最后用Python编程提取远洋捕捞渔船监控视频文字信息,为视频存档和渔业管理提供参考。

1 渔船监控系统组成

1.1 监控系统结构

渔船安装了大华公司IPC(IPCamera)监控系统,通过监控主机连接摄像头、GPS等设备,采集渔船作业图像、实时GPS、人员活动和渔船行驶状况等信息,实现对船舶进行全方位监控,各种信息数据本地存储。渔船上安装4台摄像机,船载显示屏实时显示视频影像,为了保证渔船及人员的安全,摄像机的覆盖范围要可达95%以上。

渔船监控系统实现了采集、传输、数据存储、管理功能(见图1)。监控主机采用壁装安装方式,前端摄像机通过网线直接连入网络,通过IP(Internet Protocol)包传输视频信号和控制信号。监控主机实现对前端设备的集中管理,视频流媒体的存储,系统功能包括系统配置、实时监视、视频查询、视频回放、实时控制、报警管理、抓图和抓录等功能。远程终端通过卫星通信,也可获取监控信息。

1.2 渔船视频监控

远洋捕捞渔船安装有捕捞监控系统,监控位置主要包括左右舷、前甲板、后甲板(见图2)。1号摄像机位于渔船右舷,用于拍摄渔线回收、金枪鱼捕捞,以及渔船卸载渔获;2号摄像机位于渔船左舷,拍摄金枪鱼渔获的进出仓;3号摄像机位于前甲板顶部,镜头方向向后,拍摄甲板上金枪鱼的简单加工;4号摄像机位于后甲板,镜头方向向前,拍摄延绳钓渔线收放情况。

监控视频自动保存,每天动态生成一个文件夹,各视频监控每小时保存一次,保存文件名为“船名-摄像头编号-年-月-日-时-分-经度-纬度”,保存格式为dav。视频图像上有UTC(Universal Time Coordinated)时间、船名、经度、纬度、航向、航速信息。

图1 渔船视频监控系统结构示意图Fig.1 Structure diagram of fishing boat video monitoring system

图2 渔船监控船载显示Fig.2 Display interface of fishing vessel monitoring on board

2 识别文字训练

2.1 训练样本生成

本文用软件jTessBoxEditor-2.2.1(https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/)采集训练用的样本,该软件由Java开发,因此需要安装Java运行环境(JRE,Java Runtime Environment,http://www.oracle.com/)。在DOS中运行命令“start javaw -Xms128m -Xmx1024m -jar D:jTessBoxEditor-2.2.1jTessBoxEditorjTessBoxEditor.jar”打开界面。

用opencv-python的VideoCapture()函数打开视频数据,然后读取监控视频的帧输出图片,本文所用视频输出的图片分辨率为704×576,水平和垂直分辨率都为96dpi,位深为24。在整个帧中,通过frame [19:51,456:691]截取时间图片,frame[451:572,565:696]截取航行信息图片(船名、经纬度、航向和航速),然后保存。输出多张图片有助于提高识别精度。样本处理对图片做了截取处理(见图3a),其目的是为了在输出文字框选中(makebox)时,减少无效的文本框的生成,提高人工标注速度。考虑到一天中光强变化与夜间渔船灯光的影响,按照每小时提取一次图片的方式,获取到816个标注样本,用于模型训练。

2.2 文字样本训练

样本图片输出完成后(图3a),使用jTessBoxEditor软件tools菜单中Merge TIFF合并输出的图片,图片命名格式[lang].[fontname].exp[num].tif,其中lang为语言名称,fontname为字体名称,num为序号,如图片训练自定义字库为vessel(vessel time position navigation)字体名为font,则合并后图片命名为vessel.font.exp0.tif。用命令(1)生成字符框vessel.font.exp0.box文件(表1),再用Box Editor中的Open打开合并后的图片,进行文字矫正(图3b)。根据图片中框选的内容修改char,如果字符不完整就输入空格。

在文件夹内,新建字体特征文本文件,名为font_properties(无扩展名),用记事本打开,写入内容格式为,分别表示字体名称,斜体、加粗、固定、衬线、哥特体,值用1和0来代表有或无。如“font 0 0 0 0 0”,取值都为0,表示字体不是粗体、斜体、加粗等,文本在命令(4)和命令(5)中用到。

用命令(2)生成字符特征TR文件,用命令(3)从所有文件中提取字符,生成一个unicharset文件,用命令(4)聚集字符特征,生成unicharset文件,用命令(5)生成inttemp文件,用命令(6)合并所有tr文件,生成normproto。训练过程中会创建5个文件:shapetable,normproto,inttemp,pffmtable和unicharset,以vessel.作为前缀对5个文件进行重命名,即vessel.shapetable,vessel.normproto,vessel.inttemp,vessel.pffmtable和vessel.unicharset,便于文件统一操作。用命令(7)合并5个文件,生成vessel.traineddata,该文件是训练好的字库文件,把它复制到Tesseract-OCR安装目录下的tessdata文件夹。

表1 文本训练的命令行Tab.1 Command line for text training

图3 图片字符框选与文字标注Fig.3 Picture character box selection and text annotation注:(a)图片嵌入的文字信息;(b)人工交互标注文字Note: (a) text messages embedded in picture; (b) manual interactive text annotation

3 视频文字信息提取

本文编程语言为Python 3.6,文字识别工具为tesseractV5.0。通过opencv-python读取到视频帧,设置范围截取含有文字的部分,存储为图片(见图4a),为了提高文字识别的准确率,用cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)函数,将RGB彩色图片转换为灰度图存储在img_gray(见图4b),再设置阈值,用cv2.threshold(img_gray, 200, 255, cv2.THRESH_BINARY)函数把图片转为二进制图,存储在img_binary(见图4c)。最后调用pytesseract.image_to_string(img_binary, lang='vessel')返回字符串,获取的字符串格式如表2。

图4 图片中的渔船位置与航行状态信息Fig.4 Fishing vessel position and navigation status information in the picture注:(a)截取的原始图片,(b)灰度图片(c)设置阈值后的图片Note:(a)original image captured,(b)gray image,(c)image after threshold setting

提取的信息包括时间、经纬度、航向、航速。视频中记录的时间为UTC(Universal Time Coordinated)时间;经度和纬度为“度分”格式,分精确到两位小数;航向用方向角记录,数值为整型;航速为精确到1位的小数,单位为节(kn)。

按1分钟间隔,提取了2019—02—22 23:00到2019—02—23 15:00的16个小时的960条记录,数据内容包括船名、经度、纬度、航速和航向,经过与原始图片比对没有发现提取错误的记录。图5是这段时间的轨迹,颜色由浅到深表示航速由小到大,箭头指向表示渔船航向。

4 总结

远洋渔业捕捞中EMS是国际渔业组织积极推广的渔船监控系统,系统中的视频文字信息提取是其重要功能之一。jTessBoxEditor官方版界面美观大方,功能强劲实用,可以提高Tesseract-OCR文字识别准确率。在本文中,使用该软件制作了文字样本,用于文字识别库的训练。Tesseract OCR是一个遵循Apache Licene 2.0的OCR开源软件,基于该软件训练出远洋捕捞渔船监控视频中的时间、位置、航速、航向等文字识别库。最后用Python编程提取出远洋捕捞渔船监控视频中960条文字记录,经过人工比对提取的位置数据全部正确。

图5 渔船位置与航行状态Fig.5 Fishing vessel position and navigation status

表2 视频文字串格式Tab.2 String format in the video

文字信息提取在远洋捕捞渔船电子监控视频处理中,仅是数据获取工作的一部分,接下来的工作中将针对视频中金枪鱼抓取、浮球回收、鱼类识别、滚筒转动放线等状态,运用深度学习算法进行信息提取。

猜你喜欢
航向摄像机渔船
基于事件触发的船舶航向逻辑切换自适应控制
风浪干扰条件下舰船航向保持非线性控制系统
千舟竞发
考虑几何限制的航向道模式设计
国内新型远洋金枪鱼围网渔船首航
民机横航向静稳定性适航符合性数学仿真评估
新安讯士Q6155-E PTZ摄像机
安讯士新AXIS M31网络摄像机
如何消除和缓解“摄像机恐惧症”
高清新阵营