ระบบกล้องวงจรปิดตรวจจับผู้บุกรุกราคาประหยัด

Image placeholder
แวะมาทักทายกันได้

    กล้องวงจรปิด ราคาในยุคนี้ไม่แพงแล้วแถมยังมีฟังก์ชันเจ๋งๆให้ใช้อย่างมากมาย นี้เป็นสิ่งหลายๆคนคงจะพูดกัน คำตอบคือ ใช่และเห็นด้วยอย่างยิ่ง ราคาถูกลงมากยิ่งถ้าซื้อจากประเทศจีนด้วยแล้วถือว่าถูกมากแล้วราคาตาม E-Commerce หลายๆเจ้า แต่ในฐานะนักพัฒนาที่ชอบค้นคว้าจะให้ซื้ออย่างเดียวได้อย่างไร

    ส่วนตัวแล้วคิดว่าการพัฒนาเองและค้นคว้าวิจัยยังถูกกว่าที่ขายกันอยู่และต้องเริ่มลงมือทำมันซึ่ง ในบทความนี้จะเล่าให้ฟังว่าปัญหาที่ต้องการจะแก้ อยากทำอะไรกับระบบนี้แล้วผลลัพท์ที่ได้เป็นอย่างไร จะเขียนถึงภาพรวมและเทคนิคการแก้ปัญหาเท่านั้น 

    เริ่มจากเราเป็นพวกชอบประดิษฐ์และอยู่ในกลุ่มคนทำ Arduino จึงรู้จักและเห็นการพัฒนาบอร์ดนี้อยู่แล้ว มันคือ ESP32 เป็นบอร์ดวงจรสำเร็จรูปจากบริษัท espressif (https://www.espressif.com/en/products/socs/esp32) แล้วมีการพัฒนาไปจนทำ ESP32CAM ขึ้นมาเป็นบอร์ดที่ build-in port สำหรับใส่ OV2640 เป็น Module กล้องขนาดเล็กที่มีความคมชัดขนาด 2MB ภาพที่ได้ค่อนข้างละเอียดพอสมควร

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

    สรุปก็คือระบบกล้องวงจรปิดอย่างที่ได้เกริ่นเอาไว้ในตอนต้นนั่นเอง ซึ่งที่อยากจะทำกล้องวงจรปิดขึ้นมาเพราะที่บ้านยังไม่มีระบบนี้ ถึงแม้ว่าจะยังไม่มีอะไรเกิดขึ้นแต่ก็อยากจะเตรียมเอาไว้ในรูปแบบของเรา แต่จะให้ทำเฉพาะกล้องวงจรปิดที่แสดงผลภาพเฉยๆก็รู้สึกธรรมดาไป ในยุคนี้เป็นยุคของการนำระบบอัตโนมัติและ AI (Artificial Intelligence) เข้ามาช่วยให้ทำงานได้สะดวกมากขึ้น จึงได้นำระบบหนึ่งที่ชื่อว่า OPENCV เป็นระบบการประมวลผลภาพ ซึ่งสามารถทำได้หลายอย่าง แต่ที่นำมาใช้ คือ การตรวจจับใบหน้า (Face Detection) ซึ่งเป็นกระบวนการค้นหาใบหน้าจากรูปภาพหรือวิดีโอ โดยมีแนวคิดว่า ถ้าตรวจจับได้แล้วต้องมีการแจ้งเตือนเพื่อให้ผู้ใช้งานทราบทันที ซึ่งง่ายที่สุดก็คือการส่งผ่าน Line นั่นเอง


ฝากกดโฆษณา Google Ads สัก click  เพื่อเป็นกำลังใจแก่ผู้เขียนด้วยนะครับ



สิ่งที่ระบบนี้พัฒนามีเรื่องอะไรบ้าง

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

  • Arduino ESP32CAM
  • SDCard
  • Framerate
  • Resolution
  • WifiManager
  • Image Service
  • Face Detection
  • Line Notify API


Arduino ESP32CAM




    ESP32 เป็นบอร์ดวงจรสำเร็จรูปจากบริษัท espressif (https://www.espressif.com/en/products/socs/esp32) แล้วมีการพัฒนาไปจนทำ ESP32CAM ขึ้นมาเป็นบอร์ดที่ build-in port สำหรับใส่ OV2640 เป็น Module กล้องขนาดเล็กที่มีความคมชัดขนาด 2MB รายละเอียด ในส่วนของ IC ESP32 สามารถที่จะต่อใช้งานกับ SDCard ได้ ผู้เขียนได้ทดสอบแล้วว่าสามารถใช้งานกับ SDCard 16GB Class 10 ได้ และมี socket สำหรับเชื่อมต่อกับ module OV2640 สามารถสับเปลี่ยนได้ถ้าหากมี Module กล้องตัวอื่นที่รองรับ และออกแบบมาให้เข้ากับ ESP32 





จาก Diagram ด้านบนนั้นมีส่วนที่จำเป็นต้องรู้ในการใช้งาน Board ตัวนี้มีดังนี้

  • gpio0
  • Micro SDCard Connect
  • Camera Connected

GPIO 0 

    gpio 0 เป็นขาที่เอาไว้เชื่อมต่อเข้า flashing mode เมื่อต่อแบบ pull up  กับ ground ในวงจรเมื่อเราต้องการที่จะใส่ firmware ที่ต้องการให้ ic ทำงาน แต่จะต้องถอดเมื่อต้องการให้ ic ทำงานปกติ


Micro SDCard Connect

    วงจรในบอร์ด ESP32Cam แต่ละขาที่จะต้องพิจารณาตามตารางด้านล่าง


Micro SDCardESP32
CLKGPIO 14
CMDGPIO 15
DATA0GPIO 2
DATA1 / Flash lightGPIO 4
DATA2GPIO 12
DATA3GPIO 13


สำหรับตารางการเชื่อมต่อของวงจร ที่ผู้เขียนอยากจะกล่าวถึงคือ ขา DATA1 / Flash light กับ GPIO 4 ในการใช้งาน SDCard นั้นจะทำให้เกิด Flash ทำงานเมื่อมีการบันทึกภาพลง SDCard เสมอ จากที่ทำการทดลอง ไม่ว่าจะกำหนดขา GPIO 4 ให้ไม่ต้องทำงานแล้วแต่ก็พบว่า ยังไม่มีแฟลชทำงานอยู่ดี


Camera Connected

    แม้ว่าบอร์ด ESP32Cam จะเป็น build-in ที่สะดวกออกแบบมาได้มีขนาดเล็กแต่เราก็จำเป็นจะต้องทราบและเข้าใจว่า การเชื่อมต่อระหว่าง ESP32 กับ OV2640 เชื่อมต่อกันอย่างไร นำไปสู่การเขียนโปรแกรมได้อย่างถูกต้อง สามารถดูได้จากตารางด้านล่าง


OV2640 CamearaESP32 Variable Name
D0GPIO 5
Y2_GPIO_NUM
D1GPIO 18
Y3_GPIO_NUM
D2GPIO 19
Y4_GPIO_NUM
D3GPIO 21
Y5_GPIO_NUM
D4GPIO 36
Y6_GPIO_NUM
D5GPIO 39
Y7_GPIO_NUM
D6GPIO 34
Y8_GPIO_NUM
D7GPIO 35
Y9_GPIO_NUM
XCLKGPIO 0
XCLK_GPIO_NUM
PCLKGPIO 22
PCLK_GPIO_NUM
VSYNCGPIO 25
VSYNC_GPIO_NUM
HREFGPIO 23
HREF_GPIO_NUM
SDAGPIO 26
SIOD_GPIO_NUM
SLCGPIO 27
SIOC_GPIO_NUM
POWER PINGPIO 32
PWDN_GPIO_NUM


จากตารางในการเชื่อมต่อระหว่าง ESP32 กับ Module เป็น Socket สำหรับถอดเปลี่ยนได้ หากอยากจะออกแบบใหม่ก็ให้ดูตามตาราง เพราะสิ่งจำเป็นต้องรู้ คือ เวลาที่เขียนโปรแกรมจะต้อง initial ให้ถูกขาและตรงกับ Board ที่เราเลือกใช้ เพราะแต่ละบอร์ดถูกออกแบบมาไม่เหมือนกัน ดังนั้น Datasheet จึงเป็นสิ่งสำคัญ





คราวนี้เรามาดูกันในเรื่องของ Camera Module OV2640 ตัวนี้กันบ้างดีกว่าว่ามี Spec การใช้งานอย่างไรบ้าง


จากตาราง Spec ของ OV2640 นั้นจะยกประเด็นที่จะต้องพูดถึงบางตัวที่ต้องรู้ เช่น Array size และ Maximum Image Tranfer Rate หรือ framerate


Array Size 

Array Size ลองนึกหน้าจอแสดงผล หรือ ภาพแตกๆ ที่มีรายละเอียดค่อนข้างต่ำ จะสังเกตได้ว่ารูปภาพนั้นๆจะถูกแบ่งเป็นตาราง ซึ่ง Array size ก็มีลักษณะเดียวกัน เพราะเป็นสัญญาณรับภาพ ที่มี column ในการรับภาพอยู่ 1600 column และ 1200 แถว หรือจะเรียกว่า Resolution ก็ได้ โดยที่สเปคสูงสุดไม่เกินนี้แต่สามารถลดลงได้โดยตั้งค่าเริ่มต้นให้กับบอร์ดว่าต้องการเท่าไรตามรหัสด้านล่าง เท่านี้เราก็จะได้ขนาดของไฟล์ภาพที่ได้ทำการบันทึก หรือ ส่งข้อมูลไปยัง server

  • FRAMESIZE_UXGA (1600 x 1200)
  • FRAMESIZE_QVGA (320 x 240)
  • FRAMESIZE_CIF (352 x 288)
  • FRAMESIZE_VGA (640 x 480)
  • FRAMESIZE_SVGA (800 x 600)
  • FRAMESIZE_XGA (1024 x 768)
  • FRAMESIZE_SXGA (1280 x 1024)


// Select lower framesize if the camera doesn't support PSRAM
if(psramFound()){
  config.frame_size = FRAMESIZE_UXGA; // FRAMESIZE_ + QVGA|CIF|VGA|SVGA|XGA|SXGA|UXGA
  config.jpeg_quality = 10; //10-63 lower number means higher quality
  config.fb_count = 2;
} else {
  config.frame_size = FRAMESIZE_SVGA;
  config.jpeg_quality = 12;
  config.fb_count = 1;
}


PSRAM

ซึ่งจาก Code ด้านบนนั้นจะมีคำว่า PSRAM อยู่เป็นส่วนที่สำคัญสำหรับบอร์ดตัวนี้ ถ้าหากไม่มีหรือไม่รู้จักก็อาจจะพลาดไม่ได้ใช้งานอย่างเต็มประสิทธิภาพได้

PSRAM คืออะไร ถ้าพูดถึง SRAM มันก็คือ static RAM ที่น่าจะรู้จักกันดี แต่เมื่อมันอยู่ ic ตระกูล esp มันเป็น หน่วยความจำหลัก จึงทำให้ board นี้มีความน่าสนใจเพิ่มขึ้น ตามที่บอกไว้ตอนต้น เพราะ PSRAM เป็น External RAM หรือ แรมภายนอก

PSRAM - Psuedostatic DRAM : เป็นหน่วยความจำแบบใช้พลังงานต่ำ ถูกนำมาใช้ในอุปกรณ์ที่ต้องการหน่วยความจำขนาดใหญ่ สำหรับ Board ตัวนี้ใช้ IC เบอร์ PSI1704LS มีความจุที่ 4 MB จึงรองรับ ขนาดที่ OV2640 Render Blob ออกมาให้อย่างพอดี ไฟล์ใหญ่ขึ้นจริง เห็น noise เป็นเส้นๆเลยเพราะเกิดจากการเปิด flash led



จากปัญหาที่เอา Stream ภาพแล้วเกิดปัญหาว่า buffer ไม่พอน่าจะเป็นข้อจำกัดของ PSRAM ด้วย เพราะเวลา stream จะต้องรับ binary ตลอดเวลา ทำให้เมื่อ run ไปนานๆ ทำให้ Crash วิธีแก้ คงต้อง config resolution เอาไว้ที่ระดับต่ำเพื่อที่จะส่ง data ไปแสดงผลผ่าน websocket ได้ เมื่อ โปรแกรมเช็คได้ว่ามี IC ตัวนี้อยู่ก็จะสามารถได้ค่า เต็มๆเลยแล้วส่งแบบ 1600x1200 ซึ่งถ้า wifi ช้าทำให้บางครั้ง build image ไม่ได้ file พังเปิดไม่ได้ จากนั้นก็มาเปิดดู resolution ที่ได้ไฟล์จากการเซฟไฟล์ ตรงเป๊ะ ที่ sdcard เป็น 1600x1200


BUFFER

buffer คือ ส่วนหนึ่งของหน่วยความจำที่ใช้สำหรับพักข้อมูลเป็นการชั่วคราวในระหว่างทำการถ่ายทอด หรือส่งผ่านข้อมูล เครื่องอุปกรณ์คอมพิวเตอร์บางชนิดจะมี buffer ของตนเอง เช่น เมื่อเราสั่งปริ๊นงานไปยังเครื่องพิมพ์ ข้อมูลที่จะให้ปริ้นต์จะถูกส่งมาที่ CPU เพื่อรอปริ้น แต่ถ้าคุณสั่งปริ้นข้อมูลจำนวนหลายหน้า แล้วหน่วยความจำไม่พอ ก็จะต้องมีตัวที่เก็บข้อมูลที่จะปริ้นต์ ลงไปที่ไหนสักแห่งแทนหน่วยความจำซึ่งตัวเก็บข้อมูลปทนนี้คือ buffer นั้นเอง


WIFIMANAGER

    Wifi Manager เป็น library ตัวหนึ่งที่เอาไว้ใช้จัดการเรื่อง Wifi ลองนึกถึงเมื่อเราซื้อ Wifi Router มาไว้ใช้งานเครื่องหนึ่งจะต้องมีการเชื่อมต่อกับ Internet Wifi แต่จะยังไม่สามารถเชื่อมต่อใช้งานได้ทันที แล้วตัวของเครื่องเองนั้นจะมี Username และ Password หลักในการเข้าไป Config ค่าเริ่มต้นตามที่ User ต้องการ Library นี้ก็เช่นกัน 

    ESP โดยที่ข้อดีของมันคือ การจัดการ Wifi ที่ง่ายสามารถจัดการและดูแล Access Point ที่ผู้ใช้ต้องการจะเชื่อมต่อ โดยที่มีข้อควรระวังตรงที่เมื่ออุปกรณ์ไม่มีการเชื่อมต่อกับ Wifi หรือ ถูกตัดขาดจาก Wifi อุปกรณ์ที่ใช้ Library นี้จะทำตัวเหมือนกับเป็น Station โดยที่ผู้ใช้อื่นมองเห็นก็จะสามารถเชื่อมต่อได้ วิธีป้องกันคือจะต้องสร้างรหัสผ่านเอาไว้ ป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต 


Image Service

    จากที่ผู้เขียนได้ศึกษาทดลองและทดสอบ ESP32Cam มาสักระยะหนึ่ง ซึ่งเมื่อนำมาประยุกต์ใช้เป็นกล้องวงจรปิด สามารถทำได้ 2 รูปแบบ คือ ส่งภาพนิ่งทีละภาพ และ แสดงผลเป็นวิดีโอที่แสดงบนเว็บไซต์ โดยหลักการของการแสดงวิดีโอนั้น มันคือการนำภาพนิ่งหลายๆภาพมาเรียงต่อกันจนเป็นชุด ที่แสดงอย่างต่อเนื่องจนดวงตาของมนุษย์มองเห็นเป็นภาพเคลื่อนไหว โดยปกติแล้ว การจะทำให้เห็นเป็นภาพเคลื่อนอย่างต่อเนื่องจะอยู่ 24 ภาพต่อวินาที

     ไม่ว่าจะส่งโดยวิธีใดก็ตามระบบในการแสดงผลจะต้องเขียน Service ขึ้นมาเพื่อรับข้อมูลที่ Server โดยที่เงื่อนไขจะขึ้นอยู่กับการนำไปใช้งาน


Face Detection

    Face Detection คือ กระบวนการค้นหาใบหน้าของสิ่งที่เราสนใจ เช่น มนุษย์ สุนัข แมว เป็นต้น จากภาพหรือวิดีโอ จากนั้นก็ทำการประมวลผลเพื่อนำไปเข้าสู่กระบวนการถัดไป แต่สำหรับโครงการนี้ผู้เขียน ได้นำกระบวนการ Detect ของ Open Source ที่ได้รับการพัฒนามาอย่างยาวนานมาใช้เป็นเงื่อนไขในการตรวจจับ ซึ่งยังคงต้องได้รับการพัฒนาต่อไป โดยอาจจะนำไปใช้กับ Face Recognition ต่อไป
API LINE


API LINE Notify

    Line Notify เป็นบริการหนึ่งของสำหรับการส่งข้อความ รูปภาพ เพื่อประยุกต์ใช้ในการแจ้งเตือนต่างๆ 


ระหว่างพัฒนาเจอปัญหาอะไร และ แก้ไขอย่างไร

    จากคำศัพท์และเนื้อหาที่เกี่ยวข้องกับโครงการนี้ ผู้เขียนคิดว่าน่าจะเพียงพอต่อการทำความเข้าใจระบบที่ผู้เขียนออกแบบ ต่อไปนี้ผู้เขียนจะเล่าประสบการณ์ที่ได้ ทดลองและทดสอบมาในระยะเวลา 1 เดือนที่ผ่านมา ทั้งการเก็บรายละเอียดต่างๆในปัญหาต่างๆที่พบเจอ ในแต่ละส่วนมาเล่าให้ฟัง เพื่อการพัฒนาในครั้งถัดๆไป หรือ การนำไปต่อยอดยังคงต้องได้รับการพัฒนาเพิ่มเติม ทั้งยังเป็นการบันทึกความจำของผู้เขียนด้วยอีกทางหนึ่ง


แรกเริ่มผู้เขียนอยากทำเป็น Video Streaming อย่างที่เกริ่นเอาไว้ในตอนต้น ว่าอยากได้กล้องวงจรปิด ความคิดแรกถ้าได้ระบบกล้องวงจรปิดในราคาไม่แพง ก็คงต้องนำ ESP32 มาประยุกต์ใช้งานนี้แหละ โดยกำหนดโจทย์ว่า จะทำ CCTV ที่สามารถดูผ่าน Website ได้ 4 Channel และสามารถต่อใช้งานเพิ่มเติมในอนาคตได้ จริงๆแล้วที่ขายอยู่บนท้องตลาดตอนนี้ก็ออก internet เพื่อดูผ่านเว็บไซต์ได้ แต่ Solution และราคานั้นผู้เขียนไม่ทราบและไม่ขอกล่าวถึง 




ผู้เขียนได้นำ ESP32Cam มาตรวจสอบและตรวจเช็ค ว่าสามารถใช้งานได้ทุกตัวหรือไม่ เริ่มตั้งแต่ กล้องทำงานได้หรือไม่ ไฟเข้าบอร์ดแล้วทำงานปกติ และ สามารถ Flash Source code เข้าไป IC ได้ตามปกติ ทั้งหมดสามารถใช้งานได้ 

จากนั้นก็เริ่มทดลองว่าทำอย่างไรถึงจะ stream video มาแสดงผลบนเว็บได้คำตอบ คือ จะต้องให้ ESP32 และ Web Application เขียนโปรแกรมเพื่อสื่อสารกัน ผ่านช่องทาง PORT ของคอมพิวเตอร์ที่เรียกว่า Web Socket เพื่อส่งข้อมูลมาแสดงผลบนเว็บตามที่เราต้องการ



เมื่อทดสอบได้ตามที่คาดหวังแล้ว ผู้เขียนก็นำบอร์ดมาประกอบเป็นกล้องโดยใช้กล่องพลาสติกเจาะรูแล้วนำมาต่อเข้าไฟบ้าน พร้อมทั้งทำ Forward Port เพื่อผ่าน Internet ภายนอกได้ โดยไปผ่าน Free DNS เพื่อใช้งานจึงไม่อาจเผยบางส่วนได้ 


ผลลัพท์ที่ใช้ Web Socket Video Stream นี้ได้รับผลที่น่าพอใจในระดับหนึ่ง ปัญหาที่พบ คือ

    ปัญหาการหลุดเชื่อมต่อ internet ของ Board

    ปัญหา Library ที่ยังมี Error ที่ตัวบอร์ดอยู่

    ปํญหาการดูผ่าน Internet เพราะ DNS ภายนอกจะยอมให้แสดงผลรูปภาพก็ต่อเมื่อต้องเข้ารหัส HTTPS ก่อน ซึ่งพวกนี้จะมีค่าใช้จ่ายทั้งหมด


ผู้เขียนมีแนวคิดว่า จะให้แสดงผลแบบ Real Time แต่ยังมีความไม่เสถียรแบบนี้ คงจำเป็นต้องได้รับการปรับปรุงเสียก่อน ประกอบในการจะประยุกต์ร่วมกับการใช้งาน Face Detection นั้นวิธีที่ง่าย คือ ประมวลผลจากรูปภาพทีละรูปจะง่ายกว่าการประมวลผลจาก Video ที่ Flood Data มาให้ Server จนประมวลผลไม่ทัน และต้องการที่จะดูย้อนหลังได้ สรุปคือ ตัด Video แสดงผลผ่านเว็บออกไปก่อน




จากนั้นผู้เขียน ก็เปลี่ยน Concept ในการรับข้อมูลรูปภาพเพื่อนำมาประมวลผลด้วยเทคนิค Face Detection อย่างที่กล่าวผลก็ได้รับอย่างที่น่าพอใจในระดับหนึ่ง โดยระบบสามารถที่จะตรวจจับใบหน้าได้ แล้วเข้าเงื่อนในการส่งข้อความไปยัง Line Notify




 เมื่อทดสอบระบบ Server Face Detection จนได้ผลที่ในระดับที่พอใจแล้ว ก็นำมาติดตั้งในสถานที่จริง ก็เอา Board มาแต่งตัวให้มันก่อน โดยเอากล้องวงจรปิดที่เป็นระบบอนาล็อกไม่ได้ใช้แล้วมาใส่แทน




แล้วก็เอามาติดตั้งที่สถานที่จริง (เป็นการชั่วคราว) ยังคงต้องมีการขยับและนำมา Build Source code ใหม่เพื่อปรับปรุง สังเกตว่าจะเอาผ้าพันเอาไว้




เมื่อทำการทดสอบระบบจริงในการตรวจจับ ผลที่ได้อยู่สามารถตรวจจับได้ เฉพาะช่วงเวลาเย็น เนื่องจากกล้องทำการวัดแสงให้อย่างพอดี จึงทำให้เกิดเงาดำที่ใบหน้า จำเป็นจะต้องปรับทิศทางใหม่ เพื่อหลีกเลี่ยงแสงที่ไม่เท่ากันในพื้นที่



ปัญหาอีกอย่างหนึ่งที่ต้องได้รับการแก้ไข แต่จะต้องเป็นรูปแบบในการออกแบบ Board ใหม่เพราะว่า LED Flash ที่ Build-in ติดอยู่กับ Board ESP32Cam นั้น ตามรายละเอียดที่ระบุไว้ว่า ขา GPIO4 จะต่ออยู่กับ SDCard และ LED Flash จึงทำให้ LED ทำงานตลอดเวลาแม้ว่าจะไม่ต้องการให้ทำงานก็ตาม 

ปัญหาที่เกิดจาก Flash ด้วยแรงกระเพื่อมของกระแสที่ใช้งานสูงทำให้เกิด Transient และ noise ที่เกิดในรูปภาพ





สรุปสิ่งที่จะต้องปรับปรุงและพัฒนาต่อยอด

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

  • Board ต้องได้รับการออกแบบใหม่ อาจจะต้องใช้ Module กล้องที่มีคุณภาพมากขึ้น และ ตัด flash ออกจาก build in
  • ปรับปรุง Source Code ในการทำ Video Stream เพื่อรองรับการแสดงผล หรือเพิ่ม Board ใหม่โดยแยกการส่งภาพและ Video Stream แยกออกจากกันเพราะว่า Board หนึ่ง Board จะ Config Resolution ได้เพียงค่าเดียวเท่านั้น
  • พัฒนา Face Detection ให้เป็น Face Recognition เพื่อจดจำใบหน้า หรือ ขั้นต่อไปอาจจะพัฒนาในส่วนของ Post Detection ก่อนก็ได้
  • ปรับปรุงส่วนของ Function ต่างๆ ที่ฝั่งของ Server
  • ปรับทิศทางของกล้องเพื่อหลีกเลี่ยง Contrast ของแสง ควรจะอยู่ในพื้นที่แสงที่เท่ากันหรือหาวิธีในการปรับแสงที่ดีขึ้น


อ้างอิง

https://randomnerdtutorials.com/esp32-cam-ai-thinker-pinout/

https://www.mpja.com/download/ov2640data sheet.pdf?fbclid=IwAR3xif1IN_aGhFAeWtJZiXjwNaH0ovlDn-CDWJqJVP9-4rnW1qRtaS6Bgi8

https://github.com/tzapu/WiFiManager

https://en.wikipedia.org/wiki/Face_detection


แวะมาทักทายกันได้
donate