<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[传统图像处理，深度学习，目标检测（分类，检测，分割），多目标追踪，部署等]]></title><description><![CDATA[如果我的博客中出现错误，欢迎各位大佬批评指正，如有侵权，欢迎联系我删除相关内容]]></description><link>https://blog.youkuaiyun.com/ycx_ccc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ycx_ccc]]></copyright><item><title><![CDATA[【C#|C++】C#调用C++导出的dll之非托管的方式]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/149756788</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/149756788</guid><author>ycx_ccc</author><pubDate>Tue, 29 Jul 2025 22:26:28 +0800</pubDate><description><![CDATA[_declspec#else__declspec__declspec 是 Microsoft C++ 编译器特有的关键字，用来为变量、函数、类等添加 存储类属性 或 编译器指令，从而控制它们的行为或链接方式。我们上述的操作就是给它一个更显示的指令名称，方便我们去理解和使用。..."demo.dll"这里需要注意的是，如果使用的是P/Invoke的方式来对接，那么我们不能导出类，只能导出方法，如果我们写的是类，那么需要再封装一下，变成一个独立的方法给c#调用。]]></description><category></category></item><item><title><![CDATA[【深度学习|目标检测】YOLO系列anchor-based原理详解]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/146261537</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/146261537</guid><author>ycx_ccc</author><pubDate>Fri, 14 Mar 2025 17:22:21 +0800</pubDate><description><![CDATA[然后我们将这个预设好的grid点的左上角坐标和每个grid上的anchor给到模型最后的output，从output的最后一个维度拆分，拿到xy，wh，conf =（objectness，nc）一共三组结果，其中conf的结果是可以直接使用的，但是xy，wh还需要和我们预设好的grids和anchors，以及每个检测头的stride来得到最后的精确检测结果。正样本的匹配然后loss计算是为了让模型朝着更小的损失去迭代更新这样的权重，负样本的作用则是让模型的权重往更远离能检测出错误目标的权重方向迭代。]]></description><category></category></item><item><title><![CDATA[【C#】C#多线程问题记录与解决]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/145896765</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/145896765</guid><author>ycx_ccc</author><pubDate>Thu, 27 Feb 2025 11:11:29 +0800</pubDate><description><![CDATA[来遍历这个列表，foreach在多线程使用时是内存不安全的，除非在修改列表的代码执行处加上lock并在遍历列表的代码执行处加上lock来保护。的bug，这说明在当前线程执行for循环遍历的时候，其他线程在此时也访问了这个这个列表的内存并作了修改。通过创建一个全局队列，不同线程共享一个队列，一个往里存（入队），一个往外读（出队），保证数据流的顺序性不冲突。2、foreach遍历之前，先将需要遍历的列表new一块新的内存来拷贝一份，然后遍历新的这个列表；关于列表的多线程，在遍历的时候，有可能出现。]]></description><category></category></item><item><title><![CDATA[【C#】C# 使用onnxruntime报错记录]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/144830253</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/144830253</guid><author>ycx_ccc</author><pubDate>Mon, 06 Jan 2025 09:44:24 +0800</pubDate><description><![CDATA[导致这个bug的原因是，在win11系统下的windows/system32文件夹下有一个默认的onnxruntime.dll，当我们的C#项目在编译这行代码时，会默认读取到windows/system32下面的onnxruntime.dll，而不是我们在nuget中安装的onnruntime.gpu依赖包。]]></description><category></category></item><item><title><![CDATA[【深度学习|目标跟踪】StrongSORT 详解(以及StrongSORT++)]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/144032510</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/144032510</guid><author>ycx_ccc</author><pubDate>Wed, 27 Nov 2024 18:00:17 +0800</pubDate><description><![CDATA[在DeepSort中使用的是一个普通的kalman filter，即通过状态量直接估计下一时刻的状态，只有位置信息，而StrongSort中融合了目标的置信度信息，在计算噪声的均值和方差时，加入了track对应的检测目标的置信度信息，自适应的调整噪声。相比较于DeepSort中将每次的匹配上的目标的特征向量直接存储到对应track的gallery中，StrongSort的做法可以有效的平滑视频中间由于遮挡，噪声或其他不利因素导致的目标特征的衰减，使得在特征在匹配时的准确率能够有效提升。]]></description><category></category></item><item><title><![CDATA[【深度学习|目标跟踪】多目标跟踪之训练reid网络]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/143948967</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/143948967</guid><author>ycx_ccc</author><pubDate>Thu, 21 Nov 2024 16:57:11 +0800</pubDate><description><![CDATA[文件夹，在这下面准备若干个子文件夹，表示一共有多少类别，每个文件夹中准备好对应类的图片即可。按照分类任务那样准备数据集，即创建一个。]]></description><category></category></item><item><title><![CDATA[【深度学习|onnx】往onnx中写入训练的超参或者类别等信息，并在推理时读取]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/143938650</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/143938650</guid><author>ycx_ccc</author><pubDate>Thu, 21 Nov 2024 11:57:17 +0800</pubDate><description><![CDATA[在训练完毕之后，我们先使用。]]></description><category></category></item><item><title><![CDATA[【深度学习|目标跟踪】DeepSort 详解]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/143871996</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/143871996</guid><author>ycx_ccc</author><pubDate>Tue, 19 Nov 2024 14:23:51 +0800</pubDate><description><![CDATA[DeepSort使用了一个简单的卷积神经网络来提取检测框中的目标特征向量，这里的网络可以自己diy，也可以使用目前主流的现有的CNN，如ResNet18，ResNet50等。：运动特征与外观特征的作用是相辅相成的，试想一下，运动特征可以匹配上短期内的物体位移带来的目标位置变化，但是遮挡之后目标的位置中断导致无法匹配上，而外观特征可以搜寻过往的track的特征，来进行匹配。Sort的代价矩阵是由当前帧的运动特征与前一帧的运动特征的卡尔曼预测值进行iou的比对来产生的，这样做会导致较大的局限性。]]></description><category></category></item><item><title><![CDATA[【CMake|TensorRT】Windows下使用CMake编译项目，yolov8-seg为例子]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/143689535</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/143689535</guid><author>ycx_ccc</author><pubDate>Tue, 12 Nov 2024 10:03:12 +0800</pubDate><description><![CDATA[然后点击finish，最后再点击generate即可生成我们的.sln项目文件。指定我们的项目路径，和build的路径（没有build文件夹则会自动创建）。]]></description><category></category></item><item><title><![CDATA[【C#/C++】C++使用托管式的导出dll的方式给C#调用]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/143059551</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/143059551</guid><author>ycx_ccc</author><pubDate>Tue, 29 Oct 2024 13:51:23 +0800</pubDate><description><![CDATA[这中托管式的好处就是，我们可以在我们的项目中写上很多种我们想导出的dll的实现，而不需要修改我们的基础类中的方法，我们可以根据需要写好一个个这样的DLL_MANAGER1, DLL_MANAGER2, …等等，然后在开始写上 #ifdef xxx，我们就可以根据需要导出对应的dll包，只需要在预处理器定义那边删减即可。]]></description><category></category></item><item><title><![CDATA[【深度学习】ubuntu系统下docker部署cvat的自动标注功能（yolov8 segmentation）]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/142525807</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/142525807</guid><author>ycx_ccc</author><pubDate>Thu, 26 Sep 2024 09:30:52 +0800</pubDate><description><![CDATA[安装docker和cvat的流程我这里就不赘述了，这样的教程还是挺多的，但是对于使用docker在cvat上部署自动标注算法的整个详细流程，网上可查到的资料可以说几乎没有，我在踩了几天的坑之后，摸索出来一套流程，现记录于此，方便自己也方便有需要的朋友查看。]]></description><category></category></item><item><title><![CDATA[【深度学习】使用VScode远程服务器GPU进行训练]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/141387909</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/141387909</guid><author>ycx_ccc</author><pubDate>Wed, 21 Aug 2024 11:59:16 +0800</pubDate><description><![CDATA[我这里使用的是mobaxterm来传输文件，视频中的作者使用的是另外一种软件，大家都可以尝试使用，我是因为电脑中本来就有这个mobaxterm就懒得下载up推荐的那个了。下载好mobaxterm之后我们打开它，点击。打开vscode，在插件管理处安装插件。回车之后即可连接成功！]]></description><category></category></item><item><title><![CDATA[【深度学习|目标跟踪】快速入门卡尔曼滤波！]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/141060636</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/141060636</guid><author>ycx_ccc</author><pubDate>Fri, 09 Aug 2024 15:31:03 +0800</pubDate><description><![CDATA[卡尔曼滤波是一种最优估计的算法，我们可以把他理解成一个矫正算法，或者是一种插值算法。卡尔曼滤波可以根据我们对当前任务场景的运动学建模方程以及前一时刻的状态来估计下一时刻的状态。卡尔曼滤波被广泛应用于定位导航。]]></description><category></category></item><item><title><![CDATA[【深度学习|目标跟踪】SSD+Sort实现多目标跟踪（Multiple Objections Track）！]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/140758397</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/140758397</guid><author>ycx_ccc</author><pubDate>Tue, 30 Jul 2024 16:46:23 +0800</pubDate><description><![CDATA[就是图论中寻找最大匹配的算法，即要保证匹配到最多的边，并且保证这些边的加权和最小。关于匈牙利匹配算法，网上有十分多的教程，讲的也都很细致，这里我精简一下描述。]]></description><category></category></item><item><title><![CDATA[【C#/C++】C#调C++的接口，给C++传结构体数组]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/140657619</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/140657619</guid><author>ycx_ccc</author><pubDate>Wed, 24 Jul 2024 12:07:39 +0800</pubDate><description><![CDATA[C#软件创建了一个结构体数组用来存储图像的区域信息，分别是矩形框的左上像素的xy坐标和矩形框右下像素的xy坐标。需要传入给调用的C++函数的参数列表中，我们选择使用C#传入一个结构体数组指针的方式，C++的参数列表中也使用数组指针来接收这个变量。首先要保证C#和C++两边定义的结构体要完全一致。]]></description><category></category></item><item><title><![CDATA[【C#/C++】C++定义一个返回uchar*的函数，调用函数时接收的数据异常]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/139503242</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/139503242</guid><author>ycx_ccc</author><pubDate>Thu, 06 Jun 2024 16:22:39 +0800</pubDate><description><![CDATA[这个错误代码中，我们虽然能够在main函数中获得函数返回的一个非空的uchar* 指针变量，但是这个指针其实是一个无效的指针，因为这个指针指向的图像是在畸变矫正函数内部定义的一个局部变量，因此在返回这个指针之后，会自动销毁这个图像的数据，所以我们在函数外部获取的指针是无效的。我是想实现一个图像畸变矫正的函数，由于相机的硬件原因（相机内外参数，视野）会导致我们取到的图有一定程度的畸变，在实际的应用中，我们需要先对相机进行标定，获得相机的参数，比如相机的内参矩阵，畸变系数，旋转向量，位移向量等。]]></description><category></category></item><item><title><![CDATA[【Linux】解决ubuntu20.04版本插入无线网卡没有wifi显示【无线网卡Realtek 8811cu】]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/138133789</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/138133789</guid><author>ycx_ccc</author><pubDate>Tue, 23 Apr 2024 17:40:40 +0800</pubDate><description><![CDATA[下拉之后发现了好几个网卡设备，一共有4个，我不确定我外接的网卡是哪一个，因此我把外接网卡拔掉之后又输入了一次。然后重启电脑，就可以看到我们的wifi链接设置了！到这里我可以确定我的无线网卡是。]]></description><category></category></item><item><title><![CDATA[【深度学习|基础算法】4.SSD目标检测]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/138012775</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/138012775</guid><author>ycx_ccc</author><pubDate>Sun, 21 Apr 2024 12:50:45 +0800</pubDate><description><![CDATA[我是照着bubbling大佬的pytorch-ssd代码走了一遍，因此我会在他的代码的基础上去进行我的各种理解，大家可以去看看他关于SSD的教学博客—>睿智的目标检测23——Pytorch搭建SSD目标检测平台。]]></description><category></category></item><item><title><![CDATA[【深度学习|基础算法】3.VggNet（附训练|推理代码）]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/137779850</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/137779850</guid><author>ycx_ccc</author><pubDate>Mon, 15 Apr 2024 16:22:35 +0800</pubDate><description><![CDATA[vgg是由牛津大学视觉几何组（Visual Geometry Group）的这篇论文中提出的模型，并且在2014年的ILSVRC物体分类和目标检测任务中分别斩获第二和第一名的好成绩，被cv界以VGG的名称所熟知。VGG中提出以小卷积核多层卷积的核心思想，显著的提升了模型的性能（后面细讲），并且vgg的网络架构十分的清晰，卷积核与池化层的参数稳定，容易迁移到不同的数据集中来适应不同的任务。]]></description><category></category></item><item><title><![CDATA[【Leetcode|#88.合并两个有序数组】]]></title><link>https://blog.youkuaiyun.com/ycx_ccc/article/details/137741456</link><guid>https://blog.youkuaiyun.com/ycx_ccc/article/details/137741456</guid><author>ycx_ccc</author><pubDate>Sun, 14 Apr 2024 12:55:41 +0800</pubDate><description><![CDATA[给你两个按排列的整数数组和，另有两个整数 m 和 n ，分别表示和中的元素数目。请你合并到中，使合并后的数组同样按排列。注意：最终，合并后数组不应由函数返回，而是存储在数组 nums1 中。为了应对这种情况，nums1 的初始长度为 m + n，其中前 m 个元素表示应合并的元素，后 n 个元素为0 ，应忽略。nums2 的长度为n。]]></description><category></category></item></channel></rss>