[Update] ตรวจจับวัตถุในรูปภาพด้วยโค้ด AI แค่ 10 บรรทัด สู่การตรวจจับวัตถุแบบเรียลไทม์ และการทำ segmentation | การเขียนโปรแกรม ai – POLLICELEE

การเขียนโปรแกรม ai: คุณกำลังดูกระทู้

ไม่มีวัตถุใด รอดพ้นสายตา AI ไปได้

คำกล่าวนี้ไม่ใช่เรื่องเกินจริงปัจจุบันเราสามารถเขียน AI

เพื่อตรวจจับวัตถุในรูปภาพ (Object detection) ได้ง่ายนิดเดียว
มีตัวอย่างโค้ด ให้ลองเขียนตามมีวีดีโอ มีบทความสอนเยอะแยะเกลื่อนเนต

มีโมเดล AI ที่ถูกเทรนมาเรียบร้อยแล้ว เอามาใช้ได้เลย

มีงานวิจัย paper ตีพิมพ์ โชว์ให้เห็นกันเยอะ

รวมทั้งงานวิจัยใหม่ๆ ที่จะอัพเกรดความสามารถ AI ที่รอวันตีพิมพ์

ซึ่งตอนนี้ AI แนวนี้ก็ถูกนำไปใช้งานจริงแล้วด้วยอย่างประเทศจีนที่ได้ติดกล้อง CCTV

ทำราวกับเป็น skynet เอาไว้ตรวจจับผู้คนในท้องถนนด้วย AI

เมื่อพูดถึงอัลกอริทึม AI ที่ตรวจจับวัตถุต่างๆ ในรูป ก็มีหลายตัว เช่น

R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet, SSD, YOLO เป็นต้น

Table of Contents

การตรวจจับวัตถุในรูปภาพด้วย AI เพียงจำนวน 10 บรรทัด

อันนี้จะพามาลองเขียน AI ง่ายๆ นิดเดียว

จากบทความต้นฉบับภาษาอังกฤษ object detection ภายใน 10 บรรทัด

ตัวโค้ดจะเป็น python นะครับ เพราะงานด้านนี้ (deep learning) นิยมใช้ Python มาเป็นอันดับหนึ่ง

ภาษาอื่นอาจเสียเปรียบเยอะหน่อย ตัวอย่างมีน้อย

1) ติดตั้ง python

หาอ่านได้ตามอินเตอร์เนต ไม่ยาก หรือจะอ่านจากตำรา “วิทยาการคำนวณ” ของเด็ก ม.1 ก็ได้ มีเขียนไว้

ลิงค์ดาวน์โหลด https://www.python.org/downloads/

แต่ผมเชียร์ให้ลง anaconda ดีกว่า มันเป็นแพลตฟอร์มสำหรับงาน Data science

และเหมาะกับการงาน AI สาย machine learning และ deep learning

ที่สำคัญเหมาะกับบทความนี้ด้วยขอบอกเลย

2) ติดตั้งมอดูลพวกนี้ให้หมด อย่าตกหล่นอันใดเด็ดขาดนะครับ

pip install tensorflow==1.15.0

pip install numpy

pip install scipy

pip install opencv-python

pip install pillow

pip install matplotlib

pip install h5py

pip install keras==2.1.5

สุดท้ายแล้วลงมอดูล imageai ซึ่งเป็นพระเอกในการเขียน AI ตรวจจับรูปภาพ (เฉพาะบทความนี้)

pip install imageai --upgrade

แล้วต้องติดตั้ง Microsoft Visual C++ 2015-2019 ด้วยครับ

สำหรับ imageai มันเป็นไลบรารี่ Deep Learning

สำหรับงาน Computer Vision (ทำให้คอมมีวิชั่นในการมองเห็น)

ช่วยทำให้เราเขียนโค้ดไม่กี่บรรทัดก็เสร็จแล้ว

3) ดาวน์โหลดโมเดล AI ชื่อ resnet50_coco_best_v2.0.1.h5

resnet50_coco_best_v2.0.1.h5 จะถูกเทรนมาเรียบร้อยแล้ว

ขนาดไฟล์จะใหญ่หน่อย 145 MB

ลิงค์ดาวน์โหลด

4) โค้ดก็ก็อปปี้ตามนี้ จากบทความต้นฉบับ

from imageai.Detection import ObjectDetection
import os

execution_path = os.getcwd()

detector = ObjectDetection()
detector.setModelTypeAsRetinaNet()
detector.setModelPath( os.path.join(execution_path , "resnet50_coco_best_v2.0.1.h5"))
detector.loadModel()
detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "image.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg"))

for eachObject in detections:
  print(eachObject["name"] , " : " , eachObject["percentage_probability"] )

หรือจะไปดาวน์โหลดโค้ดนี้ได้ที่นี้

ทริคเล็กน้อย ถ้าต้องการแสดงรูป “imagenew.jpg” ให้เด้งขึ้นมา ก็อาจเพิ่มโค้ดตรงนี้ก็ได้

from PIL import Image
image = Image.open('imagenew.jpg')
image.show()

เสร็จแล้วบันทึกไฟล์เป็นชื่อ FirstDetection.py

++++สำหรับโค้ดตัวอย่างนี้+++++

โค้ดตัวอย่างที่แสดงเขาใช้โมเดลที่เรียกว่า RetinaNet เท่านั้น

ลองเล่นดู รันได้ไม่ยาก ถ้าจะยากคงเป็นเรื่องทฤษีสำหรับผู้สนใจ

ก็หาอ่านจาก paper ต้นฉบับบโดยตรง หรือบทความออนไลน์ต่างๆ เพื่อความกระจ่าง

5) หาไฟล์รูปภาพมาทดสอบ

ในโค้ดจะระบุรูปภาพ ใช้เป็นอินพุตชื่อ “image.jpg”

ทั้งนี้ไฟล์ image.jpg

โมเดล resnet50_coco_best_v2.0.1.h5

และ FirstDetection.py

ทั้ง 3 ไฟล์จะอยู่ที่เดียวกันนะครับ

6) แล้วรันด้วยคำสั่ง

python FirstDetection.py

หรือจะรันผ่าน IDE ที่ถนัดก็ได้ครับ ไม่ต้องทำผ่านคอมมานไลน์โดยตรงแบบนี้

(วิธีรัน python ไม่ยากศึกษาได้ตามเนต หรือตามคู่มือเด็ก ม.1)

7) ผลลัพธ์จะได้ออกมาเป็นรูป imagenew.jpg

โดย AI จะตีกรอบในรูปว่ามีวัตถุอะไรได้บ้าง?

พร้อมบอกความน่าจะเป็น (เป็นตัวเลข) ว่าเป็นวัตถุอะไร

ถ้าไปดูที่คอนโซล จะบอกว่า

มันตรวจจับได้อะไรออกมา

ด้วยความน่าจะเป็นเท่าไร

(แต่ถ้ารูปขนาดใหญ่ ยิ่งเครื่องไม่แรงด้วยแล้ว ก็จะทำงานช้านะครับ)

traffic light : 50.23456811904907
traffic light : 60.74821352958679
person : 88.47966194152832
backpack : 87.8473162651062
handbag : 58.078956604003906
umbrella : 62.925803661346436
car : 82.95613527297974
person : 62.71200180053711
person : 75.42724013328552
person : 88.47867250442505
person : 94.76819634437561

.+++++++++++++++++++

สรุป จากผลลัพธ์ที่ได้

AI จะตรวจจับได้หลายสิ่ง ทั้งคน รถ กระเป๋า ไฟจราจร ร่ม ก็ทำได้

หรือจะพัฒนาต่อไปให้ตรวจับคนในรูปว่าเป็นใคร?

อย่างหลังจะเกินขอบเขตที่โค้ดทำได้

ต้องใช้อัลกอริทึมอื่นประกอบ

เช่น DeepFace ของเฟสบุ๊ค ที่ใช้ระบุตัวคนบนรูปภาพได้

การเขียนโปรแกรมตรวจจับวัตถุแบบเรียลไทม์

จากรูปภาพเดียวในหัวข้อก่อน ก็อาจพอเล่าเบื้องหลังการทำงานให้ทราบได้คร่าวๆ ดังนี้

โดยจะให้คุณมองว่า AI คือกล่องดำอะไรซักอย่าง เราสนใจแค่อินพุต กับเอาท์พุตอย่างเดียว

อย่าเพิ่งไปสนใจว่าข้างในมันเป็นอะไรในตอนนี้ (มันซับซ้อนเอาเรื่อง เพราะเป็น deep learning)

เมื่อเราป้อนรูปให้ AI ใช้ไหมครับ …เดียว AI จะให้คำตอบมาว่า

  • มีจำนวนวัตถุอะไรบ้าง เช่น 3 อัน 10 อัน ก็ว่ากันไป
  • เป็นวัตถุอะไร ซึ่งจะให้ค่าออกมาเป็นตัวเลข เช่น เลข 1 หมายถึง ไก่ เลข 10 หมายถึง รถยนต์
  • วัตถุนั้นอยู่ในตำแหน่งอะไร (boxes)
  • ด้วยความน่าจะเป็นอะไร ปกตจะเป็นเลข 0-1  ถ้า 0 คือไม่ใช่เลย ถ้าเป็น 1 คือเป็นวัตถุนั้น 100%

สำหรับค่า boxes ออกเสียงว่า บ็อกๆๆๆ ไม่ใช่เสียงหมาเห่านะ แต่มันคือค่ากล่อง

โดยจะขออธิบายเพิมเติม ก็อย่างรูปที่เห็นข้างล่าง

มันเป็นตัวเลข 4 ตัว เช่น พิกัด x, y, สูง (Height) , กว้าง (Width) …ซึ่ง AI แต่ละตัวอาจไม่เหมือนกัน

ค่าพวกนี้นี่แหละ ที่จะให้เรานำไปใช้ตีกรอบล้อมวัตถุอีกที

ถึงตรงนี้พอนึกภาพออกนะ ข้อมูลพวกนี้ที่เราได้จาก AI

เราจะนำมาแปลความหมาย

นำมาวาดใส่กรอบล้อมวัตถุ จะให้สีแดง สีเขียว

แล้วบอกว่าเป็นไก่ เป็นนก อะไรทำนองนี้ พอนึกภาพออกไหม

แต่ทว่าไลบรารี่ imageai ที่นำมาแสดงให้ดู มันทำให้เราแล้ว จึงซ้อนความยุ่งนี้ลงไป

คำถาม

แล้วถ้าจะตรววจับวัตถุแบบเรียลไทม์ต้องทำอย่างไร

คำตอบ ง่ายนิดเดียว จังหวะที่เราอ่านภาพจากกล้องเว็บแคม เราก็อ่านทีละรูปซิ

แล้วส่งรูปไปให้ AI ประมวล เมื่อ AI ตอบกลับ เราก็เอาข้อมูลที่ได้มาตีกรอบใส่ในรูปอีกที

แล้วนำรูปผลลัพธ์นี้ ประกอบกับคืนเป็นภาพเคลื่อนไหวต่อไป

แต่ถ้าเรามาใช้โมเดล “resnet50_coco” ข้างต้น ตรววจับวัตถุแบบเรียลไทม์ มันจะช้าครับ

เลยต้องเปลี่ยนโมเดลด่วน

ในที่นี้ผมเลือกใช้โมเดล “ssd_mobilenet_v1_coco”

เพราะทำงานได้เร็วกว่าเยอะ ทว่าความผิดพลาดยังเยอะอยู่นะครับ

แต่ถ้าเอามาเป็นกรณีศึกษา ผมว่าน่าลองเล่นนะ

ดูตัวอย่างคลิปที่ผมทำเล่นได้ครับ

เป็น AI อย่างง่ายสุด เขียนง่ายมากครับ

มันทำงานได้เร็ว ใช้ CPU ก็พอ

ต้องบอก อย่างนี้นะครับ โมเดลตรววจับวัตถุมีหลายตัวอือซ่าเลย

มีงานวิจัย มีผู้ผลิตสร้างโมเดล AI ขึ้นมาหลายตัว ดูได้ตามลิงค์ข้างล่าง

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

ประสิทธิภาพและข้อดีข้อเสีย ก็แตกต่างกัน

ส่วนใหญ่ก็หนีไม่พ้นเทคนิค deep learning

ถ้าใครสนใจอยากทำแบบเรียลไทม์ ก็ลองเล่นดูตามนี้ครับ เป็นภาษา python เช่นเคย

https://github.com/tensorflow/models/blob/master/research/object_detection/object_detection_tutorial.ipynb

แต่ถ้าคิดจะเล่นยุ่งยากพอสมควร เพราะต้องติดตั้ง protocol-buffers และใช้งานตอนติดตั้งโปรเจค ด้วยเหตุนี้ผมจึงหาวิธีติดตั้งง่าย (นี้คิดว่าง่ายสุดแหละครับ)

การใช้โปรเจคตรวจจับวัตถุแบบเรียลไทม์

1) ติดตั้ง python
ก็ทำตามหัวข้อก่อนหน้านี้ทุกประการเลยครับ (ที่ตรวจจับวัตถุจากรูปภาพอันเดียว)

แต่มอดูลที่สำคัญและจำเป็นจริงๆ ที่ต้องติดตั้ง ก็ 2 ตัวนี้ครับ

pip install tensorflow

pip install opencv-python

2) ดาวน์โหลดโค้ดเป็น zip จากโปรเจคนี้

https://github.com/am-sirdaniel/Real-Time-Object-detection-API

ดาวน์โหลดเสร็จก็แตกไฟล์ด้วยครับ

ถ้าใครใช้ git เป็น ก็ใช้คำสั่งบนคอมมานไลน์

git clone https://github.com/am-sirdaniel/Real-Time-Object-detection-API.git

เดี่ยวโค้ดของโปรเจคจะดาวน์โหลดมาอยู่ที่เครื่องเรา (อย่าลืมต่อเน็ตด้วย)

3) ถึงตรงนี้ควรเห็นโฟลเดอร์ Real-Time-Object-detection-API จากนั้นก็ cd ผ่านทางคอมมานไลน์ เข้าไป

cd Real-Time-Object-detection-API/object_detection

4) จากข้อ 3 ควรจะเห็นไฟล์ object_detection_webcam.py อยู่ในไดเรคเทอรี่

และเปิดไฟล์ object_detection_webcam.py ด้วย editor ธรรมดา  เช่น notepad หรือจะเป็น IDE ก็ได้ครับ

แล้วทำการค้นหาประโยคนี้

get_ipython().run_line_magic('matplotlib', 'inline')

จากนั้นทำการคอมเมนต์ บรรทัดข้างล่างไม่ได้ใช้ครับ

(ในช่วงที่ผมเล่นโปรเจคนี้ ตัวอย่างเขาแถมบั๊กบรรทัดนี้มาฝากครับ เลยต้องเอาออก)

#get_ipython().run_line_magic('matplotlib', 'inline')

5)รันคำสั่งต่อไปนี้ เดี่ยวกล้องเว็บแคมในคอมเรา ก็จะเปิดขึ้นมาเอง จากนั้น  AI ก็ดักจับทุกสิ่งอย่างให้เรา

python object_detection_webcam.py

หรือจะรันผ่าน IDE ที่ถนัดก็ได้ครับ ไม่ต้องทำผ่านคอมมานไลน์โดยตรงแบบนี้

หมายเหตุ เราสามารถปรับขนาดหน้าจอเว็บแคมที่โชว์ได้

โดยเข้าไปหาโค้ดชุดนี้

cv2.imshow('image',cv2.resize(image_np,(1280,960)))

แล้วปรับขนาดหน้าจอเว็บแคม อย่างของผมปรับเป็นขนาด 640 x 480 ก็เข้าไปแก้โค้ดตามนี้

cv2.imshow('image',cv2.resize(image_np,(640,480)))

การใช้โปรเจคตรวจจับวัตถุแบบเรียลไทม์ อีกทางเลือกหนึ่ง

ในหัวข้อนี้จะกล่าวถึงการใช้โปรเจคตรวจจับวัตถุแบบเรียลไทม์อีกเวอร์ชั่น(เป็นทางเลือก) อันนี้จะเป็นตัวต้นฉบับจริง ซึ่งยุ่งยากกว่าก่อนหน้านี้ (ติดตั้งบน linux)

วิธีการติดตั้งโปรเจค
1) ติดตั้ง python
ก็ทำตามหัวข้อก่อนหน้านี้ทุกประการเลยครับ (ที่ตรวจจับวัตถุจากรูปภาพอันเดียว)

แต่มอดูลที่สำคัญและจำเป็นจริงๆ ที่ต้องติดตั้ง ก็ 2 ตัวนี้ครับ

pip install tensorflow

pip install opencv-python

2) ดาวน์โหลดโค้ดเป็น zip จากโปรเจคนี้

https://github.com/tensorflow/models

ดาวน์โหลดเสร็จก็แตกไฟล์ด้วยครับ

ถ้าใครใช้ git เป็น ก็ใช้คำสั่งบนคอมมานไลน์

git clone https://github.com/tensorflow/models.git

เดี่ยวโค้ดของโปรเจคจะดาวน์โหลดมาอยู่ที่เครื่องเรา (อย่าลืมต่อเน็ตด้วย) ซึ่งควรจะเห็นโฟลเดอร์ models นะ

3) ดาวน์โหลด protobuf
https://github.com/google/protobuf/releases/download/v3.0.0/protoc-3.0.0-linux-x86_64.zip

แตก zip ไปที่ bin

unzip -o protobuf.zip

ซึ่งจากนี้ควรจะใช้คำสั่ง protoc ได้

4) ให้ cd ไปที่โฟลเดอร์ models/research/ ของโปรเจค แล้วรันคำสั่ง

protoc object_detection/protos/*.proto --python_out=.

เมื่อดูในโฟลเดอร์ models/research/object_detection/protos ควรจะเห็นไฟล์ .py ต่างๆ ถูกสร้างขึ้นมา

5) เวลาจะใช้งานก็ให้ไปที่โฟลเดอร์ models/research/object_detection
ซึ่งจะเห็นไฟล์ตัวอย่าง object_detection_tutorial.ipynb

การเปลี่ยนโมเดล AI

สำหรับโมเดล AI ที่ดักจับวัตถุแบบเรียลไทม์ผ่านกล้องเว็บแคม
จากโค้ดตัวอย่างที่สาธิต เขาจะใช้โมเดลที่ชื่อ “ssd_mobilenet_v1_coco”

ถ้าค้นหาในโค้ดควรเห็นบรรทัดนี้ครับ

MODEL_NAME = 'ssd_mobilenet_v1_coco_2017_11_17'

ซึ่งมันจะทำงานเร็ว บน CPU ก็ทำได้สบายๆ (แต่เครื่องควรแรงจะดีมากครับ)

แล้วถ้าต้องการเปลี่ยนโมเดล AI ก็ลองเข้าไปดูที่ลิงนี้ detection model zoo ตามที่กล่าวมาข้างต้น ก็จะเห็นตารางตามรูปข้างล่าง

ซึ่งวิธีเลือก AI ให้ดูว่ามันบอกสปีดความเร็วตอนทำงานว่าช้าหรือเร็วเท่าไร (หน่วยเป็น ms)

พร้อมดูค่า COCO mAP เพื่อเปรียบเทียบ ถ้าค่านี้สูงแสดงว่าทำงานดีเยี่ยมมากกว่า

อย่างของผม ลองเปลี่ยนไปใช้โมเดลชื่อ “ssd_mobilenet_v2_coco” โดยคลิก Copy link address ก็จะเห็น url

http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v2_coco_2018_03_29.tar.gz

ผมแค่ตัดเหลือคำว่า  ssd_mobilenet_v2_coco_2018_03_29 แล้วเอาไปแปะแก้ไขในโค้ด

MODEL_NAME = 'ssd_mobilenet_v2_coco_2018_03_29'

จากนั้นก็รันโค้ด python object_detection_webcam.py อีกครั้งหนึ่ง

สำหรับขั้นตอนนี้อย่าลืมต่อเนตด้วยนะ เพราะโค้ดจะไปดาวน์โหลดโมเดล AI จากข้างนอกเข้ามาครับ

  • สังเกตให้ดีควรเห็นไฟล์ ssd_mobilenet_v2_coco_2018_03_29.tar.gz
  • พร้อมทั้งโฟลเดอร์ ssd_mobilenet_v2_coco_2018_03_29 ซึ่งถูกแตกออกมาโดยอัตโนมัติ

โดยไฟล์ทั้งหมดจะอยู่ใต้โฟลเดอร์ Real-Time-Object-detection-API/object_detection อีกที
หรือ models/research/object_detection

จากนั้นก็ลองเล่นผ่านกล้องเว็บแคมดูได้เลย

*** แต่ทั้งนี้ใช้ว่าจะทำได้ทุกโมเดลที่กล่าวมานะครับ บางอันก็ทำไม่ได้

การทำ Segmentation

จากที่เล่ามาข้างต้น Object detection  สามารถระบุตำแหน่งของวัตถุด้วยการใส่ box ตีกรอบล้อมวัตถุ

แต่โมเดล AI บางตัวสามารถให้ค่าตัวเลขเป็น masks  เพิ่มเติมนอกจากตัวเลขค่า boxes
โดย mask จะเป็นชุดตัวเลขที่จะนำไปไฮไฮท์วัตถุนั้นๆ ในรูปได้ ดังที่เห็นในรูปข้างล่าง

ค่า mask ประโยชน์เอาไว้ทำเรื่อง Segmentation  เพื่อแยกวัตถุในรูปออกจากรูปหลักได้

ประโยชน์เช่น เอาไว้ลบรูป background ออกไป

แนวคิดเรื่อง mask

จะขอยกรูปภาพข้างล่าง ที่เป็นสีน้ำเงิน

ซึ่งปกติภาพๆ ภาพหนึ่งจะประกอบด้วยพิกเซล (จุดสี)

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

ซึ่ง true กับ false จะใช้เป็นค่าอย่างอื่นก็ได้เช่น 1,0 เป็นต้น

วิธีการเขียนโค้ดไม่ยาก (ค้างไว้เดี่ยวมาเขียนต่อ เลยให้ดูคลิปตัวอย่างการทำงานพลางๆ ก่อน)

สรุปในมุมโปรแกรมเมอร์

ถามว่าเขียนยากไม่ ก็ตอบไม่ยากเท่าไร
เพราะโมเดล AI พวกนี้ถูกเทรนออกมาเรียบร้อยแล้ว

เราแค่รู้จักส่งค่าอินพุต และนำเอาท์พุตที่ได้มาแปลความหมายอีกที
จะตีกรอบล้อมรูปภาพ บอกว่าเป็นอะไร
หรือจะประยุกต์ทำอย่างอื่นก็ได้เยอะครับ
แล้วแต่จะพลิกแพลง แล้วแต่ไอเดียเราครับ
(ความยากคือตอนสร้างและสอนให้ AI ฉลาด)

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

ขอให้โชคดีครับ กับโลกยุค AI
เรียนรู้ไว้ไม่เสียหาย เพราะเราคงปฏิเสธมันไม่ได้
ยิ่ง AI มีเขียนไว้ในยุทธศาสตร์ 20 ปี ของบ้านเรา เชียวน๊า

เครดิต

เขียนโดยแอดมินโฮ โอน้อยออก

AI ไม่ยาก เล่ม 1 เข้าใจได้ด้วยเลขม. ปลาย (เนื้อหาภาษาไทย)

[Update] เขียนโปรแกรมหุ่นยนต์ง่ายๆ ที่ไหนก็ทำได้ | การเขียนโปรแกรม ai – POLLICELEE

หากน้องๆ อยากจะฝึกเขียนโปรแกรมหุ่นยนต์กันดูบ้าง แต่จริงๆ แล้วไม่รู้ว่ายากไหม และจะเริ่มต้นจากตรงไหนดี แล้วหากฝึกเขียนโปรแกรมหุ่นยนต์แต่ไม่มีหุ่นยนต์ล่ะจะเขียนโปรแกรมได้หรือเปล่า? คำถามนี้มีคำตอบค่ะ เพราะวันนี้เรามีโปรแกรมการเขียนโปรแกรมหุ่นยนต์แบบง่ายๆ ที่ไม่ต้องใช้การประกอบหุ่นยนต์มาฝาก อยากรู้กันแล้วใช่ไหมล่ะคะว่าเป็นยังไง ตามมาดูเลยค่ะ
สำหรับเว็บไซต์ที่จะมาแนะนำในวันนี้มีชื่อว่า https://www.microsoft.com/th-th/makecode ในที่นี้จะขออนุญาตเรียกว่าหน้า makecode นะคะ ในหน้าของส่วน makecode นี้น้องๆ จะสามารถฝึกได้หลากหลายภาษา และในนี้มีบทเรียนให้เราได้เรียนอีกด้วยค่ะ


โดยน้องๆ สามารถฝึกเริ่มเขียนโปรแกรมได้ดังนี้ค่ะ
1. micro:bit
2. Circuit Playground Express
3. Minecraft
4. LEGO MINDSTORMS Education EV3
5. Cue
6. Arcade
7. Chibi Chip
ได้ทราบกันอย่างคร่าวๆแล้วนะคะ ว่า หน้าของ MakeCode มีอะไรบ้าง ถ้าน้องๆ อยากเริ่มเขียนโปรแกรมก็สามารถเข้าไปที่เริ่มเข้าบทเรียนได้เลยค่ะ โดยคลิกคำว่า เริ่มเขียนโค้ดด้วยภาษาตามที่น้องๆชอบได้เลยค่ะ
สำหรับในบทความนี้จะพาน้องๆ ไปเขียนโปรแกรมหุ่นยนต์แบบไม่ต้องใช้หุ่นยนต์ค่ะ แต่ผลลัพธ์ที่ได้ออกมานั้นเหมือนกับที่เรามีหุ่นยนต์ตัวหนึ่งเลยค่ะนั้นคือ โปรแกรม LEGO MINDSTORMS Education EV3 นั่นเองค่ะ

หรือน้องๆสามารถเข้ามาได้ที่ลิงค์นี้เลยค่ะ https://makecode.mindstorms.com/

ในส่วนแรกหลังจากที่น้องๆ ได้เข้ามาหน้า Make Code จะได้เจอกับหน้าของ My Project โดยหน้านี้สามารถให้น้องๆ สร้างชิ้นงานหรือ Project ด้วยตนเอง

โดยในหน้าของบทเรียน LEGO MINDSTORMS จะสามารถเรียนแบบลำดับขั้น และมีแนวทางในการเรียนว่า เราควรจะต้องเรียนรู้ในเรื่องอะไรบ้างของโปรแกรมหุ่นยนต์ Lego ค่ะ และทำให้น้องๆเขียนโปรแกรมสำหรับหุ่นยนต์ได้รวดเร็วขึ้นค่ะ
โดยบทเรียนแรกที่น้องๆ ได้เห็น คือบทเรียนของ
1. บทเรียนของ Getting Started
ในบทเรียนของ Getting Started เป็นการเตรียมตัวในการเรียนว่าเราจะต้องทำอะไรได้บ้างในโปรแกรมหุ่นยนต์ส่วนนี้ โดยมีบทเรียนย่อยดังนี้
     1.1 Prepare
     1.2 Try
     1.3 Use
2.บทเรียนของ Brick Tutorials
ในบทเรียนนี้จะมีบทเรียนย่อยคือ
     2.1 Wake Up
     2.2 Make an Animation
     2.3 What Animal Am I ?
     2.4 Music Brick
3. บทเรียนของ Motor Tutorials
ในบทเรียนนี้จะมีบทเรียนย่อยในการเรียนรู้เกี่ยวกับเรื่องของ Motor ดังนี้
     3.1 Run Motors
     3.2 Spin Turn
     3.3 Pivot Turn
     3.4 Smooth Turn
     3.5 Tank ZigZag
     3.6 Coast or Brake

4. บทเรียน Touch Sensor Tutorials
ในบทเรียนนี้ จะมีบทเรียนย่อยในการเรียนรู้เกี่ยวกับเรื่องของ Sensor ดังนี้
     4.1 What Color
     4.2 Line Following
     4.3 Red Light Green
     4.4 Reflected Light Measure
     4.5 Reflected Light Calibration
5. บทเรียน Infrared Sensor Tutorials
ในบทเรียนนี้ จะมีบทเรียนย่อยในการเรียนรู้เกี่ยวกับเรื่องของ Infrared Sensor ดังนี้
     5.1 Object Near
     5.2 Security Alert
6. บทเรียน Design Engineering
ในบทเรียนนี้จะกล่าวถึงบทเรียนย่อยดังนี้
     6.1 Make it Move Without Wheels
     6.2 Make it Smarter and Faster
     6.3 Make a System that Communicates
7. บทเรียน Coding
ในบทเรียนนี้จะกล่าวถึงบทเรียนย่อยดังนี้
     7.1 Autonomous Parking
     7.2 Object Detection
     7.3 Line Detection
8. บทเรียน Maker
ในบทเรียนนี้จะกล่าวถึงบทเรียนย่อยดังนี้
     8.1 Make A Sound Machine
     8.2 Make A Security Gadget
9. บทเรียนหัวข้อ Videos
     ในบทเรียนจะมีวีดีโอที่แนะนำการเรียนบทเรียนทั้งหมด โดยแสดงเป็นคลิปวีดีโอเพื่อให้น้องๆ สามารถเข้าใจได้ง่ายขึ้นและทำให้การเรียนรู้ไม่สะดุด


จากที่กล่าวไปเบื้องต้นก็คือ บทเรียนทั้งหมดของบทเรียนเขียนโปรแกรมของ makecode ในส่วน Lego ของหุ่นยนต์ และเพื่อที่จะทำให้น้องๆได้เข้าใจและคล่องตัวในการเขียนโปรแกรมหุ่นยนต์มากขึ้น ในส่วนต่อไปจะแนะนำเกี่ยวกับการเขียนโปรแกรม และในส่วนนี้เราได้เข้ามายังหน้าของ Makecode Lego Mindstorm หรือน้องๆสามารถเข้าไปที่
URL นี้ได้ https://makecode.mindstorms.com

ในส่วนหน้า ของ Makecode Mindstorms
ในส่วนที่ 1 จะเป็นส่วนไว้ใช้สำหรับ Run Program ของหุ่นยนต์ เมื่อเราเขียนภาษา Block หรือ ภาษา JavaScript เรียบร้อยแล้ว
ในส่วนที่ 2 จะเป็นส่วนของ Menu ที่สามารถเรียกใช้ฟังก์ชันของ Brick,Sensors,Motors,Music,Loops,Logic,Variables,Math
ในส่วนของ Advance จะมีแยกย่อยออกมานั่นก็คือ Menu ของ Functions,Arrays,Text,Console,Control,Extensions

ในส่วนที่ 3 จะเป็นส่วนของ พื้นที่ในการลาก ฟังก์ชันของ Block เข้ามาไว้ในพื้นที่ว่าง หรือ จะเขียนโปรแกรมภาษา JavaScript ก็ได้ ทุกครั้งจะมี ฟังก์ชันของ on start และ forever ปรากฏในช่วงก่อนการเริ่มต้นเสมอ
ในส่วนที่ 4 เป็น Menu ของ Blocks และ JavaScript โดยเป็นส่วนที่สามารถสลับได้ว่าน้องๆจะใช้โหมดใดก็ได้เพราะสามารถดูผลลัพธ์ได้ทั้ง 2 ช่องทางอยู่ที่น้องๆจะถนัดโปรแกรมใดก่อน
ในส่วนที่ 5 เป็นส่วน Download สำหรับลงโปรแกรมบนหุ่นยนต์ แต่ถ้าน้องๆไม่มีหุ่นยนต์ก็ไม่ต้องกังวล เพราะผลลัพธ์ที่น้องๆเขียนแล้ว Download ลงหุ่นยนต์ก็มีความคล้ายคลึงกันทำให้น้องๆสามารถฝึกปรือในการเขียนโปรแกรมก่อนลงโปรแกรมหุ่นยนต์ก็ได้ ซึ่งถ้าช่วงแรกน้องยังเขียนโปรแกรมไม่แข็งแรง น้องๆก็สามารถลาก Block มาวางก่อนแล้ว ถ้าจะดูในโหมด JavaScript ว่าเขียนอย่างไร ก็ย่อมทำได้ น้องๆก็สามารถทำได้ 2 โหมดเช่น หรือถ้าน้องต้องการที่จะเขียนในโหมดของ JavaScript แล้วกลับมาดูผลลัพธ์ว่า Block จะออกมาเป็นรูปร่างอย่างไรก็ทำได้เช่นกัน
ในส่วนที่ 6 เป็นส่วนตั้งชื่อโปรแกรม ก่อนที่เราจะ Download โปรแกรม น้องๆต้องทำการตั้งชื่อก่อน ไม่เช่นนั้น โปรแกรมจะ Download ลงไปโดยใช้ชื่อว่า Untitled

หลังจากที่น้องๆรู้จักส่วนประกอบของการเขียนโปรแกรมแล้วเรามาเขียนโปรแกรมง่ายๆกันดีกว่านะคะ 
โชว์หน้าตาน่ารักๆ บนหุ่นยนต์ ทำอย่างไร
1. เราไปที่หน้า Brick จะเห็นว่ามีฟังก์ชันต่างๆ ขึ้นมาอย่างมากมาย

2. ให้น้องๆ เลือกไปที่ show image และคลิกลากแล้วมาวางไว้บน tab สีเขียว ของ on start

3. หลังจากที่น้องๆวาง Block นี้บน tab สีเขียว ของ on start แล้ว หน้าแบบจำลองของหุ่นยนต์ จะเกิดหน้าตายิ้มแย้มขึ้นมา

4. หากน้องๆ ต้องการที่จะเรียนรู้ภาษา JavaScript ไปด้วย น้องๆก็กดที่ Tab ภาษา JavaScript ดังภาพน้องๆก็จะเรียนรู้เพิ่มเติมว่าภาษา JavaScript จะเขียนเป็นรูปแบบใดบ้าง ซึ่งเราสามารถค่อยๆแกะโค้ดโปรแกรมแล้วลองเขียนได้ เพราะ Simulator หรือแบบจำลองก็จะเปลี่ยนรูปไปถ้าน้องเขียนถูก
5. หากน้องๆต้องการ Upload ลงบนหุ่นยนต์เราก็สามารถทำได้โดยการกด Download ก็จะได้ดังภาพ แต่อย่าลืมตั้งชื่อก่อนนะคะ โปรแกรมก็จะ ลงมาที่เครื่องของเราและให้เรากด Save และจะมีการแนะนำว่า
     5.1 เราต้องเชื่อมต่อ USBกับเครื่องของเราไปยัง Case ของ EV3
     5.2 เราต้อง ย้ายไฟล์ที่นามสกุล .uf2 ไปยัง case ev3
ถ้าเราเข้าใจแล้ว ก็ให้กดคำว่า I got it ก็เป็นอันเรียบร้อย

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

ขอบคุณข้อมูลจาก
ทิพาพร อินทร์ตลาดชุม

Comments

comments


Most Popular Programming Languages 1965 – 2019


Timeline of the most popular programming languages since 1965 to 2019. So far the most intense ranking I’ve ever done 🙂 For recent years I’ve used multiple programming languages popularity indexes with adjustments thanks to the data from GitHub repositories access frequency. For historical ranking I’ve used aggregation of multiple national surveys to establish several data points, plus a world wide publications rate of occurrence. In this ranking popularity is defined by percentage of programmers with either proficiency in specific language or currently learning/mastering one. Y axis a relative value to define ranking popularity between all other items.
Have fun!

I am a first year PhD student, data geek and I love visualizations.
As always your feedback is welcome.
Please support my channel. It can buy me another cup of coffee 🙂
Data source: aggregated statistics from several indexes, GitHub repository access, multiple surveys

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

Most Popular Programming Languages 1965 - 2019

สอน A.I. ให้เดิน


เมื่อเกือบๆ ปี 2ปี มานี้ คำว่า A.I. มันก็เป็นที่รู้จักขึ้นมาก วันนี้เลยอยากมาลองทำบ้าง ซึ่งคลิปนี้ที่ออกมาได้เนี่ย เกิดจากการไปดูในช่องต่างประเทศอย่าง Code Bullet และ Dani แล้วเรารู้สึกว่าเราน่าจะสอน A.I. ให้เดินได้ดีกว่าสิ 555+
(ที่บอกว่าน่าจะได้ดีกว่า เพราะ เคยมีประสบการณ์ทำพวก Deep learning หลายครั้ง รวมถึง Deep Reinforcement learning ด้วยจึงคิดว่าแค่นี้น่าจะไหวแหล่ะ)
เครื่องมือที่ใช้ สอน A.I. ให้เดิน คือ Unity 3D เป็น Engine Game ชื่อดัง + กับทาง Unity ได้เปิด MLAgent ให้กับ Researcher ได้มาลองเล่นกันด้วย
ปัญหาที่พบอย่างแรกเลยคือ การใช้ Unity ซึ่งผมไม่คุ้นเคยเลย และ การทำงานแบบ Vector ซึ่งทั้ง 2 อันที่บอกมาเป็นอะไรที่ใช้เวลา ในการลองผิดลองถูกเยอะมาก
ซึ่ง ถ้าดูจากคลิปทั้งแรง ทั้งมุม เกิดจากความไม่เข้าใจ tools ทั้งสิ้น
แต่พอผ่านไป 1 วัน ก็เริ่มจับทางได้ และ เข้าสู่การ Train A.I. แบบเต็มตัว
ในคลิป เราไม่ได้พูดถึงรายละเอียดของคำว่า A.I. หรือ Algorithm ที่ทาง MlAgent ใช้เลยนะครับ เพราะ อยากให้คนที่ไม่ใช่สาย Tech ดูได้ด้วย
โดยสิ่งที่ A.I ในคลิปใช้คือ Neural Network หรือ Deep learning ซึ่ง ใน Unity มันมี Overhead ในการ Render ภาพทำให้ Train นานมาก 1 model คือใช้เวลาประมาณ 8 20 ชม. กว่าจะรู้ผล
ดังนั้นพอเห็น final result จนพอใจ ก็เลย หยุดทำดีกว่า ทำนานกว่านี้ผลดีขึ้น แต่ impact ต่อคนดูเท่าเดิม และ ก็ได้เป็นคลิปนี้นั้นเอง
สุดท้าย ผมมองว่า คนที่อยากรู้เกี่ยวกับ Deep learning และ Reinforment learning จะไม่ค่อยได้อะไรจากคลิปนี้เท่าไหร่ ดังนั้น ผมจึงคิดว่าหลังจากนี้จะทำ blog medium ให้ศึกษากันเพิ่มเติมอีกทีนะครับ
ช่องทางติดตาม
facebook : https://www.facebook.com/TechcastNeedSponsor
ref.
อธิบาย Technical term เพิ่มจากในคลิป สอน A.I. ให้เดิน
https://medium.com/techcastblog/aiที่เรียนรู้ได้เองกับreinforcementlearning9cdfd754dc8a
AI learn to walk (Code Bullet)
https://www.youtube.com/watch?v=KwIZuAA3EY
AI learn to walk (Dani)
https://www.youtube.com/watch?v=kowCrRPqRMM
MultiAgent ของ OpenAI
https://www.youtube.com/watch?v=kopoLzvh5jY
Paper ที่พูดถึง MultiAgent และ Breaks The Game
https://www.youtube.com/watch?v=Lu56xVlZ40M
software ที่ใช้ทำ
unity3d.com
Unity สอนทำ 2D stickman
https://www.youtube.com/watch?v=93yUC5ASdv8
Unity สอนทำ 2D active ragdoll
https://www.youtube.com/watch?v=F6OMqo52qY
Code ตัวอย่างสำหรับทำ MLAgent ของ unity
https://github.com/UnityTechnologies/mlagents

สอน A.I. ให้เดิน

สอน Python \u0026 Machine Learning เบื้องต้น 12 ชั่วโมงเต็ม [Full Course]


ดาวน์โหลด MNIST Dataset (ตัวเต็ม)
https://www.kaggle.com/avnishnish/mnistoriginal
Playlist เนื้อหา Python \u0026 Machine Learning เบื้องต้น :
https://www.youtube.com/playlist?list=PLEE74DyIkwEnWO3_W96AN725X2XYoUixg
เอกสารประกอบการสอน :
https://github.com/kongruksiamza/MachineLearning
บทความ Machine Learning :
https://medium.com/@kongruksiamza
ประกอบด้วยเนื้อหา :
0:00 รู้จักกับ Machine Learning
8:33 รู้จักกับชุดข้อมูล (Data Set)
17:46 Iris Data Set
31:20 MNIST Dataset
46:46 แสดงภาพตัวเลขด้วย Pylab และ Matplotlib
54:53 แสดงภาพตัวเลข MNIST Dataset (ตัวเต็ม)
01:16:55 เขียนโปรแกรมแบ่งชุดข้อมูล
01:34:33 ไลบราลี่ Seaborn
01:47:43 รู้จัก Linear Regression
02:03:45 การกระจายข้อมูล (Scatter)
02:13:28 สร้างโมเดล Linear Regression
02:33:31 สร้างโมเดลทำนายอุณหภูมิ
03:06:17 การวัดประสิทธิภาพโมเดล
03:15:26 Binary Classifier
03:24:43 Gradient Descent
03:40:48 เขียนโปรแกรมแบ่งชุดข้อมูล MNIST
03:52:41 จำแนกข้อมูลเป็น 2 กลุ่ม (Binary Classification)
04:04:09 Stochastic Gradient Descent (SGD)
04:26:53 Cross Validation
04:33:41 Confusion Matrix
04:50:41 Precision Recall และ F1Score
05:06:57 การคำนวณหาเพื่อนบ้านใกล้สุด (KNN)
05:21:30 การสร้าง KNN Model
05:56:52 ทำนายโรคเบาหวานด้วย KNN พร้อมค่า K ที่เหมาะสม
06:39:09 ทำนายโรคเบาหวานด้วย KNN และวัดประสิทธิภาพโมเดล
06:52:03 ทฤษฎีการจัดหมวดหมู่ด้วย Naive Bayes
07:14:54 สร้างโมเดลด้วย Gaussian Naive Baye
07:33:58 ทำนายรายได้ประชากรด้วย GaussianNB
08:07:06 การวิเคราะห์องค์ประกอบหลัก (PCA)
08:32:41 การใช้ PCA ทำงานร่วมกับโมเดล
08:59:46 MNIST Dataset ทำงานร่วมกับ PCA
09:21:55 การจัดกลุ่มด้วย KMeans(KMeans Clustering)
09:34:02 การประยุกต์ใช้ KMeans(KMeans Clustering)
10:02:04 การจดจำใบหน้า (Face Recognition)
10:24:11 แสดงข้อมูลใบหน้า (LFW Databset)
10:40:50 สร้างโมเดลด้วย SVM (Support Vector Machine)
11:19:15 รู้จักกับ Neural Network
11:33:44 สร้างโมเดลจดจำตัวอักษรด้วย MLP
ติดตามคลิปใหม่และข่าวสารของเราได้ที่
https://www.kongruksiamstudio.com/
http://www.youtube.com/kongruksiamtutorial
https://www.facebook.com/kongruksiamtutorial
Paypal : kongruksiamza123@gmail.com
Python MachineLearning

สอน Python \u0026 Machine Learning เบื้องต้น 12 ชั่วโมงเต็ม [Full Course]

แค่ไหน ถึงเรียกว่า AI .. 🤖


ใครกำลังสงสัยว่า AI มันเป็นยังไง ? แค่ไหนถึงเรียกว่า AI แล้ว AI จะต้องฉลาดขนาดไหน หรือ มันก็แค่ if else ธรรมดา ๆ มาหาคำตอบได้ในวีดีโอตอนนี้เลยจ้า
.
▲ ติดตามช่องของเราได้ที่ : http://bit.ly/borntoDevSubScribe
▲ Facebook : https://www.facebook.com/borntodev
▲ Website : http://www.borntodev.com
.
🦖BorntoDev Channel คือ ช่องยูทูปที่เน้นสาระด้านเทคโนโลยี การพัฒนาโปรแกรม ไปพร้อมกับความสนุกสนาน และ รอยยิ้มเข้าไว้ด้วยกันทั้งในรูปแบบบทเรียน และ vlog
.
เพื่อการเปลี่ยนรูปแบบการเรียนรู้ด้านการพัฒนาโปรแกรม และ เทคโนโลยีแบบเดิม ๆ ที่เป็นเรื่องเฉพาะกลุ่มให้เข้าถึง เข้าใจได้ง่ายยิ่งขึ้น โดยพัฒนาเน้นไปที่รูปแบบการนำเสนอใหม่ ๆ ที่เป็นมิตรกับทุกคน
.
▲ กิจกรรมใน Channel BorntoDev เป็นส่วนหนึ่งในการดำเนินงานของ บริษัท บอร์นทูเดฟ จำกัด ที่เปิดรับ Partners ที่สนใจร่วมเปลี่ยนแปลงให้สังคมไทยเป็นสังคมด้านวิทยาศาสตร์ และ เทคโนโลยีมากยิ่งขึ้น หากคุณสนใจสนับสนุน และ ก้าวไปพร้อมกัน สามารถติดต่อร่วมงานได้แล้ววันนี้
.
▲ ติดต่อโฆษณา สนับสนุน และ ร่วมงานได้ที่: support@borntoDev.com

แค่ไหน ถึงเรียกว่า AI .. 🤖

“AI ช่วยเขียนโปรแกรม” นี่มันอนาคตชัด ๆ !! – GitHub Copilot – Dev รีวิววว ! EP1


Dev รีวิววว ! วันนี้เราจะพาทุกคนไปรู้จักกับสุดยอดนวัตกรรมแห่งศาสตร์การเขียนโปรแกรมที่ไม่ใช่แค่ Auto Complete คำ แต่เป็น GitHub Copilot AI ช่วยเขียนโปรแกรม ที่บอกเลยว่าความสามารถของเขาจะทำให้เก้าอี้วงการเดฟต้องสั่นสะเทือน!!! อยู่ยากแน่พูดเลยยยย
▲ ติดตามช่องของเราได้ที่ : http://bit.ly/borntoDevSubScribe​​​​​…
▲ Facebook : https://www.facebook.com/borntodev​​​…
▲ Website : http://www.borntodev.com​​​​​​​​​​​​​…
🦖BorntoDev Channel คือ ช่องยูทูปที่เน้นสาระด้านเทคโนโลยี การพัฒนาโปรแกรม ไปพร้อมกับความสนุกสนาน และ รอยยิ้มเข้าไว้ด้วยกันทั้งในรูปแบบบทเรียน และ vlog
เพื่อการเปลี่ยนรูปแบบการเรียนรู้ด้านการพัฒนาโปรแกรม และ เทคโนโลยีแบบเดิม ๆ ที่เป็นเรื่องเฉพาะกลุ่มให้เข้าถึง เข้าใจได้ง่ายยิ่งขึ้น โดยพัฒนาเน้นไปที่รูปแบบการนำเสนอใหม่ ๆ ที่เป็นมิตรกับทุกคน
▲ กิจกรรมใน Channel BorntoDev เป็นส่วนหนึ่งในการดำเนินงานของ บริษัท บอร์นทูเดฟ จำกัด ที่เปิดรับ Partners ที่สนใจร่วมเปลี่ยนแปลงให้สังคมไทยเป็นสังคมด้านวิทยาศาสตร์ และ เทคโนโลยีมากยิ่งขึ้น หากคุณสนใจสนับสนุน และ ก้าวไปพร้อมกัน สามารถติดต่อร่วมงานได้แล้ววันนี้
▲ ติดต่อโฆษณา สนับสนุน และ ร่วมงานได้ที่: support@borntoDev.com

“AI ช่วยเขียนโปรแกรม” นี่มันอนาคตชัด ๆ  !! - GitHub Copilot - Dev รีวิววว ! EP1

นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูวิธีอื่นๆGeneral news

ขอบคุณมากสำหรับการดูหัวข้อโพสต์ การเขียนโปรแกรม ai

Leave a Comment