- 博客(883)
- 资源 (46)
- 问答 (6)
- 收藏
- 关注
原创 python多进程的使用
且注意传递的参数尽量不要太大(如大的模型、大的数据集),否则会占用很大内存,严重影响速度。pool.apply_async( ):为非阻塞,即不用等待当前运行的子进程执行完毕(各子进程并行执行,且主进程与子进程之间、各子进程之间都不会互相等待),随时根据系统调度来进行进程切换。pool.apply( ):阻塞型,各子进程需依次执行,主进程会被阻塞直到函数执行结束。多进程执行过程中,子进程出错时,将直接跳出,执行主进程,且不会报错。不用多线程要跑34个小时,用多进程1-2分钟检查完成。
2024-04-17 14:38:37 317
原创 labelImg将图像标签显示到界面
打开View的显示类别但是颜色不够清晰,我想自己定制我的象棋红色和黑色两种。并且把字体方法一些。可以看到最终追溯到这里libs/shape.py的改造generateColorByText函数generateColorByText 函数将输入文本转换为一个颜色值。它使用以下步骤:将文本转换为 Unicode 字符串,以确保与 Python 3 的兼容性。使用 hashlib.sha256 对文本进行哈希处理。这会生成一个唯一的十六进制哈希值。将哈希值转换为一个整数。
2024-04-11 03:02:32 311
原创 加了自定义的命名空间报错error: expected ‘}’ at end of input
加了自定义命名空间报错百度解释说错误信息显示出现在命名空间结束的位置。根据错误信息看起来是因为缺少了一个命名空间的闭合括号 ‘}’。建议仔细检查命名空间的定义,确保每个命名空间都有一个完整的定义。请确保每个命名空间都有一个开放的 ‘{’ 和一个闭合的 ‘}’。但是我检查了该hungarianoper.cpp 文件,命名空间都是完整的,怎么改也解决不了。
2024-03-04 17:07:06 240
原创 运行labelme报错 Cannot mix incompatible Qt library (version 0x50c00) with this library (version 0x50c01)
我在anaconda下的conda环境下安装了labelme 环境,之前还能用,然后有一天我安装了C++ 版本qt 以及qt creator,再进入conda 环境labelme就不能用了。
2024-03-02 17:27:55 321
原创 C++ 使用 nlohmann::json存储json文件
是 C++ 中一个流行的 JSON 库,由 Niels Lohmann 开发。它提供了一个简单而强大的 API,用于解析、构建、操作和序列化 JSON 数据。是一个模板类,可以用来表示 JSON 数据。它可以表示 JSON 对象、数组、数值、字符串、布尔值和空值等各种类型。支持方便的成员函数和操作符重载,使得对 JSON 数据的访问和修改非常直观和简便。
2024-03-02 15:02:31 1005
原创 terminate called after throwing an instance of ‘std::logic_error‘
我的错误原因是在定义结构体内变量并初始化时,误把整形赋值给了string变量。编译正常,运行的时候报错。
2024-02-29 15:45:15 177
原创 C++ sort函数中自定义比较函数并传入变量、类的成员变量
lambda函数中的[camera_param_cx, same_traffic_light_max_area]捕获了外部变量camera_param_cx和same_traffic_light_max_area,然后将它们作为参数传入compareRectByScore函数中。这样就可以在compareRectByScore函数中同时使用两个额外的变量了。在vector排序时候,有时候需要自定义排序,这个教程网上也很多,但是一般都是只使用了vector元素内部的变量,这里给出传入变量的实例代码。
2024-02-23 11:52:53 232
原创 C++学习笔记——typedef和using
using更为灵活,在现代C++中更受推荐,特别是在需要创建模板类型别名的情况下。typedef在兼容较旧代码、较旧C++标准的情况下仍然有其价值,但对于现代C++来说,using更适用。
2024-02-06 15:54:55 954
原创 yolov8训练自己的关键点检测模型
鼠标点击右键,出现菜单栏,选择Create Retctangle,将需要检测的物体用矩形框框起来,然后给矩形框命名,点击弹出的框里面的命名,然后点击OK,Group ID可根据自己具体需求进行处理。右键出现菜单栏,点击Create Point ,然后左键点击需要标注的位置并命名,随后点击OK。进入创建的labels.txt存在的文件夹下,输入以下命令打开labelme。创建labels.txt文件,内存放物体类别名称与关键点名称。先取消“保存图片数据”(减少标注文件大小);
2024-01-31 21:39:12 769 3
原创 在已经安装高版本 cuda11.3下安装tensorflow 1.15.0 gpu版本
tensorflow 1.15.0 版本的cuda要求不能太高 ,对应的cuda 和cudnn版本如下但是我们cuda已经安装了11.3,如果直接用pip 安装tensorflow,gpu 不会生效,报错因此我们需要使用conda安装,这样在虚拟环境中,他会自动下载cudatoolkit和cudnn,可以说很方便了。
2024-01-16 10:10:38 479
原创 Resnet Pytorch版本训练自己的分类数据集
看这个代码主要是想训练resnet版本的resnet分类模型,进行相机和雷达标定结果的验证自己码云备份自己码云备份。
2024-01-15 14:43:56 320
原创 在python 3.6下使用pip安装tensorflow gpu 1.14.0 时报错protobuf requires Python ‘>=3.7‘ but the running Python
在python 3.6下使用pip安装tensorflow gpu 1.14.0 时报错protobuf requires Python ‘>=3.7’ but the running Python不想升级python 3.6的。
2024-01-10 17:16:43 406
原创 将mjpg格式数转化成opencv Mat格式
在上述代码中,我们首先将 MJPEG 数据存储在 std::vector 类型的容器 mjpeg_vec 中。然后,我们使用 imdecode 函数将 mjpeg_vec 中的数据解码为 Mat 对象。要将 MJPEG 格式的数据转换为 OpenCV 的 Mat 格式,您可以使用 imdecode 函数。请注意,imdecode 函数返回的 Mat 对象可能为空(empty),这表示解码失败。因此,我们在代码中进行了空检查。2、v4l2_buffer 格式获取的mjpg格式数据转换成Mat格式。
2023-12-18 02:24:51 465
原创 top命令详解
top 是一个常用的命令行工具,用于实时监视系统的进程和系统资源使用情况。它提供了一个动态更新的终端界面,显示了各个进程的 CPU 使用率、内存占用、进程 ID、运行时间等信息。下面是 top 命令的一些常用选项和功能:显示进程信息:top 命令默认显示当前系统中运行的进程列表。每个进程的信息包括进程 ID(PID)、进程所有者、CPU 使用率、内存占用、进程状态、运行时间等。实时更新:top 命令会不断地更新显示的信息,以反映系统资源的变化。默认情况下,top 每隔 3 秒刷新一次显示。
2023-12-18 01:38:44 135
原创 jetson nano 编译出现/usr/bin/ld: cannot find -lcudart
jetson nano 编译出现/usr/bin/ld: cannot find -lcudart。
2023-12-17 23:10:53 177
原创 C++ 学习笔记——C++纯虚函数和抽象类
C++中包含纯虚函数的类,被称为是“抽象类”。抽象类不能生成(new出)对象,只有实现了这个纯虚函数的子类才能new出对象。
2023-11-30 16:02:51 331
原创 deepsort使用tensorrt加速部署1——加载Onnx并转换成engine代码解读并保存engine文件
创建InferBuilder对象——创建Network对象——创建BuilderConfig对象——创建OptimizationProfile对象——创建OptimizationProfile对象——设置输入维度——创建解析器对象——解析ONNX模型文件——使用BuilderConfig对象构建TensorRT引擎——序列化引擎并保存到文件——创建执行上下文。上面代码我新增了读取onnx帮保存为engine的代码,这样就不用每次重新生成了。但是换硬件平台的时候,还是需要重新生成。
2023-11-29 01:45:46 225
原创 力扣学习笔记——239. 滑动窗口最大值
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。原文链接:https://blog.csdn.net/weixin_42405670/article/details/125193960。版权声明:本文为CSDN博主「鮀城小帅」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3。输出: [3,3,5,5,6,7]
2023-11-23 21:03:36 328
原创 力扣C++学习笔记——C++ 给vector去重
要使用std::set对std::vector进行去重操作,您可以将向量中的元素插入到集合中,因为std::set会自动去除重复元素。然后,您可以将集合中的元素重新存回向量中。
2023-11-20 16:07:24 597
原创 力扣C++学习笔记——C++ assign全面解析
c++assign是一个C++20标准中新增的头文件,主要提供了assign函数,。它是STL容器操作的重要一环,具有高效、简洁、易用的特点。assign函数有多个版本,一般使用的是容器类型相同或相似的版本。使用起来非常方便,只需一行代码即可完成多种常见操作。二、常用操作assign函数的常用操作包括:1.初始化容器2.复制容器元素3.插入元素4.删除元素三、注意事项使用assign函数时需要注意以下几点:1.容器类型必须相同或相容assign函数只能用于容器类型相同或相容的场合。
2023-11-20 10:39:49 1194
原创 C++学习笔记——C++ deque和vector的区别
C++中的std::deque(双端队列)和std::vector(向量)是两种不同的容器类型,它们有以下区别:内部实现方式不同:std::deque使用了一种双端队列的数据结构,它由多个块(chunks)组成,每个块内部存储一部分元素。而std::vector则使用了连续的内存块来存储元素。随机访问性能不同:由于std::vector的元素在内存中是连续存储的,因此它支持高效的随机访问,可以通过索引直接访问任意位置的元素。
2023-11-20 10:02:32 323
原创 力扣学习笔记——11. 盛最多水的容器
给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。虽然也能求出来,但是肯定超时,效率很低。代码写的很剪短优美。返回容器可以储存的最大水量。
2023-11-12 02:01:28 499
原创 力扣学习笔记——283. 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]
2023-11-12 00:18:01 227
原创 力扣学习笔记——1_两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。
2023-11-11 15:51:31 176
原创 力扣学习笔记——128.最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9。
2023-11-11 15:42:29 205
原创 力扣C++学习笔记——unordered_set 力扣
即 unordered_set 容器和 set 容器很像,唯一的区别就在于 set 容器会自行对存储的数据进行排序,而 unordered_set 容器不会。用于顺序容器,并且只能在尾部插入元素。它们在避免不必要的拷贝或移动操作方面提供了性能上的好处。是用于在容器中插入元素的成员函数。它们的主要区别取决于容器的类型。unordered_set 容器,可直译为“说明emplace插入数据是插入到开头的。三、unordered_set的初始化。函数都是在容器中就地构造新元素的方法。用于关联容器和无序容器,
2023-11-11 13:23:40 225
原创 python opencv 读取文件夹下所有MP4文件并解析成jpg图像
这段代码会遍历输入文件夹中的所有MP4文件,并将每个文件解析为JPG图像。解析后的图像将保存在输出文件夹中,每个MP4文件会在输出文件夹中创建一个子文件夹,其中包含解析后的JPG图像。将代码中的"path/to/input/folder"替换为包含MP4文件的实际输入文件夹的路径,将"path/to/output/folder"替换为希望保存JPG图像的实际输出文件夹的路径。你可以使用Python的OpenCV库来读取文件夹中的所有MP4文件,并将其解析为JPG图像。
2023-11-11 12:32:23 1444
原创 linux 查看当前目录下每个文件夹大小
要在 Linux 中查看当前目录下每个文件夹的大小,可以使用 du 命令(磁盘使用情况)结合其他一些选项。
2023-11-04 23:56:50 2946
原创 力扣学习笔记——49. 字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。示例 1:输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]示例 2:输入: strs = [“”]输出: [[“”]]示例 3:输入: strs = [“a”]输出: [[“a”]]
2023-10-25 01:12:40 284
原创 std::map和std::unordered_map
std::map 和 std::unordered_map 是 C++ 标准库中的两个容器,用于实现键值对的关联。它们之间的主要区别在于底层实现和性能特征。底层实现:std::map 是基于红黑树(一种平衡二叉搜索树)实现的有序映射容器,而 std::unordered_map 是基于哈希表实现的无序映射容器。排序:std::map 中的元素是按照键的排序顺序进行存储的,因此在遍历时会按照键的升序输出。而 std::unordered_map 中的元素是根据哈希函数计算的哈希值存储的,没有固定的顺序。
2023-10-24 00:53:04 607
21_0515_Qt_test3.rar
2021-05-19
qitiandashengdiyun-labelImg-master.zip
2021-05-19
红绿灯检测图片数据集以及打好标签的xml文件.rar
2020-06-13
trained_weights.h5
2020-05-22
安全帽检测行人检测数据集视频图片.rar
2020-05-06
MTCNN和facenet实现人脸检测和人脸识别python源码
2020-04-27
自动驾驶行业报告.rar
2020-02-02
2018人工智能之自动驾驶研究报告.pdf
2020-01-22
2018年aicity挑战赛第一题论文Tang_Single-Camera_and_Inter-Camera_CVPR_2018_paper.pdf
2020-01-22
深度学习的目标跟踪算法综述.pdf
2020-01-15
2001-3-0401数据库作业.rar
2020-01-12
opencv-4.2.0-vc14_vc15.exe
2019-12-30
CIFAR-10数据集
2019-04-23
贴片元件封装尺寸图大全(word文档)
2019-03-21
STM32F407ZET6最小系统板
2019-03-21
树莓派开源原理图汇总
2018-11-19
利用三个定时器驱动三个步进电机的STM32程序
2018-05-23
如何同时开两个yolo v5的程序,调用不同的模型进行视频实时检测
2021-09-14
有人熟悉英伟达的deepstream吗,
2021-06-25
opencv无法读取高分辨率视频4k或者2k
2021-01-16
opencv无法读取高分辨率视频4k或者2k
2021-01-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人