ĐỒ ÁN CƠ SỞ 4 ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH GỢI Ý SỐ LIỆU MÀU SẮC BẰNG CÔNG NGHỆ AI. TS. TRẦN THẾ SƠN

30 4 0
ĐỒ ÁN CƠ SỞ 4 ĐỀ TÀI:  XÂY DỰNG  CHƯƠNG TRÌNH GỢI Ý SỐ LIỆU MÀU SẮC BẰNG CÔNG NGHỆ AI.  TS. TRẦN THẾ SƠN

Đ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 ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN ĐỒ ÁN CƠ SỞ ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH GỢI Ý SỐ LIỆU MÀU SẮC BẰNG CÔNG NGHỆ AI SINH VIÊN THỰC HIỆN: LỚP: VÕ THỊ MINH NGUYỆT 18IT2 GIẢNG VIÊN HƯỚNG DẪN: TS TRẦN THẾ SƠN Đà nẵng, tháng 12 năm 2020 MỤC LỤC MỤC LỤC MỞ ĐẦU LỜI CẢM ƠN THÔNG TIN KẾT QUẢ NGHIÊN CỨU DANH MỤC CÁC TỪ VIẾT TẮT .11 DANH MỤC CÁC HÌNH VẼ .12 DANH MỤC CÁC BẢNG 13 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 14 1.1 Tìm hiểu ngơn ngữ lập trình 14 1.1.1 Ngôn ngữ Python 14 1.2 Các thư viện thị giác máy tính 15 1.3 Computer Vision ̶ Thị giác máy tính(CV) .20 CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ BÀI TỐN 21 2.1 Yêu cầu toán 21 2.2 Các yêu cầu phi chức 21 2.3 Phân tích thiết kế hệ thống 21 2.3.1 Các chức hệ thống 21 2.3.2 Các tác nhân hệ thống 21 2.3.3 Biểu đồ UseCase tổng quát 21 2.7.11 Bảng ví dụ giá trị màu CSV .23 CHƯƠNG 3: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH .24 3.1 Thiết kế toán .24 3.1.1 Tập liệu 24 3.1.2 Cài đặt thư viện thị giác máy tính OpenCV, Pandas NumPy 25 3.2 Xây dựng chương trình 25 3.3 Chạy chương trình 29 KẾT LUẬN 31 TÀI LIỆU THAM KHẢO .32 MỞ ĐẦU Ngày nay, với phát triển mạnh mẽ khoa học công nghệ, Công nghệ Thông tin ngành có vị dẫn đầu có vai trị lớn phát triển chung Các ứng dụng công nghệ thông tin áp dụng lĩnh vực nghiên cứu khoa học lĩnh vực đời sống Là phần Cơng nghệ Thơng tin, Cơng nghệ AI có phát triển mạnh mẽ phổ biến nhanh lợi ích mà mang lại cho cộng đồng lớn Bằng việc lựa chọn thực đề tài “Xây dựng chương trình gợi ý số liệu màu sắc”, em muốn tìm hiểu đưa giải pháp tốt nhằm giải công việc ghi nhớ số màu sắc nhiều đầy tính trừu tượng công việc liên quan đến Photoshop ni Design Chương trình mang lại cho nhà lập trình viên designer nhiều lợi ich như: giảm thời gian tìm kiếm số liệu màu cần, khơng phải đau đầu ghi nhớ số loằng ngoằng, v v Nội dung đề tài gồm chương: Chương : Cơ sở lý thuyết Chương : Phân tích thiết kế hệ thống Chương : Thiết kế xây dựng chương trình LỜI CẢM ƠN Trước tiên em xin gửi lời cảm ơn chân thành sâu sắc tới thầy cô giáo trường Đại học Cơng nghệ thơng tin nói chung thầy cô giáo khoa Khoa học cơng nghệ nói riêng tận tình giảng dạy, truyền đạt cho em kiến thức, kinh nghiệm quý báu suốt thời gian bốn năm học vừa qua Đặc biệt em xin gửi lời cảm ơn đến thầy giáo Trần Thế Sơn tận tình giúp đỡ, trực tiếp bảo, huớng dẫn em suốt trình thực học phần Đồ án Trong thời gian làm việc, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà học tập tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, điều cần thiết cho em q trình học tập cơng tác sau Sau xin gửi lời cảm ơn chân thành tới gia đình, bạn bè động viên, đóng góp ý kiến giúp đỡ em trình học tập, nghiên cứu hoàn thành đồ án sở Một lần nữa, em xin chân thành cảm ơn.! THƠNG TIN KẾT QUẢ NGHIÊN CỨU Thơng tin chung Tên đề tài : Xây dựng chương trình gợi ý số liệu màu sắc Sinh viên thực : Võ Thị Minh Nguyệt Lớp : 18IT2 Hệ đào tạo : Chính quy Điện thoại : 0355555377 Email : vtmnguyet.18it2@sict.udn.vn Thời gian thực : Tháng 11-12 năm 2020 Tính cấp thiết đề tài Photoshop phần mềm chỉnh sửa hình ảnh chuyên nghiệp, cung cấp tới người dùng nhiều cơng cụ biên tập hình ảnh Đặc biệt với muốn lấy mã màu hình ảnh sử dụng tới cơng cụ Color Picker Eyedropper tool Tuy nhiên, khơng phải sử dụng Photoshop thành thạo, biết cách tìm mã màu cơng cụ Vì vậy, chương trình hỗ trợ đắc lực để lấy mã màu từ hình ảnh Windows mà không cần phải sử dụng Photoshop Mục tiêu - Xây dựng chương trình có thấy lấy số liệu mà sắc cách nhấp chuột vào màu nâng cấp tương lai - Sử dụng ngơn ngữ lập trình Python thư viện thị giác máy tính OpenCV Pandas để xây dựng chương trình gợi ý số liệu màu sắc để hỗ trợ việc lấy mã màu cách dễ dàng - Chương trình đơn giản, dễ sử dụng - Nắm bắt công nghệ AI Kết đạt - Xây dựng thành cơng chương trình - Tìm hiểu nắm bắt kiến thức cơng nghệ làm nên Trí tuệ nhân tạo, thư viện thị giác máy tính - Ứng dụng , phát triển công nghệ AI Python - Với quy mô vừa nhỏ, cộng thêm thời gian không cho phép nên đề tài “Xây dựng chương trình gợi ý số liệu màu sắc” chưa có đầy đủ chức hồn thiện chương trình học máy Trong q trình làm cịn nhều sai sót, kiến thức có hạn lên chương trình cịn nhiều thiếu sót việc hiển thị tối ưu thuật toán, thời gian thực Trong tương lai em cố gắng khắc phục sai sót DANH MỤC CÁC TỪ VIẾT TẮT STT Từ viết tắt API DOM XHTML XML Tên đầy đủ Giải thích Application Programming Giao diện lập trình ứng dụng Interface Document Object Model Các đối tượng thao tác văn Extensible HyperText Ngôn ngữ Đánh dấu Siêu văn Markup Language Mở rộng Ngôn ngữ đánh dấu mở rộng eXtensible Markup W3C đề nghị với mục đích tạo Language ngơn ngữ đánh dấu khác Ngôn ngữ đánh dấu (markup language) XML dùng để miêu SVG Scalable Vector Graphics tả hình ảnh đồ họa véc tơ hai chiều, tĩnh hoạt hình, thường dành cho ứng dụng trang mạng Ngơn ngữ mơ hình gồm ký UML hiệu đồ họa mà phương pháp Unified Modeling hướng đối tượng sử dụng để thiết Language kế hệ thống thơng tin cách nhanh chóng DANH MỤC CÁC HÌNH VẼ Hình 1: Python 13 Hình 2: OpenCV 16 Hình 3: Cấu trúc OpenCV 17 Hình 4: Thư viện NumPy 18 Hình 5: Thị giác máy tính .19 Hình 6: Biểu đồ Use case tổng quát 21 Hình 7: Biểu đồ nguyên lý hoạt động chương trình 21 Hình 8: Tệp colors.csv 23 Hình 9: Hồn thành cài đặt 24 Hình 10: Chạy chương trình PowerShell 28 Hình 11: Kết nhấp đúp chuột vào màu vàng .29 Hình 12: Kết nhấp đúp chuột vào vùng màu đỏ .29 DANH MỤC CÁC BẢNG Bảng 2.1 - Các yêu cầu phi chức ứng dụng Bảng 2.7 – Bảng ví dụ giá trị màu csv 10           Là công cụ cho phép đọc/ ghi liệu nhớ nhiều định dạng file: csv, text, excel, sql database, hdf5; Liên kết liệu thông minh, xử lý trường hợp liệu bị thiếu Tự động đưa liệu lộn xộn dạng có cấu trúc; Dễ dàng thay đổi bố cục liệu; Tích hợp chế trượt, lập mục, lấy tập từ tập liệu lớn Có thể thêm, xóa cột liệu; Tập hợp thay đổi liệu với group by cho phép bạn thực toán tử tập liệu; Hiệu cao trộn kết hợp tập liệu; Lập mục theo chiều liệu giúp thao tác liệu cao chiều liệu thấp chiều; Tối ưu hiệu năng; Pandas sử dụng rộng rãi học thuật thương mại Bao gồm thống kê, thương mại, phân tích, quảng cáo,… 1.2.3 Thư viện NumPy Numpy (Numeric Python): thư viện toán học phổ biến mạnh mẽ Python Cho phép làm việc hiệu với ma trận mảng, đặc biệt liệu ma trận mảng lớn với tốc độ xử lý nhanh nhiều lần sử dụng “core Python” đơn Hình 4: Thư viện NumPy 1.3 Computer Vision ̶ Thị giác máy tính(CV) CV ngành khoa học với mục đích để hiểu hay xử lý liệu dạng hình ảnh video Computer Vision có nhiều ứng dụng đáng kể kể đến oto tự lái, giám sát giao thông, nhận diện khuôn 16 mặt Deep Learning xu hướng tiếp cận trí tuệ nhân tạo cho tốn Computer Vision phân loại nhiều tốn như: phân loại ảnh (classification), nhận diện khoanh vùng đối tượng (object detection), phân vùng đối tượng (segmentation) lớp tốn sinh ảnh (generation) Hình 5: Thị giác máy tính 17 CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ BÀI TỐN 2.1 u cầu tốn Sử dụng ngơn ngữ lập trình Python thư viện thị giác máy tính OpenCV Pandas để xây dựng chương trình gợi ý số liệu màu sắc để hỗ trợ việc lấy mã màu cách dễ dàng 2.2 Các yêu cầu phi chức Bảng 2.1 - Các yêu cầu phi chức chương trình Mục Tên yêu cầu Mô tả yêu cầu Giao diện hệ thống phải dễ sử dụng, trực quan, Giao diện Tốc độ xử lý Hệ thống phải xử lý nhanh chóng xác Tương thích Tương thích với đa phần hệ điều hành thân thiện với người dùng 2.3 Phân tích thiết kế hệ thống 2.3.1 Các chức hệ thống Hệ thống xây dựng chức hỗ trợ đắc lực để lấy mã màu từ hình ảnh Windows mà không cần phải sử dụng Photoshop Bằng việc nhấn đúp chuột vào vị trí màu sắc, hệ thống tính tốn khoảng cách từ màu tìm màu ngắn 2.3.2 Các tác nhân hệ thống Dựa vào mơ tả tốn, ta xác định tác nhân hệ thống sau: Tác nhân System: Xử lý hình ảnh, tính tốn khoảng cách, so sánh trả kết lại cho người dùng Tác nhân người dùng: Tìm kiếm màu, chọn màu ưa thích từ hình ảnh, đợi kết từ phía hệ thống 2.3.3 Biểu đồ UseCase tổng quát 18 Hình 6: Biểu đồ Use case tổng quát System: Hệ thống nhận diện xử lý số liệu thơng qua việc tính tốn khoảng cách cơng thức cụ thể để đưa tên mà số liệu màu truyền đến câu trả lời cho người dùng Người dùng: Người dùng thực việc nhấn đúp chuột vào vị trí màu sắc mong muốn hình Thơng tin vị trí truyền đến System để xử lý 2.3.4 Nguyên lý hoạt động chương trình Hình 7: Biểu đồ nguyên lý hoạt động chương trình 19 Khi người dùng chọn màu từ hình ảnh mang màu sắc, hệ thống tiếp nhận xử lý hình ảnh bước tính tốn cụ thể, sau đem so sánh kết giá trị màu sắc với bảng màu có sẵn, tìm kiếm giá trị (gần đúng) để trả lại kết cho người dùng Kết quả: Thông số màu sắc hiển thị cho người dùng qua trình xử lý số liệu System 2.7.11 Bảng ví dụ giá trị màu CSV Bảng 2.7 – Bảng ví dụ giá trị màu csv Tên màu viết tắt Tên màu Giá trị Hexa G R B air_force_blue_raf Air Force Blue (Raf) #5d8aa8 93 138 168 air_force_blue_usaf Air Force Blue(Usaf) #00308f 48 143 air_superiority_blue Air Superiority Blue #72a0c1 114 160 193 alabama_crimson Alabama Crimson #a32638 163 38 56 alice_blue Alice Blue #f0f8f 240 248 255 alizarin_crimson Alizarin Crimson #e32636 227 38 54 #c46210 196 alloy_orange Alloy Orange 20 98 16 CHƯƠNG 3: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH 3.1 Thiết kế toán 3.1.1 Tập liệu Màu sắc tạo thành từ màu bản; đỏ, xanh xanh lam Trong máy tính, xác định giá trị màu phạm vi từ đến 255 Vậy xác định màu cách? Câu trả lời 256 * 256 * 256 = 16,581,375 Có khoảng 16,5 triệu cách khác để biểu diễn màu sắc Khi cần lấy tên màu, bạn cần ánh xạ giá trị màu với tên tương ứng chúng Tệp color.csv bao gồm 865 tên màu với giá trị RGB hex chúng Hình 8: Tệp colors.csv 21 3.1.2 Cài đặt thư viện thị giác máy tính OpenCV, Pandas NumPy Để cài đặt thư viện thị giác máy tính Mở Cmd chạy lệnh pip pip install opencv-python numpy pandas Sau chạy lệnh pip Đợi vài phút để máy thực cài đặt thư viện Hình 9: Hồn thành cài đặt 3.2 Xây dựng chương trình Bước 1: Lấy hình ảnh từ người dùng Sử dụng thư viện argparse để tạo trình phân tích cú pháp đối số Như trực tiếp đưa đường dẫn hình ảnh từ dấu nhắc lệnh: import argparse ap = argparse.ArgumentParser () ap.add_argument ('- i', ' image', Requi = True, help = "Image Path") args = vars (ap.parse_args ()) img_path = args [' image '] #Reading image with opencv img = cv2.imread (img_path) 22 Bước Đọc tệp CSV với Pandas Thư viện Pandas hữu ích cần thực thao tác khác tệp liệu CSV pd.read_csv () đọc tệp CSV tải vào DataFrame Pandas #Reading csv file with pandas and giving names to each column index=["color","color_name","hex","R","G","B"] csv = pd.read_csv('colors.csv', names=index, header=None) Bước 3: Set kiện gọi chuột cửa sổ Đầu tiên, tạo cửa sổ hình ảnh đầu vào hiển thị Sau đó, chúng tơi thiết lập hàm gọi lại gọi kiện chuột xảy cv2.nameWindow ('image') cv2.setMouseCallback ('image', draw_ functions) Bước 4: Tạo chức vẽ Nó tính tốn giá trị rgb pixel mà nhấp đúp Các tham số hàm có tên kiện, (x, y) tọa độ vị trí chuột, Trong hàm, chúng kiểm tra kiện nhấp đúp tính toán đặt giá trị r, g, b với x, y vị trí chuột def draw_ functions (event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDBLCLK: global b, g, r, xpos, ypos, click click = True 23 xpos = x ypos = y b, g, r = img [y, x] b = int (b) g = int (g) r = int (r) Bước 5: Tính khoảng cách để lấy tên màu Để có tên màu, hệ thống tính tốn khoảng cách (d) cho biết khoảng màu chọn chọn màu có khoảng cách tối thiểu Khoảng cách tính theo cơng thức d = abs (Red - ithRedColor) + (Green - ithGreenColor) + (Blue - ithBlueColor) def getColorName(R,G,B): minimum = 10000 for i in range(len(csv)): d = abs(R- int(csv.loc[i,"R"])) + abs(G- int(csv.loc[i,"G"]))+ abs(Bint(csv.loc[i,"B"])) if(d=600): cv2.putText(img, text,(50,50),2,0.8,(0,0,0),2,cv2.LINE_AA) clicked=False #Break the loop when user hits 'esc' key if cv2.waitKey(20) & 0xFF ==27: break cv2.destroyAllWindows() Bước 7: Chạy chương trình 25 Chạy chương trình với CMD python color_detection.py –i/mangmau 3.3 Chạy chương trình Hình 10: Chạy chương trình PowerShell 26 Hình 11: Kết nhấp đúp chuột vào màu vàng Hình 12: Kết nhấp đúp chuột vào vùng màu đỏ 27 KẾT LUẬN Kết đạt đề tài Sau thời gian tập trung triển khai đề tài, em hồn thành Xây dựng chương trình gợi ý số liệu màu sắc với thao tác sử dụng dễ dàng, thân thiện với người dùng Sau hoàn thành xong được chương trình, em có thêm kỹ tảng để xây dựng ứng dụng học máy ngôn ngữ Python thư viện thị giác máy tính Bên cạnh đó, em mở rộng thêm kiến thức chuyên ngành nhờ việc tìm hiểu số kiến thức lập trình để áp dụng vào việc phát triển ứng dụng Nhờ vậy, kỹ tự học vận dụng kỹ em nâng cao Khi thực hoàn thành dự án, em biết thêm nhiều kinh nghiệm quý giá xây dựng ứng dụng học máy nói riêng phát triển ứng dụng AI nói chung Những kỹ tảng để giúp em nâng cao trình độ thân, kinh nghiệm thực tế để làm việc doanh nghiệp sau Hạn chế đề tài Bên cạnh kết khả quan đạt được, em nhận thấy tồn số hạn chế: Chương trình cịn đơn giản Cần phát triển thêm vài chức copy liệu Hướng phát triển đề tài Sau hoàn thành đề tài xây dựng Xây dựng chương trình gợi ý số liệu màu sắc em tiếp tục nghiên cứu phát triển chương trình nhằm tăng tính tối ưu hóa tốc độ xử lý để đem lại hiệu cao hơn, phát triển để đưa vào ứng dụng thực tế 28 TÀI LIỆU THAM KHẢO [1] Giáo trình Phân tích thiết kế hướng đối tượng băng UML, Nhà xuất giáo dục, 2001 Tác giả : Đăng Văn Đức [2] https://www.w3schools.com/ [3] https://topdev.vn/blog/opencv-la-gi-hoc-computer-vision-khong-kho/ [4] https://topdev.vn/blog/top-10-thu-vien-python-tot-nhat-cho-data-scientist-nua- dau-nam-2019/ Và nhiều tài liệu liên quan khác em xin phép không liệt kê 29 30

Ngày đăng: 26/12/2021, 23:36

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

  • Đang cập nhật ...

Tài liệu liên quan