解析C++版OpenCV里的机器学习

使用openCV的Knn定义在 中,更确切地说在机器学习中,k最近邻方法是一种有监督的学习方法。在这个框架中,我们有一个由N个“输入-输出”对组成的训练数据库。为了估计与新输入x 相关联的输出,k最近邻方法包括根据要定义的距离(以相同的方式)考虑k个训练样本,其输入最接近新输入x。由于此算法基于距离,因此归一化可以提高其准确性。

Read More →

利用Python+OpenCV实现自动驾驶汽车的车道线检测

对于所有想知道如何在一篇文章中涵盖这一概念的人,我想说,在你深入探索之前,事情听起来很复杂。我不会说这篇文章非常简单,但是它的确是建立在非常基础的 概念之上的。
先决条件是什么?具备一些基本的OpenCV知识会很好。如果没有,请不要担心,我将尝试解释我将使用的OpenCV函数,并为你提供参考,以更详细地检查它们。本文的每一节将介绍一个最终将在程序的主要部分中使用的函数。此外,在本文中,我将使用图像演示所有内容。你可以重用相同的代码来使用视频(因为视频只是图像的集合)。

Read More →

BEBLID:减少执行时间的同时提高图像匹配精度!

OpenCV发行版4.5.1包含了BEBLID,这是一个新的本地特性描述符。opencv4.5.1中最令人兴奋的特性之一是BEBLID(Boosted effective Binary Local Image Descriptor),它是一种新的描述符,能够在减少执行时间的同时提高图像匹配精度!本文将向你展示一个具体的例子,所有源代码都存储在此GitHub存储库中:https://github.com/iago-suarez/beblid-opencv-demo/blob/main/demo.ipynb在这个例子中,我们将通过一个视角的改变来匹配这两个图像:

Read More →

如何通过Opencv4nodejs实现视频流解析与获取?

本文我们学习一个新的工具,即Opencv4nodejs。它不是基于python的OpenCV,而是基于nodejs的OpenCV。OpenCV在 应用中起到至关重要的作用,我们可以使用Opencv4nodejs在web应用中应用OpenCV,实现各种应用,包括人脸检测、人脸标记检测、人脸识别,甚至深度神经网络的目标识别等等…

Read More →

技术文章:Yolov3 CPU推理性能比较-Onnx、OpenCV、Darknet

为实时目标检测应用程序选择正确的推理框架变得非常具有挑战性,尤其是当模型应该在低功耗设备上运行时。在本文中,你将了解如何根据你的需要选择最佳的推理检测器,并发现它可以给你带来巨大的性能提升。通常,当我们将模型部署到CPU或移动设备上时,往往只关注于轻量级的模型体系结构,而忽略了对快速推理机的研究。在研究CPU设备上的快速推理时,我测试了提供稳定python API的各种框架。今天将重点介绍Onnxruntime、opencvdnn和Darknet框架,并从性能(运行时间)和准确性方面对它们进行度量。

Read More →

操作汇总:Python+OpenCV的基础图像处理

本文我们将讨论使用Python中的OpenCV库进行图像处理的一些基本操作。图像处理是对图像进行的技术操作与分析,比如为了得到增强的图像或提取一些有用的信息而进行的一系列操作。随着我们的发展,许多应用程序使用图像/帧/视频作为输入,对它们进行预处理,并将其输入到设备或软件或脚本中。

Read More →

技术文章:使用Python+OpenCV+Flask处理浏览器中的视频

现在我们常常在家里、办公室或其它地方安装网络摄像头或监控摄像头来进行视频监控。大多数人使用IP摄像机(互联网协议摄像机)而不是闭路电视(闭路电视),这是因为它们具有更高的分辨率和更低的布线成本。你可以在这里找到这两种系统之间的详细差异。在本文中,我们将重点介绍IP摄像机:https://www.taylored.com/blog/cctv-vs-ip-cameras-which-is-best-suited-for-your-business/IP摄像机是一种数字摄像机,它通过IP网络接收控制数据并发送图像数据,无需本地记录设备。大多数IP摄像机是基于RTSP(实时流协议)的,因此在internet浏览器中“不受支持”。

Read More →

图像处理入门:实现一个简单的滤波器

简介人脸识别和目标检测这样的术语听起来觉得很酷,但是当涉及到从头开始实现它们时,每个初学者都会觉得困难,这些技术实际上并没有那么难实现,一旦你掌握了其基本原理,那么实现它们就相当简单了。图像处理有很多种应用,包括用于解析文档和生成相应文本的光学字符识别(OCR)、图像增强与重建、物体识别、人体运动识别、手势识别、人脸识别等。在学习的过程中,你会遇到过奇形怪状的各种图像滤波器,那有没有去思考如何实现它吗,在本文中,我们将通过实现一个简单的滤波器来开始我们的图像处理之旅!什么是OpenCVOpenCV是一个开源库,包含了许多 算法。它在计算机视觉和图像处理中起着重要作用,用于实时操作,其效率足以满足工业上的要求。OpenCV可以与其他库一起使用,比如Numpy,这使得Python能够处理OpenCV数组结构。实现我们的第一个滤波器检测逻辑计算机不能像人类一样识别物体,为了能让计算机达到这个目的,我们可以使用各种技术来让计算机理解图像,我们会将颜色作为检测物体的主要依据。我们使用HSV颜色空间作为检测特征。什么是HSVHSV是Hue, Saturation 和Value(色调、饱和度和值)。色调:根据光谱,物体的颜色可分为红、蓝、绿、黄四种颜色。饱和度:它定义了颜色的强度。值:定义颜色的亮度。OpenCV中有150多种颜色空间转换方法,其中一种是彩色图像到HSV图像的转换。我们来看看代码我们需要导入我们要使用的库-OpenCV(cv2)和Numpy。import cv2

Read More →

DVG-Utils工具,帮你快速构建图像和视频处理管道

dvg-utils是一组工具,可以帮助你使用OpenCV快速构建图像和视频处理管道。在不同的平台和设备上进行 和深度学习的实验带来了许多挑战,尤其是当你希望与团队共同维护一个代码库而不需要做重复的工作。从不同设备设置视频流的步骤基本上是一样的,该过程我们需要记录日志,读取配置文件,绘制带有标签的框,保存结果,收集一些指标等,为什么不将这些工作放在一起呢?这就是本文向你介绍dvg-utils的意义。目录dvg-utils简介设置命令行工具捕获视频捕获图像例子指标概要资源dvg-utils简介自从我写了第一篇关于为图像和视频处理创建一个模块化而且简单的管道的文章以来,差不多过去一年了,从那以后我也一直在学习,学到了很多东西。在这段时间里,我做了许多不同的项目,它们总是需要相同的步骤。每个计算机视觉管道都需要以下代码块:设置日志读取配置文件捕获图像或视频流处理数据可视化结果显示结果保存结果收集指标这些代码块中的大多数都是在每个项目中会反复出现的模板代码。为了更轻松,更快速地设置计算机视觉项目,我在S?awomirGilewski的帮助下创建了dvg-utils Python软件包。dvg-utils:https://github.com/jagin/dvg-utilsS?awomirGilewski:https://medium.com/u/1ddaceb8aa71设置在开始之前,我建议使用Python虚拟环境。虚拟环境允许你在系统上运行独立的Python环境,更多请看一下RealPython上的这篇文章。https://realpython.com/python-virtual-environments-a-primer/我假设你正在使用具有Linux或MacOs系统的台式机/笔记本电脑(我没有机会在Windows平台上对其进行测试,但它应该可以运行)。如果你想从Jetson设备运行一些示例,Jetpack的SDK已经安装了OpenCV,你可以跳过pip install opencv-contrib-python这一步骤。对于树莓派用户,请在此文章的帮助下安装OpenCV 。https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/为了浏览库和用法示例,让我们克隆它并安装所需的软件包:$ git clone https://github.com/jagin/dvg-utils.git

Read More →

OpenCV基础知识入门

本文旨在让你快速入门opencv。OpenCVOpenCV是 中最受欢迎的库,最初由intel使用C和C ++进行开发的,现在也可以在python中使用。该库是一个跨平台的开源库,是免费使用的。OpenCV库是一个高度优化的库,主要关注实时应用程序。OpenCV库是2500多种优化算法的组合,可用于检测和识别不同的人脸,实时识别图像中的对象,使用视频和网络摄像头对不同的人类动作进行分类,跟踪摄像机的运动,跟踪运动对象(例如汽车,人等),实时计数对象,缝合图像来产生高分辨率图像,从图像数据库中查找相似的图像,从使用闪光灯拍摄的图像中消除红眼并提高图像质量,跟踪眼睛的运动,跟踪脸部等。它拥有大约4.7万活跃用户社区,下载量超过1800万。谷歌,亚马逊,特斯拉,微软,本田等许多大公司都使用Open cv来改善他们的产品,它更是驱动了AI的发展。先决条件在开始编写代码之前,我们需要在设备上安装opencv。如果你是ProIn编程专家,并且熟悉每个IDE,那么请使用Pycharm并从设置中的程序包管理器安装OpenCV-python。如果你是初学者或中级程序员,或者只是想关注博客,那么我们将使用代码编辑器而不是IDE。只需转到Visual Studio Code网站并根据你的操作系统下载最新版本即可。

Read More →

OpenCV空间人工智能竞赛:第一部分

介绍著名的开源 库OpenCV宣布了其将首次举行由英特尔赞助的空间 竞赛。随着OAK-D(OpenCV-AI-Kit With Depth)模块的发布,OpenCV呼吁参与者使用其模块解决现实世界中的问题。OAK-D模块有内置立体摄像头和RGB摄像头,同时还配备了一个强大的视觉处理单元(来自英特尔的Myriad X),可以进行深度神经网络推断。

Read More →