mobilePetBreed Identifier

Deep Learning Deep Learning-Based Dog and Cat Breed Classification Application (แอปพลิเคชันการจำแนกสายพันธุ์สุนัขและแมวด้วยเทคโนโลยี)

วัตถุประสงค์

1) เพื่อพัฒนาแอปพลิเคชันบนมือถือที่สามารถตรวจจับและจำแนกสายพันธุ์ของสุนัขและแมวจากภาพถ่ายได้อย่างแม่นยำ

2)เพื่อให้ผู้ใช้งานสามารถเข้าถึงข้อมูลเบื้องต้นเกี่ยวกับสายพันธุ์ เช่น ประวัติ อุปนิสัย อายุขัยเฉลี่ย สิ่งที่ต้องรู้ก่อนเลี้ยง

3)เพื่อพัฒนาระบบที่สามารถจำแนกช่วงวัยของสัตว์ออกเป็น 4 ช่วง ได้แก่ Kitten/Puppy, Young, Adult และ Senior

4)เพื่อสร้างเครื่องมือที่ช่วยให้เจ้าของสัตว์เลี้ยงเข้าใจและดูแลสัตว์เลี้ยงได้ดียิ่งขึ้น

ลักษณะและขอบเขต

ระบบถูกออกแบบมาให้ใช้งานง่าย สะดวก และรวดเร็ว ใช้หลักการ Deep Learning ในการพัฒนาโมเดลเพื่อนำไปตรวจจับและจำแนกสายพันธุ์ของสุนัขและแมว โดยโมเดลที่จะใช้ในการพัฒนาระบบนี้คือโมเดล YOLOv11 และการพัฒนาโมเดลเพื่อนำไปจำแนกช่วงวัยของสัตว์ โดยโมเดลที่จะใช้ในการพัฒนาระบบนี้คือโมเดล MobileNetV2 และใช้ชุดข้อมูล Petfinder (ภาพถ่ายจากเว็บไซต์รับเลี้ยงสุนัขและแมว) จำนวน 4,181 ภาพ ในการฝึกโมเดล

ผลที่คาดว่าจะได้รับ

1) ได้แอปพลิเคชันที่สามารถตรวจจับ จำแนกสายพันธุ์ และจำแนกช่วงวัยของสัตว์เลี้ยงได้อย่างแม่นยำ

2)ผู้ใช้งานได้รับข้อมูลเบื้องต้นเกี่ยวกับสัตว์เลี้ยงเพื่อช่วยในการดูแล

สรุปผลงานที่เกี่ยวข้อง

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

ตารางที่ 2.1 ตารางแสดงข้อดี ข้อเสียของผลงานที่เกี่ยวข้อง และการนำผลงานที่เกี่ยวข้องมาปรับใช้กับโครงงาน

ชื่อผลงานที่เกี่ยวข้อง

ข้อดี

ข้อเสีย

การนำมาปรับใช้

1. Exploring Deep Learning for Comprehensive Dog Breed Identification

มีการเปรียบเทียบโมเดล deep learning หลายตัว ทำให้เข้าใจข้อดีของแต่ละโมเดล และสามารถเลือกโมเดลที่เหมาะสมกับความต้องการได้

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

นำแนวคิดมาใช้ โดยเลือก MobileNetV2 ซึ่งแม้จะมีความแม่นยำน้อยกว่าบางโมเดล แต่เหมาะกับการนำไปใช้งานจริงบนแอปมือถือที่ต้องการความเร็วและประหยัดทรัพยากร

2. The Application and Expansion of the YOLO Algorithm in the Field of Campus Cat and Dog Identification

มีการนำ YOLOv8 มาเปรียบเทียบกับโมเดลอื่น เช่น SSD และ Faster R-CNN ซึ่งแสดงให้เห็นถึงความได้เปรียบของ YOLO ในด้านประสิทธิภาพและการใช้หน่วยความจำน้อย

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

นำโมเดล YOLOv11 มาใช้ในการตรวจจับสัตว์ในภาพ ซึ่งสอดคล้องกับเป้าหมายของระบบที่ต้องการทำงานแบบ real-time บนภาพจริง พร้อมทั้งรองรับทั้งแมวและสุนัข

3. Canine Age Classification using Deep Learning

มีการพัฒนาโมเดลที่สามารถจำแนกอายุของสุนัขได้จากใบหน้า โดยใช้การผสมผสานระหว่าง CNN และ Vision Transformer ทำให้สามารถจัดการกับข้อมูลที่ไม่สมดุลและมีคุณภาพหลากหลายได้ดีขึ้น

ความแม่นยำโดยรวมยังอยู่ในระดับปานกลาง โดยเฉพาะการจำแนกกลุ่มอายุ adult ที่มีความแม่นยำต่ำ อีกทั้งระบบยังไม่ได้ทดสอบในคลินิกจริง

ในการพัฒนาโมเดล MobileNetV2 สำหรับจำแนกช่วงอายุของสัตว์ในโครงงาน โดยปรับการจัดกลุ่มอายุใหม่ให้ละเอียดขึ้นเป็น 4 กลุ่ม เพื่อเหมาะกับการดูแลสัตว์เลี้ยงในแต่ละช่วงวัย

4. Deep Learning-Based Predictive and Management System for Dog Care Centers

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

ประสิทธิภาพของบางฟังก์ชันยังไม่สูงเท่าที่ควร โดยเฉพาะการทำนายอายุที่แม่นยำเพียง 65% และข้อมูลบางส่วนยังมีปริมาณน้อย เช่น ชุดข้อมูลโรคผิวหนัง

ในการรวมหลายฟังก์ชันของระบบ โดยออกแบบให้แอปพลิเคชันสามารถแสดงผลทั้งสายพันธุ์ ช่วงวัย และข้อมูลลักษณะนิสัยของสัตว์ในแอปเดียว

5. Dog Scanner & Cat Scanner (Siwalu Software)

สามารถจำแนกสายพันธุ์ของสัตว์เลี้ยงได้แม้เป็นสายพันธุ์ผสม พร้อมให้ข้อมูลประกอบที่หลากหลาย และมีฟีเจอร์เสริมอย่างการแชร์ข้อมูลและ gamification ซึ่งทำให้ผู้ใช้มีส่วนร่วมมากขึ้น

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

ในเรื่องการแสดงข้อมูลพื้นฐานของสัตว์ เช่น ลักษณะนิสัยและอายุขัย โดยเพิ่มความสามารถในการจำแนกช่วงอายุ

สำหรับตรวจจับและจำแนกสายพันธุ์

  • โมเดลที่ใช้ในการฝึก: YOLOv11

  • จำนวนรูปภาพ: 12,480 ภาพ (หลังจากทำเพิ่มข้อมูลจากเดิม 4,181 ภาพ) แบ่งเป็น 20 class ดังนี้

  1. Cat

    • American Shorthair 633 ภาพ

    • Bombay 624 ภาพ

    • Calico 645 ภาพ

    • Domestic Long Hair 642 ภาพ

    • Domestic Short Hair 651 ภาพ

    • Maine Coon 636 ภาพ

    • Manx 615 ภาพ

    • Persian 594 ภาพ

    • Russian Blue 615 ภาพ

    • Siamese 609 ภาพ

  2. Dog

    • Chihuahua 660 ภาพ

    • Corgi 621 ภาพ

    • French Bulldog 636 ภาพ

    • Golden Retriever 642 ภาพ

    • Labrador Retriever 627 ภาพ

    • Pomeranian 621 ภาพ

    • Poodle 633 ภาพ

    • Pug 657 ภาพ

    • Shih Tzu 627 ภาพ

    • Siberian Husky 642 ภาพ

สำหรับจำแนกช่วงวัย

  • โมเดลที่ใช้ในการฝึก: MobileNetV2

  • จำนวนรูปภาพ: 12,630 ภาพ (หลังจากตัดภาพวัตถุจากชุดข้อมูลที่ผ่านการเพิ่มข้อมูลเดิม 12,480 ภาพ จากข้อมูลตั้งต้น 4,181 ภาพ)

  1. Dog

    • Senior 1,611 ภาพ

    • Adult 1,575 ภาพ

    • Young 1,599 ภาพ

    • Puppy 1,581 ภาพ

  2. Cat

    • Senior 1,536 ภาพ

    • Adult 1,578 ภาพ

    • Young 1,563 ภาพ

    • Kitten 1,587 ภาพ

กระบวนการทำงานของระบบหลังบ้าน

การรับภาพจากผู้ใช้

  • ผู้ใช้ถ่ายรูปสุนัข/แมว หรือเลือกรูปจากคลังรูปภาพ เพื่อส่งเข้ามาผ่าน API ของระบบหลังบ้าน

การประมาวลภาพ

  • การตรวจจับและจำแนกสายพันธุ์

    • ใช้โมเดล YOLOv11 ที่ผ่านการฝึกฝนแล้ว ตรวจจับสุนัข/แมวในภาพ พร้อมแสดง Bounding Box และ ค่าความมั่นใจ (Confidence)

    • หากไม่พบสัตว์ในภาพ ระบบจะแจ้งเตือนว่า “ไม่พบสัตว์” และสิ้นสุดการทำงาน

    • หากตรวจพบสัตว์ ระบบจะทำการ Crop ภาพสัตว์จาก Bounding Box เพื่อใช้ในขั้นตอนต่อไป

  • การจำแนกช่วงวัย

    • ปรับขนาดภาพที่ Crop แล้วเป็น 224x224 พิกเซล

    • ใช้โมเดล MobileNetV2 (TF-Lite) ที่ผ่านการฝึกฝนแล้ว จำแนกช่วงวัยของสุนัข/แมว พร้อมค่าความมั่นใจ

    • ทำการ Mapping ผลช่วงวัย ให้ตรงกับประเภทของสัตว์ (แมว ↔ สุนัข)

การรวมผลลัพธ์และส่งข้อมูลกลับไปยังแอปพลิเคชัน

  • ระบบรวมผลทั้งหมดเป็น ข้อมูล JSON ประกอบด้วย

    • ชื่อสายพันธุ์และค่าความมั่นใจ

    • ประเภทสัตว์ (dog/cat)

    • Bounding Box (พิกัดตำแหน่งสัตว์ในภาพ)

    • ช่วงวัยและค่าความมั่นใจของช่วงวัย

  • ส่ง JSON Response กลับไปยังแอปพลิเคชัน เพื่อแสดงผลให้ผู้ใช้

โดยสามารถอธิบายหลักการทำงานในส่วนของ back-end ได้เป็น flowchart ดังรูป

ผลการทดลอง

การวัดประสิทธิภาพของระบบ

การจำแนกสายพันธุ์

เพื่อประเมินประสิทธิภาพของระบบการจำแนกสายพันธุ์ที่พัฒนาโดยใช้โมเดล YOLOv11 ได้มีการทดสอบระบบ ด้วยชุดข้อมูลภาพ 1,864 ภาพ และสัตว์ทั้งหมด 1,881 ตัว โดยประเมินด้วยตัวชี้วัดมาตรฐาน ได้แก่ Precision, Recall, mAP@0.5 และ mAP@0.5:0.95

ผลลัพธ์จากการประเมินประสิทธิภาพของระบบการจำแนกสายพันธุ์ที่พัฒนาโดยใช้โมเดล YOLOv11 มีรายละเอียดดังใน ตารางที่ 6.1

ตารางที่ 6.1 ค่าประสิทธิภาพของระบบในแต่ละสายพันธุ์

สายพันธุ์

จำนวนภาพ

จำนวนสัตว์

Instances

Precision

Recall

mAP@0.5

mAP@0.5:0.95

F1-Score

Poodle Dog

94

94

99.1%

98.9%

99.5%

87.5%

99%

American Shorthair Cat

94

94

89.6%

83%

94.3%

82.1%

86.2%

Bombay Cat

91

91

94.8%

99.3%

99%

86.7%

97%

Calico Cat

96

96

98.4%

92.7%

98.4%

86.3%

95.5%

Chihuahua Dog

95

99

97%

97.2%

99.3%

87.2%

97.1%

Corgi Dog

92

92

97.7%

97.8%

99.1%

86.8%

97.8%

Domestic Long Hair Cat

94

94

100%

94.2%

98.8%

83.3%

97%

Domestic Short Hair Cat

96

96

88.7%

81.6%

92.9%

80.6%

85%

French Bulldog Dog

94

94

100%

98.8%

99.5%

88%

99.4%

Golden Retriever Dog

93

94

98.8%

100%

99.5%

87.9%

99.4%

Labrador Retriever Dog

94

94

98.6%

100%

98.6%

85%

99.3%

Maine Coon Cat

93

93

95.8%

97.3%

99.2%

85.8%

96.5%

Manx Cat

92

92

96.1%

79.6%

93.4%

78.6%

87.1%

Persian Cat

89

89

98.8%

96%

99.4%

86.8%

97.4%

Pomeranian Dog

93

93

97.7%

100%

99.3%

85.7%

98.8%

Pug Dog

93

103

99.1%

100%

99.5%

87.4%

99.6%

Russian Blue Cat

92

92

97.1%

100%

99.5%

87.6%

98.5%

Shih Tzu Dog

94

94

98.2%

98.9%

99.4%

89.5%

98.6%

Siamese Cat

91

91

99.2%

100%

99.5%

86.2%

99.6%

Siberian Husky Dog

96

96

99.4%

100%

99.5%

89.7%

99.7%

รวม

1,864

1,881

97.2%

95.8%

98.4%

85.9%

96.5%

สรุปผลการประเมิน จากตารางที่ 6.1 พบว่าโมเดลมีค่าความแม่นยำ (Precision) เฉลี่ยอยู่ที่ 97.2%, ค่าความครอบคลุม (Recall) เฉลี่ยอยู่ที่ 95.8%, และค่า F-measure (F1-Score) เฉลี่ยอยู่ที่ 96.5% โดยมีค่าความแม่นยำเฉลี่ยรวม (mAP@0.5) เท่ากับ 98.4% และค่า mAP@0.5:0.95 เท่ากับ 85.9% ซึ่งถือว่าอยู่ในระดับที่ดีมากสำหรับงานด้านการจำแนกสายพันธุ์ของสุนัขและแมวจากภาพถ่ายจริง

การจำแนกช่วงวัย

เพื่อประเมินประสิทธิภาพของระบบการจำแนกช่วงวัยที่พัฒนาโดยใช้โมเดล MobileNetV2 ได้มีการทดสอบระบบ ด้วยชุดข้อมูลภาพ 632 ภาพ ครอบคลุมทั้ง 8 คลาส ได้แก่ Cat Adult, Cat Kitten, Cat Senior, Cat Young, Dog Adult, Dog Puppy, Dog Senior และ Dog Young โดยประเมินด้วยตัวชี้วัดมาตรฐาน ได้แก่ Precision, Recall และ F1-Score

ผลลัพธ์จากการประเมินประสิทธิภาพของระบบการจำแนกช่วงวัยที่พัฒนาโดยใช้โมเดล MobileNetv2 มีรายละเอียดดังใน ตารางที่ 6.2

ตารางที่ 6.2 ค่าประสิทธิภาพของระบบในแต่ละช่วงวัย

ช่วงวัย

Precision

Recall

F1-Score

จำนวนภาพ (Support)

Cat Adult

94%

84%

89%

79

Cat Kitten

95%

92%

94%

79

Cat Senior

92%

92%

92%

79

Cat Young

84%

96%

90%

79

Dog Adult

94%

95%

94%

79

Dog Puppy

94%

99%

96%

79

Dog Senior

99%

93%

95%

80

Dog Young

94%

94%

94%

80

เฉลี่ย (Macro Avg)

93%

93%

93%

632

สรุปผลการประเมิน จากตารางที่ 6.2 พบว่าโมเดลสามารถจำแนกช่วงวัยของสัตว์ได้อย่างมีประสิทธิภาพ โดยมีค่า Precision เฉลี่ย 0.93, Recall เฉลี่ย 0.93 และ F1-Score เฉลี่ย 0.93 ซึ่งแสดงให้เห็นว่าโมเดลมีความแม่นยำและเสถียรในการแยกแยะช่วงวัยของทั้งสุนัขและแมวในระดับที่ดีมาก

Last updated