opencv
文章平均质量分 92
yuanlulu
做过嵌入式Linux开发、深度学习平台开发。擅长c++和python。
展开
-
python-opencv使用windows盘符路径的问题
在windows下使用python-opencv,发现使用带盘符的路径访问文件都回失败。比如: img = cv2.imread('D:\\项目\\活体检测\\python_liveness\\video\\front.jpg') print('type:{}'.format(type(img))) 输出内容是:type:<class 'NoneType'> 但...原创 2018-03-16 11:49:13 · 2208 阅读 · 2 评论 -
基于opencv和dlib的活体识别功能小结
概述项目过去几个月了,为了防止自己忘记,做简要概述。基本要求就是针对一段视频,里面的人判断是否完成了随机指定的某个动作(左转、右转、抬头、点头、张嘴、眨眼)。这属于非静默的活体识别,需要用户配合。基本方案使用dlib的人脸检测和关键点检测算法,获得人脸的基本姿态信息。但是dlib的68点信息无法直接用于头部姿态估计。我自己设计了一种简单高效的算法,把68点信息抽象为为一个4维向...原创 2018-09-07 11:50:23 · 6381 阅读 · 3 评论 -
使用opencv和dlib进行人脸姿态估计(python)
概述在计算机视觉中,物体的姿态是指相对于相机的相对取向和位置。本文主要参考了《Head Pose Estimation using OpenCV and Dlib》这篇文章。进行人脸姿态估计的目的就是获取人脸相对相机的朝向:人脸姿态估计的思想:旋转三维标准模型一定角度,直到模型上“三维特征点”的“2维投影”,与待测试图像上的特征点(图像上的特征点显然是2维)尽量重合。代码从笔记本摄...原创 2018-09-18 19:59:44 · 23988 阅读 · 59 评论 -
tensorflow 10: sofmax回归识别mnist手写数字图片
Softmax回归介绍为了得到一张给定图片属于某个特定数字类的证据(evidence),我们对图片像素值进行加权求和。如果这个像素具有很强的证据说明这张图片不属于该类,那么相应的权值为负数,相反如果这个像素拥有有利的证据支持这张图片属于这个类,那么权值是正数。我们也需要加入一个额外的偏置量(bias),因为输入往往会带有一些无关的干扰量。下面的图片显示了一个模型学习到的图片上每个像素对于特定数...原创 2018-10-05 15:44:44 · 2318 阅读 · 0 评论 -
python+tifffile之tiff文件读写
背景使用python操作一批同样分辨率的图片,合并为tiff格式的文件。由于opencv主要用于读取单帧的tiff文件,对多帧的文件支持并不好。通过搜索发现了两个比较有用的包:TiffCapture和tifffile。两者都可用pip安装。其中前者主要用于读取tiff文件,后者可读可写。最终选择tifffile来合成tiff图片文件。安装tifffilepip install tiff...原创 2018-10-22 22:00:38 · 22706 阅读 · 3 评论 -
Tesseract-OCR批量标注及合并数据集的一种思路
背景Tesseract标注训练最根本的文件是两个:tiff文件(存储图片)及box文件(标注字符值和位置)一般tiff用命令合成,box文件用jTessBoxEditor生成。背景知识参考前一篇博客,可以用python读写tiff文件。另外box每一行的格式如下(6个元素):tag x y w h frame-numtag即OCR识别后的字符的值,(x,y,w,h)是左上角坐标及长...原创 2018-10-22 22:25:38 · 4272 阅读 · 0 评论 -
磁盘图片到numpy的两种方法:一次意外的优化
概述在优化代码时意外将图片读取的效率提升了60倍。主要就是在python下把磁盘图片变为numpy数组。低效方法:PIL和numpy组合import numpy as npfrom PIL import Imagedef load_image_into_numpy_array(image): (im_width, im_height) = image.size ret...原创 2018-12-31 14:43:48 · 589 阅读 · 2 评论 -
MTCNN人脸及特征点检测--基于树莓派3B+及ncnn架构
概述本文尝试在树莓派3B+上用ncnn框架测试MTCNN。ncnn的基本编译和使用请参考《在树莓派3B+上编译ncnn并用benchmark和mobilenet_yolo测试》。本文在这个博客基础上进行操作。操作步骤下载mtcnn从mtcn-ncnn项目中下载mtcnn子目录,把这个目录放在最新的ncnn源码目录下添加对mtcnn的支持修改ncnn最顶层的CMakeList.txt,...原创 2019-01-15 20:39:23 · 8259 阅读 · 10 评论 -
python_opencv--身份证文字区域检测
概述本文基于opencv的形态学滤波检测身份证上的文字位置。如果是自然场景的文字检测可以用CTPN或者EAST。我这里是身份证合成照片,没有多余背景,也没有复杂光照,所以就用最简单的办法。代码import sysimport numpy as npimport cv2def test_detect (img_path): # 参考:https://blog.csdn.n...原创 2019-01-16 20:43:51 · 6389 阅读 · 7 评论 -
rk3399环境配置:安装opencv、dlib和tensorflow,并测试ncnn性能
概述最近入手了NanoPC-T4开发板,上面用的是rk3399这款芯片。安装系统:rk3399-eflasher-friendlydesktop-bionic-4.4-arm64-20181219。这是一个ubuntu18.04为基础的Linux系统。安装过程下面的操作都是在root用户下完成的。更新源到/etc/apt/sources.list.替换url为http://mirror...原创 2019-02-24 12:57:03 · 8362 阅读 · 9 评论 -
改进opencv的VJ人脸检测器(LBP特征)
概述opencv实现的人脸检测器基本原理来自大名鼎鼎的VJ,但是opencv提供的训练模型功能非常羸弱。VJ以来,很多数码相机和手机都实现了人脸检测功能。可是哪些商业软件并不会开源,导致opencv里的人脸检测器一直没有长进。而且随着深度的风靡,研究人员没有动力去改进opencv人脸检测了。有三位作者看不下去了,在opencv框架的基础上做了很多改进。原始论文题目叫《ImprovingOp...原创 2018-09-17 23:48:42 · 2505 阅读 · 0 评论 -
机器视觉:基于特征的图像对齐(使用opencv和python)
概述本文主要内容来自参考资料《mage Alignment (Feature Based) using OpenCV (C++/Python)》本文讲述使用opencv中基于特征的的图像对齐方法。这里将会把手机拍摄的表单和与表单的模板对齐。这里用到的技术被称为基于特征的图像对齐,因为在这种技术中,要在一个图像中检测到一组特征点,并与另一张图像中的特征点相匹配。然后根据这些匹配的特征...翻译 2018-08-30 15:23:53 · 33704 阅读 · 6 评论 -
物体检测之选择性搜索(Selective Search)
概述本文牵涉的概念是候选区域(Region Proposal ),用于物体检测算法的输入。无论是机器学习算法还是深度学习算法,候选区域都有用武之地。本文的来源是翻译参考资料里的《Selective Search for Object Detection (C++ / Python)》,这是国外一个大神的博客,讲的是择性搜索(Selective Search)这一种产生候选区域的算法。这个算...翻译 2018-08-29 01:55:50 · 30351 阅读 · 6 评论 -
windows目录下python版本的opencv使用imwrite保存图片的问题
使用python版本的opencv保存从视频文件中抽取出来的图像帧,就是在磁盘上看不到图片文件。进过测试,发现imwrite的参数中若包括了windows目录的磁盘路径(如D:)则无法保存成功。 程序一: cap = cv2.VideoCapture("D:/项目/video/front.avi") index = 0 while (cap.isOpened()): ...原创 2018-03-12 22:46:51 · 11527 阅读 · 6 评论 -
opencv-python的格式转换 RGB与BGR互转
opencv读取图片的默认像素排列是BGR,和很多其他软件不一致,需要转换。 这里转一下国外博客的一个方法,基于python语言。BGR to RGBOpenCV image to Matplotlibrgb = bgr[...,::-1]RGB to BGRMatplotlib image to OpenCVbgr = rgb[...,::-1]RGB to GBR...原创 2018-04-17 22:53:23 · 43815 阅读 · 1 评论 -
python-opencv 使用LBP特征检测人脸
概述最近在做人脸检测相关功能,目前注意到比较传统(非深度)人脸检测特征包括harr和LBP(HOG用于行人检测更多些),opencv包括了这两种特征算法,并且相对来说,LBP更快,这是一个比较大的优点,我决定试一试。这里就是我测试的记录。感受:opencv实现的LBP人脸检测确实快,但是官方的模型文件对于侧脸和歪脸很弱,容易漏检。可能是因为官方没有针对这些情况训练,只针对正脸。真是使用的话...原创 2018-06-15 15:43:19 · 6762 阅读 · 6 评论 -
使用pyav访问网络视频流
背景深度学习项目中使用python-opencv获取视网络频流出错,找替代方案.要求能得到numpy格式的图片,供opencv和深度模型使用。方案选型据我所知道的方法,在python中访问网络视频流(rtsp 或者http视频流)有以下工具:opencv、pyav、imageio和python-vlc.imageio和python-vlc的资料少,没找到完美的例子,放弃。 o...原创 2018-06-26 20:50:48 · 15184 阅读 · 0 评论 -
python-opencv的学习资源
概述自己平常用python调用opencv,遇到问题往往求助官方手册 和网络上的资源。 自己也想过去翻译opencv的”OpenCV-Python Tutorials”,但是自己对opencv研究不深,始终未付诸实践。目前发现已经有高人把这个工作做完了。python_opencv例程及中文Tutorials有位高人已经做了opencv官方文档的翻译,把文档和代码都放在了githu...原创 2018-07-02 20:44:37 · 1532 阅读 · 0 评论 -
opencv目标跟踪概述和人脸跟踪
概述opencv内部实现了一些单目标跟踪算法,可以很方便的使用。这里说的目标跟踪不是多目标跟踪,往往是需要人工或程序给定初始目标位置。资源及跟踪算法介绍目前看到的比较好的opencv目标跟踪算法资源在这里:https://www.learnopencv.com/object-tracking-using-opencv-cpp-python/这个页面介绍了几个常用的跟踪算法:...翻译 2018-07-03 16:04:39 · 6588 阅读 · 2 评论 -
ARM64+ubuntu18.04深度学习环境安装小结
概述本人断断续续花费了两周时间,在某国产ARM64+linux环境的服务器上,使用docker容器安装成功了公司深度学习项目所需的环境。中间过程坎坷,在此结文以记,希望能对他人有所帮助,少踩坑。目前成功搭建的环境如下:aarch64 docker容器,ubuntu18.04, python2, opencv3.3, dlib19.15, tensorflow1.5, sklearn。上...原创 2018-08-12 15:59:53 · 14472 阅读 · 1 评论 -
opencv+python旋转图片
说明python-opencv读取的图片本就是numpy格式,利用矩阵的相关操作,可以快速完成图片的顺时针90度和逆时针90度。本例子利用矩阵转置和镜像翻转的组合,可以快速实现图片的翻转。代码参考了别人的c++代码,完成了python版本的程序。 参考链接:https://blog.csdn.net/tianzhaixing2013/article/details/53037...原创 2018-08-16 22:52:54 · 12680 阅读 · 2 评论 -
opencv目标检测器训练的资料整理
概述opencv自带的分类器是adaboost分类器算法思想是通过迭代训练弱分类器得到一个强分类器。每次迭代得到局部最优的分类器,然后将局部最优的分类器权值相加最后得到一个可用的强分类器。具体的原理可参考《浅析人脸检测之Haar分类器方法》在windows下编译opencv之后,在build\x64\vc14\bin目录下回有opencv_createsamples.exe和opencv_...原创 2018-08-30 18:10:08 · 2213 阅读 · 0 评论 -
基于语义分割的身份证部件解析和文字检测
概述这个工作主要是利用人脸解析项目的算法,探索一下语义分割的功能。安排实习生利用合成的身份证照片进行了语义分割的标注。我的目的有两个:1.检测身份证上的信息是否齐全;2.确定身份证各文字信息的位置,把文字抠出来给OCR程序。基于opencv的算法之前写过一篇文章《python_opencv–身份证文字区域检测》,利用opencv的接口进行二值化,然后找出所有的阴影对应的外接矩形。这个方法...原创 2019-05-10 18:09:42 · 4990 阅读 · 9 评论