VDO บทที่ 24 - สร้างแอพวิเคราะห์อารมณ์ ความรู้สึก (Emotion Recognizer Application)

คุณสมบัติของแอพ

ในบทนี้ จะสอนสร้างแอพวิเคราะห์อารมณ์ ความรู้สึก ด้วยคอมโพเนนต์ Emotion Recognizer โดยเราจะต้องอัพโหลดภาพจากกล้อง หรือจากในเครื่อง ส่งไปยังเว็บไซต์บริการของไมโครซอฟท์ เพื่อวิเคราะห์ จากนั้นทางเว็บก็จะส่งผลลัพธ์กลับมา เป็นค่าอารมณ์ทั้ง 8 และค่าคะแนน (0-1) ดังนี้
  • Fear (กลัว)
  • Anger (โกรธ)
  • Digust (ขยะแขยง รังเกียจ)
  • Happiness (มีความสุข)
  • Sadness (เศร้า)
  • Contempt (ดูถูก ดูหมิ่น ขายหน้า)
  • Surprise (ประหลาดใจ)
  • Neutral (กลางๆ เฉยๆ ไม่ได้มีอารมณ์อะไร)
จากนั้น จึงนำผลลัพธ์มาจัดแยกเป็น list แล้วแสดงผลเป็นกราฟแท่งที่สร้างจาก slider

คอมโพเนนต์ที่กล่าวถึง

  • Vertical Scroll Arrangement ในบทนี้ ใช้แสดงภาพถ่าย และกราฟผลวิเคราะห์ ดังนั้น เราจึงต้องให้ส่วนนี้ สามารถ scroll ขึ้นลงได้ เผื่อในกรณีที่ข้อมูลยาวเกินหน้าจอ
  • Emotion Recognizer เป็นคอมโพเนนต์ที่ทำหน้าที่เชื่อมต่อแอพของเรา กับเว็บบริการของไมโครซอฟท์ เพื่อวิเคราะห์อารมณ์ ความรู้สึกของคนในภาพ
  • Image ใช้สำหรับแสดงภาพที่ถ่าย หรือภาพที่เลือกจากเครื่องด้วย ImagePicker
  • Camera ใช้สำหรับถ่ายภาพ
  • ImagePicker ใช้เลือกภาพที่มีอยู่ในเครื่อง
  • Slider ใช้แสดงค่าคะแนนของอารมณ์ เป็นกราฟแท่ง

Properties ที่สำคัญ

เพื่อให้เราสามารถใช้ Slider แสดงค่าคะแนนของอารมณ์ เป็นกราฟแท่งได้ เราจะต้องกำหนด properties ต่อไปนี้
  • Thumb Enable ลบเครื่องหมายถูกหน้าช่องนี้ออก เพื่อซ่อนปุ่มเลื่อน
  • Min Value กำหนดให้เป็น 0
  • Max Value กำหนดให้เป็น 1 เพราะคะแนนมีค่าตั้งแต่ 0 -1

บล็อกที่สำคัญ

  • Post Image ใช้สำหรับส่งภาพไปยังเว็บไซต์ไมโครซอฟท์ เพื่อวิเคราะห์
  • Get Response เป็นอีเวนต์ที่เกิดขึ้นเมื่อได้ผลลัพธ์จากวิเคราะห์กลับมา โดยในอีเวนต์ จะให้ค่าตัวแปร 4 ค่า คือ
    • responseCode คือ สถานะของรีเควสที่ส่งไป หากรหัสที่ตอบกลับมา คือ 200 แสดงว่า OK หรือ ได้ผลวิเคราะห์กลับมาแล้ว
    • responseContent คือ ข้อมูลการวิเคราะห์อารมณ์ที่ทางไมโครซอฟท์ ส่งกลับมาให้
    • mostLikelyEmotion คือ อารมณ์ที่ทางเว็บวิเคราะห์มาแล้วว่าน่าจะใช่
    • mostLikelyEmotionScore คือ ค่าคะแนนของอารมณ์ mostLikelyEmotion
  • replace all text เราใช้บล็อกนี้ เพื่อค้นหาข้อความตามที่ระบุไว้ในช่อง segment แล้วแทนที่ด้วยข้อความในช่อง replacement ซึ่งในบทนี้นำมาประยุกต์ใช้เพื่อลบเครื่องหมายที่ไม่จำเป็นออก
  • split at any ใช้แยกข้อความออกเป็นส่วนๆ โดยใช้เครื่องหมายหลายๆ อย่างที่ระบุเป็น list ไว้ในช่อง at (list) เป็นสัญลักษณ์ในการแยกข้อความ

ความรู้อื่นๆ

  • รูปแบบของผลลัพธ์ที่ได้จากการวิเคราะห์
  • เทคนิคในการกำจัดข้อมูลที่ไม่ต้องการ และแยกข้อมูลที่ต้องการออกมาเป็น list
  • การใช้คำสั่ง replace all text ซ้อนกันหลายๆ ชั้น

Comments

Popular posts from this blog

บทที่ 4 - เรียนรู้เกี่ยวกับ User Interface

บทที่ 17 – สร้างแอพ Pomodoro

บทที่ 13 – รู้จักกับ Orientation sensor