@@ -387,7 +427,7 @@ Below are some of the features, for more please see the [documentation](/doc/en/
@@ -396,7 +436,7 @@ Below are some of the features, for more please see the [documentation](/doc/en/
@@ -404,8 +444,8 @@ Below are some of the features, for more please see the [documentation](/doc/en/
-
Speech Recognition
-
Real-time continuous speech recognition
+
Voice Recognition
+
Real-time continuous voice recognition
@@ -414,7 +454,7 @@ Below are some of the features, for more please see the [documentation](/doc/en/
Desktop Monitor
-
Monitor PC information, such as CPU, memory, network, etc.
+
Monitor PC information such as CPU, memory, and network.
@@ -423,68 +463,121 @@ Below are some of the features, for more please see the [documentation](/doc/en/
Weather Station
-
Monitor weather information, such as temperature, humidity, etc.
+
Monitor weather information such as temperature and humidity.
+
-
Thermal Camera
-
Optional camera, temperature image capture/measure
+
Thermal Infrared Camera
+
Optional camera, for temperature image acquisition/measurement
-
+
-
HDMI Capture Video
-
Optional, Capture HDMI image, as server monitor(KVM), external AI, streaming device etc.
+
HDMI Video Capture
+
Optional feature, capture images via HDMI for server monitoring (KVM), remote control, external AI, streaming devices, etc.
-
+
-
Big Screen Video Play
-
Many screen size choices(2.3" 2.4" 5" 7" etc.), hardware decode support
+
Large Screen Video Playback
+
Multiple screen sizes (2.3", 2.4", 5", 7", etc.), hardware decoding support
+
+
+
+
+
+
+
+
Microscope
+
Pair with 1/8" large sensor + microscope lens = digital microscope
+
+
+
+
+
+
+
+
High-Speed Recognition
+
Pair with a global shutter camera to accurately recognize high-speed moving objects
+
+
+
+
+
+
+
+
Time-lapse Photography
+
Pair with a 1/8" large sensor for all-day time-lapse photography
+
+
+
+
+
+
+
+
Astronomical Photography
+
Pair with a 1/8" large sensor + high-power lens for astronomical photography, supports long exposure mode and RAW image output
+
+
+
+
+
+
+
+
Gyroscope Stabilization
+
Onboard gyroscope (MaixCAM-Pro only), supports exporting gyroflow stabilization format for DIY photography
-
+## Who Uses MaixPy?
+
+
+
+* **AI Algorithm Engineers**: Easily deploy your AI models to embedded devices.
+> Easy-to-use API to access NPU, open-source quantization tools, detailed documentation on AI models.
+
+* **STEM**: Teachers who want to teach students AI and embedded development.
+> Easy-to-use API, PC tools, online AI training services, allowing you to focus on teaching AI instead of hardware and complex software development.
-## Who are using MaixPy?
+* **Makers**: Want to create cool projects without spending too much time on complex hardware and software.
+> Rich, simple Python and C++ APIs, quick to get started, complete your DIY projects in just minutes.
-* **AI Algorithm Engineer** who want to deploy your AI model to embedded devices.
-> MaixPy provide easy-to-use API to access NPU, and docs to help you develop your AI model.
-* **STEM** teacher who want to teach AI and embedded devices to students.
-> MaixPy provide easy-to-use API, PC tools, online AI train service ... Let you focus on teaching AI, not the hardware and complicated software usage.
-* **Maker** who want to make some cool projects but don't want to learn complicated hardware and software.
-> MaixPy provide Python API, so all you need is learn basic Python syntax, and MaixPy's API is so easy to use, you can make your project even in a few minutes.
-* **Engineer** who want to make some projects but want a prototype as soon as possible.
-> MaixPy is easy to build projects, and provide corresponding C++ SDK, so you can directly use MaixPy to deploy or transfer Python code to C++ in a few minutes.
-* **Students** who want to learn AI, embedded development.
-> We provide many docs and tutorials, and lot of open source code, to help you find learning route, and grow up step by step. From simple Python programming to `Vision`, `AI`, `Audio`, `Linux`, `RTOS` etc.
-* **Enterprise** who want to develop AI vision products but have no time or engineers to develop complicated embedded system.
-> Use MaixPy even graphic programming to develop your products with no more employees and time. For example, add a AI QA system to your production line, or add a AI security monitor to your office as your demand.
-* **Contestants** who want to win the competition.
-> MaixPy integrate many functions and easy to use, fasten your work to win the competition in limited time. There are already many contestants win the competition with MaixPy.
+* **Engineers**: Want to build projects but hope to have prototypes and solutions quickly.
+> Rich Python and C++ APIs, efficient, stable, and easy to use, helping you quickly create prototypes and implement projects directly.
+* **Students**: Want to learn AI and embedded development.
+> Offers rich documentation, tutorials, and open-source code, helping you find learning paths and gradually grow, from simple Python programming to vision, AI, audio, Linux, RTOS, etc.
-## Performance comparison
+* **Companies**: Want to develop AI vision products but don’t have the time or engineers to develop complex embedded systems.
+> Use MaixPy or even graphical programming to reduce the number of employees and time. For example, adding an AI QA system to the production line, or an AI security monitor to the office.
-K210 and v831 are outdated, they have many limitations in memory, performance, NPU operators missing etc.
-No matter you are using them or new comer, it's recommended to upgrade to MaixCAM and MaixPy v4.
+* **Competitors**: People who want to win competitions.
+> MaixPy integrates many features, is easy to use, speeds up the output of your work, and helps you win competitions in a short time. Many students use MaixPy to win common competitions in China.
+
+
-Here's the comparison between them:
+## Performance Comparison
+
+Compared to the limited NPU operator support and memory constraints of the previous two generations of Maix series products (K210, V831), MaixCAM offers significant improvements in performance and experience while maintaining an excellent price-performance ratio.
+
+
+
+
| Feature | Maix-I K210 | Maix-II v831 | MaixCAM |
| ------- | ----------- | ------------ | ------- |
@@ -492,46 +585,78 @@ Here's the comparison between them:
| Memory | 6MB SRAM | 64MB DDR2 | **256MB DDR3** |
| NPU | 0.25Tops@INT8
official says 1T but... | 0.25Tops@INT8 | **1Tops@INT8** |
| Encoder | ✖ | 1080p@30fps | **2K@30fps** |
-| Screen | 2.4" 320x240 | 1.3" 240x240 | **2.28" 552x368** / 5" 1280x720 / 7" 1280x800 / 10“ 1280x800|
-| TouchScreen | ✖ | ✖ | **2.3" 552x368** |
+| Screen | 2.4" 320x240 | 1.3" 240x240 | **2.3" 552x368**(MaixCAM)
**2.4" 640x480**(MaixCAM-Pro)
5" 1280x720
7" 1280x800
10“ 1280x800|
+| Touchscreen | ✖ | ✖ | **2.3" 552x368** |
| Camera | 30W | 200W | **500W** |
| WiFi | 2.4G | 2.4G | **WiFi6** 2.4G/5G |
| USB | ✖ | **USB2.0** | **USB2.0** |
-| Eth | ✖ | 100M(Optional) | 100M(Optional) |
-| SD Interface | SPI | **SDIO** | **SDIO** |
+| Ethernet | ✖ | 100M(optional) | 100M(optional) |
+| SD Card Interface | SPI | **SDIO** | **SDIO** |
| BLE | ✖ | ✖ | **BLE5.4** |
-| OS | RTOS | Tina Linux | **Linux + RTOS** |
-| Language | C / C++ / MicroPython | C / C++ / **Python3** | C / **C++ / Python3** |
-| Software | MaixPy | MaixPy3 | **MaixCDK + MaixPy v4 + opencv + numpy + ...**|
-| PC software | MaixPy IDE | MaixPy3 IDE | **MaixVision** Workstation |
-| Docs | ⭐️⭐️⭐️⭐️ | ⭐️⭐️⭐️ | 🌟🌟🌟🌟🌟 |
-| Online AI train | ⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️ | 🌟🌟🌟🌟🌟 |
-| Official APPs | ⭐️⭐️ | ⭐️⭐️⭐️ | 🌟🌟🌟🌟🌟 |
-| AI classify(224x224) | MobileNetv1 50fps
MobileNetv2 ✖
Resnet ✖ | MobileNet ✖
Resnet18 20fps
Resnet50 ✖| MobileNetv2 **130fps**
Resnet18 **62fps**
Resnet50 **28fps** |
-| AI detect(NPU forward part) | YOLOv2(224x224) 15fps | YOLOv2(224x224) 15fps | **YOLOv5s(224x224) 100fps
YOLOv5s(320x256) 70fps
YOLOv5s(640x640) 15fps
YOLOv8n(640x640) 23fps
YOLO11n(224x224)175fps
YOLO11n(320x224)120fps
YOLO11n(320x320)95fps
YOLO11n(640x640)23fps**|
-| Ease of use | ⭐️⭐️⭐️⭐️ | ⭐️⭐️⭐️ | 🌟🌟🌟🌟🌟 |
+| Operating System | RTOS | Tina Linux | **Linux + RTOS** |
+| Programming Language | C / C++ / MicroPython | C / C++ / **Python3** | C / **C++ / Python3** |
+| Software | MaixPy | MaixPy3 | **MaixCDK + MaixPy v4 + OpenCV + Numpy + ...**|
+| PC Software | MaixPy IDE | MaixPy3 IDE | **MaixVision** Workstation |
+| Documentation | ⭐️⭐️⭐️⭐️ | ⭐️⭐️⭐️ | 🌟🌟🌟🌟🌟 |
+| Online AI Training | ⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️ | 🌟🌟🌟🌟🌟 |
+| Official Apps | ⭐️ | ⭐️⭐️⭐️ | 🌟🌟🌟🌟🌟 |
+| AI Classification (224x224) | MobileNetv1 50fps
MobileNetv2 ✖
Resnet ✖ | MobileNet ✖
Resnet18 20fps
Resnet50 ✖| MobileNetv2 **130fps**
Resnet18 **62fps**
Resnet50 **28fps** |
+| AI Detection (NPU inference part) | YOLOv2(224x224) 15fps | YOLOv2(224x224) 15fps | **YOLOv5s(224x224) 100fps
YOLOv5s(320x256) 70fps
YOLOv5s(640x640) 15fps
YOLOv8n(640x640) 23fps
YOLO11n(224x224)175fps
YOLO11n(320x224)120fps
YOLO11n(320x320)95fps
YOLO11n(640x640)23fps**|
+| Ease of Use | ⭐️⭐️⭐️⭐️ | ⭐️⭐️⭐️ | 🌟🌟🌟🌟🌟 |
+
+
+
+
+
+**MaixCAM-Pro** Upgrades compared to MaixCAM:
+1. Optimized case design for better aesthetics and heat dissipation
+2. Screen upgraded to 2.4 inches with 640x480 resolution
+3. Dual-channel PWM servo interface, standard PMOD interface, 6-pin terminal interface
+4. Onboard AXP2101 PMU, supports lithium battery charging and discharging, power metering function
+5. Onboard six-axis IMU, qmi8658, supports video stabilization
+6. Built-in 1W small speaker
+7. Added 1/4 inch standard thread mount for easy installation
+8. Added auxiliary lighting LED
+9. Added RTC chip BM8653 and RTC battery
+
+
+
+
+
+## Maix Ecosystem
+
+
-## Maix ecosystem
-![](/static/image/maix_ecosystem.png)
+## Community {#community}
+
-## What difference between MaixPy v1, MaixPy3 and MaixPy v4?
+| Community | Address |
+| --- | ---- |
+| **Documentation**| [MaixPy Documentation](/doc/en/index.html) |
+| **App Store**| [maixhub.com/app](https://maixhub.com/app) |
+| **Project Sharing**| [maixhub.com/share](https://maixhub.com/share) |
+| **Bilibili**| Search for `MaixCAM` or `MaixPy` on Bilibili |
+| **Discussion**| [maixhub.com/discussion](https://maixhub.com/discussion) |
+| **MaixPy issues**| [github.com/sipeed/MaixPy/issues](https://github.com/sipeed/MaixPy/issues) |
+| **Telegram**| [t.me/maixpy](https://t.me/maixpy) |
+| **QQ Group**| 862340358 |
-* MaixPy v1 use MicroPython programming language, only support Sipeed Maix-I K210 series hardware, have limited third-party packages.
-* MaixPy3 is designed for Sipeed Maix-II-Dock v831, not a long-term support version.
-* MaixPy v4 use Python programming language, so there's much package we can use directly. MaixPy v4 support new hardware platforms of Sipeed, it's a long-term support version, the future's hardware platforms will support this version. MaixPy v4 have a MaixPy-v1 compatible API, so you can quickly migrate your MaixPy v1 project to MaixPy v4.
+
-(MaixPy v4 Will not support Maix-I K210 series, if you are using Maix-I K210 series, it's recommended to upgrade hardware platform to use this to get more features and better performance.)
-## License
+## What Are the Differences Between MaixPy v1, MaixPy3, and MaixPy v4?
-All files in this repository are under the terms of the [Apache License 2.0 Sipeed Ltd.](./LICENSE) except the third-party libraries or have their own license.
+
+* MaixPy v1 uses the MicroPython programming language and only supports the Sipeed Maix-I K210 series hardware with limited third-party packages.
+* MaixPy3 is specifically designed for Sipeed Maix-II-Dock v831 and is not a long-term support version.
+* MaixPy v4 uses the Python programming language, allowing direct use of many packages.
MaixPy v4 supports Sipeed's new hardware platform and is a long-term support version. Future hardware platforms will support this version.
MaixPy v4 has a MaixPy-v1 compatible API, so you can quickly migrate your MaixPy v1 projects to MaixPy v4.
-## Community
+(MaixPy v4 does not support the K210 series. It is recommended to upgrade your hardware platform to use this version for more features, better performance,
and a more convenient programming experience.)
-* Project sharing: [maixhub.com/share](https://maixhub.com/share)
-* Discussion: [maixhub.com/discussion](https://maixhub.com/discussion)
-* QQ group: 862340358
-* Telegram: [t.me/maixpy](https://t.me/maixpy)
+
+
+
+
diff --git a/docs/static/image/capture_sky.jpg b/docs/static/image/capture_sky.jpg
new file mode 100644
index 00000000..c96abeda
Binary files /dev/null and b/docs/static/image/capture_sky.jpg differ
diff --git a/docs/static/image/global_shutter.jpg b/docs/static/image/global_shutter.jpg
new file mode 100644
index 00000000..9f0ee32b
Binary files /dev/null and b/docs/static/image/global_shutter.jpg differ
diff --git a/docs/static/image/hdmi_capture.jpg b/docs/static/image/hdmi_capture.jpg
index 969c77c9..10cede04 100644
Binary files a/docs/static/image/hdmi_capture.jpg and b/docs/static/image/hdmi_capture.jpg differ
diff --git a/docs/static/image/maixcam_pro.png b/docs/static/image/maixcam_pro.png
new file mode 100644
index 00000000..28dffd72
Binary files /dev/null and b/docs/static/image/maixcam_pro.png differ
diff --git a/docs/static/image/maixcam_pro_io.png b/docs/static/image/maixcam_pro_io.png
new file mode 100644
index 00000000..66aef0db
Binary files /dev/null and b/docs/static/image/maixcam_pro_io.png differ
diff --git a/docs/static/image/opencv_openmv.jpg b/docs/static/image/opencv_openmv.jpg
new file mode 100644
index 00000000..01674361
Binary files /dev/null and b/docs/static/image/opencv_openmv.jpg differ
diff --git a/docs/static/image/serial_module.png b/docs/static/image/serial_module.png
index d2b6e042..588e3375 100644
Binary files a/docs/static/image/serial_module.png and b/docs/static/image/serial_module.png differ
diff --git a/docs/static/image/thermal.jpg b/docs/static/image/thermal.jpg
index 50cbfc19..7e27b56e 100644
Binary files a/docs/static/image/thermal.jpg and b/docs/static/image/thermal.jpg differ
diff --git a/docs/static/video/gyroflow.mp4 b/docs/static/video/gyroflow.mp4
new file mode 100644
index 00000000..10b2f54a
Binary files /dev/null and b/docs/static/video/gyroflow.mp4 differ
diff --git a/docs/static/video/microscope.mp4 b/docs/static/video/microscope.mp4
new file mode 100644
index 00000000..25449fe5
Binary files /dev/null and b/docs/static/video/microscope.mp4 differ
diff --git a/docs/static/video/time_lapse.mp4 b/docs/static/video/time_lapse.mp4
new file mode 100644
index 00000000..c748a60d
Binary files /dev/null and b/docs/static/video/time_lapse.mp4 differ
diff --git a/examples/vision/opencv/opencv_camera.py b/examples/vision/opencv/opencv_camera.py
index 3002b13e..4ce2ab10 100644
--- a/examples/vision/opencv/opencv_camera.py
+++ b/examples/vision/opencv/opencv_camera.py
@@ -2,21 +2,21 @@
import cv2
disp = display.Display()
-cam = camera.Camera(320, 240)
+cam = camera.Camera(320, 240, image.Format.FMT_BGR888)
while not app.need_exit():
img = cam.read()
# convert maix.image.Image object to numpy.ndarray object
t = time.ticks_ms()
- img = image.image2cv(img)
+ img = image.image2cv(img, ensure_bgr=False, copy=False)
print("time: ", time.ticks_ms() - t)
# canny method
edged = cv2.Canny(img, 180, 60)
# show by maix.display
- img_show = image.cv2image(edged)
+ img_show = image.cv2image(edged, bgr=True, copy=False)
disp.show(img_show)
diff --git a/examples/vision/opencv/opencv_camera_usb.py b/examples/vision/opencv/opencv_camera_usb.py
new file mode 100644
index 00000000..4e225b55
--- /dev/null
+++ b/examples/vision/opencv/opencv_camera_usb.py
@@ -0,0 +1,25 @@
+
+# Set USB mode to HOST first !!! Refer to http://wiki.sipeed.com/maixpy/doc/zh/vision/opencv.html
+
+from maix import image, display, app
+import cv2
+import sys
+
+cap = cv2.VideoCapture(0)
+cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
+cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
+# cap.set(cv2.CAP_PROP_CONVERT_RGB, 0)
+
+disp = display.Display()
+
+if not cap.isOpened():
+ print("无法打开摄像头")
+ sys.exit(1)
+print("开始读取")
+while not app.need_exit():
+ ret, frame = cap.read()
+ if not ret:
+ print("无法读取帧")
+ break
+ img = image.cv2image(frame, bgr=True, copy=False)
+ disp.show(img)
diff --git a/examples/vision/opencv/opencv_show.py b/examples/vision/opencv/opencv_show.py
index afbd928e..b22bfbfa 100644
--- a/examples/vision/opencv/opencv_show.py
+++ b/examples/vision/opencv/opencv_show.py
@@ -16,7 +16,7 @@
# show by maix.display
t = time.ticks_ms()
- img_show = image.cv2image(edged)
+ img_show = image.cv2image(edged, bgr=True, copy=False)
print(f"edge time: {t2}ms, convert time: {time.ticks_ms() - t}ms")
disp.show(img_show)