Nghiên cứu giải thuật di truyền và ứng dụng vào bài toán tái tạo ảnh chân dung đối tượng

104 8 0
Nghiên cứu giải thuật di truyền và ứng dụng vào bài toán tái tạo ảnh chân dung đối tượng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN THỊ HỢP NGHIÊN CỨU GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG VÀO BÀI TOÁN TÁI TẠO ẢNH CHÂN DUNG ĐỐI TƢỢNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Ngun - 2012 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN THỊ HỢP NGHIÊN CỨU GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG VÀO BÀI TOÁN TÁI TẠO ẢNH CHÂN DUNG ĐỐI TƢỢNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Chuyên ngành: Mã số: Khoa học máy tính 60 48 01 NGƢỜI HƢỚNG DẪN KHOA HỌC: TS NGUYỄN NGỌC CƢƠNG Nguyên - 2012 Số hóa Trung tâm Học liệuThái – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn MỞ ĐẦU Tính cấp thiết đề tài Con người đối tượng nghiên cứu phong phú phức tạp nhiều lĩnh vực khoa học khác Mỗi ngành khoa học, lĩnh vực khoa học nghiên cứu người với góc độ, khía cạnh riêng để phục vụ thiết thực cho ngành khoa học Bài tốn tái tạo ảnh chân dung đối tượng từ thông tin đặc tả đối tượng phục vụ công tác quản lý người mà cịn ứng dụng cần thiết cơng tác phịng ngừa, đấu tranh chống loại tội phạm Ngày nay, khoa học kỹ thuật phát triển toàn diện, việc ứng dụng khoa học kỹ thuật tiên tiến cho phép giải tốn nhanh, xác hiệu Nhờ có thành tựu ngành khoa học khác như: Nhân chủng học, hình thái học, dân tộc học, nhân trắc học, khoa học chỉnh hình, … tạo sở phát triển cho khoa học nhận dạng người nói chung lai ghép, tái tạo mặt người nói riêng Vì lẽ toán tái tạo ảnh chân dung đối tượng dựa vào đặc điểm phận cấu tạo nên mặt người toán thiết thực nhiều người quan tâm, vấn đề cấp thiết đặt giải toán tái tạo ảnh chân dung đối tượng cho hiệu quả, đáp ứng nhu cầu người sử dụng Hiện có nhiều phương pháp tiếp cận, xây dựng chương trình tái tạo ảnh chân dung đối tượng Các phần mềm có thường khối lượng cơng việc cần xử lí lớn, lọc lựa, lắp ghép tập liệu ảnh phức tạp nên tốc độ chậm Nhằm nâng cao chất lượng hiệu phần mềm tái tạo, lai ghép mặt người, tác giả tìm hiểu thuật giải di truyền có nhiều ưu điểm tốc độ tính tốn, mơ hình hố Do khuôn khổ luận văn thạc sỹ, chọn đề tài: “Nghiên cứu giải thuật di truyền ứng dụng vào toán tái tạo ảnh chân dung đối tƣợng” Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Mục tiêu luận văn Mục tiêu luận văn là: nghiên cứu giải thuật di truyền tìm cách ứng dụng giải thuật di truyền để tái tạo ảnh chân dung đối tượng gần giống theo mô tả nhân chứng Nội dung luận văn Đề tài tập trung vào việc tìm hiểu kiến thức giải thuật di truyền bước đầu ứng dụng vào giải tốn tái tạo ảnh chân dung khn mặt đối tượng theo hướng tiếp cận sau: sử dụng giải thuật di truyền để mã hóa khn mặt thành chuỗi gene, dựa mô tả chi tiết nhân chứng để tạo khuôn mặt gần giống với nhận định nhân chứng Sau quan sát khuôn mặt tái tạo được, nhân chứng thay đổi, bổ sung chi tiết khác Các khuôn mặt tiếp tục đánh giá hàm thích nghi Độ thích nghi đo vi phạm ràng buộc ràng buộc khuôn mặt phận khuôn mặt, tỉ lệ co dãn, sinh phận lai ghép tùy chọn véc tơ đa chiều Mỗi ràng buộc thể thông qua độ lệch độ dãn biên phận ghép Trên sở đó, nội dung luận văn gồm ba chương sau phần Mở đầu: - Chƣơng 1: Khái quát giải thuật di truyền toán tái tạo ảnh chân dung (từ trang đến trang 32) Trong chương trình bày khái quát giải thuật di truyền: mã hóa nghiệm tốn, toán tử di truyền, sơ đồ thuật toán di truyền, tảng toán học giải thuật di truyền, mơ hình hóa giải thuật di truyền xích Markov Phần chương tìm hiểu ứng dụng giải thuật di truyền để giải tốn tối ưu hóa, số cải tiến giải thuật di truyền đóng góp quan trọng giải thuật di truyền thực tế Phần thứ chương trình bày khái quát toán tái tạo ảnh chân dung đối tượng Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - Chƣơng 2: Ứng dụng giải thuật di truyền vào toán tái tạo ảnh chân dung đối tƣợng (từ trang 33 đến trang 58) Chương trình bày số đặc điểm tốn nhận dạng khn mặt, mối liên hệ với tốn tái tạo ảnh chân dung khn mặt người Phần chương đề cập đến số phương pháp, kỹ thuật xử lý ảnh áp dụng tốn tái tạo ảnh chân dung khn mặt đối tượng Nội dung trọng tâm chương trình bày tốn tái tạo ảnh chân dung khn mặt đối tượng theo hướng tiếp cận Đó ứng dụng giải thuật di truyền để giải toán: mã hóa khn mặt thành chuỗi gene; xây dựng hàm mục tiêu đánh khn mặt; tốn tử di truyền; bước giải toán tái tạo ảnh chân dung khuôn mặt giải thuật di truyền; tham số lựa chọn chi phí thời gian thực giải thuật Phần cuối chương dành cho việc trình bày cơng cụ mơ hình lựa chọn để giải toán theo hướng tiếp cận di truyền Một số điểm hạn chế giải pháp đề cập đến cuối chương - Chƣơng 3: Xây dựng chƣơng trình tái tạo ảnh chân dung đối tƣợng thử nghiệm (từ trang 59 đến trang 76) Trong chương tập trung vào việc phân tích, thiết kế hệ thống tái tạo ảnh chân dung khuôn mặt đối tượng, cài đặt thử nghiệm chương trình tái tạo ảnh chân dung khuôn mặt đối tượng theo hướng tiếp cận giải thuật di truyền đề xuất Chương - Phần kết luận hướng phát triển - Tài liệu tham khảo Phƣơng pháp nghiên cứu Nghiên cứu tài liệu, đề xuất giải pháp lập trình thử nghiệm Luận văn bước đầu đề xuất phương pháp ứng dụng giải thuật di truyền vào giải toán tái tạo ảnh chân dung đối tượng, chương trình thử nghiệm minh chứng hướng tiếp cận đắn có hiệu Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Chƣơng KHÁI QUÁT VỀ GIẢI THUẬT DI TRUYỀN VÀ BÀI TỐN TÁI TẠO ẢNH CHÂN DUNG Chương tìm hiểu khái niệm giải thuật di truyền, sở toán học giải thuật di truyền, cải tiến giải thuật di truyền ứng dụng thực tiễn Phần cuối chương nét khái quát toán tái tạo ảnh chân dung đối tượng 1.1 Khái quát giải thuật di truyền 1.1.1 Những khái niệm giải thuật di truyền đơn giản Giải thuật di truyền (Genetic Algorithm-GA) thuộc lớp giải thuật tìm kiếm tiến hóa Khác với phần lớn giải thuật khác tìm kiếm theo điểm, giải thuật di truyền thực tìm kiếm song song tập gọi quần thể lời giải Thơng qua việc áp dụng toán tử gene, giải thuật GA tráo đổi thơng tin cực trị làm giảm thiểu khả kết thúc giải thuật cực trị địa phương Ý tưởng áp dụng nguyên lý Darwin để tự động giải toán xuất từ năm 40 kỷ 20, lâu trước máy tính đời [8] Từ năm Turing đề xuất “phép tìm kiếm tiến hóa hay tìm kiếm gene” (Genetical or evolutionary search) Trong năm 1960, ba khuynh hướng phát triển ý tưởng sở diễn nơi khác Tại Mỹ, Fogel, Owens Walsh đề xuất hướng nghiên cứu lập trình tiến hóa (Evolutionary programming) thời điểm với phương pháp Holland có tên gọi giải thuật di truyền (Genetic Algorithm)[9, 10] Trong Đức, Rechenberg Schwefel đặt móng cho chiến lược tiến hóa (Evolution Strategies) Trong khoảng 15 năm sau đó, hướng nghiên cứu phát triển cách riêng biệt Cho đến năm 1990, hướng nghiên cứu nhìn nhận lại thể khác công nghệ chung tính tốn tiến hóa Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn (Evolutionary Computing)[9, 10, 11, 12] Cũng thời điểm này, nhánh thứ tư dựa ý tưởng chung đời với tên gọi lập trình gene (genetic programming) Koza tiên phong [11, 12] Trong thuật ngữ đại, toàn lĩnh vực nghiên cứu coi ngành tính tốn tiến hóa, thuật tốn gọi thuật tốn tiến hóa Lập trình tiến hóa, chiến lược tiến hóa, giải thuật di truyền lập trình gene xem lĩnh vực nhỏ thuộc biến thể thuật toán tương ứng Giải thuật di truyền họ mơ hình tính tốn dựa ý tưởng tiến hóa Các giải thuật mã hóa nghiệm tiềm tốn cụ thể cấu trúc liệu giống nhiễm sắc thể (chromosome) áp dụng toán tử tái tổ hợp (recombination operators) lên cấu trúc liệu cho giữ thơng tin Giải thuật di truyền thường xem tối ưu hàm số chúng áp dụng vào nhiều lĩnh vực rộng Một cài đặt giải thuật di truyền bắt đầu với quần thể nhiễm sắc thể (thường tạo ngẫu nhiên) Người ta đánh giá cấu trúc phân bổ hội tái sinh cho chúng theo cách nhiễm sắc thể biểu diễn nghiệm tốt toán ưu tiên nhiễm sắc thể khác để tái sinh Mức độ “tốt” nghiệm thường xác định tương ứng với quần thể thời Mô tả giải thuật di truyền trừu tượng có hai cách hiểu thuật ngữ “giải thuật di truyền” Theo nghĩa chặt, “giải thuật di truyền” coi mô hình tính tốn Holland đề xuất nghiên cứu từ năm 1975 Hầu hết lý thuyết giải thuật di truyền tồn dùng thuật ngữ theo nghĩa mơ hình gọi giải thuật di truyền tắc Theo nghĩa rộng hơn, giải thuật di truyền coi mơ hình dựa quần thể (population-based model) sử dụng tốn tử tái tổ hợp lựa chọn để sinh điểm mẫu khơng gian tìm kiếm Nhiều mơ hình giải thuật di truyền tác giả nghiên cứu Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn thực nghiệm đưa quan điểm hướng ứng dụng xem giải thuật di truyền cơng cụ tối ưu hóa Trong mục này, trình bày khái niệm liên quan tới giải thuật di truyền Trong hầu hết giải thuật di truyền thơng thường có hai thành phần phụ thuộc vào tốn: mã hóa toán hàm đánh giá Bước giải thuật di truyền bước tạo sinh quần thể xuất phát Trong giải thuật di truyền tắc, thành viên quần thể chuỗi nhị phân độ dài l tương ứng với mã hóa nghiệm tốn Mỗi chuỗi xem nhiễm sắc thể Trong hầu hết trường hợp, quần thể sinh cách ngẫu nhiên Sau sinh quần thể xuất phát, cá thể quần thể đánh giá gán cho giá trị thích nghi (fitness value) Khái niệm đánh giá (evaluation) thích nghi (fitness) sử dụng cặp từ đồng nghĩa Tuy nhiên, người ta thường phân biệt hàm đánh giá (evaluation function) hàm thích nghi (fitness function) sử dụng giải thuật di truyền Trong mục này, hàm đánh giá (hay hàm mục tiêu) cung cấp độ đo hiệu việc thiết lập giá trị tham số cụ thể Hàm thích nghi biến đổi độ đo hiệu thành việc phân bổ hội tái tạo cho cá thể Việc đánh giá chuỗi biểu diễn tập tham số hoàn toàn độc lập với việc đánh giá chuỗi khác Tuy nhiên, mức độ thích nghi (fitness) chuỗi luôn xác định mối tương quan với thành viên khác quần thể Trong giải thuật di truyền, mức độ thích nghi xác định fi / f với f i đánh giá chuỗi i f đánh giá trung bình tất chuỗi quần thể Mức độ thích nghi gán dựa thứ hạng cá thể quần thể phương pháp lấy mẫu phương pháp lựa chọn theo đấu loại Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Việc thực giải thuật di truyền xem q trình hai giai đoạn Thuật tốn bắt đầu với quần thể thời Việc lựa chọn áp dụng vào quần thể để tạo quần thể trung gian Sau việc lai ghép đột biến áp dụng cho quần thể trung gian để tạo nên quần thể Quá trình chuyển từ quần thể thời tới quần thể tạo nên hệ tiến trình thực giải thuật di truyền Cách gọi cài đặt giải thuật di truyền đơn giản (Simple Genetic Algorithm – SGA) Hình 1.1 minh họa việc hình thành hệ theo hai pha: pha chọn lọc pha tái tổ hợp Việc đột biến thực sau lai ghép Chọn lọc Tái tổ hợp (Nhân đôi) (Lai ghép, đột biến) Chuỗi Chuỗi Con-A (1 x 2) Chuỗi Chuỗi Con-B (2 x 1) Chuỗi Chuỗi Con-A (2 x 4) Chuỗi Chuỗi Con-B (2 x 4) … … … … … … Thế hệ trung Thế hệ gian t t+1 Thế hệ t Hình 1.1 Một hệ hình thành qua pha chọn lọc pha tái tổ hợp Đầu tiên xem xét việc xây dựng quần thể trung gian từ quần thể thời Trong hệ đầu tiên, quần thể thời đồng thời quần thể xuất phát Sau tính fi / f cho tất chuỗi quần thể thời, thực việc lựa chọn Trong giải thuật di truyền tắc, xác suất để chuỗi quần thể thời chép lại đưa vào hệ trung gian tỷ lệ thuận với mức độ thích nghi chúng Có nhiều cách thực việc lựa chọn Chúng ta ánh xạ quần thể lên bánh xe roulette, cá thể chiếm không gian tỷ lệ thuận với mức độ Số hóa Trung tâm Học liệu – Đại học Thái Ngun http://www.lrc-tnu.edu.vn thích nghi bánh xe Quần thể trung gian tạo nên nhờ việc quay liên tiếp bánh xe để chọn cá thể theo chế “lấy mẫu ngẫu nhiên có thay thế” (stochastic sampling with replacement) Cơ chế lựa chọn gọi lựa chọn tỷ lệ (proportional selection) xác suất để phần tử b lựa chọn xác định công thức: n p(b)  ( f (b) /  f (bi ))  i 1 Với b bi cá thể nằm quần thể Quá trình lựa chọn thực chế “remainder stochastic sampling” Khi chuỗi i với fi / f lớn chép vào quần thể trung gian với số lần phần nguyên fi / f Sau tất chuỗi (kể chuỗi có fi / f nhỏ 1) chép thêm vào quần thể trung gian với xác suất tỷ lệ thuận với phần thập phân chúng Sau lựa chọn, việc tái tổ hợp thực quần thể trung gian Việc coi việc tạo quần thể từ quần thể trung gian Việc lai ghép (crossover) áp dụng cho chuỗi ghép cặp cách ngẫu nhiên với xác suất pc : lấy cặp chuỗi; tái tổ hợp hai chuỗi với xác suất pc để tạo nên hai chuỗi đặt chúng vào quần thể Bước việc áp dụng toán tử đột biến (mutation operator) Mỗi bit quần thể chịu tượng đột biến với xác suất pm Thông thường, tần xuất đột biến thực với xác suất nhỏ 1% Trong số trường hợp, đột biến giải thích việc tạo ngẫu nhiên bít Trong trường hợp khác, đột biến xem phép lật bit Sự khác hai cách giải thích thực chất chi tiết cài đặt kiểu đột biến chuyển đổi để nhận kiểu cịn lại Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn If LandichLmtrai < Then LandichLmtrai = LandichLmtrai + Cmd_maytrai_Click End If Case 16 If LandichtaiT < Then LandichtaiT = LandichtaiT + Cmd_Taitrai_Click End If Case 17 If LandichtaiP < Then LandichtaiP = LandichtaiP + Cmd_Taiphai_Click End If Case Else End Select Else Khoadichuyen False ' MsgBox "Chua chon doi tuong anh de thuc hien!" End If End With End Sub Private Sub Timer1_Timer() PicColor.BackColor = GetDcColor GetDcPic With Frm_rebuild Select Case Val(.Txt_SttMove.Text) Case If Landichdau < Then Cmd_Drawgrouwnd_Click End If Case If LandichKmat < Then Cmd_Drawgrouwnd_Click End If Case If Landichcam < Then Cmd_Drawgrouwnd_Click End If Case If Landichmat < Then Cmd_Drawgrouwnd_Click End If Case If Landichlm < Then Cmd_Drawgrouwnd_Click Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn End If Case If Landichmui < Then Cmd_Drawgrouwnd_Click End If Case If Landichmieng < Then Cmd_Drawgrouwnd_Click End If Case If Landichtai < Then Cmd_Drawgrouwnd_Click End If Case 10 If LandichRia < Then Cmd_Drawgrouwnd_Click End If Case 11 If Landichrau < Then Cmd_Drawgrouwnd_Click End If Case 12 If Landichmattrai < Then Cmd_Drawgrouwnd_Click End If Case 13 If Landichmatphai < Then Cmd_Drawgrouwnd_Click End If Case 14 If LandichLmphai < Then Cmd_Drawgrouwnd_Click End If Case 15 If LandichLmtrai < Then Cmd_Drawgrouwnd_Click End If Case 16 If LandichtaiT < Then Cmd_Drawgrouwnd_Click End If Case 17 If LandichtaiP < Then Cmd_Drawgrouwnd_Click End If Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Case Else End Select If Image1.Picture Then SStab.Enabled = True Else SStab.Enabled = False End If Top = 25 Left = -20 End With End Sub Private Sub Timer2_Timer() With Frm_rebuild Img_Drawgrwoud.Picture = PicDesk.Image Select Case Val(.Txt_SttMove.Text) Case If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < IdauTong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Cmd_down.Enabled = False End If Case If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < IkmTong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Cmd_down.Enabled = False End If Case If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < IcamTong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn .Cmd_down.Enabled = False End If Case If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < ImatTtong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Cmd_down.Enabled = False End If Case If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < ImuiTong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Cmd_down.Enabled = False End If Case If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < ItaiTtong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Cmd_down.Enabled = False End If Case 10 If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < IriaTong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Cmd_down.Enabled = False End If Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Case 11 If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < IrauTong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Cmd_down.Enabled = False End If Case 12 If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < ImatTtong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Cmd_down.Enabled = False End If Case 13 If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < ImatPtong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Cmd_down.Enabled = False End If Case 16 ' tai trai If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < ItaiTtong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Cmd_down.Enabled = False End If Case 17 ' tai phai If (Ic >= 1) And Val(.Txt_SttMove.Text) Then Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn .Cmd_Up.Enabled = True Else Cmd_Up.Enabled = False End If If (Io < ItaiPtong - 1) And Val(.Txt_SttMove.Text) Then Cmd_down.Enabled = True Else Cmd_down.Enabled = False End If End Select If Cmd_OK.Enabled Then Cmd_Save.Enabled = False Else Cmd_Save.Enabled = True End If End With End Sub Private Sub VSzoom_Change() Select Case Zonesect Case "Nose" Dim dogiam If Val(dozoomcu) = Then dozoomcu = End If 'xoa het vet cu truoc chuyen toa For h = ori.Top To ori.Top + ori.Height For w = ori.Left To ori.Left + ori.Width If Point(w, h) RGB(255, 255, 255) Then PSet (w + 216, h / dozoomcu + 180), RGB(255, 255, 255) 'Point(w, h) End If Next w Next h ''xuly tang giam 'dogiam = Me.Slider.Value / 100 If VSzoom.Value > VSzoom.Max / Then dogiam = (VSzoom.Value - VSzoom.Max / 2) / 100 dogiam = (1 - dogiam) ww = -ww Else dogiam = (VSzoom.Max / - VSzoom.Value) / 100 dogiam = + dogiam ' ww= End If dozoomcu = dogiam For h = ori.Top To ori.Top + ori.Height For w = ori.Left To ori.Left + ori.Width Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn If Point(w, h) RGB(255, 255, 255) Then PSet (w + 216, h / dogiam + 180), Point(w, h) End If Next w Next h Case esle End Select End Sub Private Sub wa_Click() gg = kk = 0.01 rr = -0.001 Line (ori.Left + 300, ori.Top)-(ori.Left + ori.Width + 300, ori.Top + ori.Height), Frm_rebuild.BackColor, BF For h = ori.Top To ori.Top + ori.Height For w = ori.Left To ori.Left + ori.Width PSet (w + 300 + gg, h), Point(w, h) gg = gg + kk Next w kk = kk + rr If kk < -0.005 Then rr = 0.001 If kk > 0.005 Then rr = -0.001 Next h End Sub Private Sub whi_Click() Line (ori.Left + 300, ori.Top)-(ori.Left + ori.Width + 300, ori.Top + ori.Height), Frm_rebuild.BackColor, BF For h = ori.Top + To ori.Top + ori.Height - For w = ori.Left + To ori.Left + ori.Width - If Point(w, h) RGB(255, 255, 255) Then PSet (w + 300, h), Point(w, h) End If Next w Next h End Sub Public Function GetDcPic() As Long Dim DeskHdc&, ret& Dim Pxy As POINTAPI ' Get Desktop DC DeskHdc = GetDC(0) 'Get mouse position GetCursorPos Pxy ' GetDcPic = BitBlt(PicDesk.hdc, 0, 0, PicDesk.Width, PicDesk.Height, DeskHdc, Pxy.X, Pxy.Y, vbSrcCopy) 'GetCursorPos(Pxy.X), GetCursorPos(Pxy.Y)) Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn GetDcPic = BitBlt(PicDesk.hdc, 0, 0, PicDesk.Width, PicDesk.Height, DeskHdc, 77, 66, vbSrcCopy) 'GetCursorPos(Pxy.X), GetCursorPos(Pxy.Y)) ret = ReleaseDC(0&, DeskHdc) PicDesk.Refresh End Function Public Function GetDcColor() As Double Dim DeskHdc&, ret& Dim Pxy As POINTAPI ' Get Desktop DC DeskHdc = GetDC(0) 'Get mouse position GetCursorPos Pxy GetDcColor = GetPixel(DeskHdc, Pxy.X, Pxy.y) 'GetCursorPos(Pxy.X), GetCursorPos(Pxy.Y)) ret& = ReleaseDC(0&, DeskHdc) End Function Procedure Evaluation; var i,j,sum_fitness : longint; begin sum_fitness := 0; for i:=1 to m begin f[i] := 0; for j:=1 to n f[i] := f[i] + abs(a[i,j]-b[j]); g[i] := n - f[i]; {ham thich nghi} sum_fitness := sum_fitness + g[i]; end; aver := sum_fitness/m; for i:=1 to m f_[i] := g[i]/aver; writeln(fo,'THE HE: ',thehe); writeln(fo,'Do thich nghi cua cac ca the:'); for i:=1 to m write(fo,f_[i]:0:2,' '); writeln(fo); end; Procedure Show_And_Test; var i,j,temp : longint; divide: real; sum : longint; begin sum := 0; for i:=1 to k begin for j := m downto i+1 if f[j] < f[j-1] then begin Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn temp := f[j]; f[j] := f[j-1]; f[j-1] := temp; temp := cs[j]; cs[j] := cs[j-1]; cs[j-1] := temp; end; sum := sum + f[i]; end; writeln(fo,'So hieu cua ca the tot nhat la:'); for i := to write(fo,cs[i],' '); writeln(fo); writeln(fo); divide := sum / k; if divide < esp then Stop := True; end; Procedure Parent_Selection; var i,j, dem,s: longint; begin for i:=1 to m cx[i] := true; for i := to k begin for j := to n begin a1[i,j] := a[cs[i],j]; anext[i,j] := a1[i,j]; end; cx[cs[i]] := false; end; randomize; dem := 0; while dem < next begin s := random(m) + 1; if cx[s] then begin cx[s] := false; inc(dem); for j:=1 to n a1[k+dem,j] := a[s,j]; end; end; end; Procedure Crossover; var i,j,i1,i2,k1,k2 : longint; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn function Searchk1(x : longint) : longint; var L : arrL; max, vt,j : longint; begin max := 0; for j := to n L[j] := 0; for j:=1 to n begin if a1[x,j] = b[j] then L[j] := L[j-1] + 1; if L[j] > max then begin max := l[j]; vt := j; end; end; Searchk1 := vt; end; function Searchk2(y : longint) : longint; var L : arrL; max, vt,j : longint; begin max := 0; for j := to n+1 L[j] := 0; for j:=n to begin if a1[y,j] = b[j] then L[j] := L[j+1] + 1; if L[j] > max then begin max := l[j]; vt := j; end; end; Searchk2 := vt; end; Begin Randomize; for i := to w begin i1 := i; i2 := random(w)+1; if i2i1 then begin k1 := searchk1(i1); k2 := searchk2(i2); for j := k1+1 to n a1[i1,j] := a1[i2,j]; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn for j := to k2-1 a1[i2,j] := a1[i1,j]; end; end; End; Procedure Mutation; var i,j : longint; begin randomize; i := random(6) + 1; writeln(fo,'Nhan chung chon khuon mat thu: ',i); for j:=1 to n b[j] := anext[i,j]; j := random(n)+1; writeln(fo,'Nhan chung thay doi dac trung: ',j); b[j] := - b[j]; writeln(fo,'Khuon mat tinh nghi co cac dac trung tuong ung:'); for j:=1 to n write(fo,b[j],' '); writeln(fo); writeln(fo); end; Procedure Population; var i,j,next : longint; begin next := k; for i:=1 to w begin for j := to n anext[next+i,j] := a1[i,j]; end; a := anext; for j:=1 to n b[j] := a[1,j]; thehe := thehe+1; end; Procedure GAs; var i,j : longint; begin created; {Khoi tao quan the ban dau} stop := false; While not stop begin Evaluation; Show_And_Test; Parent_Selection; Crossover; Mutation; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Population; end; end; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn PHỤ LỤC 2: Cơ sở liệu mẫu ảnh dùng chương trình tái tạo ảnh chân dung khn mặt đối tượng theo đặc tả nhân chứng: STT Bộ phận đặc trưng Khn mặt Đầu tóc Mắt phải Ảnh mẫu phận Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Mắt trái Mày phải Mày trái Mũi Mồm Tai phải Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 10 Tai trái 11 Râu Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ... Chƣơng ỨNG DỤNG GIẢI THUẬT DI TRUYỀN VÀO BÀI TOÁN TÁI TẠO ẢNH CHÂN DUNG ĐỐI TƢỢNG Trên sở tìm hiểu giải thuật di truyền toán tái tạo ảnh chân dung đối tượng, chương tập trung tìm hiểu đặc điểm toán. .. KHÁI QUÁT VỀ GIẢI THUẬT DI TRUYỀN VÀ BÀI TỐN TÁI TẠO ẢNH CHÂN DUNG Chương tìm hiểu khái niệm giải thuật di truyền, sở toán học giải thuật di truyền, cải tiến giải thuật di truyền ứng dụng thực tiễn... toán tái tạo ảnh chân dung đối tượng, mối liên hệ mật thiết với tốn nhận dạng mặt người Phần chương ứng dụng giải thuật di truyền vào việc giải toán tái tạo ảnh chân dung khuôn mặt đối tượng

Ngày đăng: 26/03/2021, 07:14

Tài liệu cùng người dùng

Tài liệu liên quan