Ubuntu-KCF/DSST算法无人机跟踪仿真/实物保姆级教程

2023-05-16

 KCF算法无人机跟踪

介绍


自己搭建的无人机跟踪实验,主要讲软件,硬件的需要等等

 基础知识准备


整个系统需要两部分,识别程序和控制无人机运动的程序,都是Python脚本,但运行需要在Ubuntu下用ROS进行通讯,所以需要学习ROS的一些基础用法

首先安装Ubuntu双系统,不要用虚拟机,后面没法操作了,双系统不麻烦而且很香,看整个教程,讲的很详细:Ubuntu双系统安装教程

安装好Ubuntu之后需要安装ROS,这里推荐用小鱼的一键安装,上链接:小鱼的ROS一键安装

ROS教程看赵虚左的课程,简单看个3章就可以了,点这个链接:ROS机器人入门,后面还有他做的文档:ROS文档

ROS基本会用了以后,可以跑一些别人的代码例程,推荐一下肖坤的无人机仿真系列,继续上链接:肖坤教程,主要看以下几章:仿真平台基础配置、目标检测与跟踪、darknet环境安装。其实跟我之后要介绍的方法不太一样,但你可以玩玩这个仿真环境,有个感受,他用的是YOLO算法

除了他这个比较复杂的仿真,我自己搭建的很简单的仿真环境是看这个教程学习的,你也可以学习一下,看看Gazebo里面很多东西是怎么设置的,上链接:PX4实现移动无人机跟踪物体仿真

然后建议自己跑一下YOLO算法,感受一下目标识别程序的大概,我自己当时就是这么学习的,放一下当时老师给我们的链接:YOLOv5的安装与使用,这个直接在Windows环境下跑就可以了,按照帖子里面的步骤即可,写的非常详细。把猫狗数据集放在了网盘里,最开始学习用猫狗是很容易上手的,上链接:[猫狗数据集](链接:https://pan.baidu.com/s/1LXnXUBP1HeC75UqqTdMbZA?pwd=tq1k 提取码:tq1k)

 KCF的基本原理


原理在网上都是百度到,这是我自己画的图,是找到KCF的MATLAB代码一步一步运行程序跑出来的,可以看清楚每一步操作对图片做了什么工作,你也可以这么做,有利于对原理的理解

在这部分,学习KCF原理的时候,会有一个图像的HOG特征,也就是颜色梯度直方图,当时在做实验的时候发现,人物处于草地这种复杂背景中时会比水泥地这种简单背景跟踪效果更好,因为HOG提取的是一个图像的轮廓信息,而草地本身就很复杂了,相对水泥地来说就特别不友好,针对这种问题可以用颜色来区分等等方法。我觉得如果单纯做图像的可以去考虑这些,,

 KCF的python程序


这部分介绍几个KCF的Python程序以及其改进版本
1.opencv-KCF,这个是直接用python第三方库直接封装好的代码直接运行的,可能需要安装一些第三方库,pip install opencv-python opencv-python-contrib,如果还有别的错误直接百度解决就好了。下面具体讲一下这个代码怎么运行的:

 

 

 

 

 

 2.第二个主要是说明CSRT ,在上述图3那里能够添加一个新的算法:CSRT,没有其他的改动,这个算法的特点是能够适应尺度变化,而且对于非矩形目标的跟踪效果更好,不再具体讲代码,这个没有具体文件,自己改一下调用算法就行了。

 3.第三个说一下DSST算法 ,这个对于目标的尺度大小变化最鲁棒,而且是在无人机上使用效果最好的,有了上述代码经验,我们在自此基础上,看DSST算法的代码:


这里调用的tracker.py是网上大佬手撸出来的,每一个小段都有详细的注释,可以参考学习一下,整个流程到底是啥意思。然后tracker.py中还调用了一个fhog.py的文件,这个是跟踪使用的图像特征HOG,fhog是其升级版,而且他的代码用了C++加速,所以最后运行速度还是很客观的,关于hog的性质理解可以参考这两个链接:HOG特征笔记,HOG特征-简书。

所以这个代码共有三个文件:run.py  tracker.py  fhog.py  需要运行的是run.py

 4.第四个代码说一下动态框选 ,由于上述手撸的DSST程序,有个小小的缺点,就是他会在相机打开的那一瞬间的一帧中让你选择需要跟踪的目标进行框选,所以在无人机上的应用就会很麻烦,最好是画面一直在动, **等目标何时出现了,我再进行框选。** 这个想法我目前认为可以跟YOLO算法结合一下,让YOLO也有可选择性,也挺好的。下面讲一下这个代码我怎么改的,也是跟网上的大佬写的代码拼接...需要运行的是run2.py

调用tracker函数就和DSST那个代码一样了,所以这个脚本主要功能是能 **动态框选** 

 5.第五个代码说一下如何初始化多个跟踪器,进行性能对比 ,这部分代码仍然是在上一个代码的基础上加以修改得到的,我们的目标即,通过一个同矩形进行初始化,保证每个算法得到的初始信息是相同的,进而对比各种算法性能优劣,需要运行的是run3.py,简略介绍如下:

效果图如下:


至此,识别跟踪算法的python程序就讲解完毕了,我还上传了KCF的MATLAB代码版本,是原著作者的代码,写的比较清晰,可以自己一步一步进行运行看其数学远离,因为KCF是最典型的相关滤波跟踪算法,相比深度学习算法,它很多数学操作是仍然能看到的,对理解图像识别算法有很大的意义。

接下来,讲解一下如何将识别算法的信息可以用起来控制四旋翼无人机进行运动,即控制程序。

KCF及相关算法的MATLAB代码

写KCF那个大神的源代码在他的主页上,代码我也在这个帖子里的文件夹上传了,但视频序列的文件夹有点大,我弄个百度网盘放进来,其他的DSST代码和SAMF代码也是,可以直接百度网盘下载,大神的网页还有别的研究,可以自己去学习一下,这部分MATLAB的代码可以自己一步一步运行来看数学逻辑,比python要好懂,原理都一样,但由于我们后面用到的都是python文件,就不详细介绍了这块了,如果不懂可以和我联系

由于跑代码需要用到的视频集有点多放不太下,这里放上百度网盘链接: https://pan.baidu.com/s/1lTdPkDHkJppBgDq2-WD5Bw?pwd=gmao提取码:gmao

直接下载百度网盘的代码吧,可以直接运行,这个帖子里的少视频集,直接运行run.m文件

无人机跟踪程序介绍

仿真

先上原理框图,这里需要稍微懂一点ROS(因为我也只是懂一点点),我理解到的ROS在这个任务中的工作主要就是收发信息,节点管理,统一接口方式这样。

这部分会有gazebo仿真和实物两部分,一般都先在Gazebo上先把代码跑通,然后开始调试无人机实物,这样效率比较高,前面也放了肖坤的大环境,可以跑跑里面的键盘控制无人机室内飞行,跟控制小海龟是一样的,这里也是放一个我学习Gazebo仿真时的一个网上的教程:PX4实现移动无人机跟踪物体仿真

然后对上面这个例程进行一些小的修改:给四旋翼安装一个下置摄像头,在无人机升起到固定高度之后,运用摄像头捕获到的图像使用KCF系列算法对小车进行识别,然后根据小车识别框在整个视频画面中距离中心的距离来控制无人机飞行,这里的目标就是始终保持小车在无人机画面的中心。

在这一块还有一个毕设中的小思考,因为在实物验证中,师兄帮忙飞四旋翼,每次飞行的高度肯定是不一样的,那么伴随着跟踪框在争个画面中的移动速度是不一样的,它反应速度也会不同,离得太近的时候过于灵敏,离得太远的时候反应很慢,跟不上,所以师兄的建议就是把高度信息引入控制回路中,这个高度信息是PX4就可以获取的,这个我也在仿真中跑通并在实物上运行成果了。

无人机ROS控制代码

首先讲Gazebo仿真的

Gazebo建模在文章开头给过链接了,按照那个文章进行建模然后修改核心代码;将控制C代码制作成工作空间的格式,然后运行,Python不需要这个,可以一个一个Python文件运行来打开节点;

在仿真中控制无人机垂直飞到一定高度,然后打开摄像头,跟踪下方小车,然后用键盘控制小车移动,无人机就会跟踪小车进行移动了。

在用这个程序将无人机飞起来之后,打开摄像头,运行KCF系列程序

运行KCF,会手动框选目标小车,此时需要速度快一点,不然无人机会飘走;KCF程序会将目标框的坐标输出出来通过ROS程序发送给控制程序

然后运行控制程序,根据目标框中心的坐标与整个摄像头屏幕中心的偏离程度来进行控制,PID控制,输出无人机的速度信息,封装成MAVROS信息,发送给飞控板

上实物

在上面仿真跑通之后,就需要将程序移植到实物四旋翼上,对真实目标进行跟踪啦,当时我们测试了两套硬件设备。

第一套:使用NVIDIA jetson xavier nx作为板载计算机,其GPU搭载48个Tensor核心的384核NVIDIA Volta™ GPU,视觉加速器采用7通道VLIW视觉处理器,此计算机适用于无人机、智能摄像头、高分辨率传感器和其他IoT嵌入式系统等高性能AI系统。目标识别使用USB单目摄像头,其下方的Inter T265是追踪摄像头用于室内吊挂飞行时的室内定位使用,其包含两个语言镜头传感器、一个IMU和一个VPU,这样其可以利用环境中的视觉特征进行定位追踪;GPS用于室外实验定位;使用Pixhawk飞控模块,其是一款无人机控制系统

第二套:使用Inter迷你电脑NUC11TNKi5 薄款作为板载计算机,其使用了i5-1135G7处理器,8G内存,整机功率可以达到120瓦,与NVIDIA jetson xavier nx相比,此板载计算机的优势在于其优异的CPU性能,对于相关滤波跟踪算法此类只需要元素点乘运算而不需要像基于深度学习的目标跟踪算法那样海量的矩阵运算,在此计算机上测试跟踪算法的帧率能够比nx计算机快3-4倍,这样更有利于目标的稳定跟踪。

如果用深度学习比如YOLO算法的话,还是NX更快的,而且那个T265i是专门用来室内定位的,室外直接用GPS,因为PX4的程序是只有在知道位置信息的情况下才能进入off broad模式的,即板外模式,这里的板是说pixhawk,pixhawk外就是无人机上携带的那个计算机NX或者NUC。还有一个inter的T435i摄像头,海智同学是用这个摄像头和NX板来做YOLO的跟踪,435i的特点是有红外测距,所以他需要将摄像头读到物体的距离信息引入到跟踪程序当中,但当时发现一个BUG就是,红外对阳光下和阴影下测距会产生极大的漂移,使无人机不知道该怎么飞,具体现象就是,无人机跟踪我好好的,我从阳光下进入阴影处的一刹那,无人机就傻眼了。而我用这种普通的USB摄像头,单目的是不能直接得到距离信息的,需要有一个相机倾斜安装角度和引入飞机高度以及视频像素来计算物体的距离,距离的测算写到代码中,应该不会出现这个温度影响的漂移,但这个代码我懒惰了,不想写了。。。

还发现了一个问题就是,DSST算法已经能够很好的跟随物体的前后移动,大小的变化来改变框的大小了,我根据这个框的大小来控制无人机的前后运动,使得跟踪框的大小基本保持一个固定的大小,但帧数提高后,会使得跟踪框大小变化速度快,传到控制无人机那块之后就使得无人机前后晃动很快,白杨师兄建议加一个均值滤波,这个我可没懒惰,给写出来了

这里有两种均值滤波,一种是每10帧取平均当作一帧数据用,但这样会降低帧率,使得控制还是阶跃,而当我们把前10帧取平均当作第1帧数据,第2帧到第11帧取平均当作第2帧数据,这样下来,帧率并没有变化,但目标框的大小变化会变得很平滑。
从3帧平均,5帧平均到10帧平均都试一下,最后会发现10帧平均的时候已经比较平滑啦。

实物无人机控制方法

在用实物飞行时,摄像头连接到NUC上时,会出现找不到那个是摄像头的USB的现象,就会使程序启动失败,而且好像是先在ROS中开启MAVROS,再开启摄像头进行识别,具体记不清了,时间有点久了....然后写了一个寻找Usb的小程序,当然更好的方法是绑定接口,我懒了也没学...

还有一个细节是,需要在地面站电脑上装远程桌面nomachine和录屏软件Kazam

实物飞行运行的代码是DSST算法,这个算法有更好的尺度适应能力,更好的跟踪目标的移动,这里的DSST代码也进行了加入ROS节点的修改,与上面介绍的KCF大同小异,代码已经上传,大家可以自己进行学习。

十次滤波控制程序,上面有提到,就是将十次速度输出进行均值滤波,但仍然是十次输出,不改变频率,这样无人机的运动就会变得光滑

最后,现场图如下,帅气智哥担当目标~无人机可以跟随目标前后上下左右移动,而且移动比较光滑

至此,整个教程就结束啦,可能还有一些小细节没有写进去,时间太久了,记不太清了,很多硬件的东西没有详细介绍,比如飞控板和机载电脑以及摄像头的连接等等,这些大家可以自己去搜索一下。

代码可以到我的gitee上下载:an_KCF系列算法无人机跟踪: (gitee.com),顺便帮忙点个小心心呀

感谢

感谢毕业设计中老师、师兄和同学们的鼓励与帮助

欢迎联系交流

如果有问题需要交流可以加QQ:980439590,但希望可以请我喝一杯奶茶哈哈


参考文献

1.双系统启动效果_哔哩哔哩_bilibili

2.小鱼的一键安装系列 | 鱼香ROS

3.【Autolabor初级教程】ROS机器人入门_哔哩哔哩_bilibili

4.Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

5.仿真平台基础配置 · 语雀

6. (17条消息) PX4无人机-Gazebo仿真实现移动物体的跟踪_解矣。的博客-CSDN博客_gazebo 无人机

7.YOLO V5的安装与使用_?-ldl的博客-CSDN博客_yolov5下载

8.『ML笔记』HOG特征提取原理详解+代码_布衣小张的博客-CSDN博客_hog代码

9.图像学习-HOG特征 - 简书 (jianshu.com)

10.João F. Henriques

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu-KCF/DSST算法无人机跟踪仿真/实物保姆级教程 的相关文章

  • 基本的shell编程格式+简单的脚本实例 --- shell脚本编程教程之二

    温习shell编程基础的要点 xff1a 正则表达式的要点 xff1a 39 39 a 39 39 a 61 61 a aa aaa 39 43 39 grep E 39 a 43 39 61 61 grep 39 a 43 39 39 3
  • shell if条件分支编程 --- shell脚本编程教程之三

    数学运算 xff1a vim math sh a 61 1 b 61 2 c 61 a 43 2 或者 c 61 a 43 b echo c 条件判断 xff1a 格式1 if 条件 then 条件为真执行的任务 fi 格式2 fi 条件
  • VIM 常用快捷键

    转载 xff1a https www cnblogs com markleaf p 7808817 html 一 移动光标 h j k l 上 xff0c 下 xff0c 左 xff0c 右 ctrl e 移动页面 ctrl f 上翻一页
  • Qt5 对xml文件常用的操作(读写,增删改查)

    微信搜索关注公众号 郑州行疆户外 了解软件工程师的业余户外生活 项目配置 pro文件里面添加QT 43 61 xml include lt QtXml gt xff0c 也可以include lt QDomDocument gt 项目文件
  • Shell分支语句case···esac语法

    Shell编程 xff1a case esac多分支选择编程 也多常用于菜单选择 语法 xff1a case 值 in 模式1 command1 command2 command3 模式2 xff09 command1 command2 c
  • Ubuntu使用iptables配置防火墙提示:unrecognized service(Ubuntu配置iptables防火墙)

    Ubuntu默认安装是没有开启任何防火墙的 当使用service iptables status时发现提示iptables unrecoginzed service 意思是无法识别的服务 以下方法来自http blog csdn net l
  • CMake使用问题汇总

    cmake 指定编译类型 主要用在vs这种支持多配置的集成开发环境中 xff0c 可以在CMakeLists txt中指定 xff0c 也可以在CLI中指定 测试的时候发现在CMakeLists txt定义时不能使用自定义类型 xff0c
  • Shell编程,shift参数操作

    shift参数操作 xff0c 是将参数从左到右逐个移动 比如 xff1a 现在有 1 2 3 4 5 几个参数 shift操作后 xff0c 1被处理过之后 xff0c 2变为 1 3变为 2 4变为 3 5变为 4 就这样依次变动 sh
  • Java入门总览

    Java入门总览 1 JDK的安装 可以去官网下载 xff0c 有各种平台和各种版本的软件 目前常用的 xff0c 网上介绍多的大都是jdk1 8 0 211此版本 Linux系统和Windows系统安装起来都很方便 2 环境变量的配置 配
  • 示例:Linux应用程序遍历当前系统的PCI设备

    使用应用程序遍历设备上的所有PCI设备 xff0c 通过遍历这些设备 xff0c 可以获取到每个设备对应的bus号 xff0c dev号 xff0c func号 xff0c 以及每个PCI设备的额vendorID和deviceID 示例程序
  • 示例:Linux设备属性节点驱动,以及cat, echo操作

    在写Linux字符驱动的时候 xff0c 经常涉及到一些驱动需要在 sys目录或子目录下创建 xff0c 一个属性节点 xff0c 以便与 xff0c 不用查看驱动的版本信息 xff0c 时间等等一些属性信息 xff0c 以判断驱动程序加载
  • 一个双非学校的本科生的春招经历

    截止到目前各大公司的校招也已经基本进入尾声 xff0c 在这场春招中我也试着投递了几家公司 xff0c 但是效果不是太好 先说我投递的第一家 腾讯 xff0c 参加腾讯的笔试之前根本没有参加过任何相关的公司招聘的线上笔试 xff0c 这是我
  • C++多态的实例

    1 1 多态的概念 简单理解 xff1a 同一个接口 xff0c 多种实现方式 xff0c 让不同类的的对象对同一件事情可以采用不同方法去做 1 2 多态的作用 xff08 1 xff09 应用程序可以不必为一个派生类编写功能调用 xff0
  • Linux下的多进程编程——fork(),exec()等函数的使用

    Linux下的多进程编程初步 1 引言 对于没有接触过Unix Linux操作系统的人来说 xff0c fork是最难理解的概念之一 xff1a 它执行一次却返回两个值 fork函数是Unix系统最杰出的成就 之一 xff0c 它是七十年代
  • APM学习--Skywalking安装(5.0.0版本)

    Requirements JDK 6 43 xff08 instruments application can run in jdk6 xff09 JDK8 SkyWalking collector and SkyWalking WebUI
  • FreeRTOS消息队列

    FreeRTOS消息队列 队列又称消息队列 xff0c 是一种常用于任务间通信的数据结构 xff0c 队列可以在任务与任务间 中断和任务间传递信息 xff0c 实现了任务接收来自其他任务或中断的不固定长度的消息 xff0c 任务能够从队列里
  • 嵌入式前景怎么样

    现在物联网的发展也把之前大家没有注意过的嵌入式给带动起来了 xff0c 其实想去学习嵌入式的人还真不少 xff0c 不过这其中也会有人担心自己的发展前景 xff0c 下面可以一起先来了解下嵌入式前景怎么样 目前 xff0c 嵌入式开发人才需
  • datax同步数据:数据源:mongo,目标源:hdfs

    一 配置文件mongo hdfs json 34 job 34 34 setting 34 34 speed 34 34 channel 34 2 34 content 34 34 reader 34 34 name 34 34 mongo
  • 做程序媛这几年,感受?体验?

    首先 感受 和男程序员一个样 真不是废话 BUG是修不完的 但是不能放过它 因为你的内心会遭受煎熬 直接进入体验 就不用重复的文字去啰嗦了 直接上图哈 以下的这几种情况 在我的生活中 是真的不断出现 连样式都没变过 first 修电脑AND
  • 天猫精灵与oauth的认证接入流程(AliGenie智能家居接入流程)

    写在前面的叨叨 xff1a 对于天猫精灵的对接网上的教程也是颇少的 xff0c 所以希望我的记录过程也能对他人学习有所帮助 xff0c 要想学一样新的技术必须得找到相关技术文章好好专研了 xff0c 在学习的路上孜孜不倦 xff0c 偶遇难

随机推荐

  • 致敬2016年我的每一次选择。

    2016年 对我来说 是不平凡的 不是因为经历了什么永生难忘的经历也不是因为我做了什么伟大的事情 只是因为毕业了 我毕业了 多么开心却又悲伤的故事 我开心在我终于可以做自己想做的事情 悲伤的是当同学们的父母都陆续为他们铺好以后的路的时候 我
  • 打开计算机的管理需要在控制面板中创建关联

    今天在工作中发现当我选择计算机 管理时提示我需要在控制面板中创建关联 xff0c 如下图所示 xff1a 于是 xff0c 我便上百度搜索了一下 xff0c 答案是这样的 xff1a 修改 span style font family no
  • ftp身份认证时登录框反复弹出以及ftp常用配置

    1 若我们想访问一个人的ftp站点 xff0c 直接通过浏览器直接访问就可以了 xff08 ftp 要访问主机A的IP地址 xff09 如果对方开启了基本身份认证的话 xff0c 我们就需要输入正确的用户名及密码才可正常访问 xff0c 即
  • Linux下挂载U盘、ISO、光盘、rpm

    1 挂载U盘 1 xff09 将U盘连接到虚拟机后 xff0c 使用fdisk l xff08 注意 xff0c 这是list单词的首字母l xff09 命令查看当前U盘的设备符号 2 xff09 创建目录 mnt usb xff0c 以备
  • unity 3D学习日记:创建一个小场景并编写简单C#移动脚本

    学习Unity 3D第一周 xff0c 完成的目标一是创建一个小场景 xff0c 用角色控制器在场景里行走 xff1b 二是编写一个简单的移动脚本 一 创建一个小场景 xff0c 用角色控制器在场景里行走 1 先安装Unity 3D 5 3
  • 基于Unity3D平台的三维虚拟城市研究与应用

    0 引 言 随着现代城市的不断拓展延伸 城市空间多层次 立体模式管理逐渐成为城市规划管理的发展趋势 1 实现城市空间信息管理模式从二维到三维的转变 三维虚拟城市技术 已经成为人们关注和研究的热点 2 三维虚拟系统具有多维信息处理 表达和分析
  • unity:C#控制人在真实环境中行走

    自己在学习unity的课程中遇到了 xff0c 有的地方还没怎么太理解上去 xff0c 先做个笔记 xff0c 顺便看看有没有需要的人 1 搭建一个小场景 xff0c 一个需要控制的 人 xff08 添加CharacterControlle
  • unity 3D:自动寻路

    首先 xff0c 搭建一下场景 xff0c 场景要求 xff1a 有遮挡 xff0c 设置好不可走区域为navigation static 以及 not walkable 在人身上添加Nav Mesh Agent 设置好后勾选显示导航网格
  • 数据结构 ——c++实现(知识点集合)

    数据结构 c 43 43 实现 xff08 知识点集合 xff09 某不知名学狗的复习记录 xff0c 包含数据结构基本概念 xff0c 线性表 xff0c 栈 队列 递归 xff0c 串 数组 广义表和树和森林内容整理 主要整理了知识点
  • Unity3D 使用SceneManager跳转/加载场景

    很久没有更新博客了 xff0c 最近也是还在学习U3D 下面写一下使用SceneManager跳转 加载场景 我们假设要点击一个按钮跳转 xff0c 那么我们只要把跳转的代码写进按钮点击事件里就好了 其实加载场景很简单 xff0c 只需要写
  • [OpenCV] aruco Markers识别 小车巡线

    小车巡线代码 include lt ros ros h gt include lt sensor msgs Image h gt include lt geometry msgs Twist h gt include lt cv bridg
  • 备份ubuntu

    在使用Ubuntu之前 xff0c 相信很多人都有过使用Windows系统的经历 如果你备份过Windows系统 xff0c 那么你一定记忆犹新 xff1a 首先需要找到一个备份工 具 通常都是私有软件 xff0c 然后重启电脑进入备份工具
  • Docker - docker build 命令详解

    docker build 命令原理 docker build 命令从 Dockerfile 和上下文构建镜像构建的上下文 xff1a 位于指定 PATH 或 URL 中的一组文件构建过程可以引用上下文中的任何文件 xff0c 例如 xff0
  • RealSense二次开发

    转载 xff1a librealsense2查看相机设备信息 JavaShuo 文章目录 1 librealsense2设备信息读取 xff12 xff0e realsense 投影函数和反投影函数3 深度相机与彩色相机的坐标变换 1 li
  • 大规模MIP的精确算法和实现

    大规模MIP的精确算法和实现 大规模MIP的精确算法和实现 xff1a 目录第1部分 xff1a CPLEX的Java API详解1 CPLEX简介2 构建简单的模型3 CPLEX的高级应用 第2部分 xff1a Gurobi的Python
  • 两种Dockerfile文件配置

    注意 xff1a xxx是您的项目名称 xff01 Xmx xff1a 堆最大值 xff1b Xms xff1a 堆初始值 COPY指令只能从执行docker build所在的主机上读取资源并复制到镜像中 而ADD指令还支持通过URL从远程
  • 网络编程-----在线词典项目(服务器)

    服务器端 span class token macro property span class token directive keyword include span span class token string lt stdio h
  • 模型的图优化

    图优化 最近在整理之前的一些工作内容 记录下来温故而知新 在各种开源推理框架中 xff0c 我们总能看到有一种graph optimizer技术 xff0c 主要是对用户想要运行的网络模型进行一种网络结构层面的优化 xff0c 剔除不需要的
  • 学C++有多难,你知道吗?

    都2020年了 xff0c 还要学C 43 43 吗 xff1f C 43 43 好多理工科大学里面都有 xff0c 它的学习难度比其他编程语言比如Python Javascript 和Java等等难 那为什么呢 xff1f C 43 43
  • Ubuntu-KCF/DSST算法无人机跟踪仿真/实物保姆级教程

    KCF算法无人机跟踪 介绍 自己搭建的无人机跟踪实验 xff0c 主要讲软件 xff0c 硬件的需要等等 基础知识准备 整个系统需要两部分 xff0c 识别程序和控制无人机运动的程序 xff0c 都是Python脚本 xff0c 但运行需要