เป็นการอุ่นใจที่รู้ว่าเราสามารถสร้างหุ่นยนต์ด้วยความสามารถโดยกำเนิดของเราเพื่อเรียนรู้จากตัวอย่างและรับรู้สภาพแวดล้อมของพวกมัน ความท้าทายพื้นฐานคือการสอนคอมพิวเตอร์ให้ "มองเห็น" เหมือนกับที่มนุษย์ต้องการเวลาและความพยายามมากขึ้น
อย่างไรก็ตาม เมื่อเราพิจารณาถึงคุณค่าในทางปฏิบัติที่ทักษะนี้มอบให้กับองค์กรและองค์กรในปัจจุบัน ความพยายามก็คุ้มค่า ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับการจัดประเภทรูปภาพ วิธีการทำงาน และการใช้งานจริง เอาล่ะ.
การจำแนกภาพคืออะไร?
งานป้อนภาพเข้า เครือข่ายประสาท และการออกฉลากรูปแบบใดรูปแบบหนึ่งสำหรับรูปภาพนั้นเรียกว่าการจดจำภาพ ป้ายกำกับเอาต์พุตของเครือข่ายจะสอดคล้องกับคลาสที่กำหนดไว้ล่วงหน้า
อาจมีชั้นเรียนจำนวนมากที่กำหนดให้กับรูปภาพหรือเพียงคลาสเดียว เมื่อมีเพียงคลาสเดียว คำว่า "การรับรู้" มักถูกใช้ ในขณะที่มีหลายคลาส คำว่า "การจำแนก" มักถูกใช้
การตรวจจับวัตถุ เป็นส่วนย่อยของการจำแนกประเภทภาพซึ่งตรวจพบวัตถุบางอย่างว่าเป็นของประเภทที่กำหนด เช่น สัตว์ ยานพาหนะ หรือมนุษย์
การจัดประเภทรูปภาพทำงานอย่างไร
คอมพิวเตอร์วิเคราะห์รูปภาพในรูปแบบของพิกเซล ทำได้โดยถือว่ารูปภาพเป็นชุดของเมทริกซ์ ซึ่งขนาดจะถูกกำหนดโดยความละเอียดของภาพ พูดง่ายๆ ก็คือ การจำแนกรูปภาพคือการศึกษาข้อมูลทางสถิติโดยใช้อัลกอริธึมจากมุมมองของคอมพิวเตอร์
การจัดประเภทรูปภาพทำได้สำเร็จในการประมวลผลภาพดิจิทัลโดยการจัดกลุ่มพิกเซลออกเป็นกลุ่มที่กำหนดไว้ล่วงหน้า หรือ "คลาส" อัลกอริธึมแบ่งภาพออกเป็นส่วนๆ ของลักษณะเด่น ซึ่งช่วยลดภาระของตัวแยกประเภทขั้นสุดท้าย
คุณสมบัติเหล่านี้แจ้งให้ผู้แยกประเภททราบถึงความหมายของภาพและการจัดประเภทที่อาจเกิดขึ้น เนื่องจากกระบวนการที่เหลือในการจำแนกรูปภาพขึ้นอยู่กับมัน วิธีการแยกลักษณะเฉพาะจึงเป็นขั้นตอนที่สำคัญที่สุด
พื้นที่ ข้อมูลที่ให้ไว้ สำหรับอัลกอริธึมก็มีความสำคัญในการจัดประเภทรูปภาพเช่นกัน โดยเฉพาะอย่างยิ่งการจัดประเภทภายใต้การดูแล เมื่อเปรียบเทียบกับชุดข้อมูลที่น่ากลัวซึ่งมีความไม่สมดุลของข้อมูลตามคลาสและคุณภาพของภาพและคำอธิบายประกอบที่ต่ำ
การจัดประเภทรูปภาพโดยใช้ Tensorflow & Keras ใน python
เราจะใช้ ซิฟาร์ -10 ชุดข้อมูล (ซึ่งรวมถึงเครื่องบิน เครื่องบิน นก และอื่นๆ อีก 7 รายการ)
1. ข้อกำหนดในการติดตั้ง
รหัสด้านล่างจะติดตั้งข้อกำหนดเบื้องต้นทั้งหมด
2. การนำเข้าการพึ่งพา
สร้างไฟล์ train.py ใน Python รหัสด้านล่างจะนำเข้าการพึ่งพา Tensorflow และ Keras
3. การเริ่มต้นพารามิเตอร์
CIFAR-10 มีหมวดหมู่รูปภาพเพียง 10 หมวดหมู่ ดังนั้น num class จึงหมายถึงจำนวนหมวดหมู่ที่จะจัดประเภท
4. กำลังโหลดชุดข้อมูล
ฟังก์ชันนี้ใช้โมดูล Tensorflow Datasets เพื่อโหลดชุดข้อมูล และเราตั้งค่าด้วยข้อมูลเป็น True เพื่อรับข้อมูลบางอย่างเกี่ยวกับมัน คุณสามารถพิมพ์ออกมาเพื่อดูว่าฟิลด์ใดและมีค่าอะไรบ้าง และเราจะใช้ข้อมูลเพื่อดึงข้อมูลจำนวนตัวอย่างในชุดการฝึกและการทดสอบ
5. การสร้างแบบจำลอง
ตอนนี้ เราจะสร้างสามเลเยอร์ แต่ละชั้นประกอบด้วย ConvNet สองตัวที่มีฟังก์ชันการรวมสูงสุดและการเปิดใช้งาน ReLU ตามด้วยระบบ 1024 ยูนิตที่เชื่อมต่ออย่างสมบูรณ์ เมื่อเปรียบเทียบกับ ResNet50 หรือ Xception ซึ่งเป็นรุ่นล้ำสมัย นี่อาจเป็นรุ่นที่ค่อนข้างเล็ก
6. การฝึกโมเดล
ฉันใช้ Tensorboard เพื่อวัดความแม่นยำและความสูญเสียในแต่ละยุค และให้การแสดงผลที่สวยงามแก่เราหลังจากนำเข้าข้อมูลและสร้างแบบจำลอง เรียกใช้รหัสต่อไปนี้ ขึ้นอยู่กับ CPU/GPU ของคุณ การฝึกจะใช้เวลาหลายนาที
ในการใช้เทนเซอร์บอร์ด เพียงพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัลหรือพร้อมท์คำสั่งในไดเร็กทอรีปัจจุบัน:
คุณจะเห็นว่าการสูญเสียการตรวจสอบลดลงและความแม่นยำเพิ่มขึ้นเป็น 81% มันอัศจรรย์มาก!
ทดสอบรูปแบบ
เมื่อการฝึกเสร็จสิ้น โมเดลสุดท้ายและน้ำหนักจะถูกบันทึกไว้ในโฟลเดอร์ผลลัพธ์ ทำให้เราฝึกเพียงครั้งเดียวและคาดการณ์ได้ทุกเมื่อที่เราเลือก ทำตามโค้ดในไฟล์ python ใหม่ที่ชื่อ test.py
7. การนำเข้ายูทิลิตี้สำหรับการทดสอบ
8. การสร้างไดเร็กทอรีหลาม
สร้างพจนานุกรม Python ที่แปลค่าจำนวนเต็มแต่ละค่าเป็นป้ายกำกับที่เหมาะสมของชุดข้อมูล:
9. กำลังโหลดข้อมูลการทดสอบ & รุ่น
รหัสต่อไปนี้จะโหลดข้อมูลการทดสอบและแบบจำลอง
10. การประเมินและการทำนาย
รหัสต่อไปนี้จะประเมินและทำนายภาพกบ
11 ผล
แบบจำลองทำนายกบด้วยความแม่นยำ 80.62%
สรุป
โอเค เราจบบทเรียนนี้แล้ว แม้ว่า 80.62% จะไม่ดีสำหรับ CNN เล็กน้อย เราขอแนะนำให้คุณเปลี่ยนโมเดลหรือดูที่ ResNet50, Xception หรือรุ่นที่ทันสมัยอื่นๆ เพื่อผลลัพธ์ที่ดีขึ้น
เมื่อคุณได้สร้างเครือข่ายการรู้จำรูปภาพแห่งแรกใน Keras แล้ว คุณควรทดลองกับโมเดลเพื่อค้นหาว่าพารามิเตอร์ต่างๆ ส่งผลต่อประสิทธิภาพการทำงานของมันอย่างไร
เขียนความเห็น