CN114627047A - 一种基于改进sort算法的鱼类计数统计的方法 - Google Patents
一种基于改进sort算法的鱼类计数统计的方法 Download PDFInfo
- Publication number
- CN114627047A CN114627047A CN202210096076.3A CN202210096076A CN114627047A CN 114627047 A CN114627047 A CN 114627047A CN 202210096076 A CN202210096076 A CN 202210096076A CN 114627047 A CN114627047 A CN 114627047A
- Authority
- CN
- China
- Prior art keywords
- fish
- predicted
- algorithm
- value
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30242—Counting objects in image
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于改进SORT算法的鱼类计数统计的方法,SORT算法主要由对象识别和追踪算法组成,具体涉及分类识别技术领域,本发明首先需要获取大量的鱼类图像,从不同的图像中分别抽取鱼类作为训练集。然后,预处理阶段,包括AI训练所需的鱼类照片的样本标注,以及对样本的训练,获取鱼类识别模型,根据鱼类识别模型,使用TensorRT对目标鱼类识别以及GPU加速,生成检测目标和定位信息。计算每个轨迹与预测值的马氏距离和IOU值,生成开销矩阵。本发明能根据通过训练生成的训练模型,对照片中的鱼类特征进行提取,获得目标的定位信息,通过预测该目标的定位,与当前侦测的目标进行比对,得到开销矩阵,通过获取最优解得到图像中目标与预测的目标的匹配,从而进行计数。
Description
技术领域
本发明涉及分类识别技术领域,更具体地说,本发明涉及一种基于改进SORT算法的鱼类计数统计的方法。
背景技术
随着人类社会需求的增加,鱼类养殖这些年数量大幅增加,人们对鱼类计数的自动化程度、准确率、速度都有了很高的要求。目前,针对养殖鱼类计数设备作业时,摄像机对鱼类进行连续快速拍摄,提供照片给处理器进行处理,识别,分析,计数等一系列操作。
但是,现有技术中的处理设备,在处理鱼类粘连严重、姿态各异、大小差距较大等情况时,计数不够精确等问题,针对上述的问题,目前尚未提出有效的解决方案。
发明内容
为了克服现有技术的上述缺陷,本发明的实施例提供一种基于改进SORT算法的鱼类计数统计的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于改进SORT算法的鱼类计数统计的方法,包括有以下步骤:
1、鱼类训练样本标注,组成样本库。
首先,根据相机对鱼类经过特定设备下落的过程,进行拍摄,得到鱼类照片并每张图片中的鱼类进行标注,形成样本库。
2、鱼类训练模型
鱼类的模型训练步骤一般分为以下:
神经网络的前向算法。将数据输入神经网络,每个神经元先输入值加权累加再输入激活函数作为该神经元的输出值,输出值正向传播,得到得分。
定义loss,选择优化器,让loss最小。
对数据进行迭代训练,使loss到达最小。通过反向传播确定梯度向量。最后通过梯度向量来调整每一个权值,向“得分”使误差趋于0或收敛的趋势调节。重复上述过程直到设定次数或损误差失的平均值不再下降,达到最低点。
在测试集或者验证集上对准确率进行评估。
3、使用Tensorrt加速,生成鱼类的检测框信息
使用Tensorrt对生成的鱼类训练模型进行学习,其推断代码是直接利用cuda语言在显卡上运行的,所有的代码库仅仅包括C++和cuda,图像处理算法在GPU上得到了并行处理,因而效率要高很多。利用Tensort加速,基本分为以下几个步骤:
将预训练图像分割YOLO模型转换为WTS。
将WTS模型导入到TensorRT中。
在TensorRT中填充一个网络对象,并将其解析为engine文件。
使用engine文件作为输入,对GPU执行推理,并使用CUDA完成GPU加速。
4、使用卡尔曼滤波对鱼类的轨迹进行预测
通过Tensorrt加速生成的检测和目标定位信息,其实就是检测框的各关键点的坐标信息。通过使用卡尔曼滤波预测出图像中各个鱼类轨迹t’时刻的定位信息。
5、计算每个轨迹与预测值的马氏距离和IOU值
IOU值和马氏距离都将组成开销矩阵进行分析。开销矩阵的行号代表预测的图像中鱼类轨迹track的序号,开销矩阵的列号代表图像中各鱼类目标的序号。
获取IOU值,在本方法中IOU值就是,t'时刻预测的鱼类轨迹的外接矩形与t'时刻获取的目标的外接矩形的交并比,该值必然<1。当IOU值大于某个阈值时,认为是有效的IOU值,否则都将直接丢弃不予以使用。本方法中将有效的IOU值,组成开销矩阵。
获取马氏距离,
本方法中由于采用4个测量值,因此马氏距离的平方的自由度为4,且符合卡方分布的。可经卡方分布表查的数据。这里将卡方分布的α设为0.05,这样卡方分布的值可以尽量取的足够大,将该值作为衡量某一个马氏距离是否有效的标准,即该值作为马氏距离的阈值使用。
6、利用匈牙利KM算法获得预测轨迹和当前目标的匹配
匈牙利KM算法,是对由马氏距离或IOU值组成的开销矩阵处理,它在处理过程中,包含所有0的最小行集,独立0点的最大行集。求得最优解的步骤如下:
当开销矩阵的行>列时,也就是预测的轨迹数>侦测到的目标数,那么最优解的数目将会与开销矩阵的列数相同。
当开销矩阵的行<列时,也就是预测的轨迹数<侦测到的目标数,那么最优解的数目将会与开销矩阵的行数相同。
7、鱼类计数更新
整个鱼类计数的过程是track-by-detect改进算法推进的过程。在处理第一张图片时,将不产生预测过程,而是将第一张图片的轨迹加入轨迹集合,并对计数更新。之后,再预测下一帧的轨迹信息,如此反复迭代下去。
其步骤如下:
删除所有轨迹集合中的无效轨迹,即连续超过N次,轨迹与目标之间没有最优解,其中N可以人工设置。
预测上一张图片的轨迹在当前时刻图片的中的位置。
组成马氏距离的开销矩阵,进行马氏距离的最大匹配,建立未匹配的轨迹集合,已经匹配的轨迹集合,以及未匹配的侦测物体集合。
对在马氏距离匹配中没有命中的轨迹进行二次匹配,组成IOU开销矩阵,进行IOU最大匹配,将匹配的轨迹加入匹配集合。
在未匹配轨迹集合中的轨迹,其失配计数+1。
获取成功匹配的行和列号,使用成功匹配的侦测物体的的定位信息,进行更新与之匹配的轨迹的卡尔曼滤波器的当前最优解。
此时未匹配侦测物体就是刚进入屏幕被捕捉到的物体,建立对象并进行存储。
遍历轨迹集合,对本次匹配成功,且匹配次数超过指定数目,那么将轨迹加入显示集合,对物体进行实时计数。
本发明的技术效果和优点:
本发明能根据通过训练生成的训练模型,对照片中的鱼类特征进行提取,获得目标的定位信息,通过预测该目标的定位,与当前侦测的目标进行比对,得到开销矩阵,通过获取最优解得到图像中目标与预测的目标的匹配,从而进行计数,通过使用匈牙利KM算法分析开销矩阵,获取每个预测轨迹对应的当前侦测到的目标,进行匹配,对匹配的轨迹,使用卡尔曼滤波进行更新,并对更新到达一定次数的轨迹,进行计数统计。相比于人工鱼类计数的方法,本发明具有分类准确率高,能够使用各种场景,可以快速进行大量鱼类计数。
附图说明
图1是本发明基于不同场景进行鱼类计数统计方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如附图1所示的一种基于改进SORT算法的鱼类计数统计的方法,其特征在于:包括有以下步骤:
步骤一:鱼类训练样本标注,组成样本库,首先,根据相机对鱼类经过特定设备下落的过程,进行拍摄,得到鱼类照片,并每张图片中的鱼类进行标注,形成样本库;
步骤二:对鱼类样本进行训练,提取目标特征值,生成鱼类识别模型,将数据输入神经网络,输出值正向传播,得到得分,将“得分”输入误差函数,与期待值比较得到误差,通过反向传播来确定梯度向量,最后通过梯度向量来调整每一个权值,向“得分”使误差趋于0或收敛的趋势调节,重复上述过程直到设定次数或损误差失的平均值不再下降达到最低点;
步骤三:通过使用TensorRT对神经网络进行加速,对鱼类识别模型进行识别,得到检测目标和定位信息,将训练的图像识别的YOLO模型转换为WTS,导入WTS模型包括从磁盘上保存的文件加载它,并将其从其本机框架或格式转换为TensorRT网络;
步骤四:通过卡尔曼滤波,对所有鱼类的轨迹进行预测并跟踪,形成多个轨迹,其中的卡尔曼滤波分为两个阶段,一是预测轨迹在下一时刻的位置,二是基于侦测到的目标来更新预测的位置;
步骤五:计算每个轨迹与预测值的马氏距离和IOU值,IOU:t’时刻预测的检测框与t’时刻的侦测目标的外接矩形的交并比,另外马氏距离:表示数据的协方差元素之间的距离,在本方法中,使用t’时刻的预测测量值与t’时刻的侦测目标值相比较,而两者并不存在于相同的测量空间;
步骤六:通过使用匈牙利KM算法,获取每个轨迹对应的预测轨迹,该算法对在第五步骤中求得的由马氏距离或IOU值组成的开销矩阵进行分析,以便求得t’时刻预测的多个轨迹中的某一个与当前侦测的多目标中的某一个匹配,求得最优解,再次使用匈牙利KM算法在已知路径中不断寻找增广路径;
步骤七:对匹配的轨迹,使用卡尔曼滤波进行更新,并对更新到达一定次数的轨迹,进行计数统计,在通过第六步骤,得到各轨迹对应的侦测目标对象后,使用侦测到目标的坐标对t’时刻预测值的信息进行更新,具体步骤如下:
A、检测器得到bbox;
B、生成detections;
C、卡尔曼滤波预测;
D、使用匈牙利算法将预测后的tracks和当前帧中的detecions进行匹配;
E、卡尔曼滤波更新,
对已经被卡尔曼滤波更新的轨迹,如果它之前没有被计数,那么对其计数加1。
本发明方法的具体步骤如附图1所示,主要的流程包括:
1.获取鱼类的图像数据组成样本库
根据相机对鱼类经过特定设备的过程,进行拍摄,得到鱼类照片。每张图片中的鱼类进行标注,将生成的标注XML文件进行保存,形成鱼类计数的样本库。我们会选出1000张左右的图片,对图片中的鱼类进行标注。这些图片中需要有300张左右,含有多个鱼类黏连在一起的情况。另外,还需要有300张左右鱼类整个躯体清晰且完整的图片,当然需要注意的是每个样本文件与图片的文件名一致。
2.生成鱼类训练模型
在本方法中,使用Pytorch和YOLOV5进行模型训练,通过调用YOLOV5的train脚本,来完成的。在YOLOV5中,需要修改神经网络yaml配置文件的类别数和锚框的大小,以便完成模型识别,而完成训练的模型存放在runs目录下的最近一次的exp目录下,保存为PT文件。
3.Tensorrt网络加速
在本方法实施中,完成加速的步骤:
在YOLOV5目录下,调用脚本利用PT模型文件,生成WTS文件。
将WTS文件放入Tensorrt程序目录下的build目录。
对Tensorrt程序进行编译,使用生成的执行程序根据WTS文件,生成ENGINE文件。
给Tensorrt生成的执行程序指定待处理的图片路径,利用ENGINE文件作为输入,调用CUDA对GPU进行加速。
在测试模式下,可以在指定目录下,生成推理处理后的图片。在实际项目中,可以获取推理后的数据对象,为下一步工作做准备。
4.使用卡尔曼滤波对鱼类的轨迹进行预测
该部分为纯数学理论和计算部分。另外,相机的FPS越高,即每秒拍摄的照片越多,就会抓拍到更多的同一组鱼类的轨迹,那么卡尔曼滤波的预测值就会越准确。卡尔曼滤波分为三个阶段:
预测鱼类轨迹在下一时刻的位置。
基于侦测到的目标(来源于Tensort最后推理的检测和定位)来更新预测的位置。
利用卡尔曼滤波中的各个矩阵,计算马氏距离。
5.计算马氏距离和IOU
在高FPS相机情况下,可以追踪到同一组鱼类更多的轨迹,这种情况下,比较2张最近的照片,变化会比较小。而IOU代表的交并比,那么预测值和侦测目标的外接矩形的交并比会更高。而且,更大的马氏距离,就代表了离群越远,高FPS下,马氏距离都会相应变小,更能实时匹配。同理,FPS不高的情况下,IOU将会变小,而马氏距离将会变大,这样可能超过匹配的阈值,就会造成失配的出现。
6.利用匈牙利KM算法获得预测轨迹和当前目标的匹配
根据生成的马氏距离或IOU组成的开销矩阵,进行最优解处理。当轨迹和目标匹配,那么在设备的显示子设备中,会有绿框命中鱼类的躯体。
7.鱼类计数更新
在此功能中,将会对鱼类真实数目进行更新,也会在设备的显示子设备上,实时显示当前的鱼类计数。
其次:本发明公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计,在不冲突情况下,本发明同一实施例及不同实施例可以相互组合;
最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于改进SORT算法的鱼类计数统计的方法,其特征在于:包括有以下步骤:
步骤一:鱼类训练样本标注,组成样本库,首先,根据相机对鱼类经过特定设备下落的过程,进行拍摄,得到鱼类照片,并每张图片中的鱼类进行标注,形成样本库;
步骤二:对鱼类样本进行训练,提取目标特征值,生成鱼类识别模型;
步骤三:通过使用TensorRT对神经网络进行加速,对鱼类识别模型进行识别,得到检测目标和定位信息;
步骤四:通过卡尔曼滤波,对所有鱼类的轨迹进行预测并跟踪,形成多个轨迹;
步骤五:计算每个轨迹与预测值的马氏距离和IOU值;
步骤六:通过使用匈牙利KM算法,获取每个轨迹对应的预测轨迹的最优解;
步骤七:对匹配的轨迹,使用卡尔曼滤波进行更新,并对更新到达一定次数的轨迹,进行计数统计。
2.根据权利要求1所述的一种基于改进SORT算法的鱼类计数统计的方法,其特征在于:所述步骤二中,将数据输入神经网络,输出值正向传播,得到得分,将“得分”输入误差函数,与期待值比较得到误差,通过反向传播来确定梯度向量,最后通过梯度向量来调整每一个权值,向“得分”使误差趋于0或收敛的趋势调节,重复上述过程直到设定次数或损误差失的平均值不再下降达到最低点。
3.根据权利要求1所述的一种基于改进SORT算法的鱼类计数统计的方法,其特征在于:所述步骤三中,将训练的图像识别使用的YOLO模型转换为WTS,导入WTS模型包括从磁盘上保存的文件加载它,并将其从其本机框架或格式转换为TensorRT网络。
4.根据权利要求1所述的一种基于改进SORT算法的鱼类计数统计的方法,其特征在于:所述步骤四中,其中的卡尔曼滤波分为两个阶段,一是预测轨迹在下一时刻的位置,二是基于侦测到的目标来更新预测的位置。
5.根据权利要求1所述的一种基于改进SORT算法的鱼类计数统计的方法,其特征在于:所述步骤五中,IOU:t’时刻预测的检测框与t’时刻的侦测目标的外接矩形的交并比,另外马氏距离:表示数据的协方差元素之间的距离,在本方法中,使用t’时刻的预测测量值与t’时刻的侦测目标值相比较,而两者并不存在于相同的测量空间。
6.根据权利要求1所述的一种基于改进SORT算法的鱼类计数统计的方法,其特征在于:所述步骤六中,该算法对在第五步骤中求得的由马氏距离或IOU值组成的开销矩阵进行分析,以便求得t’时刻预测的多个轨迹中的某一个与当前侦测的多目标中的某一个匹配,求得最优解。
再次使用匈牙利KM算法在已知路径中不断寻找增广路径。
7.根据权利要求1所述的一种基于改进SORT算法的鱼类计数统计的方法,其特征在于:所述步骤七中,在通过第六步骤,得到各轨迹对应的侦测目标对象后,使用侦测到目标的坐标对t’时刻预测值的信息进行更新,具体步骤如下:
A、检测器得到bbox;
B、生成detections;
C、卡尔曼滤波预测;
D、使用匈牙利算法将预测后的tracks和当前帧中的detecions进行匹配;
E、卡尔曼滤波更新,
对已经被卡尔曼滤波更新的轨迹,如果它之前没有被计数,那么对其计数加1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210096076.3A CN114627047A (zh) | 2022-01-26 | 2022-01-26 | 一种基于改进sort算法的鱼类计数统计的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210096076.3A CN114627047A (zh) | 2022-01-26 | 2022-01-26 | 一种基于改进sort算法的鱼类计数统计的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114627047A true CN114627047A (zh) | 2022-06-14 |
Family
ID=81898995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210096076.3A Pending CN114627047A (zh) | 2022-01-26 | 2022-01-26 | 一种基于改进sort算法的鱼类计数统计的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114627047A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115063378A (zh) * | 2022-06-27 | 2022-09-16 | 中国平安财产保险股份有限公司 | 智能点数方法、装置、设备及存储介质 |
CN117292305A (zh) * | 2023-11-24 | 2023-12-26 | 中国科学院水生生物研究所 | 鱼类受精卵胎动次数确定方法、系统、电子设备及介质 |
-
2022
- 2022-01-26 CN CN202210096076.3A patent/CN114627047A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115063378A (zh) * | 2022-06-27 | 2022-09-16 | 中国平安财产保险股份有限公司 | 智能点数方法、装置、设备及存储介质 |
CN115063378B (zh) * | 2022-06-27 | 2023-12-05 | 中国平安财产保险股份有限公司 | 智能点数方法、装置、设备及存储介质 |
CN117292305A (zh) * | 2023-11-24 | 2023-12-26 | 中国科学院水生生物研究所 | 鱼类受精卵胎动次数确定方法、系统、电子设备及介质 |
CN117292305B (zh) * | 2023-11-24 | 2024-02-20 | 中国科学院水生生物研究所 | 鱼类受精卵胎动次数确定方法、系统、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113034548B (zh) | 一种适用于嵌入式终端的多目标跟踪方法及其系统 | |
US20180342077A1 (en) | Teacher data generation apparatus and method, and object detection system | |
Pardo et al. | Seismic phase picking using convolutional networks | |
CN110516556A (zh) | 基于Darkflow-DeepSort的多目标追踪检测方法、装置及存储介质 | |
CN106845430A (zh) | 基于加速区域卷积神经网络的行人检测与跟踪方法 | |
CN111898406B (zh) | 基于焦点损失和多任务级联的人脸检测方法 | |
CN114627047A (zh) | 一种基于改进sort算法的鱼类计数统计的方法 | |
CN110688940A (zh) | 一种快速的基于人脸检测的人脸追踪方法 | |
CN115937251A (zh) | 一种用于虾类的多目标跟踪方法 | |
CN110533100A (zh) | 一种基于机器学习进行cme检测和跟踪的方法 | |
CN111626303B (zh) | 性别和年龄的识别方法、装置、存储介质及服务器 | |
CN112712102A (zh) | 可同时识别已知和未知雷达辐射源个体的识别仪 | |
CN111444816A (zh) | 一种基于Faster RCNN的多尺度密集行人检测方法 | |
CN115330833A (zh) | 一种改进多目标跟踪的果实产量估算方法 | |
CN116883457B (zh) | 一种基于检测跟踪联合网络和混合密度网络的轻量化多目标跟踪方法 | |
CN114332444A (zh) | 一种基于增量漂移聚类的复杂星空背景目标识别方法 | |
CN109389173B (zh) | 一种基于m-cnn的试卷分数自动统计分析方法和装置 | |
CN117036897A (zh) | 一种基于Meta RCNN的少样本目标检测方法 | |
Abdulhamied et al. | Real-time recognition of American sign language using long-short term memory neural network and hand detection | |
Altundogan et al. | Multiple object tracking with dynamic fuzzy cognitive maps using deep learning | |
CN113409327A (zh) | 一种基于排序与语义一致性约束的实例分割改进方法 | |
Patton et al. | Predicting nba talent from enormous amounts of college basketball tracking data | |
CN112733883B (zh) | 一种点监督的目标检测方法 | |
Yang | Target Tracking Method based on Reinforcement Learning | |
CN110390244A (zh) | 基于深度学习的遥感图像要素识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |