Occupancy Networks คืออะไร?
เราต้องมาทำความเข้าใจรากศัพท์คำว่า Occupancy (ออค’คิวเพินซี) แปลว่า การครอบครอง, การพำนักอาศัย, การมีถิ่นที่อยู่
Occupancy นั้นมีรากศัพท์มาจากคำว่า occupant ตามด้วยคำต่อท้าย(suffix) -cy
ส่วนคำว่า Networks ในที่นี้ไม่ได้แปลว่า หน่วยงาน Networks หรือ Internet แต่อย่างใดครับ แต่มันแปลว่า เครือข่ายนะครับ

ความหมายของคำว่า Occupant, Occupied, Occupancy นั้นจะมีความหมายเหมือนกันคือ ไม่ว่างหรือแปลว่ามีการครอบครองอยู่
ถ้าจะเปลี่ยนให้เห็นภาพก็เป็นภาพที่จะเห็นได้ในที่บานประตูห้องน้ำบนเครื่องบินนะครับว่า เวลามีเราเข้าห้องน้ำแล้วจะต้องเลื่อนกลอนเพื่อล๊อคประตู พอเราทำการเลื่อนกลอนแล้ว ป้ายด้านหน้าของห้องน้ำจะเปลี่ยนจาก Vacant (แปลว่า ว่าง) เป็น Occupied (แปลว่า ไม่ว่างหรือถูกครอบครองแล้ว) นั่นเองครับ พอเราปลดกลอนออกป้ายด้านหน้าจะเปลี่ยนเป็น Vacant เหมือนเดิม
คราวนี้พอเราเข้าใจรากศัพท์และความหมายของคำว่า Occupancy, Occupied, หรือ Occupant แล้ว พวกเราพอจะเดาได้หรือยังครับว่า Occupancy Networks แปลว่า อะไร?
ถ้าเอาสองคำนี้มารวมกันแล้วจะแปลว่า เครือข่ายที่ถูกจับจองพื้นที่นะครับ ผมแปลแล้วอาจจะงงๆ แต่ถ้าดูภาพด้านล่างทุกคนจะต้องรออ๋อเป็นเสียงเดียวกันแน่นอนครับ


ภาพด้านซ้ายนั้นคือ เก้าอี้ที่ render แบบออกมาเป็น 3D แบบทึบครับ ส่วนด้านขวานั้นจะเห็นได้ว่า มีจุดลอยไปในอากาศมากมายแต่สสารเหล่านั้นที่อยู่ในพื้นที่ของเก้าอี้ 3D นั้นจะเป็นสีแดงซึ่งนั่นคือ Occupancy (มีอยู่, ครอบครองตำแหน่งอยู่) ยังไงล่ะครับ
ถ้าจะให้ผลแปลแบบได้ใจความภายในบรรทัดเดียวก็คือ ระบบ Occupancy Networks คือการใช้ Deep Neural Network (โครงข่ายประสาทแบบลึก) ในการสร้างแบบจำลอง 3D (สามมิติ)มาจากภาพที่ AI เห็นครับ ไม่จำเป็นต้องเห็นครบ 360 องศาก็ได้ เพียงแค่เห็นภาพวัตถุนั้นบางส่วนก็สามารถจำลองภาพวัตถุเหล่านั้นให้กลายมาเป็น 3D ได้แล้วครับ

ข้อดีของ Deep Neural Network คือเวลามันไม่เห็นชิ้นส่วนทั้งหมดของสิ่งของชิ้นนั้น มันจะทำการ Gradient (เกลี่ย) ข้อมูลไป-มา(Ascent [ขึ้น] Descent [ลง]) เพื่อทำการสร้างวัตถุตัวนั้นขึ้นมา บางครั้งมันก็สร้างเหมือนของจริง บางครั้งก็มั่วไปไกล อันนี้แล้วแต่การตั้งค่า parameter (ค่าที่ต้องใช้งานในสมการ)ให้เหมาะสมกับการ Render ภาพ 3D (3 มิติ)ออกมาครับ หรือแปลเป็นไทยคือ Deep Neural Network มันสามารถคิด, วิเคราะห์เองได้(บางส่วน)และทำการจินตนาการเพิ่มเติมเพื่อให้ได้ผลลัพธ์ที่ดีขึ้นออกมาครับ

โดยการฝึก(train) Occupancy Network นั้นจะใส่ input เข้าไปแล้วทำให้ระบบ Neural Network ฝึกสร้างแบบจาก input ตัวนั้น แล้วจากนั้นเราจะทำการเฉลยโดยเอาภาพของจริง (Ground Truth)มาให้ระบบทำการเปรียบเทียบแล้วจะมี AI อีกส่วนเรียกว่า Testing มาให้คะแนน AI ที่สร้างภาพเอาไว้นะครับ
ส่วน Model ในการ Train นั้นก็มีให้เลือกมากมายครับ Model สำหรับ Train ก็จะเปรียบเหมือนเครื่องมือที่เอาไว้ใช้สำหรับทำงานนะครับ แต่ล่ะ Model ก็มีความโดดเด่นเฉพาะตัวในการทำงานแตกต่างกันออกไปครับ

ใครสนใจเรื่อง Occupancy Networks นั้นสามารถอ่านต่อได้ที่ castu และสามารถเอา Code จาก github มารันเล่นดูได้นะครับ
Occupancy Networks เกิดขึ้นครั้งแรกในปี 2016?
อย่างนึงที่ผมอยากเรียนให้ทราบตรงนี้คือ Tesla ไม่ได้เป็นคนคิดค้น Occupancy Networks นะครับ หลักการ Occupancy Networks ถูกสร้างขึ้นในปี 2019 โดยคณะนักวิจัยจากมหาลัย University of Tubingen ประเทศเยอรมันครับ ซึ่งตอนแรกนั้นเค้าเพียงคิดค้นการเปลี่ยนภาพ 2 มิติให้เป็น Voxel (ปริมาตรที่เล็กที่สุดที่รวมตัวกันเป็นภาพสามมิติ) หรือจะเห็นได้ใน pixel ในเกมส์ MineCraft ครับ ภาพจำลองแบบ Voxel นั้นถูกคิดค้นในปี 2016 ครับ ซึ่งตอนนั้นไม่ได้เรียกระบบนี้ว่า Occupancy Networks เนื่องจากความสมบูรณ์แบบนั้นยังไม่เยอะเท่าที่ควร

ในปีถัดๆ มาก็ได้มีนักวิจัยช่วยกันมาพัฒนาระบบการวิเคราะห์ภาพถ่ายจาก 2 มิติเป็น 3 มิติไปเรื่อยๆ จนในปี 2019 นั้นทางมหาลัย University of Tubingen ก็ได้สร้าง Model ในการจำลองภาพ 3 มิติอย่างที่เห็นด้านบน(d) Our ครับ คือภาพที่จำลองออกมานั้นสมบูรณ์แบบและมีความ accurate (แม่นยำ) ใกล้เคียงภาพ 3 มิติจาก Ground Truth (ภาพ Final) จริงๆครับ
เค้าจึงได้ตีพิมพ์บทความกระจายออกไปในปี 2019 พร้อมกับใส่ code Github ทิ้งเอาไว้เพื่อให้ทุกคนได้ศึกษาและนำไปพัฒนากันต่อตามใจชอบและมันก็ไปโดนใจทีมพัฒนา FSD Beta ของ Tesla พอดีนั่นแหละครับ จึงเป็นที่มาของ Tesla Occupancy Networks
NeRF คือเครื่องมือที่ Tesla นำมาใช้
จริงๆ แล้ว เรื่อง Occupancy Networks นั้นยาวมากๆครับ จะเอามาเขียนทั้งหมดในโพสนี้ก็คงจะปวดหัวน่าดูแต่อยากให้จำ Keyword (คำสำคัญ)สำหรับระบบนี้เอาไว้ 2 คำคือ “Queryable Outputs” และ “NeRFs” ซึ่งถ้ามีเวลาผมจะมาลงรายละเอียดเพิ่มเติมให้วันหลัง หลักๆคือ 2 ตัวนี้มีหน้าที่เปลี่ยนภาพถ่าย 2 มิติให้กลายเป็น 3 มิติโดยใช้ภาพเพียง 2-3 ภาพก็สามารถเปลี่ยนภาพนั้นให้กลายเป็นวัตถุ 3 มิติได้แล้วครับ

ลองคิดตามผมนะครับว่าแค่ได้ภาพไป 2-3 ภาพก็ใช้ NeRFs ทำภาพ 3 มิติได้แล้ว คราวนี้ กล้องรอบรถ Tesla มี 8 ตัวและวิ่งด้วยความเร็ว 24 fps (หรือ 24 ภาพต่อวินาที) เท่ากับว่าเค้าสามารถจับภาพต่างๆ ได้มากกว่า 100 ภาพภายใน 4 วินาทีซึ่งแค่นี้ก็เพียงพอที่จะเอามาใช้เป็น dataset (ชุดข้อมูล)ในการประมวลผล NeRF เพื่อสร้างวัตถุ 3D หรือสามมิติรอบรถแล้วครับ

อย่างไรก็ตาม Concept เหล่านี้อยู่ในห้อง Lab (ห้องวิจัย)มานานตั้ง 3-4 ปีแล้วครับ เทสล่าเพียงหยิบงานวิจัยเหล่านี้ขึ้นมาแล้วเอามาใช้กับ Industry ของตนครับ เอาล่ะครับ เดี๋ยวเราจะมาดูกันว่า Tesla พัฒนาต่อยอดงานวิจัยเหล่านี้ไปถึงไหนกันนะครับ
Tesla เอา Occupancy Networks มาทำอะไร?
Occupancy Networks เป็นเทคนิคอีกตัวนึงที่ Tesla ได้นำมาประยุกต์ใช้กับระบบ Tesla FSD Beta นะครับ ระบบนี้จะใช้กล้อง 8 ตัวรอบคันของรถยนต์ไฟฟ้า Tesla เป็น input sensor หรือลูกตา AI ในการมองเห็นภาพรวมคัน จากนั้นตัวระบบจะทำการแปลงภาพเหล่านั้นจากภาพวิดีโอธรรมดากลายเป็นภาพ 3 มิติ จากนั้นจะใช้ประสบการณ์(Trained dataset)ที่ถูกฝึกมาในการวิเคราะห์วัตถุต่างๆ จากนั้นจะทำการคัดสรรวัตถุเหล่านั้นเป็นวัตถุประเภทต่างๆ ดังนี้
- สีเทา – วัตถุที่ไม่สามารถเคลื่อนไหวได้ เช่น ตึก, ต้นไม้, สะพาน, ฯลฯ
- สีน้ำเงิน – วัตถุที่สามารถเคลื่อนที่ได้แต่ยังไม่ต้องระวังมาก เช่น รถยนต์,รถบัส, เด็ก,มอเตอร์ไซค์, จักรยาน
- สีแดง – วัตถุที่กำลังเปลี่ยนสถานะจากหยุดนิ่งเป็นเคลื่อนที่ เช่น รถกำลังออกจากที่จอดรถ,รถกำลังออกตัวจากไฟแดง, รถที่กำลังเปลี่ยนเลนเข้ามาในเลนของเรา,ฯลฯ หมายเหตุ : เป็นวัตถุที่จะมีผลกับรถของเรา จำเป็นต้องเฝ้าระวัง
หมายเหตุ : ภาพที่เห็นนี้เป็น FSD Beta Dev Version นะครับ(เวอร์ชั่นสำหรับนักพัฒนา) ส่วนคนทั่วไปจะได้ใช้ Production version ซึ่งจะเห็นภาพของรถเป็นสีเทา, น้ำเงิน, หรือแดง(ในบางที)

Tesla เอา Occupancy Networks มาใช้งานต่างๆ ดังนี้
- Predict geometric occupancy – คาดการณ์หรือสร้างวัตถุรูปทรงเลขาคณิตขึ้นมาแบบสามมิติ
- Use multi-camera & video context – ใช้กล้องและวิดีโอที่บันทึกรอบคันเป็น Input
- Predict dynamic occupancy flow – คาดการณ์การเคลื่อนไหวของวัตถุต่างๆ รอบรถ
- Persistent through occlusions – (แปลไม่ออกจริงๆคับ)
- Resolution where it matters – ทำการเพิ่มความละเอียดของวัตถุที่สำคัญกับการขับขี่(เช่น รถที่อยู่ด้านหน้ารถ)
- Efficient memory and compute – เพิ่มประสิทธิภาพในการทำงาน
- Runs in ~10 ms – สร้างภาพจำลองภายใน 0.01 วินาที
เนื่องจากการใช้งาน Occupancy Networks ในการจำลองภาพ 3 มิติ + ฝึกให้ฉลาดขึ้นนั้นต้องใช้ทรัพยากรมหาศาลอย่างมากครับ Tesla เลยแบ่ง GPU ของตนเองเป็นสองส่วนหลักๆ คือ
- 10,000 GPU สำหรับ training (ฝึก)
- 4,000 GPU สำหรับ auto-labeling (ตั้งชื่อหรือระบุวัตถุต่างๆอัตโนมัติ)
วิดีโอสำหรับ training นั้นจะถูกจัดเก็บในหน่วยความจำแบบ Cache (ความจำสั้น) 30 petabytes หรือประมาณ 30,000 TeraByte ซึ่งพื้นที่นี้จะถูกใช้งานรองรับการรับส่งวิดีโอมากกว่า 1 ล้านคลิปต่อวัน(ส่งไป-มาระหว่าง Training Dojo นี่แหละครับ)

หรือจะเรียกได้ว่า AI ของ Tesla จะฉลาดมากขึ้นกว่าเมื่อวานประมาณ 1 ล้านคลิปต่อวัน ซึ่ง AI ของ Tesla จะสามารถระบุวัตถุใหม่ๆ ที่เกิดขึ้นบนท้องถนนได้อย่างแม่นยำขึ้นทุกวัน และสามารถบอกให้รถสั่งการเพื่อหลบวัตถุแต่ล่ะประเภทได้อีกด้วย การพัฒนา AI ผ่านการฝึกแบบนี้อีกด้วย
อันนี้จะเน้นไปเรื่อง Training ไปแล้วนะครับผมจะขอปิดจบตรงนี้ไปก่อนนะครับ เดี๋ยวโพสหน้าจะเขียนเกี่ยวกับเรื่อง Training AI ใน Dojo โดยเฉพาะเลยครับ วันนี้เอาแค่น้ำจิ้ม dojo มาให้ชิมก่อนนะครับ
BLINK DRIVE TAKE
สาเหตุที่ Tesla นำออกมาเผยแพร่ในงาน AI Day เหมือนแจกฟรีให้คู่แข่งแบบนี้ก็เพราะต้องการประกาศศักดาว่า “กูใช้เทคโนโลยีตัวนี้นะ” ซึ่งจริงๆ ในงานนั้น Ashoke ก็บอก(เบาๆ)ว่า เทคโนโลยีนี้อยู่ใน paper (งานวิจัย) แต่เทสล่าเป็นค่ายแรกที่นำมาทำใน Industry (อุตสาหกรรม) ที่ทำเงินได้นะครับ (ดูหล่อขึ้นมาเลย ฮ่าๆ)
ถ้ามองภาพรวมคือ ทีม FSD Beta เอามาพัฒนาต่อยอดเพื่อใช้กับรถยนต์ไฟฟ้า Tesla
จริง ๆ ตอนแรกที่ผมเห็น Tesla ประกาศใช้เทคโนโลยีตัวนี้ก็ตกใจกันแบบว่า Oh My God ทำไมเทสล่าใจดีสร้างเทคโนโลยีเหล่านี้มาแจกกันฟรีๆ ด้วยน่ะ ไม่กลัวคู่แข่ง Copy ไปใช้กันหรอ? ประมาณนั้นครับ
ผมมองว่า Tesla ไม่กลัวคู่แข่ง Copy ไปหรอกครับ แต่ถ้า Tesla ไม่ออกมาบอกว่าใช้เทคโนโลยีตัวนี้ ช้าหรือเร็ว คู่แข่งก็รู้อยู่ดีเพราะว่าสังคมนักวิจัยเหล่านี้มันแคบมากครับ เค้าคุยกันกับทุกมหาวิทยาลัยข้ามโลกตลอดเวลา แค่เค้าเห็นภาพแสดงผลของ Tesla 1 slide ก็ไม่ยากหรอกครับ ที่จะไปตามดูผลงานว่าใครเป็นคนคิดงานวิจัยชิ้นนี้
ที่งงๆ คือ ไม่มี Citation ของคนคิดค้นเทคโนโลยีตัวนี้ขึ้น slide Tesla เลยครับ ฮ่าๆ
งานนี้ ผมสนับสนุน Tesla ที่นำเทคโนโลยีนี้มาใช้เพื่อเปลี่ยนโลก Autonomous Driving นะครับ แต่อย่างน้อยน่าจะ Credit นักวิจัยกลุ่มที่สร้างระบบนี้ขึ้นมาหน่อยก็ดีครับ(slide สุดท้ายของ Ashok ก็ได้ครับ) เพราะถ้าผมไม่ไปค้นประวัติของระบบนี้ ผมยังคิดว่า Tesla เป็นเจ้าของลิขสิทธิ์เทคโนโลยีตัวนี้เลยนะครับ