[AI Tempo Run] Giới thiệu bài toán Scene Text Detection

Lời nói đầu

Ngày nay, kết quả từ lĩnh vực Thị giác máy tính (Computer Vision) đã được áp dụng vào trong nhiều lĩnh vực thực tế và đóng một vai trò quan trọng trong các hệ thống giao thông thông minh, hệ thống điểm danh sử dụng khuôn mặt, nhận diện biển báo giáo thông, … Khi xét riêng về bài toán xác định và nhận diện văn bản trong ảnh (text localization – detection and recognition) cũng được áp dụng rộng rãi trong đời sống như nhận diện biển số xe, tự động đọc các giấy tờ tùy thân như CMTNDD, CCCD. Điểm chung của các hệ thống này đó là bước đầu phải xác định được ví trí chứa văn bản (text) trong ảnh – bài toán Text Detection-Localization . Đây cũng là bài toán mà Câu Lạc Bộ AI – Khoa Khoa học Máy tính lấy làm chủ đề cho cuộc thi AI Tempo Run Mùa Hè này. Hãy cùng tụi mình tìm hiểu thêm về cuộc thi trong bài viết hôm nay với các nội dung:

Trích xuất nội dung text từ ảnh đã được cộng đồng nghiên cứu quan tâm từ lâu. Trong bài toán này dựa vào cách tạo ra dữ liệu người ta có thể chia ảnh chứa text thành 2 loại như sau: (1) Graphic text ảnh mà có text được thêm vào sau khi đã có ảnh ví dụ subtitle của phim, … (2) Scene Text – ảnh mà có text xuất hiện ở dạng tự nhiên – text là thành phần có sẵn trong ảnh. Trong đó, các dữ liệu liên quan đến Scene Text có nhiều thách thức liên quan như độ đa dạng về font chữ, góc nhìn, màu sắc, …

Hình 1: Phân loại ảnh chứa text

Trong lĩnh vực này, người ta có thể chia nhỏ bài toán nhận dạng văn bản trong ảnh thành một số bước cũng như bài toán con như sau: Text Localization, Text Verification, Text Detection, Text Segmentation, Text Recognition. Tuy nhiên, để đơn giản trong bài viết này tập trung vào 2 bài toán con chính đó là Text DetectionText Recognition.

+ Text Detection : phát hiện vùng chứa text trong ảnh. Trong đó input là ảnh, output là vị trí các vùng chứa text có trong ảnh.
+ Text Recognition: nhận dạng text trong ảnh. Mục tiêu của bước này đó là xác định nội dung ( string sequence) chứa trong vùng có text đã xác định qua bước Text Detection


Hình 2: Một số bài toán con liên quan đến nhận dạng text trong ảnh

Trong cuộc thi này, BTC hướng tới các đội thi xác định vị trí chứa text trong bức ảnh được chụp tự nhiên ( Scene Text Detection ), cụ thể hơn đầu vào là ảnh, các đội thi cần xác định các vị trí chứa text trong bức ảnh.

Hình 3: Input và output của bài toán

II. Một số bộ dữ liệu phổ biến

Để phục vụ cho việc nghiên cứu về bài toán Scene Text Detection, thì bộ dữ liệu là một phần rất quan trọng. Sau đây mình sẽ giới thiệu với các bạn một số bộ dữ liệu phổ biến được giới thiệu trong các hội nghị cũng như bộ dữ liệu dành cho cuộc thi lần này.

1. IC13 (ICDAR 2013)

IC13 là bộ dữ liệu bao gồm 561 ảnh (420 ảnh train và 141 ảnh test). IC13 bao gồm 1,015 ảnh văn bản được cắt sau khi loại bỏ các từ có ký tự không phải chữ và số. IC13 thường được sử dụng cho các model dự đoán ký tự Latin.

Bạn có thể tải bộ dữ liệu IC13 tại đây: IC13-Download

Một số ảnh trong bộ dữ liệu IC13 – Nguồn: esearchgate.net

2. IC15

IC15 bao gồm 1,500 ảnh (1,000 ảnh train và 500 ảnh test). Đặc biệt, IC15 có đến 2,077 các trường hợp văn bản được cắt xén, bao gồm hơn 200 văn bản mẫu không phổ biến. Tuy nhiên, do hình ảnh văn bản được chụp bởi Google Glasses mà không đảm bảo chất lượng hình ảnh, nên hầu hết văn bản rất nhỏ, bị mờ và có nhiều hướng.

Bạn có thể tải bộ dữ liệu  IC15 tại đây: IC15-Download

Một số ảnh trong bộ dữ liệu IC15 – Nguồn: esearchgate.net

3. CTW

CTW bao gồm 32,285 ảnh đường phố có độ phân giải cao với  1,018,402 trường hợp kí tự. Tất cả các hình ảnh đều có chú thích cấp độ ký tự: ký tự bên dưới, bounding box và sáu thuộc tính khác.

Bạn có thể tải bộ dữ liệu  CTW tại đây: CTW-Download

Một số ảnh trong bộ dữ liệu CTW – Nguồn: researchgate.net

4. Bộ dữ liệu của cuộc thi

Bộ dữ liệu của cuộc thi có 3,338 ảnh, bao gồm nhãn dữ liệu được đánh tọa độ và nội dung bên trong. Bộ dữ liệu có xuất hiện nhiều văn bản tiếng Việt với các hình ảnh đặc trưng ở Việt Nam, và được cung cấp dưới dạng tập tin ảnh, tương ứng với nhãn dữ liệu theo định dạng ICDAR15. Cụ thể, mỗi ảnh trong tập Train set sẽ có một tệp tin nhãn, trong đó mỗi dòng ứng với một đơn vị văn bản, được thể hiện bởi tọa độ 4 đỉnh đường bao (bounding box) của chữ, kèm theo nội dung bên trong:

x1, y1, x2, y2, x3, y3, x4, y4, text

Lưu ý: BTC không đảm bảo đỉnh (x1, y1) sẽ ở góc trái trên, và không đảm bảo thứ tự các đỉnh được sắp xếp theo chiều kim đồng hồ.

Dữ liệu bao gồm 3,338 ảnh chụp ở các bối cảnh ngẫu nhiên được chia thành 3 tập Train set, Public test, Private test với tỉ lệ như sau:

  • Train set: 1240 ảnh đã được gán nhãn tọa độ và nội dung text.
  • Public test: 987 ảnh chưa được gán nhãn tọa độ và các đội thi cần xác định tọa độ các vùng chứa text (mà không cần xác định nội dung text trong vùng đó)
  • Private test: Tương tự tập dữ liệu Public test với 1,111 ảnh. Tập dữ liệu này không được cung cấp trực tiếp cho các đội thi mà chỉ được dùng để chấm điểm ở vòng chung cuộc.

Một ảnh được sử dụng trong bộ dữ liệu của cuộc thi

III. Các hướng tiếp cận cho bài toán

Thông qua phần trên, các bạn đã được giới thiệu về hai bài toán lớn cho Scene Text, cũng như một số bộ dữ liệu phổ biến được sử dụng hiện nay. Trong cuộc thi AI Tempo Run lần này, chúng ta chỉ tập trung vào bài toán nhỏ hơn là Scene Text Detection. Bài toán này có nhiều cách để tiếp cận, một số ví dụ điển hình như:

  1. Các phương pháp xử lí ảnh căn bản: Một trong những hướng tiếp cận đơn giản cho bài toán này là ứng dụng các phương pháp xử lí ảnh căn bản như xác định góc/cạnh (corner/edge), phân vùng theo màu, hoặc trích xuất các đặc trưng một cách thủ công (handcrafted feature). Tuy nhiên, nhìn chung thì những phương pháp này còn quá đơn giản và chưa thể thích ứng tốt với sự đa dạng của bộ dữ liệu trong cuộc thi.
  2. Tiếp cận theo hướng Phát hiện vật thể (Object detection): Một hướng tiếp cận phổ biến đối với bài toán phát hiện văn bản là coi nó như một bài toán phát hiện vật thể thông thường, và có thể áp dụng các phương pháp phát hiện vật thể dựa trên Deep learning như YOLO (You Only Look Once), hoặc Faster RCNN để đạt được độ chính xác cao hơn so với những phương pháp xử lí ảnh thủ công. Ngoài ra, hiện nay cũng có các phương pháp được thiết kế riêng cho bài toán phát hiện văn bản như EAST, CTPN, …
  3. Tiếp cận theo hướng Phân đoạn vật thể (Object segmentation): Một hướng tiếp cận khác là có thể xem bài toán này dưới góc nhìn của một bài toán phân đoạn vật thể, với mỗi pixel sẽ trả về xác suất pixel đó chứa văn bản. Một số phương pháp phổ biến cho hướng tiếp cận này có thể kể đến như PixelLink, CRAFT, …
Tiếp cận bài toán Scene Text Detection bằng cách phân đoạn ảnh.
Nguồn: Wang et al. (2019)

IV. Độ đo mAP

Mean Average Precision (mAP) là độ đo được sử dụng phổ biến cho bài toán Object Detection. Trước khi tìm hiểu về mAP, ta sẽ nói qua các khái niệm Precision, Recall IoU.

1. Precision và Recall

Hai phần này câu lạc bộ đã có một bài viết rất hay và rõ ràng, bạn có thể đọc tại đây:

Làm thế nào để đánh giá một mô hình Máy học?

2. IoU (Intersection over Union)

Đo độ khớp giữa ground truth(*) bounding box với bounding box mà mô hình dự đoán.

(*): ground truth bounding box có thể hiểu là bounding box của nhãn.

Ảnh minh họa. – Nguồn: devai.info

IoU được tính theo công thức sau:

IoU = (Diện tích giao) / (Diện tích hợp)(**)

(**): diện tích giữa ground truth bounding box với bounding box mà mô hình dự đoán.

Ảnh minh họa. – Nguồn: PyImageSearch.com

3. AP và mAP

Từ precision recall đã được định nghĩa ở trên chúng ta cũng có thể đánh giá mô hình dựa trên việc thay đổi một ngưỡng và quan sát giá trị của precision recall. Khái niệm Area Under the Curve (AUC) cũng được định nghĩa tương tự. Với precision-recall Curve, AUC còn có một tên khác là Average Precision (AP).

Giả sử có 𝑁 ngưỡng để tính precision recall, với mỗi ngưỡng cho một cặp giá trị precision, recall Pn , Rn=1,2,…,N. Precision-recall curve được vẽ bằng cách vẽ từng điểm có toạ độ (Pn) trên trục toạ độ và nối chúng với nhau. AP được xác định bằng:

ở đó (Rn – Rn-1)Pn chính là diện tích hình chữ nhật có chiều rộng (Rn – Rn-1) và chiều cao Pn , đây cũng gần với cách tính tích phân dựa trên cách tính diện tích của từng hình chữ nhật nhỏ.

Nguồn: dothanhblog.wordpress.com

mAP là trung bình của AP được tính cho tất cả các lớp:

(*) n là số lớp

Lời kết

Như vậy là qua bài viết này, mình đã giới thiệu đến các bạn bài toán Object Detection, khái niệm Scene Text, các bộ dữ liệu phổ biến và độ đo mAP cũng như giới thiệu nhanh qua các hướng tiếp cận bài toán. Qua bài viết này, mình hy vọng các bạn có cái nhìn rõ hơn về các vấn đề nhánh trong lĩnh vực Thị giác máy tính cũng như những công cụ phục vụ cho bài toán.

Một lời nhắc nho nhỏ: cuộc thi AI Tempo Run sẽ bắt đầu vào 8h00 thứ Hai ngày 26/07/2021, các bạn có thể đăng ký tham gia ngay tại đường dẫn này: https://forms.gle/xyi5x7CRRGPyNqpu9.

Hẹn gặp lại các bạn trong cuộc thi!

Tùng Lê – KHTN2020


References:

  1. blog.duyet.net/2019/08/ir-evaluation.html
  2. dothanhblog.wordpress.com/2020/04/24/map-mean-average-precision/
  3. devai.info/2020/12/17/tim-hieu-mapmean-average-precision-danh-gia-mo-hinh-object-detection-su-dung-yolov4/
  4. machinelearningcoban.com/2017/08/31/evaluation/#-precision-recall-curve-va-average-precision
  5. tutorials.aiclub.cs.uit.edu.vn/index.php/2020/04/28/phan-biet-bai-toan-trong-cv
  6. github.com/HCIILAB/Scene-Text-Recognition

kadikoy moto kurye umraniye moto kurye tuzla moto kurye atasehir moto kurye moto kurye moto kurye moto kurye moto kurye

Leave a Reply

Your email address will not be published. Required fields are marked *