เคล็ดลับและเทคนิค#
โหมดสาธิต#
โหมดสาธิตช่วยให้คุณสาธิต CMUcam4 โดยไม่ต้องมีโปรเซสเซอร์แม่ ในโหมดสาธิต CMUcam4 จะดำเนินการคำสั่ง "TW" (Track Window) แล้วขับเซอร์โวงานอดิเรกมาตรฐานสองตัวไปยังวัตถุที่กำลังติดตาม ในขณะเดียวกันก็แสดงวัตถุที่ติดตามบนทีวีมาตรฐาน เมื่อ CMUcam4 เข้าสู่โหมดสาธิตแล้ว มันจะไม่ออกจากโหมดสาธิตจนกว่าจะถูกรีเซ็ต ทำตามขั้นตอนด้านล่างเพื่อเข้าสู่โหมดสาธิต:
กดค้าง ปุ่ม reset บน CMUcam4
กดค้าง ปุ่ม user บน CMUcam4
ปล่อย ปุ่ม reset (อย่าปล่อย ปุ่ม user)
รอจนกว่า LED เสริมสีแดงจะติด (2 วินาที)
รอจนกว่า LED เสริมสีแดงจะเริ่มกะพริบที่ 10 Hz แล้วปล่อย ปุ่มผู้ใช้ (user button)
ทีวีควรจะเปิดขึ้น (คุณควรเห็นหน้าจอสแปลชแสดงบนทีวี) หาก CMUcam4 เชื่อมต่อกับทีวี
ตอนนี้ CMUcam4 จะปรับตัวเข้ากับสภาพแสงในอีก 5 วินาที ข้างหน้า
อย่าวางวัตถุที่คุณต้องการติดตามไว้หน้า CMUcam4 ในช่วง 5 วินาที ถัดไป
รอจนกว่า LED เสริมสีแดงจะหยุดกะพริบที่ 10 Hz
ตอนนี้ CMUcam4 ปรับตัวเข้ากับสภาพแสงเสร็จแล้ว
พินเซอร์โวแพนและก้มควรส่งออกพัลส์ 1500 μs ที่ 50 Hz
วางวัตถุที่คุณต้องการติดตามไว้หน้า CMUcam4 แล้วกด ปุ่ม user
หาก LED เสริมสีแดงเริ่มกะพริบที่ 10 Hz ให้ตรวจสอบการเชื่อมต่อโมดูลกล้อง OV9665
โมดูลกล้อง OV9665 อาจเสียหายและมีแนวโน้มว่าต้องเปลี่ยนใหม่
ตอนนี้คุณควรเห็นวัตถุที่ถูกติดตาม (หรือคล้ายกัน) แสดงบนทีวี หาก CMUcam4 เชื่อมต่อกับทีวี
เซอร์โวแพนและก้ม หากเชื่อมต่ออยู่ ก็จะพยายามขับกล้องไปยังวัตถุที่ถูกติดตามด้วย
โปรดลองขั้นตอนนี้กับวัตถุต่างๆ ในสภาพแวดล้อมต่างๆ เพื่อดูว่าอะไรใช้งานได้ดีที่สุด
ตอนนี้ CMUcam4 กำลังทำงานในโหมดสาธิต
กด ปุ่ม reset เพื่อออกจากโหมดสาธิต
สำหรับการทำงานแบบไม่กลับด้านของเซอร์โวแพน ความยาวพัลส์ที่ต่ำกว่า 1500 µs ต้องเลื่อนตำแหน่ง X ของโมดูลกล้องไปทางขวา (จากมุมมองของโมดูลกล้อง) และความยาวพัลส์ที่สูงกว่า 1500 µs ต้องเลื่อนตำแหน่ง X ของโมดูลกล้องไปทางซ้าย (จากมุมมองของโมดูลกล้อง)
สำหรับการทำงานแบบไม่กลับด้านของเซอร์โวทิลต์ ความยาวพัลส์ที่ต่ำกว่า 1500 µs ต้องเลื่อนตำแหน่ง Y ของโมดูลกล้องลง (จากมุมมองของโมดูลกล้อง) และความยาวพัลส์ที่สูงกว่า 1500 µs ต้องเลื่อนตำแหน่ง Y ของโมดูลกล้องขึ้น (จากมุมมองของโมดูลกล้อง)
โหมดหยุด (Halt)#
โหมดหยุดช่วยให้คุณหยุด CMUcam4 ในขณะที่ยังเชื่อมต่อกับ Arduino อยู่ ในโหมดหยุด CMUcam4 ใช้พลังงานน้อยมากและไม่ขัดขวางการเขียนโปรแกรม Arduino โดยการบล็อกพอร์ตซีเรียลของ Arduino โหมดหยุดจำเป็นเฉพาะเมื่อ CMUcam4 รบกวนกระบวนการเขียนโปรแกรม Arduino หากไม่รบกวน โหมดหยุดก็ไม่จำเป็น -- ซึ่งมักจะเป็นเช่นนั้น เมื่อ CMUcam4 เข้าสู่โหมดหยุดแล้ว มันจะไม่ออกจากโหมดหยุดจนกว่าจะถูกรีเซ็ต ทำตามขั้นตอนด้านล่างเพื่อเข้าสู่โหมดหยุด:
กดค้าง ปุ่ม reset บน CMUcam4
กดค้าง ปุ่ม user บน CMUcam4
ปล่อย ปุ่ม reset (อย่าปล่อย ปุ่ม user)
รอจนกว่า LED เสริมสีแดงจะติด (2 วินาที)
ปล่อย ปุ่ม user
ตอนนี้ CMUcam4 หยุดทำงานอย่างไม่มีกำหนด
กด ปุ่ม reset เพื่อออกจากโหมดหยุด
หมายเหตุเกี่ยวกับการติดตามที่ดีขึ้น#
การติดตามที่ดีขึ้นด้วย Auto-gain และ White Balance#
Auto-gain คือการควบคุมภายในที่ปรับระดับความสว่างของภาพให้เหมาะสมกับสภาพแวดล้อมมากที่สุด มันพยายามปรับส่วนสว่างและส่วนมืดในภาพให้เป็นปกติ เพื่อให้ใกล้เคียงกับความสว่างโดยรวมของภาพที่ปรับด้วยมือ กระบวนการนี้ทำซ้ำหลายเฟรมในขณะที่กล้องปรับระดับความสว่างโดยอัตโนมัติ ตัวอย่างเช่น หากมีการเปิดไฟและสภาพแวดล้อมสว่างขึ้น กล้องจะพยายามปรับความสว่างเพื่อลดความสว่างของภาพโดยรวม
ในทางกลับกัน white balance พยายามแก้ไขเกนสีของกล้อง แสงแวดล้อมในภาพของคุณอาจไม่ใช่สีขาวบริสุทธิ์ ในกรณีนี้กล้องจะเห็นสีต่างออกไป กล้องเริ่มต้นด้วยการเดาเบื้องต้นว่าจะให้เกนแก่แต่ละแชนเนลสีมากเพียงใด หากทำงานอยู่ white balance จะปรับเกนเหล่านี้ทีละเฟรมเพื่อให้สีเฉลี่ยในภาพเข้าใกล้สีเทา จากประสบการณ์ พบว่าวิธี "gray world" นี้ทำงานได้ค่อนข้างดี ปัญหาของ white balance แบบ gray world คือหากสีทึบเต็มมุมมองของกล้อง white balance จะค่อย ๆ ตั้งเกนเพื่อให้สีนั้นดูเหมือนเป็นสีเทาและไม่ใช่สีจริงของมัน จากนั้นเมื่อสีทึบถูกนำออก ภาพจะมีเกนสีที่ไม่พึงประสงค์จนกว่ามันจะสร้างค่าเฉลี่ยสีเทาขึ้นใหม่
เมื่อติดตามสี เช่นในโหมดสาธิต คุณอาจต้องการอนุญาตให้ auto-gain และ white balance ทำงานเป็นระยะเวลาสั้น ๆ แล้วปิดมัน ในขณะที่เปิดอยู่เป็นระยะเวลาประมาณ 5 วินาที กล้องสามารถตั้งค่าเกนความสว่างและเกนสีตามที่มันเห็นว่าเหมาะสม จากนั้นการปิดมันจะหยุดกล้องจากการเปลี่ยนการตั้งค่าโดยไม่จำเป็นเนื่องจากมีวัตถุถูกถือใกล้เลนส์ เงา หรืออื่น ๆ หากไม่ได้ปิด auto-gain และ white balance และกล้องเปลี่ยนการตั้งค่าสำหรับค่า RGB หรือ YCbCr ค่าที่วัดได้ใหม่อาจตกอยู่นอกเทรชโฮลด์การติดตามสีที่เลือกไว้ในตอนแรก
โมดูลกล้องต้องเปิดใช้งาน auto-gain เพื่อใช้การปรับสมดุลแสงขาว
ปริภูมิสี YUV (YCbCr)#
YCbCr เป็นนิยามปริภูมิสีที่แตกต่างจากปริภูมิ RGB ที่รู้จักกันทั่วไปกว่า ใน YCbCr ข้อมูลการส่องสว่างถูกเก็บในแชนเนลแยกต่างหาก เนื่องจากคุณสมบัตินี้ ในโหมด YCbCr กล้องอาจต้านทานการเปลี่ยนแปลงในการส่องสว่างได้มากกว่า เนื่องจากมันเป็นปริภูมิสีที่แตกต่างกัน ภาพใน YCbCr จึงไม่ดูเหมือนภาพ RGB มาตรฐานเมื่อถูกแมปโดยตรงด้วยโปรแกรม frame dump แชนเนล RGB แมปไปยัง CrYCb ดังนั้นในโหมด YCbCr ค่าที่ส่งกลับเป็นพารามิเตอร์สีแดงจริง ๆ แล้วคือ Cr พารามิเตอร์สีเขียวคือ Y และพารามิเตอร์สีน้ำเงินคือ Cb ดังนั้นหากคุณต้องการติดตามวัตถุสีแดง คุณต้องดูที่เฟรมที่ dump ออกมาเพื่อดูว่าสีของวัตถุนั้นแมปไปเป็นอะไรใน YCbCr จากนั้นควรจะเป็นไปได้ที่จะหาขอบเขต Cb และ Cr ในขณะที่ให้ขอบเขต Y ที่ผ่อนคลายมากซึ่งแสดงว่าการส่องสว่างไม่สำคัญมากนัก เมื่อใช้ YCbCr ตรวจสอบให้แน่ใจว่าคุณคำนึงถึงว่าในแง่ของ I/O ทั้งหมดของ CMUcam4 นั้น สีแดงแมปไปยัง Cr, สีเขียวไปยัง Y และสีน้ำเงินไปยัง Cb
สังเกตว่าช่อง RGB จับคู่เพื่อให้คุณได้ CrYCb ไม่ใช่ YCbCr
เกี่ยวกับโมดูลกล้อง#
ตั้งแต่เปิดเครื่อง กล้องอาจใช้เวลาถึง 5 วินาทีในการปรับตัวเข้ากับแสงโดยอัตโนมัติ การเปลี่ยนแปลงอย่างมากในสภาพแวดล้อม เช่น การเปิดและปิดไฟ อาจทำให้เกิดเวลาปรับตัวใหม่ที่คล้ายกัน เมื่อใช้กล้องกลางแจ้ง เนื่องจากการแผ่รังสี IR ที่รุนแรงของดวงอาทิตย์ แม้ในวันที่ค่อนข้างมีเมฆมาก ก็อาจจำเป็นต้องใช้ฟิลเตอร์ IR หรือฟิลเตอร์กล้องแบบ neutral density เพื่อลดระดับแสงโดยรอบ
ฟังก์ชันที่จัดเตรียมโดยบอร์ดกล้องมีไว้เพื่อให้ผู้ใช้มีกล่องเครื่องมือของฟังก์ชันการมองเห็นสี การใช้งานจริงอาจแตกต่างกันมากและขึ้นอยู่กับจินตนาการของผู้ใช้ ความสามารถในการเปลี่ยนหน้าต่างที่มองเห็นได้ จับสถิติสีและแสง และติดตามสี สามารถถูกนำมาผสมผสานกันโดยโปรเซสเซอร์โฮสต์เพื่อสร้างฟังก์ชันการทำงานระดับสูงขึ้น