Tuy nhiên, với sự tiến bộ của các mô hình AI, hiện nay chúng ta đang đối mặt với khả năng tạo ra các hình ảnh chất lượng cao và chân thực chỉ trong vai giây.. Bài toán này đặt ra câu hỏi
Trang 1
HOC VIEN CONG NGHE BUU CHINH VIEN THONG
KHOA CONG NGHE THONG TIN
BAO CAO BAI TAP LON
MON HOC: AN TOAN VA BAO MAT HE THONG THONG TIN
Đề tài: Phát hiện ảnh thật và ảnh ảo bằng AI
Giảng viên hướng dẫn: Vũ Minh Mạnh Nhóm lớp: 06
Nhóm bài tap: 07
Thành viên:
Pham Van Dire — B21DCCN255 Nguyén Giang Linh — B21DCCN483 Đào Việt Anh - B2IDCCN003
Luong Phuong Quang — B21DCCN627
Ha Noi, thang 5 nam 2024
Trang 2
Muc luc
1 Tổng quan về bài toán - c n 222111 221212111 tr tre 4
TR Tap dit HiQu 4
Le Dir HAW 4
2 Tir xr by di Gece ccc cccccccceesesecssesecsecsecstssesevsensecsesevensesevstsessesesenees 4
a Chuẩn bị dữ liệu và gán nhãn 2-2 ccccccececcececeeesceesesecsessceeseseeseeeees 4
c Tăng cường đữ liệu - L Q2 1020112201 1121 1 1115211111114 1n khe 6
J0) ha e 6
1 Giới thiệu về mạng CNN 5 c2 2111121 11c trau 6
b Đặc trưng cơ bản của CNN Q0 2 HH2 HH xe kg 7
2 Giới thiệu về Pytorch S5 s2 2E1 112121 1 112tr rrre 9
3 Giới thiệu về mô hình -2- 1 s1E1111 1112111 112117712112111152 2112221 uyn 10
a Mang ResNet là øi? Q.0 Q2 22122 HH TT HH ng xen kg 10
b Tổng quan về ResNet-l52 21121 II 4 Xây dựng mô hình - Q2 1020112101 1101 1111111111 1111 1111111111111 11 11111 xk 12
IV Triển khai trên code thực tẾ 5 c2 T122 2112122121211 ri 13
Ve KẾt quả 2n HH HH tr 20
VỊ — Tài liệu tham khảo - L2 201 02011121111211151 111111155111 111 111 119g ky 22
Trang 3Bảng phân bỗ phần trăm đóng góp vào bài tập lớn
Phần trăm đóng
2 Nguyễn Giang Linh B21DCCN483 20%
3 Đảo Việt Anh B21DCCN003 20%
Trang 4
I Tong quan vé bài toán
Trong lĩnh vực tạo hình ảnh tổng hợp bằng Trí tuệ Nhân tạo (AI), một trong những thách thức quan trọng là khả năng phân biệt giữa hình ảnh thật và hình ảnh được tạo ra bởi AI Trong những năm gần đây, sự phát triển mạnh mẽ của công nghệ
đã làm cho các hình ảnh được tạo ra bởi AI trở nên ngày cảng chất lượng và chân thực Điều này đặt ra một vấn đề quan trọng trong việc đảm bảo tính chân thực và đáng tin cậy của dữ liệu hình ảnh
Ban đầu, các hình ảnh được tạo ra băng cách sử đụng Trí tuệ Nhân tạo thường
có những khuyết điểm lớn, đễ dàng bị phát hiện bởi con người Tuy nhiên, với sự tiến bộ của các mô hình AI, hiện nay chúng ta đang đối mặt với khả năng tạo ra các hình ảnh chất lượng cao và chân thực chỉ trong vai giây Những hình ảnh này có thể đạt đến mức độ chất lượng cần thiết đề cạnh tranh với các hình ảnh thực tế và thậm chí giành chiến thắng trong các cuộc thi nghệ thuật
Tuy nhiên, việc phân biệt giữa hình ảnh thật và hình ảnh được tạo ra bởi AI trở thành một thách thức đối với con người Điều này làm nảy sinh một bài toán quan trọng trong lĩnh vực trí tuệ nhân tạo và học máy, học sâu, được gọi là bài toán phân loại ảnh thật và ảnh ảo do AI tạo ra Bài toán này đặt ra câu hỏi về tính chân thực và
độ tin cậy của đữ liệu hình ảnh, đồng thời tạo ra nhu cầu về các giải pháp công nghệ
đề giúp phân biệt giữa hai loại hình ảnh này
Đầu tiên chúng ta cần phải gán nhãn đề có thể phân loại được hình ảnh Do đây
là bài toán phân loại chỉ gồm 2 loại hình ảnh (ảnh thật và ảnh ảo) nên sẽ thực hiện gan nhãn nhị phân, tức là: Gán nhãn 0 cho “Al-Image” va | cho“Real- Image”
Đối với đữ liệu hình ảnh, đề có thê sử dụng chúng trong mô hình ta cần biểu
diễn hình ảnh dưới dạng Tensor
Trang 5Ly do cần được biểu diễn dưới dang Tensor la vi:
O Biéu dién Ty nhién: Anh co ban la da chiéu:
- Pixels: Méi ảnh bao gồm một lưới các điểm ảnh
-_ Các Kênh Màu: Mỗi điểm ảnh có giá trị cho các kênh màu (ví dụ, Đỏ,
Xanh Lá Cây, Xanh Lá Cây trong ảnh RGB)
- Batch: Khi bạn có một tập dữ liệu, thường bạn xử lý nhiều ảnh cùng một lúc, tạo thành một chiều khác
4 Tensor c6 thê hiệu quả bat kịp tat cả các chiều nay:
- Anh Xam: Tensor 2D (Chiéu Cao x Chiéu Réng)
- Ảnh Màu: Tensor 3D (Chiều Cao x Chiều Rộng x Kênh Màu)
- Batch cac anh: Tensor 4D (Kich Thuée Batch x Chiéu Cao x Chiều Rộng
x Kénh Mau)
O Hiéu Qua Tinh Toan:
- Tang Tốc GPU: Đơn vị Xử lý Đồ họa (GPU) được thiết kế cho các hoạt động ma trận và vector song song Tensor hoàn toàn phù hợp với điều này, dẫn đến việc huấn luyện và suy luận nhanh chóng
- _ Thư viện: Các thư viện học sâu như TensorFlow và PyTorch được tối ưu hóa mạnh mẽ cho các hoạt động tensor Xây dựng các mô hình với chúng
là hiệu quả khi dữ liệu của bạn đã ở đúng định dạng
J_ Cho Phép Biến Đôi Phức Tạp: Xử lý ảnh và các lớp tích chập bên trong
Trang 6IH
b Phân loại dữ liệu
Chia tập dữ liệu thành 2 loại traim và test theo tỉ lệ 80:20, Đảm bảo việc phân chia tập huấn luyện và tập kiểm tra sao cho tỉ lệ giữa các nhãn cân băng giữa 2 tập
Đảm bảo kết quả phân chia đữ liệu ôn định khi chạy nhiều lần
c Tăng cường dữ liệu
Dữ liệu cần được tăng cường đề mô hình có khả năng tổng quát hóa của mô hình và ngăn chặn hiện tượng ovcrfitting Bài toán sử dụng phương pháp augmentation trên cả 2 tập train và test
Khai niém Augmentation anh là quá trình thay đổi và tăng cường dữ liệu hình anh bằng cách áp dụng các phép biến đổi và thay đổi trên ảnh gốc
Sử dụng các phép biến đối tiền xử lý hình ảnh mặc định(có sẵn trong thư viện Pytorch) thường được sử dụng với mô hình ResNet-L52
Mô hình Đối với bài toán này, nhóm sử dụng mô hình Deep Learning
1 Giới thiệu về mạng CNN
CNN(Convolutional Neural Network) la mang no ron tích chậ p Đây là mô hình
vô cùng tiên tiến được áp dụng nhiều trong lĩnh vực học sâu Deep learning
Mạng CNN cho phép người dùng xây dựng những hệ thống phân loại và đự đoán với độ chính xác cực cao Hiện nay, mạng CNN được ứng dụng nhiều hơn trong
xử lý ảnh
Về phần kỹ thuật, thuật toán CNN là một mô hình được sử dụng trong quá trình
training và kiêm tra dữ liệu hình ảnh Mỗi hình ảnh đầu vào sẽ đi qua một chuỗi
các bước, bao gồm các lớp tích chập (Convolutional) với các bộ lọc, sau đó là lớp kết nối đầy đủ (Fully Connected) và cuối cùng áp dụng hàm Softmax dé phan
loại đối tượng Kết quả phân loại sẽ là một giá trị xác suất nằm trong khoảng từ 0 đên 1
Trang 7+ Relu Pooling ae
en Convolution Softmax
+ Relu @ Input Image
- Tang Activation (ReLU)
- Tang Pooling (optional)
- Tang Fully Connected Trong tang Convolution va Pooling, 1 phan cla Neural dau vao duoc thu hep va liên kết với các tầng tiếp theo Cùng với các Filter giúp nhận diện được các đặc tính nào đó của ảnh Nghĩa là: mỗi neural ở layer tiếp theo được sinh ra từ việc đặt Filter lên I vùng ảnh cục bộ của Neural layer trước
Trong | vi du về nhận diện xe oto như bên đưới, trong các tầng đầu tiên CNN
sẽ giúp nhận diện viền của oto và trong các tầng tiếp theo sẽ nhận diện được các đặc trưng khác như: bánh xe, CNN sẽ tự động tìm các tham số và Filter trong quá trình học
RELU RELU RELU RELU RELU RELU CONV | CONV CONV a CONV | CONV
Trang 8b Đặc trưng cơ bản của CNN
Có 3 diém đặc biệt cần chú ý trong CNN
- Convolution (Tich chap)
- Translation Invariance (Bat bién)
- Compositionality (Két hop) ] Convolution: được hiểu đơn giản giống như một phép toán với ma trận
Vi du, xét anh x4m (grayscale image) Chúng ta coi ảnh là 1 matrix nhu sau:
Trang 9ẢNH ĐẦU VÀO MAP ĐẶC TRƯNG
Kết quả ta được | matrix chứa các đặc trưng của ảnh
| Translation Invariance Nhw trong vi dy Convolution ở bên trén, Filter sẽ phát các đối tượng theo cục
bộ Vì vậy, có thê phát hiện được các đặc trưng từ đầu vào (Cùng với tính
kết hợp Compositionality - mạng sẽ cho ra kết quả là L đối tượng) J_ Dù có thay đổi theo một cách nào đó Mạng CNN vẫn nhận ra được sự xuất hiện của đối tượng
Vi dụ: hình ảnh đưới đây được thay đối theo nhiều góc độ khác nhau, nhưng chúng ta (hay mạng CNN) vẫn có thể nhận ra được cùng một đối tượng xuất hiện trong ảnh
Trang 10Khi CNN hiểu được từng thành phân, nó sẽ kết hợp các thành phần này Các tầng phía sau sẽ tìm được những đặc trưng chỉ tiết hơn
Ví dụ trong nhận điện giọng nói: tầng đầu tiên phát hiện sự thay đổi âm lượng và tần số, tầng tiếp theo kết hợp chúng đề phát hiện tiếng ồn và giọng nói Từ đó phát hiện chi tiết hơn âm thanh do nam hay nữ nói
2 Giới thiệu về Pytorch
Py Torch là 1 thư viện Python-based hỗ trợ tạo ra các Deep Learnine models và
sử dụng chúng cho các ứng dụng khác nhau Trên thực tế, PyTorch không chỉ là I thư viện Deep Learning, mà chính là 1 package về tinh toan khoa hoc (scientific
computing) nham vào 2 đối tượng:
- Thay thé Numpy dé sur dung strc manh GPUs
- Nền tảng nghiên cứu Deep Learning mang đến sự linh hoạt và tốc độ cao
PyTorch, tương tự như Python, nó được thiết kế tap trung vao tinh dé str dung va thậm chí người dùng có kiến thức lập trình rất cơ bản cũng có thể sử dụng nó
trong các dự án có liên quan đến Deep Learning
LÌ Load và xử lý data:
Đây luôn là một trong những bước đầu tiên trong bất kì một project về Deep Learning nao Vi thé PyTorch da hỗ trợ các tiện ích dé thực hiện bước này với module torch.utils data
2 class quan trong trong module nay la Dataset va DataLoader:
- Dataset duoc xay dung trén nên kiêu dữ liệu Tensor và được sử dụng chủ
yếu cho các bộ dữ liệu tùy chỉnh
- DataLoader được sử dụng khi bạn có một tập dữ liệu lớn và bạn muốn tải
dữ liệu từ Dataset ở chế độ nền đề nó sẵn sàng và chờ sử dụng cho quá trình traming loop
3 Giới thiệu về mô hình
Trang 11Coco detection va Coco segmentation Hién tai thi c6 rat nhiéu bién thé cua kién trúc ResNet với số lớp khác nhau như ResNet-L8, ResNet-34, ResNet-50, ResNet-L01, ResNet-152 Với tên là ResNet theo sau là một số chỉ kiến trúc ResNet với số lớp nhất định Mạng ResNet giải quyết được vấn đề của học sâu truyền thống, nó có thê đễ dàng học với hàng trăm lớp
Mang ResNet (R) là một mạng CNN được thiết kế để làm việc với hàng trăm hoặc hàng nghìn lớp chập Một vấn đề xảy ra khi xây dựng mạng CNN với nhiều lớp chập sẽ xảy ra hiện tượng Vanishing Gradient dẫn tới quá trình học tập không tốt Chính vì vậy giải pháp mà ResNet đưa ra là sử dụng kết nối tat đồng nhất đề xuyên qua một hay nhiều lớp Một khối như vậy được gọi là một Residual Block, hình dưới:
weight layer
aK identity
ResNet gần như tương tự với các mạng CNN khác gồm có: tích chập (convolution), tong hop (pooling), kich hoat (activation) và kết nối đầy đủ (fully- connected layer) Xuất hiện một mũi tên cong xuất phát từ đầu và kết thúc tại cuối khối đư hay ResNet sử dụng các kết nối tắt (kết nối trực tiếp đầu vào của lớp (n) với (n+x) được hiên thị dạng mũi tên cong Qua mô hình nó chứng minh được có thê cải thiện hiệu suất trong quá trình huấn luyện khi mô hình có hơn 20 lớp Như vậy có thể hiểu việc tăng số lượng các lớp trong mang làm giảm độ chính xác, nhưng muốn có một kiến trúc mạng sâu hơn có thể hoạt động tốt
Đề giải quyết bài toán phân biệt ảnh thật và anh ảo bằng AI, chúng em sẽ sử
dụng mạng CNN với mô hình ResNet-L52
H
Trang 12Kiến trúc của ResNet-152
Giống như tên gọi thì ResNet-L52 có 152 layer (tầng), sồm các thành phần chính sau:
1 Tich chap ban dau va Pooling:
- Lép tich chap 7x7 voi 64 bộ lọc và bước nhảy 2
- L6p tong hop téi da (max pooling layer) 3x3 véi buéc nhay 2
1 Khdi du (Residual Blocks):
Lõi của ResNet-152 bao gồm nhiều khối khối xếp chồng lên nhau Khối dư
có cầu trúc cốt lõi sau:
-_ Kết nối tắt: Một ánh xạ danh tính trực tiếp bỏ qua một hoặc nhiều lớp tích chập
-_ Lớp tích chập: Thường là hai hoặc ba lớp tích chập với kích thước kernel
nhỏ (đa số là kernel 3x3 và IxI)
- Chuan hoa batch (Batch Normalization): Được áp đụng sau mỗi lớp tích chập để cải thiện tính ồn định của quá trinh huấn luyện
- Kich hoat ReLU: Hàm kích hoạt phi tuyến tính được sử đụng
Kiến trúc nút cô trai (Bottleneck Architecture):
ResNet-152 sur dung mot thiét ké bottleneck trong cac khối dư của nó Điều này có nghĩa là nó sử dụng một chuỗi các tích chập IxI, 3x3, IxI để giảm chiều đữ liệu, thực hiện các tính toán chính, và sau đó mở rộng lại chiều đữ
liệu Điều này làm cho việc tính toán hiệu quả về mặt tính toán
Ví dụ:
Ta có thế nghĩ đến việc xử lý một hình ảnh đầu vào Giả sử có câu trúc
khối đư (residual block) thông thường:
256 kênh đầu vào tích chập 3x3 với 256 kênh — tích chập 3x3 với 256 kênh đầu ra
12
Trang 13LI
LI
Với khối cô chai, chúng ta có thể có:
256 kênh đầu vào tích chập 1x1 với 64 kênh — tích chập 3x3 với 64
kênh — tích chập 1xI với 256 kênh đầu ra
Mô hình thứ hai này giảm đáng kê số lượng hoạt động tính toán cần thiết
ở lớp chính 3x3
Average Pooling: Trước khi đến lớp phân loại cuối cùng, một lớp Global Average Pooling được sử đụng để giảm chiều không gian của các bản đỗ đặc trưng (Feature maps)
Fully Connected Layer: Cuối cùng, một lớp fully connected được sử dụng với I000 neuron (tương ứng với 1000 lớp trong ImageNet)
4 Xây dựng mô hình
L! Sử dụng mô hình ResNet-L52 để làm mô hình cơ sở, trong đó:
Sử dụng trọng số weights = "IMAGENETIK V2" duoc dao tao san tir
ImageNet với hơn 14 triệu hình ảnh
Loại bỏ các lớp phân loại đầy đủ ở đỉnh mô hình đề thêm các lớp phân loại
mới với lớp cuỗi cùng gồm 2 đơn vị Kích thước đầu vào là 224 x 224-pixel và có 3 kênh màu RGB
O Huan luyện mô hình:
Huấn luyện mô hình sử dụng dữ liệu từ đữ liệu huấn luyện(train) và dữ liệu
thử nghiệm(test) với batch_size = 32 và epoch = 20 là số vòng lặp qua toàn
bộ dữ liệu huấn luyện Ham loss duge str dung la: loss_fn = nn BCEWithLogitsLoss() c6 trong san trong thư viện pytorch Đây là hàm mắt mát thích hợp trong các bai toán phân loại nhị phân Hàm này kết hợp giữa hàm kích hoạt sigmoid (để chuyên đôi đầu ra thành các xác suất dự đoán) và hàm mat mat entropy chéo nhi phan (binary cross entropy loss) dé đo lường sự khác biệt giữa các
dự đoán và nhãn thực tế Sử dụng hàm loss phù hợp là một phần quan trọng của quá trình huấn luyện mạng nơ-ron dé đảm bảo rằng mô hình học được các tham số tối ưu đề tối đa hóa hiệu suất của nó trên dữ liệu huấn luyện Hàm tối ưu(optimizer): optimizer =
torch.optim.Adam(model.parameters(),lr = 0.001) Su dung torch.optim.A dam là thuật toán tối ưu hóa Adam Thuật toán này là một trong những thuật toán tôi ưu hóa phổ biến được sử dụng trong Deep Learning, với tính linh hoạt và hiệu suất cao; model.parameters() truyền vào các tham số của mô hình muốn cập nhật (trong trường hợp này, tất cả các tham số của model), va Ir = 0.001 là learning rate, tức là mức độ thay đổi của các tham số trong mỗi bước cập nhật Learning rate là một siêu tham số quan trọng trong thuật toán tối ưu hóa, và việc chọn một giá trị phù hợp cho nó cũng là một phần quan trọng của quá trình huấn luyện
13