Mơ hình USB100W03M-L60
Cảm biến IMX335
Kích thước cảm biến 1/2.8 inch
Kích thước pixel 5MP
Diện tích hình ảnh 2592 × 1944
Độ phân giải tối đa FULL HD 1920 (H) X1080 (V)
Định dạng nén MJPG, YVY2
Độ phân giải và khung hình
30 FPS 2592 × 1944 (Full Frame) 30 FPS 1920 × 1080 (Full HD) 30 FPS 1280 × 720 (720P)
Chức năng đặc biệt Điều chỉnh tiêu cự thủ công
Độ rộng tiêu cự 3.91 mm
Kiểu màn trập Màn trập lăn điện tử/ Khung phơi sáng
Giao thức USB USB2.0 HS / FS
Kết nối loại cổng Tốc độ cao USB2.0
Thông sốđiều chỉnh
Độ sáng, Độtương phản, Độ bão hòa, Độ
sắc nét, Gamma, Cân bằng trắng, Độtương
phản của đèn nền, Độ phơi sáng
Thơng sốống kính FOV 106°(D) 92.6°(H) 48.6°(V)
Nguồn cấp Ổ cắm USB Bus POWER 4P-2.0mm
Nguồn cấp DC5V
Điện áp hoạt động 120mA ~ 220mA
Công việc hiện tại 0~60℃ Nhiệt độ làm việc -20~75℃ Kích thước bảng / Trọng lượng 38X38mm (Tương thích 32X32mm / khoảng 30g
Cáp Tiêu chuẩn 1M / 2M tùy chọn, 3M, 5M
35
Camera thu ảnh QRcode
Camera thu ảnh QRcode được đặt đối diện camera thu ảnh gelcard để có thểđồng thời thu ảnh 2 mặt của gelcard từ 2 camera này. Camera thu ảnh QRcode sẽ nằm ngay chính giữa sát phía sau gelcard đểthu được chất lượng ảnh Qrcode/Barcode tốt nhất.
Hình 2.9: Camera thu ảnh Qrcode được sử dụng Bảng 2.2 Thông số kỹ thuật của Camera thu Qrcode Bảng 2.2 Thông số kỹ thuật của Camera thu Qrcode
36
Sơ đồ bố trí các linh kiện trong thiết bị
Thơng qua kích thước của gelcard, việc lựa chọn camera, thông số cũng như
cách lắp đặt camera, để thu được hình ảnh gelcard chất lượng thì các linh kiện sẽ được bốtrí như trong hình 2.10.
Hình 2.10: Cách thức bố trí các linh kiện trong thiết bị
Toàn bộ các linh kiện của thiết bịđược đặt trong khung vỏ cách biệt hoàn toàn
ánh sáng ngồi mơi trường có kích thước 40 x 28 x 24 cm. Camera tại vị trí (1) có chức năng thu nhận ảnh Gelcard gồm các cột ngưng kết và thông tin bệnh nhân do kỹ thuật viên ghi. Camera 1 được đặt trên bệ có chiều cao từ mắt camera xuống sàn d = 8 cm. Camera tại vị trí (2) có chức năng thu ảnh mặt sau của card có chứa code thơng tin về thẻ. Gelcard có kích thước chiều rộng 7.4 cm, chiều cao 5.2 cm
được đặt cố định tại vị trí cách mắt camera 1 khoảng cách là 7.6 cm, Gelcard đặt
trên giá có độ cao 5.7 cm. Tấm bìa nền màu trắng có kích thước chiều rộng 22 cm, chiều cao 16.6 cm được đặt cốđịnh, vị trí cách mắt camera 1 khoảng cách là 21.2 cm.
Thiết kế phần mềm
Phần mềm cho hệ thống định danh nhóm máu được thiết kế gồm 2 chương trình. Một là phần mềm quản lý dữ liệu bệnh nhân được viết trên nền tảng windowform C#.
37 Hai là phần mềm phân loại nhóm máu dựa trên gelcard được thực hiện trên nền tảng python. Hai khối chương trình phần mềm được kết nối dữ liệu trên CSDL mysql.
Hình 2.11 Sơ đồ tổng quan phần mềm
Quy trình tổng quan thực hiện:
Kỹ thuật viên hoặc nhân viên y tế sẽ đăng nhập vào phần mềm quản ký hệ
thống với một tài khoản và mật khẩu được cung cấp mặc định. Sau khi đăng nhập thành công, các kỹ thuật viên vào mục thông tin bệnh nhân để thực hiện tạo dữ liệu bệnh nhân (như họvà tên, ngày tháng năm sinh,địa chỉ, …) với Qrcode được xác
định.
Với gelcard chứa các thông tin bệnh nhân vừa được tạo, kỹ thuật viên bắt đầu với chương trình phân loại nhóm máu. Khi kết thúc q trình phân loại, kết quả trả
về và hiển thị thông báo, y bác sỹ sẽlưu lại giá trị này.
Trên phần mềm quản lý dữ liệu bệnh nhân, bác sỹ sẽ tra cứu được kết quả của từng bệnh nhân theo mã barcode và theo họ tên, cũng như có thể chỉnh sửa lại kết quảđó nếu có bất thường.
38
Phần mềm quản lý dữ liệu
Hình 2.12 Lược đồ chung của phần mềm quản lý
Kỹ thuật viên hoặc bác sỹđăng nhập phần mềm quản lý dữ liệu. Giao diện phần mềm gồm 2 phần, đó là phần thơng tin bệnh nhân và phần kết quả từchương trình
phân loại nhóm máu. Ở phần thơng tin bệnh nhân, các kỹ thuật viên thực hiện qoét mã vạch Qrcode/Barcode và kê khai vào phần bệnh nhân như hình bên dưới. Phần trả kết quả, các kỹ thuật viên tìm kiếm thông tin cũng như kết quả bệnh nhân theo
mã Qrcode/Barcode đi theo gelcard của từng mẫu bệnh phẩm. Sau khi chỉnh sửa lại kết quả thì kỹ thuật viên sẽlưu lại để hồn tất q trình.
39 Phần mềm được thiết kếcơ sở dữ liệu đơn giản trước và là cơ sở để phát triển
hơn nữa trong thời gian sắp tới. Cở sở dữ liệu được thiết kếcho người bệnh. Cơ sở
dữ liệu được trình bày trong Hình 2.14.
Hình 2.14 Bảng CSDL bệnh nhân
Bảng bệnh nhân gồm các trường: ID, username, birday, address, barcode, bloodtype, Rh, img. Bảng này cho phép lưu các kết quả xét nghiệm, có thể truy xuất và xóa kết quả. Tại đây người dùng có thể lưu kết quả, xóa kết quả, và tìm kiếm kết quả.
Chương trình phân loại nhóm máu a. Xử lý ảnh QR code / Barcode
Barcode (hay còn gọi là Mã vạch) là một phương thức biểu thị dữ trên các bề
mặt của sản phẩm, hàng hóa mà máy móc có thể đọc được. Trước đây, Barcode lưu trữ dữ liệu theo bề rộng của các vạch được in song song cũng như của khoảng trống giữa chúng. Nhưng ngày nay chúng còn được in theo các mẫu của các điểm,
theo các vòng tròn đồng tâm hay chúng ẩn trong các hình ảnh. Barcode có thể được đọc bởi các thiết bị quét quang học gọi là máy đọc mã vạch hay được quét từ
hình ảnh bằng các phần mềm chuyên biệt.
Mã 1D (mã vạch một chiều) là loạimã vạch tuyến tínhthơng dụng, được cấu tạo bởi các vạch sọc đen trắng song song xen kẽ. Mã 1D được gọi là “mã vạch một chiều” bởi các dữ liệu được mã hóa trong nó được thay đổi chỉ dựa theo một chiều duy nhất – chiều rộng (ngang).
40 QR Code là mã vạch ma trận (matrix-barcode) dạng mã vạch hai chiều (2D) có chứa thơng tin nhà sản xuất muốn cung cấp, được đọc bởi một máy đọc mã vạch hay điện thoại có chức năng chụp ảnh (camera).
Luồng thu ảnh từ Camera thứ 2 của hệ thống có nhiệm vụ lấy ảnh ở mặt sau
Gelcard, nơi nhà sản xuất Gelcard có dán mã QRcode / Barcode của Card đó lên.
Mã Barcode sẽ chứa các thơng tin về loại thẻ, mã số thẻ, ngày tháng sản xuất thẻ. Camera 2 tiến hành đọc QRcode như sơ đồ trong Hình 2.15.
Hình 2.15 Sơ đồ xử lý ảnh Qrcode-Barcode
b. Xử lý ảnh phát hiện ngưng kết
Quá trình xử lý ảnh để phát hiện ngưng kết được trình bày trong sơ đồ Hình 2.16. Trình tự thu nhận, xử lý hình ảnh ngưng kết được thực hiện trên mã nguồn Python, môi trường phát triển IDE là Pycharm, trong đó sử dụng mã nguồn mở OpenCV để xử lý ảnh và hiển thị giao diện dùng PyQT5.
Với camera 1 ta thu được ảnh chụp Gelcard ởkích thước 640x480. Để dễ dàng cho việc xử lý thiết bị sẽxác định và tách ra vùng quan tâm toàn cục, vùng này sẽ
chỉ chứa hình ảnh các cột Gelcard và tấm dán ở dưới có thơng tin của bệnh nhân
41 lý trên thiết bị, phần thông tin này được sử dụng cho kỹ thuật viên nhập thông tin trên phần mềm sử dụng). Do Gelcard đã được cốđịnh trên giá với độ dịch chuyển là không đáng kể, khoảng cách từgelcard đến camera và kích thước được xác định, và tấm nền background có kích thước cụ thể, nó được đặt tại khoảng cách mà được lấp đầy trong khung hình 640x480 của camera. Do đó dễ dàng tìm ra được vùng quan tâm tồn cục sẽ có kích thước 524 x 303 pixel với tọa độ tại 2 góc đầu và cuối được tính tốn lần lượt là (58, 127) và (582, 430) [5]. Vùng quan tâm toàn cục được xác định và tách ra được thể hiện như hình 2.17.
42
Hình 2.17 Hình ảnh sau quá trình tách vùng quan tâm tồn cục
Sau khi đã có vùng quan tâm tồn cục với kích thước 524 x 303 pixel được tách một cách chính xác, ta sẽ tách riêng vùng hình ảnh các cột gel và phần ghi thơng tin bệnh nhân. Vùng hình ảnh chứa chọn 6 cột gel được đo nằm trong kích thước 524 x 127 pixel được tách riêng để xử lý. Vùng mới này tên gọi là vùng quan tâm cục bộ và ảnh của vùng này sẽ được xử lý xuyên suốt cho ra kết quả của chuỗi
ngưng kết. Tính tốn trên vùng quan tâm cục bộ ta thấy độ cao các cột gel theo
phương dọc từ pixel 30 đến 115, độ rộng của các cột gel là 38 pixel.
Hình 2.18 Vùng quan tâm cục bộ
Đểtăng cường chất lượng ảnh, bước tiếp theo ta sẽtăng cường độ sáng cho bức
ảnh. Tại đây, ảnh được chuyển sang miền HSV (Hue Saturation Value, tại miền HSV giá trị Pixel được biểu diễn với 3 tham số là H: bản chất cái pixel đó màu gì; S: độ xám của pixel đó; V: độ sáng của pixel đó) và thực hiện tăng giá trị V của bức ảnh đểtăng độsáng, sau đó chuyển lại ảnh về miền RGB để quan sát [6].
Tại bước làm nổi bật màu, ta tiếp tục chuyển ảnh sang miền HSV và phân
ngưỡng ảnh theo giá trịS (độxám). Như vậy, điểm ảnh nào có giá trịdưới ngưỡng sẽcó độ xám lớn nhất, điểm ảnh nào có giá trị trên ngưỡng sẽcó độ xám nhỏ nhất,
điều này sẽ làm cho màu sắc bức ảnh trở nên tươi hơn và ta chuyển lại ảnh sang miền RGB để quan sát.
43 Có thể dễ dàng nhận định, các điểm ảnh thể hiện độ ngưng kết sẽ có bản chất
màu là màu đỏ, các điểm ảnh là nền sẽ có màu vàng và xanh lá, màu của dung dịch trong cột gel cũng vậy. Trong bước này, ta lợi dụng thang màu xanh lá trong bức
ảnh RGB, các pixel màu đỏ trong thang xanh lá sẽ có giá trị nhỏ nhất và khác biệt so với các điểm ảnh cịn lại. Do đó, ảnh trong thang xanh lá sẽlàm tăng cường độ
hiển thị của các khối ngưng kết [5].
Ảnh ởthang màu xanh lá được chuyển vềảnh thang xám dùng để tách các khối
ngưng kết. Sử dụng bộ lọc Gauss với điểm nhiễu sẽ bị làm biến đổi giá trị theo các
điểm xung quanh làm cho giá trị tại điểm nhiễu vượt ngưỡng xét trong quá trình xét tại thang xám.
Sau khi được làm mờ, ảnh tại thang xám sẽ có 255 mức xám sẽđược lấy ngưỡng cốđịnh để tách các khối ngưng kết ra khỏi nền ảnh và chuyển sang ảnh nhị phân [5]. Lí do sử dụng ngưỡng cứng bởi vì các khối ngưng kết đã quá rõ ràng so với nền nên không cần thiết phải sử dụng phương pháp phân ngưỡng khác. Từ biểu đồ
histogram mức xám đồ, thu được dữ liệu 2 giá trị đỉnh mức xám của vùng ngưng
kết và phần nền. Qua thống kê và thử nghiệm đưa ra lựa chọn ngưỡng cốđịnh phù hợp [7].
Nhận thấy hình ảnh sau khi lấy ngưỡng chuyển sang ảnh nhị phân, các khối
ngưng kết vẫn còn nhiễu và chưa thực sựrõ ràng. Để khắc phục tình trạng này, ta sử dụng tiếp phép biến đổi hình thái học, cụ thể ở đây sử dụng là phép biến đổi Dilation (sự giãn nở) và Erosion (sự xói mịn) [8]. Phép biến đổi hình thái là một sốthao tác đơn giản dựa trên hình dạng của hình ảnh. Nó thường được thực hiện trên hình ảnh nhị phân. Nó cần hai yếu tốđầu vào, một là hình ảnh gốc của chúng
ta, đầu vào thứhai được gọi là phần tử cấu trúc hoặc hạt nhân quyết định bản chất của hoạt động. Hai tốn tửhình thái cơ bản là xói mịn và giãn nở.
Erosion - Mục đích của phương pháp này sẽ giúp:
• Loại bỏ những pixel nhiễu cơ lập
• Loại bỏ những pixel nhiễu xung quanh đối tượng giúp cho phần viền (cạnh) của đối tượng trở nên mịn hơn
44 • Với những hình ảnh bị đứt nét có thể giúp nối liền ảnh lại
• Với những pixel nhiễu xung quanh đối tượng sẽ trở thành viền của đối tượng
• Giúp nổi bật đối tượng trong ảnh hơn
Sau đó xử lý phát hiện ngưng kết có thể sử dụng thuật toán phát hiện đường biên vật thể [9]. Do ảnh được chụp trong mơi trường ít biến động, vị trí Gelcard
được đặt chuẩn chính giữa tâm Camera 1, nên vị trị các cột gel trong ảnh ít biến
động và có thểđược tách ra. Tại mỗi cột gel sau khi được tách riêng theo vị trí và
kích thước đã trình bày ở trên sẽđược xét ngưỡng theo phương dọc được chia theo sốpixel tương ứng để phân vùng: vùng 1 từ pixel 30 đến pixel 50, vùng 2 từ pixel 50 đến pixel 60.5, vùng 3 từ pixel 75 đến pixel 90, vùng 4 từ pixel 90 đến 105, vùng 5 từpixel 105 đến 115.
Sau khi đã có đường biên của vật thể sẽ tiếp tục tính tốn trọng tâm, diện tích của vật thể. Vì vị trí cột gel đã biết nên ta sẽ chỉ giữ lại các vật thể nằm trong cột gel sau khi tính tốn trọng tâm, diện tích vật thể. Các vật thể nằm trong từng cột gel sẽđược đánh giá vùng mà nó xuất hiện. Tổng hợp các đánh giá cho ta được kết quả của các mức ngưng kết. Sau khi có kết quả mức ngưng kết, dữ liệu các chuỗi
ngưng kết sẽ được tổng hợp để cho ra kết quả định danh nhóm máu. Kết hợp với mã Barcode và thơng tin đăng ký bệnh nhân ban đầu đểlưu trữ lại dữ liệu kết quả thông qua CSDL mysql được thể hiện trên lược đồ hình 2.19.
45
CHƯƠNG 3. KẾT QUẢ THỰC TẾ
Trong chương 3 sẽ trình bày về các kết quả thực tế của việc thiết kế thiết bị từ
lắp ráp linh kiện đến các quá trình xử lý.
Lắp ráp linh kiện trên thiết bị Lắp đặt camera Lắp đặt camera
Thiết bị sử dụng 2 camera với 2 mục đích khác nhau nên được thiết kế và lắp
đặt tại các vị trí hồn tồn khác nhau. Camera thu ảnh gelcard được bố trí tại vị trí
ở đầu chính giữa của hệ thống với nhiệm vụ thu nhận chính xác hình ảnh các cột
gel để xử lý. Camera 1 thu nhận ảnh gelcard được đặt lên bệsao cho độ cao của camera so với sàn là d = 8 cm. Camera thu ảnh QRcode được đặt đối diện camera thu ảnh gelcard để có thể đồng thời thu ảnh 2 mặt của gelcard từ 2 camera này.
Camera được đặt tại vị trí chính giữa gelcard cách gelcard khoảng cách 4.0(cm), cho quá trình thu ảnh QRcode chính xác nhờ tính năng lấy nét tự động. Camera
được kết nối trực tiếp với máy tính xử lý thông qua cáp kết nối USB.
46
Lắp đặt Gelcard và khung vỏ
Gelcard được đặt lên giá và ở vị trí cách camera 1 thu nhận hình ảnh cột gel một khoảng cách là 7.6 cm. Chiều cao của giá là 5.7 cm. Tầm bìa nền trắng có kích
thước 22x16.6 cm được đặt tại vị trí cách mắt camera 1 khoảng cách là 21.2 cm sao cho nó lấp đầy khung hình 640x480 pixel.
Để việc thu nhận ảnh các gelcard từcamera được thuận lợi nhất, tránh các tác nhân nhiễu từ bên ngoài, các chi tiết gelcard và camera được đặt bên trong khung vỏ của thiết bị cách biệt với ánh sáng ngồi mơi trường. Kích thước khung vỏđược thiết kế dạng hình hộp chữ nhật với kích thước độ rộng, chiều dài, độ cao là 40 x 28 x 24 cm. Khung vỏ của thiết bị được thể hiện như hình 3.2