计算机视觉
文章平均质量分 84
nihate
这个作者很懒,什么都没留下…
展开
-
用opencv部署nanodet目标检测
本文原创首发于极市平台公众号,如需转载请私信作者2020年,在深度学习目标检测领域诞生了yolov4,yolov5和nanodet这些优秀的检测模型,有许多的微信公众号报道这些算法模型。深度学习目标检测方法可划分为 Anchor-base 和 Anchor-free 两大类,nanodet是一个速度超快和轻量级的移动端 Anchor-free 目标检测模型,并且它的精度不亚于yolo系列的。nanodet通过一些论文里的trick组合起来得到了一个兼顾精度、速度和体积的检测模型。作者用到的一些tri原创 2021-02-18 19:12:21 · 5092 阅读 · 24 评论 -
人工智能+工业互联网,如何破圈?
人工智能+工业互联网,如何破圈?原创 2022-08-31 13:06:31 · 708 阅读 · 2 评论 -
模型部署翻车记:pytorch转onnx踩坑实录
本文原创首发于极市平台公众号,如需转载请私信作者在深度学习模型部署时,从pytorch转换onnx的过程中,踩了一些坑。本文总结了这些踩坑记录,希望可以帮助其他人。首先,简单说明一下pytorch转onnx的意义。在pytorch训练出一个深度学习模型后,需要在TensorRT或者openvino部署,这时需要先把Pytorch模型转换到onnx模型之后再做其它转换。因此,在使用pytorch训练深度学习模型完成后,在TensorRT或者openvino或者opencv和onnxruntime部署时原创 2021-04-08 09:29:50 · 4966 阅读 · 10 评论 -
10种轻量级人脸检测算法的比拼
最近在微信公众号里看到轻量级人脸检测算法大盘点的文章,里面还提供了github源码地址,我就把它们逐个下载到本地win10-cpu机器上,调试通过运行。去年在github下载过一个包含6种人脸检测的程序(地址是 https://github.com/cs-giung/face-detection-pytorch),分别是pyramidbox,dsfd,s3fd,tinyface,facebox,mtcnn,但是这些算法大多是重量级的网络模型,它在一幅图片上的人脸检测结果和运行耗时统计直方图如下可原创 2020-09-25 16:57:41 · 17095 阅读 · 35 评论 -
使用opencv部署yolact实例分割
本文原创首发于极市平台公众号,如需转载请私信作者YOLACT,全称为:You Only Look At CoefficienTs,从标题可以看出这个模型的名称有些致敬YOLO的意思。YOLACT是2019年ICCV会议论文,它是在现有的一阶段(one-stage)目标检测模型里添加掩模分支。而经典的mask-rcnn是两阶段实例分割模型是在faster-rcnn(两阶段目标检测模型)添加掩模分支,但是在YOLACT里没有feature roi pooling这个步骤。因而,YOLACT是一个单阶段实例分原创 2021-03-07 10:04:34 · 2424 阅读 · 25 评论 -
opencv的Mat结构里需要注意的细节
在使用opencv的dnn模块做深度学习时,经常会遇到一个疑惑。疑惑是这样的:当执行完outs = net.forward()之后,如果outs里有Mat的维数大于2,那么设断点调试的时候,可以看到rows和cols都等于-1,以目标检测为例,输出outs里包含box和score,断点调试查看out_score的信息如下:但是最后看程序运行的可视化结果,是没问题的。这个疑惑,在opencv源码里可以找到解释,在mat.hpp文件,第2559行至2561行,中间的注释里说:当矩阵的维数大于2时,row原创 2021-02-18 17:31:44 · 879 阅读 · 0 评论 -
用opencv的dnn模块实现Yolo-Fastest的目标检测
最近在微信朋友圈里疯传的Yolo-Fastest(github代码地址是https://github.com/dog-qiuqiu/Yolo-Fastest),据说模型非常小,且运行速度快,而且,这个YOLO-Fastest算法满足所有平台的需要。不论是PyTorch,还是Tensorflow,又或者是Keras和Caffe,可以说是全平台通用。但是我没有看到用opencv的dnn模块做前向推理的,于是我就想编写一个程序用opencv的dnn模块做Yolo-Fastest的前向推理。而在此之前,就已经有用o原创 2020-09-18 18:36:05 · 7640 阅读 · 13 评论 -
一种适合工业级应用的基于深度学习的实时人脸检测与识别算法的C++实现
在此之前我写过一篇文章比较了最近一年内的基于深度学习的人脸检测算法的精度和速度,在稀疏人脸场景里,libfacedetect是最佳选择。于是我就用C++编写了一套人脸检测与识别的程序,在这套程序中,人脸检测模块使用的是libfacedetect,这个模块了还包含了人脸对齐的功能,人脸特征向量提取模块使用的是arcface,此外我还提供了人脸关键点检测模块PFLD,它能输出98个人脸关键点。程序设计采用了面向对象的思想,把每个模块都用一个类包装起来。整个程序的运行只依赖opencv库,使用dnn模块做深度学习原创 2020-11-02 11:13:01 · 1454 阅读 · 3 评论 -
极简主义OCR
用opencv的dnn模块做OCR,实现对图片中的文本检测与识别,其中文本检测用的是EAST,文本识别用的是CRNN。程序的运行不依赖任何深度学习框架pytorch,tensorflow等等的,只依赖opencv,numpy,math和argparse这4个python库,做到极简主义OCR。下载源码的地址是https://github.com/hpc203/ocr-dnn在运行程序前,按照README.md里的提供的模型文件地址下载模型文件后,就可以运行程序了。在编写这个程序时,我一直有个疑惑,.原创 2020-09-23 16:30:11 · 1343 阅读 · 2 评论 -
4种YOLO目标检测的C++和Python两种版本实现
2020年,新出了几个新版本的YOLO目标检测,在微信朋友圈里转发的最多的有YOLOv4,Yolo-Fastest,YOLObile以及百度提出的PP-YOLO。在此之前,我在github是哪个已经发布过YOLOv4,Yolo-Fastest,YOLObile这三种YOLO基于OpenCV做目标检测的程序,但是这些程序是用Python编写的。接下来,我就使用C++编写一套基于OpenCV的YOLO目标检测,这个程序里包含了经典的YOLOv3,YOLOv4,Yolo-Fastest和YOLObile这4种YO原创 2020-09-28 15:49:52 · 12411 阅读 · 57 评论 -
opencv和PIL读取图片的一个细节
在做深度学习目标检测和语义分割的训练时,会有读取图片这个模块流程,在读取图片时,有些人习惯使用opencv,有些人习惯使用PIL。在做语义分割时,需要读取图片和标签mask,而标签mask也是一幅图片,而在读取了标签mask后,会把它转成灰度图,图片中的像素值表示类别索引。然而用opencv和PIL读取图片时,是有差别的。看如下代码示例:import numpy as npfrom PIL import Imageimport cv2if __name__ == "__main__":原创 2020-07-25 16:32:55 · 602 阅读 · 1 评论 -
opencv图像翻转与数据增强的细节
在opencv中有多个图像翻转函数应用到SSD和yolov3中的数据增强模块里,例如左右翻转,上下翻转,水平垂直翻转。在opencv里最常用的图像翻转函数是cv2.flip,其中有一个参数flipCode=1表示水平翻转,flipCode=0表示垂直翻转,flipCode=-1表示水平垂直翻转,而在yolov3中的数据增强模块里(参见https://github.com/ultralytics/yolov3/blob/master/utils/datasets.py里的LoadImagesAndLabels原创 2020-05-27 11:48:22 · 1238 阅读 · 0 评论 -
opencv中的resize插值方式比较
在做深度学习yolov3目标检测训练时,通常需要对原始图片做resize,把图片的尺寸缩放416x416。然而,opencv提供的resize函数里有多种插值方式,最常见使用的是INTER_LINEAR(双线性插值)和INTER_NEAREST(最近邻插值)。在github上pytorch版本的yolov3的star数量最多的的是https://github.com/ultralytics/yol...原创 2020-02-27 11:25:42 · 2288 阅读 · 0 评论