自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(182)
  • 收藏
  • 关注

原创 ESP32-CAM 使用 MicroPython 完成视频网络服务器 (Web Video Stream)

本篇文章的目的是要用 MicroPython 控制 ESP32-CAM 的摄像头,运行一个实时视频,可以使用浏览器莱观看结果,架构设计如下图所示,先让 ESP32-CAM 跟电脑先连上同一个AP(子网络),接著在 ESP32-CAM 上运行一个Web服务器,是使用 microdot 这个包来简化架站的功能,接著打开web浏览器即可观看结果。

2023-05-02 16:23:56 5264 8

原创 RGB颜色空间的拆分 - 使用 OpenCV split 以及数组

如果是针对白底的图片,这样的显示方式通常都达不到想要的效果,如底下代码所示,因为白底会导致整个单一通道的显示呈现单一通道的底色,这样反而不容易凸显出目标物。此外,人类眼中的红蓝绿,常常是混合的结果,所以,如果要单独找出红蓝绿颜色,通常是使用 HSV 的颜色空间。将彩色图片依照BGR通道来分割,以下示例将上面生成的 diy.jpg 图片的每一个通道单独显示一张图片,从显示的顺序可以发现,通道依序是红(0)、绿(1)、蓝(2)。图 1. 显示 BGR 与 RGB(A) 格式的差异,右手边的图形配色才是正确的。

2023-04-01 16:38:18 1552

原创 石头计算项目 - 后端 - Web 服务器

Web 服务器需要提供用户图形用户介面的入口,透过这个入口来要求 ESP32-CAM 上传图片,都收到图片后再将图片交予智能应用程序进行计算机图学或是人工智能运算,接著再把运算结果回覆给用户。图 1. Web 服务器运作流程。

2023-04-01 08:26:43 971

原创 智能应用程序 - 计算石头

本项目最主要的算力会在智能应用程序完成,而计算石头的方法流程为:读取照片、找出ROI、使用 HSV 颜色空间将蓝色石头过滤出来、透过开运算取得蓝色石头所在位置与数量。图 1. 智能应用程序 - 计算石头的成果。智能应用程序,过滤蓝色石头代码。

2023-04-01 08:20:44 841

原创 智能设备 - ESP32-CAM上网、拍照、上传图片与状态显示

本项目的智能装备采用 ESP32-CAM,需要提供上网、拍照、上传图片与状态显示等功能,开发语言讲采用 MicroPython,因为上网、拍照与状态显示等三项功能 ESP32-CAM 可以单独完成,而上传图片需要事先架设好 Web 服务器作为接收的服务器,所以放在最后再来说明。ESP32-CAM 提供一个拍摄图片的网页 API,可以让用户调用,藉以获取摄像头的拍摄结果,让 ESP32-CAM 支援网页功能需要事先安装 microdot 包,可以透过在主机输入以下命令来进行安装,详细介绍可以参阅前面章节。

2023-03-13 15:40:00 5153 1

原创 软硬件项目集成 - 石头计算

最后 Web 服务器在将结果回传给图形用户介面,而这个交互方式可以是静态网页,也可以是使用 AJAX 的动态网页。本章集成本书前面所有介绍的技术实作一个软硬件项目集成应用,目标是要在三种不同颜色的石头中计算出蓝色石头的数量,透过智能装备的摄像头取得照片,上传到 Web 服务器,而 Web 服务器会将图片交给智能应用程序来进行计算机视觉与人工智能相关的算法运算,并将结果以图形用户介面的方式呈现给用户,如下图所示。表 1. 石头计算软硬件项目元件说明表。图 1. 石头计算软硬件项目集成架构。

2023-03-13 15:33:17 786

原创 计算机视觉技术- 图像轮廓

它的第一个参数是源图像,第二个参数是应该作为 Python 列表传递的轮廓,第三个参数是轮廓的索引(在绘制单个轮廓时有用。要绘制所有轮廓,请传递 -1,其余参数是颜色,厚度等等。下图显示原图与经过二值化的图片,而在 findContours() 运算的结果却有 214 个轮廓,右上角有一个很明显的区域,但那个部分并非是石头部分,所以可以使用ROI技术,来改善这个算法。操作如下:以灰度的模式读取一个蓝色石头的图片,进行二值化阀值运算,找出所有轮廓,最后显示出原始、二值化以及闭运算后的图像。

2023-03-13 15:30:14 918

原创 计算机视觉技术 - 边缘检测

强度梯度大于 maxVal 的任何边缘必定是边缘,而小于 minVal 的那些边缘必定是非边缘,因此将其丢弃。非极大值抑制在获得梯度大小和方向后,将对图像进行全面扫描,以去除可能不构成边缘的所有不需要的像素。如果为 True ,则使用上面提到的更精确的公式,否则使用以下函数,默认情况下,它为 False。边缘就是像素值急剧变化的地方,即梯度大的地方。通常只能在单一通道,即灰度图像上检测边缘,当然,也可以为RGB图像的每个通道检测边缘。边缘运算的结果主要是要在透过图像阈值来操作,这样就可以有效的消除背景。

2023-03-13 15:28:02 1252

原创 数字图像形态学处理

它需要两个输入,一个是我们的原始图像,第二个是决定操作性质的结构元素或内核。然后,它的变体形式(如“打开”,“关闭”,“渐变”等)也开始起作用,例如侵蚀,膨胀,开运算,闭运算等。形态学处理是对灰度图像或二值图像的处理,通常用作识别银行卡号,OCR文字识别等应用的预处理,会对图像中的外形和结果做变换,例如,使物体外形变胖或变瘦,关闭物体之间的间隙或打开间隙。操作如下:读取一个蓝色石头的图片,转成灰度后才能进行二值化阀值运算,侵蚀运算必须是针对二进制图像,最后显示出原始、二值化以及侵蚀后的图像。

2023-03-13 15:24:43 994

原创 计算机视觉技术 - 图像平滑

而双边滤波器在空间中也采用高斯滤波器,但是又有一个高斯滤波器,它是像素差的函数。空间的高斯函数确保仅考虑附近像素的模糊,而强度差的高斯函数确保仅考虑强度与中心像素相似的那些像素的模糊。因此,在此操作中边缘有些模糊。图像平滑是指受硬件、环境等因素的影响,图像上会出现某些亮度变化过大的区域,或出现一些亮点(也称噪声)。有趣的是,在上述过滤器中,中心元素是新计算的值,该值可以是图像中的像素值或新值。操作如下:保持这个内核在一个像素上,将所有低于这个内核的25个像素相加,取其平均值,然后用新的平均值替换中心像素。

2023-03-13 15:19:03 1339

原创 计算机视觉技术 - 图像阈值

在全局阈值化中,我们使用任意选择的值作为阈值。考虑仅具有两个不同图像值的图像(双峰图像),其中直方图将仅包含两个峰。在第三种情况下,首先使用 5x5 高斯核对图像进行滤波以去除噪声,然后应用Otsu阈值处理。图像阈值(threshold),即图像的分割基准,基于此可完成图像的二值化。这种分割是基于图像像素值级别的差异,且一般的对象是灰度图像。图像阈值的进一步处理就是二值化,二值化包含但不限于“大于阈值为255,小于阈值为0”的处理模式。本方法返回两个输出。第一个是使用的阈值,第二个输出是阈值后的图像。

2023-03-13 15:16:54 2030

原创 智能软硬件项目开发 - 目录

在本书介绍智能软硬件项目与一般的 IoT 系统相同,可以通过实时收集和交换数据来运作。智能软硬件项目系统有三个组件:- 智能设备:从环境、用户输入或使用模式中收集数据,通过网络与应用程序进行数据通信。- 智能应用程序:是一种服务和软件集合,使用机器学习或人工智能(AI)技术来分析此数据并据此做出明智决策,这些决策会传输回智能设备,然后智能设备会以智能方式对输入进行响应。 - 图形用户界面:用户可以通过图形用户界面管理智能设备。常见示例包括用于注册和控制智能设备的移动应用程序或网站。

2023-03-11 20:50:18 577

原创 图像颜色空间

RGB是最常见的面向硬件设备的彩色模型,它是人的视觉系统密切相连的模型,根据人眼结构,所有的颜色都可以看做是3种基本颜色——红r、绿g、蓝b的不同比例的组合。HSV 颜色空间是孟塞尔彩色空间的简化形式,是一种基于感知的颜色模型。色调表示从一个物体反射过来的或透过物体的光波长,也就是说,色调是由颜色的名称来辨别的,如红、黄、蓝;亮度是颜色的明暗程度;,表示这是由 435 行、 580 列像素组成,而像素内容则是取决于颜色空间,如果颜色空间为 RGB ,那就有 3 个通道,如果是灰度,则只有 1 个通道。

2023-03-10 21:15:53 761

原创 OpenCV 基础

OpenCV项目由英特尔公司于1999开始开发,2006年,英特尔公司发布OpenCV 1.0 版本,2009年10月发布OpenCV 2.0 版本,目前,OpenCV已经发布了4.0 版本。有时候,我们不得不处理一些特定区域的图像。在获取人脸图像时,我们只选择人脸区域,搜索其中的眼睛,而不是搜索整个图像。在 Python 中使用 OpenCV 十分简单,只要安装 opencv-python 包即可,但因为安装包很大,预设是从 pypi 网站下载,所以先将安装镜像档先修改到国内,可以有效的降低安装时间。

2023-03-10 21:14:05 417

原创 计算机视觉技术 - 简介

计算机视觉 (Computer Version, CV) 是一门研究如何使计算机“看”的科学,更进一步的说,就是是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使计算机处理成为更适合人眼观察或传送给仪器检测的图像。一幅图像可以定义为一个二维函数f(x,y),其中x和y是空间(平面坐标),而在任一空间坐标(x,y)处的幅值f称为图像在改点处的强度或灰度,当x,y和灰度值f为离散数值时,我们就称该图像为数字图像。简单的说就是在一副图像中,把目标从背景中分离出来。

2023-03-10 21:08:59 463

原创 ESP32-CAM处理多工-使用计时器 - uPython

先前有介绍过多种多工的方式,使用软件:_thread;使用硬件中断:定时器触发与引脚上的电压变化,在此用定时器触发的方式,让 ESP32-CAM 同时可以处理网页的画面,另一方面还可以控制灯光的闪烁。

2023-03-10 21:05:54 286

原创 ESP32-CAM GPIO LED 控制 - uPython

ESP32-CAM 内建有两个发光二极管(light-emitting diode, 以下简称 LED)外设,分别是接在通用型之输入输出 (General-purpose input/output, 以下简称 GPIO) 4, 33,一个是闪光灯 LED,一个是红灯 LED,以下透过网页的方式来对这两个外设装置进行控制。运行结果如下图所示,先启动 ESP32-CAM 的 1. WiFi 连线,接著2. 运行 gpio.py,当 3. 下方的 Shell 出现。键,就可以发现闪光灯 LED 会打开。

2023-03-10 21:03:54 1734

原创 透过 ESP32-CAM 抓取图片 - uPython

下图使用 ESP32-CAM 的摄像头拍照后,将照片透过 HTTP 网页协议,回传给使用者,让使用者可以看到摄像头所拍摄的图片。下图是 ESP32-CAM 拍照 Web 服务器运行画面,可以单击秀照片来更新图片。是撷取画面,而回传是需要包含数据本体、响应代码以及响应类型。图 17. ESP32-CAM 拍照 Web 服务器运行画面。图 16. 使用 ESP32-CAM 的摄像头的网站架构。以下为 camera 包的一些使用示例。会对摄像头进行初始化,

2023-03-10 21:03:23 1233

原创 ESP32-CAM 网路与摄像头应用

以下会展示以 ESP32-CAM 做为 Web 服务器的示例,下图说明其运作架构,首先,ESP32-CAM 与个人电脑都要先连上同一个子网的存取点(Access Point, AP),这样 ESP32-CAM 与个人电脑才能相互沟通,接著 ESP32-CAM 将会担任 Web 服务器的角色,而个人电脑则是透过浏览器来观看网页结果。命令,可以列出内建的模块。在 MicroPyhon 中,main.py 是事先定义好的文件,以上的范例我们将 Wi-Fi 连线与 Web 服务器的部份则写在 main.py 中。

2023-03-10 21:00:05 4153 4

原创 uPython - 分发包、包管理和部署应用程序 - 以 microdot 为例

Python 模块和包被转换为分发包档案,并在 Python 包索引 (PyPI) 上发布。upip 包管理器可用于在具有网络功能的 MicroPython 设备上安装、分发包(例如,在 Unix 设备上)。v1.19 后已改为 mip。对于没有联网能力的端口,可以在Unix设备上准备一个“安装映像”,并通过合适的方式传输到设备上。对于低内存端口,可以将安装映像冻结为 MicroPython 可执行文件的字节码,从而最大限度地减少内存存储开销。

2023-03-06 14:48:50 1033

原创 ESP32-CAM 中断处理程序(Interrupt Service Routine)

在合适的硬件上,MicroPython 提供了用 Python 编写中断处理程序的能力。中断处理程序——也称为中断服务程序 (ISR)——被定义为回调函数。这些是为了响应诸如或之类的事件而执行的。此类事件可能发生在程序代码执行过程中的任何一点。这会带来重大后果,其中一些是 MicroPython 语言特有的。其他的对于能够响应实时事件的所有系统都是通用的。下面详述的要点并列出了中断处理程序代码的主要建议。

2023-03-06 14:44:56 457

原创 MicroPython 特定的库 (MicroPython-specific)-ntptime

以下库中提供了特定于 MicroPython 实现的功能。

2023-03-04 13:56:49 840

原创 MicroPython 特定的库 (MicroPython-specific)-network

以下库中提供了特定于 MicroPython 实现的功能。

2023-03-04 13:53:42 506

原创 MicroPython 特定的库 (MicroPython-specific) - machine

以下库中提供了特定于 MicroPython 实现的功能。

2023-03-04 13:51:48 1234

原创 MicroPython 标准库和微型库 - _thread

MicroPython 提供 Python 标准库功能的内置模块(例如 os、time)以及 MicroPython 特定的模块(例如 bluetooth, machine)。大多数标准库模块实现了等效 Python 模块的一部分功能,并且在少数情况下提供了一些 MicroPython 特定的扩展(例如 array, os)。由于资源限制或其他限制,某些固件版本可能不包括官方手册的所有功能。图 1. micropython_camera 固件中的内建模组。

2023-03-04 10:24:14 877

原创 MicroPython 标准库和微型库 - time

MicroPython 提供 Python 标准库功能的内置模块(例如 os、time)以及 MicroPython 特定的模块(例如 bluetooth, machine)。大多数标准库模块实现了等效 Python 模块的一部分功能,并且在少数情况下提供了一些 MicroPython 特定的扩展(例如 array, os)。由于资源限制或其他限制,某些固件版本可能不包括官方手册的所有功能。图 1. micropython_camera 固件中的内建模组。

2023-03-04 10:22:21 567

原创 MicroPython 标准库和微型库 - os

MicroPython 提供 Python 标准库功能的内置模块(例如 os、time)以及 MicroPython 特定的模块(例如 bluetooth, machine)。大多数标准库模块实现了等效 Python 模块的一部分功能,并且在少数情况下提供了一些 MicroPython 特定的扩展(例如 array, os)。由于资源限制或其他限制,某些固件版本可能不包括官方手册的所有功能。图 1. micropython_camera 固件中的内建模组。

2023-03-04 10:18:35 1482

原创 MicroPython 标准库和微型库 - io

MicroPython 提供 Python 标准库功能的内置模块(例如 os、time)以及 MicroPython 特定的模块(例如 bluetooth, machine)。大多数标准库模块实现了等效 Python 模块的一部分功能,并且在少数情况下提供了一些 MicroPython 特定的扩展(例如 array, os)。由于资源限制或其他限制,某些固件版本可能不包括官方手册的所有功能。图 1. micropython_camera 固件中的内建模组。

2023-03-04 10:14:50 329

原创 MicroPython 交互式解释器模式(REPL)

介绍 MicroPython 交互式解释器模式(read-eval-print-loop, 以下简称 REPL)的一些特性。可以使用 Thonny 图型介面或是 esptool 所提供的 mpremote 远程调适工具来运行。

2023-03-04 10:01:44 1177

原创 安装 MicroPython 到 ESP32-CAM - 使用esptool (Windows)

使用 esptool 下载 MicroPython for ESP32 烧录档固件到 ESP32-CAM ,下表与下图是说明 ESP32-CAM 模块开发板与 CH340 串口模块进行下载模式时的接线情形。下表与下图是说明ESP32-CAM 模块开发板与 CH340 串口模块进行调适模式时的接线情形。图 01 ESP32-CAM 模块开发板与 CH340 串口模块进行调适模式的接线图。图 02 ESP32-CAM 模块开发板与 CH340 串口模块进行下载模式的接线图。命令,可以列出内建的模块。

2023-03-04 09:45:58 1909

原创 ESP32-CAM 使用 MicroPython 进行开发 - 使用图形化工具 Thonny (Windows)

ESP32-CAM是安信可发布小尺寸的摄像头模组。该模块可以作为最小系统独立工作,尺寸仅为2740.54.5mm。ESP32-CAM可广泛应用于各种物联网场合,适用于家庭智能设备、工业无线控制、无线监控、人脸识别以及其它物联网应用,是物联网应用的理想解决方案。ESP32-CAM采用DIP封装,直接插上底板即可使用,实现产品的快速生产,为客户提供高可靠性的连接方式,方便应用于各种物联网硬件终端场合。

2023-03-04 09:33:33 3473 1

原创 软硬件集成开发简介

ESP32 是一系列低成本,低功耗的单晶片微控制器,集成了 Wi-Fi 和双模蓝牙。ESP32 系列采用 Tensilica Xtensa LX 6微处理器,包括双核心和单核变体,内建天线开关,RF变换器,功率放大器,低杂讯接收放大器,滤波器和电源管理模组。ESP32 由总部位于上海的中国公司乐鑫信息科技创建和开发,由台积电采用40奈米技术制造。它是 ESP8266 微控制器的后继产品。

2023-02-27 15:01:01 2297

原创 安装 MicroPython 到 ESP32-CAM - 使用esptool.py (Mac)

双母头杜邦线 | 4 |跳线帽 | 1 个 |模块输入电源至少5V 2A,否则图片会有几率出现水纹。下表与下图是说明ESP32-CAM 模块开发板与 CH340 串口模块进行调适模式时的接线情形。图 01 ESP32-CAM 模块开发板与 CH340 串口模块进行调适模式的接线图下表与下图是说明 ESP32-CAM 模块开发板与 CH340 串口模块进行下载模式时的接线情形。图 02 ESP32-CAM 模块开发板与 CH340 串口模块进行下载模式的接线图。

2022-12-30 18:04:57 2122

原创 介绍 ESP32-CAM 系统架构、内存地址、开机流程

因为 ESP32-CAM 内核是 ESP32,所以以下所有的说明来自 ESP32 技术参考手册。ESP32 是一个双核系统,具有两个哈佛架构(Harvard Architecture) Xtensa LX6 CPU。所有嵌入式内存(embedded memory),外部内存(external memory)和外围设备(peripherals)位于这些 CPU 的数据总线和/或指令总线上。两个 CPU 的地址映射是对称的,这意味着它们使用相同的地址访问相同的内存。

2022-12-30 14:03:05 5499

原创 ESP32-CAM 使用 MicroPython 进行开发 - 使用图形化工具 Thonny (Mac)

ESP32-CAM是安信可发布小尺寸的摄像头模组。该模块可以作为最小系统独立工作,尺寸仅为2740.54.5mm。ESP32-CAM可广泛应用于各种物联网场合,适用于家庭智能设备、工业无线控制、无线监控、人脸识别以及其它物联网应用,是物联网应用的理想解决方案。ESP32-CAM采用DIP封装,直接插上底板即可使用,实现产品的快速生产,为客户提供高可靠性的连接方式,方便应用于各种物联网硬件终端场合。

2022-12-24 11:42:29 7672 10

转载 使用Learner Lab - 如何启动、管理和监控Amazon EC2实例以及调整其大小

点击启动实例。

2022-12-19 09:46:27 480

转载 使用 Learner Lab - 如何访问已经创建的EC2

的服务,让学生可以在 100 USD的金额下,自行练习所要使用的 AWS 服务,这篇文章介绍的是如何访问之前创建的EC2,如果没创建请参考这篇文章,是一种 Web 服务,可在提供大小可调的云端计算容量。该服务旨在让开发人员更轻松地进行 Web 规模的云计算。提供一个帐号让学生可以自行使用。我们之前创建的安全组名称为。,我们设置安全组规则。

2022-12-19 09:44:12 159

转载 使用 Learner Lab - 如何设置自己想要的VPC,以供EC2使用

您可以控制您的虚拟联网资源,包括:IP 地址范围选择子网创建路由表和网络网关配置任务如何设置自己想要的VPC步骤一:找到VPC在搜索栏键入vpc,点击vpc服务,进入。步骤二:创建VPC1.点击创建VPC。2.选择要创建的资源(可选择是仅创建VPC,还是同时创建 VPC、子网、NAT 网关和 VPC 终端节点)。为了方便使用我们选择VPC等。3.为名签标签输入一个值(如果不选择自动生成创建的vpc就没有名称需要自己输入)。为了方便编写,我们选择自动生成(名称为test)。

2022-12-19 09:41:38 215

转载 使用 Learner Lab - 如何使用已有的 VPC 创建 EC2

是一种 Web 服务,可在提供大小可调的云端计算容量。该服务旨在让开发人员更轻松地进行 Web 规模的云计算。的服务,让学生可以在 100 USD的金额下,自行练习所要使用的 AWS 服务,这篇文章介绍的是如何使用。提供一个帐号让学生可以自行使用。在本章中我们将使用之前创建的。设置自己想要的环境供。

2022-12-19 09:38:58 163

原创 ESP32 与 ESP32-CAM 的关系

ESP32 是一系列低成本,低功耗的单晶片微控制器,集成了 Wi-Fi 和双模蓝牙。ESP32 系列采用 Tensilica Xtensa LX 6微处理器,包括双核心和单核变体,内建天线开关,RF变换器,功率放大器,低杂讯接收放大器,滤波器和电源管理模组。ESP32 由总部位于上海的中国公司乐鑫信息科技创建和开发,由台积电采用40奈米技术制造。它是 ESP8266 微控制器的后继产品。

2022-12-14 19:23:08 5159 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除