From 819760561a6b8ede5fc46bde64231ede32f206b3 Mon Sep 17 00:00:00 2001 From: Neucrack Date: Wed, 3 Apr 2024 11:53:58 +0800 Subject: [PATCH] optimize doc --- maixpy/doc/zh/audio/recognize.html | 4 +- maixpy/doc/zh/basic/app.html | 4 +- maixpy/doc/zh/basic/app_usage.html | 4 +- maixpy/doc/zh/basic/linux_basic.html | 4 +- maixpy/doc/zh/basic/maixpy_upgrade.html | 4 +- maixpy/doc/zh/basic/maixvision.html | 4 +- maixpy/doc/zh/basic/os.html | 4 +- maixpy/doc/zh/basic/python.html | 4 +- maixpy/doc/zh/basic/python_pkgs.html | 4 +- maixpy/doc/zh/faq.html | 4 +- maixpy/doc/zh/index.html | 4 +- maixpy/doc/zh/modules/acc.html | 4 +- maixpy/doc/zh/modules/thermal_cam.html | 4 +- maixpy/doc/zh/modules/tof.html | 4 +- maixpy/doc/zh/peripheral/gpio.html | 4 +- maixpy/doc/zh/peripheral/i2c.html | 4 +- maixpy/doc/zh/peripheral/pwm.html | 4 +- maixpy/doc/zh/peripheral/spi.html | 4 +- maixpy/doc/zh/peripheral/uart.html | 4 +- maixpy/doc/zh/peripheral/wdt.html | 4 +- maixpy/doc/zh/pro/compile_os.html | 4 +- maixpy/doc/zh/sidebar.yaml | 5 +- maixpy/doc/zh/source_code/add_c_module.html | 4 +- maixpy/doc/zh/source_code/build.html | 4 +- maixpy/doc/zh/source_code/contribute.html | 4 +- maixpy/doc/zh/source_code/faq.html | 4 +- maixpy/doc/zh/source_code/maixcdk.html | 4 +- maixpy/doc/zh/video/jpeg_streaming.html | 376 ++++++++++++++++++ maixpy/doc/zh/vision/ai.html | 56 ++- maixpy/doc/zh/vision/apriltag.html | 4 +- maixpy/doc/zh/vision/body_key_points.html | 4 +- maixpy/doc/zh/vision/camera.html | 85 +++- maixpy/doc/zh/vision/classify.html | 43 +- maixpy/doc/zh/vision/display.html | 8 +- maixpy/doc/zh/vision/face_recognize.html | 4 +- maixpy/doc/zh/vision/find_blobs.html | 78 +++- maixpy/doc/zh/vision/image_ops.html | 284 ++++++++++++- maixpy/doc/zh/vision/maixhub.html | 355 +++++++++++++++++ maixpy/doc/zh/vision/maixhub_train.html | 61 ++- maixpy/doc/zh/vision/object_track.html | 8 +- maixpy/doc/zh/vision/qrcode.html | 4 +- .../doc/zh/vision/self_learn_classifier.html | 4 +- maixpy/doc/zh/vision/self_learn_detector.html | 4 +- maixpy/doc/zh/vision/yolov5.html | 44 +- maixpy/sitemap.xml | 106 ++--- maixpy/static/search_index/index_0.json | 2 +- maixpy/static/search_index/index_1.json | 2 +- 47 files changed, 1451 insertions(+), 190 deletions(-) create mode 100644 maixpy/doc/zh/video/jpeg_streaming.html create mode 100644 maixpy/doc/zh/vision/maixhub.html diff --git a/maixpy/doc/zh/audio/recognize.html b/maixpy/doc/zh/audio/recognize.html index 7a3defa4..e5ad1501 100644 --- a/maixpy/doc/zh/audio/recognize.html +++ b/maixpy/doc/zh/audio/recognize.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/basic/app.html b/maixpy/doc/zh/basic/app.html index ea5553f5..094899ea 100644 --- a/maixpy/doc/zh/basic/app.html +++ b/maixpy/doc/zh/basic/app.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/basic/app_usage.html b/maixpy/doc/zh/basic/app_usage.html index 93bb713a..728f9d06 100644 --- a/maixpy/doc/zh/basic/app_usage.html +++ b/maixpy/doc/zh/basic/app_usage.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/basic/linux_basic.html b/maixpy/doc/zh/basic/linux_basic.html index 41b234ba..43381c3b 100644 --- a/maixpy/doc/zh/basic/linux_basic.html +++ b/maixpy/doc/zh/basic/linux_basic.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/basic/maixpy_upgrade.html b/maixpy/doc/zh/basic/maixpy_upgrade.html index d584cf6a..166f3fee 100644 --- a/maixpy/doc/zh/basic/maixpy_upgrade.html +++ b/maixpy/doc/zh/basic/maixpy_upgrade.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/basic/maixvision.html b/maixpy/doc/zh/basic/maixvision.html index e657466a..63ae54a4 100644 --- a/maixpy/doc/zh/basic/maixvision.html +++ b/maixpy/doc/zh/basic/maixvision.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/basic/os.html b/maixpy/doc/zh/basic/os.html index 21c14047..065b147d 100644 --- a/maixpy/doc/zh/basic/os.html +++ b/maixpy/doc/zh/basic/os.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/basic/python.html b/maixpy/doc/zh/basic/python.html index 3e4eef7d..8231f002 100644 --- a/maixpy/doc/zh/basic/python.html +++ b/maixpy/doc/zh/basic/python.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/basic/python_pkgs.html b/maixpy/doc/zh/basic/python_pkgs.html index e722e68f..9d96de5f 100644 --- a/maixpy/doc/zh/basic/python_pkgs.html +++ b/maixpy/doc/zh/basic/python_pkgs.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/faq.html b/maixpy/doc/zh/faq.html index c4e5c6eb..80b77f06 100644 --- a/maixpy/doc/zh/faq.html +++ b/maixpy/doc/zh/faq.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/index.html b/maixpy/doc/zh/index.html index 84bc6f03..a24cbc02 100644 --- a/maixpy/doc/zh/index.html +++ b/maixpy/doc/zh/index.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/modules/acc.html b/maixpy/doc/zh/modules/acc.html index e241abea..e42c13b0 100644 --- a/maixpy/doc/zh/modules/acc.html +++ b/maixpy/doc/zh/modules/acc.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/modules/thermal_cam.html b/maixpy/doc/zh/modules/thermal_cam.html index b5b20903..0e5d3281 100644 --- a/maixpy/doc/zh/modules/thermal_cam.html +++ b/maixpy/doc/zh/modules/thermal_cam.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/modules/tof.html b/maixpy/doc/zh/modules/tof.html index 4e79f085..634b1e19 100644 --- a/maixpy/doc/zh/modules/tof.html +++ b/maixpy/doc/zh/modules/tof.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/peripheral/gpio.html b/maixpy/doc/zh/peripheral/gpio.html index 3ac36f6b..c38b1faa 100644 --- a/maixpy/doc/zh/peripheral/gpio.html +++ b/maixpy/doc/zh/peripheral/gpio.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/peripheral/i2c.html b/maixpy/doc/zh/peripheral/i2c.html index 071ed99d..6dc7556e 100644 --- a/maixpy/doc/zh/peripheral/i2c.html +++ b/maixpy/doc/zh/peripheral/i2c.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/peripheral/pwm.html b/maixpy/doc/zh/peripheral/pwm.html index 1bf5ec8b..90c7f9d5 100644 --- a/maixpy/doc/zh/peripheral/pwm.html +++ b/maixpy/doc/zh/peripheral/pwm.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/peripheral/spi.html b/maixpy/doc/zh/peripheral/spi.html index 56e508d0..9cbcc34c 100644 --- a/maixpy/doc/zh/peripheral/spi.html +++ b/maixpy/doc/zh/peripheral/spi.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/peripheral/uart.html b/maixpy/doc/zh/peripheral/uart.html index 41f0aed6..8d47fd55 100644 --- a/maixpy/doc/zh/peripheral/uart.html +++ b/maixpy/doc/zh/peripheral/uart.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/peripheral/wdt.html b/maixpy/doc/zh/peripheral/wdt.html index e49f3520..06cc9c3c 100644 --- a/maixpy/doc/zh/peripheral/wdt.html +++ b/maixpy/doc/zh/peripheral/wdt.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/pro/compile_os.html b/maixpy/doc/zh/pro/compile_os.html index 3b5e8d30..42b3c58b 100644 --- a/maixpy/doc/zh/pro/compile_os.html +++ b/maixpy/doc/zh/pro/compile_os.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/sidebar.yaml b/maixpy/doc/zh/sidebar.yaml index 7a5ccdb7..dbb703bd 100644 --- a/maixpy/doc/zh/sidebar.yaml +++ b/maixpy/doc/zh/sidebar.yaml @@ -53,10 +53,11 @@ items: label: 自学习检测器 - file: vision/object_track.md label: 物体轨迹跟踪和计数 -- file: vision/maixhub_train.md - label: MaixHub 在线训练AI模型 - file: vision/ocr.md label: OCR 文字识别 +- file: vision/maixhub_train.md + label: MaixHub 在线 AI 模型训练 + - label: AI 听觉 - file: audio/record.md diff --git a/maixpy/doc/zh/source_code/add_c_module.html b/maixpy/doc/zh/source_code/add_c_module.html index 888e0a78..2b951ede 100644 --- a/maixpy/doc/zh/source_code/add_c_module.html +++ b/maixpy/doc/zh/source_code/add_c_module.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/source_code/build.html b/maixpy/doc/zh/source_code/build.html index 0225344b..8d3ab47b 100644 --- a/maixpy/doc/zh/source_code/build.html +++ b/maixpy/doc/zh/source_code/build.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/source_code/contribute.html b/maixpy/doc/zh/source_code/contribute.html index 4e58f51c..9add24be 100644 --- a/maixpy/doc/zh/source_code/contribute.html +++ b/maixpy/doc/zh/source_code/contribute.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/source_code/faq.html b/maixpy/doc/zh/source_code/faq.html index a0cbe9bc..bdc404ee 100644 --- a/maixpy/doc/zh/source_code/faq.html +++ b/maixpy/doc/zh/source_code/faq.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/source_code/maixcdk.html b/maixpy/doc/zh/source_code/maixcdk.html index 66197624..9a5abe29 100644 --- a/maixpy/doc/zh/source_code/maixcdk.html +++ b/maixpy/doc/zh/source_code/maixcdk.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/video/jpeg_streaming.html b/maixpy/doc/zh/video/jpeg_streaming.html new file mode 100644 index 00000000..5a6d355d --- /dev/null +++ b/maixpy/doc/zh/video/jpeg_streaming.html @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MaixPy 视频流 JPEG 推流 / 发送图片到服务器 - MaixPy + + + + + + + + + + +
+ +
+ +
+
+
+
+ +

MaixPy 视频流 JPEG 推流 / 发送图片到服务器

+ +
+
+
    + +
+
+
+
+ + + + +
+
+ + + +
+
+
+
+ + +
+
+ + +
+ + 更新历史 +
+ + + + + + + + + + + + + + + + + + + +
日期版本作者更新内容
2024-04-031.0.0neucrack + + 初版文档 + +
+
+
+ +
+
+ +

简介

+

有时需要将图像发送到服务器,或者将摄像头的视频推送到服务器,这里提供一个最简单的方法,即压缩成 JPEG 图片,然后一张一张地发送到服务器。

+

注意,这是一种最简单的方法,不算很正规的视频推流方法,也不适合高分辨率高帧率的视频流,因为这只是一张一张发送图片,如果要高效推送视频流,请使用后文的 RTSP 或者 RTMP 模块。

+

使用方法

+ +
from maix import image
+import requests
+
+# create image
+img = image.Image(640, 480, image.Format.FMT_RGB)
+# draw something
+img.draw_rect(60, 60, 80, 80, image.Color.from_rgb(255, 0, 0))
+
+# convert to jpeg
+jpeg = img.to_format(image.Format.FMT_JPEG) # image.Format.FMT_PNG
+# get jpeg bytes
+jpeg_bytes = jpeg.to_bytes()
+
+# faster way, borrow memory from jpeg object,
+# but be carefully, when jpeg object is deleted, jpeg_bytes object MUST NOT be used, or program will crash
+# jpeg_bytes = jpeg.to_bytes(copy = False)
+
+# send image binary bytes to server
+url = "http://192.168.0.123:8080/upload"
+res = requests.post(url, data=jpeg_bytes)
+print(res.status_code)
+print(res.text)
+
+

可以看到,先将图片转换成了 JPEG 格式,然后将 JPEG 图片的二进制数据通过TCP发送到服务器。

+ + +
+
+ +
+
+
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/maixpy/doc/zh/vision/ai.html b/maixpy/doc/zh/vision/ai.html index 52d6371b..2d9d3fe2 100644 --- a/maixpy/doc/zh/vision/ai.html +++ b/maixpy/doc/zh/vision/ai.html @@ -44,10 +44,10 @@ - MaixPy + AI 视觉基本知识 - MaixPy - + @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + @@ -174,7 +174,7 @@

MaixPy

-

+

AI 视觉基本知识

@@ -188,8 +188,8 @@

-
@@ -210,10 +210,50 @@

+ +
+ + 更新历史 +
+ + + + + + + + + + + + + + + + + + + +
日期版本作者更新内容
2024-04-031.0.0neucrack + + 初版文档 + +
+
+
+
- +

简介

+

如果没有 AI 基础,在学习 AI 前可以先看什么是人工智能(AI)和机器学习 了解一下 AI 的基本概念。

+

然后我们使用的视觉 AI 一般都是基于深度神经网络学习这个方法,有兴趣可以看看深度神经网络(DNN)基础知识

+

MaixPy 中使用视觉 AI

+

在 MaixPy 中使用视觉 AI 很简单,默认提供了常用的 AI 模型,不需要自己训练模型就可以直接使用,在MaixHub 模型库 中选择maixcam 就可以找到。

+

并且在底层已经封装好的 API,只需要简单的调用就可以实现。

+

如果你想训练自己的模型,也可以先从MaixHub 在线训练 开始,在线平台只需要点点点就能训练出模型,不需要购买昂贵的机器,不需要搭建复杂的开发环境,也不需要写代码,非常适合入门,也适合懒得翻代码的老手。

+

一般训练得到了模型文件,直接传输到设备上,调用 MaixPy 的 API 就可以使用了,具体的调用方法看后文。

+
diff --git a/maixpy/doc/zh/vision/apriltag.html b/maixpy/doc/zh/vision/apriltag.html index ca37d3a0..3411d300 100644 --- a/maixpy/doc/zh/vision/apriltag.html +++ b/maixpy/doc/zh/vision/apriltag.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/vision/body_key_points.html b/maixpy/doc/zh/vision/body_key_points.html index 26aa09ba..7bdfa7d5 100644 --- a/maixpy/doc/zh/vision/body_key_points.html +++ b/maixpy/doc/zh/vision/body_key_points.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + diff --git a/maixpy/doc/zh/vision/camera.html b/maixpy/doc/zh/vision/camera.html index 02719e11..9d952212 100644 --- a/maixpy/doc/zh/vision/camera.html +++ b/maixpy/doc/zh/vision/camera.html @@ -44,10 +44,10 @@ - MaixPy + MaixPy 摄像头使用 - MaixPy - + @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + @@ -174,7 +174,7 @@

MaixPy

-

+

MaixPy 摄像头使用

@@ -188,8 +188,8 @@

-
@@ -210,10 +210,79 @@

+ +
+ + 更新历史 +
+ + + + + + + + + + + + + + + + + + + +
日期版本作者更新内容
2024-04-031.0.0neucrack + + 初版文档 + +
+
+
+
- +

简介

+

对于 MaixCAM 默认搭载了 GC4653 摄像头,或者可选的 OS04A10 摄像头或者全局快门摄像头,甚至是 HDMI 转 MIPI 模块,都可以直接用简单的 API 调用。

+

API 文档

+

本文介绍常用方法,更多 API 使用参考 maix.camera 模块的文档。

+

摄像头切换

+

不同的摄像头使用不同的驱动,需要在系统中选择正确的驱动。

+

TODO:如何切换摄像头,比如 GC4653 和 OS04A10 之间的切换。

+

从摄像头获取图像

+

使用 MaixPy 轻松获取:

+ +
from maix import camera
+
+cam = camera.Camera(640, 480)
+
+while 1:
+    img = cam.read()
+    print(img)
+
+

这里我们从maix模块导入camera模块,然后创建一个Camera对象,指定图像的宽度和高度。然后在一个循环中不断读取图像, 默认出的图为RGB格式,如果需要BGR格式,其它格式请看 API 文档。

+

跳过 开头的帧

+

摄像头初始化的一小段时间,可能图像采集还没稳定出现奇怪的画面,可以通过skip_frames函数跳过开头的几帧:

+ +
cam = camera.Camera(640, 480)
+cam.skip_frames(30)           # 跳过开头的30帧
+
+

显示图像

+

MaixPy 提供了display模块,可以方便的显示图像:

+ +
from maix import camera, display
+
+cam = camera.Camera(640, 480)
+disp = display.Display()
+
+while 1:
+    img = cam.read()
+    disp.show(img)
+
+
diff --git a/maixpy/doc/zh/vision/classify.html b/maixpy/doc/zh/vision/classify.html index c53d5070..36400531 100644 --- a/maixpy/doc/zh/vision/classify.html +++ b/maixpy/doc/zh/vision/classify.html @@ -44,10 +44,10 @@ - MaixPy + MaixPy 使用 AI 模型进行物体分类 - MaixPy - + @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + @@ -174,7 +174,7 @@

MaixPy

-

+

MaixPy 使用 AI 模型进行物体分类

@@ -188,10 +188,6 @@

- -
@@ -213,7 +209,34 @@

- +

物体分类概念

+

比如眼前有两张图片,一张图里面是苹果,另一张是飞机,物体分类的任务就是把两张图分别依次输入给 AI 模型,模型会依次输出两个结果,一个是苹果,一个是飞机。

+

MaixPy 中使用物体分类

+

MaixPy 默认提供了 imagenet 数据集训练得到的 1000分类模型,可以直接使用:

+ +
from maix import camera, display, image, nn
+
+classifier = nn.Classifier(model="/root/models/mobilenetv2.mud")
+cam = camera.Camera(classifier.input_width(), classifier.input_height(), classifier.input_format())
+dis = display.Display()
+
+while 1:
+    img = cam.read()
+    res = classifier.classify(img)
+    max_idx, max_prob = res[0]
+    msg = f"{max_prob:5.2f}: {classifier.labels[max_idx]}"
+    img.draw_string(10, 10, msg, image.COLOR_RED)
+    dis.show(img)
+
+

效果视频:

+ +

这里使用了摄像头拍摄图像,然后传给 classifier进行识别,得出结果后,将结果显示在屏幕上。

+

更多 API 使用参考 maix.nn 模块的文档。

+

训练自己的分类模型

+

请到MaixHub 学习并训练分类模型,创建项目时选择分类模型即可。

+
diff --git a/maixpy/doc/zh/vision/display.html b/maixpy/doc/zh/vision/display.html index 51513c77..bfdf2635 100644 --- a/maixpy/doc/zh/vision/display.html +++ b/maixpy/doc/zh/vision/display.html @@ -127,8 +127,8 @@

MaixPy

- + @@ -139,7 +139,7 @@

MaixPy

- + @@ -247,6 +247,8 @@

MaixPy 屏幕使用

简介

MaixPy 提供了display模块,可以将图像显示到屏幕上,同时,也可以将图像发送到 MaixVision 显示,方便调试和开发。

+

API 文档

+

本文介绍常用方法,更多 API 请看 API 文档的 display 部分。

使用屏幕