แนวคิดและหัวข้อโครงการ OpenCV ที่น่าตื่นเต้น 10 อันดับแรกสำหรับนักศึกษาใหม่และผู้มีประสบการณ์ [2022]

เผยแพร่แล้ว: 2021-05-27

OpenCV หรือ Open Source Computer Vision Library เป็นการเรียนรู้ของเครื่องที่ทรงพลัง และไลบรารีที่ใช้ AI ในการพัฒนาและแก้ปัญหาการมองเห็นด้วยคอมพิวเตอร์ คอมพิวเตอร์วิทัศน์รวมถึงการฝึกคอมพิวเตอร์ให้เข้าใจและเข้าใจโลกของภาพ ระบุองค์ประกอบ และตอบสนองต่อสิ่งเหล่านี้โดยใช้แบบจำลองการเรียนรู้เชิงลึก ธุรกิจในปัจจุบันทั่วโลกใช้ประโยชน์จากการปรับแต่งภาพ การประมวลผล การตรวจจับใบหน้า การจดจำเสียง การติดตามการเคลื่อนไหว และการตรวจจับวัตถุ

บริษัทต่างๆ เช่น Google, Facebook, Microsoft และ Intel ได้ปรับใช้ OpenCV เพื่อพัฒนาแอพพลิเคชั่นคอมพิวเตอร์วิทัศน์แล้ว Mark Zuckerberg ในการ สัมภาษณ์ปี 2015 ได้กล่าวว่า "ถ้าเราสามารถสร้างคอมพิวเตอร์ที่สามารถเข้าใจสิ่งที่อยู่ในภาพและบอกคนตาบอดที่ไม่สามารถมองเห็นภาพนั้นได้ ก็คงเป็นเรื่องที่น่าอัศจรรย์เช่นกัน"

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

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

สารบัญ

10 สุดยอดโครงการ Open CV ที่น่าจับตามองในปี 2022

โครงการ 1: การตรวจหาโรคปอดบวมโดยใช้ EdgeML

โปรเจ็กต์ OpenCV นี้มีจุดมุ่งหมายเพื่อปรับใช้ซอฟต์แวร์ AI-based Pneumonia Detection บน Raspberry Pi ของคุณ ใช้ระบบ Edge Machine Learning เพื่อแปลง Raspberry Pi ด้วยกล้องให้กลายเป็นตัวแยกประเภทโรคปอดบวมโดยใช้คอนเทนเนอร์หลายตัวของ Balena

คอนเทนเนอร์ที่สองถูกเพิ่มไปยัง Balena ที่รันเอ็นจินการอนุมาน Edge Impulse WebAssembly ภายในเซิร์ฟเวอร์ Node.js คอนเทนเนอร์ทั้งสองสื่อสารผ่าน WebSockets เพื่อให้ BalenaCam สามารถสตรีมสดทุก ๆ วินาทีของฟีดจากกล้องของคุณบนหน้าเว็บ

ซอฟต์แวร์และเครื่องมือที่ใช้ในโครงการ ได้แก่ OpenCV, Edge Impulse Studio, TensorFlow Lite, GitHub Desktop, balenaCloud, Microsoft VS Code และ Docker เว็บเบราว์เซอร์ที่รองรับ Balena Cam ได้แก่ Chrome, Safari, Firefox และ Edge

คุณสามารถตรวจสอบโครงการ ได้ ที่นี่

โครงการ 2: OpenCV-Powered Motion Sensor สำหรับ SmartThings ของ Samsung

ขั้นแรก คุณต้องมี Raspberry Pi 3 ที่มี PiCam ที่ใช้งานได้ซึ่งติดตั้ง OpenCV ไว้ก่อนหน้านี้ โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อสร้าง Motion Sensor แบบกำหนดเองสำหรับ SmartThings ที่ขับเคลื่อนโดยคอมพิวเตอร์วิทัศน์และการตรวจจับใบหน้า ข้อมูลที่รวบรวมจะถูกส่งไปยัง SmartThings ผ่าน LAN – UPnP

ในการทำเช่นนั้น เราสร้างตัวจัดการอุปกรณ์สำหรับ SmartThings และตั้งโปรแกรม จากนั้นเราใช้สคริปต์ Python เพื่อเข้าถึงภาพของกล้องและตรวจจับใบหน้า และจับคู่ Raspberry Pi ที่จะค้นพบโดย SmartThings คุณต้องติดตั้ง imutils ซึ่งคุณสามารถจัดหาได้จาก GitHub

ตรวจสอบซอร์สโค้ดของโครงการ ที่ นี่

โครงการ 3: การถ่ายภาพด้วยคอมพิวเตอร์

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

โครงการ 4: สร้างลายน้ำบนรูปภาพโดยใช้ OpenCV

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

คุณสามารถค้นหาโครงการ ได้ ที่นี่

โครงการ 5: ค้นหา Waldo

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

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

คุณสามารถตรวจสอบโครงการ ได้ ที่นี่

โครงการ 6: รถยนต์ขับเอง

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

นี่คือซอร์สโค้ดสำหรับระบุภูมิภาคที่สนใจ:

นำเข้า numpy เป็น np

จาก matplotlib นำเข้า pyplot เป็น plt

รูปภาพ = cv2.imread('../../images/input.jpg')

ใน [8]:

ภาพ.รูปร่าง

ออก[8]:

(830, 1245, 3)

ใน [11]:

x, y = รูปภาพ. รูปร่าง[:2]

ใน [3]:

ความสูง ความกว้าง = image.shape[:2]

# เพื่อให้ได้พิกัดพิกเซลเริ่มต้น (บนซ้ายของสี่เหลี่ยมครอบตัด)

start_row, start_col = int(ความสูง * .25), int(ความกว้าง * .25)

# เพื่อรับพิกัดพิกเซลสิ้นสุด (ล่างขวา)

end_row, end_col = int(ความสูง * .75), int(ความกว้าง * .75)

# ใช้การจัดทำดัชนีเพื่อครอบตัดส่วนของภาพที่เราต้องการ

ครอบตัด = รูปภาพ[start_row:end_row , start_col:end_col]

ใน [6]:

แถว col = 1, 2

fig, axs = plt.subplots(row, col, figsize=(15, 10))

fig.tight_layout()

ขวาน[0].imshow(cv2.cvtColor(รูปภาพ cv2.COLOR_BGR2RGB))

axs[0].set_title('รูปภาพต้นฉบับ')

cv2.imwrite('original_image.png', รูปภาพ)

ขวาน[1].imshow(cv2.cvtColor(ครอบตัด, cv2.COLOR_BGR2RGB))

axs[1].set_title('ภาพที่ครอบตัด')

cv2.imwrite('cropped_image.png', ครอบตัด)

plt.show()

ตรวจสอบโครงการ ที่ นี่

โครงการ 7: การจดจำใบหน้าและเสียงสำหรับผู้พิการทางสายตา

โครงงานนี้มีวัตถุประสงค์เพื่อช่วยผู้พิการทางสายตาโดยแปลงอินพุตใบหน้าเป็นเอาต์พุตเสียงโดยใช้ Raspberry Pi 2 รุ่น B และโมดูลกล้อง Raspberry Pi เป็นหนึ่งในโครงการ open cv ที่ได้รับความนิยมมากที่สุดในปี 2022 ซอฟต์แวร์นี้ช่วยให้ผู้พิการทางสายตาหรือผู้พิการทางสายตาสามารถตรวจจับสัญญาณ ข้อความ หรือผู้คนในสภาพแวดล้อมที่ไม่คุ้นเคย นำทางได้โดยไม่ต้องมีความช่วยเหลือ ข้อกำหนดอื่นๆ สำหรับโครงการ ได้แก่ OpenCV และ Python ในการจดจำใบหน้า และการจดจำเสียงทำได้โดยใช้ GNU Octave

คุณสามารถตรวจสอบรหัส ได้ ที่นี่

โครงการ 8: โมเดลการเข้าร่วมประชุมอัจฉริยะ

ระบบการเข้างานอัจฉริยะเป็นเครื่องมือที่สะดวกสำหรับรูปแบบการศึกษาออนไลน์ เช่น ZoomApp ช่วยให้คุณติดตามนักเรียนที่เข้าร่วมชั้นเรียน Zoom ของคุณโดยการตรวจสอบการเข้าชั้นเรียนแบบเรียลไทม์ สิ่งที่ต้องทำคือรับภาพหน้าจอจากนักเรียนพร้อมวันที่รวมและอัปโหลดไปยังไฟล์ excel

คุณสามารถหาบทช่วยสอนสำหรับโครงการ open cv ได้ ที่นี่

โครงการ 9: การแลกเปลี่ยนใบหน้าด้วย OpenCV

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

ขั้นตอนรวมถึงการวางภาพต้นฉบับบนภาพปลายทางด้วยความช่วยเหลือของรูปสามเหลี่ยมที่สร้างขึ้นโดยใช้ตัวตรวจจับจุดสังเกตของ dlib

ตรวจสอบโครงการ ที่ นี่

โครงการ 10: การตรวจจับรูปร่างและการนับรูปร่าง

โปรเจ็กต์จะตรวจจับโครงร่างหรือเส้นขอบของรูปร่างที่กำหนดเพื่อกำหนดประเภทของรูปร่างที่วัตถุมี ตัวอย่างเช่น ถ้ารูปภาพมีฝาขวด คุณสามารถใช้รูปทรงกลมเพื่อกำหนดจำนวนฝาขวดที่มีอยู่ในรูปภาพ

นี่คือ ซอร์สโค้ด สำหรับการทำเช่นนั้น:

นำเข้า numpy เป็น np

จาก matplotlib นำเข้า pyplot เป็น plt

ใน [2]:

รูปภาพ = cv2.imread('../../images/bottlecaps.jpg')

สีเทา = cv2.cvtColor(รูปภาพ cv2.COLOR_BGR2GRAY)

plt.imshow(cv2.cvtColor(สีเทา, cv2.COLOR_BGR2RGB))

plt.title('ฝาขวด'); plt.show()

cv2.imwrite('bottlecaps_input.jpg', สีเทา)

ออก[2]:

จริง

ใน [3]:

เบลอ = cv2.medianBlur (สีเทา 5)

วงกลม = cv2.HoughCircles(เบลอ, cv2.HOUGH_GRADIENT, 1.5, 10)

สำหรับฉันในแวดวง[0,:]:

#วาดวงกลมรอบนอก

cv2.circle(image,(i[0], i[1]), i[2], (255, 0, 0), 2)

#วาดจุดศูนย์กลางของวงกลม

cv2.circle(ภาพ, (ผม[0], ผม[1]), 2, (0, 255, 0), 5)

plt.imshow(cv2.cvtColor(รูปภาพ cv2.COLOR_BGR2RGB))

plt.title('แวดวงที่ตรวจพบ'); plt.show()

cv2.imwrite('detected_circles.jpg', รูปภาพ)

ออก[3]:

จริง

ใน [ ]:

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

คุณสามารถตรวจสอบโครงการ open cv ได้ ที่นี่

ความคิดสุดท้าย

Computer Vision ช่วยให้คุณพัฒนาแอพพลิเคชั่นที่มีประโยชน์มากมาย เช่น การแปลงภาพ การแปล การตรวจจับรูปร่าง การแบ่งส่วนภาพ การตรวจจับวัตถุ การติดตามวัตถุ และการวิเคราะห์การเคลื่อนไหว

นอกจากนี้ยังใช้ใน Augmented Reality (AR) โดยเรียนรู้ที่จะระบุตำแหน่งใบหน้า ตรวจจับรูปร่าง ฯลฯ เพื่อจดจำวัตถุและใบหน้า คุณยังสามารถสร้างโปรเจ็กต์ Open CV ที่น่าสนใจโดยใช้การเรียนรู้ของเครื่องอย่างง่าย เช่น เครื่องอ่านบัตรเครดิต ตัวตรวจจับตัวเลขที่เขียนด้วยลายมือ หรือโปรแกรมอ่านใบหน้า

อย่างไรก็ตาม สิ่งนี้ต้องการความเข้าใจด้านวิทยาศาสตร์ข้อมูลและการเรียนรู้ของเครื่อง โดยเฉพาะการเรียนรู้เชิงลึก หากคุณต้องการประกอบอาชีพในฐานะ ML Engineer, Data Scientist หรือ Deep Learning Engineer เราขอแนะนำให้ซื้อ Advanced Certificate Program ใน Machine Learning & Deep Learning

หลักสูตรนี้จะช่วยให้คุณมีความรอบรู้เกี่ยวกับแนวคิดของสถิติ การถดถอย อัลกอริธึมคลัสเตอร์ โครงข่ายประสาทเทียม การตรวจจับวัตถุ และการรับรู้ท่าทาง ไม่เพียงแค่นั้น ยังช่วยให้คุณสร้างความเชี่ยวชาญใน OpenCV, Python, TensorFlow, MySQL, Keras, Excel และ NumPy ท่ามกลางเครื่องมือการเขียนโปรแกรมและไลบรารีอื่นๆ และช่วยให้โดดเด่นในกลุ่ม

OpenCV คืออะไร?

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

การตรวจจับวัตถุคืออะไร?

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

อัลกอริธึมการตรวจจับวัตถุที่แม่นยำที่สุดคืออะไร?

มีอัลกอริธึมการตรวจจับวัตถุมากมายและไม่มีอัลกอริธึมใดที่แม่นยำ 100% อัลกอริธึมการตรวจจับวัตถุเผชิญกับปัญหาข้อมูลมากเกินไป ในความเป็นจริง นักวิจัยคอมพิวเตอร์วิทัศน์บางคนอ้างว่าอัลกอริธึมการตรวจจับวัตถุไม่สามารถแม่นยำได้ 100% แต่มีอัลกอริธึมมากมายที่ให้ผลลัพธ์ที่แม่นยำสำหรับชุดข้อมูลที่กำหนด หากคุณสามารถซื้อเครื่อง GPU ได้ เราขอแนะนำให้คุณใช้ SVM ที่ใช้ OpenCV สำหรับการตรวจจับวัตถุ มีความแม่นยำ รวดเร็ว และทำงานบนชุดข้อมูลขนาดใหญ่มาก อย่างไรก็ตาม ไม่สามารถจัดการกับการบดเคี้ยวได้เป็นอย่างดี หากคุณต้องการสร้างเครื่องตรวจจับใบหน้า ให้ไปที่การนำ Haar cascade classifier ไปใช้งานใน OpenCV