สารบัญ:
- ขั้นตอนที่ 1: ประเภทของโรคข้าว
- ขั้นตอนที่ 2: วิธีการก่อนหน้านี้ตรวจพบโรคได้อย่างไร
- ขั้นตอนที่ 3: ถ่ายโอนการเรียนรู้
- ขั้นตอนที่ 4: ฝึกโมเดล
- ขั้นตอนที่ 5: การทดสอบ Model
- ขั้นตอนที่ 6: การทดสอบเพิ่มเติม
วีดีโอ: วิธีการตรวจหาโรคพืชโดยใช้แมชชีนเลิร์นนิง: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
กระบวนการตรวจจับและจำแนกพืชที่เป็นโรคนั้นเป็นกระบวนการที่ต้องทำด้วยตนเองและน่าเบื่ออยู่เสมอ ซึ่งมนุษย์ต้องตรวจร่างกายพืชด้วยสายตา ซึ่งมักจะนำไปสู่การวินิจฉัยที่ไม่ถูกต้อง นอกจากนี้ ยังมีการคาดการณ์ว่าเมื่อรูปแบบสภาพอากาศทั่วโลกเริ่มเปลี่ยนแปลงไปเนื่องจากการเปลี่ยนแปลงสภาพภูมิอากาศ โรคพืชมีแนวโน้มที่จะรุนแรงและแพร่หลายมากขึ้น ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องพัฒนาระบบที่วิเคราะห์พืชผลและระบุโรคได้อย่างรวดเร็วและง่ายดาย เพื่อจำกัดความเสียหายของพืชผลเพิ่มเติม
ในคำแนะนำนี้ เราจะสำรวจแนวคิดแมชชีนเลิร์นนิงที่เรียกว่า "โอนการเรียนรู้" เพื่อจำแนกภาพต้นข้าวที่เป็นโรค วิธีการเดียวกันนี้สามารถนำไปใช้ใหม่สำหรับปัญหาการจัดประเภทรูปภาพอื่นๆ
ขั้นตอนที่ 1: ประเภทของโรคข้าว
ข้าวเป็นพืชอาหารหลักที่ได้รับความนิยมมากที่สุดชนิดหนึ่งที่ปลูกในเอเชีย แอฟริกา และอเมริกาใต้เป็นหลัก แต่มีโอกาสเกิดโรคและแมลงศัตรูพืชได้หลากหลาย ลักษณะทางกายภาพ เช่น การลดสีของใบสามารถนำมาใช้เพื่อระบุโรคต่างๆ ที่อาจส่งผลต่อการปลูกข้าวได้ ตัวอย่างเช่น ในกรณีของ Brown-Spot โรคเชื้อราที่มีผลต่อฝักป้องกันของใบ ใบไม้จะถูกปกคลุมไปด้วยจุดสีน้ำตาลรูปไข่ขนาดเล็กหลายจุดที่มีสีเทาตรงกลาง ส่วนในกรณีของ Leaf-Blast จะคลุมใบ มีแผลสีน้ำตาลขนาดใหญ่ ในทำนองเดียวกัน ใบที่ได้รับผลกระทบจากศัตรูพืชข้าวฮิสปาสามารถระบุได้ด้วยรอยทางยาวที่พัฒนาบนพื้นผิวของใบ
ขั้นตอนที่ 2: วิธีการก่อนหน้านี้ตรวจพบโรคได้อย่างไร
วิธีการก่อนหน้านี้ในการจำแนกรูปภาพพืชที่เป็นโรคโดยอัตโนมัติ เช่น ตัวแยกประเภทตามกฎที่ใช้ใน [1] อาศัยชุดกฎตายตัวเพื่อแบ่งใบไม้ออกเป็นส่วนๆ ที่ได้รับผลกระทบและไม่ได้รับผลกระทบ กฎเกณฑ์บางประการในการแยกคุณลักษณะเกี่ยวข้องกับการสังเกตการเปลี่ยนแปลงในค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานระหว่างสีของบริเวณที่ได้รับผลกระทบและไม่ได้รับผลกระทบ กฎในการแยกคุณลักษณะรูปร่างเกี่ยวข้องกับการวางรูปร่างดั้งเดิมหลายรูปร่างไว้บนสุดของภูมิภาคที่ได้รับผลกระทบ และระบุรูปร่างที่ครอบคลุมพื้นที่สูงสุดของภูมิภาคที่ได้รับผลกระทบ เมื่อดึงคุณลักษณะออกจากรูปภาพแล้ว จะมีการใช้ชุดกฎตายตัวเพื่อจำแนกรูปภาพตามโรคที่อาจส่งผลต่อพืช ข้อเสียเปรียบหลักของตัวแยกประเภทดังกล่าวคือจะต้องมีกฎตายตัวหลายข้อสำหรับแต่ละโรค ซึ่งอาจทำให้ข้อมูลดังกล่าวอ่อนไหวได้ รูปภาพด้านบนแสดงวิธีการใช้แผนผังการตัดสินใจตามกฎเพื่อแบ่งกลุ่มรูปภาพออกเป็นสองส่วน
1. Santanu Phadikar et al. “การจำแนกโรคข้าวโดยใช้การเลือกคุณลักษณะและเทคนิคการสร้างกฎ” คอมพิวเตอร์และอิเล็กทรอนิกส์ในการเกษตร เล่ม 1 90 ม.ค. 2556
ขั้นตอนที่ 3: ถ่ายโอนการเรียนรู้
เทคนิคการจำแนกรูปภาพที่อธิบายไว้ใน Instructables นี้ใช้โครงสร้างพื้นฐานของ CNN ที่ประกอบด้วยชั้น convolutional หลายชั้น ชั้นรวม และชั้นสุดท้ายที่เชื่อมต่ออย่างสมบูรณ์ เลเยอร์ convolutional ทำหน้าที่เป็นชุดของฟิลเตอร์ที่แยกคุณสมบัติระดับสูงของรูปภาพ Max-pooling เป็นหนึ่งในวิธีการทั่วไปที่ใช้ในการรวมเลเยอร์เพื่อลดขนาดเชิงพื้นที่ของฟีเจอร์ที่แยกออกมา ซึ่งจะเป็นการลดกำลังในการคำนวณที่จำเป็นในการคำนวณน้ำหนักสำหรับแต่ละเลเยอร์ สุดท้าย ข้อมูลที่แยกออกมาจะถูกส่งผ่านเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์พร้อมกับฟังก์ชันการเปิดใช้งาน softmax ซึ่งกำหนดคลาสของรูปภาพ
แต่การฝึกอบรม CNN แบบกำหนดเองตั้งแต่เริ่มต้นอาจไม่ให้ผลลัพธ์ที่ต้องการและอาจใช้เวลาฝึกอบรมนานมาก
เพื่อที่จะเรียนรู้คุณสมบัติของภาพการฝึก เราใช้วิธีการที่เรียกว่า Transfer Learning ซึ่งเลเยอร์ 'บนสุด' ของโมเดลที่ฝึกไว้ล่วงหน้าจะถูกลบออกและแทนที่ด้วยเลเยอร์ที่สามารถเรียนรู้คุณลักษณะเฉพาะของชุดข้อมูลการฝึก การถ่ายโอนการเรียนรู้ช่วยลดเวลาการฝึกเมื่อเทียบกับรุ่นที่ใช้น้ำหนักเริ่มต้นแบบสุ่ม วิธีการของเราใช้โมเดลที่ผ่านการฝึกอบรมมาแล้วหกแบบ ได้แก่ AlexNet, GoogLeNet, ResNet-50, Inception-v3, ShuffleNet และ MobileNet-v2
รูปภาพแสดงสถาปัตยกรรม GoogLeNet โดยที่สีน้ำเงินใช้สำหรับเลเยอร์ที่โค้งงอ สีแดงสำหรับการรวมเลเยอร์ สีเหลืองสำหรับเลเยอร์ softmax และสีเขียวสำหรับเลเยอร์ concat คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานภายในของ CNN ได้ที่นี่
ชุดข้อมูลโรคข้าวประกอบด้วยภาพใบของต้นข้าวที่มีสุขภาพดีและเป็นโรค ภาพสามารถแบ่งได้เป็น 4 ประเภท ได้แก่ Brown-Spot, Rice Hispa, Leaf-Blast และ Healthy ชุดข้อมูลประกอบด้วยรูปภาพที่แตกต่างกัน 2092 รูป โดยแต่ละคลาสจะมีรูปภาพ 523 รูป แต่ละภาพประกอบด้วยใบไม้ที่แข็งแรงหรือเป็นโรคเพียงใบเดียววางบนพื้นหลังสีขาว
เราแบ่งชุดข้อมูลรูปภาพออกเป็นชุดการฝึก ตรวจสอบ และทดสอบชุดรูปภาพ เพื่อป้องกันการใส่มากเกินไป เราเพิ่มภาพการฝึกโดยการปรับขนาดและพลิกภาพการฝึกเพื่อเพิ่มจำนวนตัวอย่างการฝึกทั้งหมด
รหัสและการอ้างอิงเป็นโอเพ่นซอร์สและสามารถพบได้ที่นี่: GitHub Code
สำหรับแอปพลิเคชันการจัดประเภทรูปภาพต่างๆ เราสามารถเปลี่ยนชุดข้อมูลรูปภาพการฝึกได้
ขั้นตอนที่ 4: ฝึกโมเดล
ขึ้นอยู่กับขนาดหน่วยความจำที่แต่ละรุ่นต้องการ รุ่นก่อนการฝึกอบรมจะถูกจัดประเภทเป็นรุ่นที่ใหญ่กว่าและเล็กกว่า รุ่นเล็กใช้พื้นที่น้อยกว่า 15MB และด้วยเหตุนี้จึงเหมาะกว่าสำหรับแอปพลิเคชันมือถือ
ในบรรดารุ่นใหญ่ Inception-v3 มีเวลาฝึกนานที่สุดประมาณ 140 นาที ในขณะที่ AlexNet มีเวลาฝึกสั้นที่สุดประมาณ 18 นาที ในบรรดารุ่นที่เล็กกว่าสำหรับมือถือ MobileNet-v2 มีเวลาการฝึกนานที่สุดประมาณ 73 นาที ในขณะที่ ShuffleNet มีเวลาฝึกสั้นที่สุดประมาณ 38 นาที
ขั้นตอนที่ 5: การทดสอบ Model
ในบรรดารุ่นที่ใหญ่กว่า Inception-v3 มีความแม่นยำในการทดสอบสูงสุดประมาณ 72.1% ในขณะที่ AlexNet มีความแม่นยำในการทดสอบต่ำสุดประมาณ 48.5% ในบรรดารุ่นที่เล็กกว่าสำหรับมือถือ MobileNet-v2 มีความแม่นยำในการทดสอบสูงสุดที่ 62.5% ในขณะที่ ShuffleNet มีความแม่นยำในการทดสอบต่ำสุดที่ 58.1%
MobileNet-v2 ทำงานได้ดีมากเมื่อจำแนกรูปภาพของ Brown-Spot, Leaf-Blast และ Healthy Leaves ในขณะที่ทำการจำแนกประเภทผิดๆ สำหรับ Rice Hispa ด้วยความแม่นยำเพียง 46.15%
Inception-v3 แสดงผลการจัดหมวดหมู่ที่คล้ายกันกับ MobileNet-v2
ขั้นตอนที่ 6: การทดสอบเพิ่มเติม
ภาพด้านบนแสดงให้เห็นว่าโมเดล MobileNet-v2 จำแนกภาพใบหญ้าบนพื้นหลังสีขาวอย่างไรซ์ ฮิสปาผิดพลาดได้อย่างไร
นอกจากนี้เรายังทดสอบความแม่นยำของ MobileNet-v2 กับภาพที่ครอบตัดของ Rice Hispa โดยที่พื้นหลังสีขาวถูกย่อให้เล็กสุดเพื่อให้ใบไม้ใช้พื้นที่สูงสุดภายในภาพ สำหรับภาพที่ครอบตัดของ Rice Hispa เราสังเกตเห็นความถูกต้องประมาณ 80.81% เช่น สำหรับภาพที่ครอบตัดของ Rice Hispa เราสังเกตเห็นความแม่นยำในการจำแนกประเภทที่เพิ่มขึ้นอย่างมีนัยสำคัญเมื่อเทียบกับตัวอย่างทดสอบที่ไม่ได้ครอบตัด ดังนั้นเราจึงเสนอว่าการใช้งานจริงของการตรวจจับโรคข้าวโดยใช้โครงข่ายประสาทเทียมต้องครอบตัดภาพทดสอบเพื่อขจัดเสียงรบกวนพื้นหลังเพื่อปรับปรุงความแม่นยำ
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง