คำถามที่พบบ่อย#

ความแตกต่างระหว่าง CMUcam1 และ CMUcam2 คืออะไร?#

บทนำ#

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

ภาพรวมฮาร์ดแวร์#

มีความแตกต่างของฮาร์ดแวร์หลักสองประการที่สำคัญ CMUcam2 ใช้โปรเซสเซอร์ที่แตกต่างจาก CMUcam1 และ CMUcam2 รวมชิปเฟรมบัฟเฟอร์ในขณะที่ CMUcam1 ไม่มี

CMUcam2 ใช้โปรเซสเซอร์ SX52 และ CMUcam1 ใช้ โปรเซสเซอร์ SX28 ทั้งคู่มาจากซีรีส์โปรเซสเซอร์ SX จาก Ubicom ในทั้งสองกรณีโปรเซสเซอร์ทำงานที่ 75 MHz ดังนั้นจึงไม่มีความแตกต่างในความเร็วโปรเซสเซอร์หรือกำลังการคำนวณ ข้อได้เปรียบของโปรเซสเซอร์ SX52 คือมี RAM มากกว่า (262 เทียบกับ 136 ไบต์) มี ROM มากกว่า (4096 เทียบกับ 2048 เวิร์ด) และมีพิน I/O มากกว่า RAM และ ROM ที่มากกว่าหมายความว่าเราสามารถเขียนโค้ดที่ซับซ้อนกว่าซึ่งทำให้เรารวมฟังก์ชันการทำงานได้มากขึ้นใน CMUcam2 จำนวนพิน I/O ที่มากขึ้นหมายความว่าเรามีพินเหลือมากขึ้นสำหรับฟังก์ชันอื่น ๆ -- เช่นเซอร์โวมากขึ้น จัมเปอร์การกำหนดค่ามากขึ้น ฯลฯ

ความแตกต่างที่ใหญ่ระหว่างสองระบบคือ CMUcam2 รวมชิปเฟรมบัฟเฟอร์ AL422B จาก AverLogic ในขณะที่ CMUcam1 ไม่มี ซึ่งทำให้ฮาร์ดแวร์ CMUcam2 สามารถจับเฟรมสมบูรณ์เฟรมเดียวได้อย่างรวดเร็วและเก็บไว้ในหน่วยความจำเฟรมบัฟเฟอร์ สิ่งนี้มีข้อได้เปรียบหลายประการ:

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

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

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

  • การดัมป์เฟรมที่ดีขึ้น เนื่องจาก CMUcam1 ต้องซิงโครไนซ์ข้อมูลดัมป์เฟรมที่ส่งออกกับสตรีมข้อมูลของโมดูลกล้อง มันจึงส่งข้อมูลได้เพียงหนึ่งคอลัมน์ต่อเฟรมกล้อง ซึ่งหมายความว่าส่วนต่างๆ ของภาพถูกจับในเวลาที่ต่างกัน ดังนั้นวัตถุที่เคลื่อนที่เร็วจะเบลอกระจายไปทั่วการดัมป์เฟรมของ CMUcam1 เนื่องจาก CMUcam2 ส่งภาพจากข้อมูลคงที่ในบัฟเฟอร์เฟรม จึงไม่มีปัญหานี้อีกต่อไป

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

  • การทำงานของโมดูลกล้องที่ดีขึ้น เพื่อให้โปรเซสเซอร์ใน CMUcam1 สามารถซิงโครไนซ์กับสตรีมข้อมูลจากโมดูลกล้องได้ อัตราเฟรมของโมดูลกล้องจึงต้องถูกลดลงเหลือ 17 fps บัฟเฟอร์เฟรมที่ CMUcam2 ใช้ทำให้เราสามารถใช้งานโมดูลกล้องที่ความเร็วเฟรมเต็มได้ ข้อดีอย่างหนึ่งของสิ่งนี้คือการปรับค่าแสงอัตโนมัติและการปรับสมดุลแสงขาวของกล้องสามารถทำงานได้เร็วขึ้น เพราะมันสามารถปรับได้เพียงครั้งเดียวต่อเฟรม และตอนนี้มีจำนวนเฟรมต่อวินาทีมากขึ้น ข้อดีประการที่สองคือสัญญาณวิดีโอแอนะล็อกขาวดำ (ซึ่งทำงานได้เฉพาะเมื่อโมดูลทำงานที่อัตราเฟรมเต็ม) สามารถใช้งานได้ในขณะที่ CMUcam2 กำลังประมวลผลข้อมูลภาพ ซึ่งไม่สามารถทำได้กับ CMUcam1

ภาพรวมการทำงาน#

CMUcam2 ใช้งานฟังก์ชันการทำงานทั้งหมดของ CMUcam1 และยังเพิ่มฟังก์ชันการทำงานใหม่มากมาย ต่อไปนี้เป็นสรุป

  • การติดตามสี CMUcam2 ใช้การติดตามสีเช่นเดียวกับที่ CMUcam1 ทำ เช่นเดียวกับใน CMUcam1 มีโหมดเส้นบิตแมปแบบเสริมที่ส่งบิตแมปของพิกเซลที่ถูกติดตาม นอกจากนี้ยังมีการปรับปรุงบางอย่าง มีโหมดเส้นแบบเสริมใหม่ที่ให้สถิติของพิกเซลที่ถูกติดตามในแต่ละแถว รวมถึงตำแหน่งค่าเฉลี่ย ค่าต่ำสุด และค่าสูงสุดของพิกเซลที่ถูกติดตาม ซึ่งมีประโยชน์มากสำหรับการเดินตามเส้น นอกจากนี้ยังมีโหมดแบบเสริมใหม่ที่สามารถกลับด้านการตีความขอบเขตการติดตามได้ ในโหมดนี้พิกเซลที่อยู่นอกขอบเขตการติดตามจะถูกถือว่า "ดี" ซึ่งมีประโยชน์สำหรับการติดตามวัตถุที่มีพื้นหลังเป็นเนื้อเดียวกัน -- ลองนึกถึงเอฟเฟกต์พิเศษแบบบลูสกรีน นอกจากนี้ยังมีประโยชน์สำหรับการตรวจจับขอบเมื่อเปิดใช้งาน pixel differencing (อธิบายด้านล่าง) ตัวเลือกการกรองสัญญาณรบกวนยังได้รับการปรับปรุงเพื่อให้สามารถปรับปริมาณการกรองสำหรับสถานการณ์ที่มีสัญญาณรบกวนได้

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

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

  • การทำฮิสโทแกรม สิ่งที่ใหม่ทั้งหมดใน CMUcam2 คือคำสั่งการคำนวณฮิสโทแกรม คำสั่งเหล่านี้สามารถใช้เพื่อจับฮิสโทแกรมมิติเดียวของช่องสีเดียวที่ความละเอียดสูงสุด 28 บิน ฮิสโทแกรมให้ข้อมูลที่มีประโยชน์ซึ่งสรุปลักษณะของภาพ ด้วยการเขียนโปรแกรมเพิ่มเติมบนโปรเซสเซอร์แม่ข่าย ข้อมูลนี้สามารถใช้เพื่อช่วยในการตรวจจับสิ่งกีดขวาง วัตถุเฉพาะ หรือตำแหน่งได้

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

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

  • Pixel Differencing สิ่งที่ใหม่ทั้งหมดใน CMUcam2 คือโหมด pixel differencing แบบเสริม ในโหมด pixel differencing พิกเซลจะถูกประมวลผลล่วงหน้าก่อนที่จะถูกส่งต่อไปยังส่วนที่เหลือของโค้ด CMUcam2 ขั้นตอนการประมวลผลล่วงหน้านี้จะส่งค่าพิกเซลใหม่ไปยังส่วนที่เหลือของโค้ด ซึ่งเป็นความแตกต่างระหว่างค่าพิกเซลปัจจุบันกับค่าก่อนหน้า โดยพื้นฐานแล้วสิ่งที่มันทำคือกรองทุกอย่างออกยกเว้นขอบแนวตั้งในภาพ นี่เป็นการดำเนินการที่ทรงพลังมาก และด้วยการเขียนโปรแกรมเพิ่มเติมบนโปรเซสเซอร์แม่ข่าย สามารถใช้เพื่อช่วยในการตรวจจับสิ่งกีดขวางและการเดินตามเส้นได้

  • การลดขนาดตัวอย่าง (Down Sampling) สิ่งที่ใหม่ทั้งหมดใน CMUcam2 คือโหมดการลดขนาดตัวอย่างแบบเสริม ในโหมดการลดขนาดตัวอย่าง ซอฟต์แวร์ CMUcam2 จะลดความละเอียดของภาพจากกล้องก่อนที่จะประมวลผล ข้อดีคือมีพิกเซลที่ต้องประมวลผลและส่งน้อยลงมาก เนื่องจากทำในซอฟต์แวร์ การลดขนาดตัวอย่างจึงเพิ่มความเร็วในการประมวลผลเพียงเล็กน้อยเท่านั้น ประโยชน์ที่ใหญ่คือการลดปริมาณข้อมูลที่ส่ง ในกรณีของการดัมป์เฟรมภาพ การลดขนาดตัวอย่างสามารถลดขนาดข้อมูลและลดเวลาในการส่งลงได้ถึง 2 หรือ 4 เท่าหรือมากกว่าอย่างง่ายดาย ในทำนองเดียวกัน เมื่อใช้โหมดเส้นบิตแมป ขนาดของภาพบิตแมปสามารถลดลงได้อย่างมาก ซึ่งลดปริมาณข้อมูลที่โปรเซสเซอร์แม่ข่ายต้องรับและประมวลผล

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

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

ความแตกต่างระหว่างการใช้โมดูล OV6620 และ OV7620 กับ CMUcam2 คืออะไร?#

บทนำ#

ในแง่ของความสามารถ เซนเซอร์ OV7620 เป็นเซนเซอร์ความละเอียดสูงกว่า (ตำแหน่งเซนเซอร์ดิบ 664x492) เมื่อเทียบกับเซนเซอร์ OV6620 (ตำแหน่งเซนเซอร์ดิบ 356x292) แต่ข้อเท็จจริงนี้มีส่วนเกี่ยวข้องน้อยมากกับประเด็นที่เกิดขึ้นเมื่อพิจารณาว่าเซนเซอร์ตัวใดในสองตัวนี้เหมาะกับการใช้งาน CMUcam2 ของคุณมากที่สุด ต่อไปนี้คือรายการข้อควรพิจารณา

ความละเอียด#

แม้ว่าจะเป็นความจริงที่เซนเซอร์ OV7620 เป็นเซนเซอร์ความละเอียดสูงกว่า OV6620 แต่เนื่องจากขนาดหน่วยความจำคงที่ของเฟรมบัฟเฟอร์ของ CMUcam2 นั้น CMUcam2 รองรับเพียงความละเอียดเดียวคือ 160x239 สำหรับเซนเซอร์ OV7620 CMUcam2 รองรับโหมดความละเอียดต่ำที่ 88x143 และโหมดความละเอียดสูงที่ 176x255 สำหรับเซนเซอร์ OV6620 ดังนั้นการใช้ OV6620 ในโหมดความละเอียดสูง เราสามารถทำการทำงานที่ความละเอียดสูงกว่าโหมดความละเอียดเดียวที่มีให้สำหรับเซนเซอร์ OV7620 ได้จริง

อัตราเฟรม#

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

เอาต์พุตวิดีโอแอนะล็อก#

ความแตกต่างอีกอย่างระหว่างเซนเซอร์ทั้งสองคือรูปแบบของเอาต์พุตวิดีโอแอนะล็อกของเซนเซอร์ทั้งสอง เซนเซอร์ OV6620 ส่งเอาต์พุตในรูปแบบแอนะล็อก PAL และเซนเซอร์ OV7620 ส่งเอาต์พุตในรูปแบบแอนะล็อก NTSC ทั้งสองกรณีเอาต์พุตเป็นขาวดำ

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

สรุป#

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

มีปัญหาที่ทราบแล้วกับเฟิร์มแวร์ CMUcam2 รุ่นปัจจุบันหรือไม่?#

ได้ ในเวอร์ชัน 1.00 คำสั่ง "RM" (Raw Mode) ทำงานไม่ถูกต้อง เวอร์ชัน 1.01 แก้ไขปัญหานั้น

เฟิร์มแวร์ใน CMUcam2 สามารถอัปเกรดได้ แต่จำเป็นต้องใช้เครื่องโปรแกรม SX-Key (หรือที่เข้ากันได้) เพื่อทำเช่นนั้น ไฟล์ "hex" สำหรับอิมเมจ ROM มีอยู่ในหน้า ดาวน์โหลด