SlideShare a Scribd company logo
1 of 73
Download to read offline
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
LUẬN VĂN THẠC SĨ
ĐỖ TRƯỜNG SA ĐÔNG NGHI
ỨNG DỤNG MẠNG HỌC SÂU (DEEP LEARNING)
XÁC ĐỊNH LỖI MẠCH IN (PCB) SAU KHI ĂN MÒN
BẰNG HÓA CHẤT
NGÀNH: KỸ THUẬT ĐIỆN TỬ
SKC008251
Tp. Hồ Chí Minh, tháng 3/2023
ii
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
LUẬN VĂN THẠC SĨ
ĐỖ TRƯỜNG SA ĐÔNG NGHI
ỨNG DỤNG MẠNG HỌC SÂU (DEEP LEARNING)
XÁC ĐỊNH LỖI MẠCH IN (PCB)
SAU KHI ĂN MÒN BẰNG HÓA CHẤT
NGÀNH KỸ THUẬT ĐIỆN TỬ - 8520203
Hướng dẫn khoa học:
TS. NGUYỄN THỊ LƯỠNG
TP. HỒ CHÍ MINH – 03/2023
iii
iv
v
vi
vii
viii
ix
x
LÝ LỊCH KHOA HỌC
I. LÝ LỊCH SƠ LƯỢC:
Họ & tên: Đỗ Trường Sa Đông Nghi. Giới tính: Nam.
Ngày, tháng, năm sinh: 01/01/1983. Nơi sinh: Bình Dương.
Quê quán: Thủ Đức, tp Hồ Chí Minh. Dân tộc: Kinh.
Địa chỉ liên lạc: 274/18 Thích Quãng Đức, Phú Cường, Thủ Dầu Một, Bình Dương.
E-mail: nghi1983@gmail.com.
II. QUÁ TRÌNH ĐÀO TẠO:
1. Đại học:
Hệ đào tạo: Chính quy Thời gian đào tạo từ 9/2001 đến 7/2006
Nơi học (trường, thành phố): Đại học Sư phạm Kỹ Thuật TP.HCM
Ngành học: Kỹ thuật Điện – Điện tử
Tên đồ án, luận án hoặc môn thi tốt nghiệp:
Ngày & nơi bảo vệ đồ án, luận án hoặc thi tốt nghiệp: Đại học Sư phạm Kỹ
Thuật TP.HCM
Người hướng dẫn: TS. Hồ Đắc Lộc.
2. Thạc sĩ:
Hệ đào tạo: Chính quy Thời gian đào tạo từ 9/2019 đến 3/2023
Nơi học (trường, thành phố): Đại học Sư phạm Kỹ Thuật TP.HCM
Ngành học: Kỹ thuật Điện tử
Tên luận văn: Ứng dụng mạng học sâu (Deep learning) xác định lỗi mạch in
(PCB) sau khi ăn mòn bằng hóa chất.
Ngày & nơi bảo vệ luận văn: 23/3/2023, tại Đại học Sư phạm Kỹ Thuật
TP.HCM
Người hướng dẫn: TS. Nguyễn Thị Lưỡng.
xi
III. QUÁ TRÌNH CÔNG TÁC CHUYÊN MÔN KỂ TỪ KHI TỐT NGHIỆP
ĐẠI HỌC:
Thời gian Nơi công tác Công việc đảm nhiệm
10/2010 Trường TCN Thủ Dầu Một Giảng dạy
1/2013 Trường TCN Việt – Hàn BD Giảng dạy
10/2017-nay
Trường Cao Đẳng Việt Nam –
Hàn Quốc BD
Giảng dạy
xii
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công
bố trong bất kỳ công trình nào khác.
Tp. Hồ Chí Minh, ngày 24 tháng 03 năm 2023
(Ký tên và ghi rõ họ tên)
Đỗ Trường Sa Đông Nghi
xiii
LỜI CẢM ƠN
Để hoàn thành đồ án “Ứng dụng mạng học sâu (Deep learning) xác định lỗi mạch
in (PCB) sau khi ăn mòn bằng hóa chất”, đầu tiên người thực hiện đề tài xin gửi lời
cảm ơn chân thành đến cô Nguyễn Thị Lưỡng đã trực tiếp hướng dẫn trong quá trình
chọn cũng như thực hiện đề tài.
Người thực hiện đề tài cũng xin chân thành cảm ơn quý thầy cô khoa Điện – Điện
tử đã truyền đạt rất nhiều kiến thức nền tảng và tạo điều kiện thuận lợi để người thực
hiện đề tài có thể hoàn thành đề tài này.
Trong quá trình thực hiện đề tài, người thực hiện đề tài cũng đã nhận được sự giúp
đỡ và động viên từ phía gia đình, thầy cô, bạn bè. Đây chính là sự động viên to lớn
thúc đẩy người thực hiện đề tài cố gắng hoàn thành đề tài.
Mặc dù đã có nhiều cố gắng và nỗ lực thực hiện nhưng do kiến thức cũng như khả
năng bản thân còn nhiều hạn chế nên trong quá trình thực hiện đề tài không thể tránh
khỏi những sai phạm, thiếu sót. Rất mong nhận được lời chỉ dẫn, góp ý quý báu của
quý thầy cô.
Xin chân thành cám ơn!
Người thực hiện đề tài
Đỗ Trường Sa Đông Nghi
xiv
TÓM TẮT
Trong giảng dạy và thực hành modun chế tạo mạch in trong trường nghề thường
gặp phải vấn đề là kiểm tra mạch in sau khi ăn mòn bằng hóa chất trước khi cho sinh
viên khoan và hàn linh kiện. Nếu ứng dụng phương pháp xử lý ảnh thì không khả thi
do kích thước các bo mạch không đồng nhất, số lượng mẫu rất nhiều do mỗi sinh viên
có thể có mỗi mẫu khác nhau. Do đó cần một công cụ có thể xác định số lượng và
phân loại lỗi của mạch in sau khi ăn mòn bằng hóa chất, hỗ trợ công tác kiểm tra sản
phẩm. Để giải quyết vấn đề này tác giả đề xuất sử dụng một mạng học sâu để nhận
diện các lỗi có thể có trên một ảnh chụp mạch in đã được ăn mòn bằng hóa chất. Ở
đây, tác giả sử dụng phương pháp transfer learning trên mô hình Vgg16 đã qua huấn
luyện với tập dữ liệu DeepPCB. Kết quả mô hình đạt được độ chính xác trên 89%.
xv
ABTRACT
In teaching and practicing printed circuit manufacturing module in vocational
schools, it is common to encounter the problem of checking printed circuits after
chemical corrosion before allowing students to drill and solder components. The
application of the image processing method is not suitable due to the size of the
boards is not uniform, the number of samples is very large because each student may
have a different sample. Therefore, it is necessary to have an application that can
quantify and classify the defects of printed circuits after chemical corrosion,
supporting product inspection. To solve this problem I suggest using a deep learning
network to identify possible errors on a printed circuit image that has been chemically
etched. In this work, I uses the transfer learning method on the pre-trained Vgg16
model with the DeepPCB dataset. The model results achieved an accuracy of over
89%.
xvi
MỤC LỤC
LÝ LỊCH KHOA HỌC............................................................................................x
LỜI CAM ĐOAN.................................................................................................xiii
LỜI CẢM ƠN ......................................................................................................xiii
TÓM TẮT........................................................................................................xxivv
ABTRACT..........................................................................................................xxv
DANH MỤC BẢNG........................................................................................xxviii
DANH MỤC HÌNH .............................................................................................xix
DANH MỤC TỪ VIẾT TẮT ..............................................................................xxx
Chương 1 TỔNG QUAN.....................................................................................21
1.1 TÌNH HÌNH NGHIÊN CỨU ......................................................................21
1.2 MỤC TIÊU ĐỀ TÀI ...................................................................................10
1.3 NHIỆM VỤ VÀ GIỚI HẠN CỦA ĐỀ TÀI ................................................10
1.3.1 Nhiệm vụ của đề tài ...........................................................................10
1.3.2 Giới hạn của đề tài.............................................................................11
1.4 PHƯƠNG PHÁP NGHIÊN CỨU ...............................................................11
1.5 BỐ CỤC ĐỀ TÀI........................................................................................11
Chương 2 CƠ SỞ LÝ THUYẾT.........................................................................13
2.1 XỬ LÝ ẢNH...............................................................................................13
2.2 NHẬN DIỆN ĐỐI TƯỢNG (OBJECT DETECTION)................................17
2.3 MẠNG HỌC SÂU ......................................................................................20
Chương 3 PHƯƠNG PHÁP ĐỀ XUẤT..............................................................23
3.1 TẬP DỮ LIỆU ............................................................................................23
xvii
3.2 KIẾN TRÚC CỦA MÔ HÌNH ....................................................................25
3.3 QUÁ TRÌNH HUẤN LUYỆN.....................................................................30
Chương 4 KẾT QUẢ THỰC NGHIỆM.............................................................45
4.1 THÔNG SỐ HUẤN LUYỆN ......................................................................45
4.2 MỘT SỐ KẾT QUẢ HUẤN LUYỆN .........................................................46
Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .........................................49
4.1 KẾT LUẬN.................................................................................................49
4.2 HƯỚNG PHÁT TRIỂN ..............................................................................50
TÀI LIỆU THAM KHẢO...................................................................................51
xviii
DANH MỤC BẢNG
BẢNG TRANG
Bảng 1.1: Kết quả so sánh 2 mô hình SSD và FPN trên 2 tập dữ liệu............... 7
Bảng 2.1: So sánh tốc độ và độ chính xác giữa các mô hình nhận diện vật thể. 21
xix
DANH MỤC HÌNH
HÌNH TRANG
Hình 1.1: Lược đồ hệ thống “ Phát hiện lỗi PCB bằng xử lý ảnh”.......................6
Hình 1.2: Quy trình sản xuất mạch điện của Công ty TNHH JABIL Việt Nam...8
Hình 1.3: Lưu đồ giải thuật thiết kế phần mềm trong luận văn tốt nghiệp đại học
của sinh viên trường Đại học Sư phạm Kỹ thuật..................................................9
Hình 2.1: Ảnh màu, ảnh xám và ảnh nhị phân...................................................13
Hình 2.2: Chuyển từ ảnh RGB sang ảnh xám....................................................15
Hình 2.3: Sơ đồ các tác vụ của thị giác máy tính...............................................19
Hình 2.4: Cách chia feature map để nhận diện các ảnh với kích cỡ khác nhau. .21
Hình 3.1: Ảnh của tập dữ liệu và dán nhãn. ......................................................24
Hình 3.2: Nội dung file data.mat.......................................................................25
Hình 3.3: Sơ đồ kiến trúc mạng SSD300 ..........................................................26
Hình 3.4: Vị trí của các khung bao trên bức ảnh gốc.........................................29
Hình 3.5: Ảnh sau khi sử dụng một số phương pháp tiền xử lý.........................31
Hình 3.6: Ground truth box và Default bounding box .......................................34
Hình 3.7: Ảnh hưởng của tốc độ học đối với hàm loss......................................38
Hình 3.8: Mối quan hệ giữa tốc độ học và hàm loss..........................................39
Hình 3.9: So sánh ảnh hưởng của giá trị learning rate đối với mô hình .............39
Hình 3.10: So sánh mô hình trước và sau khi áp dụng transfer learning............40
Hình 3.11: Pretrained-model được sử dụng để trích xuất đặc trưng...................41
Hình 3.12: Quá trình training dùng pretrained-model VGG16 để trích xuất đặc
trưng..................................................................................................................42
Hình 3.13: Fine turing một pretrained-model....................................................43
Hình 3.14: Quá trình training dùng pretrained-model VGG16 để trích xuất đặc
trưng có sử dụng fine turning.............................................................................43
Hình 4.1: Kiến trúc mạng SSD300 dùng để huấn luyện ....................................45
Hình 4.2: Quá trình training..............................................................................46
Hình 4.3: Ảnh đầu vào và Lỗi được dự đoán.....................................................47
xx
DANH MỤC TỪ VIẾT TẮT
SSD Single Shot MultiBox Detector
IoU Intersection of Union
PCB Printed Circuit Board
AOI Automated Optical Inspection
21
Chương 1
TỔNG QUAN
1.1 TÌNH HÌNH NGHIÊN CỨU
1.1.1 Tình hình nghiên cứu ở nước ngoài
- Hiện nay, việc kiểm tra chất lượng sản phẩm, đặc biệt là các sản phẩm có chi tiết nhỏ
như ngành điện tử, hầu như được thay thế hoàn toàn bằng máy móc. Trong bài báo “Đánh
giá và phân tích các phương pháp giám sát chất lượng và kiểm tra quang học tự động trong
ngành công nghiệp điện tử” [1], Ebayyeh và các cộng sự đã tổng hợp các phương pháp
giám sát chất lượng như kiểm tra bằng siêu âm, dòng điện xoáy, kiểm tra bằng chất thấm
thuốc nhuộm, nhiệt độ, thăm dò mạch, kiểm tra bằng tia X và quang học hiện đang được
sử dụng để đánh giá chất lượng sản phẩm nhằm đạt được sản phẩm đủ tiêu chuẩn. Họ
khẳng định kiểm tra quang học tự động (AOI) là một trong những kỹ thuật không thể thay
thế được sử dụng để kiểm tra chất lượng các sản phẩm khác nhau. Kỹ thuật này được coi
là mạnh mẽ và có thể thay thế con người. Giám sát chất lượng là bước cần thiết để giảm
thiểu lỗi của sản phẩm trong các ngành công nghiệp khác nhau. AOI được coi là một trong
những phương pháp giám sát chất lượng đơn giản và thường được sử dụng để kiểm tra
công nghiệp tự động. Lĩnh vực AOI rất rộng lớn vì nó liên quan đến nhiều chủ đề khác
nhau, từ thiết lập phần cứng để thu nhận hình ảnh đến các thuật toán kiểm tra và ra quyết
định. Vì lý do này, các cơ hội nghiên cứu trong lĩnh vực này rất rộng mở và có tiềm năng
cải thiện trong tương lai gần.
- Trong quá trình sản xuất các bo mạch điện tử, việc kiểm tra quang học bằng máy móc
được thược hiện rất nhiều lần trong dây chuyền sản xuất để hạn chế sản phẩm lỗi. Ta có
thể thấy được việc này thông qua quy trình chế tạo mạch in công nghiệp được đăng trên
trang web https://www.mclpcb.com như sau:
Bước 1: Thiết kế PCB
Nhà thiết kế đưa ra một bảng thiết kế cho PCB đáp ứng tất cả các yêu cầu được đưa ra.
Bước 2: Đánh giá thiết kế và các câu hỏi về kỹ thuật
Đánh giá thiết kế và kiểm tra tất cả các phần của bảng thiết kế PCB để đảm bảo không có
thành phần nào bị thiếu hoặc cấu trúc không đúng. Sau đó, bảng thiết kế được chuyển sang
giai đoạn in.
22
Bước 3: In thiết kế PCB
Một loại máy in chuyên biệt được sử dụng để tạo ảnh âm bản của bảng thiết kế.
Các lớp bên trong (Inner layers)của PCB được thể hiện bằng hai màu mực:
Mực màu đen: sử dụng cho các tiếp điểm và đường mạch của PCB.
Mực trong suốt: in các vùng cần loại bỏ của PCB.
Trên các lớp bên ngoài (Top, Bottom layer) của thiết kế PCB thì ngược lại — mực trong
dùng để chỉ đường dẫn của đồng, còn mực đen thì dùng để chỉ các khu vực đồng sẽ bị loại
bỏ.
Mỗi lớp PCB và mặt nạ hàn (solder mask) đi kèm đều có phim riêng, do đó, một PCB hai
lớp đơn giản cần bốn tấm — một tấm cho mỗi lớp và một tấm cho mặt nạ hàn đi kèm.
Sau khi in, các tấm phim được xếp thành hàng và được đục lỗ bằng máy. Lỗ này dùng để
căn chỉnh phim trong quy trình chế tạo sau này.
Bước 4: Phủ đồng cho lớp bên trong
Sau khi bảng thiết kế PCB được in trên một tấm laminate, một lớp đồng sẽ được phủ lên
và được khắc theo bảng thiết kế trước đó.
Tiếp theo, tấm laminate này được phủ một loại phim cảm quang, phim này sẽ hóa cứng lại
khi tiếp xúc với tia cực tím. Khi được xếp hàng nhờ các lỗ đã đục trước đó, chúng sẽ được
chiếu tia UV. Tia UV đi qua các phần trong mờ của phim, làm cứng chất cản quang. Đây
là những khu vực đường mạch. Ngược lại, mực đen ngăn không cho tia UV nào chiếu tới
những khu vực cần loại bỏ sau này.
Sau đó, PCB được rửa bằng dung dịch kiềm để loại bỏ chất cản quang và bằng nước áp
suất cao để loại bỏ những gì còn sót lại trên bề mặt và để khô.
Kế tiếp, PCB sẽ được kiểm tra lỗi trước khi chuyển sang bước tiếp theo.
Bước 5: Khắc các lớp bên trong
Quá trình ăn mòn hóa học sẽ loại bỏ tất cả đồng không được bảo vệ khỏi PCB, chỉ để lại
các đường mạch đồng.
Bước 6: Căn chỉnh
Từng lớp PCB được làm sạch.
Các lỗ đã đục trước đó được sử dụng để căn chỉnh các lớp bên trong và bên ngoài.
Ánh sáng được truyền xuyên qua các lỗ để sắp xếp các lớp của PCB.
Bước 7: Kiểm tra quang học tự động (AOI)
Một máy thực hiện kiểm tra quang học để phát hiện khuyết tật.
Đây là quá trình kiểm tra cực kỳ quan trọng.
23
PCB đã vượt qua quá trình kiểm tra quang sẽ được chuyển sang các bước cuối cùng của
quá trình chế tạo và sản xuất PCB.
Bước AOI rất quan trọng đối với hoạt động sản xuất mạch in.
AOI đóng vai trò là điểm kiểm tra chất lượng giữa chừng trong quá trình sản xuất. Nếu
không có nó, tỉ lệ các bo mạch lỗi sau quá trình khắc có thể vượt quá quy định.
Bước này được lặp lại cho các lớp bên ngoài sau khi các kỹ sư hoàn thành việc tạo ảnh và
khắc chúng.
Bước 8: Ghép lớp PCB
Tất cả các lớp PCB sẽ được ghép lại. Mặt ngoài của PCB được ngâm/phủ trước bằng nhựa
epoxy. Sau đó chúng sẽ được ép dính lại với nhau.
Bước 9: Khoan
Máy tia X được sử dụng để xác định vị trí các điểm cần khoan. Sau đó, một mũi khoan do
máy tính điều khiển sẽ tạo lỗ theo bảng thiết kế.
Bước 10: Mạ PCB
Quá trình này sử dụng một loại hóa chất để tạo ra một lớp đồng trong các lỗ vừa được
khoan dùng để nối tất cả các lớp của PCB lại với nhau.
Bước 11: Tạo ảnh lớp ngoài
Trong bước 4, PCB được phủ một chất cản quang, còn bước này sử dụng một lớp chất cản
quang khác. Đồng thời, các lớp này được mạ thiếc để bảo vệ lớp đồng của lớp bên ngoài.
Bước 12: Khắc lớp ngoài
Điểm khác biệt chính giữa khắc lớp bên trong và khắc lớp bên ngoài là các lớp bên trong
sử dụng mực sẫm màu cho các vùng cần giữ lại và mực trong suốt cho các bề mặt muốn
loại bỏ, còn đối với các lớp bên ngoài thì ngược lại. Các vùng đồng không cần thiết và mọi
lớp phủ còn lại được loại bỏ trong quá trình ăn mòn, chuẩn bị cho bước AOI lớp ngoàivà
bước phủ mặt nạ hàn.
Bước 13: AOI lớp ngoài
Việc kiểm tra quang học này nhằm đảm bảo các lớp đảm bảo các yêu cầu của thiết kế. Nó
cũng kiểm tra việc loại bỏ tất cả đồng thừa, các đường mạch không bị nối tắt.
Bước 14: Phủ mặt nạ hàn
PCB sẽ được phủ một lớp màng epoxy mực và mặt nạ hàn lên bề mặt.
Tia cực tím chiếu vào các bảng để chỉ ra nơi cần loại bỏ.
Bảng mạch sẽ được đưa vào lò sấy để xử lý mặt nạ hàn.
Mặt nạ hàn này giúp bảo vệ cho lớp đồng của bo mạch khỏi ăn mòn và oxy hóa.
Bước 15: In lụa (Silkscreen)
24
Nhà chế tạo sẽ in các dữ liệu quan trọng lên bề mặt của bo mạch. Thông tin này bao gồm
những nội dung sau đây:
Số ID công ty.
Nhãn cảnh báo.
Nhãn hiệu hoặc logo của nhà sản xuất.
...
Sau đó, PCB được phủ lớp hoàn thiện bề mặt.
Bước 16: Hoàn thiện PCB
Hoàn thiện PCB yêu cầu mạ bằng vật liệu dẫn điện, chẳng hạn như sau: Bạc, Vàng,
Thiếc, Chất bảo quản hàn hữu cơ (OSP)....
Các lớp này có tác dụng bảo vệ PCB khỏi quá trình oxy hóa khi tiếp xúc với không khí.
Bước 17: Kiểm tra về điện
Kỹ thuật viên sẽ thực hiện một loạt kiểm tra điện trên các khu vực khác nhau của PCB.
Thử nghiệm này phải tuân thủ các tiêu chuẩn của IPC-9252.
Nếu PCB đã vượt qua thử nghiệm độ tin cậy về điện thì có thể chuyển sang bước tiếp theo.
Bước 18: Cắt PCB
Máy phay hoặc máy CNC tạo ra một số mảnh nhỏ dọc theo các cạnh của bảng mạch .
Các cạnh này giúp bảng mạch nhanh chóng được tách ra mà không bị hư hại.
Bước 19: Kiểm tra chất lượng và kiểm tra trực quan
PCB sẽ trải qua lần kiểm tra cuối trước khi được đóng gói và vận chuyển:
Các kích thước lỗ phải phù hợp trên tất cả các lớp và đáp ứng các yêu cầu thiết kế.
Kích thước bảng phải đúng với kích thước trong bảng thiết kế.
Đảm bảo sạch sẽ, không bám bụi.
Thành phẩm không được có gờ hoặc cạnh sắc.
Tất cả các bo mạch không vượt qua được bài kiểm tra về điện đều phải được sửa chữa
và kiểm tra lại.
Ta có thể thấy kiểm tra quang học tự động (AOI) là một bước quan trọng trong quy trình
trên, loại bỏ các sản phẩm không đạt ngay từ đầu quy trình sản xuất, giúp tăng tỉ lệ thành
phẩm. Việc kiểm tra này được lặp lại mỗi khi một lớp mạch được khắc xong, và trước khi
bắt đầu ghép các lớp lại với nhau.
25
- Trong bài báo “ Phát hiện lỗi PCB bằng xử lý ảnh”[2] Abhilash Doniwar và các cộng
sự đã sử dụng các phương pháp xử lý ảnh trên ảnh chụp mạch in cần kiểm tra, sau đó dùng
phép XOR ảnh đã xử lý với ảnh từ file thiết kế, từ đó chỉ ra các lỗi trên PCB.
Hình 1.1: Lược đồ hệ thống “ Phát hiện lỗi PCB bằng xử lý ảnh”[2]
Đây là phương pháp phát hiện lỗi mạch in nhanh, không phức tạp, dễ triển khai thiết kế
và thi công. Tuy nhiên phụ thuộc nhiều vào chất lượng ảnh đầu vào và khi tỉ lệ ảnh đầu
vào/ảnh tham chiếu thấp (nhiều loại mạch khác nhau kiểm tra cùng lúc) thì công việc gần
như trở thành thủ công.
- Chuyên sâu hơn, trong bài báo “Phát hiện lỗi PCB bằng phương pháp học sâu” [3] Wu
và các cộng sự đã sử dụng 2 mạng học sâu là SSD và FPN được training trên 2 tập dữ liệu
PCB Dataset và DeepPCB Dataset khác nhau - “Do những hạn chế về mặt kỹ thuật, PCB
BẮT ĐẦU
KẾT THÚC
BẢNG ĐẦU VÀO
• Ảnh đầu vào
• Ảnh tham chiếu
BIẾN ĐỔI ẢNH
• Ảnh xám
• Ảnh qua bộ lọc
• Ảnh dò cạnh
• Ảnh được làm sắc nét
• Ảnh biến đổi theo ngưỡng
• Ảnh qua phép XOR
BẢNG ĐẦU RA
• Ảnh hiển thị lỗi
• Bộ đếm lỗi
26
chắc chắn sẽ xuất hiện các khuyết tật trong quá trình sản xuất. Để đảm bảo năng suất cao
và tiết kiệm chi phí lao động, bài báo này đã áp dụng hai loại mạng phát hiện và phân loại
lỗi PCB. Các thử nghiệm cho thấy hai phương pháp được sử dụng trong hai phân bổ tập
dữ liệu khác nhau đạt được độ chính xác cao”- có kết quả như sau:
Bảng 1.1: Kết quả so sánh 2 mô hình SSD và FPN trên 2 tập dữ liệu [3]
PHƯƠNG PHÁP CHỈ SỐ ĐÁNH GIÁ
TÊN TẬP DỮ LIỆU
PCB Dataset DeepPCB Dataset
SSD
Precision 98,9 89,7
Recall 54,4 78,5
F1-score 70,2 83,7
FPN
Precision 96,4 92,7
Recall 98,2 97,3
F1-score 97,3 94,6
Kết quả thử nghiệm cho thấy hiệu quả của hai mô hình này rất tốt. Trong đó, mô hình
FPN tốt hơn, một phần vì FPN đã sử dụng cấu trúc kim tự tháp ngược, cấu trúc phát hiện
mục tiêu nhỏ phù hợp hơn. Có thể cải thiện mô hình SSD bằng cách thêm một lớp giải mã
tương tự để tăng tác dụng của cấu trúc này.
1.1.2 Tình hình nghiên cứu trong nước:
- Quy trình lắp ráp linh kiện và kiểm tra mối hàn của Công ty TNHH JABIL Việt Nam
có sử dụng kiểm tra quang học bằng phương pháp xử lý ảnh như sau:
27
Hình 1.2: Quy trình sản xuất mạch điện của Công ty TNHH JABIL Việt Nam
SẤY
• Gia nhiệt đến nhiệt độ
thích hợp để chuẩn bị quét
KIỂM TRA NGOẠI QUAN
BẰNG XỬ LÝ ẢNH
• Kiểm tra màu sắc
• Kiểm tra vị trí linh kiện
• Kiểm tra mối hàn
KIỂM TRA VỀ
ĐIỆN
BOARD MẠCH
• Bo mạch đã
được ăn mòn bằng
hóa chất và vệ sinh
QUÉT KEM CHÌ
• Quét kem chì lên các vị
trí cần hàn
GẮP ĐẶT LINH KIỆN
• Đặt linh kiện vào vị trí
định trước theo sơ đồ thiết kế
GIA NHIỆT
• Gia nhiệt đến nhiệt độ
thích hợp để chì chảy ra, bám
vào linh kiện và PCB
VỆ SINH MẠCH
• Vệ sinh chì dư và hóa
chất bám trên bề mặt
28
- Gần đây, trong luận văn tốt nghiệp đại học của sinh viên trường Đại học Sư phạm Kỹ
thuật cũng áp dụng biện pháp xử lý ảnh để phát hiện lỗi mạch in sau khi ăn mòn bằng hóa
chất.
Hình 1.3: Lưu đồ giải thuật thiết kế phần mềm trong luận văn tốt nghiệp đại học của
sinh viên trường Đại học Sư phạm Kỹ thuật
Tạo giao diện người dùng
Chuyển ảnh gốc thành ảnh nhị
phân
So sánh ảnh chuyển mạch với
ảnh gốc để tìm ra lỗi sai
Khởi tạo thư viện
Nhập ảnh nhận điện
Nhập ảnh gốc
Chuyển ảnh nhận điện từ ảnh
màu thành ảnh nhị phân
Chuyển mạch trong ảnh nhận
điện khớp với ảnh gốc
BẮT ĐẦU
KẾT THÚC
29
*. Tóm lại, ta có thể thấy phương pháp kiểm tra quang học tự động (AOI) thường được
sử dụng trong công nghiệp trong nước là phương pháp xử lý ảnh do có ưu điểm là công
nghệ đơn giản đễ thi công và bảo trì, còn phương pháp sử dụng mạng học sâu chủ yếu được
nghiên cứu trong các bài báo và ứng dụng ngoài nước do công nghệ phức tạp, khó làm chủ
(vấn đề bản quyền, bảo trì, bảo dưỡng).
Ưu điểm của phương pháp xử lý ảnh là nhanh và độ chính xác cao.
Nhược điểm là phụ thuộc nhiều vào phần cứng (cần thiết bị chuyên dụng) nên đắt tiền;
cần dữ liệu mẫu để so sánh (file thiết kế PCB); chỉ phát hiện mà không phân loại được lỗi.
Các nghiên cứu ứng dụng mạng học sâu vào thị giác máy tính như nhận diện khuôn mặt,
nhận diện bảng số xe, phát hiện hành động nguy hiểm của tài xế ... được phát triển rất
nhiều. Tuy nhiên, chưa có phần mềm nào ứng dụng mạng học sâu (Deep Learning) vào
nhận dạng lỗi PCB trong các cơ sở sản xuất nhỏ trong nước, đặc biệt là trong đào tạo nghề
với tỉ lệ sản phẩm/mẫu là rất bé, thậm chí là 1/1.
1.2 MỤC TIÊU ĐỀ TÀI
Đề tài này được thực hiện nhằm mục đích giải quyết vấn đề nhận dạng các lỗi quan
trọng của PCB khiến mạch không thể hoạt động như :
- Đứt đường mạch (Open).
- Nối tắt (Short).
- Và một số lỗi ảnh hưởng đến chất lượng mạch như : đường mạch bị ăn mòn quá mức
(Mousebite), bị thừa (Spur), ăn mòn chưa hết (Cooper), bị rỗ (Pinhole) với tỉ lệ sản
phẩm/mẫu bé (không cần file mạch in gốc để đối chiếu).
- Chi phí thấp (sử dụng các thiết bị sẵn có: máy tính, camera ..)
Để giải quyết được các vấn đề đó, người thực hiện đề tài sẽ xây dựng một mạng học
sâu có khả năng nhận dạng các lỗi trên của PCB, khoanh vùng và ghi tên mỗi loại.
1.3 NHIỆM VỤ VÀ GIỚI HẠN CỦA ĐỀ TÀI
1.3.1 Nhiệm vụ của đề tài
- Nghiên cứu quy trình chế tạo PCB.
- Tìm hiểu và lựa chọn một mạng học sâu có khả năng phân biệt được các lỗi thường
gặp trên PCB, khoanh vùng và ghi tên mỗi loại.
- Tìm hiểu phương pháp tiền xử lý ảnh trước khi đưa vào huấn luyện.
30
- Dùng bộ dữ liệu đã xử lý để huấn luyện mạng.
- Dùng các công cụ đánh giá mô hình trong Matlab.
- Kết luận và đánh giá kết quả đạt được.
1.3.2 Giới hạn của đề tài
- Mô hình nhận diện lỗi được xây dựng để chạy trong môi trường đồng nhất ánh sáng
(ánh sáng được kiểm soát).
- Nhận diện được các lỗi đứt đường mạch (Open), nối tắt (Short), đường mạch bị ăn
mòn quá mức (Mousebite), bị thừa (Spur), ăn mòn chưa hết (Cooper), bị rỗ
(Pinhole).
1.4 PHƯƠNG PHÁP NGHIÊN CỨU
- Phương pháp nghiên cứu cơ sở lý thuyết.
- Phương pháp thu thập số liệu.
- Phương pháp thống kê.
- Phương pháp mô phỏng, đánh giá.
- Phương pháp thực nghiệm khoa học.
- Phương pháp phân tích tổng kết kinh nghiệm.
1.5 BỐ CỤC ĐỀ TÀI
Đề tài được trình bày theo bố cục sau:
Chương 1: TỔNG QUAN. Ở chương này, người thực hiện đề tài sẽ trình bày tổng quan
về quá trình chế tạo mạch in PCB và các phương pháp phát hiện lỗi được sử dụng hiện nay,
qua đó đề xuất cải tiến để giải quyết các vấn đề hiện tại.
Chương 2: CƠ SỞ LÝ THUYẾT. Chương này sẽ trình bày về các lý thuyết có sử dụng
trong đề tài:
Chương 3: PHƯƠNG PHÁP ĐỀ XUẤT. Trong chương này sẽ trình bày về mạng SSD
(Single Shot Multibox Detector) được sử dụng để huấn luyện mạng trong đề tài.
Chương 4: KẾT QUẢ SƠ BỘ. Nội dung của chương này sẽ tập trung vào trình bày
các kết quả đã đạt được của đề tài.
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN. Kết luận và hướng phát triển
của đề tài sẽ được trình bày ở chương này.
31
Chương 2
CƠ SỞ LÝ THUYẾT
2.1 XỬ LÝ ẢNH
Ảnh là thông tin về vật thể hay quang cảnh được chiếu sáng mà con người quan sát và
cảm nhận bằng mắt và hệ thần kinh thị giác .
Một hình ảnh kỹ thuật số là biểu diễn hai chiều được xây dựng từ ma trận nhị phân (bao
gồm các số một và số không), gồm các thông số về kích thước ảnh (dimension: width x
height pixels) và độ sâu (bit deepth) của ảnh như Wu và các cộng sự [4] đã phân tích.
Dựa vào độ sâu của ảnh, ta có thể chia làm ảnh nhị phân (1 bit), ảnh xám (8 bit), ảnh
màu (16-24 bit) ...
Hình 2.1: Ảnh màu, ảnh xám và ảnh nhị phân.
Khi xây dựng mô hình phân loại ảnh chúng ta có thể gặp phải một số trường hợp không
mong muốn như: Kết quả huấn luyện có độ chính xác rất cao trên cả tập huấn luyện (train
dataset) và tập kiểm tra (test dataset). Nhưng khi áp dụng để nhận dạng lại cho độ chính
xác thấp. Có nhiều nguyên nhân dẫn tới điều này, Russakovsky[5], Rafael C. Gonzalez[6]
, Brownlee[7] và các cộng sự đã chỉ ra các lí do, chúng ta có thể liệt kê một trong số đó là
:
32
- Các bức ảnh được huấn luyện khác xa so với những bức ảnh cần nhận dạng về các khía
cạnh: cường độ, màu sắc, độ phân giải, chất lượng ảnh, độ to nhỏ của vật thể, vị trí của
vật thể bên trong ảnh.
- Có thể các bức ảnh cần nhận dạng mặc dù cùng nhãn nhưng khác về tính chất so với
các bức ảnh đã huấn luyện. Ví dụ trong một thuật toán phân loại cam và bưởi, tập huấn
luyện chỉ bao gồm những quả cam đã chín (có màu vàng) nhưng ảnh cần nhận dạng lại
là những quả cam còn xanh dẫn tới thuật toán bị nhầm lẫn.
- Đối với một số tác vụ phân loại ảnh khó, cần chuyên gia chuyên ngành gán nhãn, rất
dễ mắc sai lầm như chuẩn đoán bệnh về não. Khi có một số ít các ảnh trong tập huấn
luyện bị gán sai nhãn, điều này sẽ ảnh hưởng đến khả năng dự báo của thuật toán.
- Bộ dữ liệu huấn luyện (train dataset) có kích thước quá nhỏ và không đầy đủ, không
đại diện cho toàn bộ các lớp cần huấn luyện.
- Phân chia của tập huấn luyện (train dataset) không phù hợp với thực tế. Chẳng hạn tập
huấn luyện cần chứa ảnh hoa hồng và hoa cúc theo tỷ lệ 50:50 nhưng số lượng ảnh trong
tập huấn luyện lại thiên về hoa hồng, chiếm số lượng nhiều theo tỷ lệ 90:10. …
Và còn rất nhiều các nguyên nhân khác dẫn tới mô hình hoạt động không được như
mong muốn.
Khi gặp phải các trường hợp trên chúng ta cần phải tìm ra nguyên nhân thực sự của vấn
đề là gì, từ đó đưa ra phương pháp khắc phục thích hợp các lỗi của thuật toán.
Nếu tập dữ liệu không đủ lớn, dữ liệu cần gán nhãn với chi phí cao (như dùng hình ảnh
để chuẩn đoán bệnh, cần tìm ra những người mách bệnh đó và cần bác sĩ đúng chuyên
ngành để khám bệnh), vì vậy chi phí cho việc thay đổi tập dữ liệu là khá cao.
Khi đó, cần có một phương pháp giúp tăng số lượng ảnh huấn luyện dựa trên số ảnh đã
có, đó là phương pháp học tăng cường (data augumentation)[5]. Phương pháp này sử dụng
các biến đổi tiền xử lý ảnh để tăng số ảnh đầu vào. Phương pháp đã chứng minh hiệu quả
thông qua các kết quả huấn luyện và giúp cải thiện kết quả dự báo.
Phương pháp biến đổi ảnh màu thành ảnh xám và ảnh nhị phân[6]:
33
 Biến đổi ảnh màu (color) sang ảnh xám (grayscale) hoặc đọc ảnh lên bằng cờ ảnh
xám.
 Thiết lập ngưỡng (threshold) để nhị phân hóa ảnh.
 Áp dụng ngưỡng vào ảnh xám để tạo ảnh nhị phân hoặc áp dụng giải thuật nhị phân
hóa ảnh. Các pixel có giá trị lớn hơn ngưỡng ta thiết lập bằng 255 (hoặc 1), nhỏ hơn
ngưỡng ta thiết lập bằng 0.
Hình 2.2: Chuyển từ ảnh RGB sang ảnh xám.
mức xám gray = a*R + b*G + c*B.
Ví dụ: hàm rgb2gray có a=0.2989 , b= 0.5870 , c= 0.1140
vậy gray = 0.2989 * R + 0.5870 * G + 0.1140 * B .
Cân bằng lược đồ mức xám thích nghi (CLAHE):
Phương pháp cân bằng thích nghi có giới hạn độ tương phản (CLAHE) giúp khắc phục
vấn đề khuếch đại giá trị nhiễu ở hai phương pháp AHE và HE.
CLAHE tạo nên một giới hạn cắt để khắc phục vấn đề khuếch đại nhiễu. CLAHE giới
hạn khuếch đại bằng cách cắt biểu đồ ở giá trị được xác định trước khi tính toán CDF.
CLAHE có hai tham số chính: Kích thước khối (BS) và Giới hạn clip (CL). Đây là hai
thông chủ yếu kiểm soát chất lượng của hình ảnh.
Phương pháp phân ngưỡng Otsu:
Otsu là phương pháp tính ngưỡng một cách tự động dựa vào giá trị điểm ảnh của ảnh
đầu vào nhằm thay thế cho việc sử dụng ngưỡng cố định.
Mục đích là để tìm giá trị ngưỡng mà tổng chênh lệch nền và nền ở mức tối thiểu.
Một số phương pháp xử lý ảnh cơ bản để tăng cường ảnh đầu vào[6]:
34
- Phương pháp thay đổi kích cỡ ảnh(Scale ảnh) là việc thay đổi chiều dài, chiều rộng của
ảnh mà không làm thay đổi việc các đoạn thẳng song song với nhau trên ảnh gốc. Ta có
phép dịch chuyển sẽ là:
𝑇(𝑥, 𝑦) = 𝑀 = = (2.1)
- Phương pháp dịch chuyển ảnh (Translation) thường được thực hiện khi chúng ta muốn
dời ảnh từ vị trí này đến vị trí khác. Ví dụ dời ảnh đến vị trí các góc trên, dưới, bên trái,
bên phải. Tính chất song song của các đoạn thẳng sau khi thực hiện phép dịch chuyển đối
với các trục X hoặc Y sẽ được giữ nguyên nếu chúng cũng song song với các trục này trước
khi dịch chuyển. Ma trận dịch chuyển sẽ có dạng như bên dưới:
𝑀 = (2.2)
𝑇(𝑥, 𝑦) = 𝑀 = = (2.3)
Như vậy với tọa độ (x,y) bất kỳ trong ảnh, sau khi thực hiện phép dịch chuyển sẽ trở
thành (x+tx, y+ty).
- Phương pháp xoay ảnh (Rotation): là chọn một điểm cố định rồi xoay ảnh xung quanh
điểm đó theo một gốc nào đó. Phương pháp này sẽ khiến tính chất song song với các trục
X hoặc Y không còn được bảo toàn giống như phép dịch chuyển nhưng độ lớn của góc sẽ
được bảo toàn. Khi ta có 3 điểm bất kì trong ảnh gốc tạo thành một tam giác thì qua biến
đổi bằng phép xoay ảnh, tam giác do chúng tạo ra sẽ đồng dạng với tam giác ban đầu. Ma
trận xoay ảnh có dạng sau:
𝑀 = ( )
( )
( )
( )
(2.4)
- Phương pháp lật ảnh (Flip): ảnh được lật (lấy đối xứng) theo chiều dọc hoặc chiều
ngang nhưng không làm thay đổi ý nghĩa của ảnh. Ví dụ: trái bóng có thể lật theo cả chiều
dọc và ngang nhưng số 6, số 9 hoặc số 8 thì không thể.
35
- Phương pháp cắt ngẫu nhiên (Random crop): cắt một phần ngẫu nhiên của bức ảnh
nhưng vẩn giữ lại phần chính cần nhận diện. Nếu cắt mất phần cần nhận diện thì giá trị
nhãn không còn chính xác.
- Phương pháp chuyển đổi màu (Color shift): thêm giá trị vào ba kênh màu RGB tạo ra
ảnh bị nhiễu.
- Phương pháp thay đổi độ tương phản (Constrast change): thay đổi độ tương phản, độ
bão hòa của bức hình.
Trên đây tác giả chỉ nêu một số phương pháp thường dùng để tăng cường ảnh, ngoài ra
còn rất nhiều phương pháp khác được áp dụng tùy thuộc vào từng loại dữ liệu nhằm giúp
tăng dữ liệu đầu vào của mô hình. Tuy nhiên, trong điều kiện cho phép, việc tăng dữ liệu
đầu vào bằng cách thu thập dữ liệu thực tế vẫn là phương pháp tốt nhất.
2.2 NHẬN DIỆN ĐỐI TƯỢNG (OBJECT DETECTION)
Nhận diện đối tượng[7] là một thuật ngữ dùng để chỉ một chuỗi bao gồm các tác vụ về
thị giác máy tính (computer vision) liên quan đến việc xác định, phân loại, định vị ... các
đối tượng (object) trong ảnh kỹ thuật số.
Phân loại hình ảnh [7](image classification) là việc dự báo nhãn của một đối tượng trong
ảnh kỹ thuật số. Định vị đối tượng[7] (oject localication) liên quan đến việc xác định vị trí
của đối tượng trong ảnh kỹ thuật số và vẽ khung bao (bounding box) xung quanh chúng.
Phát hiện đối tượng [7](oject detection) kết hợp cả hai tác vụ trên và thực hiện cho một
hoặc nhiều đối tượng trong ảnh kỹ thuật số. Chúng ta có thể phân biệt giữa ba tác vụ thị
giác máy tính cơ bản này trên thông qua ngõ vào (input) và ngõ ra (output) như sau:
- Phân loại hình ảnh (image classification): Dự báo nhãn của một đối tượng trong
ảnh kỹ thuật số.
+ Ngõ vào: Một ảnh và một đối tượng, (ví dụ ảnh một quả cam).
+ Ngõ ra: Nhãn đối tượng (ví dụ: một hoặc nhiều số nguyên được ánh xạ tới
nhãn đối tượng).
36
- Định vị đối tượng (oject localication): Xác định các đối tượng trong ảnh và cho biết
vị trí của chúng bằng khung bao (bounding box).
+ Ngõ vào: Một ảnh kỹ thuật số có một hoặc nhiều đối tượng, ví dụ ảnh chụp
một giỏ trái cây.
+ Ngõ ra: Một hoặc nhiều khung bao (bounding box) bao gồm chiều dài và chiều
rộng, tọa độ tâm.
- Phát hiện đối tượng (oject detection): Xác định vị trí của các đối tượng trong khung
bao (bounding box) và dự báo nhãn của các đối tượng nằm trong một ảnh.
+ Ngõ vào: Một ảnh kỹ thuật số có một hoặc nhiều đối tượng, ví dụ ảnh một đàn
gia súc.
+ Ngõ ra: Một hoặc nhiều khung bao (bounding box) và nhãn dư báo cho mỗi
khung bao.
Một số định nghĩa khác cũng rất quan trọng trong thị giác máy tính là phân đoạn đối
tượng[6] (object segmentation), trong đó đối tượng được chỉ ra bằng cách làm nổi bật các
điểm ảnh cụ thể của chúng thay vì bằng khung bao (bounding box). Và chú thích hình ảnh
(image captioning) là sự kết hợp giữa các kiến trúc mạng tích chập (CNN) và mạng hồi
quy (LSTM) để đưa ra các chú thích về nội dung hoặc hành động của một bức ảnh.
37
Hình 2.3: Sơ đồ các tác vụ của thị giác máy tính [7]
Chúng ta cũng có thể hiểu nhận diện đối tượng (object recognition) tương tự như phát
hiện đối tượng(object detection) theo một cách gần đúng nào đó. Gần đây, nhận diện đối
tượng đã trở thành một phần của của cuộc thi ILSVRC[5], đây là một trong những cuộc thi
nhận diện ảnh lớn nhất.
Thêm một điểm khác biệt giữa mô hình phân loại ảnh so với mô hình nhận diện ảnh là
mô hình phân loại ảnh có hàm mất mát loss function chỉ dựa trên sai số giữa nhãn thực tế
và nhãn dự báo trong khi mô hình phát hiện đối tượng đánh giá dựa trên sai số giữa khung
hình dự báo và sai số nhãn dự báo so với thực tế[5].
2.3 MẠNG HỌC SÂU
Các mô hình phát hiện đối tượng dựa trên kiến trúc mạng Region-Based Convolutional
Neural Network (R-CNNs) gồm các lớp mô hình: R-CNN, Fast R-CNN và Faster R-CNN
là các mô hình cơ bản, tốc độ xử lý thấp. Thuật toán dựa trên 2 phần xử lý riêng biệt là phát
hiện các khu vực đề xuất (region proposal) và phân loại hình ảnh. Đặc điểm chung của các
mô hình này là tốc độ xử lý chậm, không thích hợp cho việc nhận dạng đối tượng theo thời
Nhận dạng đối tượng
Phân loại hình ảnh Định vị đối tượng
Phát hiện đối tượng
Phân đoạn đối tượng
38
gian thực. Các mạng như SSD và YOLOv2, YOLOv3 là những kiến trúc mạng có tốc độ
xử lý tốt hơn nhưng vẫn đảm bảo độ chính xác do các thay đổi trong kiến trúc mạng giúp
thực hiện việc phát hiện và phân loại vật thể trong 1 lần đồng thời lược bỏ được các kết nối
không cần thiết[8].
Nhìn chung, các kiến trúc nhận diện đối tượng đều dựa trên một mạng tích chập sâu
chẳng hạn như Alexnet hoặc VGG16 ở giai đoạn ban đầu giúp trích lọc các đặc trưng và
phát hiện các vùng đề xuất. Sau đó thuật toán được phát triển nhằm tìm ra khung bao và
độ tin cậy của đối tượng chứa trong khung bao đó. Tùy vào cách xây dựng mà các mô hình
có thể nằm cùng trong một mô hình hoặc theo dạng đường ống (pipeline). Tốc độ của mỗi
mô hình phụ thuộc nhiều vào số lượng khung bao mà nó tạo ra.
Bảng 2.1: So sánh tốc độ và độ chính xác giữa các mô hình nhận diện vật thể (source:
table 7 - SSD: Single Shot MultiBox Detector)
Phương pháp mAP FPS
Batch
size
#
Boxes
Độ phân giải
đầu vào
Faster R – CNN
(VGG16)
73.2 7 1 ~6000 ~1000 x 600
Fast YOLO
YOLO (VGG16)
52.7
66.4
155
21
1
1
98
98
448 x 448
448 x 448
SSD300
SSD512
SSD300
SSD512
74.3
76.8
74.3
76.8
46
19
59
22
1
1
8
8
8732
24564
8732
24564
300 x 300
512 x 512
300 x 300
512 x 512
Ta thấy các mô hình SSD với kích thước đầu vào của ảnh là 300 x300 x3 (SSD300)
hoặc 512 x 512 x 3 (SSD500) có độ chính xác mAP là rất cao trong khi tốc độ
realtime gần đạt mức khoảng 22 fps.
Mô hình SSD [8]sẽ là kết hợp của 2 bước:
 Trích xuất các feature map từ mạng CNN.
 Áp dụng convolutional filters (hoặc kernel filters) để phát hiện vật thể trên các
feature map có độ phân giải (revolution) khác nhau.
39
Hình 2.4: Cách chia biểu đồ đặc trưng (feature map) để nhận diện ảnh với những kích
cỡ khác nhau[8].
Mô hình SSD cần đầu vào là một ảnh và các khung chuẩn (ground truth boxes) dùng để
xác định vị trí khung bao (bounding box) xung quanh các vật thể cần nhận diện trong quá
trình huấn luyện. Trong quá trình này, trên mỗi một biểu đồ đặc trưng, ta tính toán các
khung mặc địn (default boxes) tương ứng với các tỷ lệ khung hình khác nhau (aspect ratio)
lên các biểu đồ đặc trưng có kích thước (scales) khác nhau (chẳng hạn kích thước 8x8 và
4x4 trong hình (b) và (c)). Đối với mỗi default box (các boxes nét đứt trong hình) ta cần
dự báo một phân phối xác suất tương ứng với các lớp.
Tại thời điểm huấn luyện, đầu tiên chúng ta cần match default boxes với ground truth
boxes sao cho mức độ sai số được đo lường qua localization loss là nhỏ nhất (thường là
hàm Smooth L1). Sau đó ta sẽ tìm cách tối thiểu hóa sai số của nhãn dự báo tương ứng với
mỗi vật thể được phát hiện trong default boxes thông qua confidence loss (thường là hàm
softmax).
Như vậy loss function của object detection sẽ khác với loss function của các tác vụ image
classification ở chỗ có thêm localization loss về sai số vị trí của predicted boxes so với
ground truth boxes.
40
Chương 3
PHƯƠNG PHÁP ĐỀ XUẤT
Dựa trên các kiến thức tổng quát đã tìm hiểu bên trên, tác giả tiến hành các bước để thực
hiện mục tiêu đã đề ra như sau:
- Tìm hiểu các kiến thức liên quan đến mục tiêu đã đề ra.
- Thu thập dữ liệu, sử dụng các phương pháp xử lý ảnh để tạo ra tập dữ liệu đầu vào
đồng thời áp dụng phương pháp tăng cường ảnh để tăng dữ liệu huấn luyện.
- Xây dựng mô hình huấn luyện, dùng mô hình đã qua huấn luyện (pre-trained) để giảm
thời gian huấn luyện, đồng thời dùng phương pháp transfer learning, đóng băng trọng số,
fine turning nhằm tăng độ chính xác của mô hình.
- Sau đó tiến hành chạy thử.
- Sử dụng các công cụ của Matlab để đánh giá mô hình.
- So sánh với mục tiêu đề ra.
- Tiến hành điều chỉnh thông số mô hình và tập dữ liệu để kết quả gần với mục tiêu đề
ra nhất.
- Đánh giá, kết luận.
3.1 TẬP DỮ LIỆU
Sử dụng tập dữ liệu DeepPCB dataset [9] của Sanli Tan gồm 1.500 cặp hình ảnh, mỗi
cặp bao gồm một hình ảnh mẫu có lỗi và một hình ảnh đã được kiểm tra căn chỉnh bao gồm
vị trí của 6 loại lỗi PCB phổ biến nhất: : đường mạch bị ăn mòn quá mức (Mousebite), bị
thừa (Spur), ăn mòn chưa hết (Cooper), bị rỗ (Pinehole).
File ảnh có tên *-test.jpg là ảnh có lỗi, file ảnh có tên *-template.jpg là ảnh không có lỗi.
Các lỗi này được lưu dưới dạng (x1 y1 x2 y2 a) với (x1 y1) là tọa độ góc trên bên trái, (x2
y2) là tọa độ góc dưới bên phải, a là ký hiệu của lỗi theo thứ tự open (1), short (2),
mousebite (3), spur (4), copper (5), pinehole (6) và được lưu dưới dạng file *.text trong thư
mục *-not.
41
(a)
Hình 3.1 (a) ảnh *_test, (a) lỗi bị thừa, (b) lỗi dư đồng, (c) lỗi ăn mòn quá mức, (d) lỗi
dính mạch, (e) lỗi rổ mạch, (f) lỗi đứt mạch.
Tuy nhiên, Matlab lại định dạng theo kiểu (x1 y1 width height) với (x1 y1) là vị trí bên
trái, góc phái trên, width và height lần lượt là độ rộng và độ cao của ảnh. Do đó, khi dữ
liệu đọc từ file *.text có dạng (x1 y1 x2 y2) ta cần thực hiện bước chuyển đổi để phù hợp
với kiểu dữ liệu của Matlab. Khi đó ta có dạng sau (x1 y1 x2-x1 y2-y2).
Ta sẽ thực hiện các bước để tạo ra file data.mat có định dạng table gồm 7 cột như sau:
cột 1 chứa đường dẫn trỏ đến vị trí file ảnh , 6 cột còn lại là tên sáu lỗi cần nhận diện chứa
vecter tọa độ của lỗi đó theo định dạng của Matlab.
(a)
(b)
(c)
(d)
(e)
(f)
42
Path open short mousebite
1 D:Test00041000_test.jpg' [539,259,53,57] [454,300,39,96] [466,441,27,29]
2 D:Test00041004_test.jpg' [469,438,38,27] [429,279,29,94] [465,173,30,29]
3 D:Test00041006_test.jpg' [292,430,46,57] [135,154,56,29] [281,233,32,40]
4 D:Test00041010_test.jpg' [202,402,57,43] [87,84,49,26] [80,179,39,25]
5 D:Test00041013_test.jpg' [161,341,65,40] [552,359,36,33] [279,337,38,29]
6 D:Test00041014_test.jpg' [521,494,30,32] [514,342,47,26] 3x4 double
Hình 3.2 Nội dung của file data.mat
3.2 KIẾN TRÚC CỦA MÔ HÌNH
Mô hình SSD [8] được xây dựng bao gồm một mạng cơ bản (base network) là một mạng
học sâu đã được lược bỏ các kết nối đầy đủ (layers fully connected) ở giai đoạn ban đầu
nhằm trích lọc các đặc điểm nhận dạng.
Các bộ lọc tích chập (convolutional filter) với kích thước (3 x 3) được sử dụng trên các
biểu đồ đặc trưng (features map) ở những lớp tiếp theo nhằm mục đích giảm kích thước
của ảnh. Việc này giúp mô hình nhận diện được các hình ảnh ở nhiều kích thước khác nhau.
Trên mỗi một ô (cell) của biểu đồ đặc trưng ta tạo ra một tập hợp các khung bao có tỉ lệ
(scale) và tỉ lệ khung hình (aspect ratio) khác nhau. Tọa độ của các khung bao được sử
dụng để dự báo giá trị bù (offsets) của khung hình bao quanh vật thể.
Hình 3.3: Sơ đồ mô hình mạng SSD300
43
SSD là mạng tích chập dựa trên tiến trình lan truyền thuận từ một kiến trúc chuẩn có sẳn
(chẳng hạn VGG16) để tạo ra một khối ngõ ra biểu đồ đặc trưng có 3 chiều ở giai đoạn ban
đầu. Kiến trúc mạng này được gọi là mô hình mạng cơ bản (base network) từ lớp input
Image đến lớp Conv7 như trong sơ đồ. Sau đó chúng ta sẽ xây dựng thêm những kiến trúc
phía sau base network này để tiến hành nhiệm vụ nhận diện vật (các lớp trích xuất đặc
trưng Extra Feature Layers trong hình 3.4). Các lớp này được diễn giải như sau:
● Các lớp của mô hình SSD:
Input Layer: Đầu vào là các bức ảnh có kích thước (width x height x channels) = 300
x 300 x 3 đối với kiến trúc SSD300 (hoặc 500 x 500 x 3 đối với kiến trúc SSD500).
Conv4_3 Layer: Chính là kiến trúc nền sử dụng mô hình của VGG16 nhưng đã loại bỏ
một số kết nối đầy đủ ở phía cuối. Đầu ra của lớp này là Conv5_3 Layer và là một feature
map có kích thước 38 x 38 x 512.
Conv5_3 Layer: Ta có thể coi Conv5_3 là một feature map có kích thước 38 x 38 x
512. Ở đây ta sẽ áp dụng 2 biến đổi chính đó là:
Dùng một lớp tích chập như một mạng nơron tích chập (CNN) thông thường để thu được
ngõ ra cho lớp tiếp theo. Cụ thể lớp tích chập này có bộ lọc tích chập có kích thước 3 x 3
x 1024, đầu ra thu được lớp Conv6 có kích thước là 19 x 19 x 1024.
Đồng thời, ở đây ta cũng áp dụng một lớp phân loại (classifer như trong sơ đồ) và cũng
dựa trên bộ lọc tích chập kích thước 3 x 3 để nhận diện vật thể với đặc điểm đã trích xuất
trên feature map. Quá trình khá phức tạp vì nó vừa phải đảm bảo phát hiện vật thể (thông
qua phát hiện các khung bao) vừa phân loại vật thể.
Đầu tiên feature map kích thước 38 x 38 x 512 sẽ được phân chia thành một lưới (grid
cell) kích thước 38 x 38 (việc tính tích chập trên toàn bộ độ sâu giúp bỏ qua độ sâu ở bước
này).
Sau đó mỗi ô trên lưới sẽ tạo ra 4 khung bao với các tỷ lệ khung hình (aspect ratio) khác
nhau, đối với mỗi một khung bao ta cần tìm các tham số sau: phân phối xác suất của nhãn
44
là một véc tơ có n_classes + 1 chiều (Lưu ý số lượng đối tượng cần nhận diện (classes)
luôn cộng thêm 1 cho background).
Đồng thời chúng ta tính cần thêm 4 tham số bù (offsets) để xác định khung bao của vật
thể trong ảnh. Do đó trên một khung bao sẽ có n_classes + 4 tham số và trên 1 ô sẽ có
4*(n_classes+4) ngõ ra cần dự báo. Nhân với số ô của Conv4_3 để tính được số lượng ngõ
ra là một ma trận kích thước 38 x 38 x 4 x (n_classes+4), trong trường hợp xem background
cũng là 1 nhãn thì ma trận sẽ có kích thước 38 x 38 x 4 x (n_classes+5). Và số lượng các
khung bao được sản sinh ra là 38 x 38 x 4.
Quá trình áp dụng cách phân loại lên feature map cũng tương tự với các lớp mạng Conv7,
Conv8, Conv9, Conv10, Conv11. Mô hình của các lớp mạng phía sau sẽ phụ thuộc vào
cách thức áp dụng tích chập ở lớp mạng trước, kích thước bộ lọc (như trong sơ đồ thì
kernel_size luôn là 3 x 3) và độ lớn bước nhảy (stride) của tích chập là 1. Trên mỗi ô thuộc
feature map chúng ta sẽ xác định một lượng 4 hoặc 6 các khung bao. Do đó, số lượng các
khung bao sản sinh ra ở các lớp mạng tiếp theo lần lượt như sau:
Lớp tích chập Conv7: 19*19*6 = 2166 khung (6 khung /ô)
Lớp tích chập Conv8: 10*10*6 = 600 khung (6 khung /ô)
Lớp tích chập Conv9: 5*5*6 = 150 khung (6 khung /ô)
Lớp tích chập Conv10: 3*3*4 = 36 khung (4 khung /ô)
Lớp tích chập Conv11: 1×1×4 = 4 boxes (4 boxes/cell)
Tổng số lượng các khung ở ngõ ra sẽ là: 8732.Tức là chúng ta cần phải dự đoán nhãn
cho khoảng 8732 khung hình ở ngõ ra.
Áp dụng các feature map với các kích thước khác nhau: Sau khi thu được biểu đồ
đặc trưng (feature map) ở mô hình mạng cơ bản (base network). Chúng ta sẽ tiếp tục thêm
các lớp tích chập. Những lớp này sẽ nhằm giảm kích thước của biểu đồ đặc trưng (feature
map) từ đó giúp làm số khung hình cần dự báo giảm đi và có thể dự báo cũng như nhận
diện vật thể với nhiều kích thước cũng như hình dạng khác nhau. Những biểu đồ đặc trưng
45
(feature map) này nếu có kích thước nhỏ sẽ phát hiện tốt các vật thể lớn, nếu kích thước
lớn giúp phát hiện tốt các vật thể nhỏ .
Dự báo thông qua mạng tích chập đối với object: Mỗi một feature layer thêm vào ở
Extra Features Layers sẽ tạo ra một tập hợp cố định các output giúp nhận diện vật thể
trong ảnh thông qua áp dụng các convolutional filters. Kích thước ở đầu ra (with x height
x chanel) ở mỗi loại kích thước feature layer sẽ phụ thuộc vào kernal filters và được tính
toán hoàn toàn tương tự như đối với mạng neural tích chập thông thường.
Default box và tỷ lệ cạnh (aspect ratio): Chúng ta cần liên kết một tập hợp default
bounding boxes với mỗi một cell trên feature map. Các default boxes sẽ phân bố lát gạch
trên feature map theo thứ tự từ trên xuống dưới và từ trái qua phải để tính tích chập, do đó
vị trí của mỗi default box tương ứng với cell mà nó liên kết là cố định tương ứng với một
vùng ảnh trên bức ảnh gốc. Cụ thể như hình ảnh minh họa bên dưới:
46
Hình 3.4: Vị trí của các khung bao trên bức ảnh gốc khi áp dụng trên feature map có
kích thước 4 x 4.
Vậy lưới có kích thước là 4 x 4 và mỗi ô ta cần xác định 4 khung bao khác nhau như
hình vẽ. Tâm của các khung bao này trùng nhau và có tọa độ là tâm của các ô cùng liên
kết.
Tại mỗi một default bounding box của feature map chúng ta dự báo 4 offsets tương ứng
với một tọa độ và kích thước của nó. 4 offsets ở đây được hiểu là một tọa độ gồm 4 tham
số (cx,cy,w,h). Trong đó (cx, cy) giúp xác định tâm và là kích thước dài rộng của bounding
box. Thành phần thứ 2 được dự báo là điểm số của bounding box tương ứng với mỗi class.
Lưu ý ta sẽ có thêm một class thứ C+1 để đánh dấu trường hợp default bounding box
không có vật thể (hoặc rơi vào background).
- Ví dụ đối với một feature map có kích thước m x n tương ứng với p channels (chẳng
hạn như kích thước 8 x 8 hoặc 4 x 4), một kernel filter kích thước 3 x 3 x p sẽ được áp dụng
trên toàn bộ feature layer.
- Các giá trị trong kernel này chính là các tham số của mô hình và được tinh chỉnh trong
quá trình training.
- Các kernel filter sẽ dự đoán đồng thời xác suất nhãn và kích thước offset tương ứng
với tọa độ của default box.
- Với mỗi location (hoặc cell) nằm trên feature map ta sẽ liên kết nó với k bounding
boxes. Các boxes này có kích thước khác nhau và tỷ lệ cạnh khác nhau.
- Với mỗi một bounding box, chúng ta tính được phân phối điểm của C classes là c= (c1,
c2, …, cc) và 4 offsets tương ứng với kích thước ban đầu của default bounding box.
- Kết quả cuối cùng ta thu được (C+4) x mnk outputs.
Các default box của chúng ta tương tự như anchor boxes trong mạng faster R-CNN
nhưng được áp dụng trên một vài feature maps với những độ phân giải khác nhau. Điều
này cho phép các default bounding box phân biệt hiệu quả kích thước vật thể khác nhau.
47
3.3 QUÁ TRÌNH HUẤN LUYỆN
Ảnh đầu vào là tập dữ liệu DeepPCB Dataset gồm 1500 ảnh xám 640 x 640 (640*640
pixels, 8 bit deep) và 1500 tập tin text chứa vị trí các lỗi của từng ảnh.
Do đó , phần tiền xử lý ta cần chỉnh lại kích thước ảnh cho phù hợp với ngõ vào của mô
hình. Đồng thời dùng phương pháp học tăng cường để tăng dữ liệu đầu vào gồm phương
pháp xoay ảnh, dịch ảnh, ... như đã nói ở phần tổng quan.
Hình 3.5 thể hiện ảnh gốc và các ảnh sau khi dùng phép dịch ảnh, phép xoay ảnh. Tọa
độ các khung bao chỉ vị trí lỗi thay đổi theo nhưng không bị sai lệch thông tin.
(a)
48
(b)
Hình 3.5: ảnh gốc đã được gắn nhãn (a) và ảnh sau khi được tăng cường (b) bằng
phương pháp xoay ảnh và dịch ảnh.
Chiến lược lập bản đồ khung bao (mapping default box): Suốt trong quá trình huấn
luyện ta cần lập bản đồ khung bao có tỷ lệ khung hình khác nhau với khung bao chuẩn
(ground truth box). Để lập được bản đồ của chúng với nhau ta cần đo lường chỉ số IoU
(Intersection of Union) hoặc chỉ số chồng chéo (Jaccard overlap index) dùng để tính tỷ lệ
diện tích giao nhau giữa 2 vùng hình ảnh so với tổng diện tích (không bao gồm phần giao
nhau) của chúng. Chúng ta sẽ lựa chọn các khung bao phù hợp với bất kì khung bao chuẩn
(ground truth box) nào có ngưỡng(threshold) > 0.5.
Do trên mỗi ô chỉ qui định một số lượng nhất định các khung bao (4 hoặc 6, tùy từng
bản đồ đặc tính (feature map)). Trên thực tế, hầu như số lượng này được xác định từ trước
để giảm thiểu sự đa dạng về số lượng khung bao/ô mà vẫn bao phủ được hầu hết các vật
thể. Việc xác định tập hợp các khung bao phải đảm bảo sao cho mỗi một khung bao chuẩn
bất kì đều có thể tìm được một khung bao mặc định gần nó nhất. Vì vậy cần một thuật toán
49
thực hiện được trên tỉ lệ khung hình của mỗi ảnh chuẩn (ground truth image) nhằm phân
cụm các khung bao chuẩn thành các nhóm tương đồng về hình dạng. Tâm của các nhóm
này (còn gọi là trọng tâm (centroids)) sẽ được dùng làm các giá trị tỉ lệ khung hình đại diện
để tính khung bao mặc định.
Huấn luyện để tìm ra đối tượng: Việc dự đoán các đối tượng sẽ được thực hiện trên
tập hợp các khung hình đầu ra của mô hình SSD. Đặt 𝑥 = 0,1 là chỉ số đánh giá cho việc
mapping giữa khung bao thứ i với khung bao chuẩn (ground truth box) thứ j đối với nhãn
thứ k. Trong quá trình mapping chúng ta có thể có nhiều bounding box được map vào cùng
1 khung bao chuẩn với cùng 1 nhãn dự báo nên tổng ∑ 𝑥 ≥ 1. Hàm loss function là tổng
có trọng số của localization loss (loc) và confidence loss (conf):
L(x, c, p, g) = L (x, c)+∝ L (x, p, g) (3.1)
Trong đó N là số lượng các khung mặc định phù hợp với khung chuẩn. Ta nhận thấy giá
trị của hàm loss function của SSD gần như trùng khớp với mô hình faster R-CNN và có 2
thành phần:
Hàm mất mát Localization loss: là hàm Smooth L1 đo lường sai số giữa tham số của
khung dự báo (predicted box) (p) và khung chuẩn (g) như công thức (3.2). Chúng ta sẽ cần
hồi qui các giá trị bù (offsets) cho tâm, khung bao mặc định (x, y) và giá trị chiều rộng w
và chiều dài h.
𝐿 (𝑥, 𝑝, 𝑔) = ∑ ∑ 𝑥 𝐿
∈{ , , , } (𝑝 − 𝑔 )
∈ (3.2)
Như vậy hàm mất mát này chỉ xét trên các phù hợp đúng (positive matching) (i∈Pos)
giữa khung bao dự đoán (predicted bounding box) với khung bao chuẩn . Nếu IoU>0,5 thì
được coi là phù hợp đúng (tức khung bao dự đoán chứa vật thể). Ngược lại, nếu IoU<0,5
ta sẽ bỏ qua và xóa các khung bao dự đoán này khỏi hình ảnh. Thành phần
∑ 𝑥 𝐿
∈{ , , , } (𝑝 − 𝑔 ) chính là tổng khoảng cách giữa khung chuẩn (g) và
khung dự đoán (p) trên 4 giá trị bù (x,y,w,h).
Các giá trị tọa độ kích thước và tâm của khung hình cần chuẩn hóa kích thước, nếu
không sẽ rất khó để xác định đúng sai số.
50
Ví dụ về sai số trong trường hợp ảnh bé và ảnh lớn. Trong trường hợp ảnh bé, tâm giữa
khung dự đoán và khung chuẩn có thể có sai số bé nhưng không có nghĩa rằng khung dự
đoán và khung chuẩn của ảnh bé là rất khớp nhau. Chúng có thể cách nhau rất xa. Còn
trường hợp ảnh lớn có khung dự đoán và khung chuẩn khớp nhau hơn trường hợp khung
hình bé. Tuy nhiên do ảnh quá to nên khoảng cách tâm của chúng sẽ lớn hơn.
Vì vậy cần có bước chuẩn hóa kích thước chiều rộng, chiều dài và tâm sao cho không
có sự khác biệt trong trường hợp ảnh bé và lớn. Một phép chuẩn hóa các giá trị bù được
thực hiện như sau:
- Các giá trị 𝑔 sẽ được tính toán thông qua kết quả đo lường sự chênh lệch khoảng
cách tâm và sự thay đổi kích thước chiều rộng và chiều dài giữa khung chuẩn và khung
mặc định. Hình bên dưới sẽ làm rõ hơn cách tính 𝑔 :
Hình 3.6: Hình chữ nhật màu đỏ đại diện cho khung bao mặc định kích thước là (dw,
dh), tọa độ tâm của khung bao mặc định là (dx, dy).Hình chữ nhật màu đen đại diện cho
khung chuẩn, kích thước là (gw,gh), tâm là (gx, gy). Khi đó để chuyển từ tâm của khung bao
mặc định sang tâm của khung chuẩn ta cần 1 phép dịch chuyển tuyến tính các khoảng (dwtx,
dhty). Kích thước các chiều rộng và chiều dài khung chuẩn bằng kích thước khung bao mặc
định nhân số lần (𝑒 , 𝑒 ).
51
- Khoảng cách tâm (px, py) của khung dự đoán so với tâm (dx, dy) của khung mặc định:
𝑔 = ≜ 𝑡 (3.3)
𝑔 = ≜ 𝑡 (3.4)
- Tỉ lệ theo chiều rộng và chiều dài (ph, pw) của khung dự đoán so với chiều rộng và
chiều dài (dw, dh) của khung chuẩn là:
𝑔 = 𝑙𝑜𝑔 ≜ 𝑡 (3.5)
𝑔 = 𝑙𝑜𝑔 ≜ 𝑡 (3.6)
- Kí hiệu ≜ có nghĩa là đặt vế phải bằng vế trái. Ta thấy các giá trị tx,ty,tw,th là các tham
số dùng để tinh chỉnh kích thước của khung bao có khoảng giá trị trong đoạn (−∞, +∞).
- Nếu các giá trị của tx, ty càng lớn thì khoảng cách giữa 2 tâm của khung chuẩn và khung
mặc định càng lớn. Gía trị của tw, th càng lớn, sự chêch lệch kích thước về chiều rộng và
chiều dài giữa khung chuẩn và khung mặc định càng lớn.
- Ta gọi giá trị bộ tham số (tx, ty,tw,th) là bộ tham số chuẩn hóa kích thước của khung
chuẩn theo khung mặc định. Dùng cách tương tự chúng ta cũng tính được bộ tham số chuẩn
hóa kích thước của khung dự đoán theo khung mặc định bằng cách thay gm bằng pm vào
trong các phương trình bên trên.
- Khi đó khoảng cách giữa khung dự đoán và khung chuẩn sẽ càng gần nếu khoảng cách
giữa các bộ tham số chuẩn hóa giữa chúng càng gần. Tức khoảng cách giữa 2 vector p và
𝑔 càng nhỏ càng tốt.
- Khoảng cách này được tínhg thông qua hàm 𝐿 là một kết hợp giữa hàm norm
chuẩn bậc 1 (khi giá trị tuyệt đối của x lớn) và hàm norm chuẩn bậc 2 (khi giá trị tuyệt đối
của x nhỏ) bằng công thức dưới đây:
𝐿 =
0,5𝑥 𝑖𝑓 |𝑥| < 1
|𝑥| − 0,5 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
(3.7)
- Trường hợp x là một vector thì x ở vế phải được thay bằng giá trị hàm norm chuẩn bậc
1 của x kí hiệu là |𝑥|.
52
Việc lựa chọn hàm mất mát là smooth L1 như trên để giá trị của đạo hàm cố định khi
|𝑥| lớn và tuyến tính khi x nhỏ.
Trong phương trình của hàm mất mát localization loss, các hằng số biết trước là 𝑔 . Biến
p là biến cần tìm giá trị tối ưu. Ta sẽ tính ra được khung dự đoán sau khi tìm được giá trị
tối ưu của p nhờ vào phép chuyển đổi từ khung mặc định tương ứng.
Hàm mất mát Confidence loss [4]: là một hàm mất mát được tính toán dựa trên việc
trừ điểm khi dự báo nhãn. Đối với mỗi một dự đoán đúng nhãn đúng (positive match
prediction), chúng ta sẽ trừ hàm mất mát loss function theo điểm (confidence score) của
các nhãn tương ứng. Đối với mỗi một dự đoán đúng nhãn sai (negative match prediction),
chúng ta trừ hàm mất mát loss function theo điểm (confidence score) của nhãn ‘0’ là nhãn
đại diện cho nhãn ảnh nền (background) không chứa vật thể. Hàm mất mát confidence loss
có công thức như bên dưới:
𝐿 (𝑥, 𝑐) = − ∑ 𝑥 𝑙𝑜𝑔(𝑐̂ ) − ∑ 𝑙𝑜𝑔(𝑐̂ )
∈
∈ (3.8)
Trong trường hợp dự báo đúng nhãn đúng thì vùng dự báo sẽ chứa vật thể. Vì vậy việc
dự báo nhãn cho sẽ giống như một bài toán phân loại với hàm kích hoạt softmax thông
thường có dạng -∑ 𝑥 𝑙𝑜𝑔(𝑐̂ )
∈ . Trong trường hợp dự báo đúng nhãn sai tức vùng được
dự báo không chứa vật thể chúng ta sẽ chỉ có một nhãn duy nhất là 0. Và khi ta đã biết
khung bao không chứa vật thể nên tỉ lệ để xảy ra nhóm 0 là 𝑥 = 1. Khi đó hàm kích hoạt
softmax được tính như sau − ∑ 𝑙𝑜𝑔(𝑐̂ )
∈ .
Hàm mất mát loss function cuối cùng là tổng của cả hai hàm mát mát confidence loss và
localization loss như (3.1).
Lựa chọn tỉ lệ (scales) và tỷ lệ khung hình (aspect ratio):
Các khung bao maặc định được lựa chọn thông qua tỉ lệ khung hình và tỉ lệ (scale). Mô
hình SSD sẽ xác định một tỷ lệ (scale) tương ứng với mỗi một biểu đồ đặc trưng (features
map) trong lớp trích xuất đặc trưng (Extra Feature Layers). Lớp tích chập Conv4_3 bên
trái sẽ phát hiện các vật thể tại các tỉ lệ scale nhỏ nhất là 𝑠 = 0,2 (đôi khi là 0.1) và sau
đó gia tăng tuyến tính để lớp cuối cùng ở phía bên phải có scale là 𝑠 = 0,9 theo công
thức:
53
𝑠 = 𝑠 + (𝑘 − 1), 𝑘 ∈ [1, 𝑚] (3.9)
Với k là số thứ tự của các lớp. Kết hợp giữa giá trị scale với tỉ lệ khung hình chúng ta sẽ
tính được chiều rộng và chiều dài của khung mặc định. Với các lớp có 6 dự báo, SSD sẽ
tạo ra 5 khung mặc định với các tỉ lệ khung hình lần lượt là: 1, 2, 3, 1/2, 1/3. Sau đó chiều
rộng và chiều dài của khung mặc định được tính theo công thức:
w = scale ∗ aspect ratio (3.10)
h = (3.11)
Trong trường hợp tỉ lệ khung hình = 1 thì ta sẽ thêm một khung bao mặc định thứ 6 với
tỉ lệ được tính theo công thức:
𝑠 = 𝑠 𝑠 (3.12)
Để huấn luyện một mô hình từ đầu tốn rất nhiều tài nguyên (thời gian, dữ liệu, máy
móc...) mà kết quả chưa chắc đã đạt mục tiêu đề ra. Vì vậy, thường người ta sẽ dựa trên
một mô hình có sẵn, đã được huấn luyện trước, thực hiện một số thay đổi nhỏ rồi huấn
luyện với một bộ dữ liệu khác, nhỏ hơn, thời gian ít hơn nhưng vẫn đạt kết quả mong muốn.
Khi đó việc lựa chọn tốc độ học (learning rate), số lần học lại (epoch) và phương pháp học
chuyển đổi (transfer learning) [10] sẽ giúp thực hiện mục tiêu trên hiệu quả hơn.
Tốc độ học (learning rate):
Tốc độ học (hoặc kích thước bước là mức độ thay đổi/cập nhật đối với trọng số mô hình
trong quá trình huấn luyện lan truyền ngược. Độ lớn của tốc độ học có ảnh hưởng đến tốc
độ hội tụ của hàm loss, tốc độ học thường được chỉ định là giá trị dương nhỏ hơn 1.0.
Theo Barreto[11], Li[12] và các cộng sự , việc lựa chọn tốc độ học không phù hợp có
thể gây ra các vần đề sau:
54
Hình 3.7: Ảnh hưởng của tốc độ học đối với hàm loss.
- Nếu tốc độ học quá bé, mô hình mất nhiều thời gian mới tiến đến điểm cực tiểu của
hàm loss.
- Nếu tốc độ học quá lớn, mô hình không thể đạt được cực tiểu của hàm loss.
- Chỉ khi tốc độ học phù hợp thì mô hình mới đạt được cực tiểu của hàm loss với thời
gian ngắn.
Có nhiều phương pháp để tìm tốc độ học phù hợp như sau:
- Phương pháp thủ công: chọn một giá trị ban đầu không quá nhỏ, ví dụ:0,1. Sau đó giảm
dần để tìm ra vùng khiến cho hàm loss giảm nhỏ. Tiếp tục thay đổi giá trị trong vùng đó
để tìm được vùng nhỏ hơn. Chú ý là tốc độ học thường nằm trong vùng [0;0,1] chứ không
nằm trong vùng [0,1;1], nên khi giảm, ta thường chọn các giá trị 0,01; 0,001; 0,0001 ...
- Phương pháp điều chỉnh theo hàm loss: tốc độ học được tăng dần theo từng batch
iteration và theo dõi sự thay đổi của hàm loss. Theo hình 3.8, ta thấy có ba trường hợp xảy
ra:
+ Tốc độ học quá thấp thì hàm loss gần như nằm ngang.
+ Tốc độ học phù hợp thì hàm loss giảm nhanh.
+ Tốc độ học quá lơn thì hàm loss dao động thất thường.
55
Hình 3.8: Mối quan hệ giữa tốc độ học và hàm loss.
- Phương pháp giảm tốc độ học theo thời gian huấn luyện (Learning rate decay): giúp
tránh trường hợp tốc độ học quá lớn khi trọng số mô hình dần đi vào hội tụ.
Khi chọn giá trị learninng rate lớn mô hình không thể đạt được giá trị tối ưu, độ chính
xác chỉ nằm trong khoảng 30%.
Hình 3.9: So sánh ảnh hưởng của giá trị learning rate đối với mô hình
56
Khi giảm giá trị learing rate xuống 0.005 thì độ chính xác tiến dần đến 90%. Nếu dùng
giá trị 0.001 kết quả ít thay đổi nhưng tốc độ huấn luyện mô hình sẽ lâu hơn.
Phương pháp Transfer learning:
Đây là phương pháp sử dụng các pretrained-model sẵn có, đã được training trên các tập
dữ liệu lớn, trích xuất được các đặc điểm đặc trưng của các vật tương tự mà chúng ta cần
nhận diện. Ở đây cụ thể là pretrained-model vgg16 đã nhận dạng chữ viết tay có thể được
nên có thể dùng phương pháp Transfer learning để áp dụng vào nhận dạng lỗi PCB do chữ
viết tay và đường mạch in có những nét tương đồng nhau.
Hình 3.10: So sánh mô hình trước và sau khi áp dụng transfer learning [10].
Từ đồ thị ta có thể thấy sử dụng transfer learning sẽ mang lại 3 lợi thế chính:
- Có điểm khởi đầu của độ chính xác tốt hơn (higher start).
- Độ chính xác có tốc độ tăng nhanh hơn (higher slope).
- Đường tiệm cận của độ chính xác tối ưu cao hơn (higher asymptote).
57
Hình 3.11: Pretrained-model được sử dụng để trích xuất đặc trưng.
Một pretrained-model đã loại bỏ các lớp sau cùng (thường là các lớp phân loại) có thể
được sử dụng để trích xuất các tính năng trong một mô hình khác với một tập dữ liệu
khác[10]. Các mô hình mạng học sâu được đào tạo trên bộ dữ liệu ImageNet có thể được
sử dụng để trích xuất các tính năng từ một bộ dữ liệu khác vì các bộ lọc chung đã học có
thể được áp dụng trong các lĩnh vực khác. Điều quan trọng cần lưu ý là tất cả các trọng số
từ pretrained-model cần được cố định và chỉ các lớp phân loại thêm vào mới cần được huấn
luyện.
58
Hình 3.12: Quá trình training dùng pretrained-model VGG16 để trích xuất đặc trưng
Trong hình 3.11 ta thấy khi dùng pretrained-model để huấn luyện thì mô hình hội tụ ở
khoảng epoch 30-35. Để giảm thời gian huấn luyện, ta sẽ thực hiện phương pháp Transfer
learning. Có nhiều cách để thực hiện việc này:
- Warm up sẽ đóng băng lại các layers CNN để cho hệ số của chúng không đổi và chỉ
train lại trên các Fully Conntected Layers ở cuối cùng. Mục đích của warm up là giữ nguyên
được các đặc trưng bậc cao (high-level) đã được học từ pretrained-model mà những đặc
trưng này là tốt vì được huấn luyện trên bộ dữ liệu có kích thước lớn hơn và có độ chính
xác cao hơn so với khởi tạo hệ số ngẫu nhiên.
- Mục đích chính của việc warm up model là để mô hình hội tụ nhanh hơn tới global
optimal value.
- Sau khi mô hình đạt ngưỡng tối ưu trên các Fully Connected Layers, sẽ rất khó để
chúng ta tăng được thêm độ chính xác hơn nữa.
- Lúc này chúng ta sẽ cần phá băng (unfrozen) các layers của base network và huấn
luyện mô hình trên toàn bộ các layers từ pretrained-model. Quá trình này được gọi là fine
turning.
Hình 3.13: Fine turing một pretrained-model
59
Chúng ta sẽ thay thế lớp tích chập 2-D cuối cùng (replace the last 2-D convolutional
layer) và lớp phân loại cuối cùng (final classification layer) của mạng bằng 2 layer mới có
thông số phù hợp với tập dữ liệu cần huấn luyện.
Kế tiếp đóng băng các trọng số (weight) của các lớp trước đó. Việc chọn đóng băng
trọng số từ lớp đầu tiên đến lớp thứ mấy thì tùy thuộc vào mô hình mạng và kinh nghiệm
của người thiết kế. Ở đây ta chọn đóng băng trọng số đến lớp conv5_1.
Hình 3.14: Quá trình training dùng pretrained-model VGG16 để trích xuất đặc trưng
có sử dụng fine turning
Trong hình 3.14 ta thấy khi dùng pretrained-model để huấn luyện thì mô hình bắt đầu
hội tụ ở khoảng epoch 10 với độ chính xác khoảng 80% và bắt đầu phân kỳ ở khoảng epoch
35 với độ chính xác khoảng 90%.
Chọn giá trị learning rate và epoch:
Do mô hình sử dụng pre-train model VGG16 đã đóng băng các trong số ở các lớp đầu
và chỉ train lại trên các Fully Conntected Layers ở cuối cùng nên mô hình rất gần với vị trí
cực tiểu của hàm loss.
Từ kết quả phân tích các hình 3.7, 3.9, 3.12 và 3.14, để tăng độ chính xác và giảm thời
gian huấn luyện, ta chọn learning rate là 0.005 và số epoch là 20.
60
Chương 4
KẾT QUẢ THỰC NGHIỆM
4.1 THÔNG SỐ HUẤN LUYỆN
- Số vòng lặp (epoch): 20
- Tốc độ học (learning rate): 0, 005
- Bộ dữ liệu huấn luyện: bộ dữ liệu DeepPCB Dataset gồm có 1500 ảnh.
- Kiến trúc mạng dùng để huấn luyện: SSD300
Các thông số này có được dựa vào các kết quả thực nghiệm dưới đây.
Hình 4.1: Kiến trúc mạng SSD300 dùng để huấn luyện.
Mô hình có 75 layer, 84 connection, ngõ vào là ảnh có kích thước 300 x 300, 6 ngõ ra
vị trí các lỗi được nhận dạng.
61
4.2 KẾT QUẢ HUẤN LUYỆN
Hình 4.2: Quá trình trainning
Ta thấy mô hình bắt đầu hội tụ và đạt độ chính xác hơn 80% từ epoch thứ 3. Độ chính
xác thay đổi rất nhỏ và gần như không đổi từ epoch thứ 5 trở đi.
Để kiểm tra mô hình sau khi huấn luyện, tác giả sử dụng hai tập dữ liệu gồm một tập
gồm 50 file là các ảnh nằm trong tập huấn luyện nhưng có tạo thêm một số lỗi và một tập
gồm 10 ảnh chụp bằng camera Dino-lite Premier với độ phân giải 1.3 Mp trên các mạch
in được thi công thực tế. Kết quả kiểm tra mô hình đạt được mAP=0,8 ứng với mIOU=0,5;
lỗi được nhận dạng thể hiện trong hình 4.3 như sau:
62
(a) (b)
(c) (d)
Hình 4.3: (a) Ảnh nhị phân gốc, (b) nhận diện lỗi trên ảnh nhị phân,
(c)Ảnh màu, (d) Lỗi dự đoán trên ảnh màu.
Theo mục tiêu đề tài là phát hiện các lỗi này:
- Đứt đường mạch (Open).
- Nối tắt (Short).
- Và một số lỗi ảnh hưởng đến chất lượng mạch như : đường mạch bị ăn mòn quá mức
(Mousebite), bị thừa (Spur), ăn mòn chưa hết (Cooper), bị rỗ (Pinhole) với tỉ lệ sản
phẩm/mẫu bé (không cần file mạch in gốc để đối chiếu).”
Vậy kết quả ở phần này phải thể hiện được hệ thống đánh giá được các lỗi này thể hiện
rằng mô hình đã đạt được có hiệu quả.
63
Chương 5
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1 KẾT LUẬN
Đề tài xây dựng được một mạng học sâu có khả năng nhận diện được các lỗi thường gặp
ở bo mạch PCB sau khi ăn mòn bằng hóa chất dựa trên việc nghiên cứu các dây chuyền
sản xuất và các nghiên cứu trong và ngoài nước .
Kết quả này có đặc điểm là tốc độ xử lý trung bình , độ chính xác khá cao, phù hợp cho
các ứng dụng học tập và nghiên cứu không yêu cầu cao về tốc độ xử lý nhưng độ chính
xác phải cao (để khắc phục lỗi, phế phẩm gần bằng 0).
Mạng có ưu điểm là có thể chạy độc lập mà không cần dữ liệu đầu vào (file mạch in
thiết kế) thích hợp cho ứng dụng cần bảo mật thông tin, an toàn dữ liệu và các dây chuyền
sản xuất nhỏ (gia công mạch in theo yêu cầu) có tỉ lệ sản phẩm/mẫu bé.
So với nhiệm vụ đặt ra thì đề tài đã làm được những việc sau:
- Có nêu được quy trình chế tạo PCB.
- Đã tìm hiểu và lựa chọn một mạng học sâu.
- Có thực hiện các phương pháp tiền xử lý ảnh trước khi đưa vào huấn luyện.
- Có dùng bộ dữ liệu đã xử lý để huấn luyện mạng.
- Có dùng các công cụ đánh giá mô hình trong Matlab.
- Có kết luận và đánh giá kết quả đạt được.
So với mục tiêu đặt ra thì đề tài đã xây dựng một mạng học sâu có khả năng nhận dạng
các lỗi trên của PCB, khoanh vùng và ghi tên mỗi loại. Tuy nhiên, độ chính xác của mô
hình chưa cao (khoảng 89%, dựa trên quá trình training hình 4.2), nhận diện tốt trên các
ảnh nhị phân trong tập dữ liệu (hình 4.3). Nhận diện trên ảnh chụp thực tế thì các lỗi đứt
mạch và ngắn mạch nhận diện tốt, các lỗi khác chưa đạt độ chính xác cao.
5.2 HƯỚNG PHÁT TRIỂN
1. Thu thập thêm dữ liệu và sử dụng các biện pháp học tăng cường để tăng độ chính
xác.
2. Thực hiện tăng cường dữ liệu bằng các kỹ thuật xử lý ảnh.
64
3. Sử dụng phương pháp tranfer learning và quantization để tăng tốc độ và độ chính
xác của mô hình.
4. Huấn luyện mạng và tinh chỉnh các thông số trong quá trình huấn luyện.
5. Tạo phần mềm có thể chạy trên nền tảng android (điện thoại) và máy tính để sử
dụng trong giảng dạy.
6. Có thể kết hợp với một thiết bị đánh dấu lỗi (dạng máy CNC) dùng màu sắc để xác
định vị trí và phân loại lỗi (Ví dụ: màu đỏ cho lỗi open và short, màu cam cho lỗi
mousebite và pinhole, màu xanh cho lỗi spur và copper ...) để thuận tiện trong việc
khắc phục.
65
TÀI LIỆU THAM KHẢO
1. Ebayyeh, A.A.R.M.A., Mousavi, Alireza. A Review and Analysis of Automatic
Optical Inspection and Quality Monitoring Methods in Electronics Industry. IEEE
Access, 2020. 8: p. 183192-183271.
2. Abhilash Doniwar, A.D., Ayush Baiswara. PCB Faults Detection Using Image
Processing. International Journal of Computational Engineering Research
(IJCER), 2017. 07(03).
3. Wu, X., Ge, Yuxi, Zhang, Qingfeng, Zhang, Dali. PCB Defect Detection Using
Deep Learning Methods. IEEE 24th International Conference on Computer
Supported Cooperative Work in Design (CSCWD), 2021, p. 873-876.
4. Wu, W.-Y., Hung, Ching-Wen, Yu, Wen-Bin. The development of automated
solder bump inspection using machine vision techniques. The International Journal
of Advanced Manufacturing Technology, 2013. 69(1-4): p. 509-523.
5. Russakovsky, O., Deng, Jia, Su, Hao, Krause, Jonathan, Satheesh, Sanjeev, Ma,
Sean, Huang, Zhiheng, Karpathy, Andrej, Khosla, Aditya, Bernstein, Michael,
Berg, Alexander C., Fei-Fei, Li. ImageNet Large Scale Visual Recognition
Challenge. International Journal of Computer Vision, 2015. 115(3), p. 211-252.
6. Rafael C. Gonzalez, R.E.W., Steven L. Eddins. Digital Image Processing Using
MATLAB. 2 ed. USA: Gatsmark Publishing, 2009,p. 845.
7. Jason Brownlee. A Gentle Introduction to Object Recognition With Deep Learning.
Deep Learning for Computer Vision, 2019.
8. Wei Liu, D.A., Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu,
Alexander C. Berg, SSD: Single Shot MultiBox Detector. Lecture Notes in
Computer Science. 2016.
9. Sanli Tang, F.H., Xiaolin Huang, Jie Yang, ONLINE PCB DEFECT DETECTOR
ON A NEW PCB DEFECT DATASET. Institute of Image Processing and Pattern
Recognition, Shanghai Jiao Tong University, China, 2019.
10. Silva, L.H.d.S. and G.O.d.A. Azevedo, Automatic Optical Inspection for Defective
PCB Detection Using Transfer Learning. IEEE Access, 2019.
11. Barreto, S. (2021, November 26). Choosing a Learning Rate. Baeldung on
Computer Science. Internet: https://www.baeldung.com/cs/ml-learning-
rate?fbclid=IwAR1u9TqQ2_iUMMyJaHf7fYj23HCOUu6j0DiiJFltSVoLBz_hEX
E1X2ME3oo, 20/2/2023.
12. Li, K. (2021, October 13). How to Choose a Learning Rate Scheduler for Neural
Networks. Internet: https://neptune.ai/blog/how-to-choose-a-learning-rate-
scheduler?fbclid=IwAR33xhB_6gg2oSYnOU7R4iGniN80qYw8n7SCLkGcJROH
C2vgwJXCXfgyMlI, 20/2/2023.
66
ỨNG DỤNG MẠNG HỌC SÂU (DEEP LEARNING)
XÁC ĐỊNH LỖI MẠCH IN (PCB)
SAU KHI ĂN MÒN BẰNG HÓA CHẤT
Do Truong Sa Dong Nghi1
1Trường đại học Sư phạm Kỹ thuật TP.HCM
TÓM TẮT
Trong giảng dạy và thực hành modun chế tạo mạch in trong trường nghề thường gặp phải vấn đề
là kiểm tra mạch in sau khi ăn mòn bằng hóa chất trước khi cho sinh viên khoan và hàn linh kiện.
Nếu ứng dụng phương pháp xử lý ảnh thì không khả thi do kích thước các bo mạch không đồng
nhất, số lượng mẫu rất nhiều do mỗi sinh viên có thể có mỗi mẫu khác nhau. Do đó cần một công
cụ có thể xác định số lượng và phân loại lỗi của mạch in sau khi ăn mòn bằng hóa chất, hỗ trợ
công tác kiểm tra sản phẩm. Để giải quyết vấn đề này tác giả đề xuất sử dụng một mạng học sâu
để nhận diện các lỗi có thể có trên một ảnh chụp mạch in đã được ăn mòn bằng hóa chất. Ở đây,
tác giả sử dụng phương pháp transfer learning trên mô hình Vgg16 đã qua huấn luyện với tập dữ
liệu DeepPCB. Kết quả mô hình đạt được độ chính xác trên 89%.
Từ khóa: Kiểm tra quang học tự động ; mạch in; học sâu; học chuyển đổi.
ABSTRACT
In teaching and practicing printed circuit manufacturing module in vocational schools, it is common to
encounter the problem of checking printed circuits after chemical corrosion before allowing students to
drill and solder components. The application of the image processing method is not suitable due to the size
of the boards is not uniform, the number of samples is very large because each student may have a different
sample. Therefore, it is necessary to have an application that can quantify and classify the defects of printed
circuits after chemical corrosion, supporting product inspection. To solve this problem I suggest using a
deep learning network to identify possible errors on a printed circuit image that has been chemically etched.
In this work, I uses the transfer learning method on the pre-trained Vgg16 model with the DeepPCB dataset.
The model results achieved an accuracy of over 89%.
Keywords: Automatic Optical Inspection; Printed Circuit Board (PCB); Transfer Learning; Deep
Learning.
1. GIỚI THIỆU
Hiện nay, việc kiểm tra chất lượng sản
phẩm, đặc biệt là các sản phẩm có chi tiết nhỏ
như ngành điện tử, hầu như được thay thế
hoàn toàn bằng máy móc. Trong bài báo
“Đánh giá và phân tích các phương pháp giám
sát chất lượng và kiểm tra quang học tự động
trong ngành công nghiệp điện tử” [1], tác giả
tổng hợp các phương pháp giám sát chất
lượng như kiểm tra bằng siêu âm, dòng điện
xoáy, kiểm tra bằng chất thấm thuốc nhuộm,
nhiệt độ, thăm dò mạch, kiểm tra bằng tia X
và quang học hiện đang được sử dụng để đánh
giá chất lượng sản phẩm nhằm đạt được sản
phẩm đủ tiêu chuẩn. Trong đó kiểm tra quang
học tự động (AOI) là một trong những kỹ
thuật không thể thay thế được sử dụng để kiểm
tra chất lượng các sản phẩm khác nhau. “Giám
sát chất lượng là bước cần thiết để giảm thiểu
lỗi của sản phẩm trong các ngành công nghiệp
khác nhau. AOI được coi là một trong những
phương pháp giám sát chất lượng đơn giản và
thường được sử dụng để kiểm tra công nghiệp
tự động. Lĩnh vực AOI rất rộng lớn vì nó liên
quan đến nhiều chủ đề khác nhau, từ thiết lập
phần cứng để thu nhận hình ảnh đến các thuật
toán kiểm tra và ra quyết định. Vì lý do này,
các cơ hội nghiên cứu trong lĩnh vực này rất
67
rộng mở và có tiềm năng cải thiện trong tương
lai gần.”
Trong quá trình sản xuất các bo mạch
điện tử, việc kiểm tra quang học bằng máy
móc được thược hiện rất nhiều lần trong dây
chuyền sản xuất để hạn chế sản phẩm lỗi. Ta
có thể thấy được việc này thông qua quy trình
chế tạo mạch in công nghiệp được đăng trên
trang web https://www.mclpcb.com gồm 19
bước như sau:
Bước 1: Thiết kế PCB
Bước 2: Đánh giá thiết kế và các câu hỏi
về kỹ thuật
Bước 3: In thiết kế PCB
Bước 4: Phủ đồng cho lớp bên trong
Bước 5: Khắc các lớp bên trong
Bước 6: Căn chỉnh
Bước 7: Kiểm tra quang học tự động
(AOI)
Bước 8: Ghép lớp PCB
Bước 9: Khoan
Bước 10: Mạ PCB
Bước 11: Tạo ảnh lớp ngoài
Bước 12: Khắc lớp ngoài
Bước 13: AOI lớp ngoài
Bước 14: Phủ mặt nạ hàn
Bước 15: In lụa (Silkscreen)
Bước 16: Hoàn thiện PCB
Bước 17: Kiểm tra về điện
Bước 18: Cắt PCB
Bước 19: Kiểm tra chất lượng và kiểm tra
trực quan
Ta có thể thấy kiểm tra quang học tự động
(AOI) là một bước quan trọng trong quy trình
trên, giúp loại bỏ các sản phẩm không đạt
ngay từ đầu quy trình sản xuất, giúp tăng tỉ lệ
thành phẩm. Việc kiểm tra này được lặp lại
mỗi khi một lớp mạch được khắc xong, và
trước khi bắt đầu ghép các lớp lại với nhau.
Kiểm tra quang học tự động chia làm hai
loại chính: loại có tham chiếu và loại không
có tham chiếu.
Trong bài báo “ Phát hiện lỗi PCB bằng
xử lý ảnh”[2] tác giả sử dụng các phương pháp
xử lý ảnh trên ảnh chụp mạch in cần kiểm tra
để loại bỏ nhiễu và chuyển từ ảnh màu thành
ảnh nhị phân, sau đó dùng phép XOR ảnh đã
xử lý với ảnh từ file thiết kế, từ đó chỉ ra các
lỗi trên PCB. Đây là phương pháp kiểm tra
quang học có tham chiếu.
Chuyên sâu hơn, trong bài báo “Phát hiện
lỗi PCB bằng phương pháp học sâu” [3] tác
giả đã sử dụng 2 mạng học sâu là SSD và FPN
được training trên 2 tập dữ liệu PCB Dataset
và DeepPCB Dataset khác nhau - “Do những
hạn chế về mặt kỹ thuật, PCB chắc chắn sẽ
xuất hiện các khuyết tật trong quá trình sản
xuất. Để đảm bảo năng suất cao và tiết kiệm
chi phí lao động, bài báo này đã áp dụng hai
loại mạng phát hiện và phân loại lỗi PCB. Các
thử nghiệm cho thấy hai phương pháp được sử
dụng trong hai phân bổ tập dữ liệu khác nhau
đạt được độ chính xác cao”. Đây là phương
pháp kiểm tra quang học không có tham chiếu.
Ta có thể thấy phương pháp kiểm tra
quang học tự động (AOI) thường được sử
dụng trong công nghiệp trong nước là phương
pháp xử lý ảnh do có ưu điểm là công nghệ
đơn giản đễ thi công và bảo trì, còn phương
pháp sử dụng mạng học sâu chủ yếu được
nghiên cứu trong các bài báo và ứng dụng
ngoài nước do công nghệ phức tạp, khó làm
chủ (vấn đề bản quyền, bảo trì, bảo dưỡng).
Ưu điểm của phương pháp xử lý ảnh là
nhanh và độ chính xác cao.
Nhược điểm là phụ thuộc nhiều vào phần
cứng (cần thiết bị chuyên dụng) nên đắt tiền;
cần dữ liệu mẫu để so sánh (file thiết kế PCB);
chỉ phát hiện mà không phân loại được lỗi.
Nếu tỉ lệ sản phẩm/mẫu là bé thì cần có người
điều chỉnh ảnh tham chiếu cho phù hợp, công
việc trở thành thủ công.
Các nghiên cứu ứng dụng mạng học sâu
vào thị giác máy tính như nhận diện khuôn
mặt, nhận diện bảng số xe, phát hiện hành
động nguy hiểm của tài xế ... được phát triển
rất nhiều. Tuy nhiên, chưa có phần mềm nào
Ứng dụng mạng học sâu (Deep Learning) xác định lỗi mạch in (PCB) sau khi ăn mòn bằng hóa chất.pdf
Ứng dụng mạng học sâu (Deep Learning) xác định lỗi mạch in (PCB) sau khi ăn mòn bằng hóa chất.pdf
Ứng dụng mạng học sâu (Deep Learning) xác định lỗi mạch in (PCB) sau khi ăn mòn bằng hóa chất.pdf
Ứng dụng mạng học sâu (Deep Learning) xác định lỗi mạch in (PCB) sau khi ăn mòn bằng hóa chất.pdf
Ứng dụng mạng học sâu (Deep Learning) xác định lỗi mạch in (PCB) sau khi ăn mòn bằng hóa chất.pdf
Ứng dụng mạng học sâu (Deep Learning) xác định lỗi mạch in (PCB) sau khi ăn mòn bằng hóa chất.pdf

More Related Content

What's hot

tìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mậttìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mậtanhkhoa2222
 
Virtual Learning Environment (VLE)
Virtual Learning Environment (VLE)Virtual Learning Environment (VLE)
Virtual Learning Environment (VLE)Tú Nguyễn Ngọc
 
UML mô hình khái niệm
UML mô hình khái niệmUML mô hình khái niệm
UML mô hình khái niệmNguyễn Phúc
 
Tutorial hướng dẫn mô phỏng Solidworks
Tutorial hướng dẫn mô phỏng Solidworks Tutorial hướng dẫn mô phỏng Solidworks
Tutorial hướng dẫn mô phỏng Solidworks Trung Thanh Nguyen
 
✅ Bài tập dựng hình Autocad 2D phần 2 - Nguyen Quang Thuan Youtube (PDF)
✅ Bài tập dựng hình Autocad 2D phần 2 - Nguyen Quang Thuan Youtube (PDF)✅ Bài tập dựng hình Autocad 2D phần 2 - Nguyen Quang Thuan Youtube (PDF)
✅ Bài tập dựng hình Autocad 2D phần 2 - Nguyen Quang Thuan Youtube (PDF)Thuận Nguyễn Quang
 
Giao trinh co hoc ket cau.6650
Giao trinh co hoc ket cau.6650Giao trinh co hoc ket cau.6650
Giao trinh co hoc ket cau.6650tuanthuasac
 
Xử lý ảnh PTIT
Xử lý ảnh PTITXử lý ảnh PTIT
Xử lý ảnh PTITTran Tien
 
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơnKĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơnNguyen Thieu
 
Tieu chuan thiet ke nut giao thong
Tieu chuan thiet ke nut giao thongTieu chuan thiet ke nut giao thong
Tieu chuan thiet ke nut giao thongGoogles Chrome
 
Đề cương môn xử lý ảnh
Đề cương môn xử lý ảnhĐề cương môn xử lý ảnh
Đề cương môn xử lý ảnhJean Valjean
 

What's hot (20)

tìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mậttìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mật
 
Kết hợp các phương pháp phân cụm trong khai phá dữ liệu Web
Kết hợp các phương pháp phân cụm trong khai phá dữ liệu WebKết hợp các phương pháp phân cụm trong khai phá dữ liệu Web
Kết hợp các phương pháp phân cụm trong khai phá dữ liệu Web
 
Đề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềm
Đề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềmĐề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềm
Đề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềm
 
Luận văn: Bài toán nhận dạng biển số xe, HAY
Luận văn: Bài toán nhận dạng biển số xe, HAYLuận văn: Bài toán nhận dạng biển số xe, HAY
Luận văn: Bài toán nhận dạng biển số xe, HAY
 
Virtual Learning Environment (VLE)
Virtual Learning Environment (VLE)Virtual Learning Environment (VLE)
Virtual Learning Environment (VLE)
 
Đề tài: Giao tiếp máy tính - VĐK sử dụng C# và VB, HAY, 9đ
Đề tài: Giao tiếp máy tính - VĐK sử dụng C# và VB, HAY, 9đĐề tài: Giao tiếp máy tính - VĐK sử dụng C# và VB, HAY, 9đ
Đề tài: Giao tiếp máy tính - VĐK sử dụng C# và VB, HAY, 9đ
 
UML mô hình khái niệm
UML mô hình khái niệmUML mô hình khái niệm
UML mô hình khái niệm
 
SAP 2000
SAP 2000SAP 2000
SAP 2000
 
Thủy vân số
Thủy vân số Thủy vân số
Thủy vân số
 
Tutorial hướng dẫn mô phỏng Solidworks
Tutorial hướng dẫn mô phỏng Solidworks Tutorial hướng dẫn mô phỏng Solidworks
Tutorial hướng dẫn mô phỏng Solidworks
 
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
 
✅ Bài tập dựng hình Autocad 2D phần 2 - Nguyen Quang Thuan Youtube (PDF)
✅ Bài tập dựng hình Autocad 2D phần 2 - Nguyen Quang Thuan Youtube (PDF)✅ Bài tập dựng hình Autocad 2D phần 2 - Nguyen Quang Thuan Youtube (PDF)
✅ Bài tập dựng hình Autocad 2D phần 2 - Nguyen Quang Thuan Youtube (PDF)
 
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PIDĐề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
 
Giao trinh co hoc ket cau.6650
Giao trinh co hoc ket cau.6650Giao trinh co hoc ket cau.6650
Giao trinh co hoc ket cau.6650
 
Xử lý ảnh PTIT
Xử lý ảnh PTITXử lý ảnh PTIT
Xử lý ảnh PTIT
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTITPhân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT
 
Nghiên cứu ứng dụng chữ số trong gửi nhận tài liệu điện tử, HAY
Nghiên cứu ứng dụng chữ số trong gửi nhận tài liệu điện tử, HAYNghiên cứu ứng dụng chữ số trong gửi nhận tài liệu điện tử, HAY
Nghiên cứu ứng dụng chữ số trong gửi nhận tài liệu điện tử, HAY
 
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơnKĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
 
Tieu chuan thiet ke nut giao thong
Tieu chuan thiet ke nut giao thongTieu chuan thiet ke nut giao thong
Tieu chuan thiet ke nut giao thong
 
Đề cương môn xử lý ảnh
Đề cương môn xử lý ảnhĐề cương môn xử lý ảnh
Đề cương môn xử lý ảnh
 

Similar to Ứng dụng mạng học sâu (Deep Learning) xác định lỗi mạch in (PCB) sau khi ăn mòn bằng hóa chất.pdf

DanhHai.pdf
DanhHai.pdfDanhHai.pdf
DanhHai.pdf16142082
 
Thiết kế và chế tạo robot vệ sinh tấm pin năng lượng mặt trời.pdf
Thiết kế và chế tạo robot vệ sinh tấm pin năng lượng mặt trời.pdfThiết kế và chế tạo robot vệ sinh tấm pin năng lượng mặt trời.pdf
Thiết kế và chế tạo robot vệ sinh tấm pin năng lượng mặt trời.pdfMan_Ebook
 
Nghiên cứu, thiết kế, thử nghiệm xe hai bánh tự cân bằng​
Nghiên cứu, thiết kế, thử nghiệm xe hai bánh tự cân bằng​Nghiên cứu, thiết kế, thử nghiệm xe hai bánh tự cân bằng​
Nghiên cứu, thiết kế, thử nghiệm xe hai bánh tự cân bằng​Man_Ebook
 
Thiết kế và chế tạo khuôn ép phun giá đỡ điện thoại.pdf
Thiết kế và chế tạo khuôn ép phun giá đỡ điện thoại.pdfThiết kế và chế tạo khuôn ép phun giá đỡ điện thoại.pdf
Thiết kế và chế tạo khuôn ép phun giá đỡ điện thoại.pdfMan_Ebook
 
Nhận dạng thông số của Rôbôt bằng giải thuật PSO
Nhận dạng thông số của Rôbôt bằng giải thuật PSONhận dạng thông số của Rôbôt bằng giải thuật PSO
Nhận dạng thông số của Rôbôt bằng giải thuật PSOMan_Ebook
 
Thiết kế và chế tạo mô hình máy in và scan 3D.pdf
Thiết kế và chế tạo mô hình máy in và scan 3D.pdfThiết kế và chế tạo mô hình máy in và scan 3D.pdf
Thiết kế và chế tạo mô hình máy in và scan 3D.pdfMan_Ebook
 
Thiết kế và chế tạo gối đỡ mềm sử dụng trong cân bằng động rotor.pdf
Thiết kế và chế tạo gối đỡ mềm sử dụng trong cân bằng động rotor.pdfThiết kế và chế tạo gối đỡ mềm sử dụng trong cân bằng động rotor.pdf
Thiết kế và chế tạo gối đỡ mềm sử dụng trong cân bằng động rotor.pdfMan_Ebook
 

Similar to Ứng dụng mạng học sâu (Deep Learning) xác định lỗi mạch in (PCB) sau khi ăn mòn bằng hóa chất.pdf (20)

Đề tài: Ứng dụng camera 3D trong phân loại sản phẩm, HAY
Đề tài: Ứng dụng camera 3D trong phân loại sản phẩm, HAYĐề tài: Ứng dụng camera 3D trong phân loại sản phẩm, HAY
Đề tài: Ứng dụng camera 3D trong phân loại sản phẩm, HAY
 
Đề tài: Thiết kế dây chuyền phân loại đai ốc ứng dụng xử lý ảnh
Đề tài: Thiết kế dây chuyền phân loại đai ốc ứng dụng xử lý ảnhĐề tài: Thiết kế dây chuyền phân loại đai ốc ứng dụng xử lý ảnh
Đề tài: Thiết kế dây chuyền phân loại đai ốc ứng dụng xử lý ảnh
 
Đề tài: Thiết kế mô hình hệ thống và quản lý trang trại heo, HAY
Đề tài: Thiết kế mô hình hệ thống và quản lý trang trại heo, HAYĐề tài: Thiết kế mô hình hệ thống và quản lý trang trại heo, HAY
Đề tài: Thiết kế mô hình hệ thống và quản lý trang trại heo, HAY
 
DanhHai.pdf
DanhHai.pdfDanhHai.pdf
DanhHai.pdf
 
Thiết kế và chế tạo robot vệ sinh tấm pin năng lượng mặt trời.pdf
Thiết kế và chế tạo robot vệ sinh tấm pin năng lượng mặt trời.pdfThiết kế và chế tạo robot vệ sinh tấm pin năng lượng mặt trời.pdf
Thiết kế và chế tạo robot vệ sinh tấm pin năng lượng mặt trời.pdf
 
Nghiên cứu, thiết kế, thử nghiệm xe hai bánh tự cân bằng​
Nghiên cứu, thiết kế, thử nghiệm xe hai bánh tự cân bằng​Nghiên cứu, thiết kế, thử nghiệm xe hai bánh tự cân bằng​
Nghiên cứu, thiết kế, thử nghiệm xe hai bánh tự cân bằng​
 
Thiết kế và chế tạo khuôn ép phun giá đỡ điện thoại.pdf
Thiết kế và chế tạo khuôn ép phun giá đỡ điện thoại.pdfThiết kế và chế tạo khuôn ép phun giá đỡ điện thoại.pdf
Thiết kế và chế tạo khuôn ép phun giá đỡ điện thoại.pdf
 
Nhận dạng thông số của Rôbôt bằng giải thuật PSO
Nhận dạng thông số của Rôbôt bằng giải thuật PSONhận dạng thông số của Rôbôt bằng giải thuật PSO
Nhận dạng thông số của Rôbôt bằng giải thuật PSO
 
Đề tài: Giám sát nhiệt độ, độ ẩm qua SMS dùng nguồn pin, HAY
Đề tài: Giám sát nhiệt độ, độ ẩm qua SMS dùng nguồn pin, HAYĐề tài: Giám sát nhiệt độ, độ ẩm qua SMS dùng nguồn pin, HAY
Đề tài: Giám sát nhiệt độ, độ ẩm qua SMS dùng nguồn pin, HAY
 
Thiết kế và chế tạo mô hình máy in và scan 3D.pdf
Thiết kế và chế tạo mô hình máy in và scan 3D.pdfThiết kế và chế tạo mô hình máy in và scan 3D.pdf
Thiết kế và chế tạo mô hình máy in và scan 3D.pdf
 
Luận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đ
Luận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đLuận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đ
Luận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đ
 
Mô hình nghịch lưu tăng áp ba bậc điều khiển cầu Diode kẹp, 9đ
Mô hình nghịch lưu tăng áp ba bậc điều khiển cầu Diode kẹp, 9đMô hình nghịch lưu tăng áp ba bậc điều khiển cầu Diode kẹp, 9đ
Mô hình nghịch lưu tăng áp ba bậc điều khiển cầu Diode kẹp, 9đ
 
Đề tài: Cảnh báo sinh viên thông qua hệ thống quét vân tay, 9đ
Đề tài: Cảnh báo sinh viên thông qua hệ thống quét vân tay, 9đĐề tài: Cảnh báo sinh viên thông qua hệ thống quét vân tay, 9đ
Đề tài: Cảnh báo sinh viên thông qua hệ thống quét vân tay, 9đ
 
Đề tài: Thiết kế xe điều khiển từ xa có live stream camera, HAY
Đề tài: Thiết kế xe điều khiển từ xa có live stream camera, HAYĐề tài: Thiết kế xe điều khiển từ xa có live stream camera, HAY
Đề tài: Thiết kế xe điều khiển từ xa có live stream camera, HAY
 
Đề tài: Hệ thống giám sát nông nghiệp bằng công nghệ Iot, HAY
Đề tài: Hệ thống giám sát nông nghiệp bằng công nghệ Iot, HAYĐề tài: Hệ thống giám sát nông nghiệp bằng công nghệ Iot, HAY
Đề tài: Hệ thống giám sát nông nghiệp bằng công nghệ Iot, HAY
 
Luận văn: Tính toán khoảng giải các ràng buộc không tuyến tính
Luận văn: Tính toán khoảng giải các ràng buộc không tuyến tínhLuận văn: Tính toán khoảng giải các ràng buộc không tuyến tính
Luận văn: Tính toán khoảng giải các ràng buộc không tuyến tính
 
Hệ thống chăm sóc vườn lan sử dụng năng lượng mặt trời, HOT
Hệ thống chăm sóc vườn lan sử dụng năng lượng mặt trời, HOTHệ thống chăm sóc vườn lan sử dụng năng lượng mặt trời, HOT
Hệ thống chăm sóc vườn lan sử dụng năng lượng mặt trời, HOT
 
Thiết kế và chế tạo gối đỡ mềm sử dụng trong cân bằng động rotor.pdf
Thiết kế và chế tạo gối đỡ mềm sử dụng trong cân bằng động rotor.pdfThiết kế và chế tạo gối đỡ mềm sử dụng trong cân bằng động rotor.pdf
Thiết kế và chế tạo gối đỡ mềm sử dụng trong cân bằng động rotor.pdf
 
Đề tài: Thiết kế và thi công khung ảnh điện tử, HAY, 9đ
Đề tài: Thiết kế và thi công khung ảnh điện tử, HAY, 9đĐề tài: Thiết kế và thi công khung ảnh điện tử, HAY, 9đ
Đề tài: Thiết kế và thi công khung ảnh điện tử, HAY, 9đ
 
Đề tài: Thiết kế và thi công máy in nhiệt cầm tay, HAY, 9đ
Đề tài: Thiết kế và thi công máy in nhiệt cầm tay, HAY, 9đĐề tài: Thiết kế và thi công máy in nhiệt cầm tay, HAY, 9đ
Đề tài: Thiết kế và thi công máy in nhiệt cầm tay, HAY, 9đ
 

More from Man_Ebook

BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfBÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfMan_Ebook
 
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docTL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docMan_Ebook
 
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfGiáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfGiáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdfGiáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdfGiáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdfGiáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdfMan_Ebook
 
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdfGiáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdfGiáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdfMan_Ebook
 
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdfGiáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdfGiáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdfMan_Ebook
 
Giáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdfGiáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdfMan_Ebook
 
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình web  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình song song  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdfGiáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdfMan_Ebook
 
Giáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdfGiáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdfMan_Ebook
 
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdfGiáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdfMan_Ebook
 

More from Man_Ebook (20)

BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfBÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
 
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docTL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
 
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfGiáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
 
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfGiáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
 
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
 
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
 
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdfGiáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
 
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdfGiáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
 
Giáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdfGiáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdf
 
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdfGiáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
 
Giáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdfGiáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdf
 
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdfGiáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
 
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdfGiáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
 
Giáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdfGiáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdf
 
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình web  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
 
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdf
 
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình song song  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdf
 
Giáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdfGiáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdf
 
Giáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdfGiáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdf
 
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdfGiáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdf
 

Recently uploaded

TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...Nguyen Thanh Tu Collection
 
Luận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng Hà
Luận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng HàLuận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng Hà
Luận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng Hàlamluanvan.net Viết thuê luận văn
 
XÂY DỰNG KẾ HOẠCH KINH DOANH CHO CÔNG TY KHÁCH SẠN SÀI GÒN CENTER ĐẾN NĂM 2025
XÂY DỰNG KẾ HOẠCH KINH DOANH CHO CÔNG TY KHÁCH SẠN SÀI GÒN CENTER ĐẾN NĂM 2025XÂY DỰNG KẾ HOẠCH KINH DOANH CHO CÔNG TY KHÁCH SẠN SÀI GÒN CENTER ĐẾN NĂM 2025
XÂY DỰNG KẾ HOẠCH KINH DOANH CHO CÔNG TY KHÁCH SẠN SÀI GÒN CENTER ĐẾN NĂM 2025lamluanvan.net Viết thuê luận văn
 
Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...
Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...
Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...lamluanvan.net Viết thuê luận văn
 
22 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÁI BÌNH NĂM HỌC 2023-2...
22 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÁI BÌNH NĂM HỌC 2023-2...22 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÁI BÌNH NĂM HỌC 2023-2...
22 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÁI BÌNH NĂM HỌC 2023-2...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...Nguyen Thanh Tu Collection
 
Mở rộng hoạt động cho vay tiêu dùng tại Ngân hàng TMCP Hàng Hải Việt Nam (Mar...
Mở rộng hoạt động cho vay tiêu dùng tại Ngân hàng TMCP Hàng Hải Việt Nam (Mar...Mở rộng hoạt động cho vay tiêu dùng tại Ngân hàng TMCP Hàng Hải Việt Nam (Mar...
Mở rộng hoạt động cho vay tiêu dùng tại Ngân hàng TMCP Hàng Hải Việt Nam (Mar...lamluanvan.net Viết thuê luận văn
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...Nguyen Thanh Tu Collection
 
Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...
Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...
Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...lamluanvan.net Viết thuê luận văn
 
ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdf
ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdfĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdf
ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdflevanthu03031984
 
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docxasdnguyendinhdang
 
MỘT SỐ GIẢI PHÁP GÓP PHẦN BẢO TỒN VÀ PHÁT HUY CA TRÙ (CỔ ĐẠM – NGHI XUÂN, HÀ ...
MỘT SỐ GIẢI PHÁP GÓP PHẦN BẢO TỒN VÀ PHÁT HUY CA TRÙ (CỔ ĐẠM – NGHI XUÂN, HÀ ...MỘT SỐ GIẢI PHÁP GÓP PHẦN BẢO TỒN VÀ PHÁT HUY CA TRÙ (CỔ ĐẠM – NGHI XUÂN, HÀ ...
MỘT SỐ GIẢI PHÁP GÓP PHẦN BẢO TỒN VÀ PHÁT HUY CA TRÙ (CỔ ĐẠM – NGHI XUÂN, HÀ ...lamluanvan.net Viết thuê luận văn
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...Nguyen Thanh Tu Collection
 
Luận văn 2024 Thực trạng và giải pháp nâng cao hiệu quả công tác quản lý hành...
Luận văn 2024 Thực trạng và giải pháp nâng cao hiệu quả công tác quản lý hành...Luận văn 2024 Thực trạng và giải pháp nâng cao hiệu quả công tác quản lý hành...
Luận văn 2024 Thực trạng và giải pháp nâng cao hiệu quả công tác quản lý hành...lamluanvan.net Viết thuê luận văn
 
Everybody Up 1 - Unit 5 - worksheet grade 1
Everybody Up 1 - Unit 5 - worksheet grade 1Everybody Up 1 - Unit 5 - worksheet grade 1
Everybody Up 1 - Unit 5 - worksheet grade 1mskellyworkmail
 
Hoàn thiện công tác kiểm soát chi NSNN qua Kho bạc Nhà nước huyện Tri Tôn – t...
Hoàn thiện công tác kiểm soát chi NSNN qua Kho bạc Nhà nước huyện Tri Tôn – t...Hoàn thiện công tác kiểm soát chi NSNN qua Kho bạc Nhà nước huyện Tri Tôn – t...
Hoàn thiện công tác kiểm soát chi NSNN qua Kho bạc Nhà nước huyện Tri Tôn – t...lamluanvan.net Viết thuê luận văn
 
40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 1-20) ...
40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 1-20) ...40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 1-20) ...
40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 1-20) ...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...
 
Luận Văn: HOÀNG TỬ BÉ TỪ GÓC NHÌN CẢI BIÊN HỌC
Luận Văn: HOÀNG TỬ BÉ TỪ GÓC NHÌN CẢI BIÊN HỌCLuận Văn: HOÀNG TỬ BÉ TỪ GÓC NHÌN CẢI BIÊN HỌC
Luận Văn: HOÀNG TỬ BÉ TỪ GÓC NHÌN CẢI BIÊN HỌC
 
Luận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng Hà
Luận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng HàLuận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng Hà
Luận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng Hà
 
XÂY DỰNG KẾ HOẠCH KINH DOANH CHO CÔNG TY KHÁCH SẠN SÀI GÒN CENTER ĐẾN NĂM 2025
XÂY DỰNG KẾ HOẠCH KINH DOANH CHO CÔNG TY KHÁCH SẠN SÀI GÒN CENTER ĐẾN NĂM 2025XÂY DỰNG KẾ HOẠCH KINH DOANH CHO CÔNG TY KHÁCH SẠN SÀI GÒN CENTER ĐẾN NĂM 2025
XÂY DỰNG KẾ HOẠCH KINH DOANH CHO CÔNG TY KHÁCH SẠN SÀI GÒN CENTER ĐẾN NĂM 2025
 
Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...
Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...
Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...
 
22 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÁI BÌNH NĂM HỌC 2023-2...
22 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÁI BÌNH NĂM HỌC 2023-2...22 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÁI BÌNH NĂM HỌC 2023-2...
22 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÁI BÌNH NĂM HỌC 2023-2...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
 
Mở rộng hoạt động cho vay tiêu dùng tại Ngân hàng TMCP Hàng Hải Việt Nam (Mar...
Mở rộng hoạt động cho vay tiêu dùng tại Ngân hàng TMCP Hàng Hải Việt Nam (Mar...Mở rộng hoạt động cho vay tiêu dùng tại Ngân hàng TMCP Hàng Hải Việt Nam (Mar...
Mở rộng hoạt động cho vay tiêu dùng tại Ngân hàng TMCP Hàng Hải Việt Nam (Mar...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...
 
Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...
Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...
Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...
 
ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdf
ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdfĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdf
ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdf
 
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
 
MỘT SỐ GIẢI PHÁP GÓP PHẦN BẢO TỒN VÀ PHÁT HUY CA TRÙ (CỔ ĐẠM – NGHI XUÂN, HÀ ...
MỘT SỐ GIẢI PHÁP GÓP PHẦN BẢO TỒN VÀ PHÁT HUY CA TRÙ (CỔ ĐẠM – NGHI XUÂN, HÀ ...MỘT SỐ GIẢI PHÁP GÓP PHẦN BẢO TỒN VÀ PHÁT HUY CA TRÙ (CỔ ĐẠM – NGHI XUÂN, HÀ ...
MỘT SỐ GIẢI PHÁP GÓP PHẦN BẢO TỒN VÀ PHÁT HUY CA TRÙ (CỔ ĐẠM – NGHI XUÂN, HÀ ...
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
 
Luận văn 2024 Thực trạng và giải pháp nâng cao hiệu quả công tác quản lý hành...
Luận văn 2024 Thực trạng và giải pháp nâng cao hiệu quả công tác quản lý hành...Luận văn 2024 Thực trạng và giải pháp nâng cao hiệu quả công tác quản lý hành...
Luận văn 2024 Thực trạng và giải pháp nâng cao hiệu quả công tác quản lý hành...
 
Everybody Up 1 - Unit 5 - worksheet grade 1
Everybody Up 1 - Unit 5 - worksheet grade 1Everybody Up 1 - Unit 5 - worksheet grade 1
Everybody Up 1 - Unit 5 - worksheet grade 1
 
Hoàn thiện công tác kiểm soát chi NSNN qua Kho bạc Nhà nước huyện Tri Tôn – t...
Hoàn thiện công tác kiểm soát chi NSNN qua Kho bạc Nhà nước huyện Tri Tôn – t...Hoàn thiện công tác kiểm soát chi NSNN qua Kho bạc Nhà nước huyện Tri Tôn – t...
Hoàn thiện công tác kiểm soát chi NSNN qua Kho bạc Nhà nước huyện Tri Tôn – t...
 
40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 1-20) ...
40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 1-20) ...40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 1-20) ...
40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 1-20) ...
 

Ứng dụng mạng học sâu (Deep Learning) xác định lỗi mạch in (PCB) sau khi ăn mòn bằng hóa chất.pdf

  • 1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ ĐỖ TRƯỜNG SA ĐÔNG NGHI ỨNG DỤNG MẠNG HỌC SÂU (DEEP LEARNING) XÁC ĐỊNH LỖI MẠCH IN (PCB) SAU KHI ĂN MÒN BẰNG HÓA CHẤT NGÀNH: KỸ THUẬT ĐIỆN TỬ SKC008251 Tp. Hồ Chí Minh, tháng 3/2023
  • 2. ii BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ ĐỖ TRƯỜNG SA ĐÔNG NGHI ỨNG DỤNG MẠNG HỌC SÂU (DEEP LEARNING) XÁC ĐỊNH LỖI MẠCH IN (PCB) SAU KHI ĂN MÒN BẰNG HÓA CHẤT NGÀNH KỸ THUẬT ĐIỆN TỬ - 8520203 Hướng dẫn khoa học: TS. NGUYỄN THỊ LƯỠNG TP. HỒ CHÍ MINH – 03/2023
  • 3. iii
  • 4. iv
  • 5. v
  • 6. vi
  • 7. vii
  • 9. ix
  • 10. x LÝ LỊCH KHOA HỌC I. LÝ LỊCH SƠ LƯỢC: Họ & tên: Đỗ Trường Sa Đông Nghi. Giới tính: Nam. Ngày, tháng, năm sinh: 01/01/1983. Nơi sinh: Bình Dương. Quê quán: Thủ Đức, tp Hồ Chí Minh. Dân tộc: Kinh. Địa chỉ liên lạc: 274/18 Thích Quãng Đức, Phú Cường, Thủ Dầu Một, Bình Dương. E-mail: nghi1983@gmail.com. II. QUÁ TRÌNH ĐÀO TẠO: 1. Đại học: Hệ đào tạo: Chính quy Thời gian đào tạo từ 9/2001 đến 7/2006 Nơi học (trường, thành phố): Đại học Sư phạm Kỹ Thuật TP.HCM Ngành học: Kỹ thuật Điện – Điện tử Tên đồ án, luận án hoặc môn thi tốt nghiệp: Ngày & nơi bảo vệ đồ án, luận án hoặc thi tốt nghiệp: Đại học Sư phạm Kỹ Thuật TP.HCM Người hướng dẫn: TS. Hồ Đắc Lộc. 2. Thạc sĩ: Hệ đào tạo: Chính quy Thời gian đào tạo từ 9/2019 đến 3/2023 Nơi học (trường, thành phố): Đại học Sư phạm Kỹ Thuật TP.HCM Ngành học: Kỹ thuật Điện tử Tên luận văn: Ứng dụng mạng học sâu (Deep learning) xác định lỗi mạch in (PCB) sau khi ăn mòn bằng hóa chất. Ngày & nơi bảo vệ luận văn: 23/3/2023, tại Đại học Sư phạm Kỹ Thuật TP.HCM Người hướng dẫn: TS. Nguyễn Thị Lưỡng.
  • 11. xi III. QUÁ TRÌNH CÔNG TÁC CHUYÊN MÔN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC: Thời gian Nơi công tác Công việc đảm nhiệm 10/2010 Trường TCN Thủ Dầu Một Giảng dạy 1/2013 Trường TCN Việt – Hàn BD Giảng dạy 10/2017-nay Trường Cao Đẳng Việt Nam – Hàn Quốc BD Giảng dạy
  • 12. xii LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu của tôi. Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác. Tp. Hồ Chí Minh, ngày 24 tháng 03 năm 2023 (Ký tên và ghi rõ họ tên) Đỗ Trường Sa Đông Nghi
  • 13. xiii LỜI CẢM ƠN Để hoàn thành đồ án “Ứng dụng mạng học sâu (Deep learning) xác định lỗi mạch in (PCB) sau khi ăn mòn bằng hóa chất”, đầu tiên người thực hiện đề tài xin gửi lời cảm ơn chân thành đến cô Nguyễn Thị Lưỡng đã trực tiếp hướng dẫn trong quá trình chọn cũng như thực hiện đề tài. Người thực hiện đề tài cũng xin chân thành cảm ơn quý thầy cô khoa Điện – Điện tử đã truyền đạt rất nhiều kiến thức nền tảng và tạo điều kiện thuận lợi để người thực hiện đề tài có thể hoàn thành đề tài này. Trong quá trình thực hiện đề tài, người thực hiện đề tài cũng đã nhận được sự giúp đỡ và động viên từ phía gia đình, thầy cô, bạn bè. Đây chính là sự động viên to lớn thúc đẩy người thực hiện đề tài cố gắng hoàn thành đề tài. Mặc dù đã có nhiều cố gắng và nỗ lực thực hiện nhưng do kiến thức cũng như khả năng bản thân còn nhiều hạn chế nên trong quá trình thực hiện đề tài không thể tránh khỏi những sai phạm, thiếu sót. Rất mong nhận được lời chỉ dẫn, góp ý quý báu của quý thầy cô. Xin chân thành cám ơn! Người thực hiện đề tài Đỗ Trường Sa Đông Nghi
  • 14. xiv TÓM TẮT Trong giảng dạy và thực hành modun chế tạo mạch in trong trường nghề thường gặp phải vấn đề là kiểm tra mạch in sau khi ăn mòn bằng hóa chất trước khi cho sinh viên khoan và hàn linh kiện. Nếu ứng dụng phương pháp xử lý ảnh thì không khả thi do kích thước các bo mạch không đồng nhất, số lượng mẫu rất nhiều do mỗi sinh viên có thể có mỗi mẫu khác nhau. Do đó cần một công cụ có thể xác định số lượng và phân loại lỗi của mạch in sau khi ăn mòn bằng hóa chất, hỗ trợ công tác kiểm tra sản phẩm. Để giải quyết vấn đề này tác giả đề xuất sử dụng một mạng học sâu để nhận diện các lỗi có thể có trên một ảnh chụp mạch in đã được ăn mòn bằng hóa chất. Ở đây, tác giả sử dụng phương pháp transfer learning trên mô hình Vgg16 đã qua huấn luyện với tập dữ liệu DeepPCB. Kết quả mô hình đạt được độ chính xác trên 89%.
  • 15. xv ABTRACT In teaching and practicing printed circuit manufacturing module in vocational schools, it is common to encounter the problem of checking printed circuits after chemical corrosion before allowing students to drill and solder components. The application of the image processing method is not suitable due to the size of the boards is not uniform, the number of samples is very large because each student may have a different sample. Therefore, it is necessary to have an application that can quantify and classify the defects of printed circuits after chemical corrosion, supporting product inspection. To solve this problem I suggest using a deep learning network to identify possible errors on a printed circuit image that has been chemically etched. In this work, I uses the transfer learning method on the pre-trained Vgg16 model with the DeepPCB dataset. The model results achieved an accuracy of over 89%.
  • 16. xvi MỤC LỤC LÝ LỊCH KHOA HỌC............................................................................................x LỜI CAM ĐOAN.................................................................................................xiii LỜI CẢM ƠN ......................................................................................................xiii TÓM TẮT........................................................................................................xxivv ABTRACT..........................................................................................................xxv DANH MỤC BẢNG........................................................................................xxviii DANH MỤC HÌNH .............................................................................................xix DANH MỤC TỪ VIẾT TẮT ..............................................................................xxx Chương 1 TỔNG QUAN.....................................................................................21 1.1 TÌNH HÌNH NGHIÊN CỨU ......................................................................21 1.2 MỤC TIÊU ĐỀ TÀI ...................................................................................10 1.3 NHIỆM VỤ VÀ GIỚI HẠN CỦA ĐỀ TÀI ................................................10 1.3.1 Nhiệm vụ của đề tài ...........................................................................10 1.3.2 Giới hạn của đề tài.............................................................................11 1.4 PHƯƠNG PHÁP NGHIÊN CỨU ...............................................................11 1.5 BỐ CỤC ĐỀ TÀI........................................................................................11 Chương 2 CƠ SỞ LÝ THUYẾT.........................................................................13 2.1 XỬ LÝ ẢNH...............................................................................................13 2.2 NHẬN DIỆN ĐỐI TƯỢNG (OBJECT DETECTION)................................17 2.3 MẠNG HỌC SÂU ......................................................................................20 Chương 3 PHƯƠNG PHÁP ĐỀ XUẤT..............................................................23 3.1 TẬP DỮ LIỆU ............................................................................................23
  • 17. xvii 3.2 KIẾN TRÚC CỦA MÔ HÌNH ....................................................................25 3.3 QUÁ TRÌNH HUẤN LUYỆN.....................................................................30 Chương 4 KẾT QUẢ THỰC NGHIỆM.............................................................45 4.1 THÔNG SỐ HUẤN LUYỆN ......................................................................45 4.2 MỘT SỐ KẾT QUẢ HUẤN LUYỆN .........................................................46 Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .........................................49 4.1 KẾT LUẬN.................................................................................................49 4.2 HƯỚNG PHÁT TRIỂN ..............................................................................50 TÀI LIỆU THAM KHẢO...................................................................................51
  • 18. xviii DANH MỤC BẢNG BẢNG TRANG Bảng 1.1: Kết quả so sánh 2 mô hình SSD và FPN trên 2 tập dữ liệu............... 7 Bảng 2.1: So sánh tốc độ và độ chính xác giữa các mô hình nhận diện vật thể. 21
  • 19. xix DANH MỤC HÌNH HÌNH TRANG Hình 1.1: Lược đồ hệ thống “ Phát hiện lỗi PCB bằng xử lý ảnh”.......................6 Hình 1.2: Quy trình sản xuất mạch điện của Công ty TNHH JABIL Việt Nam...8 Hình 1.3: Lưu đồ giải thuật thiết kế phần mềm trong luận văn tốt nghiệp đại học của sinh viên trường Đại học Sư phạm Kỹ thuật..................................................9 Hình 2.1: Ảnh màu, ảnh xám và ảnh nhị phân...................................................13 Hình 2.2: Chuyển từ ảnh RGB sang ảnh xám....................................................15 Hình 2.3: Sơ đồ các tác vụ của thị giác máy tính...............................................19 Hình 2.4: Cách chia feature map để nhận diện các ảnh với kích cỡ khác nhau. .21 Hình 3.1: Ảnh của tập dữ liệu và dán nhãn. ......................................................24 Hình 3.2: Nội dung file data.mat.......................................................................25 Hình 3.3: Sơ đồ kiến trúc mạng SSD300 ..........................................................26 Hình 3.4: Vị trí của các khung bao trên bức ảnh gốc.........................................29 Hình 3.5: Ảnh sau khi sử dụng một số phương pháp tiền xử lý.........................31 Hình 3.6: Ground truth box và Default bounding box .......................................34 Hình 3.7: Ảnh hưởng của tốc độ học đối với hàm loss......................................38 Hình 3.8: Mối quan hệ giữa tốc độ học và hàm loss..........................................39 Hình 3.9: So sánh ảnh hưởng của giá trị learning rate đối với mô hình .............39 Hình 3.10: So sánh mô hình trước và sau khi áp dụng transfer learning............40 Hình 3.11: Pretrained-model được sử dụng để trích xuất đặc trưng...................41 Hình 3.12: Quá trình training dùng pretrained-model VGG16 để trích xuất đặc trưng..................................................................................................................42 Hình 3.13: Fine turing một pretrained-model....................................................43 Hình 3.14: Quá trình training dùng pretrained-model VGG16 để trích xuất đặc trưng có sử dụng fine turning.............................................................................43 Hình 4.1: Kiến trúc mạng SSD300 dùng để huấn luyện ....................................45 Hình 4.2: Quá trình training..............................................................................46 Hình 4.3: Ảnh đầu vào và Lỗi được dự đoán.....................................................47
  • 20. xx DANH MỤC TỪ VIẾT TẮT SSD Single Shot MultiBox Detector IoU Intersection of Union PCB Printed Circuit Board AOI Automated Optical Inspection
  • 21. 21 Chương 1 TỔNG QUAN 1.1 TÌNH HÌNH NGHIÊN CỨU 1.1.1 Tình hình nghiên cứu ở nước ngoài - Hiện nay, việc kiểm tra chất lượng sản phẩm, đặc biệt là các sản phẩm có chi tiết nhỏ như ngành điện tử, hầu như được thay thế hoàn toàn bằng máy móc. Trong bài báo “Đánh giá và phân tích các phương pháp giám sát chất lượng và kiểm tra quang học tự động trong ngành công nghiệp điện tử” [1], Ebayyeh và các cộng sự đã tổng hợp các phương pháp giám sát chất lượng như kiểm tra bằng siêu âm, dòng điện xoáy, kiểm tra bằng chất thấm thuốc nhuộm, nhiệt độ, thăm dò mạch, kiểm tra bằng tia X và quang học hiện đang được sử dụng để đánh giá chất lượng sản phẩm nhằm đạt được sản phẩm đủ tiêu chuẩn. Họ khẳng định kiểm tra quang học tự động (AOI) là một trong những kỹ thuật không thể thay thế được sử dụng để kiểm tra chất lượng các sản phẩm khác nhau. Kỹ thuật này được coi là mạnh mẽ và có thể thay thế con người. Giám sát chất lượng là bước cần thiết để giảm thiểu lỗi của sản phẩm trong các ngành công nghiệp khác nhau. AOI được coi là một trong những phương pháp giám sát chất lượng đơn giản và thường được sử dụng để kiểm tra công nghiệp tự động. Lĩnh vực AOI rất rộng lớn vì nó liên quan đến nhiều chủ đề khác nhau, từ thiết lập phần cứng để thu nhận hình ảnh đến các thuật toán kiểm tra và ra quyết định. Vì lý do này, các cơ hội nghiên cứu trong lĩnh vực này rất rộng mở và có tiềm năng cải thiện trong tương lai gần. - Trong quá trình sản xuất các bo mạch điện tử, việc kiểm tra quang học bằng máy móc được thược hiện rất nhiều lần trong dây chuyền sản xuất để hạn chế sản phẩm lỗi. Ta có thể thấy được việc này thông qua quy trình chế tạo mạch in công nghiệp được đăng trên trang web https://www.mclpcb.com như sau: Bước 1: Thiết kế PCB Nhà thiết kế đưa ra một bảng thiết kế cho PCB đáp ứng tất cả các yêu cầu được đưa ra. Bước 2: Đánh giá thiết kế và các câu hỏi về kỹ thuật Đánh giá thiết kế và kiểm tra tất cả các phần của bảng thiết kế PCB để đảm bảo không có thành phần nào bị thiếu hoặc cấu trúc không đúng. Sau đó, bảng thiết kế được chuyển sang giai đoạn in.
  • 22. 22 Bước 3: In thiết kế PCB Một loại máy in chuyên biệt được sử dụng để tạo ảnh âm bản của bảng thiết kế. Các lớp bên trong (Inner layers)của PCB được thể hiện bằng hai màu mực: Mực màu đen: sử dụng cho các tiếp điểm và đường mạch của PCB. Mực trong suốt: in các vùng cần loại bỏ của PCB. Trên các lớp bên ngoài (Top, Bottom layer) của thiết kế PCB thì ngược lại — mực trong dùng để chỉ đường dẫn của đồng, còn mực đen thì dùng để chỉ các khu vực đồng sẽ bị loại bỏ. Mỗi lớp PCB và mặt nạ hàn (solder mask) đi kèm đều có phim riêng, do đó, một PCB hai lớp đơn giản cần bốn tấm — một tấm cho mỗi lớp và một tấm cho mặt nạ hàn đi kèm. Sau khi in, các tấm phim được xếp thành hàng và được đục lỗ bằng máy. Lỗ này dùng để căn chỉnh phim trong quy trình chế tạo sau này. Bước 4: Phủ đồng cho lớp bên trong Sau khi bảng thiết kế PCB được in trên một tấm laminate, một lớp đồng sẽ được phủ lên và được khắc theo bảng thiết kế trước đó. Tiếp theo, tấm laminate này được phủ một loại phim cảm quang, phim này sẽ hóa cứng lại khi tiếp xúc với tia cực tím. Khi được xếp hàng nhờ các lỗ đã đục trước đó, chúng sẽ được chiếu tia UV. Tia UV đi qua các phần trong mờ của phim, làm cứng chất cản quang. Đây là những khu vực đường mạch. Ngược lại, mực đen ngăn không cho tia UV nào chiếu tới những khu vực cần loại bỏ sau này. Sau đó, PCB được rửa bằng dung dịch kiềm để loại bỏ chất cản quang và bằng nước áp suất cao để loại bỏ những gì còn sót lại trên bề mặt và để khô. Kế tiếp, PCB sẽ được kiểm tra lỗi trước khi chuyển sang bước tiếp theo. Bước 5: Khắc các lớp bên trong Quá trình ăn mòn hóa học sẽ loại bỏ tất cả đồng không được bảo vệ khỏi PCB, chỉ để lại các đường mạch đồng. Bước 6: Căn chỉnh Từng lớp PCB được làm sạch. Các lỗ đã đục trước đó được sử dụng để căn chỉnh các lớp bên trong và bên ngoài. Ánh sáng được truyền xuyên qua các lỗ để sắp xếp các lớp của PCB. Bước 7: Kiểm tra quang học tự động (AOI) Một máy thực hiện kiểm tra quang học để phát hiện khuyết tật. Đây là quá trình kiểm tra cực kỳ quan trọng.
  • 23. 23 PCB đã vượt qua quá trình kiểm tra quang sẽ được chuyển sang các bước cuối cùng của quá trình chế tạo và sản xuất PCB. Bước AOI rất quan trọng đối với hoạt động sản xuất mạch in. AOI đóng vai trò là điểm kiểm tra chất lượng giữa chừng trong quá trình sản xuất. Nếu không có nó, tỉ lệ các bo mạch lỗi sau quá trình khắc có thể vượt quá quy định. Bước này được lặp lại cho các lớp bên ngoài sau khi các kỹ sư hoàn thành việc tạo ảnh và khắc chúng. Bước 8: Ghép lớp PCB Tất cả các lớp PCB sẽ được ghép lại. Mặt ngoài của PCB được ngâm/phủ trước bằng nhựa epoxy. Sau đó chúng sẽ được ép dính lại với nhau. Bước 9: Khoan Máy tia X được sử dụng để xác định vị trí các điểm cần khoan. Sau đó, một mũi khoan do máy tính điều khiển sẽ tạo lỗ theo bảng thiết kế. Bước 10: Mạ PCB Quá trình này sử dụng một loại hóa chất để tạo ra một lớp đồng trong các lỗ vừa được khoan dùng để nối tất cả các lớp của PCB lại với nhau. Bước 11: Tạo ảnh lớp ngoài Trong bước 4, PCB được phủ một chất cản quang, còn bước này sử dụng một lớp chất cản quang khác. Đồng thời, các lớp này được mạ thiếc để bảo vệ lớp đồng của lớp bên ngoài. Bước 12: Khắc lớp ngoài Điểm khác biệt chính giữa khắc lớp bên trong và khắc lớp bên ngoài là các lớp bên trong sử dụng mực sẫm màu cho các vùng cần giữ lại và mực trong suốt cho các bề mặt muốn loại bỏ, còn đối với các lớp bên ngoài thì ngược lại. Các vùng đồng không cần thiết và mọi lớp phủ còn lại được loại bỏ trong quá trình ăn mòn, chuẩn bị cho bước AOI lớp ngoàivà bước phủ mặt nạ hàn. Bước 13: AOI lớp ngoài Việc kiểm tra quang học này nhằm đảm bảo các lớp đảm bảo các yêu cầu của thiết kế. Nó cũng kiểm tra việc loại bỏ tất cả đồng thừa, các đường mạch không bị nối tắt. Bước 14: Phủ mặt nạ hàn PCB sẽ được phủ một lớp màng epoxy mực và mặt nạ hàn lên bề mặt. Tia cực tím chiếu vào các bảng để chỉ ra nơi cần loại bỏ. Bảng mạch sẽ được đưa vào lò sấy để xử lý mặt nạ hàn. Mặt nạ hàn này giúp bảo vệ cho lớp đồng của bo mạch khỏi ăn mòn và oxy hóa. Bước 15: In lụa (Silkscreen)
  • 24. 24 Nhà chế tạo sẽ in các dữ liệu quan trọng lên bề mặt của bo mạch. Thông tin này bao gồm những nội dung sau đây: Số ID công ty. Nhãn cảnh báo. Nhãn hiệu hoặc logo của nhà sản xuất. ... Sau đó, PCB được phủ lớp hoàn thiện bề mặt. Bước 16: Hoàn thiện PCB Hoàn thiện PCB yêu cầu mạ bằng vật liệu dẫn điện, chẳng hạn như sau: Bạc, Vàng, Thiếc, Chất bảo quản hàn hữu cơ (OSP).... Các lớp này có tác dụng bảo vệ PCB khỏi quá trình oxy hóa khi tiếp xúc với không khí. Bước 17: Kiểm tra về điện Kỹ thuật viên sẽ thực hiện một loạt kiểm tra điện trên các khu vực khác nhau của PCB. Thử nghiệm này phải tuân thủ các tiêu chuẩn của IPC-9252. Nếu PCB đã vượt qua thử nghiệm độ tin cậy về điện thì có thể chuyển sang bước tiếp theo. Bước 18: Cắt PCB Máy phay hoặc máy CNC tạo ra một số mảnh nhỏ dọc theo các cạnh của bảng mạch . Các cạnh này giúp bảng mạch nhanh chóng được tách ra mà không bị hư hại. Bước 19: Kiểm tra chất lượng và kiểm tra trực quan PCB sẽ trải qua lần kiểm tra cuối trước khi được đóng gói và vận chuyển: Các kích thước lỗ phải phù hợp trên tất cả các lớp và đáp ứng các yêu cầu thiết kế. Kích thước bảng phải đúng với kích thước trong bảng thiết kế. Đảm bảo sạch sẽ, không bám bụi. Thành phẩm không được có gờ hoặc cạnh sắc. Tất cả các bo mạch không vượt qua được bài kiểm tra về điện đều phải được sửa chữa và kiểm tra lại. Ta có thể thấy kiểm tra quang học tự động (AOI) là một bước quan trọng trong quy trình trên, loại bỏ các sản phẩm không đạt ngay từ đầu quy trình sản xuất, giúp tăng tỉ lệ thành phẩm. Việc kiểm tra này được lặp lại mỗi khi một lớp mạch được khắc xong, và trước khi bắt đầu ghép các lớp lại với nhau.
  • 25. 25 - Trong bài báo “ Phát hiện lỗi PCB bằng xử lý ảnh”[2] Abhilash Doniwar và các cộng sự đã sử dụng các phương pháp xử lý ảnh trên ảnh chụp mạch in cần kiểm tra, sau đó dùng phép XOR ảnh đã xử lý với ảnh từ file thiết kế, từ đó chỉ ra các lỗi trên PCB. Hình 1.1: Lược đồ hệ thống “ Phát hiện lỗi PCB bằng xử lý ảnh”[2] Đây là phương pháp phát hiện lỗi mạch in nhanh, không phức tạp, dễ triển khai thiết kế và thi công. Tuy nhiên phụ thuộc nhiều vào chất lượng ảnh đầu vào và khi tỉ lệ ảnh đầu vào/ảnh tham chiếu thấp (nhiều loại mạch khác nhau kiểm tra cùng lúc) thì công việc gần như trở thành thủ công. - Chuyên sâu hơn, trong bài báo “Phát hiện lỗi PCB bằng phương pháp học sâu” [3] Wu và các cộng sự đã sử dụng 2 mạng học sâu là SSD và FPN được training trên 2 tập dữ liệu PCB Dataset và DeepPCB Dataset khác nhau - “Do những hạn chế về mặt kỹ thuật, PCB BẮT ĐẦU KẾT THÚC BẢNG ĐẦU VÀO • Ảnh đầu vào • Ảnh tham chiếu BIẾN ĐỔI ẢNH • Ảnh xám • Ảnh qua bộ lọc • Ảnh dò cạnh • Ảnh được làm sắc nét • Ảnh biến đổi theo ngưỡng • Ảnh qua phép XOR BẢNG ĐẦU RA • Ảnh hiển thị lỗi • Bộ đếm lỗi
  • 26. 26 chắc chắn sẽ xuất hiện các khuyết tật trong quá trình sản xuất. Để đảm bảo năng suất cao và tiết kiệm chi phí lao động, bài báo này đã áp dụng hai loại mạng phát hiện và phân loại lỗi PCB. Các thử nghiệm cho thấy hai phương pháp được sử dụng trong hai phân bổ tập dữ liệu khác nhau đạt được độ chính xác cao”- có kết quả như sau: Bảng 1.1: Kết quả so sánh 2 mô hình SSD và FPN trên 2 tập dữ liệu [3] PHƯƠNG PHÁP CHỈ SỐ ĐÁNH GIÁ TÊN TẬP DỮ LIỆU PCB Dataset DeepPCB Dataset SSD Precision 98,9 89,7 Recall 54,4 78,5 F1-score 70,2 83,7 FPN Precision 96,4 92,7 Recall 98,2 97,3 F1-score 97,3 94,6 Kết quả thử nghiệm cho thấy hiệu quả của hai mô hình này rất tốt. Trong đó, mô hình FPN tốt hơn, một phần vì FPN đã sử dụng cấu trúc kim tự tháp ngược, cấu trúc phát hiện mục tiêu nhỏ phù hợp hơn. Có thể cải thiện mô hình SSD bằng cách thêm một lớp giải mã tương tự để tăng tác dụng của cấu trúc này. 1.1.2 Tình hình nghiên cứu trong nước: - Quy trình lắp ráp linh kiện và kiểm tra mối hàn của Công ty TNHH JABIL Việt Nam có sử dụng kiểm tra quang học bằng phương pháp xử lý ảnh như sau:
  • 27. 27 Hình 1.2: Quy trình sản xuất mạch điện của Công ty TNHH JABIL Việt Nam SẤY • Gia nhiệt đến nhiệt độ thích hợp để chuẩn bị quét KIỂM TRA NGOẠI QUAN BẰNG XỬ LÝ ẢNH • Kiểm tra màu sắc • Kiểm tra vị trí linh kiện • Kiểm tra mối hàn KIỂM TRA VỀ ĐIỆN BOARD MẠCH • Bo mạch đã được ăn mòn bằng hóa chất và vệ sinh QUÉT KEM CHÌ • Quét kem chì lên các vị trí cần hàn GẮP ĐẶT LINH KIỆN • Đặt linh kiện vào vị trí định trước theo sơ đồ thiết kế GIA NHIỆT • Gia nhiệt đến nhiệt độ thích hợp để chì chảy ra, bám vào linh kiện và PCB VỆ SINH MẠCH • Vệ sinh chì dư và hóa chất bám trên bề mặt
  • 28. 28 - Gần đây, trong luận văn tốt nghiệp đại học của sinh viên trường Đại học Sư phạm Kỹ thuật cũng áp dụng biện pháp xử lý ảnh để phát hiện lỗi mạch in sau khi ăn mòn bằng hóa chất. Hình 1.3: Lưu đồ giải thuật thiết kế phần mềm trong luận văn tốt nghiệp đại học của sinh viên trường Đại học Sư phạm Kỹ thuật Tạo giao diện người dùng Chuyển ảnh gốc thành ảnh nhị phân So sánh ảnh chuyển mạch với ảnh gốc để tìm ra lỗi sai Khởi tạo thư viện Nhập ảnh nhận điện Nhập ảnh gốc Chuyển ảnh nhận điện từ ảnh màu thành ảnh nhị phân Chuyển mạch trong ảnh nhận điện khớp với ảnh gốc BẮT ĐẦU KẾT THÚC
  • 29. 29 *. Tóm lại, ta có thể thấy phương pháp kiểm tra quang học tự động (AOI) thường được sử dụng trong công nghiệp trong nước là phương pháp xử lý ảnh do có ưu điểm là công nghệ đơn giản đễ thi công và bảo trì, còn phương pháp sử dụng mạng học sâu chủ yếu được nghiên cứu trong các bài báo và ứng dụng ngoài nước do công nghệ phức tạp, khó làm chủ (vấn đề bản quyền, bảo trì, bảo dưỡng). Ưu điểm của phương pháp xử lý ảnh là nhanh và độ chính xác cao. Nhược điểm là phụ thuộc nhiều vào phần cứng (cần thiết bị chuyên dụng) nên đắt tiền; cần dữ liệu mẫu để so sánh (file thiết kế PCB); chỉ phát hiện mà không phân loại được lỗi. Các nghiên cứu ứng dụng mạng học sâu vào thị giác máy tính như nhận diện khuôn mặt, nhận diện bảng số xe, phát hiện hành động nguy hiểm của tài xế ... được phát triển rất nhiều. Tuy nhiên, chưa có phần mềm nào ứng dụng mạng học sâu (Deep Learning) vào nhận dạng lỗi PCB trong các cơ sở sản xuất nhỏ trong nước, đặc biệt là trong đào tạo nghề với tỉ lệ sản phẩm/mẫu là rất bé, thậm chí là 1/1. 1.2 MỤC TIÊU ĐỀ TÀI Đề tài này được thực hiện nhằm mục đích giải quyết vấn đề nhận dạng các lỗi quan trọng của PCB khiến mạch không thể hoạt động như : - Đứt đường mạch (Open). - Nối tắt (Short). - Và một số lỗi ảnh hưởng đến chất lượng mạch như : đường mạch bị ăn mòn quá mức (Mousebite), bị thừa (Spur), ăn mòn chưa hết (Cooper), bị rỗ (Pinhole) với tỉ lệ sản phẩm/mẫu bé (không cần file mạch in gốc để đối chiếu). - Chi phí thấp (sử dụng các thiết bị sẵn có: máy tính, camera ..) Để giải quyết được các vấn đề đó, người thực hiện đề tài sẽ xây dựng một mạng học sâu có khả năng nhận dạng các lỗi trên của PCB, khoanh vùng và ghi tên mỗi loại. 1.3 NHIỆM VỤ VÀ GIỚI HẠN CỦA ĐỀ TÀI 1.3.1 Nhiệm vụ của đề tài - Nghiên cứu quy trình chế tạo PCB. - Tìm hiểu và lựa chọn một mạng học sâu có khả năng phân biệt được các lỗi thường gặp trên PCB, khoanh vùng và ghi tên mỗi loại. - Tìm hiểu phương pháp tiền xử lý ảnh trước khi đưa vào huấn luyện.
  • 30. 30 - Dùng bộ dữ liệu đã xử lý để huấn luyện mạng. - Dùng các công cụ đánh giá mô hình trong Matlab. - Kết luận và đánh giá kết quả đạt được. 1.3.2 Giới hạn của đề tài - Mô hình nhận diện lỗi được xây dựng để chạy trong môi trường đồng nhất ánh sáng (ánh sáng được kiểm soát). - Nhận diện được các lỗi đứt đường mạch (Open), nối tắt (Short), đường mạch bị ăn mòn quá mức (Mousebite), bị thừa (Spur), ăn mòn chưa hết (Cooper), bị rỗ (Pinhole). 1.4 PHƯƠNG PHÁP NGHIÊN CỨU - Phương pháp nghiên cứu cơ sở lý thuyết. - Phương pháp thu thập số liệu. - Phương pháp thống kê. - Phương pháp mô phỏng, đánh giá. - Phương pháp thực nghiệm khoa học. - Phương pháp phân tích tổng kết kinh nghiệm. 1.5 BỐ CỤC ĐỀ TÀI Đề tài được trình bày theo bố cục sau: Chương 1: TỔNG QUAN. Ở chương này, người thực hiện đề tài sẽ trình bày tổng quan về quá trình chế tạo mạch in PCB và các phương pháp phát hiện lỗi được sử dụng hiện nay, qua đó đề xuất cải tiến để giải quyết các vấn đề hiện tại. Chương 2: CƠ SỞ LÝ THUYẾT. Chương này sẽ trình bày về các lý thuyết có sử dụng trong đề tài: Chương 3: PHƯƠNG PHÁP ĐỀ XUẤT. Trong chương này sẽ trình bày về mạng SSD (Single Shot Multibox Detector) được sử dụng để huấn luyện mạng trong đề tài. Chương 4: KẾT QUẢ SƠ BỘ. Nội dung của chương này sẽ tập trung vào trình bày các kết quả đã đạt được của đề tài. Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN. Kết luận và hướng phát triển của đề tài sẽ được trình bày ở chương này.
  • 31. 31 Chương 2 CƠ SỞ LÝ THUYẾT 2.1 XỬ LÝ ẢNH Ảnh là thông tin về vật thể hay quang cảnh được chiếu sáng mà con người quan sát và cảm nhận bằng mắt và hệ thần kinh thị giác . Một hình ảnh kỹ thuật số là biểu diễn hai chiều được xây dựng từ ma trận nhị phân (bao gồm các số một và số không), gồm các thông số về kích thước ảnh (dimension: width x height pixels) và độ sâu (bit deepth) của ảnh như Wu và các cộng sự [4] đã phân tích. Dựa vào độ sâu của ảnh, ta có thể chia làm ảnh nhị phân (1 bit), ảnh xám (8 bit), ảnh màu (16-24 bit) ... Hình 2.1: Ảnh màu, ảnh xám và ảnh nhị phân. Khi xây dựng mô hình phân loại ảnh chúng ta có thể gặp phải một số trường hợp không mong muốn như: Kết quả huấn luyện có độ chính xác rất cao trên cả tập huấn luyện (train dataset) và tập kiểm tra (test dataset). Nhưng khi áp dụng để nhận dạng lại cho độ chính xác thấp. Có nhiều nguyên nhân dẫn tới điều này, Russakovsky[5], Rafael C. Gonzalez[6] , Brownlee[7] và các cộng sự đã chỉ ra các lí do, chúng ta có thể liệt kê một trong số đó là :
  • 32. 32 - Các bức ảnh được huấn luyện khác xa so với những bức ảnh cần nhận dạng về các khía cạnh: cường độ, màu sắc, độ phân giải, chất lượng ảnh, độ to nhỏ của vật thể, vị trí của vật thể bên trong ảnh. - Có thể các bức ảnh cần nhận dạng mặc dù cùng nhãn nhưng khác về tính chất so với các bức ảnh đã huấn luyện. Ví dụ trong một thuật toán phân loại cam và bưởi, tập huấn luyện chỉ bao gồm những quả cam đã chín (có màu vàng) nhưng ảnh cần nhận dạng lại là những quả cam còn xanh dẫn tới thuật toán bị nhầm lẫn. - Đối với một số tác vụ phân loại ảnh khó, cần chuyên gia chuyên ngành gán nhãn, rất dễ mắc sai lầm như chuẩn đoán bệnh về não. Khi có một số ít các ảnh trong tập huấn luyện bị gán sai nhãn, điều này sẽ ảnh hưởng đến khả năng dự báo của thuật toán. - Bộ dữ liệu huấn luyện (train dataset) có kích thước quá nhỏ và không đầy đủ, không đại diện cho toàn bộ các lớp cần huấn luyện. - Phân chia của tập huấn luyện (train dataset) không phù hợp với thực tế. Chẳng hạn tập huấn luyện cần chứa ảnh hoa hồng và hoa cúc theo tỷ lệ 50:50 nhưng số lượng ảnh trong tập huấn luyện lại thiên về hoa hồng, chiếm số lượng nhiều theo tỷ lệ 90:10. … Và còn rất nhiều các nguyên nhân khác dẫn tới mô hình hoạt động không được như mong muốn. Khi gặp phải các trường hợp trên chúng ta cần phải tìm ra nguyên nhân thực sự của vấn đề là gì, từ đó đưa ra phương pháp khắc phục thích hợp các lỗi của thuật toán. Nếu tập dữ liệu không đủ lớn, dữ liệu cần gán nhãn với chi phí cao (như dùng hình ảnh để chuẩn đoán bệnh, cần tìm ra những người mách bệnh đó và cần bác sĩ đúng chuyên ngành để khám bệnh), vì vậy chi phí cho việc thay đổi tập dữ liệu là khá cao. Khi đó, cần có một phương pháp giúp tăng số lượng ảnh huấn luyện dựa trên số ảnh đã có, đó là phương pháp học tăng cường (data augumentation)[5]. Phương pháp này sử dụng các biến đổi tiền xử lý ảnh để tăng số ảnh đầu vào. Phương pháp đã chứng minh hiệu quả thông qua các kết quả huấn luyện và giúp cải thiện kết quả dự báo. Phương pháp biến đổi ảnh màu thành ảnh xám và ảnh nhị phân[6]:
  • 33. 33  Biến đổi ảnh màu (color) sang ảnh xám (grayscale) hoặc đọc ảnh lên bằng cờ ảnh xám.  Thiết lập ngưỡng (threshold) để nhị phân hóa ảnh.  Áp dụng ngưỡng vào ảnh xám để tạo ảnh nhị phân hoặc áp dụng giải thuật nhị phân hóa ảnh. Các pixel có giá trị lớn hơn ngưỡng ta thiết lập bằng 255 (hoặc 1), nhỏ hơn ngưỡng ta thiết lập bằng 0. Hình 2.2: Chuyển từ ảnh RGB sang ảnh xám. mức xám gray = a*R + b*G + c*B. Ví dụ: hàm rgb2gray có a=0.2989 , b= 0.5870 , c= 0.1140 vậy gray = 0.2989 * R + 0.5870 * G + 0.1140 * B . Cân bằng lược đồ mức xám thích nghi (CLAHE): Phương pháp cân bằng thích nghi có giới hạn độ tương phản (CLAHE) giúp khắc phục vấn đề khuếch đại giá trị nhiễu ở hai phương pháp AHE và HE. CLAHE tạo nên một giới hạn cắt để khắc phục vấn đề khuếch đại nhiễu. CLAHE giới hạn khuếch đại bằng cách cắt biểu đồ ở giá trị được xác định trước khi tính toán CDF. CLAHE có hai tham số chính: Kích thước khối (BS) và Giới hạn clip (CL). Đây là hai thông chủ yếu kiểm soát chất lượng của hình ảnh. Phương pháp phân ngưỡng Otsu: Otsu là phương pháp tính ngưỡng một cách tự động dựa vào giá trị điểm ảnh của ảnh đầu vào nhằm thay thế cho việc sử dụng ngưỡng cố định. Mục đích là để tìm giá trị ngưỡng mà tổng chênh lệch nền và nền ở mức tối thiểu. Một số phương pháp xử lý ảnh cơ bản để tăng cường ảnh đầu vào[6]:
  • 34. 34 - Phương pháp thay đổi kích cỡ ảnh(Scale ảnh) là việc thay đổi chiều dài, chiều rộng của ảnh mà không làm thay đổi việc các đoạn thẳng song song với nhau trên ảnh gốc. Ta có phép dịch chuyển sẽ là: 𝑇(𝑥, 𝑦) = 𝑀 = = (2.1) - Phương pháp dịch chuyển ảnh (Translation) thường được thực hiện khi chúng ta muốn dời ảnh từ vị trí này đến vị trí khác. Ví dụ dời ảnh đến vị trí các góc trên, dưới, bên trái, bên phải. Tính chất song song của các đoạn thẳng sau khi thực hiện phép dịch chuyển đối với các trục X hoặc Y sẽ được giữ nguyên nếu chúng cũng song song với các trục này trước khi dịch chuyển. Ma trận dịch chuyển sẽ có dạng như bên dưới: 𝑀 = (2.2) 𝑇(𝑥, 𝑦) = 𝑀 = = (2.3) Như vậy với tọa độ (x,y) bất kỳ trong ảnh, sau khi thực hiện phép dịch chuyển sẽ trở thành (x+tx, y+ty). - Phương pháp xoay ảnh (Rotation): là chọn một điểm cố định rồi xoay ảnh xung quanh điểm đó theo một gốc nào đó. Phương pháp này sẽ khiến tính chất song song với các trục X hoặc Y không còn được bảo toàn giống như phép dịch chuyển nhưng độ lớn của góc sẽ được bảo toàn. Khi ta có 3 điểm bất kì trong ảnh gốc tạo thành một tam giác thì qua biến đổi bằng phép xoay ảnh, tam giác do chúng tạo ra sẽ đồng dạng với tam giác ban đầu. Ma trận xoay ảnh có dạng sau: 𝑀 = ( ) ( ) ( ) ( ) (2.4) - Phương pháp lật ảnh (Flip): ảnh được lật (lấy đối xứng) theo chiều dọc hoặc chiều ngang nhưng không làm thay đổi ý nghĩa của ảnh. Ví dụ: trái bóng có thể lật theo cả chiều dọc và ngang nhưng số 6, số 9 hoặc số 8 thì không thể.
  • 35. 35 - Phương pháp cắt ngẫu nhiên (Random crop): cắt một phần ngẫu nhiên của bức ảnh nhưng vẩn giữ lại phần chính cần nhận diện. Nếu cắt mất phần cần nhận diện thì giá trị nhãn không còn chính xác. - Phương pháp chuyển đổi màu (Color shift): thêm giá trị vào ba kênh màu RGB tạo ra ảnh bị nhiễu. - Phương pháp thay đổi độ tương phản (Constrast change): thay đổi độ tương phản, độ bão hòa của bức hình. Trên đây tác giả chỉ nêu một số phương pháp thường dùng để tăng cường ảnh, ngoài ra còn rất nhiều phương pháp khác được áp dụng tùy thuộc vào từng loại dữ liệu nhằm giúp tăng dữ liệu đầu vào của mô hình. Tuy nhiên, trong điều kiện cho phép, việc tăng dữ liệu đầu vào bằng cách thu thập dữ liệu thực tế vẫn là phương pháp tốt nhất. 2.2 NHẬN DIỆN ĐỐI TƯỢNG (OBJECT DETECTION) Nhận diện đối tượng[7] là một thuật ngữ dùng để chỉ một chuỗi bao gồm các tác vụ về thị giác máy tính (computer vision) liên quan đến việc xác định, phân loại, định vị ... các đối tượng (object) trong ảnh kỹ thuật số. Phân loại hình ảnh [7](image classification) là việc dự báo nhãn của một đối tượng trong ảnh kỹ thuật số. Định vị đối tượng[7] (oject localication) liên quan đến việc xác định vị trí của đối tượng trong ảnh kỹ thuật số và vẽ khung bao (bounding box) xung quanh chúng. Phát hiện đối tượng [7](oject detection) kết hợp cả hai tác vụ trên và thực hiện cho một hoặc nhiều đối tượng trong ảnh kỹ thuật số. Chúng ta có thể phân biệt giữa ba tác vụ thị giác máy tính cơ bản này trên thông qua ngõ vào (input) và ngõ ra (output) như sau: - Phân loại hình ảnh (image classification): Dự báo nhãn của một đối tượng trong ảnh kỹ thuật số. + Ngõ vào: Một ảnh và một đối tượng, (ví dụ ảnh một quả cam). + Ngõ ra: Nhãn đối tượng (ví dụ: một hoặc nhiều số nguyên được ánh xạ tới nhãn đối tượng).
  • 36. 36 - Định vị đối tượng (oject localication): Xác định các đối tượng trong ảnh và cho biết vị trí của chúng bằng khung bao (bounding box). + Ngõ vào: Một ảnh kỹ thuật số có một hoặc nhiều đối tượng, ví dụ ảnh chụp một giỏ trái cây. + Ngõ ra: Một hoặc nhiều khung bao (bounding box) bao gồm chiều dài và chiều rộng, tọa độ tâm. - Phát hiện đối tượng (oject detection): Xác định vị trí của các đối tượng trong khung bao (bounding box) và dự báo nhãn của các đối tượng nằm trong một ảnh. + Ngõ vào: Một ảnh kỹ thuật số có một hoặc nhiều đối tượng, ví dụ ảnh một đàn gia súc. + Ngõ ra: Một hoặc nhiều khung bao (bounding box) và nhãn dư báo cho mỗi khung bao. Một số định nghĩa khác cũng rất quan trọng trong thị giác máy tính là phân đoạn đối tượng[6] (object segmentation), trong đó đối tượng được chỉ ra bằng cách làm nổi bật các điểm ảnh cụ thể của chúng thay vì bằng khung bao (bounding box). Và chú thích hình ảnh (image captioning) là sự kết hợp giữa các kiến trúc mạng tích chập (CNN) và mạng hồi quy (LSTM) để đưa ra các chú thích về nội dung hoặc hành động của một bức ảnh.
  • 37. 37 Hình 2.3: Sơ đồ các tác vụ của thị giác máy tính [7] Chúng ta cũng có thể hiểu nhận diện đối tượng (object recognition) tương tự như phát hiện đối tượng(object detection) theo một cách gần đúng nào đó. Gần đây, nhận diện đối tượng đã trở thành một phần của của cuộc thi ILSVRC[5], đây là một trong những cuộc thi nhận diện ảnh lớn nhất. Thêm một điểm khác biệt giữa mô hình phân loại ảnh so với mô hình nhận diện ảnh là mô hình phân loại ảnh có hàm mất mát loss function chỉ dựa trên sai số giữa nhãn thực tế và nhãn dự báo trong khi mô hình phát hiện đối tượng đánh giá dựa trên sai số giữa khung hình dự báo và sai số nhãn dự báo so với thực tế[5]. 2.3 MẠNG HỌC SÂU Các mô hình phát hiện đối tượng dựa trên kiến trúc mạng Region-Based Convolutional Neural Network (R-CNNs) gồm các lớp mô hình: R-CNN, Fast R-CNN và Faster R-CNN là các mô hình cơ bản, tốc độ xử lý thấp. Thuật toán dựa trên 2 phần xử lý riêng biệt là phát hiện các khu vực đề xuất (region proposal) và phân loại hình ảnh. Đặc điểm chung của các mô hình này là tốc độ xử lý chậm, không thích hợp cho việc nhận dạng đối tượng theo thời Nhận dạng đối tượng Phân loại hình ảnh Định vị đối tượng Phát hiện đối tượng Phân đoạn đối tượng
  • 38. 38 gian thực. Các mạng như SSD và YOLOv2, YOLOv3 là những kiến trúc mạng có tốc độ xử lý tốt hơn nhưng vẫn đảm bảo độ chính xác do các thay đổi trong kiến trúc mạng giúp thực hiện việc phát hiện và phân loại vật thể trong 1 lần đồng thời lược bỏ được các kết nối không cần thiết[8]. Nhìn chung, các kiến trúc nhận diện đối tượng đều dựa trên một mạng tích chập sâu chẳng hạn như Alexnet hoặc VGG16 ở giai đoạn ban đầu giúp trích lọc các đặc trưng và phát hiện các vùng đề xuất. Sau đó thuật toán được phát triển nhằm tìm ra khung bao và độ tin cậy của đối tượng chứa trong khung bao đó. Tùy vào cách xây dựng mà các mô hình có thể nằm cùng trong một mô hình hoặc theo dạng đường ống (pipeline). Tốc độ của mỗi mô hình phụ thuộc nhiều vào số lượng khung bao mà nó tạo ra. Bảng 2.1: So sánh tốc độ và độ chính xác giữa các mô hình nhận diện vật thể (source: table 7 - SSD: Single Shot MultiBox Detector) Phương pháp mAP FPS Batch size # Boxes Độ phân giải đầu vào Faster R – CNN (VGG16) 73.2 7 1 ~6000 ~1000 x 600 Fast YOLO YOLO (VGG16) 52.7 66.4 155 21 1 1 98 98 448 x 448 448 x 448 SSD300 SSD512 SSD300 SSD512 74.3 76.8 74.3 76.8 46 19 59 22 1 1 8 8 8732 24564 8732 24564 300 x 300 512 x 512 300 x 300 512 x 512 Ta thấy các mô hình SSD với kích thước đầu vào của ảnh là 300 x300 x3 (SSD300) hoặc 512 x 512 x 3 (SSD500) có độ chính xác mAP là rất cao trong khi tốc độ realtime gần đạt mức khoảng 22 fps. Mô hình SSD [8]sẽ là kết hợp của 2 bước:  Trích xuất các feature map từ mạng CNN.  Áp dụng convolutional filters (hoặc kernel filters) để phát hiện vật thể trên các feature map có độ phân giải (revolution) khác nhau.
  • 39. 39 Hình 2.4: Cách chia biểu đồ đặc trưng (feature map) để nhận diện ảnh với những kích cỡ khác nhau[8]. Mô hình SSD cần đầu vào là một ảnh và các khung chuẩn (ground truth boxes) dùng để xác định vị trí khung bao (bounding box) xung quanh các vật thể cần nhận diện trong quá trình huấn luyện. Trong quá trình này, trên mỗi một biểu đồ đặc trưng, ta tính toán các khung mặc địn (default boxes) tương ứng với các tỷ lệ khung hình khác nhau (aspect ratio) lên các biểu đồ đặc trưng có kích thước (scales) khác nhau (chẳng hạn kích thước 8x8 và 4x4 trong hình (b) và (c)). Đối với mỗi default box (các boxes nét đứt trong hình) ta cần dự báo một phân phối xác suất tương ứng với các lớp. Tại thời điểm huấn luyện, đầu tiên chúng ta cần match default boxes với ground truth boxes sao cho mức độ sai số được đo lường qua localization loss là nhỏ nhất (thường là hàm Smooth L1). Sau đó ta sẽ tìm cách tối thiểu hóa sai số của nhãn dự báo tương ứng với mỗi vật thể được phát hiện trong default boxes thông qua confidence loss (thường là hàm softmax). Như vậy loss function của object detection sẽ khác với loss function của các tác vụ image classification ở chỗ có thêm localization loss về sai số vị trí của predicted boxes so với ground truth boxes.
  • 40. 40 Chương 3 PHƯƠNG PHÁP ĐỀ XUẤT Dựa trên các kiến thức tổng quát đã tìm hiểu bên trên, tác giả tiến hành các bước để thực hiện mục tiêu đã đề ra như sau: - Tìm hiểu các kiến thức liên quan đến mục tiêu đã đề ra. - Thu thập dữ liệu, sử dụng các phương pháp xử lý ảnh để tạo ra tập dữ liệu đầu vào đồng thời áp dụng phương pháp tăng cường ảnh để tăng dữ liệu huấn luyện. - Xây dựng mô hình huấn luyện, dùng mô hình đã qua huấn luyện (pre-trained) để giảm thời gian huấn luyện, đồng thời dùng phương pháp transfer learning, đóng băng trọng số, fine turning nhằm tăng độ chính xác của mô hình. - Sau đó tiến hành chạy thử. - Sử dụng các công cụ của Matlab để đánh giá mô hình. - So sánh với mục tiêu đề ra. - Tiến hành điều chỉnh thông số mô hình và tập dữ liệu để kết quả gần với mục tiêu đề ra nhất. - Đánh giá, kết luận. 3.1 TẬP DỮ LIỆU Sử dụng tập dữ liệu DeepPCB dataset [9] của Sanli Tan gồm 1.500 cặp hình ảnh, mỗi cặp bao gồm một hình ảnh mẫu có lỗi và một hình ảnh đã được kiểm tra căn chỉnh bao gồm vị trí của 6 loại lỗi PCB phổ biến nhất: : đường mạch bị ăn mòn quá mức (Mousebite), bị thừa (Spur), ăn mòn chưa hết (Cooper), bị rỗ (Pinehole). File ảnh có tên *-test.jpg là ảnh có lỗi, file ảnh có tên *-template.jpg là ảnh không có lỗi. Các lỗi này được lưu dưới dạng (x1 y1 x2 y2 a) với (x1 y1) là tọa độ góc trên bên trái, (x2 y2) là tọa độ góc dưới bên phải, a là ký hiệu của lỗi theo thứ tự open (1), short (2), mousebite (3), spur (4), copper (5), pinehole (6) và được lưu dưới dạng file *.text trong thư mục *-not.
  • 41. 41 (a) Hình 3.1 (a) ảnh *_test, (a) lỗi bị thừa, (b) lỗi dư đồng, (c) lỗi ăn mòn quá mức, (d) lỗi dính mạch, (e) lỗi rổ mạch, (f) lỗi đứt mạch. Tuy nhiên, Matlab lại định dạng theo kiểu (x1 y1 width height) với (x1 y1) là vị trí bên trái, góc phái trên, width và height lần lượt là độ rộng và độ cao của ảnh. Do đó, khi dữ liệu đọc từ file *.text có dạng (x1 y1 x2 y2) ta cần thực hiện bước chuyển đổi để phù hợp với kiểu dữ liệu của Matlab. Khi đó ta có dạng sau (x1 y1 x2-x1 y2-y2). Ta sẽ thực hiện các bước để tạo ra file data.mat có định dạng table gồm 7 cột như sau: cột 1 chứa đường dẫn trỏ đến vị trí file ảnh , 6 cột còn lại là tên sáu lỗi cần nhận diện chứa vecter tọa độ của lỗi đó theo định dạng của Matlab. (a) (b) (c) (d) (e) (f)
  • 42. 42 Path open short mousebite 1 D:Test00041000_test.jpg' [539,259,53,57] [454,300,39,96] [466,441,27,29] 2 D:Test00041004_test.jpg' [469,438,38,27] [429,279,29,94] [465,173,30,29] 3 D:Test00041006_test.jpg' [292,430,46,57] [135,154,56,29] [281,233,32,40] 4 D:Test00041010_test.jpg' [202,402,57,43] [87,84,49,26] [80,179,39,25] 5 D:Test00041013_test.jpg' [161,341,65,40] [552,359,36,33] [279,337,38,29] 6 D:Test00041014_test.jpg' [521,494,30,32] [514,342,47,26] 3x4 double Hình 3.2 Nội dung của file data.mat 3.2 KIẾN TRÚC CỦA MÔ HÌNH Mô hình SSD [8] được xây dựng bao gồm một mạng cơ bản (base network) là một mạng học sâu đã được lược bỏ các kết nối đầy đủ (layers fully connected) ở giai đoạn ban đầu nhằm trích lọc các đặc điểm nhận dạng. Các bộ lọc tích chập (convolutional filter) với kích thước (3 x 3) được sử dụng trên các biểu đồ đặc trưng (features map) ở những lớp tiếp theo nhằm mục đích giảm kích thước của ảnh. Việc này giúp mô hình nhận diện được các hình ảnh ở nhiều kích thước khác nhau. Trên mỗi một ô (cell) của biểu đồ đặc trưng ta tạo ra một tập hợp các khung bao có tỉ lệ (scale) và tỉ lệ khung hình (aspect ratio) khác nhau. Tọa độ của các khung bao được sử dụng để dự báo giá trị bù (offsets) của khung hình bao quanh vật thể. Hình 3.3: Sơ đồ mô hình mạng SSD300
  • 43. 43 SSD là mạng tích chập dựa trên tiến trình lan truyền thuận từ một kiến trúc chuẩn có sẳn (chẳng hạn VGG16) để tạo ra một khối ngõ ra biểu đồ đặc trưng có 3 chiều ở giai đoạn ban đầu. Kiến trúc mạng này được gọi là mô hình mạng cơ bản (base network) từ lớp input Image đến lớp Conv7 như trong sơ đồ. Sau đó chúng ta sẽ xây dựng thêm những kiến trúc phía sau base network này để tiến hành nhiệm vụ nhận diện vật (các lớp trích xuất đặc trưng Extra Feature Layers trong hình 3.4). Các lớp này được diễn giải như sau: ● Các lớp của mô hình SSD: Input Layer: Đầu vào là các bức ảnh có kích thước (width x height x channels) = 300 x 300 x 3 đối với kiến trúc SSD300 (hoặc 500 x 500 x 3 đối với kiến trúc SSD500). Conv4_3 Layer: Chính là kiến trúc nền sử dụng mô hình của VGG16 nhưng đã loại bỏ một số kết nối đầy đủ ở phía cuối. Đầu ra của lớp này là Conv5_3 Layer và là một feature map có kích thước 38 x 38 x 512. Conv5_3 Layer: Ta có thể coi Conv5_3 là một feature map có kích thước 38 x 38 x 512. Ở đây ta sẽ áp dụng 2 biến đổi chính đó là: Dùng một lớp tích chập như một mạng nơron tích chập (CNN) thông thường để thu được ngõ ra cho lớp tiếp theo. Cụ thể lớp tích chập này có bộ lọc tích chập có kích thước 3 x 3 x 1024, đầu ra thu được lớp Conv6 có kích thước là 19 x 19 x 1024. Đồng thời, ở đây ta cũng áp dụng một lớp phân loại (classifer như trong sơ đồ) và cũng dựa trên bộ lọc tích chập kích thước 3 x 3 để nhận diện vật thể với đặc điểm đã trích xuất trên feature map. Quá trình khá phức tạp vì nó vừa phải đảm bảo phát hiện vật thể (thông qua phát hiện các khung bao) vừa phân loại vật thể. Đầu tiên feature map kích thước 38 x 38 x 512 sẽ được phân chia thành một lưới (grid cell) kích thước 38 x 38 (việc tính tích chập trên toàn bộ độ sâu giúp bỏ qua độ sâu ở bước này). Sau đó mỗi ô trên lưới sẽ tạo ra 4 khung bao với các tỷ lệ khung hình (aspect ratio) khác nhau, đối với mỗi một khung bao ta cần tìm các tham số sau: phân phối xác suất của nhãn
  • 44. 44 là một véc tơ có n_classes + 1 chiều (Lưu ý số lượng đối tượng cần nhận diện (classes) luôn cộng thêm 1 cho background). Đồng thời chúng ta tính cần thêm 4 tham số bù (offsets) để xác định khung bao của vật thể trong ảnh. Do đó trên một khung bao sẽ có n_classes + 4 tham số và trên 1 ô sẽ có 4*(n_classes+4) ngõ ra cần dự báo. Nhân với số ô của Conv4_3 để tính được số lượng ngõ ra là một ma trận kích thước 38 x 38 x 4 x (n_classes+4), trong trường hợp xem background cũng là 1 nhãn thì ma trận sẽ có kích thước 38 x 38 x 4 x (n_classes+5). Và số lượng các khung bao được sản sinh ra là 38 x 38 x 4. Quá trình áp dụng cách phân loại lên feature map cũng tương tự với các lớp mạng Conv7, Conv8, Conv9, Conv10, Conv11. Mô hình của các lớp mạng phía sau sẽ phụ thuộc vào cách thức áp dụng tích chập ở lớp mạng trước, kích thước bộ lọc (như trong sơ đồ thì kernel_size luôn là 3 x 3) và độ lớn bước nhảy (stride) của tích chập là 1. Trên mỗi ô thuộc feature map chúng ta sẽ xác định một lượng 4 hoặc 6 các khung bao. Do đó, số lượng các khung bao sản sinh ra ở các lớp mạng tiếp theo lần lượt như sau: Lớp tích chập Conv7: 19*19*6 = 2166 khung (6 khung /ô) Lớp tích chập Conv8: 10*10*6 = 600 khung (6 khung /ô) Lớp tích chập Conv9: 5*5*6 = 150 khung (6 khung /ô) Lớp tích chập Conv10: 3*3*4 = 36 khung (4 khung /ô) Lớp tích chập Conv11: 1×1×4 = 4 boxes (4 boxes/cell) Tổng số lượng các khung ở ngõ ra sẽ là: 8732.Tức là chúng ta cần phải dự đoán nhãn cho khoảng 8732 khung hình ở ngõ ra. Áp dụng các feature map với các kích thước khác nhau: Sau khi thu được biểu đồ đặc trưng (feature map) ở mô hình mạng cơ bản (base network). Chúng ta sẽ tiếp tục thêm các lớp tích chập. Những lớp này sẽ nhằm giảm kích thước của biểu đồ đặc trưng (feature map) từ đó giúp làm số khung hình cần dự báo giảm đi và có thể dự báo cũng như nhận diện vật thể với nhiều kích thước cũng như hình dạng khác nhau. Những biểu đồ đặc trưng
  • 45. 45 (feature map) này nếu có kích thước nhỏ sẽ phát hiện tốt các vật thể lớn, nếu kích thước lớn giúp phát hiện tốt các vật thể nhỏ . Dự báo thông qua mạng tích chập đối với object: Mỗi một feature layer thêm vào ở Extra Features Layers sẽ tạo ra một tập hợp cố định các output giúp nhận diện vật thể trong ảnh thông qua áp dụng các convolutional filters. Kích thước ở đầu ra (with x height x chanel) ở mỗi loại kích thước feature layer sẽ phụ thuộc vào kernal filters và được tính toán hoàn toàn tương tự như đối với mạng neural tích chập thông thường. Default box và tỷ lệ cạnh (aspect ratio): Chúng ta cần liên kết một tập hợp default bounding boxes với mỗi một cell trên feature map. Các default boxes sẽ phân bố lát gạch trên feature map theo thứ tự từ trên xuống dưới và từ trái qua phải để tính tích chập, do đó vị trí của mỗi default box tương ứng với cell mà nó liên kết là cố định tương ứng với một vùng ảnh trên bức ảnh gốc. Cụ thể như hình ảnh minh họa bên dưới:
  • 46. 46 Hình 3.4: Vị trí của các khung bao trên bức ảnh gốc khi áp dụng trên feature map có kích thước 4 x 4. Vậy lưới có kích thước là 4 x 4 và mỗi ô ta cần xác định 4 khung bao khác nhau như hình vẽ. Tâm của các khung bao này trùng nhau và có tọa độ là tâm của các ô cùng liên kết. Tại mỗi một default bounding box của feature map chúng ta dự báo 4 offsets tương ứng với một tọa độ và kích thước của nó. 4 offsets ở đây được hiểu là một tọa độ gồm 4 tham số (cx,cy,w,h). Trong đó (cx, cy) giúp xác định tâm và là kích thước dài rộng của bounding box. Thành phần thứ 2 được dự báo là điểm số của bounding box tương ứng với mỗi class. Lưu ý ta sẽ có thêm một class thứ C+1 để đánh dấu trường hợp default bounding box không có vật thể (hoặc rơi vào background). - Ví dụ đối với một feature map có kích thước m x n tương ứng với p channels (chẳng hạn như kích thước 8 x 8 hoặc 4 x 4), một kernel filter kích thước 3 x 3 x p sẽ được áp dụng trên toàn bộ feature layer. - Các giá trị trong kernel này chính là các tham số của mô hình và được tinh chỉnh trong quá trình training. - Các kernel filter sẽ dự đoán đồng thời xác suất nhãn và kích thước offset tương ứng với tọa độ của default box. - Với mỗi location (hoặc cell) nằm trên feature map ta sẽ liên kết nó với k bounding boxes. Các boxes này có kích thước khác nhau và tỷ lệ cạnh khác nhau. - Với mỗi một bounding box, chúng ta tính được phân phối điểm của C classes là c= (c1, c2, …, cc) và 4 offsets tương ứng với kích thước ban đầu của default bounding box. - Kết quả cuối cùng ta thu được (C+4) x mnk outputs. Các default box của chúng ta tương tự như anchor boxes trong mạng faster R-CNN nhưng được áp dụng trên một vài feature maps với những độ phân giải khác nhau. Điều này cho phép các default bounding box phân biệt hiệu quả kích thước vật thể khác nhau.
  • 47. 47 3.3 QUÁ TRÌNH HUẤN LUYỆN Ảnh đầu vào là tập dữ liệu DeepPCB Dataset gồm 1500 ảnh xám 640 x 640 (640*640 pixels, 8 bit deep) và 1500 tập tin text chứa vị trí các lỗi của từng ảnh. Do đó , phần tiền xử lý ta cần chỉnh lại kích thước ảnh cho phù hợp với ngõ vào của mô hình. Đồng thời dùng phương pháp học tăng cường để tăng dữ liệu đầu vào gồm phương pháp xoay ảnh, dịch ảnh, ... như đã nói ở phần tổng quan. Hình 3.5 thể hiện ảnh gốc và các ảnh sau khi dùng phép dịch ảnh, phép xoay ảnh. Tọa độ các khung bao chỉ vị trí lỗi thay đổi theo nhưng không bị sai lệch thông tin. (a)
  • 48. 48 (b) Hình 3.5: ảnh gốc đã được gắn nhãn (a) và ảnh sau khi được tăng cường (b) bằng phương pháp xoay ảnh và dịch ảnh. Chiến lược lập bản đồ khung bao (mapping default box): Suốt trong quá trình huấn luyện ta cần lập bản đồ khung bao có tỷ lệ khung hình khác nhau với khung bao chuẩn (ground truth box). Để lập được bản đồ của chúng với nhau ta cần đo lường chỉ số IoU (Intersection of Union) hoặc chỉ số chồng chéo (Jaccard overlap index) dùng để tính tỷ lệ diện tích giao nhau giữa 2 vùng hình ảnh so với tổng diện tích (không bao gồm phần giao nhau) của chúng. Chúng ta sẽ lựa chọn các khung bao phù hợp với bất kì khung bao chuẩn (ground truth box) nào có ngưỡng(threshold) > 0.5. Do trên mỗi ô chỉ qui định một số lượng nhất định các khung bao (4 hoặc 6, tùy từng bản đồ đặc tính (feature map)). Trên thực tế, hầu như số lượng này được xác định từ trước để giảm thiểu sự đa dạng về số lượng khung bao/ô mà vẫn bao phủ được hầu hết các vật thể. Việc xác định tập hợp các khung bao phải đảm bảo sao cho mỗi một khung bao chuẩn bất kì đều có thể tìm được một khung bao mặc định gần nó nhất. Vì vậy cần một thuật toán
  • 49. 49 thực hiện được trên tỉ lệ khung hình của mỗi ảnh chuẩn (ground truth image) nhằm phân cụm các khung bao chuẩn thành các nhóm tương đồng về hình dạng. Tâm của các nhóm này (còn gọi là trọng tâm (centroids)) sẽ được dùng làm các giá trị tỉ lệ khung hình đại diện để tính khung bao mặc định. Huấn luyện để tìm ra đối tượng: Việc dự đoán các đối tượng sẽ được thực hiện trên tập hợp các khung hình đầu ra của mô hình SSD. Đặt 𝑥 = 0,1 là chỉ số đánh giá cho việc mapping giữa khung bao thứ i với khung bao chuẩn (ground truth box) thứ j đối với nhãn thứ k. Trong quá trình mapping chúng ta có thể có nhiều bounding box được map vào cùng 1 khung bao chuẩn với cùng 1 nhãn dự báo nên tổng ∑ 𝑥 ≥ 1. Hàm loss function là tổng có trọng số của localization loss (loc) và confidence loss (conf): L(x, c, p, g) = L (x, c)+∝ L (x, p, g) (3.1) Trong đó N là số lượng các khung mặc định phù hợp với khung chuẩn. Ta nhận thấy giá trị của hàm loss function của SSD gần như trùng khớp với mô hình faster R-CNN và có 2 thành phần: Hàm mất mát Localization loss: là hàm Smooth L1 đo lường sai số giữa tham số của khung dự báo (predicted box) (p) và khung chuẩn (g) như công thức (3.2). Chúng ta sẽ cần hồi qui các giá trị bù (offsets) cho tâm, khung bao mặc định (x, y) và giá trị chiều rộng w và chiều dài h. 𝐿 (𝑥, 𝑝, 𝑔) = ∑ ∑ 𝑥 𝐿 ∈{ , , , } (𝑝 − 𝑔 ) ∈ (3.2) Như vậy hàm mất mát này chỉ xét trên các phù hợp đúng (positive matching) (i∈Pos) giữa khung bao dự đoán (predicted bounding box) với khung bao chuẩn . Nếu IoU>0,5 thì được coi là phù hợp đúng (tức khung bao dự đoán chứa vật thể). Ngược lại, nếu IoU<0,5 ta sẽ bỏ qua và xóa các khung bao dự đoán này khỏi hình ảnh. Thành phần ∑ 𝑥 𝐿 ∈{ , , , } (𝑝 − 𝑔 ) chính là tổng khoảng cách giữa khung chuẩn (g) và khung dự đoán (p) trên 4 giá trị bù (x,y,w,h). Các giá trị tọa độ kích thước và tâm của khung hình cần chuẩn hóa kích thước, nếu không sẽ rất khó để xác định đúng sai số.
  • 50. 50 Ví dụ về sai số trong trường hợp ảnh bé và ảnh lớn. Trong trường hợp ảnh bé, tâm giữa khung dự đoán và khung chuẩn có thể có sai số bé nhưng không có nghĩa rằng khung dự đoán và khung chuẩn của ảnh bé là rất khớp nhau. Chúng có thể cách nhau rất xa. Còn trường hợp ảnh lớn có khung dự đoán và khung chuẩn khớp nhau hơn trường hợp khung hình bé. Tuy nhiên do ảnh quá to nên khoảng cách tâm của chúng sẽ lớn hơn. Vì vậy cần có bước chuẩn hóa kích thước chiều rộng, chiều dài và tâm sao cho không có sự khác biệt trong trường hợp ảnh bé và lớn. Một phép chuẩn hóa các giá trị bù được thực hiện như sau: - Các giá trị 𝑔 sẽ được tính toán thông qua kết quả đo lường sự chênh lệch khoảng cách tâm và sự thay đổi kích thước chiều rộng và chiều dài giữa khung chuẩn và khung mặc định. Hình bên dưới sẽ làm rõ hơn cách tính 𝑔 : Hình 3.6: Hình chữ nhật màu đỏ đại diện cho khung bao mặc định kích thước là (dw, dh), tọa độ tâm của khung bao mặc định là (dx, dy).Hình chữ nhật màu đen đại diện cho khung chuẩn, kích thước là (gw,gh), tâm là (gx, gy). Khi đó để chuyển từ tâm của khung bao mặc định sang tâm của khung chuẩn ta cần 1 phép dịch chuyển tuyến tính các khoảng (dwtx, dhty). Kích thước các chiều rộng và chiều dài khung chuẩn bằng kích thước khung bao mặc định nhân số lần (𝑒 , 𝑒 ).
  • 51. 51 - Khoảng cách tâm (px, py) của khung dự đoán so với tâm (dx, dy) của khung mặc định: 𝑔 = ≜ 𝑡 (3.3) 𝑔 = ≜ 𝑡 (3.4) - Tỉ lệ theo chiều rộng và chiều dài (ph, pw) của khung dự đoán so với chiều rộng và chiều dài (dw, dh) của khung chuẩn là: 𝑔 = 𝑙𝑜𝑔 ≜ 𝑡 (3.5) 𝑔 = 𝑙𝑜𝑔 ≜ 𝑡 (3.6) - Kí hiệu ≜ có nghĩa là đặt vế phải bằng vế trái. Ta thấy các giá trị tx,ty,tw,th là các tham số dùng để tinh chỉnh kích thước của khung bao có khoảng giá trị trong đoạn (−∞, +∞). - Nếu các giá trị của tx, ty càng lớn thì khoảng cách giữa 2 tâm của khung chuẩn và khung mặc định càng lớn. Gía trị của tw, th càng lớn, sự chêch lệch kích thước về chiều rộng và chiều dài giữa khung chuẩn và khung mặc định càng lớn. - Ta gọi giá trị bộ tham số (tx, ty,tw,th) là bộ tham số chuẩn hóa kích thước của khung chuẩn theo khung mặc định. Dùng cách tương tự chúng ta cũng tính được bộ tham số chuẩn hóa kích thước của khung dự đoán theo khung mặc định bằng cách thay gm bằng pm vào trong các phương trình bên trên. - Khi đó khoảng cách giữa khung dự đoán và khung chuẩn sẽ càng gần nếu khoảng cách giữa các bộ tham số chuẩn hóa giữa chúng càng gần. Tức khoảng cách giữa 2 vector p và 𝑔 càng nhỏ càng tốt. - Khoảng cách này được tínhg thông qua hàm 𝐿 là một kết hợp giữa hàm norm chuẩn bậc 1 (khi giá trị tuyệt đối của x lớn) và hàm norm chuẩn bậc 2 (khi giá trị tuyệt đối của x nhỏ) bằng công thức dưới đây: 𝐿 = 0,5𝑥 𝑖𝑓 |𝑥| < 1 |𝑥| − 0,5 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 (3.7) - Trường hợp x là một vector thì x ở vế phải được thay bằng giá trị hàm norm chuẩn bậc 1 của x kí hiệu là |𝑥|.
  • 52. 52 Việc lựa chọn hàm mất mát là smooth L1 như trên để giá trị của đạo hàm cố định khi |𝑥| lớn và tuyến tính khi x nhỏ. Trong phương trình của hàm mất mát localization loss, các hằng số biết trước là 𝑔 . Biến p là biến cần tìm giá trị tối ưu. Ta sẽ tính ra được khung dự đoán sau khi tìm được giá trị tối ưu của p nhờ vào phép chuyển đổi từ khung mặc định tương ứng. Hàm mất mát Confidence loss [4]: là một hàm mất mát được tính toán dựa trên việc trừ điểm khi dự báo nhãn. Đối với mỗi một dự đoán đúng nhãn đúng (positive match prediction), chúng ta sẽ trừ hàm mất mát loss function theo điểm (confidence score) của các nhãn tương ứng. Đối với mỗi một dự đoán đúng nhãn sai (negative match prediction), chúng ta trừ hàm mất mát loss function theo điểm (confidence score) của nhãn ‘0’ là nhãn đại diện cho nhãn ảnh nền (background) không chứa vật thể. Hàm mất mát confidence loss có công thức như bên dưới: 𝐿 (𝑥, 𝑐) = − ∑ 𝑥 𝑙𝑜𝑔(𝑐̂ ) − ∑ 𝑙𝑜𝑔(𝑐̂ ) ∈ ∈ (3.8) Trong trường hợp dự báo đúng nhãn đúng thì vùng dự báo sẽ chứa vật thể. Vì vậy việc dự báo nhãn cho sẽ giống như một bài toán phân loại với hàm kích hoạt softmax thông thường có dạng -∑ 𝑥 𝑙𝑜𝑔(𝑐̂ ) ∈ . Trong trường hợp dự báo đúng nhãn sai tức vùng được dự báo không chứa vật thể chúng ta sẽ chỉ có một nhãn duy nhất là 0. Và khi ta đã biết khung bao không chứa vật thể nên tỉ lệ để xảy ra nhóm 0 là 𝑥 = 1. Khi đó hàm kích hoạt softmax được tính như sau − ∑ 𝑙𝑜𝑔(𝑐̂ ) ∈ . Hàm mất mát loss function cuối cùng là tổng của cả hai hàm mát mát confidence loss và localization loss như (3.1). Lựa chọn tỉ lệ (scales) và tỷ lệ khung hình (aspect ratio): Các khung bao maặc định được lựa chọn thông qua tỉ lệ khung hình và tỉ lệ (scale). Mô hình SSD sẽ xác định một tỷ lệ (scale) tương ứng với mỗi một biểu đồ đặc trưng (features map) trong lớp trích xuất đặc trưng (Extra Feature Layers). Lớp tích chập Conv4_3 bên trái sẽ phát hiện các vật thể tại các tỉ lệ scale nhỏ nhất là 𝑠 = 0,2 (đôi khi là 0.1) và sau đó gia tăng tuyến tính để lớp cuối cùng ở phía bên phải có scale là 𝑠 = 0,9 theo công thức:
  • 53. 53 𝑠 = 𝑠 + (𝑘 − 1), 𝑘 ∈ [1, 𝑚] (3.9) Với k là số thứ tự của các lớp. Kết hợp giữa giá trị scale với tỉ lệ khung hình chúng ta sẽ tính được chiều rộng và chiều dài của khung mặc định. Với các lớp có 6 dự báo, SSD sẽ tạo ra 5 khung mặc định với các tỉ lệ khung hình lần lượt là: 1, 2, 3, 1/2, 1/3. Sau đó chiều rộng và chiều dài của khung mặc định được tính theo công thức: w = scale ∗ aspect ratio (3.10) h = (3.11) Trong trường hợp tỉ lệ khung hình = 1 thì ta sẽ thêm một khung bao mặc định thứ 6 với tỉ lệ được tính theo công thức: 𝑠 = 𝑠 𝑠 (3.12) Để huấn luyện một mô hình từ đầu tốn rất nhiều tài nguyên (thời gian, dữ liệu, máy móc...) mà kết quả chưa chắc đã đạt mục tiêu đề ra. Vì vậy, thường người ta sẽ dựa trên một mô hình có sẵn, đã được huấn luyện trước, thực hiện một số thay đổi nhỏ rồi huấn luyện với một bộ dữ liệu khác, nhỏ hơn, thời gian ít hơn nhưng vẫn đạt kết quả mong muốn. Khi đó việc lựa chọn tốc độ học (learning rate), số lần học lại (epoch) và phương pháp học chuyển đổi (transfer learning) [10] sẽ giúp thực hiện mục tiêu trên hiệu quả hơn. Tốc độ học (learning rate): Tốc độ học (hoặc kích thước bước là mức độ thay đổi/cập nhật đối với trọng số mô hình trong quá trình huấn luyện lan truyền ngược. Độ lớn của tốc độ học có ảnh hưởng đến tốc độ hội tụ của hàm loss, tốc độ học thường được chỉ định là giá trị dương nhỏ hơn 1.0. Theo Barreto[11], Li[12] và các cộng sự , việc lựa chọn tốc độ học không phù hợp có thể gây ra các vần đề sau:
  • 54. 54 Hình 3.7: Ảnh hưởng của tốc độ học đối với hàm loss. - Nếu tốc độ học quá bé, mô hình mất nhiều thời gian mới tiến đến điểm cực tiểu của hàm loss. - Nếu tốc độ học quá lớn, mô hình không thể đạt được cực tiểu của hàm loss. - Chỉ khi tốc độ học phù hợp thì mô hình mới đạt được cực tiểu của hàm loss với thời gian ngắn. Có nhiều phương pháp để tìm tốc độ học phù hợp như sau: - Phương pháp thủ công: chọn một giá trị ban đầu không quá nhỏ, ví dụ:0,1. Sau đó giảm dần để tìm ra vùng khiến cho hàm loss giảm nhỏ. Tiếp tục thay đổi giá trị trong vùng đó để tìm được vùng nhỏ hơn. Chú ý là tốc độ học thường nằm trong vùng [0;0,1] chứ không nằm trong vùng [0,1;1], nên khi giảm, ta thường chọn các giá trị 0,01; 0,001; 0,0001 ... - Phương pháp điều chỉnh theo hàm loss: tốc độ học được tăng dần theo từng batch iteration và theo dõi sự thay đổi của hàm loss. Theo hình 3.8, ta thấy có ba trường hợp xảy ra: + Tốc độ học quá thấp thì hàm loss gần như nằm ngang. + Tốc độ học phù hợp thì hàm loss giảm nhanh. + Tốc độ học quá lơn thì hàm loss dao động thất thường.
  • 55. 55 Hình 3.8: Mối quan hệ giữa tốc độ học và hàm loss. - Phương pháp giảm tốc độ học theo thời gian huấn luyện (Learning rate decay): giúp tránh trường hợp tốc độ học quá lớn khi trọng số mô hình dần đi vào hội tụ. Khi chọn giá trị learninng rate lớn mô hình không thể đạt được giá trị tối ưu, độ chính xác chỉ nằm trong khoảng 30%. Hình 3.9: So sánh ảnh hưởng của giá trị learning rate đối với mô hình
  • 56. 56 Khi giảm giá trị learing rate xuống 0.005 thì độ chính xác tiến dần đến 90%. Nếu dùng giá trị 0.001 kết quả ít thay đổi nhưng tốc độ huấn luyện mô hình sẽ lâu hơn. Phương pháp Transfer learning: Đây là phương pháp sử dụng các pretrained-model sẵn có, đã được training trên các tập dữ liệu lớn, trích xuất được các đặc điểm đặc trưng của các vật tương tự mà chúng ta cần nhận diện. Ở đây cụ thể là pretrained-model vgg16 đã nhận dạng chữ viết tay có thể được nên có thể dùng phương pháp Transfer learning để áp dụng vào nhận dạng lỗi PCB do chữ viết tay và đường mạch in có những nét tương đồng nhau. Hình 3.10: So sánh mô hình trước và sau khi áp dụng transfer learning [10]. Từ đồ thị ta có thể thấy sử dụng transfer learning sẽ mang lại 3 lợi thế chính: - Có điểm khởi đầu của độ chính xác tốt hơn (higher start). - Độ chính xác có tốc độ tăng nhanh hơn (higher slope). - Đường tiệm cận của độ chính xác tối ưu cao hơn (higher asymptote).
  • 57. 57 Hình 3.11: Pretrained-model được sử dụng để trích xuất đặc trưng. Một pretrained-model đã loại bỏ các lớp sau cùng (thường là các lớp phân loại) có thể được sử dụng để trích xuất các tính năng trong một mô hình khác với một tập dữ liệu khác[10]. Các mô hình mạng học sâu được đào tạo trên bộ dữ liệu ImageNet có thể được sử dụng để trích xuất các tính năng từ một bộ dữ liệu khác vì các bộ lọc chung đã học có thể được áp dụng trong các lĩnh vực khác. Điều quan trọng cần lưu ý là tất cả các trọng số từ pretrained-model cần được cố định và chỉ các lớp phân loại thêm vào mới cần được huấn luyện.
  • 58. 58 Hình 3.12: Quá trình training dùng pretrained-model VGG16 để trích xuất đặc trưng Trong hình 3.11 ta thấy khi dùng pretrained-model để huấn luyện thì mô hình hội tụ ở khoảng epoch 30-35. Để giảm thời gian huấn luyện, ta sẽ thực hiện phương pháp Transfer learning. Có nhiều cách để thực hiện việc này: - Warm up sẽ đóng băng lại các layers CNN để cho hệ số của chúng không đổi và chỉ train lại trên các Fully Conntected Layers ở cuối cùng. Mục đích của warm up là giữ nguyên được các đặc trưng bậc cao (high-level) đã được học từ pretrained-model mà những đặc trưng này là tốt vì được huấn luyện trên bộ dữ liệu có kích thước lớn hơn và có độ chính xác cao hơn so với khởi tạo hệ số ngẫu nhiên. - Mục đích chính của việc warm up model là để mô hình hội tụ nhanh hơn tới global optimal value. - Sau khi mô hình đạt ngưỡng tối ưu trên các Fully Connected Layers, sẽ rất khó để chúng ta tăng được thêm độ chính xác hơn nữa. - Lúc này chúng ta sẽ cần phá băng (unfrozen) các layers của base network và huấn luyện mô hình trên toàn bộ các layers từ pretrained-model. Quá trình này được gọi là fine turning. Hình 3.13: Fine turing một pretrained-model
  • 59. 59 Chúng ta sẽ thay thế lớp tích chập 2-D cuối cùng (replace the last 2-D convolutional layer) và lớp phân loại cuối cùng (final classification layer) của mạng bằng 2 layer mới có thông số phù hợp với tập dữ liệu cần huấn luyện. Kế tiếp đóng băng các trọng số (weight) của các lớp trước đó. Việc chọn đóng băng trọng số từ lớp đầu tiên đến lớp thứ mấy thì tùy thuộc vào mô hình mạng và kinh nghiệm của người thiết kế. Ở đây ta chọn đóng băng trọng số đến lớp conv5_1. Hình 3.14: Quá trình training dùng pretrained-model VGG16 để trích xuất đặc trưng có sử dụng fine turning Trong hình 3.14 ta thấy khi dùng pretrained-model để huấn luyện thì mô hình bắt đầu hội tụ ở khoảng epoch 10 với độ chính xác khoảng 80% và bắt đầu phân kỳ ở khoảng epoch 35 với độ chính xác khoảng 90%. Chọn giá trị learning rate và epoch: Do mô hình sử dụng pre-train model VGG16 đã đóng băng các trong số ở các lớp đầu và chỉ train lại trên các Fully Conntected Layers ở cuối cùng nên mô hình rất gần với vị trí cực tiểu của hàm loss. Từ kết quả phân tích các hình 3.7, 3.9, 3.12 và 3.14, để tăng độ chính xác và giảm thời gian huấn luyện, ta chọn learning rate là 0.005 và số epoch là 20.
  • 60. 60 Chương 4 KẾT QUẢ THỰC NGHIỆM 4.1 THÔNG SỐ HUẤN LUYỆN - Số vòng lặp (epoch): 20 - Tốc độ học (learning rate): 0, 005 - Bộ dữ liệu huấn luyện: bộ dữ liệu DeepPCB Dataset gồm có 1500 ảnh. - Kiến trúc mạng dùng để huấn luyện: SSD300 Các thông số này có được dựa vào các kết quả thực nghiệm dưới đây. Hình 4.1: Kiến trúc mạng SSD300 dùng để huấn luyện. Mô hình có 75 layer, 84 connection, ngõ vào là ảnh có kích thước 300 x 300, 6 ngõ ra vị trí các lỗi được nhận dạng.
  • 61. 61 4.2 KẾT QUẢ HUẤN LUYỆN Hình 4.2: Quá trình trainning Ta thấy mô hình bắt đầu hội tụ và đạt độ chính xác hơn 80% từ epoch thứ 3. Độ chính xác thay đổi rất nhỏ và gần như không đổi từ epoch thứ 5 trở đi. Để kiểm tra mô hình sau khi huấn luyện, tác giả sử dụng hai tập dữ liệu gồm một tập gồm 50 file là các ảnh nằm trong tập huấn luyện nhưng có tạo thêm một số lỗi và một tập gồm 10 ảnh chụp bằng camera Dino-lite Premier với độ phân giải 1.3 Mp trên các mạch in được thi công thực tế. Kết quả kiểm tra mô hình đạt được mAP=0,8 ứng với mIOU=0,5; lỗi được nhận dạng thể hiện trong hình 4.3 như sau:
  • 62. 62 (a) (b) (c) (d) Hình 4.3: (a) Ảnh nhị phân gốc, (b) nhận diện lỗi trên ảnh nhị phân, (c)Ảnh màu, (d) Lỗi dự đoán trên ảnh màu. Theo mục tiêu đề tài là phát hiện các lỗi này: - Đứt đường mạch (Open). - Nối tắt (Short). - Và một số lỗi ảnh hưởng đến chất lượng mạch như : đường mạch bị ăn mòn quá mức (Mousebite), bị thừa (Spur), ăn mòn chưa hết (Cooper), bị rỗ (Pinhole) với tỉ lệ sản phẩm/mẫu bé (không cần file mạch in gốc để đối chiếu).” Vậy kết quả ở phần này phải thể hiện được hệ thống đánh giá được các lỗi này thể hiện rằng mô hình đã đạt được có hiệu quả.
  • 63. 63 Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 KẾT LUẬN Đề tài xây dựng được một mạng học sâu có khả năng nhận diện được các lỗi thường gặp ở bo mạch PCB sau khi ăn mòn bằng hóa chất dựa trên việc nghiên cứu các dây chuyền sản xuất và các nghiên cứu trong và ngoài nước . Kết quả này có đặc điểm là tốc độ xử lý trung bình , độ chính xác khá cao, phù hợp cho các ứng dụng học tập và nghiên cứu không yêu cầu cao về tốc độ xử lý nhưng độ chính xác phải cao (để khắc phục lỗi, phế phẩm gần bằng 0). Mạng có ưu điểm là có thể chạy độc lập mà không cần dữ liệu đầu vào (file mạch in thiết kế) thích hợp cho ứng dụng cần bảo mật thông tin, an toàn dữ liệu và các dây chuyền sản xuất nhỏ (gia công mạch in theo yêu cầu) có tỉ lệ sản phẩm/mẫu bé. So với nhiệm vụ đặt ra thì đề tài đã làm được những việc sau: - Có nêu được quy trình chế tạo PCB. - Đã tìm hiểu và lựa chọn một mạng học sâu. - Có thực hiện các phương pháp tiền xử lý ảnh trước khi đưa vào huấn luyện. - Có dùng bộ dữ liệu đã xử lý để huấn luyện mạng. - Có dùng các công cụ đánh giá mô hình trong Matlab. - Có kết luận và đánh giá kết quả đạt được. So với mục tiêu đặt ra thì đề tài đã xây dựng một mạng học sâu có khả năng nhận dạng các lỗi trên của PCB, khoanh vùng và ghi tên mỗi loại. Tuy nhiên, độ chính xác của mô hình chưa cao (khoảng 89%, dựa trên quá trình training hình 4.2), nhận diện tốt trên các ảnh nhị phân trong tập dữ liệu (hình 4.3). Nhận diện trên ảnh chụp thực tế thì các lỗi đứt mạch và ngắn mạch nhận diện tốt, các lỗi khác chưa đạt độ chính xác cao. 5.2 HƯỚNG PHÁT TRIỂN 1. Thu thập thêm dữ liệu và sử dụng các biện pháp học tăng cường để tăng độ chính xác. 2. Thực hiện tăng cường dữ liệu bằng các kỹ thuật xử lý ảnh.
  • 64. 64 3. Sử dụng phương pháp tranfer learning và quantization để tăng tốc độ và độ chính xác của mô hình. 4. Huấn luyện mạng và tinh chỉnh các thông số trong quá trình huấn luyện. 5. Tạo phần mềm có thể chạy trên nền tảng android (điện thoại) và máy tính để sử dụng trong giảng dạy. 6. Có thể kết hợp với một thiết bị đánh dấu lỗi (dạng máy CNC) dùng màu sắc để xác định vị trí và phân loại lỗi (Ví dụ: màu đỏ cho lỗi open và short, màu cam cho lỗi mousebite và pinhole, màu xanh cho lỗi spur và copper ...) để thuận tiện trong việc khắc phục.
  • 65. 65 TÀI LIỆU THAM KHẢO 1. Ebayyeh, A.A.R.M.A., Mousavi, Alireza. A Review and Analysis of Automatic Optical Inspection and Quality Monitoring Methods in Electronics Industry. IEEE Access, 2020. 8: p. 183192-183271. 2. Abhilash Doniwar, A.D., Ayush Baiswara. PCB Faults Detection Using Image Processing. International Journal of Computational Engineering Research (IJCER), 2017. 07(03). 3. Wu, X., Ge, Yuxi, Zhang, Qingfeng, Zhang, Dali. PCB Defect Detection Using Deep Learning Methods. IEEE 24th International Conference on Computer Supported Cooperative Work in Design (CSCWD), 2021, p. 873-876. 4. Wu, W.-Y., Hung, Ching-Wen, Yu, Wen-Bin. The development of automated solder bump inspection using machine vision techniques. The International Journal of Advanced Manufacturing Technology, 2013. 69(1-4): p. 509-523. 5. Russakovsky, O., Deng, Jia, Su, Hao, Krause, Jonathan, Satheesh, Sanjeev, Ma, Sean, Huang, Zhiheng, Karpathy, Andrej, Khosla, Aditya, Bernstein, Michael, Berg, Alexander C., Fei-Fei, Li. ImageNet Large Scale Visual Recognition Challenge. International Journal of Computer Vision, 2015. 115(3), p. 211-252. 6. Rafael C. Gonzalez, R.E.W., Steven L. Eddins. Digital Image Processing Using MATLAB. 2 ed. USA: Gatsmark Publishing, 2009,p. 845. 7. Jason Brownlee. A Gentle Introduction to Object Recognition With Deep Learning. Deep Learning for Computer Vision, 2019. 8. Wei Liu, D.A., Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg, SSD: Single Shot MultiBox Detector. Lecture Notes in Computer Science. 2016. 9. Sanli Tang, F.H., Xiaolin Huang, Jie Yang, ONLINE PCB DEFECT DETECTOR ON A NEW PCB DEFECT DATASET. Institute of Image Processing and Pattern Recognition, Shanghai Jiao Tong University, China, 2019. 10. Silva, L.H.d.S. and G.O.d.A. Azevedo, Automatic Optical Inspection for Defective PCB Detection Using Transfer Learning. IEEE Access, 2019. 11. Barreto, S. (2021, November 26). Choosing a Learning Rate. Baeldung on Computer Science. Internet: https://www.baeldung.com/cs/ml-learning- rate?fbclid=IwAR1u9TqQ2_iUMMyJaHf7fYj23HCOUu6j0DiiJFltSVoLBz_hEX E1X2ME3oo, 20/2/2023. 12. Li, K. (2021, October 13). How to Choose a Learning Rate Scheduler for Neural Networks. Internet: https://neptune.ai/blog/how-to-choose-a-learning-rate- scheduler?fbclid=IwAR33xhB_6gg2oSYnOU7R4iGniN80qYw8n7SCLkGcJROH C2vgwJXCXfgyMlI, 20/2/2023.
  • 66. 66 ỨNG DỤNG MẠNG HỌC SÂU (DEEP LEARNING) XÁC ĐỊNH LỖI MẠCH IN (PCB) SAU KHI ĂN MÒN BẰNG HÓA CHẤT Do Truong Sa Dong Nghi1 1Trường đại học Sư phạm Kỹ thuật TP.HCM TÓM TẮT Trong giảng dạy và thực hành modun chế tạo mạch in trong trường nghề thường gặp phải vấn đề là kiểm tra mạch in sau khi ăn mòn bằng hóa chất trước khi cho sinh viên khoan và hàn linh kiện. Nếu ứng dụng phương pháp xử lý ảnh thì không khả thi do kích thước các bo mạch không đồng nhất, số lượng mẫu rất nhiều do mỗi sinh viên có thể có mỗi mẫu khác nhau. Do đó cần một công cụ có thể xác định số lượng và phân loại lỗi của mạch in sau khi ăn mòn bằng hóa chất, hỗ trợ công tác kiểm tra sản phẩm. Để giải quyết vấn đề này tác giả đề xuất sử dụng một mạng học sâu để nhận diện các lỗi có thể có trên một ảnh chụp mạch in đã được ăn mòn bằng hóa chất. Ở đây, tác giả sử dụng phương pháp transfer learning trên mô hình Vgg16 đã qua huấn luyện với tập dữ liệu DeepPCB. Kết quả mô hình đạt được độ chính xác trên 89%. Từ khóa: Kiểm tra quang học tự động ; mạch in; học sâu; học chuyển đổi. ABSTRACT In teaching and practicing printed circuit manufacturing module in vocational schools, it is common to encounter the problem of checking printed circuits after chemical corrosion before allowing students to drill and solder components. The application of the image processing method is not suitable due to the size of the boards is not uniform, the number of samples is very large because each student may have a different sample. Therefore, it is necessary to have an application that can quantify and classify the defects of printed circuits after chemical corrosion, supporting product inspection. To solve this problem I suggest using a deep learning network to identify possible errors on a printed circuit image that has been chemically etched. In this work, I uses the transfer learning method on the pre-trained Vgg16 model with the DeepPCB dataset. The model results achieved an accuracy of over 89%. Keywords: Automatic Optical Inspection; Printed Circuit Board (PCB); Transfer Learning; Deep Learning. 1. GIỚI THIỆU Hiện nay, việc kiểm tra chất lượng sản phẩm, đặc biệt là các sản phẩm có chi tiết nhỏ như ngành điện tử, hầu như được thay thế hoàn toàn bằng máy móc. Trong bài báo “Đánh giá và phân tích các phương pháp giám sát chất lượng và kiểm tra quang học tự động trong ngành công nghiệp điện tử” [1], tác giả tổng hợp các phương pháp giám sát chất lượng như kiểm tra bằng siêu âm, dòng điện xoáy, kiểm tra bằng chất thấm thuốc nhuộm, nhiệt độ, thăm dò mạch, kiểm tra bằng tia X và quang học hiện đang được sử dụng để đánh giá chất lượng sản phẩm nhằm đạt được sản phẩm đủ tiêu chuẩn. Trong đó kiểm tra quang học tự động (AOI) là một trong những kỹ thuật không thể thay thế được sử dụng để kiểm tra chất lượng các sản phẩm khác nhau. “Giám sát chất lượng là bước cần thiết để giảm thiểu lỗi của sản phẩm trong các ngành công nghiệp khác nhau. AOI được coi là một trong những phương pháp giám sát chất lượng đơn giản và thường được sử dụng để kiểm tra công nghiệp tự động. Lĩnh vực AOI rất rộng lớn vì nó liên quan đến nhiều chủ đề khác nhau, từ thiết lập phần cứng để thu nhận hình ảnh đến các thuật toán kiểm tra và ra quyết định. Vì lý do này, các cơ hội nghiên cứu trong lĩnh vực này rất
  • 67. 67 rộng mở và có tiềm năng cải thiện trong tương lai gần.” Trong quá trình sản xuất các bo mạch điện tử, việc kiểm tra quang học bằng máy móc được thược hiện rất nhiều lần trong dây chuyền sản xuất để hạn chế sản phẩm lỗi. Ta có thể thấy được việc này thông qua quy trình chế tạo mạch in công nghiệp được đăng trên trang web https://www.mclpcb.com gồm 19 bước như sau: Bước 1: Thiết kế PCB Bước 2: Đánh giá thiết kế và các câu hỏi về kỹ thuật Bước 3: In thiết kế PCB Bước 4: Phủ đồng cho lớp bên trong Bước 5: Khắc các lớp bên trong Bước 6: Căn chỉnh Bước 7: Kiểm tra quang học tự động (AOI) Bước 8: Ghép lớp PCB Bước 9: Khoan Bước 10: Mạ PCB Bước 11: Tạo ảnh lớp ngoài Bước 12: Khắc lớp ngoài Bước 13: AOI lớp ngoài Bước 14: Phủ mặt nạ hàn Bước 15: In lụa (Silkscreen) Bước 16: Hoàn thiện PCB Bước 17: Kiểm tra về điện Bước 18: Cắt PCB Bước 19: Kiểm tra chất lượng và kiểm tra trực quan Ta có thể thấy kiểm tra quang học tự động (AOI) là một bước quan trọng trong quy trình trên, giúp loại bỏ các sản phẩm không đạt ngay từ đầu quy trình sản xuất, giúp tăng tỉ lệ thành phẩm. Việc kiểm tra này được lặp lại mỗi khi một lớp mạch được khắc xong, và trước khi bắt đầu ghép các lớp lại với nhau. Kiểm tra quang học tự động chia làm hai loại chính: loại có tham chiếu và loại không có tham chiếu. Trong bài báo “ Phát hiện lỗi PCB bằng xử lý ảnh”[2] tác giả sử dụng các phương pháp xử lý ảnh trên ảnh chụp mạch in cần kiểm tra để loại bỏ nhiễu và chuyển từ ảnh màu thành ảnh nhị phân, sau đó dùng phép XOR ảnh đã xử lý với ảnh từ file thiết kế, từ đó chỉ ra các lỗi trên PCB. Đây là phương pháp kiểm tra quang học có tham chiếu. Chuyên sâu hơn, trong bài báo “Phát hiện lỗi PCB bằng phương pháp học sâu” [3] tác giả đã sử dụng 2 mạng học sâu là SSD và FPN được training trên 2 tập dữ liệu PCB Dataset và DeepPCB Dataset khác nhau - “Do những hạn chế về mặt kỹ thuật, PCB chắc chắn sẽ xuất hiện các khuyết tật trong quá trình sản xuất. Để đảm bảo năng suất cao và tiết kiệm chi phí lao động, bài báo này đã áp dụng hai loại mạng phát hiện và phân loại lỗi PCB. Các thử nghiệm cho thấy hai phương pháp được sử dụng trong hai phân bổ tập dữ liệu khác nhau đạt được độ chính xác cao”. Đây là phương pháp kiểm tra quang học không có tham chiếu. Ta có thể thấy phương pháp kiểm tra quang học tự động (AOI) thường được sử dụng trong công nghiệp trong nước là phương pháp xử lý ảnh do có ưu điểm là công nghệ đơn giản đễ thi công và bảo trì, còn phương pháp sử dụng mạng học sâu chủ yếu được nghiên cứu trong các bài báo và ứng dụng ngoài nước do công nghệ phức tạp, khó làm chủ (vấn đề bản quyền, bảo trì, bảo dưỡng). Ưu điểm của phương pháp xử lý ảnh là nhanh và độ chính xác cao. Nhược điểm là phụ thuộc nhiều vào phần cứng (cần thiết bị chuyên dụng) nên đắt tiền; cần dữ liệu mẫu để so sánh (file thiết kế PCB); chỉ phát hiện mà không phân loại được lỗi. Nếu tỉ lệ sản phẩm/mẫu là bé thì cần có người điều chỉnh ảnh tham chiếu cho phù hợp, công việc trở thành thủ công. Các nghiên cứu ứng dụng mạng học sâu vào thị giác máy tính như nhận diện khuôn mặt, nhận diện bảng số xe, phát hiện hành động nguy hiểm của tài xế ... được phát triển rất nhiều. Tuy nhiên, chưa có phần mềm nào