การ์ดชื่อเรื่องที่สร้างขึ้นสำหรับ esp32-eye พร้อมคำบรรยายใต้ภาพว่า 'บอร์ด ESP32-S3 สองบอร์ด, MacBook หนึ่งเครื่อง, ขนาด MiniCPM-V 4.7 สองขนาด' และชิปที่ระบุว่า 'เกต 1B ทุก 1.5 วินาที', 'การตรวจสอบอัตลักษณ์ 35B' และ 'เหตุการณ์ที่ยืนยันแล้ว 89 เหตุการณ์' บนภาพประกอบแบบแบนของแมวที่ชามน้ำ บอร์ดกล้องบนขอบชาม แล็ปท็อป และบอร์ด AMOLED ทรงกลม
Engineering & Research

esp32-eye: อุปกรณ์ตรวจวัดชามน้ำของแมวที่เรียกใช้ MiniCPM-V 4.7 สองครั้ง

ผู้เขียน

Gideon Frost

วันที่เผยแพร่

โมเดลล่าสุด · 20ดูโมเดลทั้งหมด →
เบนช์มาร์ก: Artificial Analysis · อัปเดตทุกวัน
กลับไปยังโพสต์ทั้งหมด

บอร์ด ESP32-S3 สองบอร์ด, MacBook หนึ่งเครื่อง และ MiniCPM-V 4.7 สองขนาดที่ต่างกัน ตอนนี้บันทึกว่าแมวตัวไหนดื่มน้ำจากชามน้ำและดื่มเมื่อไร บอร์ดกล้องคอยเฝ้าดูชามน้ำ MacBook รันโมเดลเล็กในเครื่องเพื่อตอบคำถามแคบ ๆ ข้อเดียว และโมเดลใหญ่จะถูกเรียกใช้หลังจากเหตุการณ์เกิดขึ้นแล้วเท่านั้น โปรเจกต์นี้ชื่อ esp32-eye อยู่ที่ github.com/emwstudio/esp32-eye และเปิดเป็นสาธารณะเมื่อวันที่ 25 ตุลาคม 2026 OpenBMB ได้นำไปโชว์ในสัปดาห์แรกของเดือนพฤศจิกายน ซึ่งเป็นวิธีที่ผู้คนส่วนใหญ่ได้รู้จักมัน

ตัวโมเดลที่อยู่เบื้องหลังคือส่วนที่ควรพูดให้แม่นยำ OpenBMB อัปโหลด MiniCPM-V 4.7 ไปยัง Hugging Face เมื่อวันที่ 6 และ 7 ตุลาคม 2026 เผยแพร่การ์ดโมเดลและสัญญาอนุญาต Apache-2.0 เมื่อวันที่ 12 ตุลาคม และออกข่าวประชาสัมพันธ์ภาษาอังกฤษผ่าน PR Newswire เมื่อวันที่ 15 ตุลาคม ดังนั้นนี่จึงไม่ใช่เรื่องราวการเปิดตัว และเครื่องเฝ้าดูแมวก็ไม่ใช่เบนช์มาร์กจากผู้ขาย มันเป็นการนำโมเดลไปใช้งานจริงในที่สาธารณะที่มีรายละเอียดมากที่สุดเท่าที่มีผู้บันทึกไว้จากภายนอกห้องแล็บจนถึงตอนนี้ และบังเอิญว่าเป็นเครื่องใช้ในบ้าน

สิ่งที่ build นี้ทำจริง ๆ

ฮาร์ดแวร์นี้ตั้งใจให้ราคาถูกและดูเก้งก้างเล็กน้อย Waveshare ESP32-S3-CAM-OV5640 วางอยู่บนขอบชามและสตรีมเฟรม JPEG ขนาด 1024×768 พร้อมเสียงจากไมโครโฟนผ่าน Wi-Fi บอร์ดตัวที่สองคือ Waveshare ESP32-S3-Touch-AMOLED-2.16 ซึ่งเป็นจอตั้งโต๊ะ: แผงขนาด 480×480 ที่แสดงแถบวิดีโอสด การ์ดแมวสี่ใบ จำนวนการดื่มประจำวันเทียบกับเป้าหมาย 8 แก้ว และแอนิเมชันไฮไลต์เล็กๆ เมื่อยืนยันแมวได้ MacBook เป็นมันสมอง เซิร์ฟเวอร์ FastAPI รับสตรีม รันลอจิกการตรวจจับ เขียนลง SQLite และตัดคลิป MP4 สำหรับแต่ละเหตุการณ์ โดยมีช่วงนำหน้า 5 วินาที ช่วงต่อท้าย 3 วินาที และเสียงต้นฉบับ

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

ไปป์ไลน์ก่อนที่โมเดลใด ๆ จะทำงาน คือการหาผลต่างของพื้นหลังแบบเกรย์สเกลเทียบกับเฟรมอ้างอิงชามเปล่า หากสัดส่วนพื้นหน้าต่ำกว่า 15 เปอร์เซ็นต์ เฟรมจะถูกทิ้งโดยไม่แตะต้องโครงข่ายประสาทเทียม หากสูงกว่า 15 เปอร์เซ็นต์ MiniCPM-V 4.7 1B ภายในเครื่องจะถูกถามหนึ่งคำถาม: มีแมวในภาพนี้หรือไม่? คำตอบเชิงบวกบวกกับสัดส่วนพื้นหน้าที่สูงกว่า 35 เปอร์เซ็นต์ จะกลายเป็นหนึ่งเสียงสนับสนุน เสียงสนับสนุนติดกันสามเสียงจะเปิดเหตุการณ์; เสียงคัดค้านติดกันสี่เสียงจะปิดเหตุการณ์นั้น

การแยกเป็นสองโมเดลคือส่วนทางวิศวกรรมที่น่าสนใจ

การรันโมเดลวิชันทุก 1.5 วินาทีตลอดไปเป็นความคิดที่ไม่ดี และบิลด์ก็ถือว่ามันเป็นเช่นนั้น โมเดล 1B รันในเครื่องผ่าน llama.cpp ในรูปแบบควอนไทซ์ Q4_K_M บน llama-server ที่เข้ากันได้กับ OpenAI ที่พอร์ต 8080 มันมีต้นทุนต่ำพอที่โปรเจกต์จะเรียกใช้ซ้ำๆ ได้ แต่ก็ยังถูกควบคุมด้วยการตรวจจับความแตกต่างจากพื้นหลัง เพื่อให้ห้องที่ว่างเปล่าไม่มีค่าใช้จ่ายใดๆ งานของ 1B ถูกจำกัดอย่างตั้งใจ: การมีอยู่ ไม่ใช่ตัวตน ไม่ใช่พฤติกรรม

การระบุตัวตนเป็นคำถามที่มีต้นทุนสูง และจะถูกถามเพียงครั้งเดียวต่อเหตุการณ์ เมื่อเหตุการณ์สิ้นสุด เซิร์ฟเวอร์จะสุ่มเฟรมจากคลิปและส่งไปยัง MiniCPM-V 4.7 35B-A3B ผ่าน cloud API ของ ModelBest พร้อมรูปภาพอ้างอิงของแมวทั้งสี่ตัว โมเดลขนาดใหญ่จะส่งคืนตัวระบุแมว ค่าความมั่นใจ และคำตอบใช่/ไม่ใช่ว่าฉากนั้นเป็นฉากการดื่มหรือไม่ เฟรมที่ไม่ผ่านการตรวจสอบการดื่มจะถูกทิ้งและไม่ถูกนับ ตัวตนที่ไม่ชัดเจนจะถูกจัดเก็บเป็น unknown แทนที่จะถูกบังคับให้เป็นแมวที่ใกล้เคียงที่สุด และหากการเรียกผ่านคลาวด์ล้มเหลว เหตุการณ์จะเข้าสู่เส้นทางการลองใหม่ แทนที่จะถูกเติมย้อนหลังด้วยการคาดเดาของ 1B

A screenshot of the Hugging Face model card for openbmb/MiniCPM-V-4.7-35B-A3B, captured 6 November 2026, showing 553,116 downloads last month, 1.11k likes, an apache-2.0 licence tag, a model size of 35B params in BF16, the on-device claim of 13+ tokens per second on an iPhone 17 Pro Max, Evaluation results of MMLU-Pro 83.45 and MathArena AIME 2026 76.46, and a sidebar line stating the model is not deployed by any Inference Provider.

การแบ่งงานแบบนั้นคือข้อโต้แย้งเดียวกับที่งานวิจัยด้านการประมวลผลบนอุปกรณ์พูดมานานสองปี ตอนนี้มีหลักฐานยืนยันแล้ว โมเดลเล็กคือเซนเซอร์ โมเดลใหญ่คือผู้ตัดสิน โมเดลต้นทุนตามมาโดยตรง: โมเดล 1B จ่ายด้วยมิลลิวินาทีและแบตเตอรี่ ส่วนโมเดล 35B จ่ายด้วยโทเคน และค่าโทเคนจะแปรผันตามจำนวนเหตุการณ์การดื่ม ไม่ใช่ตามจำนวนเฟรม ในบ้านที่มีแมวสี่ตัว นั่นคือการเรียกใช้เพียงไม่กี่ครั้งต่อวัน

เหตุการณ์ทั้ง 89 พิสูจน์อะไรได้บ้างและไม่ได้พิสูจน์อะไร

โพสต์ของ OpenBMB รายงานว่าในบ้านที่มีแมวสี่ตัว ภายในสามวัน มีการตรวจสอบเหตุการณ์การดื่มน้ำ 89 ครั้งด้วยมือ และระบุตัวตนแมวได้ถูกต้องทุกครั้ง นี่เป็นผลลัพธ์จริง และเป็นผลลัพธ์ที่แคบเช่นกัน งานระบุตัวตนนี้เป็นการเลือกแบบปิดจากสี่ตัวเลือกในหมู่แมวที่ระบบมีภาพอ้างอิงอยู่แล้ว ไม่ใช่การระบุตัวตนซ้ำแบบ open-set ไม่ใช่ข้ออ้างเกี่ยวกับแมวหนึ่งร้อยตัว และไม่ใช่ข้ออ้างว่าระบบใช้งานได้ในบ้านที่มันไม่เคยเห็นมาก่อน

เหตุการณ์ 89 ครั้งในสามวันคือประมาณสามสิบครั้งต่อวันสำหรับแมวสี่ตัว หรือประมาณ 7.5 ครั้งต่อตัวต่อวัน ซึ่งสมเหตุสมผลสำหรับการศึกษาการรับน้ำ และน้อยเกินไปที่จะประมาณอัตราความผิดพลาดได้อย่างมั่นใจ ระบบที่ถูกต้อง 89 ครั้งจาก 89 ครั้งก็ยังอาจผิดได้หนึ่งครั้งในห้าสิบ จำนวนที่ควรยึดไว้ไม่ใช่ 100 เปอร์เซ็นต์ แต่คือการที่ไม่มีใครต้องแก้ไขมันเลยในสามวันของการใช้งานปกติ

ยังมีข้อควรระวังเกี่ยวกับแหล่งที่มาอีกประการหนึ่ง ผู้เขียนเป็นทูตชุมชนของ OpenBMB และการสาธิตนี้รันบนบัญชีของ OpenBMB เอง สิ่งนี้ไม่ได้ทำให้ผลลัพธ์เป็นเท็จ แต่หมายความว่าการตรวจสอบไม่ได้ถูกออกแบบโดยผู้ที่ตั้งข้อสงสัย และยังไม่มีบุคคลที่สามรายใดทำซ้ำการตรวจสอบนี้

ทำไม 1B จึงไม่ระบุตัวแมว

README มีประโยคที่มีประโยชน์ที่สุดในทั้งโปรเจ็กต์ และมันเป็นผลลัพธ์เชิงลบ: เมื่อมีแมวสีอ่อนสามตัวที่หน้าตาคล้ายกัน {{1}}MiniCPM-V 4.7 1B ที่รันในเครื่องไม่สามารถเลือกหนึ่งในสี่ได้อย่างน่าเชื่อถือ{{/1}} ทีมได้ลองแล้ว พบว่าการแยกแยะแบบสี่ทางนั้นไม่น่าเชื่อถือ และย้ายการระบุตัวตนไปยัง 35B แทนที่จะปล่อยออกไปแบบเดา

เรื่องนี้น่าคิดต่อ เพราะมันขัดกับวิธีที่โมเดลวิชันขนาดเล็กมักถูกนำเสนอขายกัน โมเดลขนาด 1.55 พันล้านพารามิเตอร์ที่ทำคะแนนได้ดีใน OCR และ benchmark เกี่ยวกับแผนภูมิ ไม่ได้แปลว่าจะเก่งในการแยกสัตว์สองชนิดที่คล้ายกันออกจากกันในมุมกล้องคงที่โดยอัตโนมัติ การระบุตัวตนแบบละเอียดเป็นงานประเภทที่งบโทเค็นภาพที่ถูกบีบอัดสร้างปัญหาโดยตรง: ความแตกต่างระหว่างแมวลายสลิดสองตัวนั้นเล็ก เฉพาะจุด และถูกเฉลี่ยจนหายได้ง่าย คำตอบของบิลด์นี้ — ใช้โมเดลเล็กกับคำถามง่าย ๆ และยอมจ่ายให้กับคำถามยาก — มีประโยชน์กว่าอันดับใด ๆ บน leaderboard

A generated system diagram of the esp32-eye pipeline in five stages: ESP32-S3 plus OV5640 capture at 1024 by 768 every 1.5 seconds, a background-difference gate at 15 percent foreground, a local MiniCPM-V 4.7 1B on llama.cpp taking three consecutive positive votes, a cloud MiniCPM-V 4.7 35B-A3B identity call with four reference photos, and SQLite plus an AMOLED dashboard.

ค่าใช้จ่ายในการรัน และสิ่งที่เกิดขึ้นเมื่อขาคลาวด์ล้มเหลว

มีเพียงส่วนเดียวของไปป์ไลน์นี้เท่านั้นที่มีค่าใช้จ่าย โมเดล 1B เป็นไฟล์ GGUF ภายในเครื่องบนแล็ปท็อป ดังนั้นต้นทุนส่วนเพิ่มต่อหนึ่งเฟรมคือค่าไฟฟ้า ส่วน 35B เป็นการเรียกแบบโฮสต์ผ่าน API ของ ModelBest ซึ่งเป็นปลายทางของผู้ให้บริการเอง ไม่ใช่โฮสต์จากบุคคลที่สาม และโครงการจำเป็นต้องมีคีย์สำหรับการใช้งานนี้ README ระบุชัดเจนว่า 35B ไม่ได้ติดตั้งใช้งานภายในเครื่อง: MacBook ไม่ได้บรรจุพารามิเตอร์ 3.5 หมื่นล้านตัว แต่บรรจุไคลเอนต์ไว้

การแยกนั้นสร้างภาวะความล้มเหลวที่โปรเจกต์รับมือไว้แทนที่จะปกปิด ถ้าการเรียกไปยังคลาวด์ล้มเหลว เหตุการณ์จะถูกส่งลองใหม่ และผลลัพธ์ 1B จะไม่ถูกยกระดับให้กลายเป็น identity เด็ดขาด สำหรับโปรเจกต์งานอดิเรก นี่เป็นวินัยที่ผิดปกติทีเดียว แต่สำหรับสิ่งใดที่มีลักษณะพร้อมใช้งานจริง การออกแบบเดียวกันนี้ทำให้ปลายทางภายนอกเพียงจุดเดียวไปอยู่บนเส้นทางวิกฤตของระบบที่มีจุดประสงค์ทั้งหมดคือการบันทึกเหตุการณ์โดยไม่มีคนดูแล

นี่คือช่องว่างที่เราเตอร์เข้ามาเติมเต็ม และควรระบุให้ชัดเจนว่าเราเตอร์ทำอะไรได้และทำอะไรไม่ได้ในจุดนี้ OrcaRouter มอบ API เดียวที่ครอบคลุมโมเดลมากกว่า 200 รุ่น โดยส่งผ่านราคาตามรายการของผู้ให้บริการในอัตราบวกเพิ่ม 0%, พร้อมการสลับไปยังระบบสำรองอัตโนมัติระหว่างผู้ให้บริการต้นทาง ซึ่งเป็นรูปแบบที่เหมาะสมสำหรับไปป์ไลน์แบบนี้ ปัจจุบันยังไม่รองรับ MiniCPM-V 4.7 ดังนั้นขา 35B ใน esp32-eye จะยังคงทำงานบน API ของผู้จำหน่ายเอง คำแนะนำที่ตรงไปตรงมาคือ: คงเส้นทางการลองใหม่ไว้ และหากขั้นตอนระบุตัวตนกลายเป็นส่วนสำคัญที่ขาดไม่ได้ ให้วางโมเดลที่สองที่คุณเข้าถึงได้จริงไว้เบื้องหลังการเรียกเดียวกัน

สิ่งที่ยังไม่ได้รับการยืนยัน

มีสามสิ่งที่จะเปลี่ยนว่าน้ำหนักที่ควรให้กับบิลด์นี้มากน้อยเพียงใด สิ่งแรกคือบ้านหลังที่สอง ทุกอย่างที่รายงานมาจนถึงตอนนี้มาจากบ้านหลังเดียวที่มีแมวที่รู้จักสี่ตัวและกล้องแบบติดตั้งตายตัว สิ่งที่สองคือการใช้งานที่ยาวนานขึ้น: สามวันไม่สามารถแยกแยะระบบที่ใช้งานได้จริงออกจากระบบที่ใช้งานได้จนกว่าแมวจะเปลี่ยนสีขน แสงจะเปลี่ยน หรือมีแขกมา สิ่งที่สามคือการตรวจสอบอย่างอิสระของเหตุการณ์ทั้ง 89 เหตุการณ์ ซึ่งปัจจุบันพึ่งพาการทบทวนด้วยมือของผู้สร้างเอง

สิ่งที่ยืนยันได้แล้วนั้นพอประมาณกว่าและมีประโยชน์กว่า MiniCPM-V 4.7 มีอยู่ในสองขนาดที่ประกอบกันได้ ได้แก่โมเดลแบบ dense ขนาด 1.55B ที่รันในไฟล์ Q4_K_M บนแล็ปท็อป และ sparse mixture-of-experts ขนาด 35.2B ที่เปิดใช้งานพารามิเตอร์ราว 3 พันล้านตัวต่อโทเคน และเก่งพอในงานระบุอัตลักษณ์แบบสี่ทางจนไว้ใจให้ทำได้ ชามแมวเป็นสถานที่แปลกประหลาดสำหรับการพิสูจน์เรื่องนั้น แต่มันก็เป็นที่จริง

A generated eight-tile figures card reading 1.5 seconds between frame checks, 15 percent foreground to wake the 1B, 3 and 4 consecutive votes to open and close an event, 641 MB (641 MiB, 672 MB decimal) for the 1B as a Q4_K_M GGUF, 4 cats in the closed identity set, 3 days of run, 89 drinking events verified, and 89 of 89 identities correct per OpenBMB.

หากคุณต้องการทำซ้ำผลลัพธ์ ในรีโพซิทอรีมีเฟิร์มแวร์กล้อง เฟิร์มแวร์ AMOLED เซิร์ฟเวอร์ FastAPI และสคริปต์ทดสอบโมเดล และบัญชีเดียวที่คุณต้องใช้คือคีย์ ModelBest สำหรับส่วนการยืนยันตัวตน หากคุณต้องการอ่านโมเดลแทนที่จะรันแมว ตัวเลขของผู้จำหน่ายคือจุดเริ่มต้น และข้อควรระวังอยู่ในรีโพซิทอรี

© 2026 OrcaRouter

สำหรับผู้ให้บริการ

ให้บริการแพลตฟอร์มการอนุมานอยู่หรือไม่ นำโมเดลของคุณขึ้น OrcaRouter

[email protected]

เข้าร่วมคอมมูนิตี้ของเรา

Discord[email protected]XLinkedInGitHubYouTube