การสร้าง custom object detection model ด้วย tensorflow ( part 1 model builder )
วันนี้เราจะมาสร้าง model แยกชนิดวัตถุกัน เพื่อความสะดวก เราจะใช้ google colab ในการรันโค้ดละนะ โอเค มาเริ่มกันเลย
มาเริ่มจากการเตรียม model builder กันก่อน
เตรียมไฟล์ใน google drive
- download model
เริ่มจากสร้างโฟลเดอร์ชื่อ Tensorflow ใน google drive … จากนั้นให้ download tensorflow model จาก link นี้ โดยเมื่อ download เสร็จแล้ว ให้ extract ไฟล์ จะได้โฟลเดอร์โครงสร้างแบบนี้
models-master/
|- community/
|- official/
|- orbit/
|- …
ให้เปลี่ยนชื่อโฟลเดอ์จาก models-master เป็น models
2. download protobuf
download protobuf จาก link นี้ โดยให้เลือก release version ล่าสุด ( บทความนี้จะใช้ v3.18.1 )
โดยเนื่องจากผมใช้ windows ดังนั้น
- ผมจะเลือก download protoc-3.18.1-win64.zip … หลังจาก download แล้วให้ extract file ออกมา
- ผมจะต้อง set path ไปยัง โฟลเดอร์ bin
จากนั้นทดสอบโดยการเปิด cmd แล้วรัน protoc จะ print วิธีการใช้งานของโปรแกรมออกมา
3. compile protobuf library
จากโฟลเดอร์ models ในข้อ 1
ให้ลองเข้าไปยัง models\research\object_detection\protos ดูจะพบว่ามีไฟล์ .proto อยู่หลายไฟล์ เราจะมา compile ไฟล์พวกนี้กัน
โดยให้เข้าไปยังโฟลเดอร์ models\research จากนั้นเปิด terminal และรันคำสั่ง
protoc object_detection/protos/*.proto --python_out=.
โดยตอนนี้ในโฟลเดอร์ models\research\object_detection\protos เราจะพบว่าไฟล์ .proto ถูก compile เป็น python file แล้ว
4. โยนโฟลเดอร์ models ไปบน google drive
ให้โยนโฟลเดอร์ models ไปในโฟลเดอร์ Tensorflow บน google drive
มาทดสอบตัว model_builder กัน
ให้เปิด web google colab ขึ้นมา แล้วเลือกสร้าง notebook ใหม่ จะได้หน้าตาแบบนี้
จากนั้นให้เปลี่ยน runtime บน google colab เป็น gpu โดยเลือกเมนู runtime เลือก change type runtime แล้วเลือก gpu
โอเคมาเริ่มเขียน code กัน
- install coco api
ให้เขียน code ใน notebook ตามนี้
!pip install cython
!pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
เมื่อกดรัน จะมีช่อง output ขึ้นมาให้ ถ้าไม่ error ก็ไปขั้นต่อไปกันเลย
2. install object detection api
ในขั้นนี้เราจะ install lib ตามไฟล์ในโฟลเดอร์ models บน google drive … *ให้เช็คก่อนว่าการ upload โฟลเดอร์ models เสร็จแล้วยัง ถ้าเสร็จแล้วก็มาเริ่มเขียน code กัน จะใช้ code ตามนี้
from google.colab import drive
drive.mount(‘/content/drive’)
%cd /content/drive/MyDrive/Tensorflow/models/research
%cp object_detection/packages/tf2/setup.py .
!python -m pip install — use-feature=2020-resolver .
note โดยเราจะ mount ไปยัง path ของ google drive ของเรา ดังนั้นในขั้น cd ให้ check ชื่อโฟลเดอร์ดีๆ เพราะแต่ละคนจะไม่เหมือนกัน
note ขั้นตอนนี้จะรันนานหน่อย ( ของผม 6 นาที )
3. test model builder
เราจะ test กันว่าที่เราทำมาทั้งหมดถูกมั้ย โดยใช้ code ตามนี้
%cd /content/drive/MyDrive/Tensorflow/models/research
!python object_detection/builders/model_builder_tf2_test.py
note ตอนนี้เรา mount บน path ของ google drive ตัวเองอยู่ ดังนั้นในขั้น cd ให้ check ชื่อโฟลเดอร์ดีๆ เพราะแต่ละคนจะไม่เหมือนกัน
ผลการ test จะประมาณนี้
โอเค part1 ประมาณนี้ก่อน … ใน part 2 เราจะมาเริ่มเตรียมข้อมูล train กัน