崔星星

专注于图像算法,计算机视觉,机器学习,深度学习,Matlab等技术

重新思考Anchor Box估计

anchorBox估计是目标检测中非常经典的一个概念,首次在fasterRCNN中被提出,后续目标检测器如(SSD,YOLOv2/v3/v4)等都会借用这么一个好用的东西,其优势在于能提供更快的检测速度(一次计算图像中所有的预测)和解决目标多尺度问题。anchor可以翻译成“锚”,是能与实际的检测框最相似的东东,但如何得到这个“最相似”呢?下面本博客会逐渐介绍kmeans算法估计ancho......

Why Are the Features Obtained by "Predict" and "Forward" Function Very Different?

       本博客主要内容本应该是我提出的issue被广泛讨论的,所以写成英文方便国外网友讨论,后来干脆整理成了一篇博客,依旧保留了英文模式,逐步引人入思,遂成文,发之,英文表达有不妥之处,敬请谅解! According to official instructions, “forward” is used for inference during the network trainin......

带动量的随机梯度下降算法-从原理到实践

Stochastic Gradient Descent        大家都知道标准的随机梯度下降算法通过在每次迭代中沿Loss的负梯度方向采取小步长来更新网络参数(权重和偏差)以最小化损耗函数,更新为: 其中l是迭代数,α> 0是学习率,θ是参数向量,E(θ)是损失函数。 在标准梯度下降算法中,使用整个训练集评估损失函数的梯度)E(θ),而标准梯度下降算法立即使用整个数据集。相比之......

目标检测中AP的计算,你真的会了吗?

本文直接跳过前面若干基础概念,前提需弄懂TP,FP,FN,TN,精确率,召回率,IOU等,具体可以参照文后Reference,下面进入正题,边讲述边实现,拒绝只谈不做和只做不谈。相比前人代码,本实现思路简洁,通用有效,最后根据官方现成函数计算AP进行对比。 一、引言案例 加载groundTruth数据和某算法预测的目标检测框 1load calmAP.mat % 包含检测值和ground......

深度学习实战-从原理到实践

现当今机器学习/深度学习技术在某些具体垂直领域已被大量广泛应用到现实世界中,已经不再像前几年那么“火热”,与之对应的各类深度学习框架也是“百花齐放,百家争鸣”,框架终究只是个工具,不过简化了从“零”开始复杂繁琐的工作,让很多普通人都可以快速入门。本博客不单纯完成一个任务,也不涉及过多理论推导,而是真正体会到算法工作一步步原理,逐步实现,岂不乐乎? 本篇博客以经典的MNIST手写数字识别为......

正则化理解之动态可视化

关于正则化的文章是铺天盖地,其中绝大部分都在解释为什么L1或者L2正则化有利于产生稀疏解,防止过拟合?这个问题被讨论论证了N多次,大篇幅的文字叙述可以让读者了解到其背后的原理,但本文不走大众之路,从力求以动态图来直观解释正则化现象,从而让读者更深刻理解其正则的意义! 抛开理论推导验证环节,需要从文字上面理解的强烈推荐参考博文后面的链接文章,本文以实际例子来进行阐述,考虑L1正则化对二次损......

洞察分类网络激活热力图

深度神经网络经常被当作“黑盒”,网络预测为什么是那样,很少有直观的解释,但是依靠CAM(Class Activation Mapping)可以可视化网络的最后一层激活值,对网络预测的类别区域进行热力图分析,看出网络到底学到了图片的那部分内容。 squeezenet预测 为了洞察网络预测分类到底“学习”到了什么,本示例通过USB摄像头实时采集图像,分析分类网络激活类别的热力图,越红的区域代......

基于OpenCV的图像对比度拉伸

基于图像的线性对比度拉伸/增强绝大多数教程都在论述基于范围的拉伸,本博客主要提出基于均值的对比度拉伸,相比于前者,更能注重 给定均值附近的像素的增强,而不是全局[0,255]范围内增强。最后给出两种算法的代码实现过程,并比较手写代码与自带代码的性能。 假如有一副比较暗的图像,亮度像素等级普遍在10左右,而我希望的图像均值avg2=25左右波动,有一种很简单的 想法是直接把原图像所有像素加......

C++多线程函数之异步执行微观

利用多线程编程有时候可以极大提高程序的执行效率,相比串行编程,涉及的逻辑机制不易理解,但能够带来效率的提升!在某些场合更适合并行计算,如 多摄像机的采像处理要求同步,另外各个相机在某种算法下独立(子线程)识别到了某个动作发生,就应当返回给主线程。各个子线程有时也需要同步或者一些 条件加以限制,比如各个动作识别之间的间隔不应该低于50帧,要在线程之间共享某些变量来限制,下面的程序模拟了该思想......

Resnet18-Onnx-Matlab转换

本博客主要验证pytorch torchvision中官方预训练的模型导入matlab中看是否成功,以resnet18为例,中间格式通过onnx进行转换。主要分为python实现、onnx导出、matlab导入、 matlab识别。结论:转换识别成功 一、python中实现简单demo 代码主要以一个摄像头采集的图像识别为例,采集识别OK后,转成onnx通用模型,Python实现代码及导......