ระบบแจ้งเตือนการรับประทานยาอัตโนมัติจากภาพฉลากยา

บทคัดย่อ

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

ผลงาน

ภาพรวมของผลงาน

แอพลิเคชั่นที่พัฒนาจะทำงานผ่าน Line Bot โดยอย่างแรกผู้ใช้จะต้องเพิ่ม Bot เป็นเพื่อน จากนั้นให้ทำการส่งรูปฉลากยาที่ต้องการให้ Bot เตือนตามช่วงเวลาต่างๆ Bot จะทำการ OCR ฉลากยาเพื่อทำการดึงข้อมูลที่จำเป็นสำหรับการแจ้งเตือน เช่น ปริมาณที่ต้องรับประทานในแต่ละครั้ง ความถี่ในการรับประทาน และช่วงเวลาที่ต้องรับประทาน Bot ก็จะทำการถามผู้ใช้กลับเพื่อยืนยันข้อมูลที่อ่านได้อีกครั้ง เมื่อผู้ใช้ทำการยืนยันข้อมูล Bot ก็จะจดจำข้อมูลดังกล่าวและเตรียมการแจ้งเตือนรับประทานยาตามช่วงเวลาของข้อมูลจนกว่าผู้ใช้จะทำการยกเลิกการแจ้งเตือนเมื่อรับประทานจนหมด

การสร้างการแจ้งเตือน

การแจ้งเตือนรับประทานยา

องค์ประกอบของผลงาน

องค์ประกอบของผลงาน

องค์ประกอบของระบบประกอบไปด้วย 3 ส่วน ได้แก่

เครื่องมือและวิธีการที่ใช้

Line Bot API

ใช้ในการสร้าง Line Bot เพื่อเป็นช่องทางในการติดต่อกับผู้ใช้ โดย API ประกอบด้วย 2 API คือ

OpenCV

ใช้สำหรับการทำ Preprocessing รูปภาพก่อนนำไปทำการ OCR

Tesseract OCR Engine

ใช้ในการทำ OCR ดึงข้อมูลข้อความจากภาพฉลากยา
โดย Tesseract สามารถใช้หาตำแหน่งของตัวอักษรและบริเวณที่เป็นตัวอักษรได้ และสามารถตั้งค่า Page Segmentation Method (PSM) ได้หลายแบบ เช่น Fully automatic page segmentation, but no OSD (Orientation and Script Detection)., Treat the image as a single text line. เป็นต้น ซึ่งผลลัพธ์ที่ได้ก็จะแตกต่างกันออกไป ยิ่งระบุรายละเอียดของรูปภาพมาเท่าไร ความแม่นยำในการดึงขข้อความก็จะสูงขึ้น ดังนั้นหากทำการค้นหาตำแหน่งของแต่ละบรรทัดของข้อความ แล้วตัดมาเฉพาะส่วนของบรรทัดและทำการ OCR อีกครั้งก็จะได้ข้อความที่มีความแม่นยำสูงขึ้น

Parsing

เราทำการ String Matching รูปแบบข้อความคือ หากต้องการปริมาณที่รับประทาน จะหาข้อความที่ขึ้นต้นด้วย “ครั้งละ” โดยยอมให้มี Edit Distance ไม่เกิน 2 จากนั้นก็จะทำการอ่านตัวเลขหลังจากข้อความดังกล่าว ในทำนองเดียวกัน หากต้องการความถี่ในการรับประทาน จะหาข้อความดังนี้ “สัปดาห์ละ” เมื่อรับประทานรายอาทิตย์, “วันละ” เมื่อรับประทานรายวัน และ “ทุกๆ X ชั่วโมง” เมื่อรับประทานรายชั่วโมง และหากต้องการช่วงเวลาที่รับประทานจะหาข้อความ “ก่อนอาหาร”, “หลังอาหาร”, “ก่อนนอน”, “เช้า”, “กลางวัน” และ “เย็น” โดยคำว่า “เช้า” และ “เย็น” จะยอมให้มี Edit Distance ไม่เกิน 1 เนื่องจากข้อความค่อนข้างสั้น เมื่อข้อความใดข้อความหนึ่ง ก็จะถือว่าเป็นช่วงเวลาที่รับประทาน

Cron

ใช้ในการสร้างกิจกรรมหรืองาน และทำกิจกรรมหรืองานนั้นตามเวลาที่กำหนด

สมาชิก

  1. ปวิตร เอี่ยมวรวุฒิกุล (5831038121)
  2. พิริยพงษ์ เลาพงษ์สิต (5831045521)
  3. รักษิต รักษาสัตย์ (5831060921)