Trong đó phải kể đến đếm tế bào máu là một ứng dụng quan trọng được các bác sĩ và chuyêngia y tế phân tích để kiểm tra sức khỏe của bệnh nhân.. Vậy nên mục đích của báo cáo này là nhằm c
Tổng quan bài toán đếm tế bào máu trong tin sinh học
Tổng quan về tin sinh học
Đúng như tên gọi, Tin sinh học là lĩnh vực liên ngành kết hợp giữa Tin học và Sinh học, trong đó các nhà nghiên cứu sử dụng các công cụ của khoa học tính toán để xử lý những dữ liệu sinh học nhằm thu được kết quả mong muốn.
Tuy là một ngành ra đời muộn, nhưng chỉ trong vòng 40 năm, Tin sinh học đã đạt được nhiều bước tiến rất lớn, song hành với những bước tiến về sức mạnh điện toán, hạ tầng lưu trữ cũng như sinh học phân tử, đã biến việc phân tích lượng dữ liệu sinh học khổng lồ trở thành hiện thực Tin sinh học đã trở thành cánh tay đắc lực của mọi ngành khoa học sự sống, góp phần vào những bước tiến vĩ đại như giải mã cấu trúc gen người, y tế, nông nghiệp,…
Đếm tế bào máu
- Trong cơ thể chúng ta máu bao gồm bốn thành phần chính là hồng cầu (RBC) hoặc hồng cầu, bạch cầu (WBC) hoặc bạch cầu, tiểu cầu hoặc huyết khối và huyết tương Huyết tương là thành phần chất lỏng của máu, bao gồm protein và muối hòa tan Hồng cầu và tiểu cầu được tìm thấy trong máu với số lượng lớn, trong khi bạch cầu chỉ chiếm 1% tổng số tế bào máu Khoảng 40-45% tế bào máu là hồng cầu; chúng đóng vai trò chính trong việc vận chuyển oxy đến các mô khác WBC chịu trách nhiệm về khả năng miễn dịch của cơ thể chống lại nhiễm trùng Tiểu cầu hỗ trợ đông máu và tránh mất máu quá nhiều [1]
- Số lượng tế bào máu bình thường dao động tùy thuộc vào giới tính và độ tuổi của bạn.
Phạm vi bình thường của số lượng hồng cầu là 4,5 đến 5,5 triệu tế bào/mm3 nếu là nam và 4 đến 5 triệu tế bào/mm3 đối với nữ.
Đối với số lượng bạch cầu, phạm vi bình thường là 5.000 đến 10.000 tế bào/mm3.
Đối với tiểu cầu, phạm vi điển hình là 140.000 đến 400.000/mm3.
Đối với huyết sắc tố, phạm vi bình thường là 135-175 gam/L ở nam và 120-
2.2.2 Đếm tế bào máu Ứng dụng đếm tế bào máu trong Tin sinh học là một phần vô cùng quan trọng đối với các bác sĩ, chuyên gia y tế phân tích để kiểm tra sức khỏe của bệnh nhân Phân tích tế bào máu dưới kính hiển vi vẫn được sử dụng để chẩn đoán nhiều bệnh như bệnh leishmania, bệnh trypanosomiasis, bệnh giun chỉ và sốt rét Số lượng tế bào máu lớn và các dụng cụ như máy đo huyết cầu mất nhiều thời gian hơn để đếm tế bào máu Những dụng cụ này có khả năng xảy ra lỗi và phụ thuộc vào kỹ năng của nhà nghiên cứu y tế Do đó, nó xuất phát từ nhu cầu về một hệ thống tự động để phát hiện và đếm các tế bào máu khác nhau Phân tích hình ảnh phết máu có thể cung cấp thêm thông tin khi huấn luyện hình ảnh của các tế bào máu khác nhau trong mạng lưới thần kinh để phát triển một hệ thống chính xác và mạnh mẽ [2]
2.2.3 Ứng dụng của đếm tế bào máu
Số lượng và tỷ lệ các loại tế bào máu khác nhau trong máu có thể cung cấp thông tin quan trọng về sức khỏe của chúng ta [2]:
- Số lượng tế bào hồng cầu thấp: có nghĩa là chúng ta đang bị thiếu máu Nguyên nhân phổ biến gây ra số lượng hồng cầu thấp bao gồm: do thiếu sắt, kinh nguyệt nặng đối với nữ đã qua điều trị bằng bức xạ hoặc hóa trị, tan máu hoặc sự phá hủy tự miễn dịch của các tế bào máu.
- Số lượng bạch cầu thấp: có thể là dấu hiệu của tình trạng giảm bạch cầu trung tính, một tình trạng khiến chúng ta có nguy cơ nhiễm trùng cao hơn Nguyên nhân phổ biến gây ra lượng bạch cầu thấp bao gồm: thiếu máu bất sản HIV/AIDS, bệnh sarcoid, bệnh lao.
- Số lượng tiểu cầu thấp: có thể cho thấy chúng ta đang bị rối loạn đông máu, chẳng hạn như giảm tiểu cầu Hóa trị và xạ trị cũng có thể gây ra số lượng tiểu cầu thấp
2.2.4 Các công nghệ sử dụng trong đếm tế bào máu
Trước đây, đếm tế bào máu thường được thực hiện thủ công bằng cách sử dụng máy đếm tế bào máu Phương pháp này đòi hỏi nhiều thời gian và công sức, và độ chính xác phụ thuộc vào kỹ năng của người thực hiện [2]
Hiện nay, có một số phương pháp tự động đếm tế bào máu đã được phát triển, sử dụng các công nghệ như:
RCNN (Mạng thần kinh chuyển đổi dựa trên khu vực): RCNN là một phương pháp phát hiện đối tượng dựa trên khu vực RCNN sử dụng mạng CNN để phát hiện các vùng có khả năng chứa tế bào máu, sau đó sử dụng một loại phân tích thuật toán để phân loại các vùng đó
Fast-CNN (Faster RCNN): Fast-CNN là một phiên bản phát triển của RCNN Fast-CNN sử dụng một mạng CNN để tạo ra các vùng có khả năng chứa tế bào máu, sau đó sử dụng một mạng CNN khác để phân loại các vùng đó
YOLO (You Only Look Once): YOLO là một phương pháp phát hiện và phân loại đối tượng chỉ trong một lần quét YOLO sử dụng mạng CNN để phát hiện và phân loại tế bào máu trong một hình ảnh hoặc video.
Trong số các phương pháp tự động đếm tế bào máu kể trên, YOLO là một phương pháp được sử dụng phổ biến bởi YOLO có một số ưu điểm như:
Tốc độ nhanh: YOLO có thể thực hiện đếm tế bào máu trong thời gian ngắn, chỉ trong vài giây.
Độ chính xác cao: YOLO đã được chứng minh là có độ chính xác cao, tương đương hoặc thậm chí cao hơn so với đếm tế bào máu thủ công.
Có thể được triển khai trên các thiết bị di động: YOLO có thể được triển khai trên các thiết bị di động, giúp cho việc đếm tế bào máu có thể được thực hiện tại chỗ, ngay tại bệnh viện hoặc phòng khám.
Chính vì các ưu điểm trên báo cáo sẽ tập trung vào phương pháp YOLO để áp dụng vào đếm tế bào máu.
Thuật toán yolo
Mạng nơ ron tích chập
3.1.1 Lý do dùng mạng nơ ron tích chập trong nhập diện ảnh.
Tích chập được ứng dụng phổ biến trong lĩnh vực thị giác máy tính Thông qua các phép tích chập, các đặc trưng chính từ ảnh được trích xuất và truyền vào các tầng tích chập (layer convolution) Mỗi một tầng tích chập sẽ bao gồm nhiều đơn vị mà kết quả ở mỗi đơn vị là một phép biến đổi tích chập từ layer trước đó thông qua phép nhân tích chập với bộ lọc.[3]
Phép toán tích chập hoạt động bằng cách lấy một bộ lọc và di chuyển nó qua ảnh Bộ lọc là một ma trận số có thể được sử dụng để đo các tính chất khác nhau của ảnh, chẳng hạn như độ sáng, độ tương phản hoặc các cạnh.
Khi bộ lọc được di chuyển qua ảnh, nó sẽ tính toán một giá trị mới cho mỗi pixel trong ảnh Giá trị mới này được gọi là giá trị tích chập.
Các giá trị tích chập có thể được sử dụng để trích xuất các đặc trưng từ ảnh.
Ví dụ: nếu bộ lọc được thiết kế để đo độ tương phản, thì các giá trị tích chập có thể được sử dụng để xác định các cạnh trong ảnh.
Các đặc trưng này sau đó có thể được sử dụng để phân loại ảnh hoặc để tìm kiếm các đối tượng trong ảnh.
Dưới đây là một số ví dụ cụ thể về cách sử dụng phép toán tích chập trong nhận diện ảnh:
- Phân loại ảnh: Phép toán tích chập có thể được sử dụng để trích xuất các đặc trưng từ ảnh, chẳng hạn như màu sắc, hình dạng hoặc các cạnh Các đặc trưng này sau đó có thể được sử dụng để phân loại ảnh thành các lớp khác nhau, chẳng hạn như chó, mèo hoặc xe hơi.
- Tìm kiếm đối tượng: Phép toán tích chập có thể được sử dụng để tìm kiếm các đối tượng cụ thể trong ảnh Ví dụ, phép toán tích chập có thể được sử dụng để tìm kiếm khuôn mặt trong ảnh hoặc để tìm kiếm biển báo giao thông.
Phép toán tích chập là một kỹ thuật quan trọng trong nhận diện ảnh Nó được sử dụng trong nhiều ứng dụng khác nhau, chẳng hạn như phân loại ảnh, tìm kiếm đối tượng và nhận dạng khuôn mặt.
Ta xét 1 bức ảnh đơn giản (không phải kiểu rgb, chỉ có 1 cạnh màu duy nhất gọi là array) có kích thước 6 x 6 Ta thực hiện phép toán tích chập của ta với 1 cái filter (trong thị giác máy tính gọi là filter hoặc là kernel, 2 thuật ngữ này trong thị giác máy tính được gọi thay cho nhau).
Phép toán tích chập có 2 toán tử là 2 ma trận 1 là bức ảnh 2 là fifter Ký hiệu là hoa thị Nếu như input là 6x6 thì output là 4x4, tại sao như vậy thì ta đi vào chi tiết : Đầu tiên lấy ma trận 3x3 ở góc trên trái bức ảnh 6x6 bằng kích thước fifter Sau đấy thực hiện 2 phép toán tích chập này với nhau 2 ma trận cùng kích thước ta sẽ thực hiện phép nhân từng cặp tương ứng của các cái phần tử của các ma trận với nhau Ví dụ số 1 ở bức ảnh và số 1 ở fifter cùng ở góc trên bên trái, ta sẽ lấy 1 x 1, sau đấy số 7 tương ứng với số 0 thì ta lấy 7x 0, tiếp theo số 0 tương ứng số -1 thì sẽ là 0 x (-1), ta sẽ thực hiện phép nhân của các phần tử ở 2 mã trận với nhau và cuối cùng ta có 9 phép nhân vì ta có 9 phần tử Sau đó lấy kết quả cộng lại toàn bộ với nhau và tính ra = 2 Và số 2 này ta sẽ điền vào vị trí đầu tiên của ma trận kết quả Chúng ta sẽ bắt đầu từ ma trận góc trên bên trái của ma trận input trước sau đó dịch chuyển ma trận này sang 1 vị trí sang bên phải như thế này.
Và tiếp tục thưc hiện phép toán tích chập như trên và được kết quả là -1 Và ta tiếp tục dịch chuyển như thế cho đến khi hết cả ma trận input của chúng ta Ta sẽ được output đầu ra như sau:
Sau khi thực hiện phép toán tích chập thì bức ảnh output kích thước của nó bị giảm đi Ví dụ kích thước ban đầu là 6x6 sau khi thực hiện phép tích chập thì ta được output là 4x4
Ta có công thức như sau:
Nếu kích thước đầu vào là n x n, filter có kích thước là f x f thì đầu ra của ta sẽ là (n – f + 1) * (n – f +1)
3.1.3 Khái niệm padding và stride
Ta thấy những pixel ở góc chỉ được tính đúng 1 lần khi mà t thực hiện tích chập Trong khi đây có những pixel đc sử dụng 9 lần Do đó những pixel đóng góp rất nhiều thông tin và có những pixel đóng rất ít thông tin, nếu có nhữg thông tin quan trọng ở góc thì ta có thể sẽ bỏ lỡ nó.
Suy ra ta có khái niệm padding Tức là trước khi thực hiện tích chập thì ta sẽ padding đều 4 phía Ta sẽ tạo thêm các pixel ở ngoài ví dụ như có giá trị bằng 0.
Tuy nhiên ta không thể padding nhiều quá được Nếu padding nhiều quá thì nó sẽ xảy ra 1 vấn đề nhiễu , khi ta thêm các con số để padding thì những con số này không liên quan đến bức ảnh nó sẽ làm nhiễu thông tin thực sự của bức ảnh gốc này.
Stride là khi ta thực hiện phép tích chập thì filter của ta thay vì dịch chuyển một lượng là 1 thì sẽ dịch chuyển bằng đúng giá trị stride.
Khi thực hiện vừa padding vừa stride thì kích thước đầu ra sẽ là.
- n : kích thước bức ảnh đầu vào.
3.1.4 Thực hiện tích chập trên bức ảnh đa chiều.
- Các bức ảnh hiện nay điều đc thể hiện dưới dạng rgb ngoài chiều cao và rộng còn có chiều sâu Suy ra filter của ta cũng phải có chiều sâu tương ứng.
Khi bức ảnh có kích thước height x width x chanels thì filter có kích thước f x f x chanels.
Xây dựng mô hình Yolo từ phép toán tích chập
Giả sử đầu vào là một hình ảnh kích thước ( 448 x 488 x 3) Ô vuông trong bức ảnh chính là filter kích thước 7x7x3 Sau khi thực hiên cho bức ảnh đi qua lớp conv ( lớp tích chập) và max pooling thì ra sẽ được mã trận 112 x 112 x 192 Và cứ tiếp tục thế cho đến những lớp cuối cúng Ở bước gần cuối ta thực hiện phép dàn mỏng ra bằng cách đi qua lớp linear trong mạng nơ ron Và cuối cùng nắn lại kích thước thành 7x7x30 Đây chính là đầu ra của mạng yolo.
You only look once (YOLO) là một mô hình CNN để detect object mà một ưu điểm nổi trội là nhanh hơn nhiều so với những mô hình cũ Thậm chí có thể chạy tốt trên những IOT device như raspberry pi Ở trên chính cấu tạo của YOLO v1, về sau ta còn có YOLO v2,v3, chạy nhanh hơn nhưng phức tạp hơn và khó cài đặt Hiểu được YOLO v1 sẽ giúp các bạn dễ dàng cài đặt những phiên bản sau [4]
Mạng của yolo sử dụng đặc trưng từ toàn bộ hình ảnh để dự đoán mỗi hộp giới hạn Nó cũng dự đoán tất cả các hộp giới hạn trên tất cả các lớp cho một hình ảnh cùng một lúc Điều này có nghĩa là mạng của chúng tôi lập luận toàn cầu về toàn bộ hình ảnh và tất cả các đối tượng trong hình ảnh đó Thiết kế YOLO cho phép việc đào tạo từ đầu đến cuối và đạt được tốc độ thời gian thực trong khi vẫn duy trì độ chính xác trung bình cao.[5]
Output của Yolo
3.3.1 Yolo dự đoán ảnh như thế nào. Ảnh được chia thành ma trận ô vuông 7x7, mỗi ô vuông bao gồm một tập các thông tin mà mô hình phải dữ đoán [4]
Đối tượng duy nhất mà ô vuông đó chứa Tâm của đối tượng cần xác định nằm trong ô vuông nào thì ô vuông đó chứa đối tượng đó Ví dụ tâm của cô gái nằm trong ô vuông màu xanh, do đó mô hình phải dự đoán được nhãn của ô vuông đó là cô gái Lưu ý, cho dù phần ảnh cô gái có nằm ở ô vuông khác mà tâm không thuộc ô vuông đó thì vẫn không tính là chứa cô gái, ngoài ra, nếu có nhiều tâm nằm trong một ô vuông thì chúng ta vẫn chỉ gán một nhãn cho ô vuông đó thôi Chính ràng buột mỗi ô vuông chỉ chứa một đối tượng là nhược điểm của mô hình này Nó làm cho ta không thể detect những object có tầm nằm cùng một ô vuông Tuy nhiên chúng ta có thể tăng grid size từ 7x7 lên kích thước lớn hơn để có thể detect được nhiều object hơn Ngoài ra, kích thước của ảnh đầu vào phải là bội số của grid size.
Mỗi ô vuông chịu trách nhiệm dự đoán 2 boundary box của đối tượng Mỗi boundary box dữ đoán có chứa object hay không và thông tin vị trí của boundary box gồm trung tâm boundary box của đối tượng và chiều dài, rộng của boundary box đó Ví vụ ô vuông màu xanh cần dự đoán 2 boundary box chứa cô gái như hình minh họa ở dưới Một điều cần lưu ý, lúc cài đặt chúng ta không dự đoán giá trị pixel mà cần phải chuẩn hóa kích thước ảnh về đoạn từ [0-1] và dự đoán độ lệch của tâm đối tượng đến box chứa đối tượng đó
Ví dụ, chúng ta thay vì dữ đoán vị trí pixel của điểm màu đỏ, thì cần dự đoán độ lệch a,b trong ô vuông chứa tâm object.
Tổng hợp lại, với mỗi ô vuông chúng ta cần dữ đoán các thông tin sau :
- Ô vuông có chứa đối tượng nào hay không?
- Dự đoán độ lệch 2 box chứa object so với ô vuông hiện tại
Như vậy với mỗi ô vuông chúng ta cần dữ đoán một vector có
(nbox+4*nbox+nclass) chiều Ví dụ, chúng ta cần dự đoán 2 box, và 20 lớp đối với mỗi ô vuông thì chúng sẽ có một ma trận 3 chiều 7x7x30 chứa toàn bộ thông tin cần thiết.
Ta có kí hiệu sau về mô hình yolo:
- S : Ảnh được chia thành ma trận ô vuông SxS S là số mà kích thước bức ảnh đầu vào phải chia hết Ta có thể tùy chỉnh S.
- B : Số lượng boundary box mà một ô vuông dự đoán Ta có thể tùy chỉnh B.
- C : Số lượng nhẵn mà mô hình dự đoán Tùy thuộc vào bài toán.
3.3.2 Công thức output của yolo
Output của mô hình YOLO là một véc tơ sẽ bao gồm các thành phần: [3] y T =[ p , 0 (x , y , w , h),( p 1 , p 2 , … , p c )]
- p 0: là xác suất dự báo vật thể xuất hiện trong bounding box.
- x , y , w , h : giúp xác định bounding box Trong đó x, y là tọa độ tâm và w, h là kích thước rộng, dài.
- p 1 , p 2 , … , p c : là véc tơ phân phối xác suất dự báo của các classes
Hàm mất mát của yolo
Chúng ta đã định nghĩa được những thông tin mà mô hình cần phải dự đoán, và kiến trúc của mô hình CNN Bây giờ là lúc mà chúng ta sẽ định nghĩa hàm lỗi [4]
YOLO sử dụng hàm độ lỗi bình phương giữ dự đoán và nhãn để tính độ lỗi cho mô hình Cụ thể, độ lỗi tổng của chúng ta sẽ là tổng của 3 độ lỗi con sau:
Độ lỗi của việc dữ đoán loại nhãn của object - Classifycation loss
Độ lỗi của dự đoán tạo độ cũng như chiều dài, rộng của boundary box - Localization loss
Độ lỗi của ô vuông có chứa object nào hay không - Confidence loss
Chúng ta mong muốn hàm lỗi có chức năng sau Trong quá trình huấn luyện, mô hình sẽ nhìn vào những ô vuông có chứa object Tăng classification score lớp đúng của object đó lên Sau đó, cũng nhìn vào ô vuông đó, tìm boundary box tốt nhất trong 2 boxes được dự đoán Tăng localization score của boundary box đó lên, thay đổi thông tin boundary box để gần đúng với nhãn Đối với những ô vuông không chứa object, giảm confidence score và chúng ta sẽ không quan tâm đến classification score và localization score của những ô vuông này.
Tiếp theo, chúng ta sẽ đi lần lượt vào chi tiết ý nghĩa của các độ lỗi trên. a, Classification Loss
Chúng ta chỉ tính classification loss cho những ô vuông được đánh nhãn là có object Classification loss tại những ô vuông đó được tính bằng đỗ lỗi bình phương giữa nhãn được dự đoán và nhãn đúng của nó.
- I i obj : bằng 1 nếu ô vuông đang xét có object ngược lại bằng 0
- ^ p i (c) : là xác xuất có điều của lớp c tại ô vuông tương ứng mà mô hình dự đoán. b, Localization Loss
Localization loss dùng để tính giá trị lỗi cho boundary box được dự đoán bao gồm offset x,y và chiều dài, rộng so với nhãn chính xác của chúng ta Các bạn nên lưu ý rằng, chúng ta không tính toán trực tiếp giá trị lỗi này trên kích thước của ảnh mà cần chuẩn dưới kính thước ảnh về đoạn [0-1] đối với tọa độ điểm tâm, và không dữ đoán trực tiếp điểm tâm mà phải dự đoán giá trị lệch offset x,y so với ô vuông tương ứng Việc chuẩn hóa kích thước ảnh và dự đoán offset làm cho mô hình nhanh hội tụ hơn so với việc dự đoán giá trị mặc định.
I ij obj ¿¿ ¿ Độ lỗi localization loss được tính bằng tổng đỗ lỗi bình phương của offsetx, offsety và chiều dài, rộng trên tất cả các ô vuông có chứa object Tại mỗi ô vuông đúng,ta chọn 1 boundary box có IOU (Intersect over union) tốt nhất, rồi sau đó tính độ lỗi theo các boundary box này Theo hình mình họa trên chúng ta có 4 boundary box tại ô vuông đúng có viền màu đỏ, chúng ta chọn 1 box tại mỗi ô vuông để tính độ lỗi Còn box xanh được bỏ qua.
Localization loss là độ lỗi quan trọng nhất trong 3 loại độ lỗi trên Do đó, ta cần đặt trọng số cao hơn cho độ lỗi này. c, Confidence Loss
Confidence loss thể hiện độ lỗi giữa dự đoán boundary box đó chứa object so với nhãn thực tế tại ô vuông đó Độ lỗi này tính nên cả những ô vuông chứa object và không chứa object.
I ij noobj (C i −^ C i ) 2 Độ lỗi này là độ lỗi bình phường của dự đoán boundary đó chứa object với nhãn thực tế của ô vuông tại vị trí tương ứng, chúng ta lưu ý rằng, độ lỗi tại ô vuông mà nhãn chứa object quan trọng hơn là độ lỗi tại ô vuông không chứa object, do đó chúng ta cần sử dụng hệ số lambda để cân bằng điều này.
Tổng kết lại, tổng lỗi của chúng ta sẽ bằng tổng của 3 loại độ lỗi trên
Dự đoán lớp và tạo độ boundary box sau quá trình huấn luyện – Inference
- Bước 1: Đầu tiên chúng ta sẽ tìm cách giảm bớt số lượng các bounding box bằng cách lọc bỏ toàn bộ những bounding box có xác suất chứa vật thể nhỏ hơn một ngưỡng threshold nào đó, thường là 0.5.
- Bước 2: Đối với các bouding box giao nhau, non-max suppression sẽ lựa chọn ra một bounding box có xác xuất chứa vật thể là lớn nhất Sau đó tính toán chỉ số giao thoa IoU với các bounding box còn lại Người ta sẽ lấy 1 ngưỡng IoU để loại bỏ các bounding box Ví dụ là 0.5, nếu IoU nào mà lớn hơn 0.5 thì bounding box sẽ bị loại.
Dữ liệu
Xét nghiệm máu ngoại vi là gì
Việc chẩn đoán các bệnh liên quan đến máu thường liên quan đến việc xác định và mô tả đặc điểm mẫu máu của bệnh nhân Các phương pháp tự động phát hiện và phân loại các phân nhóm tế bào máu có những ứng dụng y tế quan trọng.
Phết máu ngoại vi là một lớp máu mỏng được phết lên một phiến kính hiển vi thủy tinh và sau đó nhuộm màu theo cách để cho phép kiểm tra các tế bào máu khác nhau bằng kính hiển vi Mẫu máu được kiểm tra trong quá trình điều tra các rối loạn về huyết học (máu) và thường được sử dụng để tìm ký sinh trùng trong máu, chẳng hạn như bệnh sốt rét và bệnh giun chỉ [6]
Kiểm tra phết máu ngoại vi là một công cụ chẩn đoán rẻ tiền nhưng hiệu quả ở cả trẻ em và người lớn Ở một khía cạnh nào đó, nó đang trở thành một
"nghệ thuật bị mất"; nhưng nó thường cung cấp khả năng tiếp cận thông tin nhanh chóng, đáng tin cậy về nhiều loại rối loạn huyết học Phết tế bào cung cấp một cái nhìn về tình trạng chức năng của tủy xương, nhà máy sản xuất tất cả các yếu tố máu Điều này đặc biệt quan trọng khi đánh giá tình trạng giảm tế bào chất (ví dụ như thiếu máu, giảm bạch cầu, giảm tiểu cầu) Việc xem xét phết tế bào là một công cụ bổ trợ quan trọng cho các dữ liệu lâm sàng khác; trong một số trường hợp, chỉ xét nghiệm phết tế bào ngoại vi là đủ để xác định chẩn đoán [7]
Giới thiệu về bộ dữ liệu phát hiện tế bào máu
Tập dữ liệu này chứa 12.500 hình ảnh tăng cường của các tế bào máu (JPEG) với nhãn loại tế bào (CSV) đi kèm Có khoảng 3.000 hình ảnh cho mỗi loại trong số 4 loại ô khác nhau được nhóm thành 4 thư mục khác nhau (theo loại ô) Các loại tế bào là Eosinophil, Lymphocyte, Monocyte và Neutrophil Tập dữ liệu này đi kèm với một tập dữ liệu bổ sung chứa 410 hình ảnh gốc (tăng cường trước) cũng như hai nhãn loại phụ bổ sung (WBC so với WBC) và cả các hộp giới hạn cho mỗi ô trong mỗi 410 hình ảnh này (siêu dữ liệu JPEG + XML).[8]
BCCD dataset (Blood cell count and detection) là một phần của tệp dữ liệu trên.
Và với một bức ảnh thì sẽ có 1 file thông tin đi kém theo Đó chính là thông tin vị trí của tế bào máu trên bức ảnh đó.
Tiền sử lý dữ liệu
Để tiến hành cho dữ liệu này có thể dùng trong mô hình yolo thì ta cần phải chuẩn bị 1 tập là hình ảnh và 1 tập là label. Đây chính là label của bức ảnh thứ nhất: nó gồm 5 cột Cột đầu tiên là tên mà ta đã ký hiệu cho tế bào máu trong ảnh Tiểu cầu là 0, tế bào hồng cầu : 1, bạch cầu là 2 Và 4 cột tiếp theo là ví trí của nó Vị trí của nó đã được chuẩn hóa Sau đây là cách tạo ra tệp trên :
Từ tập dữ liệu đi kèm 1 hình ảnh ta có
Từ 4 ví trí này ta tính được chiều rộng, chiều cao, vị trí trung tâm của tế bào máu
Và từ 4 giá trị trên ta đưa những vị trí này về khoảng [0-1] bằng cách lấy chiều rộng của tế bào máu chia cho chiều rộng của ảnh, lấy x_trung tâm chia cho chiều rộng của ảnh Tương tự cho 2 giá trị chiều cao và y kia.
Và bây giờ ta đã sẵn sàng để huấn luyện yolo
Kết quả và so sánh
Cách thực hiện
Mô hình yolo đang rất phát triển, đến hiện nay nó vẫn đang đc phát triển từng ngày một. Để dùng yolo ta dùng lệnh sau trên colab
Tiếp theo ta phải tinh chỉnh 1 chút đó làm làm sao để yolo biết được ta đang phân loại và đếm những hình ảnh nào.
Trong folder của yolo có file yaml Ta cần phải chỉnh lại file này như sau Đó chính là đường dẫn tới tập huấn luyện và valid Và số lượng class ta cần phân biệ và tên của những class đó Bây giờ ta chỉ cần lệnh sau để chạy.
Quá trình huấn luyện khá lâu mất tầm 2 tiếng rưỡi.
Kết quả
Ảnh gốc Ảnh sau khi huấn luyện
So sánh
5.3.1 Kết quả của tác giả Đếm và phát hiện tế bào máu (BCCD) luôn là một chủ đề phổ biến trong việc phát hiện đối tượng, và nhiều nghiên cứu đã áp dụng và điều chỉnh hai mô hình cơ bản: Faster RCNN và Yolo Tuy nhiên, vẫn khá khó khăn để xác định mô hình hoặc sự điều chỉnh nào sẽ hoạt động tốt hơn trên các bộ dữ liệu BCCD khác nhau Do đó, chúng ta chủ yếu tập trung vào việc tìm ra một mô hình và sự điều chỉnh tốt hơn cho các tập dữ liệu mẫu BCCD.[9]
Giải thích chỉ số maP mAP là một độ đo tổng hợp của độ chính xác (precision) và độ đầy đủ (recall) của mô hình.
- Precision (Độ chính xác): Được tính bằng tỉ lệ giữa số lượng các dự đoán đúng thuộc một lớp cụ thể và tổng số các dự đoán thuộc lớp đó.
- Recall (Độ đầy đủ): Là tỉ lệ giữa số lượng các dự đoán đúng thuộc một lớp cụ thể và tổng số thực tế thuộc lớp đó.
5.3.2 Kết quả của nhóm sinh viên.
Nhóm em đã tự thực hiện trên các mô hình sau fast rcnn, yolo, rcnn, cnn
Và kết quả cho thấy mô hình yolo cho kết quả khá tốt so với các mô hình còn lại.