Giới thiệu dự án
Trong bối cảnh cuộc Cách mạng Công nghiệp 4.0 và chuyển đổi số trong giáo dục nghề nghiệp, kỹ thuật hàn đóng vai trò nòng cốt trong các ngành cơ khí chế tạo, đóng tàu, kết cấu xây dựng và dầu khí. Tại các trường đại học và cơ sở đào tạo kỹ thuật, môn thực tập hàn – đặc biệt là phương pháp hàn hồ quang tay (Shielded Metal Arc Welding - SMAW) – là học phần cơ sở bắt buộc. Tuy nhiên, quy trình đánh giá kết quả thực hành hiện nay tồn tại nhiều điểm nghẽn nghiêm trọng.
+-----------------------------------------------------------------------------+
| PROBLEM STATEMENT |
| Phương pháp đánh giá truyền thống: |
| - Quan sát cảm quan bằng mắt thường (Visual Inspection) mang tính chủ quan. |
| - Tỷ lệ sinh viên/giảng viên cao (30-40 SV/lớp), gây quá tải phản hồi. |
| - Giải pháp công nghiệp (X-ray NDT, siêu âm) chi phí đắt đỏ, độc hại. |
| - Hệ thống thị giác máy tính cố định (Fixed PC/Embedded) cồng kềnh, đắt đỏ. |
+-----------------------------------------------------------------------------+
Đồ án tốt nghiệp "Ứng dụng học sâu trong phát triển hệ thống đào tạo thực hành hàn sử dụng trên điện thoại" do sinh viên Dương Anh Kiệt và Võ Thành Nhân thực hiện dưới sự hướng dẫn của TS. Trần Vũ Hoàng (Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật TP.HCM) giải quyết bài toán trên bằng cách phát triển ứng dụng di động thông minh tích hợp mạng nơ-ron tích chập (Convolutional Neural Network - CNN) cải tiến.
Mục tiêu cụ thể của dự án
- Thu thập và chuẩn hóa bộ dữ liệu ảnh màu RGB thực tế về các dạng khuyết tật bề mặt mối hàn hồ quang tay (cháy thủng, cháy cạnh, rỗ khí, lẫn xỉ, văng tóe lớn, sai biên dạng).
- Nghiên cứu, cải tiến kiến trúc học sâu MobileNetV2 kết hợp mô-đun chú ý CBAM (Convolutional Block Attention Module) nhằm tối ưu hóa độ chính xác trên dữ liệu giới hạn mà vẫn đảm bảo độ trễ suy luận thấp.
- Phát triển ứng dụng Android hoàn chỉnh cho phép chụp ảnh trực tiếp từ camera, cắt/xoay ảnh linh hoạt và thực hiện suy luận cục bộ (on-device inference) với TensorFlow Lite.
- Xây dựng thang đo phân loại 4 mức chất lượng (Mức A: 7.5–10đ, Mức B: 5.0–7.5đ, Mức C: 2.5–5.0đ, Mức D: 0–2.5đ) kèm hướng dẫn khắc phục thao tác kỹ thuật cho người học.
Phạm vi và giới hạn
- Phạm vi kỹ thuật: Mối hàn giáp mối và hàn góc thực hiện bằng phương pháp hàn hồ quang tay (SMAW/MMA).
- Môi trường triển khai: Thiết bị di động hệ điều hành Android (API level 28+), xử lý ảnh 2D RGB không yêu cầu cảm biến chiều sâu hay đầu dò bức xạ.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí | Kiểm tra trực quan thủ công | Kiểm tra không phá hủy công nghiệp (X-ray/NDT) | Hệ thống PC + Camera cố định | Giải pháp Deep Learning di động đề xuất |
|---|---|---|---|---|
| Độ khách quan | Thấp (phụ thuộc cảm tính) | Rất cao | Cao | Rất cao (chuẩn hóa thuật toán) |
| Chi phí đầu tư | 0 VNĐ | Rất cao (>500 triệu VNĐ) | Trung bình (20-40 triệu VNĐ) | Cực thấp (tận dụng smartphone sẵn có) |
| Thời gian phản hồi | 3 - 5 phút/mối hàn | Vài giờ - 1 ngày | 1 - 2 giây | Dưới 100 ms (thời gian thực) |
| Tính cơ động | Cao | Rất thấp (cố định phòng lab) | Thấp (gắn bàn thí nghiệm) | Cực kỳ linh hoạt trong xưởng |
| Mức độ an toàn | An toàn | Nguy cơ phơi nhiễm bức xạ | An toàn | An toàn tuyệt đối |
Yêu cầu hệ thống theo mô hình MoSCoW
- Must have (Bắt buộc): Thuật toán phân loại chính xác 4 mức độ hàn A, B, C, D; suy luận ngoại tuyến (offline) trên chip di động; tính năng chụp ảnh và tải ảnh từ bộ sưu tập.
- Should have (Nên có): Bộ công cụ tiền xử lý ảnh tích hợp (Rotate, Crop) để loại trừ phôi thừa và nhiễu nền; hiển thị nguyên nhân khuyết tật và giải pháp điều chỉnh dòng hàn/tốc độ di chuyển que hàn.
- Could have (Có thể có): Cơ chế xác thực tài khoản phân quyền lớp học nội bộ.
- Won't have (Chưa hỗ trợ đợt này): Phát hiện khuyết tật bên trong lõi kim loại (Internal cracks/lack of fusion) vốn yêu cầu sóng siêu âm hoặc tia X.
Thiết kế hệ thống
graph TD
A[Camera / Thư viện Android] --> B[Tiền xử lý: Cắt & Xoay ảnh]
B --> C[TensorFlow Lite Runtime]
subgraph "Mô hình mạng MobileNetV2 + CBAM"
D[Inverted Residual Blocks] --> E[Bottleneck Features]
E --> F[Channel Attention Module - CAM]
F --> G[Spatial Attention Module - SAM]
G --> H[Fully Connected & Softmax]
end
C --> D
H --> I[Kết quả phân loại: Mức A / B / C / D]
I --> J[Giao diện UI: Điểm số, Đánh giá, Khắc phục]
Technology Stack và phiên bản chi tiết
- Core Framework: TensorFlow
v2.8.0& TensorFlow Lite (TFLite) - Kiến trúc mạng: MobileNetV2 cải tiến tích hợp CBAM Layer
- Ngôn ngữ huấn luyện & xử lý dữ liệu: Python
3.8.10, OpenCV4.5.5, NumPy1.21.6, Matplotlib3.5.2 - Nền tảng ứng dụng di động: Android SDK (Target API 31 - Android 12, Min API 24 - Android 7.0), Java 8 / Kotlin
1.6.10 - Tối ưu hóa huấn luyện: Adam Optimizer ($\beta_1 = 0.9, \beta_2 = 0.999, \epsilon = 1e-7$), Categorical Cross-Entropy Loss
Methodology
Quy trình nghiên cứu áp dụng mô hình lặp Agile theo 4 giai đoạn rõ ràng:
[Giai đoạn 1: Data Collection & Preprocessing] -> [Giai đoạn 2: Model Architecture & Training]
-> [Giai đoạn 3: Model Quantization & Mobile Porting] -> [Giai đoạn 4: Real-world Testing & Validation]
Quản trị rủi ro kỹ thuật (Risk Assessment)
- Rủi ro mất cân bằng dữ liệu: Lớp B chiếm đa số (1319 ảnh), trong khi lớp D chỉ có 73 ảnh. Giải pháp: Áp dụng kỹ thuật tăng cường dữ liệu hình học (Affine transformations, Random Flips, Rotation $\pm 15^\circ$, Brightness adjustment) để nâng tổng số mẫu huấn luyện lên 4,275 ảnh cân bằng giữa các lớp.
- Rủi ro hạn chế tài nguyên phần cứng: Mô hình CNN truyền thống quá nặng cho RAM điện thoại giá rẻ. Giải pháp: Sử dụng tích chập phân tách theo chiều sâu (Depthwise Separable Convolution) và chuẩn hóa lượng tử hóa TFLite Float16/INT8.
Implementation và kết quả
Development process
Cốt lõi thuật toán nằm ở việc kết hợp mạng xương sống MobileNetV2 với mô-đun chú ý CBAM.
-
Khối Inverted Residual với Linear Bottleneck: Giảm số lượng tham số tính toán từ $h_i \cdot w_i \cdot d_i \cdot d_j \cdot k^2$ xuống còn: $$\text{Cost} = h_i \cdot w_i \cdot d_i (k^2 + d_j)$$ giúp tiết kiệm chi phí tính toán xấp xỉ $k^2 \approx 9$ lần so với tích chập tiêu chuẩn.
-
Cơ chế chú ý CBAM: Đặt tại lớp nút cổ chai cuối cùng trước khi đưa vào lớp phân loại Fully Connected.
- Channel Attention Module (CAM): Khai thác mối tương quan giữa các kênh đặc trưng: $$M_c(F) = \sigma\left(W_1(W_0(F_{avg}^c)) + W_1(W_0(F_{max}^c))\right)$$ với $W_0 \in \mathbb{R}^{C/r \times C}$ và $W_1 \in \mathbb{R}^{C \times C/r}$, tỷ lệ giảm kênh $r = 16$.
- Spatial Attention Module (SAM): Tập trung vào vị trí không gian xuất hiện khuyết tật dọc theo đường hàn: $$M_s(F) = \sigma\left(f^{7\times 7}\left([F_{avg}^s; F_{max}^s]\right)\right)$$
Trích đoạn cài đặt CBAM tích hợp trên TensorFlow/Keras
import tensorflow as tf
from tensorflow.keras import layers, Model
def channel_attention(input_feature, ratio=16):
channel = input_feature.shape[-1]
shared_layer_one = layers.Dense(channel // ratio, activation='relu', kernel_initializer='he_normal', use_bias=True)
shared_layer_two = layers.Dense(channel, kernel_initializer='he_normal', use_bias=True)
avg_pool = layers.GlobalAveragePooling2D()(input_feature)
avg_pool = shared_layer_one(avg_pool)
avg_pool = shared_layer_two(avg_pool)
max_pool = layers.GlobalMaxPooling2D()(input_feature)
max_pool = shared_layer_one(max_pool)
max_pool = shared_layer_two(max_pool)
cbam_feature = layers.Add()([avg_pool, max_pool])
cbam_feature = layers.Activation('sigmoid')(cbam_feature)
cbam_feature = layers.Reshape((1, 1, channel))(cbam_feature)
return layers.Multiply()([input_feature, cbam_feature])
def spatial_attention(input_feature):
avg_pool = layers.Lambda(lambda x: tf.reduce_mean(x, axis=-1, keepdims=True))(input_feature)
max_pool = layers.Lambda(lambda x: tf.reduce_max(x, axis=-1, keepdims=True))(input_feature)
concat = layers.Concatenate(axis=-1)([avg_pool, max_pool])
cbam_feature = layers.Conv2D(filters=1, kernel_size=7, strides=1, padding='same', activation='sigmoid')(concat)
return layers.Multiply()([input_feature, cbam_feature])
def build_mobilenetv2_cbam(input_shape=(224, 224, 3), num_classes=4):
base_model = tf.keras.applications.MobileNetV2(input_shape=input_shape, include_top=False, weights='imagenet')
x = base_model.output
# Tích hợp CBAM tại bottleneck cuối
x = channel_attention(x, ratio=16)
x = spatial_attention(x)
x = layers.GlobalAveragePooling2D()(x)
x = layers.Dropout(0.2)(x)
outputs = layers.Dense(num_classes, activation='softmax')(x)
return Model(inputs=base_model.input, outputs=outputs)
Testing và validation
Phân bố tập dữ liệu huấn luyện và thực nghiệm
+---------------+------------------+------------------+-----------------------+
| Phân loại | Số lượng gốc | Tập Train (70%) | Train tăng cường (Aug)|
+---------------+------------------+------------------+-----------------------+
| Mức A (7.5-10)| 473 ảnh | 377 ảnh | 1,131 ảnh |
| Mức B (5-7.5) | 1,319 ảnh | 1,058 ảnh | 1,058 ảnh |
| Mức C (2.5-5) | 169 ảnh | 129 ảnh | 1,032 ảnh |
| Mức D (0-2.5) | 73 ảnh | 53 ảnh | 1,054 ảnh |
| TỔNG CỘNG | 2,034 ảnh | 1,617 ảnh | 4,275 ảnh |
+---------------+------------------+------------------+-----------------------+
Đánh giá Benchmark hiệu năng phần cứng
| Nền tảng thử nghiệm | Phần cứng / Thiết bị | Độ trễ suy luận (Latency) | Khung hình/giây (FPS) | Độ chính xác (Accuracy) |
|---|---|---|---|---|
| PC Workstation | Intel Core i5-8250U CPU @ 1.60GHz | 24.6 ms | 40.6 FPS | 82.4% |
| Smartphone Mid-range | OPPO F9 (Helio P60, 4GB RAM) | 48.2 ms | 20.7 FPS | 81.2% |
| Smartphone Budget 1 | Samsung Galaxy A02s (Snapdragon 450) | 78.5 ms | 12.7 FPS | 80.5% |
| Smartphone Budget 2 | Samsung Galaxy J7 Prime (Exynos 7870) | 92.1 ms | 10.8 FPS | 80.1% |
Kết quả đạt được
FEATURE COMPLETION MATRIX
+------------------------------------+------------+--------------+
| Tính năng mục tiêu | Trạng thái | Hiệu suất |
+------------------------------------+------------+--------------+
| Đăng nhập phân quyền lớp học | Hoàn thành | 100% |
| Chụp ảnh thời gian thực qua Camera | Hoàn thành | < 1s độ trễ |
| Đọc ảnh từ bộ sưu tập Gallery | Hoàn thành | Tức thì |
| Chỉnh sửa xoay/cắt phôi hàn | Hoàn thành | Mượt mà |
| Phân loại 4 mức chất lượng A-B-C-D | Hoàn thành | > 80% Acc |
| Gợi ý nguyên nhân & cách khắc phục | Hoàn thành | Chi tiết |
+------------------------------------+------------+--------------+
Hệ thống đã đạt độ chính xác phân loại tổng thể 80.5% - 81.2% trên tập dữ liệu kiểm thử thực tế độc lập, đáp ứng hoàn hảo tiêu chí đánh giá tự động phục vụ lớp học thực tập.
Đổi mới và đóng góp
- Kiến trúc Hybrid CNN-Attention tối ưu cho thiết bị biên: Việc đưa cơ chế chú ý kép CBAM vào tầng sâu của MobileNetV2 cho phép mạng nơ-ron học có chọn lọc các đặc trưng khuyết tật cục bộ nhỏ (như rỗ khí li ti, hạt xỉ bám) mà không làm tăng đáng kể dung lượng bộ nhớ (Model Size chỉ tăng thêm ~0.4 MB so với MobileNetV2 gốc).
- So sánh định lượng với các mô hình State-of-the-Art:
- So với InceptionV3 (Dung lượng: 92 MB, Top-1 Acc: 77.9% trên ImageNet, Thời gian CPU: ~80 ms): MobileNetV2 + CBAM có dung lượng nhỏ hơn 6.5 lần, tốc độ xử lý nhanh hơn 3.2 lần trên chip di động.
- So với NASNetMobile (Dung lượng: 23 MB, Acc: 74.4%): Mô hình đề xuất nhẹ hơn 1.64 lần với độ ổn định phân loại cao hơn trên tập ảnh mối hàn nhỏ.
- So với MobileNetV2 nguyên bản: Việc bổ sung khối CBAM giúp tăng độ chính xác phân loại thêm +3.8%, đặc biệt cải thiện rõ rệt ở Mức C và Mức D vốn có nhiều khuyết tật phức tạp đan xen.
- Đóng góp cho chuyển đổi số giáo dục kỹ thuật: Cung cấp công cụ khách quan hóa thang điểm đánh giá, giúp sinh viên tự học, tự phát hiện sai sót kỹ thuật và rèn luyện tay nghề nhanh chóng trước khi nộp sản phẩm chính thức.
Ứng dụng thực tế và triển khai
Kịch bản sử dụng trong xưởng thực tập (Classroom Workflow)
[Sinh viên thực hiện mối hàn que]
[Gõ sạch xỉ hàn bằng búa gõ xỉ & bàn chải sắt]
[Mở App Android -> Chụp ảnh mối hàn hoặc chọn từ Gallery]
[Sử dụng công cụ Crop/Rotate để chọn khung đường hàn]
[Mô hình TFLite suy luận on-device trong < 100ms]
[Màn hình hiển thị: Xếp loại (A/B/C/D) - Điểm số (0-10) - Lỗi sai - Khắc phục]
Phân tích chi phí - lợi ích (Cost-Benefit Analysis)
- Chi phí triển khai: Gần như 0 VNĐ chi phí phần cứng bổ sung (tận dụng smartphone cá nhân của sinh viên và giảng viên).
- Tiết kiệm thời gian: Giảm thời gian chấm bài của giảng viên từ 3-5 phút/mối hàn xuống còn dưới 10 giây/mối hàn, tăng năng suất hướng dẫn thực hành lên hơn 300%.
- ROI đào tạo: Nâng cao tỷ lệ đạt chuẩn tay nghề của sinh viên trong lần thi đầu tiên nhờ tính năng tự đánh giá liên tục trong quá trình luyện tập.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Nhiễu do điều kiện chiếu sáng và bề mặt kim loại: Độ bóng của kim loại và ánh đèn xưởng hàn có thể tạo vệt phản quang cục bộ, đôi khi gây nhầm lẫn giữa vết văng tóe kim loại và rỗ khí nếu ảnh không được căn chỉnh góc chụp tốt.
- Giới hạn 2D RGB: Chưa phân tích được chiều sâu ngấu của mối hàn và các khuyết tật ẩn sâu bên trong vật liệu mà chỉ đánh giá bề mặt ngoài.
Hướng phát triển trong tương lai
- Phát triển mô hình phân vùng đối tượng (Instance Segmentation như YOLOv8-Seg hoặc Mask R-CNN) để khoanh vùng tọa độ chính xác từng điểm cháy cạnh, lỗ rỗ khí thay vì chỉ phân loại toàn khung ảnh.
- Mở rộng tập dữ liệu sang các kỹ thuật hàn công nghệ cao: Hàn TIG (GTAW), Hàn MIG/MAG (GMAW), Hàn hồ quang chìm (SAW).
- Tích hợp mô-đun AI trên kính thông minh (Smart Glasses / AR) để hỗ trợ hướng dẫn sinh viên theo thời gian thực ngay trong lúc đang hàn.
Đối tượng hưởng lợi
+---------------------------------------------------------------------------------------+
| BENEFICIARY MATRIX |
| |
| 1. SINH VIÊN KỸ THUẬT: |
| - Tự đánh giá tức thì kết quả thực hành; hiểu rõ nguyên nhân lỗi (cháy chân, lẫn |
| xỉ, văng tóe) để tự điều chỉnh thao tác tay hàn, góc nghiêng que và cường độ dòng.|
| |
| 2. GIẢNG VIÊN & NHÀ TRƯỜNG: |
| - Khách quan hóa thang điểm; giảm tải áp lực chấm điểm thủ công trong các lớp đông;|
| chuẩn hóa dữ liệu đánh giá phục vụ kiểm định chất lượng đào tạo quốc tế (ABET). |
| |
| 3. LẬP TRÌNH VIÊN & KỸ SƯ AI: |
| - Tham khảo kiến trúc tối ưu MobileNetV2 + CBAM; phương pháp đóng gói mô hình |
| TFLite chạy on-device trên Android với tài nguyên bộ nhớ hạn chế. |
| |
| 4. DOANH NGHIỆP CƠ KHÍ & XƯỞNG SẢN XUẤT: |
| - Nền tảng tiềm năng để phát triển công cụ kiểm tra nhanh chất lượng đường hàn |
| sơ bộ tại hiện trường trước khi đưa vào kiểm định NDT chuyên sâu. |
+---------------------------------------------------------------------------------------+
Câu hỏi thường gặp
1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai ứng dụng trên điện thoại là gì?
Ứng dụng tương thích với mọi điện thoại chạy hệ điều hành Android từ phiên bản 7.0 (Nougat - API 24) trở lên, dung lượng RAM tối thiểu 2 GB, bộ nhớ trống tối thiểu 50 MB và camera sau từ 8 MP có hỗ trợ lấy nét tự động. Ứng dụng không đòi hỏi kết nối mạng Internet khi suy luận vì toàn bộ quá trình xử lý AI diễn ra trực tiếp trên chip thiết bị (On-device Edge Computing).
2. Mô hình xử lý bài toán mất cân bằng dữ liệu giữa các mức mối hàn như thế nào?
Để khắc phục tình trạng mẫu Mức D và Mức C quá ít so với Mức B, hệ thống áp dụng kỹ thuật Data Augmentation đa dạng: quay ảnh ngẫu nhiên các góc $90^\circ, 180^\circ, 270^\circ$, lật gương theo phương ngang/dọc, thay đổi độ tương phản và bổ sung nhiễu Gaussian nhẹ. Qua đó, tập huấn luyện được nâng từ 1,617 ảnh gốc lên 4,275 ảnh cân bằng, giúp mạng học sâu không bị thiên vị (bias) vào lớp chiếm đa số.
3. Làm thế nào để đảm bảo độ chính xác khi sinh viên chụp ảnh trong điều kiện ánh sáng xưởng hàn không đồng đều?
Ứng dụng tích hợp mô-đun tiền xử lý cho phép người dùng chủ động cắt bỏ các vùng phôi thừa, xỉ bám ngoài biên và xoay ảnh sao cho trục đường hàn nằm ngang khung hình. Đồng thời, nhánh Spatial Attention trong khối CBAM tự động lọc bỏ các vùng nhiễu nền và khuếch đại trọng số cho dải kim loại mối hàn thực sự.
4. Hệ thống có thể tích hợp với hệ thống quản lý học tập (LMS) của nhà trường không?
Hoàn toàn khả thi. Ứng dụng được thiết kế theo cấu trúc module hóa (Modular Architecture). Kết quả đánh giá (Điểm số, Mức xếp loại, Hình ảnh đường hàn, Thời gian thực hiện) có thể dễ dàng xuất ra định dạng JSON và đẩy lên máy chủ trường học thông qua giao thức RESTful API khi thiết bị có kết nối Wi-Fi/4G.
5. Chi phí bảo trì và nâng cấp hệ thống trong dài hạn ra sao?
Do ứng dụng vận hành độc lập trên thiết bị của người dùng cuối và không tiêu tốn tài nguyên máy chủ đám mây (Cloud Server) cho tác vụ suy luận AI, chi phí vận hành máy chủ là gần như bằng 0. Việc cập nhật mô hình học sâu mới chỉ cần thực hiện thông qua việc thay thế tệp trọng số model.tflite trong các bản cập nhật ứng dụng định kỳ.
Kết luận
Đồ án tốt nghiệp "Ứng dụng học sâu trong phát triển hệ thống đào tạo thực hành hàn sử dụng trên điện thoại" của nhóm tác giả Dương Anh Kiệt và Võ Thành Nhân đã giải quyết trọn vẹn bài toán tự động hóa quy trình đánh giá kỹ năng hàn trong giáo dục kỹ thuật. Bằng việc kết hợp sáng tạo giữa mạng nơ-ron tích chập nhẹ MobileNetV2 và cơ chế chú ý kênh - không gian CBAM, nghiên cứu đã chứng minh rằng một mô hình AI gọn nhẹ hoàn toàn có thể đạt độ chính xác cao (>80%) trên thiết bị di động phổ thông mà không cần dựa vào phần cứng đắt tiền.
Giải pháp mở ra hướng tiếp cận mới đầy tiềm năng trong việc chuyển đổi số các môn học thực hành kỹ thuật cơ khí, mang lại giá trị thiết thực cho cả sinh viên, giảng viên và các cơ sở giáo dục nghề nghiệp trong kỷ nguyên số.