2023年生产实习总结与项目介绍——南京畅淼科技有限责任公司

发布者:庄伟超发布时间:2023-09-24浏览次数:67

2023年生产实习总结与项目介绍

南京畅淼科技有限责任公司


一、企业信息

企业名称

南京畅淼科技有限责任公司

企业简介

畅淼科技有限公司成立于2017年,是以视频分析、图像识别、机器视觉、深度学习等人工智能技术为核心的智慧水运解决方案和技术服务提供商。公司致力于以水上安全为核心的智慧化建设,集软件开发、产品研发、成果转化、系统集成与工程设计实施于一体的高科技企业,旨在构建“物智水安,船畅人和”的水上智能生态。畅淼拥有水上视频图像处理、智能抓拍识别、视频处理芯片定制等核心技术,针对交通、海事、水利、港口、水务等众多行业提供专业的细分产品和解决方案。近年来公司在水运行业潜心耕耘,坚持自主研发创新,积累了可持续发展的产品、资金和专业团队,凭借在智慧水运的专业水平和成熟技术,不断创新求发展,以优异的产品质量和精湛的技术服务受到用户的一致好评。


二、实习项目及分组

项目一

项目名称:

双目测距

项目简介:

畅淼科技有限公司具备水上视频图像处理和智能抓拍识别等领域的核心技术,致力于为交通、海事、水利、港口、水务等多个行业提供专业的细分产品和解决方案。其中,公司提供了一项特定应用,即测量船身尺寸大小。在这一过程中,双目测距技术发挥着重要作用。该技术在计算机视觉和图像处理领域具有重要地位,通过处理两幅图像上的视差数据,能够直接测量前方景物的距离。本项目以软硬件平台搭建为基础,抓取图像标定材料,实现参数标定,完成程序编写,最终实现距离测量。

小组成员:

李远航 高国晴 田丽


项目成果:

1. 图片采集。配置相同型号的相机,优化采集方案,完成基本图像采集。

2. 参数采集。使用matlab工具箱提供的应用“stereo camera calibrator”进行双目标定,将图片标定结果保存到matlab工作区,删去误差较大的图组后,通过编写程序将主要参数excel形式导出。

3. 程序编写。完成立体校正算法、SGBM立体匹配算法的编写,将两幅立体图像中的对应像素点进行匹配,以获得深度信息,实现三维世界的重建。

4.距离测定。通过拖动视差图上方三个滑动条可以调节blockSizeSAD窗口大小),numDisparities(视差窗口)和uniquenessRatio(唯一性比率)三个参数的大小,以此来获得噪点较少的视差图,使深度信息更加精准。最终实现了高精度的双目测距。



参数标定结果展示:

空间方位图

误差直方图

参数数据展示


算法结果及距离测定展示:

立体校正结果

立体匹配结果(灰度图)

距离测定结果


项目二

项目名称:

船舶是否封仓识别

项目简介:

准确有效的船舶识别技术对于提高船舶航行安全至关重要,同时也是船舶智能化发展的关键技术。本项目依靠yolov5图像识别程序,基于船舶日常航行图片,开展深度学习、特征捕捉算法设计、结果分析与优化等研究工作,实现船舶是否封仓识别。

小组成员:

唐梓铖、杨越航


项目成果:

通过对数据库中两千余张图片进行标记,使用yolov5进行图像识别训练,将训练得到的权重文件导入detect图像检测程序中,分别从数据库和网络上寻找不在训练集中的图片进行验证,船舶封仓识别结果基本准确。



项目三

项目名称:

基于python的串转网工具开发

项目简介:

在水上“电子卡口”监督执法的过程中,需要将来自不同传感器的数据融合在一起并将其推送给不同的设备,而不同的传感器之间使用的通信方式不一样,这就需要开发一款兼容所有通信方式的“通信中转站”,可以接收很多种形式的数据并且能将数据同时推送给许多设备。

小组成员:

孙野 朱兴锐 郭建恒


项目成果:

项目主要构建了串口、文件、tcpudp等多种通信方式的“通信中转站”。其中主要包括基础通信类、参数文件配置和收发两个主程序。项目特色包括多个参数文件,每个参数文件配置一个数据源和多个推送源,并且包含了数据源和推送源的地址、端口等相关参数。主程序脚本Serversend读取配置文件信息,根据信息创建数据引擎engine,并调用MsgGet脚本进行消息收发。项目使用了多线程技术,能够同时启动多个通信方式从而大幅提升程序运行速率。并且针对这些通信方式容易出现的断连情况都做了异常处理,比如在tcp通信中加入心跳机制,com口通信中加入了重连机制,并且辅以相应的日志文件记录关键信息,方便运营维护。

程序框架示意图

多线程通信展示实例



项目四

项目名称:

船体甲板线和船水分界线识别

项目简介:

利用yolov5模型对于用labelme打标并输出的文件集进行训练,根据图形分割算法训练模型yolov5s,并借此对视频集中的图片进行预测与识别出船体的甲板线和船水的分界线来为进一步测量提供支持。

小组成员:

水之力,杨书翰,赵凯文


项目成果:

1. 数据获取。从摄像头拍摄的照片中选用不同场景的图片(考虑时间、光线、气候等因素),以获取不同情景不同种类的数据集,来增强模型的鲁棒性。

2. 数据处理。利用labelme软件对图片进行打标。具体为采用生成多边形方式,勾勒出船体的甲板线和船水分界线(分界线为勾勒水面的轮廓线,大多为直线)。

3. 估计算法设计。将打标后输出的txt和图片文件分为trainvaltest三个集,来训练yolov5的模型。考虑到样本较小,本次选择的模型主要为yolov5syolov5m

模型训练过程

数据结果

识别成果


项目五

项目名称:

船舶超载识别

项目简介:

通过机器学习识别船舶的特征,包括吃水标志与干舷轮廓,从而判断船舶是否超载。

小组成员:

杨宁欣、董青、刘宁

项目成果:

1.在相机拍摄的图像上确定甲板和船水分界线的像素距离,即干舷距离。小组先通过labelme标注为数900张的训练集,在用yolov5对训练集进行学习后在测试集里进行验证。之后得到一套对任意干舷标注的神经网络,从而得到了干舷的像素高度。之后结合已知的相机数据(相机和船只的距离、相机的俯仰角等)代入已知的函数中得到干舷的实际高度。最后用已知的船只总高减去干舷实际高度可以得到船只吃水深度,从而判断船只是否超载。

2.直接检测相机拍摄的图像上是否存在吃水标志。小组在CVAT网站上用矩形框将吃水标志框选完成后下载YOLO格式的训练集,直接在train.py的终端中执行运行指令进行训练。若船只上可以检测出吃水标志,代表未超重。这种方法存在局限,即在一些水域有特定的超载标准,吃水标志未必适用,此时就需要使用检测干舷距离的方法。

3.对项目进行深入的学习,分析用于判断运行结果好坏的各个参数(召回率、精度、mAP@0.5mAP@0.5:0.95等)以及YOLO进行训练的基本逻辑。


吃水标志训练结果:


干舷分割训练结果