
计算机视觉
文章平均质量分 55
计算机视觉
颢师傅
这个作者很懒,什么都没留下…
展开
-
【向量数据库】相似向量检索Faiss数据库的安装及余弦相似度计算(python)
在使用 Faiss 库进行人脸余弦相似度计算的应用中,通常会遵循以下步骤:特征提取:首先,需要使用人脸识别模型对人脸图像进行特征提取。这些特征通常是高维度的向量,代表了每张人脸图像的抽象特征。构建 Faiss 索引:将提取出的人脸特征向量构建成 Faiss 可以处理的索引结构。通常会选择使用内积(dot product)作为相似度度量方式,因为 Faiss 默认使用内积进行近似的余弦相似度计算。原创 2023-12-18 21:45:00 · 2721 阅读 · 0 评论 -
【SOPHON】算能盒子SE-16的C++模型转换
本文以 arcface 为例, 介绍如何编译迁移一个onnx模型至TPU平台运行。有疑问具体可参考。原创 2023-10-27 17:57:36 · 468 阅读 · 0 评论 -
【SOPHON】算能盒子SE-16的配套x86交叉编译环境搭建
tpu-mlir 为TPU编译器工程提供一套完整的工具链,可以将不同框架下预训练的神经网络,转化为可以在算能TPU上高效运行的二进制文件BModel。目前直接支持的框架包括tflite、onnx和Caffe。libsophon 提供BMCV、BMRuntime、BMLib等库,用来驱动VPP、TPU等硬件,完成图像处理、张量运算、模型推理等操作,供用户进行深度学习应用开发。原创 2023-10-19 13:49:23 · 1097 阅读 · 0 评论 -
【向量数据库】相似向量检索Faiss数据库的安装及余弦相似度计算(C++)
Faiss 是一个强大的向量相似度搜索库,具有以下优点:高效的搜索性能:Faiss 在处理大规模向量数据时表现出色。它利用了高度优化的索引结构和近似搜索算法,可以快速地执行最近邻搜索和相似度匹配,具有很低的查询延迟。高度可扩展:Faiss 提供了多种索引结构和算法的选择,包括 k-d树、IVF(Inverted File System)和 PQ(Product Quantization)等。这些索引结构能够轻松应对大规模的向量数据集,并支持高效的并行计算和分布式处理。原创 2023-09-07 23:45:00 · 1883 阅读 · 1 评论 -
【判别方法】模糊图像的拉普拉斯判别,C++及python版本
通过判断一组合格的图像,利用下列代码,得到所有图像的模糊值,取其中最小值作为模糊的阈值下限,在实际应用中,一旦超过该值,则认为图像清晰,小于该值,则认定图像模糊。原创 2023-08-22 17:42:49 · 723 阅读 · 0 评论 -
【Deepsort】C++版本Deepsort编译(依赖opencv,eigen3)
广泛的功能:Eigen3支持多种线性代数运算,包括向量和矩阵的基本运算、线性方程组的求解、特征值和特征向量的计算、矩阵分解(如LU分解、QR分解等)、广义特征值问题的求解等。Eigen3是一个C++模板库,提供了许多用于线性代数运算的功能,如向量、矩阵、矩阵运算、线性方程组求解等。它的API设计简洁明了,提供了丰富的运算符重载和友好的语法,使得代码编写更加简单和可读。高性能:Eigen3使用了优化的算法和技术,具有出色的运行速度和高效的内存使用。它的源代码可在GitHub上获得,方便用户进行定制和扩展。原创 2023-08-01 20:10:22 · 2447 阅读 · 2 评论 -
【OnnxRuntime】在linux下编译并安装C++版本的onnx-runtime
通过按照上述步骤,您应该能够在Linux上成功安装ONNX Runtime。请注意,安装过程中可能需要根据您的系统和需求进行适当的调整。// 首先创建一个conda环境,因为./build.sh实际上调用的是./tools/cl_build/build.py。这将使用所有可用的CPU核心进行编译。如果希望使用指定数量的核心,可以将$(nproc)替换为所需的核心数量。安装CMake:可以通过包管理器(如apt、yum等)安装CMake。安装C++编译器:确保系统中已安装C++编译器,如GCC或Clang。原创 2023-07-31 20:22:38 · 11732 阅读 · 8 评论 -
【Opencv】视频跟踪算法KCF
KCF(Kernelized Correlation Filter)是一种基于核相关滤波器的目标跟踪算法。它通过学习目标的外观特征和使用核相关滤波器进行目标定位。KCF属于传统算法的单目标跟踪器。下面是对KCF跟踪算法的介绍:目标特征提取:KCF算法使用HOG(Histogram of Oriented Gradients)特征来表示目标的外观。HOG特征是一种局部纹理特征,通过计算图像中每个像素点周围的梯度方向直方图来描述目标的纹理信息。核相关滤波器:KCF算法使用核相关滤波器来进行目标定位。原创 2023-07-28 13:26:52 · 4649 阅读 · 13 评论 -
【NCNN】arm架构cpu的硬件加速代码样例
NCNN(Nihui’s CNN)是一个轻量级、高性能的深度学习推理框架,由腾讯优图实验室的大神Nihui开发。该框架在移动端应用和嵌入式设备上实现了高效的深度学习模型推理,具有较低的内存占用和高度优化的计算性能。原创 2023-07-25 15:22:07 · 1661 阅读 · 0 评论 -
【NCNN】NCNN中Mat的crop与resize方法
这段代码是为了将一个ncnn::Mat对象out中的像素数据从一个具有3个通道的图像数据im中提取出来,并实现贴图的效果。通过以上操作,可以将图像数据im中指定位置的像素数据提取出来,并填充到ncnn::Mat对象out中,从而实现贴图的效果。通过以上操作,可以将输入图像im中指定位置的像素数据,经过双线性插值的方式,缩放并存储到输出图像outim的指定位置。这段代码实现了将输入图像im中指定位置的像素数据,经过双线性插值的方式,缩放并存储到输出图像outim的指定位置。原创 2023-07-24 18:24:14 · 1125 阅读 · 1 评论 -
【NCNN】腾讯ncnn推理框架的简介及安装
ncnn(Ncnn Convolutional Neural Network)是一个轻量级的高性能深度学习框架,由腾讯公司开发。它专门为移动设备和嵌入式设备优化,旨在提供高效的推理性能和低内存占用。以下是ncnn的一些主要特点和优势:轻量级和高性能:ncnn被设计为轻量级框架,具有高效的推理性能。它使用优化的计算图和内存管理策略,以最大程度地减少内存占用和计算开销。跨平台支持:ncnn支持多种操作系统和硬件平台,包括Android、iOS、Linux、Windows等。原创 2023-07-20 19:07:49 · 11554 阅读 · 5 评论 -
【CV】从分类到回归:常见算法评价指标,如ROC,MAP等
在ROC曲线中,点(0,0)表示将所有样本都预测为负样本,点(1,1)表示将所有样本都预测为正样本,曲线越靠近左上角,表示模型的性能越好。与算术平均数、几何平均数和中位数等常见的平均数不同,调和平均数更加关注小数值,因为任何一个小于1的数的倒数都大于1,所以当一组数据中有个别数较小的时候,调和平均数会受到这些小数的影响而偏小。P-R曲线的优点是对于正样本的分类能力有更好的体现,对于每张测试图片,需要计算出该图片中每个物体类别的平均精度(AP),然后将所有物体类别的平均精度的平均值作为该图片的平均精度。原创 2023-06-25 15:37:57 · 1790 阅读 · 1 评论 -
【CV】EfficientNet相比resnet有哪些优点,什么是深度可分离卷积
高效的神经网络主要通过:1. 减少参数数量;2. 量化参数,减少每个参数占用内存目前的研究总结来看分为两个方向:一是对训练好的复杂模型进行压缩得到小模型;二是直接设计小模型并进行训练。(EfficientNet属于这类)深度可分离卷积中的深度卷积不改变输入通道数,再由逐点卷积的方式,将多通道信息相融合。ResNet和EfficientNet都是非常经典和高效的卷积神经网络,它们各有特点,适用于不同的场景和任务。原创 2023-06-25 10:23:55 · 2964 阅读 · 0 评论 -
【Atlas200】使用sendData及getResult接口进行pipline目标检测框数据读取(C++)
当今,人工智能技术已经渗透到我们生活的方方面面,其中目标检测技术是非常重要的一种技术。目标检测技术可以对图像或视频中的物体进行识别和定位,是实现自动驾驶、智能监控等众多应用的基础。华为 Atlas 200 是一款高性能的人工智能处理器,支持多种神经网络架构和算法,包括目标检测算法。在 Atlas 200 上进行目标检测,可以利用其强大的计算能力和低延迟的数据传输性能,实现高效的物体识别和定位。原创 2023-05-29 17:59:05 · 916 阅读 · 0 评论 -
【Atlas200】使用Mindx v2接口(C++)完成letterbox,等长宽比缩放后padding操作
在深度学习中,图像的尺寸对于模型的训练和推理十分重要。为了保持输入图像的纵横比例,避免因缩放导致的失真,通常会对图像进行裁剪或嵌入(padding)操作。其中,letterbox是一种常用的嵌入操作,其主要思想是在图像周围添加黑色边框,使图像的尺寸与模型的期望输入尺寸一致。通过这种方式,输入图像可以被缩放到模型的期望输入大小,而不会破坏图像的纵横比例。因此,letterbox可以有效地提高模型的训练和推理性能,同时保持图像的视觉质量。原创 2023-05-24 09:13:41 · 802 阅读 · 0 评论 -
【Atlas200】mindx接口MemoryHelper类使用(C++),对应版本3.0.0
MemoryHelper是华为昇腾AI处理器提供的内存管理类。它封装了内存分配、内存释放、内存拷贝等操作,提供了一系列简单易用的接口,方便用户在昇腾AI处理器上管理内存。MemoryHelper支持昇腾处理器内存、主机内存、共享内存等多种类型的内存,并提供了相应的内存分配和释放接口。此外,MemoryHelper还提供了多种内存拷贝接口,支持主机内存与昇腾处理器内存之间的数据传输。在使用昇腾AI处理器进行深度学习加速时,MemoryHelper类可以帮助用户简化内存管理操作,提高开发效率。原创 2023-05-23 10:20:43 · 567 阅读 · 0 评论 -
【Atlas200】Host?Device?RC?EP?
因此,在Atlas200DK上运行推理应用时,进程是在NPU上启动的,数据也是直接加载到Device内存中的,没有Host侧的参与,因此不存在Host->Device的数据传输过程。需要注意的是,使用aclrtMallocHost申请的内存必须由aclrtFreeHost来释放,二者是强对应的,不能用于其他内存。它的实际含义是“申请本端内存”,也就是说,如果进程运行在Host上,它将申请Host内存,而如果进程运行在Device上,则将申请Device内存。如果应用运行在Host侧,就跟正常执行逻辑一样;原创 2023-05-22 10:48:32 · 879 阅读 · 0 评论 -
【深度学习】RGB图像的内存排列方式及HWC和CHW格式解析
RGB图像是计算机视觉和图像处理领域中最为常见的图像格式之一,而在进行图像处理和深度学习计算时,通常需要对图像的尺寸和通道数进行规范化。本文将对RGB图像的内存排列方式、HWC和CHW格式进行详细解析,并探讨它们之间的关系。本文对RGB图像的内存排列方式、HWC和CHW格式进行了详细解析,并探讨了它们之间的关系。在进行图像处理和深度学习计算时,需要对图像的尺寸和通道数进行规范化,以便于不同框架和库之间进行数据格式转换和模型输入。原创 2023-05-11 15:21:05 · 7716 阅读 · 2 评论 -
【Atlas500】华为Atals MindStudio配置指南
默认情况下,Ubuntu系统中的umask值为022,这意味着新创建的文件和目录将具有默认权限-rw-r–r–和drwxr-xr-x。具体来说,source命令会读取指定的Shell脚本文件,并将其中的命令和环境变量加载到当前Shell环境中,以便可以直接在命令行中执行这些命令或使用这些环境变量。在Ubuntu系统中,umask值是一个三位数字,用于设置新创建文件和目录的默认权限。镜像下载完成后,启动该ubuntu镜像,并将镜像中的部分目录挂载到宿主机上,便于镜像中的系统可以直接使用宿主机中的库。原创 2023-04-20 13:33:45 · 1064 阅读 · 0 评论 -
【Atlas500】华为500小站预配置
使用xshell连接后,输入develop命令,输入root用户密码(TianGong8000@)执行命令:cd /opt/middleware/MindXOM/bin进入脚本文件所在路径。允许root用户ssh的方法,并确保sshd文件中开启了subsystem sftp。启,那么需要通过命令进行添加,并重启ibma-edge-start服务使配置生效。用户通过Web界面进行操作时,只能使用已经开启的能力项。登录后使用 sftp enable,启动stfp服务。● 默认用户名:admin。原创 2023-04-17 15:04:24 · 1377 阅读 · 0 评论 -
【MQTT协议】使用Mosquitto实现mqtt协议(二):编写视频帧的发布/订阅服务
MQTT协议中的QoS(Quality of Service)表示消息传输的服务质量等级,它是MQTT协议中非常重要的一个概念。MQTT协议中定义了三个不同等级的QoS:QoS 0:最多一次(At most once)传输。消息发布者只发送一次消息,不进行确认,也不关心消息是否到达订阅者。这种QoS等级的消息传输效率最高,但可靠性最低。QoS 1:最少一次(At least once)传输。消息发布者会发送消息,并等待确认。如果消息没有被确认,会再次发送,直到收到确认为止。原创 2023-04-14 15:32:32 · 1370 阅读 · 0 评论 -
【MQTT协议】使用c++实现mqtt协议(Mosquitto源码编译)
MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式的消息传输协议,其最初由IBM开发,现已成为OASIS标准。MQTT协议常用于物联网领域,特别是在传输低带宽、高延迟、不稳定网络条件下的数据,例如传感器数据和遥测数据等。MQTT协议的优点:轻量级:MQTT协议的设计十分轻量级,其开销比较小,传输的数据包大小也比较小,这使得MQTT协议非常适合在低带宽、高延迟的网络环境下使用。原创 2023-04-12 11:46:03 · 8017 阅读 · 0 评论 -
【深度学习】使用ffmpg及gstreamer进行视频拉流及编解码(一):ffmpg
GStreamer:一款功能强大的多媒体框架,可以用于音视频的采集、编码、解码、处理和传输。FFmpeg:一个开源的音视频处理工具,可以用于音视频的采集、编码、解码、转码、处理等。FFmpeg和GStreamer都是流媒体处理框架,它们在音视频编解码、转码、过滤、采集等方面都有广泛的应用。FFmpeg是一个开源的音视频处理库,支持多种音视频格式的编解码、转码、过滤等操作。原创 2023-03-30 19:47:07 · 6398 阅读 · 0 评论 -
【pytorch】深度学习模型调参策略(五):采用贝叶斯工具进行最优参数搜索及最佳步数确认
optuna是一个用于超参数优化的Python库。它提供了一种简单、高效的方法来搜索模型的最优超参数组合,以最大化或最小化目标函数(例如验证集准确率或损失函数)。optuna支持多种搜索算法,包括随机搜索、网格搜索和基于贝叶斯优化的搜索。它还支持并行化搜索,并提供了可视化工具来帮助用户分析搜索结果。使用optuna可以帮助用户节省大量时间和精力,从而更快地找到最优的超参数组合,并提高模型的性能。optuna不仅可以用于机器学习领域,也可以用于优化任何需要调整超参数的任务。原创 2023-03-28 15:57:38 · 5159 阅读 · 0 评论 -
【pytorch】深度学习模型调参策略(四):鉴别并解决训练中的不收敛及不稳定的情况
常见的梯度裁剪方法包括L2范数裁剪和L1范数裁剪。max_grad_norm是指梯度裁剪的阈值,通常取值在1到10之间,可根据情况进行调整,max_grad_norm的值越大,梯度裁剪的程度越小,模型训练的稳定性相对较差,但可能会取得更好的性能。相反,max_grad_norm的值越小,梯度裁剪的程度越大,模型训练的稳定性相对较好,但可能会导致性能下降。L2范数能够有效地衡量梯度的大小,因为它是对梯度各元素的平方和进行开方,而平方和能够很好地表示梯度的大小,而开方能够将梯度的大小映射到一个非负的标量值。原创 2023-03-28 11:31:26 · 3713 阅读 · 0 评论 -
【pytorch】深度学习模型调参策略(三):超参数搜索实验设计与曲线分析
尽可能多地包含麻烦超参数并允许每个麻烦超参数在尽可能广泛的范围内变化,可以增加我们的信心,即在每个科学超参数配置的搜索空间中存在“好”的麻烦超参数值。在更复杂的情况下,如果我们想比较大量科学超参数的值,而独立创建这么多的研究是不切实际的,我们可以将科学参数包含在与麻烦超参数相同的搜索空间中,并使用搜索算法在单个研究中采样科学和麻烦超参数的值。如果所有试验在某个阈值以上的学习率下都是不可行的,并且表现最佳的试验的学习率处于该区域的边缘,则模型可能存在稳定性问题,阻止它访问更高的学习率。原创 2023-03-27 10:53:49 · 1367 阅读 · 0 评论 -
【pytorch】深度学习模型调参策略(二):超参数的分类与调整经验
例如,dropout正则化技术会增加代码的复杂性,因此在决定是否使用它时,我们会将“无dropout”与“dropout”作为科学超参数,而dropout rate则是一个麻烦的超参数。如果资源足够的话,我们会让所有非科学超参数都保持为困扰超参数,以便从我们的实验中得出的结论不受固定超参数值的限制。固定超参数是在一轮实验中被固定的超参数,这些超参数的值不需要改变或者我们不希望它们改变,以便在比较不同科学超参数的值时减少不必要的变量。的超参数,以便在比较不同科学超参数的值时能够进行公平的比较。原创 2023-03-25 19:18:01 · 950 阅读 · 0 评论 -
【pytorch】深度学习模型调参策略(一):选择架构,优化器及批大小
因此,为了确定可行的批处理大小,我们需要在不同的批处理大小下运行训练作业,并找到一个最大的批处理大小,使训练吞吐量增加。另一方面,训练更少的步骤意味着每个训练运行更快,使用更少的资源,通过减少周期之间的时间并允许更多的实验并行运行来提高调整效率。特别是在项目的开始阶段,当我们试图找到各种其他超参数(例如架构超参数)的最佳值时,同时将优化器超参数视为麻烦的参数。在项目的初期阶段,最好选择一个更简单的优化器(例如具有固定动量的SGD或具有固定参数的Adam),并在以后切换到更通用的优化器。这些都可以以后添加。原创 2023-03-25 18:39:47 · 1527 阅读 · 0 评论 -
【pytorch】深度学习所需算力估算:flops及模型参数量
因为8GB显卡的实际可用显存约为7500MB左右,可以满足模型在最大推理batchsize下的显存需求,同时还有一定的余量,可以保证模型能够正常运行。在部署时,需要考虑芯片的显存,是因为显存的大小限制了模型的最大批次大小。如果模型的批次大小超过了显存的大小,那么就无法将整个批次的数据同时加载到显存中,需要分批处理,这会增加模型推理的时间。这是因为模型的参数需要存储在显存中,而在计算过程中,也会涉及到一些中间结果的存储和计算,所以需要足够的显存来支持模型的运行。一般来说,批量大小越大,需要的计算能力就越大。原创 2023-03-22 20:05:01 · 11446 阅读 · 0 评论 -
【pytorch】深度学习单卡训练升级到多卡训练(nn.DataParallel原理),以手写数据集分类为例
然后,nn.DataParallel会将输入数据划分为多个小批次,每个小批次分配到不同的GPU上,并使用torch.nn.parallel.scatter函数将输入数据复制到各个GPU上。接下来,nn.DataParallel会在每个GPU上分别计算模型的输出,并使用torch.nn.parallel.gather函数将各个GPU上的输出合并起来,得到最终的输出。最后,nn.DataParallel会将每个GPU上的输出合并起来,得到最终的输出,并计算损失函数和梯度。原创 2023-03-22 10:43:43 · 1859 阅读 · 1 评论 -
【pytorch】使用deepsort算法进行目标跟踪,原理+pytorch实现
在DeepSORT算法中,对于每一帧输入的目标检测结果,首先需要对其进行匹配,将其与之前跟踪的目标进行匹配,得到目标的标识信息以及当前帧中目标的位置和大小信息。如果不使用卡尔曼滤波进行预测,直接跟踪目标的位置和大小,可能会受到多种因素的影响,例如目标运动的加速度、噪声干扰等等,从而导致目标跟踪的不稳定,容易出现跟踪丢失或误判的情况。DeepSORT算法使用卡尔曼滤波进行预测的原因是,通过对目标运动状态的建模,能够更加准确地预测目标的未来位置,从而提高目标跟踪的准确性和鲁棒性。原创 2023-03-21 15:15:39 · 2896 阅读 · 0 评论 -
【pytorch】使用mixup技术扩充数据集进行训练
mixup是一种数据增强技术,它可以通过将多组不同数据集的样本进行线性组合,生成新的样本,从而扩充数据集。mixup的核心原理是将两个不同的图片按照一定的比例进行线性组合,生成新的样本,新样本的标签也是进行线性组合得到。比如,对于两个样本x1和x2,它们的标签分别为y1和y2,那么mixup生成的新样本x’和标签y’如下:其中,λ为0到1之间的一个随机数,它表示x1和x2在新样本中的权重。原创 2023-03-06 10:33:54 · 7703 阅读 · 0 评论 -
【计算机视觉】dlib库的编译及安装(centos)
dlib是一个开源的C++库,提供了许多机器学习、图像处理和数据挖掘算法。它包含了大量的工具,可用于创建各种应用,如人脸识别、行人检测、特征检测和跟踪等。dlib的一个优势是其提供的算法在性能上优于其他类似库。dlib库主要提供了以下功能:人脸识别:可以在图像和视频中识别人脸并定位人脸位置。人脸对齐:可以对不同姿态的人脸进行对齐。人脸特征点检测:可以检测人脸的特征点,如眼睛、鼻子、嘴巴等。姿态估计:可以估计人脸的姿态,如头部转动角度。人脸识别:可以进行人脸识别,将不同人脸辨别出来。原创 2023-01-28 18:50:24 · 2045 阅读 · 0 评论 -
【计算机视觉】使用lbpcascade_frontalface.xml与 haarcascade_eye_tree_eyeglasses.xml配合进行人眼检测的c++程序
OpenCV 中有多种方法可以用来进行人眼检测,其中常用的有以下几种:Haar 特征分类器:使用训练好的 Haar 特征分类器来检测人眼。LBP 特征分类器:使用 LBP 特征分类器来检测人眼。HOG + SVM:使用 HOG 特征和 SVM 分类器来检测人眼。CNN 网络:使用卷积神经网络来训练检测模型。人脸检测+人脸关键点检测: 先使用人脸检测模型检测人脸,在使用人脸关键点检测模型检测人眼。原创 2023-01-28 15:04:30 · 860 阅读 · 0 评论 -
【cmake】自制 FindXXX.cmake 、XXXXConfig.cmake 或 XXXX-config.cmake
find_package 将会根据开发人员提前写好的库或者进程的依赖,自己去加载依赖项,可以大大减少程序员工作量。但是需要自己提供相应的 FindXXX.cmake 或者 XXXXConfig.cmake XXXX-config.cmake文件。原创 2022-12-24 02:12:21 · 2237 阅读 · 1 评论 -
【centos】安装nvida CUDA平台附带安装cudnn库及TensorRT8
只要把cuDNN文件复制到CUDA的对应文件夹里就可以,即是所谓插入式设计,把cuDNN数据库添加CUDA里,cuDNN是CUDA的扩展计算库,不会对CUDA造成其他影响。CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。CUDAToolkit:这是我们真正需要首先安装的工具包,所谓的装cuda首先指的是它。这里的11.6 指的是可驱动的最高版本。原创 2022-12-21 20:52:41 · 3338 阅读 · 1 评论 -
【opencv】centos下opencv的编译(带opencv_contrib扩展包)
在gitgub上下载opencv及其扩展包,注意,两者tag版本应对齐。将 opencv_contrib 文件夹移至 opencv 文件夹下。根据官网要求,输入cmake命令:这里使用-D对编译器进行设置。这里由于用的是vscode远程功能,所以直接传了。事先新建好opencvBuild文件夹。有些包找不到也能正常使用。cmake安装完成。原创 2022-12-20 20:18:34 · 1591 阅读 · 0 评论 -
【vscode】centos系统下配置centos容器,并启动内部的ssh服务,以便使用vscode进行远程开发
打开vs code设置,搜索Show Login Terminal,勾选下方"Always reveal the SSH login terminal",记得一定要操作这一步,不然会一直提示报错。2.安装插件之后,点击远程资源管理器,在SSH TARGETS配置远程服务器,具体步骤如下,其中Host是一个名称,自己可以随意命名。Hostname是远程服务器的IP,User。1.搜索并安装远程组件Remote Development。在左侧连接到远程服务器,按提示输入密码,进行操作即可。原创 2022-12-13 08:57:12 · 591 阅读 · 0 评论 -
【向量的序列化及反序列化】std::string及std::vector<float>的交互
法2:该法中,中间序列化得到的std::string,不要与qstring交互,不然会出错。法1:转为字符串并用逗号分割,这里使用的是qt的库。原创 2022-11-29 17:51:21 · 730 阅读 · 0 评论 -
【计算机视觉】使用opencv中dnn模块及openvino2022进行模型推理(C++接口)
计算机内存float*是一个一维数组线性存储,故相互赋值需将mat及tensor的索引统一为线性索引:从头逐一连续赋值;这里使用的是onnx。原创 2022-11-29 14:49:33 · 1757 阅读 · 0 评论