การสร้าง custom object detection model ด้วย tensorflow ( part 1 model builder )

Nattawat Songsom
3 min readOct 20, 2021

--

วันนี้เราจะมาสร้าง model แยกชนิดวัตถุกัน เพื่อความสะดวก เราจะใช้ google colab ในการรันโค้ดละนะ โอเค มาเริ่มกันเลย

มาเริ่มจากการเตรียม model builder กันก่อน

เตรียมไฟล์ใน google drive

  1. 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 กัน

  1. 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 กัน

ref Training Custom Object Detector — TensorFlow 2 Object Detection API tutorial documentation (tensorflow-object-detection-api-tutorial.readthedocs.io)

--

--

No responses yet