สอนให้โมเดลตรวจจับวัตถุด้วยTensorflow Object Detection API บน Colab: P1 Installation

Original article can be found here (source): Deep Learning on Medium

Local

  1. Python 3.x
  2. Tensorflow == 1.x (สร้าง venv ใหม่เพื่อความสะดวก)
  3. pandas, PIL
  4. IDE (Text Editor ก็ได้)
  5. Clone repo นี้ ไว้ในเครื่อง เพื่อที่จะง่ายต่อการดัดแปลงโค้ดบางส่วน
  6. อื่นๆจะมีเพิ่มเติมใน Part ต่อๆไป

Note: จะไม่ใช้Hardwareของคอมในการ Train นะครับ แต่จะใช้เพื่อดัดแปลงไฟล์และจัดการเรื่อง Dataset

สร้างโฟลเดอร์

Object-Detection
-data/
-images/
--test/
--train/
-training/
ในโฟลเดอร์หลัก
ในโฟลเดอร์ images

Colab

  1. เปิดใช้งาน GPU ไว้ก่อนเลย (Runtime -> Change runtime type -> Hardware accelerator -> GPU)

2. ติดตั้ง Tensorflow เวอร์ชั่น 1.x

!pip install tensorflow-gpu==1.15.0 --force-reinstall

และรีสตาร์ท runtime

2.Mount Google Drive ของตัวเอง

from google.colab import drive
drive.mount(‘/content/drive’)

3.สร้าง Folder ใน Google Drive เอาไว้ (ผมจะตั้งชื่อว่า gei-project ละกัน, เปลี่ยนแปลงได้ครับ)

4.เปลี่ยน Directory ให้เป็นที่อยู่ของFolderที่สร้างไว้

%cd /content/drive/My Drive/gei-project

5.Clone repository ของ Tensorflow API(s) มาไว้ที่โฟลเดอร์ของเรา

!git clone https://github.com/tensorflow/models.git
!git clone https://github.com/cocodataset/cocoapi.git
!cd cocoapi/PythonAPI; make; cp -r pycocotools /content/models/research/

6.ติดตั้งเครื่องมือที่จำเป็น

!apt-get install protobuf-compiler python-pil python-lxml python-tk
!pip install Cython

จัดการเรื่อง protocol buffers และ environment

%cd /content/drive/My Drive/gei-project/models/research/
!protoc object_detection/protos/*.proto --python_out=.
import osos.environ['PYTHONPATH'] += ':/content/drive/My Drive/gei-project/models/research/:/content/drive/My Drive/gei-project/models/research/slim'

**ทุกครั้งที่เริ่มต้น session ใหม่ ต้องรันโค้ดด้านล่างทุกครั้ง

!python setup.py build
!python setup.py install

7.ไหนๆ ลองทดสอบกันหน่อยว่าเรียบร้อยไหม

!python object_detection/builders/model_builder_test.py

ถ้าได้ output ว่า ok

ก็ถือว่าสำเร็จแล้วครับ คราวนี้ก็ไปจัดการเรื่อง Image Dataset ของเรากันต่อเลยครับ