Chương trình tuy còn đơn giản nhưng đã đáp ứng được những yêu cầu ban đầu
của người dùng. Vì sự hoán vị xảy ra một cách ngẫu nhiên nên không gian ảnh khá đa
dạng, giúp người dùng phát hiện nhiều trường hợp hoán vị thú vị. Tuy nhiên, chương
trình còn một số hạn chế như mất nhiều thời gian để tạo sinh ảnh, người dùng phải thực
hiện đánh giá nhiều lần để tạo ra một số lượng ảnh tương đối tốt cho quá trình học và
phương thức trích rút đặc trưng ảnh chưa thực sự tốt.
Trong tương lai, chúng tôi sẽ cố gắng cải tiến những nhược điểm trên, áp dụng
nhiều phương thức biểu diễn ảnh khác nhau để chọn ra được phương thức phù hợp
nhất. Đặc biệt, chúng tôi sẽ cố gắng cải tiến chương trình để có thể xử lý với ảnh đầu
vào trừu tượng hơn.
10 trang |
Chia sẻ: huyhoang44 | Lượt xem: 662 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Thiết kế, phân tích và phát triển một thuật toán di truyền tương tác để tạo sinh ảnh dựa theo hướng dẫn đánh giá của con người: dự án permutopainter, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
THIẾT KẾ, PHÂN TÍCH VÀ PHÁT TRIỂN MỘT THUẬT
TOÁN DI TRUYỀN TƢƠNG TÁC ĐỂ TẠO SINH ẢNH
DỰA THEO HƢỚNG DẪN ĐÁNH GIÁ CỦA CON NGƢỜI :
DỰ ÁN PERMUTOPAINTER
Đào Thị Duyên
Khoa Toán-Tin, Đại học Thăng Long
Email: dtduyen90@gmail.com
Tóm tắt: Dự án PermutoPainter dựa trên ý tưởng của bộ sưu tập
“Arrangement avec le hasard” (Sắp xếp ngẫu nhiên) được triển lãm tại Paris vào
tháng 11 năm 2014 của họa sĩ người pháp Bernard Gortais. Bộ sưu tập này giống như
việc nghiên cứu thứ tự sắp xếp của 6x4 ô vuông trong một bức tranh bằng cách xoay
quay chúng một góc 90o hoặc tráo đổi vị trí giữa các ô cho nhau. Mục đích chính của
dự án này là tạo ra những cấu trúc thú vị bằng cách kết hợp ngẫu nhiên 24 ô của bức
tranh. Vì với mỗi cách bố trí đường nét (lên, xuống, ngang, dọc), màu sắc và bố cục
khác nhau, nó sẽ đem lại cho người xem những cảm xúc khác nhau. Trong bài báo
này,chúng tôi sử dụng một số kỹ thuật nhằm trích rút đặc trưng của từng ảnh, sau đó sử
dụng thuật toán K-medoids để phân cụm ảnh. Cuối cùng là sử dụng thuật toán rừng
ngẫu nhiên kết hợp với sự tương tác của người dùng tạo ra các hình ảnh giống với ý
muốn của người dùng.
Từ khóa: Giải thuật di truyền, phân cụm, Rừng ngẫu nhiên, Xử lý ảnh, K-
Medoids.
1. Mở đầu
Hội họa là điều mà chúng ta không nghĩ rằng một chiếc máy tính có thể tạo ra.
Bởi nó trừu tượng, biểu cảm, gắn liền với các nền văn hóa, tâm lý học và chủ quan. Còn
máy tính thì khách quan, chính xác và chi phối bởi các nguyên tắc toán học. Tuy nhiên,
trong thực tế, hội họa và các lĩnh vực nghệ thuật thị giác khác sử dụng rất nhiều toán
học như hình học, luật phối cảnh, thuật toán, cái mà máy tính có thể hiểu được để tạo ra
những hình ảnh đa dạng, tinh tế giống như người họa sĩ. Một người tiên phong trong
lĩnh vực này là họa sĩ Harold Cohen. Ông đã xây dựng một chương trình sáng tạo nghệ
thuật sử dụng trí thông mình nhân tạo AARON năm 1973 [1].
Việc sử dụng các thuật toán tiến hóa tương tác như giải thuật di truyền để tạo
sinh ảnh đã trở nên khá phổ biến mà nguốn gốc của nó được tìm thấy trong cuốn sách
“The Blind Watchmaker” [2] được viết bởi nhà sinh học tiến hóa Richard Dawkins. Sau
đó, là các hệ thống được phát triển bởi [3] và [4]. Chúng được xem là các tác phẩm
nghệ thuật có ảnh hưởng nhất trong lĩnh vực nghệ thuật thị giác. Trào lưu này đã mở ra
một lĩnh vực nghệ thuật mới, đó là “Nghệ thuật tiến hóa” [5].
Trong bài báo này, chúng tôi sẽ trình bày về dự án PermutoPainter được phát
triển trong bộ sưu tập “Sắp xếp ngẫu nhiên” của họa sĩ người pháp Bernard Gortais. Nó
được triển lãm tại Paris vào tháng 11 năm 2014. Một tác phẩm hội họa (ví dụ như một
đường trải dài trên bức tranh như hình 1) được căt ra thành 24 ô vuông bằng nhau rồi
lại được ghép lại một cách ngẫu nhiên, hoàn toàn độc lập với ảnh ban đầu.
Hình 1- Ví dụ một kiểu sắp xếp
Yêu cầu của người dùng là xây dựng một công cụ cho phép khám phá một ý
kiến khách quan mang tính nghệ thuật với một số lượng lớn các hoán vị có thể trên một
tập không gian (khái niệm không gian ở đây chính là bố cục của một bức ảnh) kết hợp
với sự phát hiện những tính chất nổi bật của từng hoán vị, cái được xác định bởi người
sử dụng. Đó là lý do chúng tôi đi xây dựng dự án PermutoPainter. Bằng cách phân tích
và cài đặt một thuật toán tiến hóa nhằm giúp tìm kiếm và xác định một cách hiệu quả
các kết hợp “interesting” từ các mảnh nhỏ của ảnh với sự tương tác của người dùng
(Feng & Ting, 2014). Trước tiên, một ảnh được cắt ra thành 6x4 phần bằng nhau, sau
đó chúng được chuyển sang dạng nhị phân, tính toán các điểm đặc trưng trên ảnh và
biểu diễn các đặc trưng này thành một véctơ mô tả n-chiều. Các véctơ này được phân
nhóm vào k-cụm (cluster) bởi thuật toán K-medoids. Những ảnh là trung tâm của mỗi
cụm sẽ được hiển thị cho người dùng đánh giá độ thú vị (interest) và định tính của từng
ảnh (ví dụ: buồn, vui, tĩnh mịch hay sôi động). Tiếp đến, chúng tôi sử dụng thuật
toán rừng ngẫu nhiên để huấn luyện. Thuật toán này thường phù hợp với các bộ dữ liệu
có số chiều rất lớn. Cuối cùng, chương trình sẽ tạo sinh ra những ảnh thuộc lớp thuộc
tính mà người dùng yêu cầu.
Phần còn lại của bài báo được tổ chức như sau: phần 2 mô tả các nghiên cứu, cơ
sở lý thuyết liên quan tới đề tài; phần 3 mô tả khái quát về các phương pháp nghiên cứu
được áp dụng trong đề tài. Sau đó là kết quả thực nghiệm được trình bày ở phần 4. Cuối
cùng là phần 5 kết luận và hướng phát triển
2. Các nghiên cứu liên quan
Trong mục này chúng tôi phân tích các cơ sở lý thuyết liên quan tới bài báo.
Trước tiên là một ứng dụng tạo sinh ảnh dựa trên giải thuật di truyền của nhóm tác giả
người Đài Loan [6]. Tiếp đến, với mục đích giúp người đọc hiểu được cái thú vị trong
từng bức tranh, là phần mô tả ngắn gọn về nghệ thuật thị giác, các thành phần tạo nên
cảm xúc trong hội họa. Cuối cùng là một số kỹ thuật có thể sử dụng trong việc biểu
diễn ảnh.
2.1 Hệ thống EvoEco – một ví dụ về tạo sinh ảnh
EvoEco là hệ thống được xây dựng dựa trên nền tảng đa tác tử (multi-agent). Nó
gồm hai giai đoạn chính: sinh sản (tạo ra các đối tượng ảnh) và tiến hóa (lựa chọn và
làm tiến hóa các nhiễm sắc thể). Một ảnh được biểu diễn như một nhiễm sắc thể với
thành phần gồm k tác tử (agent). Các tác tử này sẽ thực hiện việc sơn màu cho bức
tranh trong suốt quá trình sống của chúng.
Quá trình tiến hóa của EvoEco để tạo sinh ảnh gồm các giai đoạn sau:
1. Xác định ngẫu nhiên màu nền cho mỗi nhiễm sắc thể.
2. Các nhiễm sắc thể được xây dựng nhờ quá trình sơn của các tác tử trong suốt
quá trình sống của chúng.
3. Đột biến và lai tạo trên các nhiễm sắc thể vừa tạo ra.
Hình 2- Giao diện hệ thống EvoEco và một vài ảnh đã được đánh giá
2.2. Nghệ thuật thị giác và trừu tượng
Thuật Nghệ thuật thị giác là nghệ thuật mà chúng ta nhìn thấy, giống như các
bức tranh, hình ảnh nó mang lại cảm xúc, trực giác về những gì diễn ra quanh chúng
ta hoặc những gì tiềm ẩn bên trong con người, cái mà không thể mô tả một cách dễ
dàng bằng lời. Sự trừu tượng này được tạo nên bởi màu sắc, cấu trúc, sự kết hợp, nhịp
điệu, đối xứng, sự tương phản của từng nét vẽ. Nó được mô tả chi tiết trong hệ thống
Kandinsky (Gortais, 2003).
Đối với Kandinsky, mọi sự vật, hiện tượng trên trái đất đều được biểu diễn
bởi 3 yếu tố chủ yếu là điểm, đường nét và mặt phẳng.
Điểm: là một hình dạng nhỏ nhất và cũng chính là một thành phần chính
trong hội họa. Nó thể hiện sự im lặng, hướng nội, đồng tâm và tĩnh.
Đường nét: với các hướng và hình dạng khác nhau, nó gợi lên những cảm
xúc khác nhau. Chẳng hạn, một đường thẳng nằm ngang thể hiện dòng thời
gian, màu đen, tĩnh lặng và lạnh. Nhưng đối với 1 đường thẳng đứng, nó gây
ra cảm giác về sự ngắt quãng, ý tưởng mới, cảm xúc tỉnh táo, nóng. Một
đường chéo chính là sự kết hợp cảm xúc của đường nằm ngang và thẳng
đứng. Một đường cong thể hiện tính trữ tình
Mặt phẳng: Bốn phía của mặt phẳng có sự cộng hưởng đặc biệt. Hướng từ
trên xuống tạo cảm giác rơi xuống nhẹ nhàng. Hướng về bên phải có nghĩa là
sự khởi hành, hướng về bên trái tạo cảm giác trở về. Chúng ta có thể cảm
nhận được sự khác biệt này thông qua tác phẩm điêu khắc nổi tiếng của
Albrecht Dürer. Bản gốc ở phía bên trái. Xem từng ảnh bằng cách che
khuất ảnh còn lại và cảm nhận có hay không một sự khác biệt trong
nhận thức.
Hình 3 - Tác phẩm điêu khắc “ Cái chết, ma quỷ và hiệp sĩ „
2.3. Biểu diễn ảnh
Để bắt đầu dự án, chúng tôi thực hiện bước đầu tiên đó là biểu diễn ảnh. Đây là
một bước quan trọng trong phân loại ảnh. Nó ảnh hưởng rất lớn tới kết quả phân loại
cuối cùng. Hiện nay, có hai cách tiếp cận chính về biểu diễn ảnh là: sử dụng nét đặc
trưng toàn cục (global features) như phân bố màu (histograme), moment bất biến Hu,
phép chiếu (projection), phép biến đổi profile hoặc sử dụng nét đặc trưng cục bộ (local
features) như SIFT [7], BRIEF [8] hoặc ORB [9].
Cách tiếp cận thứ nhất đơn giản nhưng không hiệu quả với những biến đổi về góc
nhìn, tỉ lệ, tịnh tiến, phép quay, độ sáng, không có khả năng chịu đựng những thay đổi
về độ sáng, sự che khuất hoặc nhiễu. Ngược lại, cách tiếp cận thứ hai xử lý tốt trong các
trường hợp đó và đem lại hiểu quả cao trong phân loại và nhận diện ảnh. Vì vậy, tùy
thuộc vào đặc điểm của đối tượng trích rút ví dụ như khuôn mặt, chữ viết tay mà
chúng ta lựa chọn phương pháp phù hợp.
3. Phƣơng pháp đề xuất
Do đặc điểm của dự án là tạo sinh ra ảnh bằng cách hoán đổi vị trí của 6x4 ô
nhỏ được chia cắt từ một ảnh ban đầu. Chính vì vậy, bước đầu tiên của dự án là tạo ra
một tập dữ liệu trên 1000 ảnh dựa trên phép tráo đổi vị trí, phép xoay ngẫu nhiên các ô
của ảnh ban đầu như mô hình dưới đây:
Hình 4 – Mô phỏng thuật toán sinh ảnh ngẫu nhiên
Từ ảnh ban đầu I0, với mỗi phép tráo đổi vị trí của 2 ô vuông với nhau (tối thiểu
là 1 ô có đường), ta được một ảnh mới có khoảng cách d = 1 với ảnh gốc. Từ ảnh mới
này, ta lại tiếp tục thay đổi vị trí của 2 ô khác, ta sẽ được 1 ảnh mới có khoảng cách d =
2 với ảnh gốc. Tại các ảnh vừa tạo ra, ta thực hiện phép xoay các ô có đường một góc
90
o
, 180
o
hoặc 270o để tạo ra các ảnh mới.
Với tập dữ liệu ảnh vừa tạo ra, chúng tôi thực hiện trích rút đặc trưng của từng
ảnh và biểu diễn chúng dưới dạng một véctơ 264 chiều. Do N ảnh này được tạo ra từ 1
ảnh ban đầu nên các điểm ảnh hoàn toàn giống nhau, chúng chỉ khác nhau về vị trí.
Chính vì lý do này, việc sử dụng nét đặc trưng cục bộ và một số phương pháp nghiên
cứu phía trên là không hiệu quả. Chúng tôi thực hiện trích rút các đặc trưng của từng
đường nét như sau:
Đặc trưng cục bộ (xét trên từng ô nhỏ của ảnh): tính toán tọa độ giao điểm
của đường và 4 cạnh của ô, độ dài, độ rộng, hướng và bounding box của
đường.
Đặc trưng toàn cục (xét trên toàn bộ bức ảnh): tính toán số lượng đường, số
lượng đường xiên chéo lên, số lượng vòng tròn, số lượng đường nằm ở ½
phía dưới ảnh, số đường nằm ngang nằm ở nửa bên trái.
Sau khi biểu diễn ảnh dưới dạng véctơ đặc trưng, chúng tôi sử dụng thuật toán
K-medoids [10] nhằm chọn ra những ảnh đặc trưng nhất của mỗi cụm để hiển thi cho
người dùng nhằm giúp người dùng có cái nhìn tổng quan nhất về tập ảnh được sinh ra.
Từ đó người dùng sẽ có sự đánh giá khách quan, hiệu quả cho việc huấn luyện mô hình
học tự động bằng thuật toán rừng ngẫu nhiên.
3.1. Phân cụm bằng thuật toán K-Medoids
Phân cụm là một kỹ thuật quan trọng trong khai phá dữ liệu, nó thuộc lớp các
phương pháp học không giám sát trong học máy. Một thuật toán được sử dụng khá phổ
biến trong kỹ thuật phân cụm đó là thuật toán K-means. Tuy nhiên, thuật toán này
không có khả năng tìm ra các cụm lồi hoặc cụm có hình dạng phức tạp, rất nhạy cảm
với nhiễu và các phần tử ngoại lai trong dữ liệu. Chính vì lý do này, chúng tôi lựa chọn
K-medoids – một biến thể của K-means. Nó có khả năng khắc phục nhiễu bằng cách
chọn đối tượng ở gần cụm nhất làm trung tâm của cụm đó (medoid). Ý tưởng của thuật
toán được thể hiện qua hình sau:
Hình 4 – Minh họa thuật toán K-medoids trong [11]
3.2. Rừng ngẫu nhiên
Rừng ngẫu nhiên [12] là một phương pháp phân lớp và hồi quy dựa trên việc kết
hợp kết quả dự đoán của một số lượng lớn các cây quyết định không cắt nhánh. Mỗi
cây được xây dựng trên tập mẫu bootstrap (như Bagging), được lấy ngẫu nhiên từ tập
dữ liệu ban đầu, tại mỗi nút con được phân hoạch tốt nhất từ việc chọn ngẫu nhiên một
không gian con các thuộc tính. Lỗi tổng quát của rừng phụ thuộc vào độ chính xác của
từng cây và sự tương quan giữa các cây. Do mỗi cây là không cắt nhánh nên ta thu
được cây với độ lệch thấp, giảm thiểu thành phần lỗi bias. Ngoài ra, do việc xây dựng
các không gian con thuộc tính một cách ngẫu nhiên nên mối tương quan giữa các cây
cũng được giảm thiểu.
Khi so sánh với các giải thuật học máy có giám sát hiện nay như SVM,
Boosting thì rừng ngẫu nhiên có độ chính xác cao hơn. Như Breiman đã đề cập trong
[12], rừng ngẫu nhiên học nhanh, chịu đựng nhiễu tốt, tránh được tình trạng học vẹt.
4. Kết quả thực nghiệm
Trong phần thực nghiệm, chúng tôi sử dụng ngôn ngữ lập trình c/c++ cùng với
thư viện mã nguồn mở OpenCV để xử lý ảnh và IDE QtCreator 5.3 để xây dựng giao
diện. Chương trình hoạt động tốt trên Linux và Mac OS X.
Ba giao diện chính của chương trình được minh họa trong hình 5:
Giao diện 1: Người dùng có thể thao tác trực tiếp trên ảnh gốc để quay hoặc
cháo đổi vị trí của các ô cho nhau.
Giao diện 2: Hệ thống tạo N ảnh và sử dụng thuật toán K-Medoids để phân
cụm và hiển thị trung tâm mỗi cụm cho người dùng. Người dùng đánh giá độ
thú vị của từng ảnh.
Giao diện 3: Những ảnh thú vị sẽ được người dùng gán cho một cảm xúc
tương ứng với sự cảm nhận của họ. Sau nhiều lần đánh giá, hệ thống sẽ xây
dựng một mô hình học và tạo ra những ảnh mới theo tiêu chí là một cảm xúc
mà người dùng yêu cầu. Kết quả hiển thị ở giao diện 2. Quá trình này được
lặp đi lặp lại cho đến khi người dùng muốn dừng.
Người dùng đánh giá một bố cục mà có các đường tập trung tạo thành một
đường chéo trong không gian là một bố cục “sôi động”. Người dùng mong muốn rằng
hệ thống sẽ đề suất ra một sự sắp xếp ngẫu nhiên thú vị. Xuất phát từ một đường nét
đơn giản, người dùng có thể chọn một sự sắp xếp sao cho có nhiều nhất hoặc ít nhất các
đường tập trung tại đường chéo của bức tranh. Người dùng sẽ gán cho bức tranh một
giá trị đánh giá độ thú vị và một cái nhãn tương ứng là “sôi động”. Chương trình sẽ lựa
chọn và tạo ra những ảnh phù hợp nhất với cách mà người dùng mong muốn. Hình 6,
hình 7, hình 8 là minh họa về sự đánh giá và kết quả thu được của người dùng.
Hình 5 – Hệ thống PermutoPainter
Sau quá trình sử dụng chương trình, người dùng đã thu được các bức tranh có
bố cục sôi động, yên tĩnh và bi kịch theo tiêu chí đánh giá của họ. Dưới đây là kết quả
thu được:
Hình 6- Bernard Gortais – Ví dụ về bố cục sôi động
Hình 7- Bernard Gortais – Ví dụ về bố cục yên tĩnh
Hình 8- Bernard Gortais – Ví dụ về bố cục bi kịch
5. Kết luận và hƣớng phát triển
Chương trình tuy còn đơn giản nhưng đã đáp ứng được những yêu cầu ban đầu
của người dùng. Vì sự hoán vị xảy ra một cách ngẫu nhiên nên không gian ảnh khá đa
dạng, giúp người dùng phát hiện nhiều trường hợp hoán vị thú vị. Tuy nhiên, chương
trình còn một số hạn chế như mất nhiều thời gian để tạo sinh ảnh, người dùng phải thực
hiện đánh giá nhiều lần để tạo ra một số lượng ảnh tương đối tốt cho quá trình học và
phương thức trích rút đặc trưng ảnh chưa thực sự tốt.
Trong tương lai, chúng tôi sẽ cố gắng cải tiến những nhược điểm trên, áp dụng
nhiều phương thức biểu diễn ảnh khác nhau để chọn ra được phương thức phù hợp
nhất. Đặc biệt, chúng tôi sẽ cố gắng cải tiến chương trình để có thể xử lý với ảnh đầu
vào trừu tượng hơn.
6. Tài liệu tham khảo
[1]. Boden, M. A. (1998). Creativity and artificial intelligence. Artificial Intelligence,
103(1–2), 347–356.
[2]. Boden, M. A. (2009). Computer Models of Creativity. AI Magazine, 30(3), 23.
[3]. Breiman, L. (2001). Random Forests. Machine Learning, 45(1), 5–32.
[4]. Calonder, M., Lepetit, V., Strecha, C., & Fua, P. (2010). BRIEF: Binary Robust
Independent Elementary Features. In K. Daniilidis, P. Maragos, & N. Paragios
(Eds.), Computer Vision – ECCV 2010 (pp. 778–792).
[5]. Dawkins, R. (2006). Blind Watchmaker (Fifth edition). London: Penguin UK.
[6]. Feng, S.-Y., & Ting, C.-K. (2014). Painting Using Genetic Algorithm with
Aesthetic Evaluation of Visual Quality. In S.-M. Cheng & M.-Y. Day (Eds.),
Technologies and Applications of Artificial Intelligence (pp. 124–135).
[7]. Gopi Gandhi, R. S. (2014). Review Paper: A Comparative Study on Partitioning
Techniques of Clustering Algorithms, 87(9).
[8]. Lowe, D. G. (2004). Distinctive Image Features from Scale-Invariant Keypoints.
International Journal of Computer Vision, 60(2), 91–110.
[9]. Park, H., Lee, J., & Jun, C. (2006). Abstract A K-means-like Algorithm for K-
medoids Clustering and Its Performance.
[10]. Rublee, E., Rabaud, V., Konolige, K., & Bradski, G. (2011). ORB: An efficient
alternative to SIFT or SURF. In 2011 IEEE International Conference on
Computer Vision (ICCV) (pp. 2564–2571).
[11]. Sims, K. (1991). Artificial Evolution for Computer Graphics. Computer
Graphics, 319–328.
[12]. Todd, S., & Latham, W. (1994). Evolutionary Art and Computers. Orlando, FL,
USA: Academic Press, Inc.
DESIGN, DEVELOPMENT AND ANALYSIS OF GENETIC ALGORITHM
INTERACTIVE TO GENERATE IMAGES GUIDED BY HUMAN
EVALUATION: THE PERMUTOPAINTER PROJECT
Abstract: The project PermutoPainter is based on the idea of the series
“Arrangement avec le hasard” (Random Arrangement) was exhibited in Paris in
November 2014 by the French painter Bernard Gortais. It looks like looking for an
order in the chaos of possible 6x4 square arrangements on a picture that can be rotated
on themselves 90o or swap positions between each cell. The main purpose of this
project is to create interesting structures by combining random 24 boxes of painting. As
the line position (up, down, horizontal, vertical), color and layout on a picture is
changed, it will give the viewer the different emotions. This topic is concerning with the
two popular domains like image processing and machine learning. In this project, I
used several techniques to extract features of each image, then using the K-Medoids
algorithms for clustering and finally using the random forest and Genetic algorithms
with interaction of users to create user expected pictures.
Keywords: Algorithm genetic, Clustering, Random Forest, Image Processing,
K-Medoids.
Các file đính kèm theo tài liệu này:
- dao_thi_duyen_4048.pdf