,----,
,/ .`|
,` .' : ,---, ,--,
; ; /,--.' | ,--, ,--.'| ,---,
.'___,/ ,' | | : ,--.'| | | : ,---, ,---.'|
| : | : : : | |, : : ' ,-+-. / | | | :
; |.'; ; : | |,--. ,--.--. `--'_ | ' | ,--.--. ,--.'|' | | | |
`----' | | | : ' | / \ ,' ,'| ' | | / \ | | ,"' | ,--.__| |
' : ; | | /' :.--. .-. | ' | | | | : .--. .-. | | | / | | / ,' |
| | ' ' : | | | \__\/: . . | | : ' : |__ \__\/: . . | | | | |. ' / |
' : | | | ' | : ," .--.; | ' : |__ | | '.'| ," .--.; | | | | |/ ' ; |: |
; |.' | : :_:,'/ / ,. | | | '.'|; : ;/ / ,. | | | |--' | | '/ '
'---' | | ,' ; : .' \; : ;| , /; : .' \| |/ | : :|
`--'' | , .-./| , / ---`-' | , .-./'---' \ \ /
`--`---' ---`-' `--`---' `----'
,---,. ,--, ___
,' .' |,--.'| ,--.'|_ ,--,
,---.' || | : | | :,' ,--.'| ,---. ,---,
| | .': : ' : : ' : | |, ' ,'\ ,-+-. / |
: : |-,| ' | ,---. ,---. .;__,' / `--'_ / / | ,--.'|' |
: | ;/|' | | / \ / \| | | ,' ,'| . ; ,. :| | ,"' |
| : .'| | : / / | / / ':__,'| : ' | | ' | |: :| | / | |
| | |-,' : |__ . ' / |. ' / ' : |__ | | : ' | .; :| | | | |
' : ;/|| | '.'|' ; /|' ; :__ | | '.'|' : |__| : || | | |/
| | \; : ;' | / |' | '.'| ; : ;| | '.'|\ \ / | | |--'
| : .'| , / | : || : : | , / ; : ; `----' | |/
| | ,' ---`-' \ \ / \ \ / ---`-' | , / '---'
`----' `----' `----' ---`-'
___
,---. ,--.'|_
/__./| ,---. | | :,'
,---.; ; | ' ,'\ : : ' :
/___/ \ | | / / |.;__,' / ,---.
\ ; \ ' |. ; ,. :| | | / \
\ \ \: |' | |: ::__,'| : / / |
; \ ' .' | .; : ' : |__ . ' / |
\ \ '| : | | | '.'|' ; /|
\ ` ; \ \ / ; : ;' | / |
: \ | `----' | , / | : |
'---" ---`-' \ \ /
,----.. `----' ___
/ / \ ,--.'|_
| : : ,---. ,--, ,---, | | :,' __ ,-.
. | ;. / ' ,'\ ,'_ /| ,-+-. / | : : ' : ,' ,'/ /|
. ; /--` / / | .--. | | : ,--.'|' |.;__,' / ,---. ' | |' |
; | ; . ; ,. :,'_ /| : . | | | ,"' || | | / \ | | ,'
| : | ' | |: :| ' | | . . | | / | |:__,'| : / / |' : /
. | '___ ' | .; :| | ' | | | | | | | | ' : |__ . ' / || | '
' ; : .'|| : |: | : ; ; | | | | |/ | | '.'|' ; /|; : |
' | '/ : \ \ / ' : `--' \| | |--' ; : ;' | / || , ;
| : / `----' : , .-./| |/ | , / | : | ---'
\ \ .' `--`----' '---' ---`-' \ \ /
`---` `----'
ความพยายามที่จะแปลงข้อมูลจาก กกต. ที่เป็นภาพเอกสาร 5/18 ให้เป็นตารางข้อมูลดิจิตอล
ข้อมูลเก่าได้มาจาก vote62 เป็นภาพที่ได้จากประชาชนตาม ถ่ายภาพจากหน่วยเลือกตั้งต่าง ๆ ในกรุงเทพมหานครเมื่อตอนเลือกตั้งผู้ว่าราชการกรุงเทพแล้ว นำมาลงในระบบของ vote62 ข้อมูลสามารถเข้าถึงได้ที่ bkk-scoreboard.tar.gz จะแยกข้อมูลออกมาให้อยู่ในไดเร็กทอรี vote62/data โดยที่จะเก็บข้อมูลอภิพันธุ์ที่ vote62/data/metadata.csv ตามแบบข้างล่าง
image province district subdistrict electoral_district_number
1-76a8a53522d479e742bcdc454967b7a8ac20b672.jpeg/data/image กรุงเทพมหานคร คลองเตย คลองเตย 61
0-1-470e0f37283a604db61e1696d6fa4f9a9397f393.jpeg/data/image กรุงเทพมหานคร คลองเตย คลองเตย 59
เพื่อให้ได้ข้อมูลตามข้างบน ให้เปลี่ยนไดเรกเทอรีเป็น vote62 แล้วรันสคริปต์ run.py
ใช้ label studio เพื่อการทำป้ายระบุให้กับข้อมูลที่จะใช้สอน ใน macOS ให้กำหนดตัวแปรก่อนด้วยคำสั่ง
$ export LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true
$ export LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=~/wevis/election-vote-count-66/vote62/data
ใช้จำนวนข้อมูลประมาณ 500 ภาพเพื่อใช้ในการฝึกโมเดลในลำดับต่อไป โดยที่จะแบ่งภาพออกเป็น 4 ประเภทคือ (1) ภาพรายงาน คะแนน 5/18 (2) กระดานคะแนน (3) ป้ายหน่วยเลือกตั้ง (4) อื่น ๆ
สร้างโมเดลด้วย mobileNet ด้วยโครงสร้างอย่างง่ายโดยนำ dense layer 3 ชั้นไปต่อกับโมเดล หลังจากฝึกเสร็จก็นำไปแยก ประเภทภาพออกเป็นแต่ละไดเร็กทอรีย่อย ๆ
โดยในงานชิ้นนี้จะสนใจเฉพาะรายงานผลคะแนน 5/18 ที่จะมีตารางปรากฏอยู่ในภาพ ในขั้นต้นได้ดูภาพคร่าว ๆ พบว่ามีหลายภาพที่ถ่าย ติดหลายใบ เลยเลือกที่จะทำโมเดลตรวจจับตารางก่อน
เราเลือกใช้ Mask RCNN ในการตรวจจับตาราง และข้อมูลที่ใช้อยู่ในแรูปแบบ COCO ซึ่งเป็นแบบที่เป็นที่นิยมในการตรวจจับวัตถุ
เริ่มแรกเราใช้ข้อมูลจาก vote62 ที่เป็นข้อมูลที่ได้มาจากประชาชนที่ไปถ่ายตามหน่วยเลือกตั้งต่าง ๆ ในกรุงเทพมหานคร แล้วนำมา label ด้วย Label Studio ที่มี output format ที่เป็น COCO อยู่แล้ว
ต่อมาหลังเลือกตั้ง กกต. ก็ได้ปล่อยชุดข้อมูลที่เป็นเอกสาร 5/18 ออกมาให้ประชาชนเห็น ตามที่อยู่นี้ เราจึงเพิ่มข้อมูลเข้าไปในชุดข้อมูลสำหรับการฝึกโมเดลเพิ่มอีก
เริ่มแรกผมทดลองด้วยการผสมสองชุดนี้เข้าด้วยกันแต่ปรากฏว่าออกมาไม่ดีนักเมื่อเทียบกับการใช้แค่ข้อมูลชุดที่ได้จาก กกต.
- Table Detection Dataset 740i: ชุดข้อมูลของการตรวจจับตารางบนภาพ จัดอยู่ในรูปแบบ COCO โดยภาพที่ใช้ทั้งหมดมาจาก vote62 และ label ด้วยตัวเอง
- Table Detection Dataset Election 2566
Use synthtiger for generating text image. I use the runpod's VM
$ apt install libfreetype6-dev libharfbuzz-dev libfribidi-dev meson gtk-doc-tools