
AI
文章平均质量分 82
高精度计算机视觉
人工智能与视像技术,对技术有点执着
展开
-
error LNK2001: 无法解析的外部符号 “private: static int google::protobuf::io::CodedInputStream::default_recurs
1>caffe.pb.obj : error LNK2001: 无法解析的外部符号 "class google::protobuf::internal::ExplicitlyConstructed google::protobuf::internal::fixed_address_empty_string" (?原创 2022-10-07 13:39:48 · 1656 阅读 · 0 评论 -
逐一显示landmark dataset所有图片的标注
本文解释如何显示WIDER数据集及显示相关标注。如何显示coco数据集的图片及查看标注的质量请参考前面的文章《保存coco dataset注释为单一文件,并逐一显示所有图片的mask》。根据libfacedetection.train(https://github.com/ShiqiYu/libfacedetection.train)的数据结构,我们看一下其中的标注trainset.json的效果,$ tree data/widerfacedata/widerface├── eval_too原创 2021-09-22 23:48:05 · 842 阅读 · 0 评论 -
一个便捷的免费图像标注工具AutoSeg Professional
最新版2019-09-25版本更新信息请参考:https://blog.youkuaiyun.com/tanmx219/article/details/101379732正文由于经常大量标注,我先后用了不少标注工具,但总觉得使用起来有诸多不便。有的只能标注多边形,有的只能标注标注拉框。所以后来决定自己开发一个标注工具,目前已经开发了一些基本功能,如拉框标注,多边形标注,面积标注(语义分割)...原创 2019-09-03 23:30:58 · 4959 阅读 · 2 评论 -
Paddle在windows10+vs2019上的源码编译(失败)
先下载paddle到本地(我的地址是D:/open/)git clone -b release/2.2 --recursive https://github.com/PaddlePaddle/Paddle.git我的系统配置:windows10 + cuda11.5 + vs2019, 使用x64,然后cmake-gui走起,几个Configure + 1次Generator后,生成了paddle.sln解决方案。然后启动vs2019开始编译,只能选择release版本,不能原创 2022-03-19 13:49:35 · 3588 阅读 · 5 评论 -
Ubuntu20.04源码编译PaddleOCR2.4
一,下载paddleocr源码git clone https://github.com/PaddlePaddle/PaddleOCR.gitgit checkout release/2.4cd PaddleOCR/deploy/cpp_infer/二,编译PaddleOCRr原创 2022-03-17 12:53:16 · 5457 阅读 · 0 评论 -
Labelme在windows下的编译与vscode开发执行
在开源的标注工具中,labelme是不个错的选择,因为开源,众人拾柴火焰高,所以大家也能贡献一些代码。注意,如果你是要直接使用labelme的话,到github上直接下载可执行文件就可以了,比如https://github.com/wkentaro/labelme/releases/download/v4.6.0/Labelme.exe或者https://github.com/wkentaro/labelme/releases/download/v4.6.0/Labelme.dmg这些.原创 2022-01-28 16:24:36 · 3631 阅读 · 4 评论 -
PCD(点云数据)文件格式
本节描述PCD(点云数据)文件格式。为什么用一种新的文件格式?PCD文件格式并非白费力气地做重复工作,现有的文件结构因本身组成的原因不支持由PCL库引进n维点类型机制处理过程中的某些扩展,而PCD文件格式能够很好地补足这一点。PCD不是第一个支持3D点云数据的文件类型,尤其是计算机图形学和计算几何学领域,已经创建了很多格式来描述任意多边形和激光扫描仪获取的点云。包括下面几种格式:lPLY是一种多边形文件格式,由Stanford大学的Turk等人设计开发;lSTL是3D Syste...转载 2022-01-27 21:15:50 · 1642 阅读 · 0 评论 -
OpenVINO+Yolov5+Windows10的CPU部署
先说一些部署上话。如果是Linux或arm上,现在生态链已经很全了,各家都在发力,但在windows上,有时还是挺痛苦的,相对部署的人比较少,很多模型要自己去摸索。为了在Windows上部署模型,通常我们可以这样做:(1)可以选择一些比较容易或别人已经部署过的模型。(2)在没有GPU的情况下,一般用NCNN比较容易成功。本人多次在windows上编译过这个短小精悍的NCNN。(3)如果用GPU话,可能还是TensorRT更合适。另外libTorch也是个不错的选择。(4)不用GPU的情况下,wi原创 2022-01-26 22:10:52 · 3616 阅读 · 0 评论 -
windows10下编译TVM0.6.0 + LLVM9.0.1
很多在Ubuntu上能轻易成功编译的软件,在Windows上相对难度都要高不少。感叹一下!基于我个人的感觉,在Ubuntu下QT编程没有Windows的VS上那么上手,所以很多实际应用我还是选择了windows,从某个角度来说,很多人留在windows的原因,和VS的关系不小。这些年来越来越多的程序员开始转向linux,尽管windows的用户仍然是最大的。这里初试了一下TVM+LLVM,发现VS编译的话,TVM v0.60 + LLVM 9.0.1能轻易编译通过,而其他版本几乎都不能。目前还没原创 2020-07-16 09:56:52 · 1171 阅读 · 0 评论 -
Python3.8上安装vtk和mayavi踩坑: Building wheel for mayavi (setup.py) ...
用python3.7时,mayavi貌似很容易安装。现在彩python3.8,发现安装时有下面的问题:。。。。UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 45: ordinal not in range(128) CCompilerOpt._cache_write[796] : write cache to path -> /tmp/pip-install-w8u16lpt/mayavi_95.原创 2021-12-05 00:13:31 · 5984 阅读 · 6 评论 -
安装OpenPCDet碰到的问题
Ubuntu18.04重新安装了,现在要把OpenPCDet也重新装上,按照官方的教程来,一路安装好了torch, numpy之类的东西,没碰到问题,之后 开始安装OpenPCDet,然后就碰到了下面的问题,问题1 IndexError: list index out of range(openmmlab) user@MS-7816:~/devAI/OpenPCDet$ python setup.py developNo CUDA runtime is found, using CUDA.原创 2021-12-02 11:15:56 · 8651 阅读 · 2 评论 -
EfficientNet Backbone结构解析 -- 以EfficientNet-B0为例说明
一般而言,不论我们是否要将该主干结构用于何种模型,一般都是在这个基础上进行的。例如,将在Yolact中用EfficientNet替换Resnet,可以在同等效果下让模型数据量降为原来的大约1/4到1/5左右。下面我列出一下主干结构。self._conv_stemConv2dStaticSamePadding( (conv): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), bias=False))self._blocks模原创 2021-10-12 21:04:28 · 3151 阅读 · 0 评论 -
caffe源码解析:Blob<Dtype>::Reshape
Blob<Dtype>::Reshape(const vector<int>& shape)功能:为blob分配内容空间该函数一般在开辟空间内存时调用,如输入的data层,InputLayer<Dtype>::LayerSetUp中调用。一般shape是(num, channel, width, height), 容量count = num*...原创 2018-10-08 19:10:27 · 3118 阅读 · 0 评论 -
Yolov3源码解析:reorg_cpu
函数原型如下,void reorg_cpu(float *x, int out_w, int out_h, int out_c, int batch, int stride, int forward, float *out){ int b,i,j,k; int in_c = out_c/(stride*stride); //printf("\n out_c = ...原创 2018-09-30 15:18:01 · 1716 阅读 · 1 评论 -
YoloV3源码解析:读取label
说明:使用Yolo培训时,如果你使用的是VOC或COCO的文件结构,label按照该结构存放,否则,请把label和图片文件放在同一文件夹里面。Yolov3支持的label结构如下,参考utils.c ==> replace_image_to_label()函数Yolov3是在哪里读取label的呢?过程如下,...原创 2018-09-30 15:31:03 · 4498 阅读 · 3 评论 -
caffe源码解析:insertSplits对 top输出到多个 Layer的情况进行分割
作用:对 top输出到多个 Layer的情况进行分割,建立完整的网络结构重要的参数说明举例:layer_idx_to_layer_name[i] 记录各层的名称,如 [0x00000000] "input" blob_name_to_last_top_idx[“conv1”]=(1,0) 这个例子相当于说”conv1” 这层是第1层的第0个top, bottom_idx_to_so...原创 2018-10-08 16:49:01 · 1142 阅读 · 0 评论 -
梯度下降法(steepest descent)和共轭梯度法(conjugate gradient)
写一篇自己的理解,算不上严格意义的证明,事实上很多熟悉的公式和推导方式都没有摆上来。推导的过程没有参考课本,这可能和个人习惯有关系,以前看别人著作时,很怕那种“显而易见”地描述,因为对作者而言显而易见的地方,对读者可能不是。对读者显而易见的地方,作者可能不这么认为。我一直的想法是,如果条件鲁棒,不论你从哪个角度(比如说展开成解析表达式,或多用向量表达式)去推导,结果应该都是一样的! ...原创 2018-10-14 22:34:22 · 4102 阅读 · 1 评论 -
各领域公开数据集下载
各领域公开数据集下载(转过来的,原贴来源不详,未能标注出处。参考:https://blog.youkuaiyun.com/c2a2o2/article/category/7194279)使用的数据集THCHS30是Dong Wang, Xuewei Zhang, Zhiyong Zhang这几位大神发布的开放语音数据集,可用于开发中文语音识别系统。为了感谢这几位大神,我是跪在电脑前写的本帖代码。下载...转载 2018-09-29 13:23:13 · 1290 阅读 · 0 评论 -
深度学习:图片卷积或滤波器操作后输出大小计算size, stride vs padding
先定义几个参数 输入图片大小 W×W Filter大小 F×F (相当于卷积核大小,也可看作滤波器大小,卷积也是一种滤波) 步长 S(stride) padding的像素个数 P 于是我们可以得出N = (W − F + 2P )/S+1输出图片大小为 N×N备查假设F为奇数N: 核中心的个数(卷积中心位置所在数据点,图片中就相当于像素...原创 2019-01-08 16:47:03 · 3637 阅读 · 0 评论 -
Visual Object Tracking: MDNet + VITAL
visual object tracking的项目,运行中碰到些小问题。Windows下matlab运行的这两个项目非常接近,https://github.com/HyeonseobNam/MDNethttps://github.com/ybsong00/Vital_release两个项目的运行,都要先看readme.md文件(比如matlab版本不能太低,要R2014或以上),尤其是...原创 2018-10-06 20:30:33 · 686 阅读 · 0 评论 -
机器学习备注:Yolo训练时输出参数的解释
举例比如某一次的输出结果如下训练log中各参数的意义 5: 10.222071, 10.294983 avg loss, 0.000000 rate, 395.829699 seconds, 320 imagesLoaded: 0.000000 secondsRegion Avg IOU: 0.227881, Class: 1.000000, Obj: 0.381839, No Ob...原创 2018-09-30 18:42:04 · 3370 阅读 · 1 评论 -
Happynear Caffe + ECO + VisualStudio2015
这个是以前的ECO (https://github.com/nicewsyly/ECO) 在windows下的编译笔记,也许没啥大用,今天重新打开以前的代码时,同样的问题完全忘记当时怎么处理的了,还是好记性不如烂笔头!所以干脆弄到这里来。因为是以前的,显得有点乱,不想再整理了, 时间有点长,不保证没错误 :-{ 注意事项No.1 visual studio 版本Please u...原创 2018-10-31 14:18:24 · 796 阅读 · 1 评论 -
OpenCV源码解析:目标检测trainCascade算法剖析之LBP基础
本文重点讲解LBP特征及OpenCV中LBP特征的基本处理。目标检测,也叫目标提取,是一种基于目标几何和统计特征的图像分割。用级联分类器实现目标检测在AI人工智能识别中应用十分广泛。正样本的选取原则正样本的尺寸不是必须一致的,从源码可以看到,这个是可以在输入图片文件的尺寸时设置大小从而实现在CreateSamples中进行裁剪的(参考cvCreateTrainingSamplesF...原创 2018-10-27 12:40:19 · 1890 阅读 · 0 评论 -
OpenCV源码解析之在图片中找四边形-FindSquares
这个FindSquares算是比较典型的综合技能项目吧,用到的小技巧还不少,我们先看一下几个函数吧,函数static double angle的作用是求角度根据余弦定理:在平面座标中通过计算变换,最后可以得到:嗯,函数中直接用了这个结果。其余函数的说明1.函数Canny进行边缘检测,和Sobel原理差不多,不过相对加了些料,稍有点复杂,以后有时间再说吧。 2.函数...原创 2018-12-04 17:47:04 · 3114 阅读 · 1 评论 -
OpenCV源码解析之findContours
说明:openCv的contours是分级的,其寻边理论依据(方式)参考suzuki的论文《Topological structural analysis of digitized binary images by border following》。Contour 的寻边模式ModeopenCV通过一个矩阵来管理等级,矩阵的元素表示方法是:[Next, Previous, Fir...原创 2018-12-12 16:04:44 · 8212 阅读 · 1 评论 -
OpenCV之Kalman fileter(卡尔曼滤波)
原理的通俗解释用一个网上流传温度估计的例子(根据 k-1 时刻的温度值,估算 k 时刻的是实际温度值),为了通俗会意,我这里尽量避免使用专业术语。假设我们相信温度是恒定的,所以得到 k 时刻的温度预测值是跟 k-1 时刻一样的,假设是23 度,同时该值的高斯噪声的偏差是 5 度。然后,你从温度计那里得到了 k 时刻的温度值,假设是25 度,同时该值的偏差是 4 度。可见,整个Kal...原创 2018-12-13 13:24:57 · 1255 阅读 · 0 评论 -
SIFT算法相关的几个常见疑问
参考博客:SIFT算法的Matlab实现https://www.sun11.me/blog/2016/sift-implementation-in-matlab/SIFT特征详解https://www.cnblogs.com/wangguchangqing/p/4853263.html下面我列一下博客中讲到,但涉及源码时又不够透彻的地方(其实是否透彻还是取决于个人的经验和理解)用到...原创 2018-12-07 10:52:56 · 867 阅读 · 0 评论 -
Dlib介绍
Dlib介绍Dlib是一个现代化的C ++工具箱,其中包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具。它广泛应用于工业界和学术界,包括机器人,嵌入式设备,移动电话和大型高性能计算环境。Dlib的开源许可证 允许您在任何应用程序中免费使用它。Dlib有很长的时间,包含很多模块,近几年作者主要关注在机器学习、深度学习、图像处理等模块的开发。主要特点文档丰富 与许...转载 2019-01-05 23:12:36 · 36092 阅读 · 2 评论 -
道路行人数据集汇总(转载)
道路行人数据集汇总(转载)这些数据集没怎么细看,转载过来记录个源头先。1、Caltech Pedestrian Detection Benchmarkhttp://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/加州理工学院行人数据集包含大约10个小时的640x480 30Hz视频,这些视频是通过在城市环境中正常行驶的...转载 2019-08-18 11:31:15 · 3725 阅读 · 0 评论 -
OpenCV源码详解之InputArray, OutputArray
在OpenCV中,有两个代理类是经常出现的:InputArray和OutputArray,它巧妙地利用了C++的定义转换,辅助完成对矩阵的管理。定义typedef const _InputArray& InputArray;typedef InputArray InputArrayOfArrays;typedef const _OutputArray& OutputA...原创 2018-12-12 20:05:49 · 12276 阅读 · 1 评论 -
OpenCV3.1录制视频+把图片合成视频(同时解决一个OpenCV不能打开自己录制的视频的小问题)
记一下,备忘。用OpenCV打开OpenCV录制的视频,发现报错,代码如下 cv::VideoCapture capture; capture.open("E:\\opencv.avi");追踪了一下,原来是打开要求用MJPG,bool AviMjpegStream::parseStrl(MjpegInputStream& in_str, uint8_t strea...原创 2018-10-06 13:33:00 · 880 阅读 · 1 评论 -
机器学习备注:Windows + Anaconda3 + pytorch
Anaconda的安装先说一下,windows的运行机抽和linux完全不一样,由于无法使用sudo等命令,权限检查显得十分怪异。所以安装时最好不要安装在C盘,我一般都安装在D盘(如 D:/anaconda3)。如果你一定要装在C盘,那么个别软件包有的时候conda执行起命令来可能会非常缓慢,甚至无缘无故中断(源码没去研究过,所以也不明所以,原因只能连懵带猜,也有可能是因为一些你懂的原因,谁知...原创 2018-09-22 18:47:14 · 3082 阅读 · 0 评论 -
OpenCV源码解析:partition分类(聚类)
功能:把数据类型为_Tp的一组集合进行聚类,也就是根据相似或相同的某特征进行归类,最后分成若干个类别。这里是以相似矩形的分类为例进行讲解,重点内容都在注释中。整体过程就是先判断两个矩形是否相似,如果相似,就决让其中一个做父节点,一个做子节点,然后再检查这个关系是否影响了其他节点的关系,如果有影响,就调整。检查完之后就沿所有的节点找到顶级父节点,如果该 父节点还没有分类,就分类成一个新的分类值...原创 2018-08-23 18:09:29 · 1328 阅读 · 0 评论 -
OpenCV源码解析:Jacobi法计算矩阵的特征值和特征向量
(注:优快云不适合写公式,只好上传图片格式)其中Pkk=Pll=cosθ, Plk=Pkl=sinθ,形式上就是这样,A*PT Aik = Aik×Pkk+Ail×Pkl Ail = Aik×Plk+Ail×PllP*A Aki = Pkk×Aki+ Pkl×Ali Ali = Plk×Aki+ Pll×Ali实际计算时,只计算那些必...原创 2018-08-13 21:39:20 · 2801 阅读 · 0 评论 -
写一个OpenCV源码解析的博客 -- 图像开发处理之基础介绍
这里先写一个序,是督促自己常常来更新博文(名字没想好,叫OpenCV程序设计的艺术?)!很久了,想写一点关于OpenCV,FFMPEG,X264等源码解析的博客。考虑到基础都是相通的,所以决定先写一些基础性的知识。相对于FFMPEG和X264,OpenCV的基础性更强,计算功能也更单一。换句话说,你完全可以理解OpenCV的一个类型的计算方式而不用理会是否理解了另一个类型,这可能...原创 2018-08-08 10:13:08 · 2079 阅读 · 0 评论 -
从OpenCV源码了解traincascade训练报错:Train dataset for temp stage can not be filled.
如果你在测试trainCascade时,资料目录没有放在项目目录中,很有可能触发下面的报错:Train dataset for temp stage can not be filled.我们很容易定位这个错误的来源,在cascadeClassifier.cpp中bool CvCascadeClassifier::train( const string _cascadeDirName...原创 2018-08-17 22:52:34 · 1439 阅读 · 3 评论 -
OpenCV源码解析:直方图均衡化的详细算法和过程
理论基础所谓直方图,在图像中,指的就是各个像素的统计值,就是一个像素在整幅图像中出现次数。例如下面这张16个像素的图片,其直方图就是直方图均衡化,是将给定图像的直方图改造成均匀分布的直方图,从而扩大像素灰度值的动态范围,达到增强图像对比度的效果。OpenCV中的直方图均衡化OpneCv中,可以用calcHist进行图像的均衡化,也可以使用equalizeHist可...原创 2018-08-15 12:10:14 · 2512 阅读 · 2 评论 -
OpenCv源码解析:对HAL硬件加速层的支持
OpenCV的硬件加速层全称是OpenCV Hardware Acceleration Layer (HAL),一般来说,硬件厂商或开发人员可能会根据自己的实际情况,开发出独立于OpenCV的运算函数,以支持硬件优化,加快运算速度。这些功能性模块有可能是闭源的。为了实现顺利对接,OpenCV提供了一个简单的接口模块,当各厂家需要开发自己的运算模块时,只要实现这些接口即可。根据【1】,OpenC...原创 2018-08-12 15:24:45 · 6383 阅读 · 0 评论 -
OpenCV源码解析:协方差矩阵的计算--calcCovarMatrix
协方差矩阵在统计学与概率论中,协方差是指两个向量元素之间的相关性。设为n维随机变量方差的定义为:当存在两个随机变量X,Y时,其各个维度偏离其均值的程度就可以用协方差来定义:在物理上的理解,你可以认为协方差是指两个向量之相互影响的程度,单从数值上来看,协方差的数值越大,表示两个变量对其均值的变化同向的程度越大。当随机变量有多个的时候,一般不再使用X,Y这样的表述...原创 2018-08-11 23:25:03 · 4698 阅读 · 0 评论 -
OpenCV中,使用C++类的构造函数进行定义转换
OpenCV中采用了很多类似下面方式,在类的构造函数中动态进行定义转换#include "stdafx.h"class Mat {public: int val; void init() { val = 100; }};class holder{public: Mat* pMat; holder(Mat& test) { test.val = 101;...原创 2018-08-10 14:26:02 · 609 阅读 · 0 评论