You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
191 lines
27 KiB
191 lines
27 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "1c9e5fa8b7be726c75a97232b1e41c97",
|
|
"translation_date": "2025-08-27T21:37:00+00:00",
|
|
"source_file": "5-retail/lessons/2-check-stock-device/README.md",
|
|
"language_code": "th"
|
|
}
|
|
-->
|
|
# ตรวจสอบสต็อกจากอุปกรณ์ IoT
|
|
|
|

|
|
|
|
> สเก็ตโน้ตโดย [Nitya Narasimhan](https://github.com/nitya) คลิกที่ภาพเพื่อดูเวอร์ชันขนาดใหญ่
|
|
|
|
## แบบทดสอบก่อนเรียน
|
|
|
|
[แบบทดสอบก่อนเรียน](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/39)
|
|
|
|
## บทนำ
|
|
|
|
ในบทเรียนก่อนหน้านี้ คุณได้เรียนรู้เกี่ยวกับการใช้งานการตรวจจับวัตถุในธุรกิจค้าปลีก รวมถึงการฝึกตัวตรวจจับวัตถุเพื่อระบุสต็อกสินค้า ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีการใช้งานตัวตรวจจับวัตถุจากอุปกรณ์ IoT เพื่อการนับสต็อกสินค้า
|
|
|
|
ในบทเรียนนี้เราจะครอบคลุม:
|
|
|
|
* [การนับสต็อก](../../../../../5-retail/lessons/2-check-stock-device)
|
|
* [เรียกใช้งานตัวตรวจจับวัตถุจากอุปกรณ์ IoT](../../../../../5-retail/lessons/2-check-stock-device)
|
|
* [กรอบสี่เหลี่ยม (Bounding boxes)](../../../../../5-retail/lessons/2-check-stock-device)
|
|
* [ฝึกโมเดลใหม่](../../../../../5-retail/lessons/2-check-stock-device)
|
|
* [นับสต็อก](../../../../../5-retail/lessons/2-check-stock-device)
|
|
|
|
> 🗑 นี่เป็นบทเรียนสุดท้ายในโปรเจกต์นี้ ดังนั้นหลังจากที่คุณทำบทเรียนและงานที่มอบหมายเสร็จแล้ว อย่าลืมล้างข้อมูลบริการคลาวด์ของคุณ คุณจะต้องใช้บริการเหล่านี้เพื่อทำงานที่มอบหมายให้เสร็จ ดังนั้นอย่าลืมทำงานให้เสร็จก่อน
|
|
>
|
|
> ดูคำแนะนำใน [คู่มือการล้างข้อมูลโปรเจกต์](../../../clean-up.md) หากจำเป็นสำหรับคำแนะนำในการดำเนินการนี้
|
|
|
|
## การนับสต็อก
|
|
|
|
ตัวตรวจจับวัตถุสามารถใช้ในการตรวจสอบสต็อกสินค้าได้ ไม่ว่าจะเป็นการนับจำนวนสินค้าหรือการตรวจสอบว่าสินค้าอยู่ในตำแหน่งที่ควรจะอยู่ อุปกรณ์ IoT ที่มีกล้องสามารถติดตั้งได้ทั่วทั้งร้านเพื่อเฝ้าดูสต็อกสินค้า โดยเริ่มจากจุดที่สำคัญ เช่น พื้นที่ที่มีสินค้ามูลค่าสูงในจำนวนที่จำกัด
|
|
|
|
ตัวอย่างเช่น หากกล้องชี้ไปที่ชั้นวางที่สามารถวางกระป๋องซอสมะเขือเทศได้ 8 กระป๋อง และตัวตรวจจับวัตถุตรวจพบเพียง 7 กระป๋อง นั่นหมายความว่ามี 1 กระป๋องหายไปและต้องเติมสต็อก
|
|
|
|

|
|
|
|
ในภาพด้านบน ตัวตรวจจับวัตถุได้ตรวจพบกระป๋องซอสมะเขือเทศ 7 กระป๋องบนชั้นวางที่สามารถวางได้ 8 กระป๋อง ไม่เพียงแต่อุปกรณ์ IoT จะสามารถส่งการแจ้งเตือนเกี่ยวกับความจำเป็นในการเติมสต็อก แต่ยังสามารถระบุตำแหน่งของสินค้าที่หายไป ซึ่งเป็นข้อมูลสำคัญหากคุณใช้หุ่นยนต์ในการเติมสต็อกสินค้า
|
|
|
|
> 💁 ขึ้นอยู่กับร้านค้าและความนิยมของสินค้า การเติมสต็อกอาจไม่เกิดขึ้นหากสินค้าหายไปเพียง 1 ชิ้น คุณจะต้องสร้างอัลกอริทึมที่กำหนดเวลาการเติมสต็อกตามประเภทสินค้า ลูกค้า และเกณฑ์อื่น ๆ
|
|
|
|
✅ ในสถานการณ์อื่น ๆ คุณสามารถรวมการตรวจจับวัตถุและหุ่นยนต์ได้อย่างไร?
|
|
|
|
บางครั้งสินค้าที่ไม่ถูกต้องอาจอยู่บนชั้นวาง ซึ่งอาจเกิดจากความผิดพลาดของมนุษย์ในการเติมสต็อก หรือจากลูกค้าที่เปลี่ยนใจและวางสินค้ากลับในตำแหน่งที่ใกล้ที่สุด หากเป็นสินค้าที่ไม่เน่าเสีย เช่น อาหารกระป๋อง นี่อาจเป็นเรื่องน่ารำคาญ แต่หากเป็นสินค้าที่เน่าเสีย เช่น สินค้าที่ต้องแช่แข็งหรือแช่เย็น อาจหมายความว่าสินค้านั้นไม่สามารถขายได้อีกต่อไป เนื่องจากไม่สามารถบอกได้ว่าสินค้านั้นอยู่นอกตู้แช่แข็งนานแค่ไหน
|
|
|
|
การตรวจจับวัตถุสามารถใช้ในการตรวจจับสินค้าที่ไม่คาดคิด และแจ้งเตือนมนุษย์หรือหุ่นยนต์ให้คืนสินค้านั้นไปยังตำแหน่งที่ถูกต้องทันทีที่ตรวจพบ
|
|
|
|

|
|
|
|
ในภาพด้านบน กระป๋องข้าวโพดอ่อนถูกวางบนชั้นวางข้างซอสมะเขือเทศ ตัวตรวจจับวัตถุได้ตรวจพบสิ่งนี้ ทำให้อุปกรณ์ IoT สามารถแจ้งเตือนมนุษย์หรือหุ่นยนต์ให้คืนกระป๋องไปยังตำแหน่งที่ถูกต้อง
|
|
|
|
## เรียกใช้งานตัวตรวจจับวัตถุจากอุปกรณ์ IoT
|
|
|
|
ตัวตรวจจับวัตถุที่คุณฝึกในบทเรียนก่อนหน้านี้สามารถเรียกใช้งานจากอุปกรณ์ IoT ของคุณได้
|
|
|
|
### งาน - เผยแพร่การทำงานของตัวตรวจจับวัตถุ
|
|
|
|
การเผยแพร่การทำงานจะทำผ่านพอร์ทัล Custom Vision
|
|
|
|
1. เปิดพอร์ทัล Custom Vision ที่ [CustomVision.ai](https://customvision.ai) และลงชื่อเข้าใช้หากคุณยังไม่ได้เปิด จากนั้นเปิดโปรเจกต์ `stock-detector` ของคุณ
|
|
|
|
1. เลือกแท็บ **Performance** จากตัวเลือกด้านบน
|
|
|
|
1. เลือกการทำงานล่าสุดจากรายการ *Iterations* ด้านข้าง
|
|
|
|
1. กดปุ่ม **Publish** สำหรับการทำงานนั้น
|
|
|
|

|
|
|
|
1. ในหน้าต่าง *Publish Model* ตั้งค่าทรัพยากร *Prediction resource* เป็นทรัพยากร `stock-detector-prediction` ที่คุณสร้างในบทเรียนก่อนหน้า ตั้งชื่อเป็น `Iteration2` และกดปุ่ม **Publish**
|
|
|
|
1. เมื่อเผยแพร่เสร็จแล้ว กดปุ่ม **Prediction URL** ซึ่งจะแสดงรายละเอียดของ API การทำนาย และคุณจะต้องใช้ข้อมูลเหล่านี้เพื่อเรียกใช้งานโมเดลจากอุปกรณ์ IoT ของคุณ ส่วนล่างที่มีข้อความ *If you have an image file* คือข้อมูลที่คุณต้องการ คัดลอก URL ที่แสดง ซึ่งจะมีลักษณะดังนี้:
|
|
|
|
```output
|
|
https://<location>.api.cognitive.microsoft.com/customvision/v3.0/Prediction/<id>/detect/iterations/Iteration2/image
|
|
```
|
|
|
|
โดย `<location>` จะเป็นตำแหน่งที่คุณใช้เมื่อสร้างทรัพยากร Custom Vision และ `<id>` จะเป็นรหัสยาวที่ประกอบด้วยตัวอักษรและตัวเลข
|
|
|
|
นอกจากนี้ คัดลอกค่าของ *Prediction-Key* ซึ่งเป็นคีย์ที่ปลอดภัยที่คุณต้องส่งเมื่อเรียกใช้งานโมเดล มีเพียงแอปพลิเคชันที่ส่งคีย์นี้เท่านั้นที่สามารถใช้โมเดลได้ แอปพลิเคชันอื่น ๆ จะถูกปฏิเสธ
|
|
|
|

|
|
|
|
✅ เมื่อมีการเผยแพร่การทำงานใหม่ จะมีชื่อที่แตกต่างกัน คุณคิดว่าคุณจะเปลี่ยนการทำงานที่อุปกรณ์ IoT ใช้อย่างไร?
|
|
|
|
### งาน - เรียกใช้งานตัวตรวจจับวัตถุจากอุปกรณ์ IoT
|
|
|
|
ทำตามคำแนะนำที่เกี่ยวข้องด้านล่างเพื่อใช้งานตัวตรวจจับวัตถุจากอุปกรณ์ IoT ของคุณ:
|
|
|
|
* [Arduino - Wio Terminal](wio-terminal-object-detector.md)
|
|
* [คอมพิวเตอร์บอร์ดเดี่ยว - Raspberry Pi/อุปกรณ์เสมือน](single-board-computer-object-detector.md)
|
|
|
|
## กรอบสี่เหลี่ยม (Bounding boxes)
|
|
|
|
เมื่อคุณใช้งานตัวตรวจจับวัตถุ คุณจะได้รับผลลัพธ์ที่ไม่เพียงแค่แสดงวัตถุที่ตรวจพบพร้อมแท็กและความน่าจะเป็น แต่ยังรวมถึงกรอบสี่เหลี่ยมที่ระบุตำแหน่งที่ตัวตรวจจับวัตถุตรวจพบวัตถุด้วยความน่าจะเป็นที่กำหนด
|
|
|
|
> 💁 กรอบสี่เหลี่ยมคือกรอบที่กำหนดพื้นที่ที่มีวัตถุที่ตรวจพบ เป็นกรอบที่กำหนดขอบเขตของวัตถุ
|
|
|
|
ผลลัพธ์ของการทำนายในแท็บ **Predictions** ใน Custom Vision จะมีกรอบสี่เหลี่ยมที่วาดบนภาพที่ส่งไปเพื่อการทำนาย
|
|
|
|

|
|
|
|
ในภาพด้านบน มีการตรวจพบกระป๋องซอสมะเขือเทศ 4 กระป๋อง ในผลลัพธ์จะมีกรอบสีแดงที่วางทับสำหรับแต่ละวัตถุที่ตรวจพบในภาพ ซึ่งแสดงกรอบสี่เหลี่ยมสำหรับภาพนั้น
|
|
|
|
✅ เปิดการทำนายใน Custom Vision และตรวจสอบกรอบสี่เหลี่ยม
|
|
|
|
กรอบสี่เหลี่ยมถูกกำหนดด้วยค่าทั้งหมด 4 ค่า ได้แก่ top, left, height และ width ค่าต่าง ๆ นี้อยู่ในช่วง 0-1 ซึ่งแสดงตำแหน่งเป็นเปอร์เซ็นต์ของขนาดภาพ จุดเริ่มต้น (ตำแหน่ง 0,0) คือมุมบนซ้ายของภาพ ดังนั้นค่าด้านบนคือระยะห่างจากด้านบน และด้านล่างของกรอบสี่เหลี่ยมคือค่าด้านบนบวกกับความสูง
|
|
|
|

|
|
|
|
ภาพด้านบนมีความกว้าง 600 พิกเซลและความสูง 800 พิกเซล กรอบสี่เหลี่ยมเริ่มต้นที่ 320 พิกเซลลงมา ซึ่งให้ค่าด้านบนเป็น 0.4 (800 x 0.4 = 320) จากด้านซ้าย กรอบสี่เหลี่ยมเริ่มต้นที่ 240 พิกเซล ซึ่งให้ค่าด้านซ้ายเป็น 0.4 (600 x 0.4 = 240) ความสูงของกรอบสี่เหลี่ยมคือ 240 พิกเซล ซึ่งให้ค่าความสูงเป็น 0.3 (800 x 0.3 = 240) ความกว้างของกรอบสี่เหลี่ยมคือ 120 พิกเซล ซึ่งให้ค่าความกว้างเป็น 0.2 (600 x 0.2 = 120)
|
|
|
|
| ค่าพิกัด | ค่า |
|
|
| -------- | ---: |
|
|
| Top | 0.4 |
|
|
| Left | 0.4 |
|
|
| Height | 0.3 |
|
|
| Width | 0.2 |
|
|
|
|
การใช้ค่าร้อยละจาก 0-1 หมายความว่าไม่ว่าภาพจะถูกปรับขนาดเป็นเท่าใด กรอบสี่เหลี่ยมจะเริ่มต้นที่ 0.4 ของความยาวและความสูง และมีขนาด 0.3 ของความสูงและ 0.2 ของความกว้าง
|
|
|
|
คุณสามารถใช้กรอบสี่เหลี่ยมร่วมกับความน่าจะเป็นเพื่อประเมินความแม่นยำของการตรวจจับ ตัวอย่างเช่น ตัวตรวจจับวัตถุสามารถตรวจพบวัตถุหลายชิ้นที่ทับซ้อนกัน เช่น การตรวจพบกระป๋องหนึ่งกระป๋องอยู่ในอีกกระป๋องหนึ่ง โค้ดของคุณสามารถตรวจสอบกรอบสี่เหลี่ยม เข้าใจว่าสิ่งนี้เป็นไปไม่ได้ และละเว้นวัตถุใด ๆ ที่มีการทับซ้อนกันอย่างมีนัยสำคัญกับวัตถุอื่น ๆ
|
|
|
|

|
|
|
|
ในตัวอย่างด้านบน กรอบสี่เหลี่ยมหนึ่งแสดงกระป๋องซอสมะเขือเทศที่มีความน่าจะเป็น 78.3% กรอบสี่เหลี่ยมที่สองมีขนาดเล็กกว่าเล็กน้อย และอยู่ภายในกรอบแรกด้วยความน่าจะเป็น 64.3% โค้ดของคุณสามารถตรวจสอบกรอบสี่เหลี่ยม เห็นว่ามันทับซ้อนกันทั้งหมด และละเว้นความน่าจะเป็นที่ต่ำกว่า เนื่องจากไม่มีทางที่กระป๋องหนึ่งจะอยู่ในอีกกระป๋องหนึ่งได้
|
|
|
|
✅ คุณคิดว่าสถานการณ์ใดที่การตรวจพบวัตถุหนึ่งอยู่ในอีกวัตถุหนึ่งเป็นสิ่งที่ถูกต้อง?
|
|
|
|
## ฝึกโมเดลใหม่
|
|
|
|
เช่นเดียวกับตัวจำแนกภาพ คุณสามารถฝึกโมเดลของคุณใหม่โดยใช้ข้อมูลที่จับได้จากอุปกรณ์ IoT ของคุณ การใช้ข้อมูลจริงนี้จะช่วยให้โมเดลของคุณทำงานได้ดีเมื่อใช้งานจากอุปกรณ์ IoT
|
|
|
|
แตกต่างจากตัวจำแนกภาพ คุณไม่สามารถแท็กภาพได้โดยตรง แต่คุณต้องตรวจสอบกรอบสี่เหลี่ยมที่ตรวจพบโดยโมเดลทุกกรอบ หากกรอบนั้นอยู่รอบสิ่งที่ผิด คุณต้องลบออก หากอยู่ในตำแหน่งที่ผิด คุณต้องปรับแก้ไข
|
|
|
|
### งาน - ฝึกโมเดลใหม่
|
|
|
|
1. ตรวจสอบให้แน่ใจว่าคุณได้จับภาพหลากหลายรูปแบบโดยใช้อุปกรณ์ IoT ของคุณ
|
|
|
|
1. จากแท็บ **Predictions** เลือกภาพ คุณจะเห็นกรอบสีแดงที่แสดงกรอบสี่เหลี่ยมของวัตถุที่ตรวจพบ
|
|
|
|
1. ทำงานผ่านกรอบสี่เหลี่ยมแต่ละกรอบ เลือกกรอบนั้นก่อน และคุณจะเห็นป๊อปอัปที่แสดงแท็ก ใช้ที่จับที่มุมของกรอบสี่เหลี่ยมเพื่อปรับขนาดหากจำเป็น หากแท็กผิด ให้ลบออกด้วยปุ่ม **X** และเพิ่มแท็กที่ถูกต้อง หากกรอบสี่เหลี่ยมไม่ครอบคลุมวัตถุ ให้ลบออกด้วยปุ่มถังขยะ
|
|
|
|
1. ปิดตัวแก้ไขเมื่อเสร็จสิ้น และภาพจะย้ายจากแท็บ **Predictions** ไปยังแท็บ **Training Images** ทำซ้ำกระบวนการสำหรับการทำนายทั้งหมด
|
|
|
|
1. ใช้ปุ่ม **Train** เพื่อฝึกโมเดลของคุณใหม่ เมื่อฝึกเสร็จแล้ว เผยแพร่การทำงานใหม่และอัปเดตอุปกรณ์ IoT ของคุณให้ใช้ URL ของการทำงานใหม่
|
|
|
|
1. ปรับใช้โค้ดของคุณใหม่และทดสอบอุปกรณ์ IoT ของคุณ
|
|
|
|
## นับสต็อก
|
|
|
|
โดยใช้การผสมผสานระหว่างจำนวนวัตถุที่ตรวจพบและกรอบสี่เหลี่ยม คุณสามารถนับสต็อกสินค้าบนชั้นวางได้
|
|
|
|
### งาน - นับสต็อก
|
|
|
|
ทำตามคำแนะนำที่เกี่ยวข้องด้านล่างเพื่อการนับสต็อกโดยใช้ผลลัพธ์จากตัวตรวจจับวัตถุจากอุปกรณ์ IoT ของคุณ:
|
|
|
|
* [Arduino - Wio Terminal](wio-terminal-count-stock.md)
|
|
* [คอมพิวเตอร์บอร์ดเดี่ยว - Raspberry Pi/อุปกรณ์เสมือน](single-board-computer-count-stock.md)
|
|
|
|
---
|
|
|
|
## 🚀 ความท้าทาย
|
|
|
|
คุณสามารถตรวจจับสินค้าที่ไม่ถูกต้องได้หรือไม่? ฝึกโมเดลของคุณกับวัตถุหลายประเภท จากนั้นอัปเดตแอปของคุณเพื่อแจ้งเตือนคุณหากตรวจพบสินค้าที่ไม่ถูกต้อง
|
|
|
|
หรืออาจพัฒนาไปอีกขั้นโดยตรวจจับสินค้าที่วางอยู่ข้างกันบนชั้นวางเดียวกัน และดูว่ามีสิ่งใดถูกวางผิดตำแหน่งโดยการกำหนดขอบเขตบนกรอบสี่เหลี่ยม
|
|
|
|
## แบบทดสอบหลังเรียน
|
|
|
|
[แบบทดสอบหลังเรียน](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/40)
|
|
|
|
## ทบทวนและศึกษาด้วยตนเอง
|
|
|
|
* เรียนรู้เพิ่มเติมเกี่ยวกับการออกแบบระบบตรวจจับสต็อกสินค้าครบวงจรจาก [คู่มือรูปแบบการตรวจจับสินค้าหมดที่ขอบระบบบน Microsoft Docs](https://docs.microsoft.com/hybrid/app-solutions/pattern-out-of-stock-at-edge?WT.mc_id=academic-17441-jabenn)
|
|
* เรียนรู้วิธีอื่น ๆ ในการสร้างโซลูชันค้าปลีกครบวงจรโดยผสมผสานบริการ IoT และคลาวด์หลากหลายรูปแบบผ่านการรับชม [เบื้องหลังโซลูชันค้าปลีก - Hands On! วิดีโอบน YouTube](https://www.youtube.com/watch?v=m3Pc300x2Mw)
|
|
|
|
## งานที่มอบหมาย
|
|
|
|
[ใช้งานตัวตรวจจับวัตถุของคุณที่ขอบระบบ](assignment.md)
|
|
|
|
---
|
|
|
|
**ข้อจำกัดความรับผิดชอบ**:
|
|
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้ |