MỤC LỤC
Trong những năm gần đây, sự phát triển của tất cả các lĩnh vực trên thế giới đang càng ngày càng nhanh, nhất là về lĩnh vực công nghệ thông tin. Vì vậy, ta cần có một hệ thống có thể đọc, trích xuất và chọn ra đúng thuốc cho người mua mà họ không cần phải đến tiệm thuốc.
Con người luôn muốn tìm cách để ứng dụng tối đa công nghệ để đáp ứng nhu cầu của con người nhằm khiến mọi thứ dễ dàng hơn. Hàng hóa sẽ được đặt trên trang web của các công ty lớn nhưng Alibaba, Amazon và sẽ được chuyển đến tận nhà của người mua.
Với các bài toán phân đoạn bằng học sâu, có hai yếu tố được nghiên cứu nhiều nhất đó chính là: trích xuất đặc trương theo nhiều tầng(Multi-level deep feature integration) [8] và trích xuất đặc trưng theo nhiều kích cỡ(Multi-scale feature extraction)[9]. Các tầng RSU để decode này sẽ nhận đầu vào là các đặc trưng giàu thông tin từ các tầng thấp hơn, phức tạp và mang tính toàn cục hơn kết hợp với đặc trưng từ các RSU encode cùng tầng với các thông tin cục bộ hơn của tầng đó là kết hợp vào RSU decode.
Trong bài báo, nhóm tác giả giới thiệu DBNet với mục tiêu tối ưu thời gian trong quá trình hậu xử lý trong các phương pháp phát hiện chữ bằng mô hình phân đoạn phân đoạn (segmentation-based) mà yêu cầu sử dụng ngưỡng (threshold) để thực hiện nhị phân hóa (binarization), tức là để phân biệt điểm ảnh nào là phông nền (background), điểm ảnh nào của chữ từ bản đồ xác suất (probability map). Cùng sinh ra từ bản đồ đặc trưng như bản đồ xác suất nhưng thay vì thể hiện xác suất điểm ảnh này có phải thuộc đối tương hay không thì bản đồ ngưỡng động thể hiện các điểm ảnh đó có thuộc cạnh bao quanh đối tượng đó không. Trong đó, mỗi kết quả sẽ có ba ảnh, theo thứ tự từ trái sang phải từ trên xuống dưới bao gồm ảnh gốc có kết quả phát hiện chữ, ảnh trực quan hóa thresholdT và ảnh trực quan hóa bản đồ xác suất Pđược trích xuất từ mô hình trong quá trình suy diễn.
Đầu tiêng, ảnh đầu vào của cả hai cách tiếp cận trên đều được qua một mô hình CNN nhằm trích xuất được các đặc trưng từ hình ảnh và sau đó sẽ sử dụng các mô hình ngôn ngữ như Seq2Seq [26] và Transformer để nhận dạng ký tự. Mô hình CNN dùng trong bài toán OCR(Optical Character Recognition)nhận đầu vào là một ảnh, thông thường có kích thước với chiều dài lớn hơn nhiều so với chiều rộng, do đó việc điều chỉnh tham số stride size của tầng pooling là cực kì quan trọng. Một ảnh qua mô hình CNN, sẽ cho một bản đồ đặc trưng có kích thước kênh x chiều cao x chiều ngang, này sẽ trở thành đầu vào cho mô hình LSTM(Long short-term memory), các đặc trưng sẽ được duỗi thẳng để phù hợp với yêu cầu của mô hình LSTM.
Đây là mô hình có độ chính xác cao, cùng với hai loại mô hình chính là mô hìnhU2-Net đầy đủ, với độ chính xác cao nhưng thời gian thực thi lâu và một mô hình rút gọn, có khả năng thực thi cho ra phân đoạn của đơn thuốc nhanh hơn nhưng độ chính xác lại giảm. Sự khác biệt giữa kiến trúc của hai mô hình trên là số đặc trưng được trích xuất ở tầng giữa bằng cácfilter. Ảnh đầu vào đều được chỉnh xuống độ phân giải 320x320 và tăng thêm dữ liệu huấn luyện bằng cách lật ảnh theo chiều ngang và ngẫu nhiên cắt một phần ảnh.
Bởi vì đầu ra của mô hình CRAFT [3] là các bản đồ nhiệt, ta có thể dùng dilation, hay còn gọi là sự giản nở, làm toán tử áp dụng lên ảnh bản đồ nhiệt được tạo ra từ mô hình CRAFT [3]. Với cột bên trái, các ký tự đơn như các số 0, 1 bị mất do bản đồ nhiệt tương ứng nhỏ, bị mô hình xem là nhiễu, các từ đứng rời rạc, mỗi từ được đặt trong một bao đóng. Với cột bên phải, khi sử dụng dilation với kernel 3x5, bản đồ nhiệt của các ký tự lớn hơn, khiếng các con số đứng riêng lẻ được phát hiện một cách đầy đủ, hạn chế mất mát thông tin và các từ được nối với nhau trong một bao đóng, giúp quá trình thực thi của mô hình nhận diện phía sau trở nên dễ dàng hơn.
Tính năng này khiến cho các từ gần nhau ở một mức nhất định có thể được nối lại thành 1 câu có độ dài tương đối, làm đầu vào cho mô hình nhận diện ký tự. Còn với dilation quá lớn, các bao đóng ở các hàng khác nhau sẽ bị gộp lại, làm sai kết quả phát hiện ký tự và gây khó khăn cho mô hình nhận dạng ký tự. FRAMEWORK TRÍCH XUẤT THÔNG TIN TỪ ĐƠN THUỐC để cho ra kết quả bao gồm tọa độ bao đóng đó từ mô hình phát hiện, đọan ký tự thể hiện nội dung của bao đóng đó từ vietocr và cuối cùng là độ tự tin(confident score)của đoạn ký tự đó.
Sau khi đã có được tên thuốc từ mô hình phân loại tên thuốc và số lượng của các thuốc từ thuật toán trích xuất số lượng, chúng tôi xây dựng thêm một thuật toán nhằm nối tên thuốc với số lượng tương ứng. Với mỗi dòng tên thuốc phân loại được, nếu các dòng liền kề nhau đều chỉ đến một thuốc trong cơ sở dữ liệu thì các dòng đó sẽ được kết hợp lại với nhau thành một đầu thuốc duy nhất và dòng đầu tiên sẽ tượng trưng cho vị trí của thuốc đó. Các tên thuốc và số lượng cùng một hàng sẽ được thêm vào cùng 1 dòng trong ma trận, các tên thuốc và số lượng không cùng hàng sẽ được để tại các hàng khác nhau.
Tên thuốc trên đơn này chỉ bao gồm tên thuốc, không có thành phần hay hàm lượng nên thuật toán sẽ trả về đúng thuốc có tên là Mimosa với mã là 00004956 và tên thuốc trên cơ sở dữ liệu là MIMOSA OPC 5X10 - VIÊN AN THẦN. • Với tên thuốc chỉ có biệt dược, Đây là tên thuốc chỉ chứa một thành phần trong cả ba phần nên tất cả mã sản phẩm có biệt dược trùng với tên thuốc sẽ được trả về, dù chúng có thành phần và hàm lượng khác biệt với nhau. • Với thuốc bao gồm thành phần và hàm lượng, thiếu đi biệt dược thì kết quả trả về là tất cả mã sản phẩm mà trong đó, chúng đều có thành phần và hàm lượng tương ứng dù biệt dược có khác biệt.
• Nếu chúng ta không có thuốc nào khớp với biệt dược và thành phần của tất cả các thuốc trong cơ sở dữ liệu, kết quả trả về sẽ là một chuỗi rỗng. Ta có thể nhấn Browse files để tải ảnh lên, framwork sẽ xử lý và trả về kết quả phía bên phải gồm các đầu thuốc, số lượng, đơn vị tương ứng mà mô hình nhận diện được từ đơn và các đầu thuốc tương ứng tìm kiếm theo mã sản phẩm được từ cơ sở dữ liệu tên thuốc. Ta có thể bật tắt chức năng xem ảnh đầu ra để chuyển đổi giữa ảnh được gửi lên và ảnh do mô hình trả về gồm các bao đóng chưa tên thuốc, số lượng và đơn vị cũng như các ký tự chưa trong các bao đóng đó.
Để dễ trực quan hóa, các bao đóng chứa tên thuốc sẽ có màu đỏ, là các bao đóng được gán nhãn là 1 và các bao đóng còn lại có màu xanh, gán nhãn là 0. Đôi khi, các tên thuốc rất giống nhau hoặc trên đơn thuốc chỉ chứa thành phần, thì ta cần sử dụng trường dữ liệu thành phần để có thể tìm kiếm được mã thuốc phù hợp với tên. Với mô hình phân đoạn phần quan trọng trong ảnh, các tham số được để mặc định từ mô hình gốc của bài báoU2-Net [1] để huấn luyện mô hình đầy đủ và cả mô hình rút gọn.
Kết quả cho thấy mô hình không sử dụng phân đoạn có thời gian thực thi lâu nhất, vì chúng tôi không bỏ đi các bao đóng không quan trọng mà lấy hết tất cả, khiến cho các mô hình sau phải dự đoán nhiều đối tượng hơn. Dù có thể trích xuất các thông tin trong ảnh đơn thuốc chính xác cao, framework vẫn có các hạn chế về độ chính xác cũng như đôi khi trả về các kết quả sai do sai một hoặc nhiều bước trong một mô hình nào đó. Các lỗi sai phổ biến gặp phải của framework là phân đoạn làm mất đi tên thuốc, mô hình phân loại tên thuốc bỏ sót các tên thuốc xuất hiện trong hình ảnh đơn thuốc và mô hình nhận diện ký tự dự nhầm lẫn.
Cần gán nhãn thêm nhiều dữ liệu hơn để có thể huấn luyện sâu hơn các mô hình phân đoạn, nhận dạng ký tự và phân loại tên thuốc nhằm khắc phục các lỗi sai đang mắc phải. Cải thiện thuật toán tìm kiếm các tên thuốc trong cơ sở dữ liệu thuốc. Ta có thể sử dụng các công cụ đã thiết kế sẵn cho việc tìm kiếm tên thuốc hoặc xây dựng các mô hình học sâu để tìm kiếm các đặc trưng tương ứng trong đơn thuốc.
Sau khi qua xử lý cũng như tính toán, mạng nơ-ron xuất ra giá trị từ các tầng giá trị đầu ra tương ứng với axon truyền tín hiệu ra các nơ-ron thần kinh khác. Cửa sổ trên trượt trên khung hình và tính toán được giá trị đầu ra bằng phép tính chặp dựa trên những điểm ảnh xung quanh nhau có kích thước bằng kích thước cửa sổ. Với mạng ANN thông thường, ta cần duỗi thằng bức ảnh ra và tất cả các giá trị đầu vào của ảnh đều nối với các nơ-ron, làm cho số trọng số cần phải học rất hơn.
Địa chỉ liên hệ: 90/42 Nguyễn Bỉnh Khiêm, P.Vĩnh Quang, TP.Rạch Giá, Tỉnh Kiên Giang.