1. เริ่มต้นอย่างรวดเร็ว

OpenMV Cam

ยินดีต้อนรับ -- เรายินดีที่จะแนะนำ OpenMV Cam ให้คุณรู้จัก ซึ่งเป็นกล้องขนาดเล็กที่สามารถโปรแกรมได้และรัน Python บนตัวอุปกรณ์เอง เขียนโค้ดไม่กี่บรรทัด กด run และกล้องจะเริ่มมองเห็น: ตรวจจับใบหน้า ติดตามสี อ่านแท็ก ติดตามเส้น -- ไม่ต้องใช้ PC ในขณะรันและไม่ต้องตั้งค่าที่ยุ่งยาก

คู่มือเริ่มต้นอย่างรวดเร็วนี้จะทำให้คุณพร้อมใช้งานภายในไม่กี่นาที: คุณจะติดตั้ง IDE เชื่อมต่อกล้อง และรัน face detector แบบสดเป็นสคริปต์แรกของคุณ

1.1. ติดตั้ง OpenMV IDE

OpenMV IDE คือแอปพลิเคชัน desktop สำหรับเขียนสคริปต์ รันบนกล้อง และดูผลลัพธ์แบบสด ดาวน์โหลดสำหรับ Windows, macOS หรือ Linux ที่นี่ จากนั้นติดตั้ง:

  • Windows -- รันตัวติดตั้ง ซึ่งจะติดตั้ง IDE พร้อมกับ USB driver ของกล้อง ทำตามคำแนะนำเริ่มต้น

  • macOS -- เปิด .dmg และลาก OpenMV IDE ไปยังโฟลเดอร์ Applications

  • Linux -- รัน chmod +x openmv-ide-*.run && ./openmv-ide-*.run จากนั้นทำตามคำแนะนำของตัวติดตั้ง

Note

สำหรับการตั้งค่าแบบอัตโนมัติหรือ headless ตัวติดตั้งยังรันจาก command line ด้วย silent-install flags ได้ดู openmv-ide README สำหรับคำสั่งเฉพาะแต่ละแพลตฟอร์ม

1.2. เชื่อมต่อกล้องของคุณ

เสียบกล้องเข้ากับคอมพิวเตอร์ด้วยสาย USB data รอให้ drive ของกล้อง mount และ LED สีน้ำเงินเริ่มกะพริบ จากนั้นคลิกปุ่มเชื่อมต่อ -- ไอคอนปลั๊กที่ด้านล่างของแถบเครื่องมือ

ครั้งแรกที่คุณเชื่อมต่อ IDE จะเปรียบเทียบเฟิร์มแวร์ของกล้องกับเวอร์ชันที่มาพร้อมกันและเสนอให้อัปเดต ยอมรับคำแจ้งเพื่อแฟลชเฟิร์มแวร์ล่าสุด ใช้เวลาไม่กี่วินาที และ IDE จะเชื่อมต่อใหม่เองเมื่อเสร็จสิ้น

หากกล้องไม่แสดงขึ้น หรือคุณต้องการรายละเอียดเกี่ยวกับการเชื่อมต่อและการอัปเดต ดู การเชื่อมต่อกล้อง และ การอัปเดตและการกู้คืนเฟิร์มแวร์

Note

ติดขัดกับบางอย่าง? โพสต์บน OpenMV forums -- ชุมชนและทีม OpenMV ยินดีช่วยเหลือ

1.3. รันสคริปต์แรกของคุณ

OpenMV Cam ของคุณมาพร้อมกับ face detector BlazeFace ของ Google บนแฟลช วางสคริปต์นี้ในตัวแก้ไข:

import csi
import time
import ml
from ml.postprocessing.mediapipe import BlazeFace

# Set up the camera sensor.
csi0 = csi.CSI()
csi0.reset()                # Initialize the sensor to a known state.
csi0.pixformat(csi.RGB565)  # Capture 16-bit colour.
csi0.framesize(csi.QVGA)    # Set a small, fast frame size.

# BlazeFace was trained on square images, so crop to a centred
# square the size of the sensor's height.
side = csi0.height()
csi0.window((side, side))

# Load the built-in face detector. The post-processor turns the
# network's raw output into a list of detections; threshold sets how
# confident a detection must be to count.
model = ml.Model("/rom/blazeface_front_128.tflite",
                 postprocess=BlazeFace(threshold=0.4))

clock = time.clock()        # For measuring the frame rate.
while True:
    clock.tick()
    img = csi0.snapshot()   # Capture one frame.

    # predict() runs the network and returns one
    # ((x, y, w, h), score, keypoints) tuple per detected face.
    for rect, score, keypoints in model.predict([img]):
        # Draw the box around the face...
        ml.utils.draw_predictions(img, [rect], ("face",),
                                  ((0, 0, 255),), format=None)
        # ...and mark the six landmarks: eyes, nose, mouth, ears.
        ml.utils.draw_keypoints(img, keypoints, color=(255, 0, 0))

    print(clock.fps(), "fps")

กดปุ่ม Run สีเขียวและชี้กล้องไปที่ใบหน้า ตัวดูบัฟเฟอร์เฟรมจะวาดกรอบล้อมรอบแต่ละใบหน้าและทำเครื่องหมายดวงตา จมูก ปาก และหู ขณะที่เทอร์มินัล serial แสดง frame rate

สคริปต์นี้ -- และสคริปต์สำหรับเกือบทุกลักษณะเด่นของกล้อง -- ยังถูกสร้างไว้ใน IDE ภายใต้ File → Examples โดยกรองตามบอร์ดที่เชื่อมต่อ เปิดอันใดอันหนึ่ง กด run และเริ่มสำรวจสิ่งที่กล้องทำได้

1.4. ขั้นตอนต่อไป

จุดเริ่มต้นของคุณขึ้นอยู่กับสิ่งที่คุณรู้อยู่แล้ว บทแนะนำมีจุดเริ่มต้นสามจุด -- ใหม่กับ Python ใหม่กับฮาร์ดแวร์ หรือพร้อมสำหรับ machine vision -- เลือกจุดที่เหมาะกับคุณ เอกสารอ้างอิงและคู่มือ IDE พร้อมให้ใช้งานเสมอเมื่อต้องการ