การตรวจจับแมวด้วยสายตาโดยการตรวจจับความผิดปกติ


17

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

ภารกิจมีดังต่อไปนี้:

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

ฉันได้ติดตั้งราสเบอร์รี่ pi พร้อมโมดูลกล้องที่สามารถจับภาพวิดีโอและ / หรือรูปภาพของส่วนหนึ่งของสวน

ภาพตัวอย่าง:

ภาพสวนตัวอย่าง

ความคิดแรกของฉันคือการฝึกลักษณนามเพื่อระบุวัตถุแมวหรือแมว แต่หลังจากทราบว่าฉันจะไม่สามารถรับตัวอย่างเชิงบวกจำนวนมากได้

ฉันคาดว่าถ้าฉันถ่ายภาพทุก ๆ วันฉันจะได้รูปแมวที่มีแมวห้าภาพ (ประมาณ 60,000 กับแสงอาทิตย์) ต่อวัน

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


1
บางทีคำถามนี้เหมาะกับไซต์ SE การตรวจสอบความถูกต้องมากกว่าตอนนี้ที่ฉันคิดว่ามัน ความแตกต่างค่อนข้างชัดเจนฉัน ...
ฟรอสต์

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

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

2
ดูเหมือนว่าขั้นตอนต่อไปอย่างเห็นได้ชัด (หลังจากที่คุณได้รับการตรวจสอบการทำงานของแมว) เป็นราสเบอร์รี่ควบคุมปี่ soaker ซุปเปอร์ :-)
Kryten

คำตอบ:


8

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

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

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


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

@insys - ฉันเห็นจุดของคุณ แต่ฉันไม่เห็นด้วย - ฉันเชื่อว่ามันทำให้เครื่องตรวจจับมีความยืดหยุ่นในการเปลี่ยนแปลงมากขึ้น ความแตกต่างของเวลาระหว่างเฟรมที่สัมพันธ์กันควรมีขนาดเล็ก (~ วินาทีถึงหนึ่งนาที) ดังนั้นดวงอาทิตย์ฤดูสภาพอากาศควรไม่สำคัญ ฉันยอมรับว่าลมจะทำให้พืชเคลื่อนที่ แต่ขั้นตอนการจัดหมวดหมู่สามารถหลีกเลี่ยงได้เนื่องจากขนาด / รูปร่าง / สีต่างจากแมว นอกจากนี้การใช้สองเฟรมในเวลาเดียวกันช่วยให้การปรับความเข้มของพิกเซลให้เป็นปกติสามารถจัดการกับสภาพแสงที่แตกต่างกันได้ดีกว่า (เช่นแมวในวันที่แดดจัด
bogatron

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

ยิ่งไปกว่านั้นสภาพแสงส่องสว่างเป็นเรื่องที่น่ากังวลอย่างแน่นอน แต่ถ้าหากคุณเข้าใจถูกต้องมันก็ไม่มีความชัดเจนว่าภาพที่คล้ายกันสองภาพที่ถ่ายด้วยความแตกต่าง 1 นาทีจะให้ความเข้มของพิกเซลปกติหรือไม่
ins

ภูมิภาคที่แยกออกมานั้นสามารถแสดงตัวอย่างที่เป็นบวกหรือลบได้ซึ่งเป็นสิ่งที่คุณจะใช้ในการฝึกอบรมตัวจําแนกแมว ในเรื่องของความเข้มสมมติว่าลักษณนามได้รับการฝึกฝนจากภูมิภาคที่ดึงมาจากภาพที่มีแดดเป็นหลัก ตัวจําแนกอาจจะหาแมวที่มีขนสีขาวสว่างได้ง่าย แต่มันจะไม่สามารถทำงานได้ดีในวันที่มีเมฆมาก (เมื่อขนสีขาวไม่สว่างเกือบเท่า) หรือใกล้ค่ำ การดำเนินการตามมาตรฐานของภาพสองภาพจะช่วยลดปัญหาดังกล่าว (เช่นภาพสว่างคู่และภาพสลัวคู่จะปรากฏขึ้นคล้ายกับตัวจําแนก)
bogatron

4

นี่เป็นโครงการที่น่าสนใจและค่อนข้างทะเยอทะยาน :)

ฉันไม่แน่ใจว่าการตรวจจับความผิดปกติ (อย่างน้อยในแง่ที่อธิบายไว้ในหลักสูตรที่คุณติดตาม) จะเป็นอัลกอริทึมที่เหมาะสมมากในกรณีนี้

ฉันจะพิจารณาแนวทางที่เป็นไปได้มากขึ้นเพื่อเป็นสิ่งที่ถูกกล่าวถึงในตอนท้ายของหลักสูตรที่มีการแสดงเวิร์กโฟลว์ Photo OCR

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

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

ตอนนี้แน่นอนว่าการสร้างเครื่องตรวจจับแมวที่แม่นยำนั้นเป็นเรื่องง่ายเพียงใด


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

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

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

ฉันจะเพิ่มข้อเสนอของฉัน (ตรวจจับการเคลื่อนไหว) การใช้อัลกอริทึม SIFT กับพื้นผิวแมว วิธี SIFT ยังสามารถใช้กับกลยุทธ์ของบล็อกได้ แต่ในกรณีนั้นคุณจะเปรียบเทียบบล็อกมากกว่าที่ต้องการ ขอให้สังเกตว่าแมวเคลื่อนไหว แต่ต้นไม้หรือพุ่มไม้ไม่มาก
adesantos

3

กลยุทธ์ของการตรวจจับการเคลื่อนไหว / การเปลี่ยนแปลงนั้นแน่นอนเพียงพอ แต่ฉันต้องการเพิ่มการทำงานพิเศษ ฉันจะตรวจจับภูมิภาคที่มีแนวโน้มที่จะเปลี่ยนแปลงได้เช่นบันไดดูเหมือนว่าสถานที่ที่มนุษย์สามารถเป็นได้ (เช่นแมว) และหญ้าที่สุนัขแมวหรือมนุษย์สามารถเป็นได้

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

คุณสามารถทำได้โดยใช้ R หรือฉันจะแนะนำ OpenCV เพื่อตรวจจับการเคลื่อนไหวและติดตามวัตถุต่าง ๆ


2

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


1

นี่มันคือนก? มันเป็นแมวเหรอ? เรามีขนาดแมวขาวดำ! นกกางเขนที่นี่ เพื่อที่จะล้มเหลว

สิ่งแรกคือการยกเว้นทุกพื้นที่ที่เป็นสีเขียวแมวเป็นสีเขียวไม่ค่อย

จากนั้นเปรียบเทียบส่วนที่เหลือกับภาพอ้างอิงเพื่อลบสิ่งที่คงที่เช่นหินและบันได

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

ด้วยกล้องสองตัวคุณสามารถทำแผนที่สามมิติของวัตถุและกำจัดวัตถุที่บินได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.