📑[Note]Keras & Line Messaging API

Nonpavit Detbun 🔋🍺
3 min readMar 5, 2020

--

Image Classification & Flask 🚀 🎃

Project : Image Classification API

จากบทความที่แล้วเป็นการติดตั้งและทดสอบ line-bot-sdk-python เมื่อทดสอบเสร็จเรียบร้อยแล้ว ในบทความนี้เราจะมาลองทำ Image Classification API ด้วย Keras, Scikit-learn กันก่อน เพื่อเป็นพื้นฐานไปทำ Object Detection API ในบทความถัดไป

Knowledge Base

  • Python
  • OpenCV
  • Create Model (Keras, Scikit-learn, TensorFlow, PyTorch)
  • Line Messaging API

Create Model

เนื่องจากบทความนี้จะไม่สอนสร้างโมเดล (model)เพราะไม่รู้ว่าผู้อ่านมีความสนใจหรือความเชี่ยวชาญใน Deep Learning Frameworks ตัวใดและชนิดของ model หรือ Algorithm ที่เลือกใช้ให้เหมาะสมกับโปรเจคที่ทำเป็นแบบไหน เพื่อความสะดวกเราจะมาใช้ model ที่มีนักพัฒนาทำไว้แล้วด้วย Keras , Scikit-learn , OpenCV ตามตัวอย่างในบทความนี้

ถ้าผู้อ่านยังไม่มีพื้นฐานในด้านนี้อาจจะลองทำความเข้าใจบทความข้างต้นก่อน แต่ถ้าพร้อมแล้วเข้าไปโหลด Code มาลองได้เลย!!

จากนั้นมาลองทดสอบ model กัน โดย model นี้จะเป็นการทำ Image Classification เพื่อตรวจสอบว่าใช่ Santa หรือไม่? โดยใช้คำสั่งตามบทความได้เลย โดยไม่ต้องสั่ง train network ใหม่หรือผู้อ่านจะลองทดสอบการเรียนรู้หลายๆ model เทียบกันก็ได้

Integration

  • นำไฟล์ทั้งหมดมาไว้ในโปรเจคจากบทความที่แล้ว
  • import packages จาก test_network.py มาเพิ่มใน app.py ดังรูป
  • บทความนี้จะเน้นการไปที่การจัดการกับรูปภาพเป็นหลักดังนั้น เราจะข้ามไปที่ส่วน MessageEvent ที่เป็นรูปภาพ แก้ไขดังรูป
@handler.add(MessageEvent, message=(ImageMessage, VideoMessage, AudioMessage))
  • dist_path คือรูปภาพที่ผู้ใช้ส่งเข้ามา
  • ข้อควรระวัง load_model() รองรับไฟล์ .h5 , .model , .ckpt
    (model check point is not a frozen graph, not convenient for inference)
  • ขั้นตอนการทำงานจะคล้ายการทดสอบ model แต่เราจะเปลี่ยนจากที่แสดงรูปภาพผลลัพธ์มาเป็นสร้างไฟล์รูปภาพแล้วบันทึกไว้แทน จากนั้นจะทำการส่งรูปภาพที่บันทึกไว้คืนไปให้ผู้ใช้พร้อมผลการตรวจสอบ Image Classification

Result

Append

  • MessageEvent ส่วนอื่นๆจะขอข้ามไป โดยส่วนนี้จะเป็นการแนะนำการทำงานของ FileMessage โดยส่วนนี้จะทำงานโดย เมื่อมีไฟล์เข้ามาจะทำการบันทึกไฟล์เก็บไว้ ซึ่งเป็นข้อดีในด้าน Big Data เพื่อนำไปวิเคราะห์หรือนำไปทำ model ตัวใหม่ต่อไป ซึ่งอาจช่วยในการปรับปรุง business model ให้ดีขึ้นต่อไป
@handler.add(MessageEvent, message=FileMessage)

Code

นำค่า channel_secret และ channel_access_token มาใส่

👹เจอกันบบทความถัดไป 👉 บายยยยยย ✋

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Nonpavit Detbun 🔋🍺
Nonpavit Detbun 🔋🍺

Written by Nonpavit Detbun 🔋🍺

I’m Electrical Engineering. 📟 I have an interest in Web App, Mobile App, IoT and Microcontroller 🧐

Responses (1)

Write a response